pax_global_header00006660000000000000000000000064137753512060014523gustar00rootroot0000000000000052 comment=487d5dcf89a055a152c622e12106f956b2eaf862 twin-0.9.0/000077500000000000000000000000001377535120600125125ustar00rootroot00000000000000twin-0.9.0/.clang-format000066400000000000000000000003701377535120600150650ustar00rootroot00000000000000Language: Cpp # BasedOnStyle: Google AllowShortFunctionsOnASingleLine: false AllowShortIfStatementsOnASingleLine: false AllowShortLoopsOnASingleLine: false ColumnLimit: 100 Standard: Cpp11 SortIncludes: false UseTab: Never twin-0.9.0/.gitignore000066400000000000000000000007251377535120600145060ustar00rootroot00000000000000*~ *.a *.cache *.exe *.lo *.la *.o *.so *.so.? *.so.?.?.? .deps .dirstamp .libs .vscode a.out Makefile /autom4te.cache /config.log /config.status /libtool /clients/mapscrn/twmapscrn /clients/tw* /include/config.h /include/stamp-h1 /include/Tutf/version.h /include/Tw/autoconf.h /include/Tw/version.h /include/twautoconf.h /include/twconfig.h /include/version.h /server/mycat /server/twdisplay /server/twin /server/twin_server /scripts/include /scripts/txt /test/twtest twin-0.9.0/BUGS000066400000000000000000000006561377535120600132040ustar00rootroot00000000000000----------------------------------- outstanding bugs ----------------------------------- #6 valgrind twin_server: read of uninitialized memory when talking with twdisplay -------------------------------------- fixed bugs -------------------------------------- fixed in commit 6420aaa0d5abf47784eb1e9d19f7081840bf48fd: #7 valgrind twin_server: glitch in drawing window borders and illegal memory access when DisplayHeight > 70 twin-0.9.0/COPYING000066400000000000000000000435761377535120600135640ustar00rootroot00000000000000 The GNU General Public License (GPL) below is copyrighted by the Free Software Foundation, but the instance of code that it refers to (the program twin) is copyrighted by me and others who actually wrote it. Massimiliano Ghilardi ------------------------------------------------------------------------------- GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, 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 software, or if you modify it. For example, if you distribute copies of such a program, 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 show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license 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. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program'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 License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. 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 Program or any portion of it, thus forming a work based on the Program, 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) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary 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 program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, 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 Program, 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 Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 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 Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, 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 executable. 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. If distribution of executable or 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 counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program 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. 5. 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 Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program 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. 7. 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 Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program 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 Program. 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. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program 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. 9. The Free Software Foundation may publish revised and/or new versions of the 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 Program 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 Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs 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 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 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 Programs If you develop a new program, and you want it to be of the greatest possible use to the public, 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 program. 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. Copyright (C) 19yy This program 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 2 of the License, or (at your option) any later version. This program 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 program; 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 program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy 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 License. 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 program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. twin-0.9.0/COPYING.LIB000066400000000000000000000620371377535120600141620ustar00rootroot00000000000000 The GNU Library General Public License (LGPL) below is copyrighted by the Free Software Foundation, but the instance of code that it refers to (the libraries libtutf, libtw, libTT) are copyrighted by me and others who actually wrote it. Massimiliano Ghilardi ------------------------------------------------------------------------------- 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. Copyright (C) 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. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! twin-0.9.0/Changelog.txt000066400000000000000000001375541377535120600151610ustar00rootroot00000000000000From 0.6.2.1 to 0.6.2.2: (Massimiliano Ghilardi, 02 July 2016) * Removed support for non-Unicode builds. From now on, twin can ONLY be compiled in Unicode-aware mode (currently uses UCS-2). From 0.6.2 to 0.6.2.1: (Massimiliano Ghilardi, 08 Nov 2014) * Fixed scroll glitch in twterm, affecting architectures with strongly pipelined memcpy() - for example amd64. * Fixed segfault with --hw=tty running inside xterm or similar (including konsole, putty ...) when some program in a twterm enables mouse events. Thanks to R. Corrado for reporting and debugging it. From 0.6.1 to 0.6.2: (Massimiliano Ghilardi, 24 Mar 2009) * Fixed buggy RAW keyboard support on Linux console (numeric keys did not work with some keymaps) * Fixed numeric overflow in twsysmon CPU and disk monitors. * Fixed broken libtw on 64 bit archs. From 0.6.0 to 0.6.1: (Massimiliano Ghilardi, Milos Jakubicek, 17 Feb 2009) * Fixed uninitialized variable bug in --hw=gfx introduced in 0.6.0, sometimes causing twin/twdisplay not to draw anything when using --hw=gfx, especially on 64 bit archs. * Added explicit copyright statement to all source files (thanks, Milos!) From 0.5.1 to 0.6.0: (Massimiliano Ghilardi, 01 Dec 2007) * Fixed build errors with gcc 4.0, 4.1 and 4.2. * Fixed some (not all) pointer <-> integer conversion issues on 64 bit archs. * Fixed time arithmetic overflow bug often causing twin to hang in a busy loop for several seconds on 64 bit archs. * Fixed raw keyboard support for --hw=tty on Linux console which sometimes got confused between being in the active console and being switched away, resulting in raw keyboard to screw up. * Added dead keys and compose (Multi_key) support to --hw=X11 and --hw=gfx. * Added `view=x++' option to --hw=X11 and --hw=gfx, allowing to show only a portion of twin desktop. It is not possible to resize the X11 windows created using this option. Used with multiple twdisplay/twattach allows to split twin desktop across multiple X11 screens/servers. Example: suppose your twin is using a 100x30 desktop. Then: $ twdisplay --hw=X11@:0,view=50x15+0+0 & $ twdisplay --hw=X11@:1,view=50x15+50+0 & $ twdisplay --hw=X11@:2,view=50x15+0+15 & $ twdisplay --hw=X11@:3,view=50x15+50+15 & will show your whole twin desktop split in four equal parts, each one on a different X11 server (in this example on :0 :1 :2 :3 servers). * Updated twsysmon to linux kernel 2.6 style disk activity report (using /proc/diskstats) and cpu activity report (added new states 'irq' as tmagenta and 'wait' as thigh|tblue) From 0.5.0 to 0.5.1: (Massimiliano Ghilardi, 29 May 2003) * Added raw keyboard support for --hw=tty on Linux console. This is hopefully very complete, since it queries the kernel tables to implement keyboard layouts, diacriticals, compose key, console-switch, Alt+, AltGr+ and other bells and whitles found in Linux console. This finally allows twin on Linux console to react to almost *any* keys combination like Alt+Up, Shift+PageUp and Shift+PageDown. * Added new actions to system.twinrc, usable on the drivers: --hw=tty (only on Linux console), --hw=X11 and --hw=gfx. Alt+Up spawn new terminal window Shift+PageUp scroll up current window Shift+PageDown scroll down current window From 0.4.6 to 0.5.0: (Massimiliano Ghilardi, 02 Apr 2003) * Added libtw client `twcuckoo', modeled after xcuckoo. * Added support for mouse wheel (= buttons 4 and 5) in libtw, libTT and in twin server. Be aware anyway that gpm daemon (used by twin to receive mouse events on Linux console) does not support mouse wheel, at least up to gpm 1.18.1. * Updated makefiles to support building in a different directory than source tree. This allows compiling twin for multiple architectures using the same source tree, and also from read-only sources (pending issue: during build, a few symbolic links are added to the sources). To use this feature, simply type: $ /configure $ make Using this feature from a CVS snapshot is a little harder, look at `Makefile.fake' for an example. * Added CONF__ASM and CONF__LONG_LONG to configuration: now you can manually enable/disable assembler source code and `long long' support (`long long' support may automatically disable assembler source code due to internal limitations) using one of: `./configure --enable--{asm|long-long}[=yes|no]', `scripts/Configure.sh --enable--{asm|long-long}[=yes|no]', `make config', `make menuconfig', `make gconfig'. * Added proper error messages reporting to ~/.twinrc parser and to twdm code that starts twin server. * Modified tty mouse driver not to close the display upon libgpm fatal error. * Enhanced tty keyboard driver code to better detect cursors, function keys and other special keys. * Enhanced caching in CONF__ALLOC custom malloc()/free() routines. * Bumped libtw major version to 4 due to incompatible changes. * Removed `time_t' and `frac_t' types from libtw. They are now replaced by `tany'. * Removed unused parameters from Tw_CreateMsgPort(). * Rationalized and completed TTGet* and TTSet* libTT methods. * Added java-like ttfield and ttmethod classes. TT{Get,Set,Change}Field_ttobj are now wrappers for ttfield methods. Also rewrote TTCall*_ttmethod. * Started writing libTT tunneling and detunneling drivers on top of libtw. Implemented both sides (libtw client and twin server) of server extensions. * Started writing libTT tt*layout classes. * Rewrote and cleaned up libTT m4 scripts. From 0.4.5 to 0.4.6: (Massimiliano Ghilardi, 26 Mar 2003) * Fixed buffer overrun in twdisplay startup code. Patch contributed by Marco Bodrato. * Fixed memory leak in `Reload RC' if ~/.twinrc parser is a module: shm.lo is now in `wm' module instead of `rcparse' module. * Fixed missing #include in libtw headers causing build errors with gcc-3.2. * Fixed compile errors in server/hw_tty.c if CONF__UNICODE is disabled. * Fixed cut-n-paste not to paste when clicking on a window border. * Added getpt() support and error reporting to pseudo-tty allocation code, both in twin server and in twterm. * Added ShinyMetal_6x13.xpm theme, contributed by Adam Olsen. * Added `make uninstall'. * Tweaked makefiles so that 'make install DEBUG=y' does not strip installed binaries and libraries. * Changed `twdisplay' startup logic to mimic server: if started without `-hw=[...]' twdisplay now autoprobes all HW drivers: compiled-in ones and also drivers built as modules. Updated `twstart' to use autodetection in both twin server and `twdisplay'. * Updated scripts and binaries to invoke programs with double hyphens long options like `--help' * Added utf8 support to Linux console HW driver * Added more charsets to libtutf. From 0.4.4 to 0.4.5: (Massimiliano Ghilardi, 25 Oct 2002) * Relaxed option parsing for all programs to also accept double hyphens long options like `--hw' if corresponding single hyphen long options like `-hw' is accepted. * Changed server startup logic: if started without `-hw=[...]' twin now autoprobes also HW drivers built as modules, not only compiled-in ones. * Added new `kde2', `goldenblue' and `mac' themes for `-hw=gfx' with 9x19 font size. * Added new `9x19u' X11 unicode font, derived from public domain `10x20' XFree86 unicode font. * Added a lot of libTT code: buttons prelight, `field value change' events, TT{Set,Get,Unset}KeyData_ttcomponent() methods to store and retrieve arbitrary user data in ttcomponents indexed by strings, lots of methods for: ttbitmask, tteventmask, ttdata, ttbuttongroup, ttbutton, ttcheckbutton, ttradiobutton, ttscrollbar, ttscrollpane, ttslider, ttprogressbar, ttlabel, ttscroller, tttheme. * Rewrote libTT event firing logic to allow blocking events, and added logic to set event blocking criteria. Also rewrote mutex locking logic to let clients safely call TTClose*() functions even from inside listeners. * Added two more demo clients for libTT: ttdemo2 and ttdemo3. * Added libtw WIDGET_AUTO_FOCUS attribute for focus-under-mouse subwidgets policy (the subwidget and all its parents must have this attribute set for autofocus to work). Top-level widgets are still click-to-focus though. Also rewrote code sending mouse messages to clients. * Changed twin server semantics in mouse event reporting: in PRESS_* events, the button being pressed is no longer reported as held (i.e. the corresponding bit in (Code & HOLD_ANY) is not set). * Fixed missing libtool support in 0.4.4 (due to a broken autogenerated ./configure script, recreating it fixed the bug). * Fixed crashy bug in avl.c:AVLRemove(), exposed by new libTT code. * Fixed partially non-working numeric keypad on `-hw=X' and `-hw=gfx' drivers (bug introduced in 0.4.2). * Fixed broken `-hw=tty' options `mouse={xterm,twterm}' * Fixed non-working `-hw=gfx' options `{bg|root}-as-root'; changed default settings for `{bg|root}-as-*' from `{bg|root}-as-theme' to `{bg|root}-as-none' to reduce CPU usage. * Renamed SUPPORT_SHLIBS to SYS_SHLIBS in configure and makefiles. * Fixed server-side bug affecting Tw_Draw*Widget*(). * Fixed this Changelog: to manually disable i386 assembler code you need to run `ac_cv_prog_gcc_i386_asm=no ./configure [...]' * Fixed this Changelog: you can manually set how to create shared libraries with: `ac_cv_sys_shlibs={native|libtool|no} ./configure [...]' or with `make SYS_SHLIBS={native|libtool}' From 0.4.3 to 0.4.4: (Massimiliano Ghilardi, 06 Jul 2002) * Fixed out-of-date Tw/Tw++.h header causing errors in twutils build. * Fixed makefiles and Mkdep for build errors in some configurations. * Fixed a few missing `include $(TOPDIR)/makeautoconf' in makefiles. * Fixed random SEGFAULT on client menu rows activation. * Hardened twdisplay and the various HW display drivers against buffer overruns on maliciously long command line arguments. (if your system has vsnprintf(), everything is already safe and this is not necessary). * Added lt_dlopen() support for runtime module loading (unfinished). * Added more charsets to libtutf. * Added `-twin@' option to twsendmsg. * Added more options to `-hw=tty': `,mouse={xterm|twterm}' and `,utf8'. Also renamed option `,xterm' to `,mouse=xterm' and added Eterm to the list of xterm-style mouse reporting terminals. Still on `-hw=tty', added `charset=UTF-16' as an alias for `charset=ISO-8859-1,utf8'. * Changed `-hw=tty,termcap[,charset=ibm437]' driver to use alternate font ("\033[11m" or equivalent) * Added option to silence down messages echoed during `make'; to actually silence them, run `make QUIET=y [..]' * Added human-readable configuration summary at the end of './configure' execution * Added user contributed sample twin.spec file (to build RPMs) in contrib/twin.spec * Added new HW driver `-hw=gfx' : it is based on `-hw=X' and adds graphical themes for window borders, buttons, scrollbars, etc., all stored in a single .xpm file for each theme. The driver first looks for themes in user's directory ~/.twin/themes/hw_gfx/*.xpm, then in ${prefix}/share/twin/themes/hw_gfx/*.xpm, where system-wide themes get installed, finally tries to open given file without any extra prefix, so that you can specify an arbitrary file. HW driver options are the same as `-hw=X', plus: `,mono' `,color' `,theme=' (theme pixmap) `,root=' (screen root pixmap) `,bg=' (widget background pixmap) `,{root|bg}-as-{none|theme|root|bg}' (specify how to draw root or bg) Background and root pixmaps are not available if `,mono' (monochrome) is used. Option `drag' is not available if background or root pixmaps are used. If you use option `root=', you should consider running echo " " | twsetroot or, more permanently, putting Background 1 White On Black ( " " ) in your ~/.twinrc, so that screen contents does not interfere with the root pixmap. * Restored native gcc shared library support as an alternative to libtool. If `./configure' detects Linux or FreeBSD with GNU gcc then it uses builtin rules to create shared libraries, else falls back on libtool. This was necessary because installing twin with DESTDIR != "/" (as used by `rpm') breaks libtool 1.4.1 inter-library dependencies (I do not like at all that implementation of inter-library dependencies, anyway). You can manually decide how to create shared libraries with: `make SUPPORT_SHLIBS={native|libtool} [...]' * To manually disable i386 assembler code you now need to run `make GCC_I386_ASM=no [...]' (actually, this changed in 0.4.3) * Renamed Tw_Expose* functions to Tw_Draw* and changed Tw_Row4Menu to return created row. Marked compatibility code with /* backward compatibility. will be removed */ * Made `.so' extension optional in user-visible module names; you are encouraged to update your .twinrc changing any Module ".so" On into Module "" On From 0.4.2 to 0.4.3: (Massimiliano Ghilardi, 09 Jun 2002) * Fixed various compile errors on non Linux/i386 architectures (Linux/, FreeBSD/i386, SunOS/sparc). * Fixed a bug in rcparse.y causing colors not to be read correctly from ~/.twinrc on big-endian machines. * Fixed compile error if hw_display was configured as built-in. * Fixed non-working twlsobj (bug introduced in 0.4.2). * Fixed twin not detecting resizes of controlling tty used as display (with `-hw=tty'; bug introduced in 0.4.1). * Added `libtool' support. Twin now uses GNU `libtool' to build shared libraries. A few portability issues remain due to incomplete inter-library dependency support in libtool 1.3.5. * Added detailed libTT error reporting about failed display targets. * Various libTT tweaks. * Changed twterm to default to latin1 charset after reset if unicode is enabled. * Changed ./configure to check for various gcc-compatible extensions and moved OS-specific settings from makerules.in -> makeosvalues to configure -> makeautoconf. * Changed twdm install path from ${exec_prefix}/bin to ${exec_prefix}/sbin From 0.4.1 to 0.4.2: (Massimiliano Ghilardi, 26 May 2002) * Finished nested menus support. * Continued libTT: it now begins being usable, even if not 100% complete yet. * Tweaked scripts/Configure* scripts to allow build without GNU bash. (GNU bash is still required to manually configure twin and to run `make Torture') * Tweaked Makefile's internal logic; added autoexpanding archives (*.lst) and added user hints about what to run after each build step. * Removed some GCC extensions lurking in the code (mostly, text after #endif and non-constant automatic aggregate initialization like:) void foo(int a, int b, int c) { int list[] = { a, b, c }; } * Fixed X11 keyboard support to allow non-ASCII keys (>= 128, found on non-US keyboards) to work. * Fixed buggy libtw TwStat(). * Changed libtw to use recursive pthread locks, in order to allow a listener to call (most) Tw* functions safely. * Cleaned up keyboard-based use of gadgets and buttons in some builtin windows. * Cleaned up `-hw=twin' selection handling. * Moved module version numbering from internal symbols to filename: renamed *.so to *.so.$(VERSION). * Added Unicode cut-n-paste, and fixed 8bit cut-n-paste. (twutils still needs to be updated to handle unicode cut-n-paste). * Redesigned libtw code logic to reduce size: libtw.so shrinked by 35%. Wrote hand-optimized i386 assembler functions to further reduce size. (you can disable them compiling with `make SYS_ARCH_I386=n [...]') * Added libtw caching of missing server functions. Made some minor incompatible changes to TWS_* defines in . Partially incompatible changes: merged TwWriteRowWindow() into TwWriteAsciiWindow(), renamed TwResizeWindow() to TwResizeWidget() (server side implementation of TwResizeWidget() still incomplete for gadgets). * Added more libtw functions, in particular TwFindRowByCodeWindow() and Tw[Raise|Lower|Circulate|Restack][Widget|Gadget|Window|Screen|Row|MenuItem]() Glitch warning: altering a menu the user is interacting with may cause some visual incoherencies like misplaced menu windows, which go away when you close the misplaced window. From 0.4.0 to 0.4.1: (Massimiliano Ghilardi, 30 Dec 2001) * Fixed window smart placement if screen is scrolled and not at (0,0). * Fixed math overflow causing `twcat' window not to show up. * Fixed button labels on "Buttons" window. * Fixed memory leak in re-reading .twinrc. * Fixed charset for non-ascii gadget contents. * Fixed an error message report in `-hw=tty' being sent to wrong file descriptor. * Fixed twin/twdisplay segfault when starting `-hw=X@' and broken option parsing when starting `-hw=X@,'. * Fixed display hang after the last ",slow" display was closed during video activity. * Fixed a few compile errors with gcc 3.0 (thanks to Debian people for this). * Fixed build errors when compiling without Unicode support. * Removed some gcc extensions lurking in the code, as arithmetic on (void *) and on casted pointers like this: int c; char *s; c = *((int *)s)++; * Worked around KDE `knotes' spamming requests for selection contents, which resulted in `-hw=X' internal error "hw_X11.c: X11_SelectionRequest_up(): too many nested X Selection Request events!" * Updated twsysmon to linux kernel 2.4 style disk activity report. * Added a few more long options to twdisplay and twattach. * Cleaned up namespace for libraries version-related #defines. * Cleaned up Makefiles to avoid unnecessary recompiling after configuration changed. * Cleaned up libtw error reporting when socket server module is not running: libtw now reports "connection lost (socket module may be not running on server)" instead of the generic "connection lost (explicit kill or server shutdown)" * Added option `,ctty' to -hw=tty display driver. It tries to grab given tty as the controlling terminal. Helps greatly in detecting tty resizes, but may cause other processes running on that tty to quit upon display detach (on Linux, it happens only if you are root and use this option for `twattach', or also for `twdisplay' but only if the given tty is not twdisplay's controlling tty). * Added `-envrc' option to twin and to twdm: if given, twin runs the script .twenvrc.sh and reads its output, setting environment variables accordingly. Useful if twin or twdm are started by init(8) and don't have a decent $PATH. If twin is started with both `-envrc' and `-secure' (twdm *always* starts twin with `-secure'), execution of .twenvrc.sh is delayed until SetServerUid() is called, i.e. when user logs in, so that *his* ~/.twenvrc.sh is executed. A possible use of twdm with this option is placing a line like this in /etc/inittab (supposing twdm is installed in /usr/local/bin) : 1:2345:respawn:/usr/local/bin/twdm -envrc -quiet -hw=tty@/dev/tty1,ctty,TERM=linux with it, users will log in with twdm instead of the usual getty (which must be removed from /etc/inittab) From 0.3.10 to 0.4.0: (Massimiliano Ghilardi, 31 Aug 2001) * Added some more options to twdm, also twdm now sets $HOME to `/root' if it exists and $HOME is either `/' or unset. * Added caching to Tutf_UTF_16_to_*() conversions. * Added keypad state restoring on detaching a -hw=tty[...] display. * Updated `twmapscrn' using kbd-1.06 sources. * Fixed libtw build on SunOS bombing out at #include . * Fixed server-side bug causing missing fields on twlsobj for non-i386 architectures. * Fixed broken user charset translation (ESC(K ) in terminals and a few related bugs in libtutf translation routines. This should fix problems with cyrillic and other charsets. * Added utf-8 support to tty emulator and to tty display driver to properly handle unicode. * Changed makefiles to do the right thing on `make CFLAGS=[...] LDFLAGS=[...]' * Hardened libtw against malicious server data. * Finally enabled `AddScreen' and `Background' commands in .twinrc . Also removed second virtual screen, since you can now create it with the above commands. From 0.3.9 to 0.3.10: (Massimiliano Ghilardi, 31 Jul 2001) * Added `twdm' client. You can now use `twdm' as login manager instead of the obsolete `getty', `login' or the bloated `xdm', `kdm', ... ! * Added `autoconf' support. Twin now uses GNU `./configure' script to detect OS features. * Added command-line driven configuration. Beyond running `make config' or `make menuconfig' interactively, twin can now be configured with `./configure --enable-=[yes|no|mod] ...' or with `scripts/Configure --enable-=[yes|no|mod] ...' * Added `-secure' option to twin, forbids starting external programs (used by `twdm' to stop users from opening root shells). * Merged include/sockprotolist.h and libs/libtw/listmacros.h into include/socklist_m4.h * Started writing libTT, `The Text Toolkit' library. * Fixed some more build problems on FreeBSD and SunOS. Disabled threads on FreeBSD since cause clients to segfault. Any *BSD expert willing to help? * Fixed server event reporting bug after clicking on a gadget. * Fixed AVL trees using uninitialized fields. * Added support for nested menus (can be created, but are not correctly rendered yet). * Fixed setting tty speed, was forced to 0 baud. From 0.3.8 to 0.3.9: (Massimiliano Ghilardi, 25 Jun 2001) * Added Unicode support. * New libtutf library to convert between Unicode and other charsets. * Added `charset=' option to -hw=X11 and -hw=tty. * Bumped libtw major version to 3 due to the following changes: * Added prototype checking to Tw_FindFunction. * Changed events from Window-centric to Widget-centric, to accommodate for corresponding changes in the server. * Changed prototype of some crucial functions: Tw_CreateMenu, Tw_CreateWidget, Tw_CreateGadget, Tw_CreateWindow, Tw_CreateGroup. * Updated all clients to libtw.so.3 API. * Fixed libtw segfaults upon receiving huge replies from server. * Fixed a lot of libtw pointer alignment problems on non-i386 architectures. Some unaligned pointer accesses still probably exist. * Added libtw sanity checks to avoid compiling a client against a libtw with certain data sizes and running it with another libtw with incompatible data sizes (i.e. if you changed Unicode support). * Added Tw_*Stat() functions to retrieve information on libtw objects. Also added `twlsobj' client to demonstrate Tw_*Stat() usage. * Added mouse motion reporting (with no buttons pressed). To enable it from a libtw client, set the TW_WINDOW_WANT_MOUSE_MOTION flag in twidget->Attr. To enable it from within a terminal, send "\033[?999h", to disable send "\033[?999l" (or "\033[?9h" to return to `normal' mouse reporting). * Added cut-n-paste on "Execute" window. * Added keyboard shortcuts to navigate through gadgets on WINDOW_AUTO_KEYS windows: use Arrows, TAB, Return and Escape. * Added dummy support for xterm's change icon title escape sequence. * Started writing twdialog (UNFINISHED). * Fixed shadow drawing errors in mapping/unmapping rolled up windows. * Fixed scrolling and resizing of top window not to corrupt menu bar. * Fixed window mouse selection and cursor visibility when menubar is not on top of display. * Fixed two stupid server bugs introduced in 0.3.8 that made twsysmon and twcat non working. * Fixed off-by-two resize errors with -hw=twin and in twterm client, caused by 0.3.8 change to use given size as window INTERIOR size, not considering the border. * Fixed error recovery on parsing errors in ~/.twinrc file. * Started porting to SunOS (mostly contributed by Brian Witt), and substituted the bash/sed/grep script `MkDep' with a pure C implementation (grabbed and adapted from Linux kernel sources). * libtw optimization: AVL (Adelson-Velskii and Landis) trees used to speed up listener search (grabbed from Linux kernel sources too). * Rewrote server-side implementation of libtw using `m4' preprocessor. Design is now more complex, but resulting code is less than half of the original size if CONF_SOCKET_ALIEN is enabled. * Cleaned up Tw/Tw++.h wrapper: (tlistener) type is now opaque, so that C++ clients do not depend on libtw internals. * Decided and implemented sub-windows focus policy (sub-windows are windows contained or `mapped' inside other windows). * Added support for placing cursor in a sub-window. * Documented 0.3.8 last minute fix in Changelog (read below). From 0.3.7 to 0.3.8: (Massimiliano Ghilardi, 08 Mar 2001) * Last minute fix: added InitAlloc() call to twdisplay. * Added printing of window size on menu during Interactive Resize. * Fixed ~/.twinrc "Resize" command to work correctly when given absolute numbers (i.e. "Resize 92 31" results in a 92x31 window). * Fixed redrawing during press/unpress of gadgets on non-top windows. * Fixed TwCreateWindow() to use given size as window INTERIOR size, not considering the border. Old clients on new server will create slightly larger windows, new clients on old server will create slightly smaller windows... really not lethal. * Fixed TwResizeWindow() for the same problem, and allowed TwResizeWindow() also on non-user-resizeable windows. * Fixed libtw++.h using an uninitialized variable that randomly resulted in non-working listeners. * Fixed terminal emulator to work also as module. Noone noticed this!? * Added socket protocol translation to allow connections from clients with different data sizes and different endianity. Completely backward compatible, as socket protocol was designed for this, but I did not actually implement translation until now. Set CONF_SOCKET_ALIEN in configuration as `y' or `m' to enable it. Known problems still remain in libtw and socket.so on architectures not allowing unaligned pointers. * Added support for TW_WINFL_USEEXPOSE windows and corresponding expose messages (they have type == TW_MSG_WINDOW_CHANGE and code == TW_MSG_WINDOW_EXPOSE). * `twsendmsg Builtin quit' now forces twin to exit. Also changed the twsendmsg default message code from `quit' to `open' : more useful and less risky. * Renamed `DESTDIR' as `libdir' and used `DESTDIR' only for installation. * Applied twin-devfs, twin-ncurses and twin-optflags patches from PLD team (www.pld.org.pl). From 0.3.6 to 0.3.7: (Massimiliano Ghilardi, 19 Feb 2001) * Changed the terminal emulator to close window on shell logout even if there are background processes running (they keep running without a tty). * Also changed the terminal emulator code to set window title from the program name. * Changed hilight/selection on windows not to react to simple clicks: now you need to hold mouse button, drag, then release. * Fixed compile problems on non-(Linux,FreeBSD) systems: changed GNU `grep -E' into plain `grep' and fixed MakeRules to autodetect if "echo" or "echo -e" must to be used to interpret octal sequences. * Fixed an obscure bug with selection paste on a partially obscured window. * Fixed drawing error in Roll Toggle of Maximized windows when menu was not hidden. * Fixed non-working Interactive Drag,Resize if activated with mouse from the menu (broken in 0.3.6). * Fixed keyboard traversing of menus having ONLY the common part. * Fixed non-working virtual screen scrolling while doing Interactive Drag,Resize activated with mouse. * Fixed virtual screen problems: stale selected menubar was drawn when moving down all screens, and clicking on it resulted in a sefgault. Also, activity in a window on a non-top screen was drawn on display even if the window was obscured by another screen. * Further X11 keyboard support cleanups: made arrows and other special keys work also with NumLock/CapsLock active. * Simplified menu windows handling, renamed all object types to use pointers (*) implicitly (no user visible changes). * Optimized display redrawing during heavy activity. * Finished borderless windows support (use Flag TW_WINFL_BORDERLESS). * Added GADGET_TOGGLE flag to use gadgets as checkable buttons, and new `group' object to use gadgets as radio buttons. * Added new ~/.twinrc command to load/unload modules: Module [On|Off] * Added configuration option to log twin messages in "Messages" window. * Updated twin to correctly configure display flags like bell duration/pitch, application keypad, alternate cursor keys. * Updated twevent to print human-readable key names. * Finished client-to-client messages, upgraded twevent and twterm to support them. New tiny client `twsendmsg' to send client-to-client messages: useful to open a new shell window (or any other program running in a tty) from command line: try something like twsendmsg "Builtin" open or twsendmsg "Remote Twin Term" open * Fixed non-reentrant libtw problems. * Added configuration option to make libtw thread-safe (requires POSIX pthread.h). Warning: calling libtw functions asynchronously (i.e. from signal handler) will very often cause a deadlock! Also fixed a semantic issue about blocking in Tw_Flush() and Tw_ReadMsg(). * Added stupid demo client `twthreadtest' to try libtw with threads. * Added more detailed libtw error reporting (Tw_StrErrorDetail()). * Added some more libtw functions. * Added C++ libtw wrapper (libtw++.h). Also wrote the first "serious" client: `twkalc', derived from `kcalc' of the KDE suite. Anyway `twkalc' is distributed separately, in the package `twutils'. * Rationalized and removed some redundant libtw functions. Source, binary and socket protocol compatibility preserved, with two exceptions: using libtw from 0.3.7 with older servers may result in "libtw error: function not supported by server: Tw_MapWidget" or similar errors; Also, you must now explicitly #include to access TwErrno, TwStrError() and related stuff like TW_E* error codes. * Added libtw prototypes to use with Linux ltrace(1) in docs/ltrace.conf From 0.3.5 to 0.3.6: (Massimiliano Ghilardi, 14 Jan 2001) * Added limited ShiftFlags reporting on keyboard events. * Added ShiftFlags support to Key bindings in ~/.twinrc and a commented out example for using Alt-Tab to cycle through windows. * Added Menu -> File -> Execute to run arbitrary programs without having to open a terminal. * Started adding borderless windows (still incomplete). * Added option ",slow" to all display drivers. * Added support for xterm's change window title escape sequence. * Added support for nested windows. For example, the "Remove" and "This" buttons in Menu -> � -> Display window now are actually inside a sub-window. This was a much bigger work than what it may seem. * Updated twterm and twin server to correctly allow choosing which xterm-style protocol to send to applications. * Changed signedness of all libtw function parameters used for coordinates and sizes... for consistency they are now signed integers (`dat' or `ldat'). No need to recompile the clients. This allows to place windows (and sub-windows) at negative coords with respect to their parent. * Changed some libtw functions not yet used by any client to take advantage of the new general `widget' type. * Fixed missing setting TERM=linux in twterm. * Fixed RC Virtual Machine to use the window you clicked upon instead of the currently focused window. * Fixed SEGFAULT on Menu -> Window -> Send HotKey and RC function `SyntheticKey' used by it. * Fixed Menu -> Window -> Next and RC function `Window 1' used by it. * Fixed SneakSetupMouse(): there were some glitches if you did Interactive [Menu,Scroll,...] with keyboard and then you pressed mouse (yeah, evil). * Fixed cursor positioning during Interactive Drag or Scroll of FullScreen first window on -hw=tty display if /dev/vcsa* output was used. * Some more tweaking in -hw=tty display driver. * Fixed an old bug on backward window text selection. * Fixed another bug concerning selection on WINFL_USEROWS windows. * Fixed a compile bug in methods.c when modules are disabled. * Fixed a compile problem with X11 display driver on some platforms. * Fixed display corruption when running "mutt" inside "screen" inside "twterm"... I wrote absolute/relative coords the wrong way. Thanks to the helpful guy that reported this bug but never sent strace logs of it *grin*. * Fixed redrawing of rolled-up out-of-screen windows. * Changed selection color and tty display driver mouse pointer color. * Fixed server and socket protocol versioning. * New `make Torture' target: it compiles every possible source file under every possible configuration. Use to help me find bugs! You can torture a specific set of source files with `make torture..c torture.c ...' Example: `cd server; make torture.wm.c torture.methods.c' * Fixed another pair of compile bugs found with `make Torture'. From 0.3.4 to 0.3.5: (Massimiliano Ghilardi, 20 Dec 2000) * Compatibility break: fixed heavily sick mouse event protocol (it swapped middle/right buttons in Drag and Release, both on server and client side). This means that mouse-aware clients compiled against pre-0.3.5 libtw will not work properly with twin 0.3.5 and vice-versa. Sorry. * Removed suid-root or sgid-tty privileges to twin. You will need to manually add such privileges, as you do it AT YOUR OWN RISK. * Made the builtin window manager configurable and added RC parser for ~/.twinrc configuration file. In addition to creating the bison/yacc and lex files for RC parser and the RC Virtual Machine (it runs mouse/keyboard binds and menu functions), I had to completely rewrite the window manager :-( * Internal changes to accommodate for on-the-fly reload of ~/.twinrc The common part of the menu is not anymore a private copy: all menus access the same shared entry, which can change without having to adjust each menu (no user-visible effects). * Renamed twattach/twdisplay `-s' (silent) option to `-q' (quiet). Also changed silent/quiet option implementation to avoid race conditions. Mixing twin, twattach or twdisplay from version 0.3.5 with older ones will not work if you specify `-q' (or `-s' for older versions). * Added exclusive displays: started using option `-x' from twin, twattach or twdisplay. Option `-s' now means "shared" and is opposite of `-x' "exclusive". * New mini-client `twfindtwin' to find the TWDISPLAY of a running twin and mini-script `twstart' to attach to a running twin or start it. * Added sanity version checking on all modules. Twin now refuses to load a module of different version. * Cleaned up X11 driver shutdown in case of errors. Now closing an X window used by twin only detaches that display, without killing twin. * Removed panic shutdown when getting SIGHUP. Now SIGHUP just closes the display attached to the controlling tty, if any. In practice: closing the tty where twin is running in no longer causes twin to quit, but just to detach from the tty. To quit, ALWAYS use Menu -> File -> Quit. * Fixed a compile bug in hw_tty.c when termcap/ncurses driver was not enabled. * Fixed drawing errors when scrolling text in a rolled up window. * Added stricter compile checks using `const' attribute. * Updated the README and started writing other documentation in docs/ subdirectory (still incomplete). * Renamed Menu -> � -> Borders window as Menu -> � -> Buttons. From 0.3.3 to 0.3.4: (Massimiliano Ghilardi, 11 Sep 2000) * FreeBSD support added by Andreas Schweitzer. Thanks! * Fixed SEGFAULT when doing cut-n-paste on -hw=tty,stdout. * twdisplay did not react correctly to resize denials. Fixed. * Option `-nohw' added to twin: starts in the background without display. * Options `-h', `-help', `-V' and `-version' added to twin and twterm. * Termcap/ncurses driver added to -hw=tty. Now twin can run on almost any text terminal. * Options ",termcap", ",colorbug" and ",xterm" added to -hw=tty. * RollUp button "><" added on all windows. Can reduce the window to its titlebar and restore it to normal size. * Support for "floating" shadows added (i.e. so displaced to be separated from the window). * Menu -> � -> Borders window added to tweak window borders look. Currently allows to move buttons. From 0.3.2 to 0.3.3: (Massimiliano Ghilardi, 12 Jul 2000) * Ported to AIX 3.2. I only had to fix minor problems like #includes and a few functions not available on it. Twin still does not compile out-of-the-box on AIX 3.2 and you need to work a little manually, see README.porting. * Added twin <-> libtw protocol handshaking. Tweaked internal libtw protocol to allow passing NULL instead of arrays where it makes sense; WARNING: don't mix twin or libtw from 0.3.3 and up with older twin or libtw... it will not work. * Cleaned up and modularized the window manager. Now you can write your own twin window manager! * Fixed SEGFAULT on video activity while running detached. * Fixed two socket-related bugs that could send libtw initialization data to the wrong client, freezing both who gets the unexpected data and who was waiting for it. This happened more often if twdisplay was in use. * Optimized custom malloc/free with memory blocks > PAGE_SIZE. * Added mouse support and `This' button to Display Window. * X11 keyboard support cleanups. From 0.3.1 to 0.3.2: (Massimiliano Ghilardi, 08 Jun 2000) * Fixed internal FdWQueued bookkeeping. * Fixed mouse redrawing problems with `-hw=tty'. * Fixed libtw to let twattach and twdisplay work also on compressed connections. * Fixed a few SEGFAULTs on exit. * Fixed a buffer overrun in twterm which sometimes made it completely non-working. * Fixed 1x1 display detection after Menu -> � -> Detach * New option `,noinput' common to all display HW : starts the display as view-only, ignoring all mouse/keyboard input coming from it. * Added `make menuconfig': it uses "dialog" as user interface. Of course, let me know if your version of dialog gives problems on `make menuconfig'. * Fixed palette support on Linux console. * Completely rewritten cut-and-paste code to make it non-blocking on the server. Updated all clients, display drivers and twdisplay for the new Selection API: now twdisplay supports Selection too. Selection support on hw_tty and hw_ggi is still missing since underlying HW does not have an usable Selection mechanism. People, the code I had to write for cut-and-paste is a nightmare! From 0.3.0 to 0.3.1: (Massimiliano Ghilardi, 16 May 2000) * Updated README for the changes in twattach and for multiple display support. * Fixed autoloading consolemap translation from kernel, which got broken in 0.3.0 * Fixed `disable blink/high background' option, which got broken in 0.3.0 * Fixed small redraw glitches on X11 display when window gets unobscured. * Added option `drag' to X11 display driver. The driver will try to use XCopyArea to speedup redrawing only if you explicitly specify `-hw=X[@...],drag...' Previously this was enabled by default, but I noticed many X servers eat more CPU with XCopyArea than with a redraw. Your mileage may vary. * Optimized expose events on X11 display not to cause redraws also on other displays. * Optimized attach/detach in multi-display scenario if no resize happens: draw only on the new display HW. * Finished smart display resizing. Try attaching/detaching/resizing one of the displays when multiple ones are used... * Finished twdisplay (required adding some new libtw functions). Actually a pair of small things are still missing in twdisplay: cut-and-paste compatibility with the real display (X11, etc..) and palette changing support, but it is equally *VERY* usable. Please take a few minutes to carefully (re)read section 8. Attach/Detach of the README as twdisplay adds noticeable power to twin's attach/detach capabilities! From 0.2.8 to 0.3.0: (Massimiliano Ghilardi, 10 May 2000) * Added VNC-style multiple simultaneous displays support and updated twattach to manage them. Now you can have twin:0 display on X and on twin:1 which displays on twin:0 ... Also fixed a few deadlocks related to such a setup. * (UNFINISHED) Added VNC-style client-implemented displays: `twdisplay' starts a display driver then connects to twin and registers it. This allows any kind of setups, including attaching twin on a console of another machine, or having twin:0 display both on X and on twin:0 itself (!), and also protects twin from deadlocks and crashes of libX11 and other libraries used for the various displays. * Due to the two changes above, NEVER assume twin quitted just because you closed all its displays. Even killing a server (X, another twin, ...) where twin was displaying may not kill it; To be sure twin actually exits, either use Menu -> File -> Quit from the default menu or, if you really feel brutal, send it a fatal signal (SIGTERM, SIGSEGV, ...). Sending SIGKILL is not advised, as tty displays will be left messed up and you will get a stale /tmp/.Twin: socket. * Modified HW display drivers to allow multi-head. * Modified libtw to allow multi-head, and bumped version number to libtw.so.2. Clients will need to be recompiled to use the new library. * Added Menu -> � -> Display to list / detach displays. * Added Menu -> � -> Refresh. * Continued libggi display. Still INCOMPLETE (keyboard doesn't work), but I feel more and more unsatisfied by libggi and lost enthusiasm about it. * Fixed memory and file descriptor leaks in Tw_Close() * Added option `-hw=tty@-' to twattach: tells twin to attach to its own controlling tty. (`-hw=tty' instead uses the controlling tty of twattach) From 0.2.7 to 0.2.8: (Massimiliano Ghilardi, 02 May 2000) * Added options `stdout' and `TERM=' to display `-hw=tty' The first is to force twin to use stdout as display method on Linux console even if vcsa is available. The second option makes possible for twattach to specify the terminal type. Usage: `-hw=tty[@device],TERM=' or `-hw=tty[@device],stdout' * Added option `font=' to display `-hw=X'. * Added INCOMPLETE support for libggi display, use with `-hw=ggi' * Added `-padx ' and `-pady ' options to twsetroot. * Added option `-e cmd [args ...]' to twterm. Example: twterm -e pine * Cleaned up mixing Menu -> File -> Suspend and Menu -> File -> Detach * Cleaned up core dumping: core now correctly spots where fatal signals were received. * Added consolemap translation support, in a way that is independent from the underlying display (the one in 0.2.7 worked only on Linux console with -hw=tty,stdout) Created `twmapscrn', the twin-equivalent of `mapscrn'. When started from Linux console, twin will already load the current consolemap translation, so twmapscrn is often not necessary. This will hopefully make a certain russian user happy *GRIN*. From 0.2.6 to 0.2.7: (Massimiliano Ghilardi, 17 Apr 2000) * Added configurable screen background, and the external program `twsetroot' to customize it. * Top window and Focused window are no longer the same thing: now you can focus a non-top window too. * Also changed the effect of the BACK button on the window top-right corner: now it acts as Raise+Focus on non-top windows, and as Lower+UnFocus on top window. * Left-clicking on a window no longer Raises it, only Focuses it: try dragging or resizing a non-top window ;) * Left-clicking on the screen background UnFocuses all windows and pops up the Default Menu. * Added Menu -> Window -> Raise/Lower * Added WM Smart Window Placement. Coders note: Just don't specify where you want to Map the window, and the WM will (try to) choose a good place. * Added X11 selection compatibility: you can now cut-n-paste from X11 to twin and vice-versa. * Hopefully fixed non-english (russian, ...) translation table support when running on Linux console (i.e. mapscrn(8); feedback welcome). On other displays, it is just not supported yet :( * Fixed a memory leak in twsysmon. * Fixed a SEGFAULT when moving windows out-of-screen. From 0.2.5 to 0.2.6: (Massimiliano Ghilardi, 04 Apr 2000) * Fixed random SEGFAULT on Menu -> Window -> Send HotKey * Fixed an insidious bug: after twin was detached-and-reattached, the tty of the next opened shell window was becoming the controlling tty of twin; instead a reattached twin should run with no controlling tty at all. This had the nasty side effect of killing twin when closing the ! * Added configure option to disable blink / high intensity background on textmode terminals. This should fix headaches of people too lazy to use SVGATextMode that keep looking at blinking focused window ;) * Finished Window List. It pops up by middle-click on the desktop, and it also gets automatically updated when you open/close/reorder windows :) * Added Menu -> Window -> Scroll for keyboard-based window scrolling. * `twattach -v ' now reports any error message generated during the attach attempt (`-v' stands for `verbose'). Unluckily, this change makes version 0.2.6 of twin and twattach incompatible with older versions. Always use twin and twattach of the same version and you will be fine. * Added Menu -> � -> Option window to change runtime options: shadows displacement, cursor visibility, tty blink/high background, auto-hide menu, custom font (the latter requires running on a Linux console and loading the VGA font file fonts/vgafont.raw) Side effect: When the Menu is auto-hidden, Menu -> Window -> gives a real fullscreen window. From 0.2.4 to 0.2.5: (Massimiliano Ghilardi, 27 Mar 2000) * Made display size persistant (if HW allows twin to choose size). * Fixed `twattach -hw=tty' to correctly react to window size change, and fixed `Twin, native' display method for the same problem. * Cleaned up copyright: libtw is now LGPLed. * Added KeyCode support on X11 and Linux console drivers: keyboard event also report a meaningful TW_* code for direct keyboard recognition. This allows keyboard shortcuts for menu/window/screen actions like resizing a window or transversing a menu. Infact next change is... * Rebuilt hotkey support for menu/window/screen actions. * Started adding Window List and Menu `Common Items'. * Modularized HW display drivers. If you compiled some HW support as module, twin will NOT autoprobe for it and you will need to use `twin -hw=' to load and use a modularized HW driver. From 0.2.3 to 0.2.4: (Massimiliano Ghilardi, 20 Mar 2000) * Fixed a SEGFAULT at startup when compiled without "Use custom malloc/free routines (EXPERIMENTAL)". * Fixed build problems when compiling without X11 support. From 0.2.2 to 0.2.3: (Massimiliano Ghilardi, 14 Mar 2000) * Fixed a bunch of SEGFAULTs when displaying a screen without windows. * Added a second screen, just to show twin handles it. * Added a default menu when no windows are on screen... so I can omit showing the clock at startup without making twin useless :) * Added libtw support: twin can now directly connect to another twin, open a window there and display on it. * Twin can now runtime attach/detach to any supported display; look README, section "8) Attach/Detach" for details. * Added twin_wrapper to have twin append its TWDISPLAY on command line. From 0.2.1 to 0.2.2: (Massimiliano Ghilardi, 06 Mar 2000) * Fixed a SEGFAULT when switching to X11 display method after a Suspend. * Added gzip (compressed) socket support. From 0.2 to 0.2.1: (Massimiliano Ghilardi, 22 Feb 2000) * Optimized main loop by reordering MsgPort checks; Result: removed two extra loops across the whole main loop for each external event (keyboard,mouse,clients) received. * Tweaked socket protocol to decrease bandwidth usage. twin-0.9.0/INSTALL000066400000000000000000000027341377535120600135510ustar00rootroot00000000000000 Building and installing twin For the impatient, it basically reduces to ./configure make then run as root make install on Linux, also remember to run as root: ldconfig on FreeBSD instead, remember to run as root: ldconfig -R To compile twin you need the following programs installed on your system: * a Bourne-shell or compatible (for example bash, dash, ash...) * make (most variants are supported: GNU make, BSD make...) * an ANSI C compiler (for example gcc or clang) For detailed instructions about compiling and installing twin, see the file `Tutorial', sections 3 and 4, distributed with twin in the docs/ subdirectory. In summary, it is STRONGLY recommended to install at least the following packages before compiling twin (the exact names depend on the operating system or Linux distribution): * x11-dev - may be named x11-devel, libx11-dev ... * xft-dev - may be named xft-devel, libxft-dev ... * ncurses-dev - may be named ncurses-devel, libncurses-dev ... * zlib-dev - may be named zlib1g-dev, zlib-devel, libzlib-dev ... On Linux, it is STRONGLY recommended to also install the following package before compiling twin: * gpm-dev - may be named gpm-devel, libgpm-dev ... For a discussion about MANUALLY configuring twin (almost never necessary), see the help file `Configure', again in the docs/ subdirectory. -- WARNING: if you manually enable options that were disabled by `./configure', build will almost certainly fail! -- twin-0.9.0/Makefile.am000066400000000000000000000052041377535120600145470ustar00rootroot00000000000000SUBDIRS = docs include libs clients test server ACLOCAL_AMFLAGS = -I m4 pkglibexecdir = $(pkglibdir) pkgdata_DATA = BUGS COPYING COPYING.LIB Changelog.txt INSTALL README README.porting twin-current.lsm pkglibexec_SCRIPTS = system.twenvrc.sh system.twinrc install-exec-hook: @if echo "$(host_triplet)" | $(GREP) linux >/dev/null 2>&1 ; then \ CMD_LDCONFIG="ldconfig" ; \ elif echo "$(host_triplet)" | $(GREP) freebsd >/dev/null 2>&1 ; then \ CMD_LDCONFIG="ldconfig -R" ; \ else \ CMD_LDCONFIG="" ; \ fi; \ if test "x$$CMD_LDCONFIG" != x ; then \ CMD_ERR1=""; \ CMD_ERR2=""; \ CMD_ERR3=""; \ if id 2>/dev/null | $(EGREP) "^uid=0" >/dev/null 2>&1 ; then \ true; \ else \ CMD_ERR1="installing with non-root user \"`whoami 2>/dev/null`\""; \ fi; \ if test "x$(DESTDIR)" != x ; then \ CMD_ERR2="installing to non-null DESTDIR = \"$(DESTDIR)\""; \ fi; \ if test "x$(host_triplet)" != "x$(build_triplet)" ; then \ CMD_ERR3="cross-compile detected, host system \"$(host_triplet)\" != build system \"$(build_triplet)\""; \ fi; \ if test "x$$CMD_ERR1$$CMD_ERR2$$CMD_ERR3" = x ; then \ echo " $$CMD_LDCONFIG" ; \ $$CMD_LDCONFIG ; \ else \ echo "==================================================================="; \ echo "=========================== WARNING ==============================="; \ echo "==================================================================="; \ echo "=== ==="; \ echo "=== cannot run required command \"$$CMD_LDCONFIG\" now. reasons: ==="; \ echo "=== ==="; \ if test "x$$CMD_ERR1" != x ; then \ echo "=== * $$CMD_ERR1"; \ fi; \ if test "x$$CMD_ERR2" != x ; then \ echo "=== * $$CMD_ERR2"; \ fi; \ if test "x$$CMD_ERR3" != x ; then \ echo "=== * $$CMD_ERR3"; \ fi; \ echo "=== ==="; \ echo "=== remember to run \"$$CMD_LDCONFIG\" with root privileges (or reboot) ==="; \ echo "=== after you install twin into its final location, ==="; \ echo "=== otherwise you may receive \"library not found\" errors ==="; \ echo "=== ==="; \ echo "==================================================================="; \ echo "==================================================================="; \ echo "==================================================================="; \ fi; \ fi twin-0.9.0/Makefile.in000066400000000000000000001020561377535120600145630ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkglibexecdir)" \ "$(DESTDIR)$(pkgdatadir)" SCRIPTS = $(pkglibexec_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(pkgdata_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/admin/compile \ $(top_srcdir)/admin/config.guess \ $(top_srcdir)/admin/config.sub $(top_srcdir)/admin/install-sh \ $(top_srcdir)/admin/ltmain.sh $(top_srcdir)/admin/missing \ COPYING COPYING.LIB INSTALL README admin/compile \ admin/config.guess admin/config.sub admin/depcomp \ admin/install-sh admin/ltmain.sh admin/missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print pkglibexecdir = $(pkglibdir) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = docs include libs clients test server ACLOCAL_AMFLAGS = -I m4 pkgdata_DATA = BUGS COPYING COPYING.LIB Changelog.txt INSTALL README README.porting twin-current.lsm pkglibexec_SCRIPTS = system.twenvrc.sh system.twinrc all: all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): install-pkglibexecSCRIPTS: $(pkglibexec_SCRIPTS) @$(NORMAL_INSTALL) @list='$(pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkglibexecdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(pkglibexecdir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(pkglibexecdir)$$dir" || exit $$?; \ } \ ; done uninstall-pkglibexecSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(pkglibexecdir)'; $(am__uninstall_files_from_dir) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \ done uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-zstd: distdir tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ *.tar.zst*) \ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(SCRIPTS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkglibexecdir)" "$(DESTDIR)$(pkgdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgdataDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-pkglibexecSCRIPTS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgdataDATA uninstall-pkglibexecSCRIPTS .MAKE: $(am__recursive_targets) install-am install-exec-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ dist-xz dist-zip dist-zstd distcheck distclean \ distclean-generic distclean-libtool distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-exec-hook install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-pkgdataDATA install-pkglibexecSCRIPTS \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-pkgdataDATA uninstall-pkglibexecSCRIPTS .PRECIOUS: Makefile install-exec-hook: @if echo "$(host_triplet)" | $(GREP) linux >/dev/null 2>&1 ; then \ CMD_LDCONFIG="ldconfig" ; \ elif echo "$(host_triplet)" | $(GREP) freebsd >/dev/null 2>&1 ; then \ CMD_LDCONFIG="ldconfig -R" ; \ else \ CMD_LDCONFIG="" ; \ fi; \ if test "x$$CMD_LDCONFIG" != x ; then \ CMD_ERR1=""; \ CMD_ERR2=""; \ CMD_ERR3=""; \ if id 2>/dev/null | $(EGREP) "^uid=0" >/dev/null 2>&1 ; then \ true; \ else \ CMD_ERR1="installing with non-root user \"`whoami 2>/dev/null`\""; \ fi; \ if test "x$(DESTDIR)" != x ; then \ CMD_ERR2="installing to non-null DESTDIR = \"$(DESTDIR)\""; \ fi; \ if test "x$(host_triplet)" != "x$(build_triplet)" ; then \ CMD_ERR3="cross-compile detected, host system \"$(host_triplet)\" != build system \"$(build_triplet)\""; \ fi; \ if test "x$$CMD_ERR1$$CMD_ERR2$$CMD_ERR3" = x ; then \ echo " $$CMD_LDCONFIG" ; \ $$CMD_LDCONFIG ; \ else \ echo "==================================================================="; \ echo "=========================== WARNING ==============================="; \ echo "==================================================================="; \ echo "=== ==="; \ echo "=== cannot run required command \"$$CMD_LDCONFIG\" now. reasons: ==="; \ echo "=== ==="; \ if test "x$$CMD_ERR1" != x ; then \ echo "=== * $$CMD_ERR1"; \ fi; \ if test "x$$CMD_ERR2" != x ; then \ echo "=== * $$CMD_ERR2"; \ fi; \ if test "x$$CMD_ERR3" != x ; then \ echo "=== * $$CMD_ERR3"; \ fi; \ echo "=== ==="; \ echo "=== remember to run \"$$CMD_LDCONFIG\" with root privileges (or reboot) ==="; \ echo "=== after you install twin into its final location, ==="; \ echo "=== otherwise you may receive \"library not found\" errors ==="; \ echo "=== ==="; \ echo "==================================================================="; \ echo "==================================================================="; \ echo "==================================================================="; \ fi; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: twin-0.9.0/README000077700000000000000000000000001377535120600146442README.mdustar00rootroot00000000000000twin-0.9.0/README.git000066400000000000000000000014371377535120600141610ustar00rootroot00000000000000 README.git hints to download twin from git and successfully compile it (mostly for developers) The twin GIT repository is hosted by Github, you can download it with: git clone https://github.com/cosmos72/twin/ Once you downloaded twin from Github, you need to: a) cross your fingers, hoping you got a working snaphot of the GIT tree (there is no warranty the GIT tree will even build) b) convince automake machinery that no files need to be autogenerated, then compile. In practice: sh admin/after-bootstrap-touch-files.sh ./configure make then run as root: make install on Linux you will also need, still as root: ldconfig instead on FreeBSD you will need, still as root: ldconfig -R twin-0.9.0/README.md000066400000000000000000000077301377535120600140000ustar00rootroot00000000000000-------------------------------------------------------------- Twin - a Textmode WINdow environment, by Massimiliano Ghilardi -------------------------------------------------------------- Version 0.8.1 Twin is a windowing environment with mouse support, window manager, terminal emulator and networked clients, all inside a text display. It supports a variety of displays: * plain text terminals (any termcap/ncurses compatible terminal, Linux console, twin's own terminal emulator); * X11, where it can be used as a multi-window xterm; * itself (you can display a twin on another twin); * twdisplay, a general network-transparent display client, used to attach/detach more displays on-the-fly. Currently, twin is tested on Linux (i386, x86_64, ARM, ARM64, PowerPC, Alpha, Sparc), on Mac OS X (x86_64) and on FreeBSD (i386, x86_64). I had yet no chance to seriously test it on other systems. -------------------------------------------------------------- Documentation [Tutorial](docs/Tutorial) A quite complete tour of twin features: the user interface, how to use twin clients, compression, attaching/detaching displays, fonts. It also contains installation instructions and some caveats for system administrators. [COPYING](COPYING) License: twin server and clients are GPL'ed software. [COPYING.LIB](COPYING.LIB) Library license: the libraries libtutf, libtw, libTT are LGPL'ed software. [INSTALL](INSTALL) Quick compile/install guide. [system.twinrc](system.twinrc) A detailed example of ~/.twinrc look-n-feel configuration file. The following documentation is useful mostly to developers: [Configure](docs/Configure) Description of twin configuration options with the meaning of every single one. [README.git](README.git) Hints to build twin from GIT repository. [README.porting](README.porting) Tips and warnings to compile twin on unsupported OSes. [libtw.txt](docs/libtw.txt) reference API for programmers who want to write twin clients (INCOMPLETE). [libtw++.txt](docs/libtw++.txt) reference API for programmers who want to write twin C++ clients (INCOMPLETE). -------------------------------------------------------------- Getting twin Since you are reading this README, you probably already have it, anyway twin can be downloaded from https://github.com/cosmos72/twin -------------------------------------------------------------- Building and installing twin For detailed instructions about compiling and installing twin, see sections 3 and 4 of the file [docs/Tutorial](docs/Tutorial) For the impatient, it basically reduces to ``` ./configure make ``` then run as root ``` make install ``` on Linux, also remember to run as root: ``` ldconfig ``` on FreeBSD instead, remember to run as root: ``` ldconfig -R ``` To compile twin you need the following programs installed on your system: * a Bourne-shell or compatible (for example bash, dash, ash...) * make (most variants are supported: GNU make, BSD make...) * an ANSI C compiler (for example gcc or clang) Note: it is STRONGLY recommended to install at least the following packages before compiling twin (the exact names depend on the operating system or Linux distribution): * x11-dev - may be named x11-devel, libx11-dev ... * xft-dev - may be named xft-devel, libxft-dev ... * ncurses-dev - may be named ncurses-devel, libncurses-dev ... * zlib-dev - may be named zlib1g-dev, zlib-devel, libzlib-dev ... On Linux, it is STRONGLY recommended to also install the following package before compiling twin: * gpm-dev - may be named gpm-devel, libgpm-dev ... For a discussion about MANUALLY configuring twin (almost never necessary), see the file [docs/Configure](docs/Configure). -- WARNING: if you manually enable options that were disabled by `./configure', build will almost certainly fail! -- -------------------------------------------------------------- Other topics: See the rest of the documentation, starting from the [Tutorial](docs/Tutorial) Greetings, Massimiliano Ghilardi twin-0.9.0/README.porting000066400000000000000000000031341377535120600150540ustar00rootroot00000000000000 README.porting useful tips and useless warnings for people trying to compile twin on non-Linux systems Various users asked for twin portings on many platforms, yet the author only has access to Linux and SunOS systems so this file is/will be mostly user contributed. Compiling on FreeBSD: Andreas Schweitzer contributed the patch to have twin correctly compile on FreeBSD. In case you meet problems, you can e-mail the author but remember that he is not a FreeBSD expert at all. Tips and caveats: Only X and twin driver are tested, tty (termcap/ncurses) driver has known problems on FreeBSD console: in particular, the PAUSE key does not work; use F4 instead. Quite obviously, Linux console driver does not compile: it's Linux specific and will get disabled. Running `ldconfig' with no parameters may be not a good idea on FreeBSD: try with `ldconfig -R'. A last note: FreeBSD native console driver is not yet available. Any volunteer going to code it? Compiling on AIX: Once it "mostly" worked, but it's untested and unmaintained. Compiling on SunOS: If you have problems compilingclients/findtwin.c, add a line int alphasort(); to clients/findtwin.c, and/or change the line saying LDFLAGS_twfindtwin+=$(LD_LIBTW) in clients/Makefile into LDFLAGS_twfindtwin+=$(LD_LIBTW) -L/usr/ucblib -lucb Compiling on ELKS: Stopped at a dead end: when it was attempted, the 'bcc' compiler available with ELKS does not support ANSI C features as automatic aggregate initialization, i.e. the following: void test(void) { int a[] = { 1, 2, 3 }; } so compile fails. twin-0.9.0/TODO/000077500000000000000000000000001377535120600132575ustar00rootroot00000000000000twin-0.9.0/TODO/TODO000066400000000000000000000073241377535120600137550ustar00rootroot00000000000000 SHORT TERM TODOS 1. libTT FIXME merge tttype into ttclass (compare with java) TClass_void ... TClass_ttarg should be real libTT objects FIXME test array length calculations in server/extensions/libTT.c, libs/libTT/HW/twin_*tunnel_c, libs/libTT/method.c. test ttfield/ttmethod attributes encoding, finish (?) attributes decoding finish twin_tunnel and twin_detunnel libTT tunneling drivers: fixme ttclass args are passed through tunneling as pointers, not by id. write twin_detunnel methods FIXME test null_CacheThemeShape_ttprogressbar() and test drawing widgets with non-zero xl,yl DONE tweak libtw to send CallBExtension return value through socket ONLY when needed 2. libTT, part 2 write garbage collector write fake_field(,,r) for o->FN (= Class), o->AVL.AVL* (= AVL*) write ttscrollpane scrollbar policy: always/auto write ttfn_*->FN_super field and recode TTGetSuper_ttfn() write utility to prepend/append components to parents write more widgets: menus, tttabpanel (see Java JTabbedPane and other Java swing components) problem how to draw a ttscrollframe (ttframe plus scrollbars)? libtw twindow scrollbars are not powerful enough, they miss "change event" support. 3. clients add menu options to builtin terminal emulator and to twterm (requires sending some kind of events) to set some of the following options: (ONLY the most useful ones among): utf-8 (unicode) mode charset encoding (latin1, cp437, user, graph), numeric/application keypad, alternate cursor keys, inverted screen, relative/absolute origin, autowrap, autorepeat, mouse reporting (old, new, new+motion), cursor visibility, show ctrl chars, insert mode, cr-lf mapping, color palette. add boldfont= to X11 and xft drivers, to be used instead of thigh foreground. write -hw=fbdev driver. LONG TERM TODOS 1.writing (and documenting) a gtk-like toolkit on top of libtw. DIFFICULTY: don't ask STATUS: assigned (I am currently doing this myself) NOTES: need theme file parser, finish object methods, TTReopen() 3.finish writing 'twdialog' (libtw equivalent of 'dialog'). Does not require a lot of Unix knowledge, but libtw API has almost no documentation yet. DIFFICULTY: intermediate (no docs) STATUS: available 4.writing a libtw screensaver. Quite easy, as really few libtw functions are needed (create a fullscreen window, write in it, quit on keypress); DIFFICULTY: beginner STATUS: available 5.writing whatever libtw client comes to anyone's mind. (more a hope than a TODO); DIFFICULTY: ymmv (Your Mileage May Vary) STATUS: available 6.writing down libtw API documentation. Would be *VERY* useful too, but it's not a trivial task as in many cases one would need to figure out by himself (of course can ask me if he doesn't understand something) what the various functions do. Suggested format for documentation: doxygen javadoc-style comments (i.e. /** comment */ ) inserted in twin/libs/libtw/libtw.c and in include/m4/sockproto.m4h; DIFFICULTY: intermediate (many things are obscure) STATUS: available 7.writing wtmp logging. Requires some knowledge of programming under Unix; DIFFICULTY: beginner STATUS: available 8.random thoughts: "paste" command in menu twclip - show clipboard twdisplay on win32 ?-geometry option to tw* clients keyboard shortcuts and hotkeys for screen scroll cleanup overflows with shadows at window [xy]width = almost max, move arithmetic to [ul]dat Flame libgpm people for /tmp/gpm* sockets, gpm_tried, syslogging, ncurses twin-0.9.0/TODO/twin-thoughts000066400000000000000000000102321377535120600160240ustar00rootroot00000000000000From email-omitted Thu Oct 24 20:06:12 2002 Date: Tue, 22 Oct 2002 12:54:37 +0200 (CEST) From: Massimiliano Ghilardi To: Adam Olsen Cc: twin-develop@lists.sourceforge.net Subject: Re: thoughts and comments on twin On Thu, 17 Oct 2002, Adam Olsen wrote: >A few minutes ago I tried twin, first the debian version, then the >0.4.4 tarball. It's very cool, but I came up with these >thougts/ideas/comments: > >* shift-pageup for scrolling >* mousewheel for scrolling This comes up often, so I will probably put it in a FAQ: When displaying on X (either -hw=X or -hw=xft) it is actually possible to receive shift-pageup keys and to react to them, but all other display drivers (Linux console driver for first) are unable to distinguish shift-pageup from plain pageup, since it uses ascii-keyboard mode like almost all tty programs, not raw-keyboard mode like X or svgalib. I do not want to use raw-keyboard mode to avoid problems like unusable keyboard after a crash and having to implement support for all the national keyboard layouts like X does. (in other words: you can tell Linux kernel which keyboard you have -- with 'loadkeys' and a bunch of files describing every possible national keyboard layout -- X can do the same even if in a different method -- I do not want to have to redo all that stuff for twin) >* bold fonts Yes, this could be an option for X drivers. >* hide mouse cursor when typing I did not think mouse could disturb, expecially since mouse redrawing on -hw=tty is extremely smart and smooth even during heavy scrolling, but yes, this could be an option too. >* backspace in mutt produces beep, not scroll up >* delete in mutt scrolls up, not down This is strange, since twin tries really hard to emulate a Linux terminal EXACTLY. Could you try hitting "ctrl-v" then "backspace" at bash prompt and see what ASCII sequence you get? It should be ^? Same with "ctrl-v" then "delete", should be ^[[3~ If this happens when twin displays on X, be aware that most X servers mess up backspace and delete if you have numlock led turned on. >* move window with super-mouse1-move and resize with super-mouse2-move > different way of having the menu. using the right button is rather > non-intuitive I did not get this, what are super-mouse1-move and super-mouse2-move? You can move a window by dragging its title, and resize it by dragging its lower-right corner (or from the menu, of course). The effect of ANY mouse action can be configured in your ~/.twinrc >* -hw=gfx appears to be attempting to load a 6x13 font, which doesn't > exist. how do I get it to use a properly sized font? There are two (IMHO) nice X11 fonts distributed with twin sources, in the fonts/ subdirectory. One is "vga" and is 8x16, the other is an unicode font and is 9x19. And for -hw=gfx, you should specify something like -hw=gfx,theme=ShinyMetal,font=vga of course theme and font are optional, but you'd better play with them a little to understand how they work: a theme works only if a font with corresponding size can be loaded... >* --hw is much more friendly to my poor brain than -hw That's true, I did not follow GNU guidelines for program arguments. I will change them so that both single hyphens (-hw) and double hyphens (--hw) are accepted. >* twin 0.4.4's tty mode garbles the display in xterm. debian's 0.4.0 >didn't (but didn't support the mouse either) That's a known problem, but, as I answered to whom pointed it out before, I do not consider xterm support mandatory, since if you can display on xterm you can also display on X (with a few exceptions due to firewalls/masqueraders/...). >I have alot of other thoughts on where to take twin (I've wanted >something like it for years), but I'll save those for later, after >I've got -hw=gfx working. :) Good luck and keep sending ideas and comments :-) >-- >Adam Olsen, aka Rhamphoryncus >Have internet, will learn. > Massimiliano Ghilardi ---------------------------------------------------------------- | I have yet to meet a person who had a bad experience of Linux. | | Most have never had an experience. | ---------------------------------------------------------------- twin-0.9.0/acinclude.m4000066400000000000000000000002641377535120600147050ustar00rootroot00000000000000m4_include([admin/tw_version.m4]) m4_include([admin/tw_input_config.m4]) m4_include([admin/tw_c_features.m4]) m4_include([admin/tw_fix_config.m4]) m4_include([admin/tw_output.m4]) twin-0.9.0/aclocal.m4000066400000000000000000001532131377535120600143570ustar00rootroot00000000000000# generated automatically by aclocal 1.16.2 -*- Autoconf -*- # Copyright (C) 1996-2020 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # serial 12 (pkg-config-0.29.2) dnl Copyright © 2004 Scott James Remnant . dnl Copyright © 2012-2015 Dan Nicholson dnl dnl This program is free software; you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation; either version 2 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU dnl General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA dnl 02111-1307, USA. dnl dnl As a special exception to the GNU General Public License, if you dnl distribute this file as part of a program that contains a dnl configuration script generated by Autoconf, you may include it under dnl the same distribution terms that you use for the rest of that dnl program. dnl PKG_PREREQ(MIN-VERSION) dnl ----------------------- dnl Since: 0.29 dnl dnl Verify that the version of the pkg-config macros are at least dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's dnl installed version of pkg-config, this checks the developer's version dnl of pkg.m4 when generating configure. dnl dnl To ensure that this macro is defined, also add: dnl m4_ifndef([PKG_PREREQ], dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) dnl dnl See the "Since" comment for each macro you use to see what version dnl of the macros you require. m4_defun([PKG_PREREQ], [m4_define([PKG_MACROS_VERSION], [0.29.2]) m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ])dnl PKG_PREREQ dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) dnl ---------------------------------- dnl Since: 0.16 dnl dnl Search for the pkg-config tool and set the PKG_CONFIG variable to dnl first found in the path. Checks that the version of pkg-config found dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is dnl used since that's the first version where most current features of dnl pkg-config existed. AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])dnl PKG_PROG_PKG_CONFIG dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------------------------------- dnl Since: 0.18 dnl dnl Check to see whether a particular set of modules exists. Similar to dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) dnl only at the first occurence in configure.ac, so if the first place dnl it's called might be skipped (such as if it is within an "if", you dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_default([$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) dnl --------------------------------------------- dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting dnl pkg_failed based on the result. m4_define([_PKG_CONFIG], [if test -n "$$1"; then pkg_cv_[]$1="$$1" elif test -n "$PKG_CONFIG"; then PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) else pkg_failed=untried fi[]dnl ])dnl _PKG_CONFIG dnl _PKG_SHORT_ERRORS_SUPPORTED dnl --------------------------- dnl Internal check to see if pkg-config supports short errors. AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])dnl _PKG_SHORT_ERRORS_SUPPORTED dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl -------------------------------------------------------------- dnl Since: 0.4.0 dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES might not happen, you should be sure to include an dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $2]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])[]dnl ]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) $3 fi[]dnl ])dnl PKG_CHECK_MODULES dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], dnl [ACTION-IF-NOT-FOUND]) dnl --------------------------------------------------------------------- dnl Since: 0.29 dnl dnl Checks for existence of MODULES and gathers its build flags with dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags dnl and VARIABLE-PREFIX_LIBS from --libs. dnl dnl Note that if there is a possibility the first call to dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to dnl include an explicit call to PKG_PROG_PKG_CONFIG in your dnl configure.ac. AC_DEFUN([PKG_CHECK_MODULES_STATIC], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl _save_PKG_CONFIG=$PKG_CONFIG PKG_CONFIG="$PKG_CONFIG --static" PKG_CHECK_MODULES($@) PKG_CONFIG=$_save_PKG_CONFIG[]dnl ])dnl PKG_CHECK_MODULES_STATIC dnl PKG_INSTALLDIR([DIRECTORY]) dnl ------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable pkgconfigdir as the location where a module dnl should install pkg-config .pc files. By default the directory is dnl $libdir/pkgconfig, but the default can be changed by passing dnl DIRECTORY. The user can override through the --with-pkgconfigdir dnl parameter. AC_DEFUN([PKG_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([pkgconfigdir], [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, [with_pkgconfigdir=]pkg_default) AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_INSTALLDIR dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) dnl -------------------------------- dnl Since: 0.27 dnl dnl Substitutes the variable noarch_pkgconfigdir as the location where a dnl module should install arch-independent pkg-config .pc files. By dnl default the directory is $datadir/pkgconfig, but the default can be dnl changed by passing DIRECTORY. The user can override through the dnl --with-noarch-pkgconfigdir parameter. AC_DEFUN([PKG_NOARCH_INSTALLDIR], [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) m4_pushdef([pkg_description], [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) AC_ARG_WITH([noarch-pkgconfigdir], [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, [with_noarch_pkgconfigdir=]pkg_default) AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) m4_popdef([pkg_default]) m4_popdef([pkg_description]) ])dnl PKG_NOARCH_INSTALLDIR dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) dnl ------------------------------------------- dnl Since: 0.28 dnl dnl Retrieves the value of the pkg-config variable for the given module. AC_DEFUN([PKG_CHECK_VAR], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl _PKG_CONFIG([$1], [variable="][$3]["], [$2]) AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR # Copyright (C) 2002-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.16' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.16.2], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.16.2])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # Figure out how to run the assembler. -*- Autoconf -*- # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_AS # ---------- AC_DEFUN([AM_PROG_AS], [# By default we simply use the C compiler to build assembly code. AC_REQUIRE([AC_PROG_CC]) test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)]) AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)]) _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl ]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. AS_CASE([$CONFIG_FILES], [*\'*], [eval set x "$CONFIG_FILES"], [*], [set x $CONFIG_FILES]) shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`AS_DIRNAME(["$am_mf"])` am_filepart=`AS_BASENAME(["$am_mf"])` AM_RUN_LOG([cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles]) || am_rc=$? done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE="gmake" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi AS_UNSET([am_dirpart]) AS_UNSET([am_filepart]) AS_UNSET([am_mf]) AS_UNSET([am_rc]) rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking is enabled. # This creates each '.Po' and '.Plo' makefile fragment that we'll need in # order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check whether make has an 'include' directive that can support all # the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) AS_CASE([$?:`cat confinc.out 2>/dev/null`], ['0:this is the am__doit target'], [AS_CASE([$s], [BSD], [am__include='.include' am__quote='"'], [am__include='include' am__quote=''])]) if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* AC_MSG_RESULT([${_am_result}]) AC_SUBST([am__include])]) AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2020 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/libtool.m4]) m4_include([m4/ltargz.m4]) m4_include([m4/ltdl.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([acinclude.m4]) twin-0.9.0/admin/000077500000000000000000000000001377535120600136025ustar00rootroot00000000000000twin-0.9.0/admin/after-bootstrap-touch-files.sh000066400000000000000000000006141377535120600214730ustar00rootroot00000000000000#!/bin/sh touch aclocal.m4 touch Makefile.in clients/mapscrn/Makefile.in clients/Makefile.in contrib/twcd/Makefile.in contrib/Makefile.in docs/Makefile.in include/Tutf/Makefile.in include/Makefile.in include/Tw/Makefile.in libs/libtw/Makefile.in libs/libtutf/Makefile.in libs/Makefile.in libs/libltdl/Makefile.in server/hw/Makefile.in server/Makefile.in touch configure touch include/config.h.in twin-0.9.0/admin/bootstrap-clean.sh000066400000000000000000000004641377535120600172370ustar00rootroot00000000000000set -x rm -frv autom4te.cache/ libs/libltdl/ m4/ configure config.cache config.status config.log aclocal.m4 rm -fv admin/aclocal.m4 admin/compile admin/config.guess admin/config.sub admin/depcomp admin/install-sh admin/ltmain.sh admin/missing admin/mkinstalldirs find -name Makefile.in | xargs -d'\n' rm -fv twin-0.9.0/admin/bootstrap.sh000066400000000000000000000002231377535120600161500ustar00rootroot00000000000000#!/bin/sh set -e set -x libtoolize --copy --install --force --ltdl=libs/libltdl aclocal -I admin autoheader automake --add-missing --copy autoconf twin-0.9.0/admin/compile000077500000000000000000000163501377535120600151650ustar00rootroot00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2018-03-07.03; # UTC # Copyright (C) 1999-2020 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program 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 2, or (at your option) # any later version. # # This program 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 program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN* | MSYS*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: twin-0.9.0/admin/config.guess000077500000000000000000001256441377535120600161360ustar00rootroot00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2016 Free Software Foundation, Inc. timestamp='2016-10-02' # This file 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 3 of the License, or # (at your option) any later version. # # This program 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 program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ /sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || \ echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` machine=${arch}${endian}-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case "${UNAME_MACHINE_ARCH}" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case "${UNAME_MACHINE_ARCH}" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; *:Sortix:*:*) echo ${UNAME_MACHINE}-unknown-sortix exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/lslpp ] ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = hppa2.0w ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; *:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; e2k:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; k1om:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; mips64el:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-${LIBC} exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; SX-ACE:SUPER-UX:*:*) echo sxace-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub # that puts up a graphical alert prompting to install # developer tools. Any system running Mac OS X 10.7 or # later (Darwin 11 and later) is required to have a 64-bit # processor. This is not true of the ARM version of Darwin # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; esac cat >&2 </dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: twin-0.9.0/admin/config.sub000077500000000000000000001067631377535120600156020ustar00rootroot00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2016 Free Software Foundation, Inc. timestamp='2016-11-04' # This file 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 3 of the License, or # (at your option) any later version. # # This program 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 program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | e2k | epiphany \ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; leon|leon[3-9]) basic_machine=sparc-$basic_machine ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pru-* \ | pyramid-* \ | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; asmjs) basic_machine=asmjs-unknown ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; e500v[12]) basic_machine=powerpc-unknown os=$os"spe" ;; e500v[12]-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` os=$os"spe" ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; leon-*|leon[3-9]-*) basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; moxiebox) basic_machine=moxie-unknown os=-moxiebox ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ | -onefs* | -tirtos* | -phoenix* | -fuchsia*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -ios) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: twin-0.9.0/admin/depcomp000077500000000000000000000560201377535120600151620ustar00rootroot00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2018-03-07.03; # UTC # Copyright (C) 1999-2020 Free Software Foundation, Inc. # This program 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 2, or (at your option) # any later version. # This program 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 program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: twin-0.9.0/admin/install-sh000077500000000000000000000354631377535120600156210ustar00rootroot00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2014-09-12.12; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # 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 # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. tab=' ' nl=' ' IFS=" $tab$nl" # Set DOITPROG to "echo" to test this script. doit=${DOITPROG-} doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) # $RANDOM is not portable (e.g. dash); use it when possible to # lower collision chance tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 # As "mkdir -p" follows symlinks and we work in /tmp possibly; so # create the $tmpdir first (and fail if unsuccessful) to make sure # that nobody tries to guess the $tmpdir name. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. test_tmpdir="$tmpdir/a" ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: twin-0.9.0/admin/ltmain.sh000066400000000000000000011771671377535120600154460ustar00rootroot00000000000000#! /bin/sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ## by inline-source v2014-01-03.01 # libtool (GNU libtool) 2.4.6 # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 program. If not, see . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.6 Debian-2.4.6-14" package_revision=2.4.6 ## ------ ## ## Usage. ## ## ------ ## # Run './libtool --help' for help with using this script from the # command line. ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # After configure completes, it has a better idea of some of the # shell tools we need than the defaults used by the functions shared # with bootstrap, so set those here where they can still be over- # ridden by the user, but otherwise take precedence. : ${AUTOCONF="autoconf"} : ${AUTOMAKE="automake"} ## -------------------------- ## ## Source external libraries. ## ## -------------------------- ## # Much of our low-level functionality needs to be sourced from external # libraries, which are installed to $pkgauxdir. # Set a version string for this script. scriptversion=2015-01-20.17; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 # Copyright (C) 2004-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # This program 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 3 of the License, or # (at your option) any later version. # As a special exception to the GNU General Public License, if you distribute # this file as part of a program or library that is built using GNU Libtool, # you may include this file under the same distribution terms that you use # for the rest of that program. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNES 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 program. If not, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # Evaluate this file near the top of your script to gain access to # the functions and variables defined here: # # . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh # # If you need to override any of the default environment variable # settings, do that before evaluating this file. ## -------------------- ## ## Shell normalisation. ## ## -------------------- ## # Some shells need a little help to be as Bourne compatible as possible. # Before doing anything else, make sure all that help has been provided! DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # NLS nuisances: We save the old values in case they are required later. _G_user_locale= _G_safe_locale= for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test set = \"\${$_G_var+set}\"; then save_$_G_var=\$$_G_var $_G_var=C export $_G_var _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Make sure IFS has a sensible default sp=' ' nl=' ' IFS="$sp $nl" # There are apparently some retarded systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi ## ------------------------- ## ## Locate command utilities. ## ## ------------------------- ## # func_executable_p FILE # ---------------------- # Check that FILE is an executable regular file. func_executable_p () { test -f "$1" && test -x "$1" } # func_path_progs PROGS_LIST CHECK_FUNC [PATH] # -------------------------------------------- # Search for either a program that responds to --version with output # containing "GNU", or else returned by CHECK_FUNC otherwise, by # trying all the directories in PATH with each of the elements of # PROGS_LIST. # # CHECK_FUNC should accept the path to a candidate program, and # set $func_check_prog_result if it truncates its output less than # $_G_path_prog_max characters. func_path_progs () { _G_progs_list=$1 _G_check_func=$2 _G_PATH=${3-"$PATH"} _G_path_prog_max=0 _G_path_prog_found=false _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} for _G_dir in $_G_PATH; do IFS=$_G_save_IFS test -z "$_G_dir" && _G_dir=. for _G_prog_name in $_G_progs_list; do for _exeext in '' .EXE; do _G_path_prog=$_G_dir/$_G_prog_name$_exeext func_executable_p "$_G_path_prog" || continue case `"$_G_path_prog" --version 2>&1` in *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; *) $_G_check_func $_G_path_prog func_path_progs_result=$func_check_prog_result ;; esac $_G_path_prog_found && break 3 done done done IFS=$_G_save_IFS test -z "$func_path_progs_result" && { echo "no acceptable sed could be found in \$PATH" >&2 exit 1 } } # We want to be able to use the functions in this file before configure # has figured out where the best binaries are kept, which means we have # to search for them ourselves - except when the results are already set # where we skip the searches. # Unless the user overrides by setting SED, search the path for either GNU # sed, or the sed that truncates its output the least. test -z "$SED" && { _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for _G_i in 1 2 3 4 5 6 7; do _G_sed_script=$_G_sed_script$nl$_G_sed_script done echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed _G_sed_script= func_check_prog_sed () { _G_path_prog=$1 _G_count=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo '' >> conftest.nl "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin rm -f conftest.sed SED=$func_path_progs_result } # Unless the user overrides by setting GREP, search the path for either GNU # grep, or the grep that truncates its output the least. test -z "$GREP" && { func_check_prog_grep () { _G_path_prog=$1 _G_count=0 _G_path_prog_max=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo 'GREP' >> conftest.nl "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin GREP=$func_path_progs_result } ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase variable names are used for environment variables. These # variables can be overridden by the user before calling a script that # uses them if a suitable command of that name is not already available # in the command search PATH. : ${CP="cp -f"} : ${ECHO="printf %s\n"} : ${EGREP="$GREP -E"} : ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} ## -------------------- ## ## Useful sed snippets. ## ## -------------------- ## sed_dirname='s|/[^/]*$||' sed_basename='s|^.*/||' # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s|\([`"$\\]\)|\\\1|g' # Same as above, but do not quote variable references. sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' # Sed substitution that converts a w32 file name or path # that contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-'\' parameter expansions in output of sed_double_quote_subst that # were '\'-ed in input to the same. If an odd number of '\' preceded a # '$' in input to sed_double_quote_subst, that '$' was protected from # expansion. Since each input '\' is now two '\'s, look for any number # of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. _G_bs='\\' _G_bs2='\\\\' _G_bs4='\\\\\\\\' _G_dollar='\$' sed_double_backslash="\ s/$_G_bs4/&\\ /g s/^$_G_bs2$_G_dollar/$_G_bs&/ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" ## ----------------- ## ## Global variables. ## ## ----------------- ## # Except for the global variables explicitly listed below, the following # functions in the '^func_' namespace, and the '^require_' namespace # variables initialised in the 'Resource management' section, sourcing # this file will not pollute your global namespace with anything # else. There's no portable way to scope variables in Bourne shell # though, so actually running these functions will sometimes place # results into a variable named after the function, and often use # temporary variables in the '^_G_' namespace. If you are careful to # avoid using those namespaces casually in your sourcing script, things # should continue to work as you expect. And, of course, you can freely # overwrite any of the functions or variables defined here before # calling anything to customize them. EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # # so that you can set exit_status to non-zero if you want to indicate # something went wrong during execution without actually bailing out at # the point of failure. exit_status=$EXIT_SUCCESS # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath=$0 # The name of this program. progname=`$ECHO "$progpath" |$SED "$sed_basename"` # Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` progpath=$progdir/$progname ;; *) _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS=$_G_IFS test -x "$progdir/$progname" && break done IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` progpath=$progdir/$progname ;; esac ## ----------------- ## ## Standard options. ## ## ----------------- ## # The following options affect the operation of the functions defined # below, and should be set appropriately depending on run-time para- # meters passed on the command line. opt_dry_run=false opt_quiet=false opt_verbose=false # Categories 'all' and 'none' are always available. Append any others # you will pass as the first argument to func_warning from your own # code. warning_categories= # By default, display warnings according to 'opt_warning_types'. Set # 'warning_func' to ':' to elide all warnings, or func_fatal_error to # treat the next displayed warning as a fatal error. warning_func=func_warn_and_continue # Set to 'all' to display all warnings, 'none' to suppress all # warnings, or a space delimited list of some subset of # 'warning_categories' to display only the listed warnings. opt_warning_types=all ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Call them using their associated # 'require_*' variable to ensure that they are executed, at most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_term_colors # ------------------- # Allow display of bold text on terminals that support it. require_term_colors=func_require_term_colors func_require_term_colors () { $debug_cmd test -t 1 && { # COLORTERM and USE_ANSI_COLORS environment variables take # precedence, because most terminfo databases neglect to describe # whether color sequences are supported. test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} if test 1 = "$USE_ANSI_COLORS"; then # Standard ANSI escape sequences tc_reset='' tc_bold=''; tc_standout='' tc_red=''; tc_green='' tc_blue=''; tc_cyan='' else # Otherwise trust the terminfo database after all. test -n "`tput sgr0 2>/dev/null`" && { tc_reset=`tput sgr0` test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` tc_standout=$tc_bold test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` } fi } require_term_colors=: } ## ----------------- ## ## Function library. ## ## ----------------- ## # This section contains a variety of useful functions to call in your # scripts. Take note of the portable wrappers for features provided by # some modern shells, which will fall back to slower equivalents on # less featureful shells. # func_append VAR VALUE # --------------------- # Append VALUE onto the existing contents of VAR. # We should try to minimise forks, especially on Windows where they are # unreasonably slow, so skip the feature probes when bash or zsh are # being used: if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then : ${_G_HAVE_ARITH_OP="yes"} : ${_G_HAVE_XSI_OPS="yes"} # The += operator was introduced in bash 3.1 case $BASH_VERSION in [12].* | 3.0 | 3.0*) ;; *) : ${_G_HAVE_PLUSEQ_OP="yes"} ;; esac fi # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # useable or anything else if it does not work. test -z "$_G_HAVE_PLUSEQ_OP" \ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ && _G_HAVE_PLUSEQ_OP=yes if test yes = "$_G_HAVE_PLUSEQ_OP" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_append () { $debug_cmd eval "$1+=\$2" }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_append () { $debug_cmd eval "$1=\$$1\$2" } fi # func_append_quoted VAR VALUE # ---------------------------- # Quote VALUE and append to the end of shell variable VAR, separated # by a space. if test yes = "$_G_HAVE_PLUSEQ_OP"; then eval 'func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1+=\\ \$func_quote_for_eval_result" }' else func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1=\$$1\\ \$func_quote_for_eval_result" } fi # func_append_uniq VAR VALUE # -------------------------- # Append unique VALUE onto the existing contents of VAR, assuming # entries are delimited by the first character of VALUE. For example: # # func_append_uniq options " --another-option option-argument" # # will only append to $options if " --another-option option-argument " # is not already present somewhere in $options already (note spaces at # each end implied by leading space in second argument). func_append_uniq () { $debug_cmd eval _G_current_value='`$ECHO $'$1'`' _G_delim=`expr "$2" : '\(.\)'` case $_G_delim$_G_current_value$_G_delim in *"$2$_G_delim"*) ;; *) func_append "$@" ;; esac } # func_arith TERM... # ------------------ # Set func_arith_result to the result of evaluating TERMs. test -z "$_G_HAVE_ARITH_OP" \ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ && _G_HAVE_ARITH_OP=yes if test yes = "$_G_HAVE_ARITH_OP"; then eval 'func_arith () { $debug_cmd func_arith_result=$(( $* )) }' else func_arith () { $debug_cmd func_arith_result=`expr "$@"` } fi # func_basename FILE # ------------------ # Set func_basename_result to FILE with everything up to and including # the last / stripped. if test yes = "$_G_HAVE_XSI_OPS"; then # If this shell supports suffix pattern removal, then use it to avoid # forking. Hide the definitions single quotes in case the shell chokes # on unsupported syntax... _b='func_basename_result=${1##*/}' _d='case $1 in */*) func_dirname_result=${1%/*}$2 ;; * ) func_dirname_result=$3 ;; esac' else # ...otherwise fall back to using sed. _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` if test "X$func_dirname_result" = "X$1"; then func_dirname_result=$3 else func_append func_dirname_result "$2" fi' fi eval 'func_basename () { $debug_cmd '"$_b"' }' # func_dirname FILE APPEND NONDIR_REPLACEMENT # ------------------------------------------- # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. eval 'func_dirname () { $debug_cmd '"$_d"' }' # func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT # -------------------------------------------------------- # Perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () { $debug_cmd '"$_b"' '"$_d"' }' # func_echo ARG... # ---------------- # Echo program name prefixed message. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname: $_G_line" done IFS=$func_echo_IFS } # func_echo_all ARG... # -------------------- # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_echo_infix_1 INFIX ARG... # ------------------------------ # Echo program name, followed by INFIX on the first line, with any # additional lines not showing INFIX. func_echo_infix_1 () { $debug_cmd $require_term_colors _G_infix=$1; shift _G_indent=$_G_infix _G_prefix="$progname: $_G_infix: " _G_message=$* # Strip color escape sequences before counting printable length for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" do test -n "$_G_tc" && { _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` } done _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes func_echo_infix_1_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_infix_1_IFS $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 _G_prefix=$_G_indent done IFS=$func_echo_infix_1_IFS } # func_error ARG... # ----------------- # Echo program name prefixed message to standard error. func_error () { $debug_cmd $require_term_colors func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 } # func_fatal_error ARG... # ----------------------- # Echo program name prefixed message to standard error, and exit. func_fatal_error () { $debug_cmd func_error "$*" exit $EXIT_FAILURE } # func_grep EXPRESSION FILENAME # ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $debug_cmd $GREP "$1" "$2" >/dev/null 2>&1 } # func_len STRING # --------------- # Set func_len_result to the length of STRING. STRING may not # start with a hyphen. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_len () { $debug_cmd func_len_result=${#1} }' else func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } fi # func_mkdir_p DIRECTORY-PATH # --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { $debug_cmd _G_directory_path=$1 _G_dir_list= if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then # Protect directory names starting with '-' case $_G_directory_path in -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` func_mkdir_p_IFS=$IFS; IFS=: for _G_dir in $_G_dir_list; do IFS=$func_mkdir_p_IFS # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$_G_dir" 2>/dev/null || : done IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. test -d "$_G_directory_path" || \ func_fatal_error "Failed to create '$1'" fi } # func_mktempdir [BASENAME] # ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, BASENAME is the basename for that directory. func_mktempdir () { $debug_cmd _G_template=${TMPDIR-/tmp}/${1-$progname} if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race _G_tmpdir=$_G_template-${RANDOM-0}$$ func_mktempdir_umask=`umask` umask 0077 $MKDIR "$_G_tmpdir" umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$_G_tmpdir" || \ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi $ECHO "$_G_tmpdir" } # func_normal_abspath PATH # ------------------------ # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. func_normal_abspath () { $debug_cmd # These SED scripts presuppose an absolute path with a trailing slash. _G_pathcar='s|^/\([^/]*\).*$|\1|' _G_pathcdr='s|^/[^/]*||' _G_removedotparts=':dotsl s|/\./|/|g t dotsl s|/\.$|/|' _G_collapseslashes='s|/\{1,\}|/|g' _G_finalslash='s|/*$|/|' # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` while :; do # Processed it all yet? if test / = "$func_normal_abspath_tpath"; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result"; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_notquiet ARG... # -------------------- # Echo program name prefixed message only when not in quiet mode. func_notquiet () { $debug_cmd $opt_quiet || func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_relative_path SRCDIR DSTDIR # -------------------------------- # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. func_relative_path () { $debug_cmd func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=$func_dirname_result if test -z "$func_relative_path_tlibdir"; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test -n "$func_stripname_result"; then func_append func_relative_path_result "/$func_stripname_result" fi # Normalisation. If bindir is libdir, return '.' else relative path. if test -n "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result" func_relative_path_result=$func_stripname_result fi test -n "$func_relative_path_result" || func_relative_path_result=. : } # func_quote_for_eval ARG... # -------------------------- # Aesthetically quote ARGs to be evaled later. # This function returns two values: # i) func_quote_for_eval_result # double-quoted, suitable for a subsequent eval # ii) func_quote_for_eval_unquoted_result # has all characters that are still active within double # quotes backslashified. func_quote_for_eval () { $debug_cmd func_quote_for_eval_unquoted_result= func_quote_for_eval_result= while test 0 -lt $#; do case $1 in *[\\\`\"\$]*) _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; *) _G_unquoted_arg=$1 ;; esac if test -n "$func_quote_for_eval_unquoted_result"; then func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" else func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" fi case $_G_unquoted_arg in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and variable expansion # for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_quoted_arg=\"$_G_unquoted_arg\" ;; *) _G_quoted_arg=$_G_unquoted_arg ;; esac if test -n "$func_quote_for_eval_result"; then func_append func_quote_for_eval_result " $_G_quoted_arg" else func_append func_quote_for_eval_result "$_G_quoted_arg" fi shift done } # func_quote_for_expand ARG # ------------------------- # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { $debug_cmd case $1 in *[\\\`\"]*) _G_arg=`$ECHO "$1" | $SED \ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; *) _G_arg=$1 ;; esac case $_G_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_arg=\"$_G_arg\" ;; esac func_quote_for_expand_result=$_G_arg } # func_stripname PREFIX SUFFIX NAME # --------------------------------- # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_stripname () { $debug_cmd # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary variable first. func_stripname_result=$3 func_stripname_result=${func_stripname_result#"$1"} func_stripname_result=${func_stripname_result%"$2"} }' else func_stripname () { $debug_cmd case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; esac } fi # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} func_quote_for_expand "$_G_cmd" eval "func_notquiet $func_quote_for_expand_result" $opt_dry_run || { eval "$_G_cmd" _G_status=$? if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_show_eval_locale CMD [FAIL_EXP] # ------------------------------------ # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} $opt_quiet || { func_quote_for_expand "$_G_cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || { eval "$_G_user_locale $_G_cmd" _G_status=$? eval "$_G_safe_locale" if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_tr_sh # ---------- # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { $debug_cmd case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_verbose ARG... # ------------------- # Echo program name prefixed message in verbose mode only. func_verbose () { $debug_cmd $opt_verbose && func_echo "$*" : } # func_warn_and_continue ARG... # ----------------------------- # Echo program name prefixed warning message to standard error. func_warn_and_continue () { $debug_cmd $require_term_colors func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 } # func_warning CATEGORY ARG... # ---------------------------- # Echo program name prefixed warning message to standard error. Warning # messages can be filtered according to CATEGORY, where this function # elides messages where CATEGORY is not listed in the global variable # 'opt_warning_types'. func_warning () { $debug_cmd # CATEGORY must be in the warning_categories list! case " $warning_categories " in *" $1 "*) ;; *) func_internal_error "invalid warning category '$1'" ;; esac _G_category=$1 shift case " $opt_warning_types " in *" $_G_category "*) $warning_func ${1+"$@"} ;; esac } # func_sort_ver VER1 VER2 # ----------------------- # 'sort -V' is not generally available. # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old # version formats or redundant trailing .0 in bootstrap.conf. # If we did want full compatibility then we should probably # use m4_version_compare from autoconf. func_sort_ver () { $debug_cmd printf '%s\n%s\n' "$1" "$2" \ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n } # func_lt_ver PREV CURR # --------------------- # Return true if PREV and CURR are in the correct order according to # func_sort_ver, otherwise false. Use it like this: # # func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." func_lt_ver () { $debug_cmd test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: #! /bin/sh # Set a version string for this script. scriptversion=2015-10-07.11; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 # Copyright (C) 2010-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # This program 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 3 of the License, or # (at your option) any later version. # This program 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 program. If not, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # This file is a library for parsing options in your shell scripts along # with assorted other useful supporting features that you can make use # of too. # # For the simplest scripts you might need only: # # #!/bin/sh # . relative/path/to/funclib.sh # . relative/path/to/options-parser # scriptversion=1.0 # func_options ${1+"$@"} # eval set dummy "$func_options_result"; shift # ...rest of your script... # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file # starting with '# Written by ' and ending with '# warranty; '. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the # '# Written by ' line, like the one at the top of this file. # # The default options also support '--debug', which will turn on shell # execution tracing (see the comment above debug_cmd below for another # use), and '--verbose' and the func_verbose function to allow your script # to display verbose messages only when your user has specified # '--verbose'. # # After sourcing this file, you can plug processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. ## -------------- ## ## Configuration. ## ## -------------- ## # You should override these variables in your script after sourcing this # file so that they reflect the customisations you have added to the # option parser. # The usage line for option parsing errors and the start of '-h' and # '--help' output messages. You can embed shell variables for delayed # expansion at the time the message is displayed, but you will need to # quote other shell meta-characters carefully to prevent them being # expanded when the contents are evaled. usage='$progpath [OPTION]...' # Short help message in response to '-h' and '--help'. Add to this or # override it after sourcing this library to reflect the full set of # options your script accepts. usage_message="\ --debug enable verbose shell tracing -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -v, --verbose verbosely report processing --version print version information and exit -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=" Warning categories include: 'all' show all warnings 'none' turn off all the warnings 'error' warnings are treated as fatal errors" # Help message printed before fatal option parsing errors. fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## ## Hook function management. ## ## ------------------------- ## # This section contains functions for adding, removing, and running hooks # to the main code. A hook is just a named list of of function, that can # be run in order later on. # func_hookable FUNC_NAME # ----------------------- # Declare that FUNC_NAME will run hooks added with # 'func_add_hook FUNC_NAME ...'. func_hookable () { $debug_cmd func_append hookable_fns " $1" } # func_add_hook FUNC_NAME HOOK_FUNC # --------------------------------- # Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must # first have been declared "hookable" by a call to 'func_hookable'. func_add_hook () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not accept hook functions." ;; esac eval func_append ${1}_hooks '" $2"' } # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ # Remove HOOK_FUNC from the list of functions called by FUNC_NAME. func_remove_hook () { $debug_cmd eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' } # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. # It is assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. func_run_hooks () { $debug_cmd _G_rc_run_hooks=false case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do if eval $_G_hook '"$@"'; then # store returned options list back into positional # parameters for next 'cmd' execution. eval _G_hook_result=\$${_G_hook}_result eval set dummy "$_G_hook_result"; shift _G_rc_run_hooks=: fi done $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result } ## --------------- ## ## Option parsing. ## ## --------------- ## # In order to add your own option parsing hooks, you must accept the # full positional parameter list in your hook function, you may remove/edit # any options that you action, and then pass back the remaining unprocessed # options in '_result', escaped suitably for # 'eval'. In this case you also must return $EXIT_SUCCESS to let the # hook's caller know that it should pay attention to # '_result'. Returning $EXIT_FAILURE signalizes that # arguments are left untouched by the hook and therefore caller will ignore the # result variable. # # Like this: # # my_options_prep () # { # $debug_cmd # # # Extend the existing usage message. # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' # # No change in '$@' (ignored completely by this hook). There is # # no need to do the equivalent (but slower) action: # # func_quote_for_eval ${1+"$@"} # # my_options_prep_result=$func_quote_for_eval_result # false # } # func_add_hook func_options_prep my_options_prep # # # my_silent_option () # { # $debug_cmd # # args_changed=false # # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in # --silent|-s) opt_silent=: # args_changed=: # ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift # args_changed=: # ;; # *) # Make sure the first unrecognised option "$_G_opt" # # is added back to "$@", we could need that later # # if $args_changed is true. # set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # # if $args_changed; then # func_quote_for_eval ${1+"$@"} # my_silent_option_result=$func_quote_for_eval_result # fi # # $args_changed # } # func_add_hook func_parse_options my_silent_option # # # my_option_validation () # { # $debug_cmd # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # # false # } # func_add_hook func_validate_options my_option_validation # # You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. # func_options_finish [ARG]... # ---------------------------- # Finishing the option parse loop (call 'func_options' hooks ATM). func_options_finish () { $debug_cmd _G_func_options_finish_exit=false if func_run_hooks func_options ${1+"$@"}; then func_options_finish_result=$func_run_hooks_result _G_func_options_finish_exit=: fi $_G_func_options_finish_exit } # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the # individual implementations for details. func_hookable func_options func_options () { $debug_cmd _G_rc_options=false for my_func in options_prep parse_options validate_options options_finish do if eval func_$my_func '${1+"$@"}'; then eval _G_res_var='$'"func_${my_func}_result" eval set dummy "$_G_res_var" ; shift _G_rc_options=: fi done # Save modified positional parameters for caller. As a top-level # options-parser function we always need to set the 'func_options_result' # variable (regardless the $_G_rc_options value). if $_G_rc_options; then func_options_result=$_G_res_var else func_quote_for_eval ${1+"$@"} func_options_result=$func_quote_for_eval_result fi $_G_rc_options } # func_options_prep [ARG]... # -------------------------- # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propagate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before # returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). func_hookable func_options_prep func_options_prep () { $debug_cmd # Option defaults: opt_verbose=false opt_warning_types= _G_rc_options_prep=false if func_run_hooks func_options_prep ${1+"$@"}; then _G_rc_options_prep=: # save modified positional parameters for caller func_options_prep_result=$func_run_hooks_result fi $_G_rc_options_prep } # func_parse_options [ARG]... # --------------------------- # The main option parsing loop. func_hookable func_parse_options func_parse_options () { $debug_cmd func_parse_options_result= _G_rc_parse_options=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. if func_run_hooks func_parse_options ${1+"$@"}; then eval set dummy "$func_run_hooks_result"; shift _G_rc_parse_options=: fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' func_echo "enabling shell trace mode" $debug_cmd ;; --no-warnings|--no-warning|--no-warn) set dummy --warnings none ${1+"$@"} shift ;; --warnings|--warning|-W) if test $# = 0 && func_missing_arg $_G_opt; then _G_rc_parse_options=: break fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above func_append_uniq opt_warning_types " $1" ;; *all) opt_warning_types=$warning_categories ;; *none) opt_warning_types=none warning_func=: ;; *error) opt_warning_types=$warning_categories warning_func=func_fatal_error ;; *) func_fatal_error \ "unsupported warning category: '$1'" ;; esac shift ;; --verbose|-v) opt_verbose=: ;; --version) func_version ;; -\?|-h) func_usage ;; --help) func_help ;; # Separate optargs to long options (plugins may need this): --*=*) func_split_equals "$_G_opt" set dummy "$func_split_equals_lhs" \ "$func_split_equals_rhs" ${1+"$@"} shift ;; # Separate optargs to short options: -W*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "$func_split_short_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-v*|-x*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) _G_rc_parse_options=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift _G_match_parse_options=false break ;; esac $_G_match_parse_options && _G_rc_parse_options=: done if $_G_rc_parse_options; then # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} func_parse_options_result=$func_quote_for_eval_result fi $_G_rc_parse_options } # func_validate_options [ARG]... # ------------------------------ # Perform any sanity checks on option settings and/or unconsumed # arguments. func_hookable func_validate_options func_validate_options () { $debug_cmd _G_rc_validate_options=false # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" if func_run_hooks func_validate_options ${1+"$@"}; then # save modified positional parameters for caller func_validate_options_result=$func_run_hooks_result _G_rc_validate_options=: fi # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE $_G_rc_validate_options } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of the # hookable option parser framework in ascii-betical order. # func_fatal_help ARG... # ---------------------- # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { $debug_cmd eval \$ECHO \""Usage: $usage"\" eval \$ECHO \""$fatal_help"\" func_error ${1+"$@"} exit $EXIT_FAILURE } # func_help # --------- # Echo long help message to standard output and exit. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message" exit 0 } # func_missing_arg ARGNAME # ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $debug_cmd func_error "Missing argument for '$1'." exit_cmd=exit } # func_split_equals STRING # ------------------------ # Set func_split_equals_lhs and func_split_equals_rhs shell variables after # splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_equals () { $debug_cmd func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} test "x$func_split_equals_lhs" = "x$1" \ && func_split_equals_rhs= }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_equals () { $debug_cmd func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= test "x$func_split_equals_lhs" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals # func_split_short_opt SHORTOPT # ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_short_opt () { $debug_cmd func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_short_opt () { $debug_cmd func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt # func_usage # ---------- # Echo short help message to standard output and exit. func_usage () { $debug_cmd func_usage_message $ECHO "Run '$progname --help |${PAGER-more}' for full usage" exit 0 } # func_usage_message # ------------------ # Echo short help message to standard output. func_usage_message () { $debug_cmd eval \$ECHO \""Usage: $usage"\" echo $SED -n 's|^# || /^Written by/{ x;p;x } h /^Written by/q' < "$progpath" echo eval \$ECHO \""$usage_message"\" } # func_version # ------------ # Echo version message to standard output and exit. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' /(C)/!b go :more /\./!{ N s|\n# | | b more } :go /^# Written by /,/# warranty; / { s|^# || s|^# *$|| s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| p } /^# Written by / { s|^# || p } /^warranty; /q' < "$progpath" exit $? } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. scriptversion='(GNU libtool) 2.4.6' # func_echo ARG... # ---------------- # Libtool also displays the current mode in messages, so override # funclib.sh func_echo with this custom definition. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" done IFS=$func_echo_IFS } # func_warning ARG... # ------------------- # Libtool warnings are not categorized, so override funclib.sh # func_warning with this simpler definition. func_warning () { $debug_cmd $warning_func ${1+"$@"} } ## ---------------- ## ## Options parsing. ## ## ---------------- ## # Hook in the functions to make sure our own options are parsed during # the option parsing loop. usage='$progpath [OPTION]... [MODE-ARG]...' # Short help message in response to '-h'. usage_message="Options: --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --mode=MODE use operation mode MODE --no-warnings equivalent to '-Wnone' --preserve-dup-deps don't remove duplicate dependency libraries --quiet, --silent don't print informational messages --tag=TAG use configuration variables from tag TAG -v, --verbose print more informational messages than default --version print version information -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. When passed as first option, '--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. Try '$progname --help --mode=MODE' for a more detailed description of MODE. When reporting a bug, please describe a test case to reproduce it and include the following information: host-triplet: $host shell: $SHELL compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) version: $progname $scriptversion Debian-2.4.6-14 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . GNU libtool home page: . General help using GNU software: ." exit 0 } # func_lo2o OBJECT-NAME # --------------------- # Transform OBJECT-NAME from a '.lo' suffix to the platform specific # object suffix. lo2o=s/\\.lo\$/.$objext/ o2lo=s/\\.$objext\$/.lo/ if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_lo2o () { case $1 in *.lo) func_lo2o_result=${1%.lo}.$objext ;; * ) func_lo2o_result=$1 ;; esac }' # func_xform LIBOBJ-OR-SOURCE # --------------------------- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) # suffix to a '.lo' libtool-object suffix. eval 'func_xform () { func_xform_result=${1%.*}.lo }' else # ...otherwise fall back to using sed. func_lo2o () { func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` } func_xform () { func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` } fi # func_fatal_configuration ARG... # ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func__fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } # func_config # ----------- # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # ------------- # Display the features supported by this script. func_features () { echo "host: $host" if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag TAGNAME # ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname=$1 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf=/$re_begincf/,/$re_endcf/p # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # libtool_options_prep [ARG]... # ----------------------------- # Preparation for options parsed by libtool. libtool_options_prep () { $debug_mode # Option defaults: opt_config=false opt_dlopen= opt_dry_run=false opt_help=false opt_mode= opt_preserve_dup_deps=false opt_quiet=false nonopt= preserve_args= _G_rc_lt_options_prep=: # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; *) _G_rc_lt_options_prep=false ;; esac if $_G_rc_lt_options_prep; then # Pass back the list of options. func_quote_for_eval ${1+"$@"} libtool_options_prep_result=$func_quote_for_eval_result fi $_G_rc_lt_options_prep } func_add_hook func_options_prep libtool_options_prep # libtool_parse_options [ARG]... # --------------------------------- # Provide handling for libtool specific options. libtool_parse_options () { $debug_cmd _G_rc_lt_parse_options=false # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) func_config ;; --dlopen|-dlopen) opt_dlopen="${opt_dlopen+$opt_dlopen }$1" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) func_features ;; --finish) set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $_G_opt && break opt_mode=$1 case $1 in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $_G_opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt" ;; --no-warnings|--no-warning|--no-warn) opt_warning=false func_append preserve_args " $_G_opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $_G_opt" ;; --silent|--quiet) opt_quiet=: opt_verbose=false func_append preserve_args " $_G_opt" ;; --tag) test $# = 0 && func_missing_arg $_G_opt && break opt_tag=$1 func_append preserve_args " $_G_opt $1" func_enable_tag "$1" shift ;; --verbose|-v) opt_quiet=false opt_verbose=: func_append preserve_args " $_G_opt" ;; # An option not handled by this hook function: *) set dummy "$_G_opt" ${1+"$@"} ; shift _G_match_lt_parse_options=false break ;; esac $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done if $_G_rc_lt_parse_options; then # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} libtool_parse_options_result=$func_quote_for_eval_result fi $_G_rc_lt_parse_options } func_add_hook func_parse_options libtool_parse_options # libtool_validate_options [ARG]... # --------------------------------- # Perform any sanity checks on option settings and/or unconsumed # arguments. libtool_validate_options () { # save first non-option argument if test 0 -lt $#; then nonopt=$1 shift fi # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" case $host in # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match test yes != "$build_libtool_libs" \ && test yes != "$build_old_libs" \ && func_fatal_configuration "not configured to build any kind of library" # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test execute != "$opt_mode"; then func_error "unrecognized option '-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help=$help help="Try '$progname --help --mode=$opt_mode' for more information." } # Pass back the unparsed argument list func_quote_for_eval ${1+"$@"} libtool_validate_options_result=$func_quote_for_eval_result } func_add_hook func_validate_options libtool_validate_options # Process options as early as possible so that --help and --version # can return quickly. func_options ${1+"$@"} eval set dummy "$func_options_result"; shift ## ----------- ## ## Main. ## ## ----------- ## magic='%%%MAGIC variable%%%' magic_exe='%%%MAGIC EXE variable%%%' # Global variables. extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # func_generated_by_libtool # True iff stdin has been generated by Libtool. This function is only # a basic sanity check; it will hardly flush out determined imposters. func_generated_by_libtool_p () { $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p } # func_lalib_unsafe_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test yes = "$lalib_p" } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { test -f "$1" && $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $debug_cmd save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # 'FILE.' does not work on cygwin managed mounts. func_source () { $debug_cmd case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $debug_cmd if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=$1 if test yes = "$build_libtool_libs"; then write_lobj=\'$2\' else write_lobj=none fi if test yes = "$build_old_libs"; then write_oldobj=\'$3\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $debug_cmd # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $debug_cmd if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $debug_cmd # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $debug_cmd if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result=$1 fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $debug_cmd if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result=$3 fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $debug_cmd case $4 in $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $debug_cmd $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $debug_cmd case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result=$1 } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $debug_cmd if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd=func_convert_path_$func_stripname_result fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $debug_cmd func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result=$1 } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_dll_def_p FILE # True iff FILE is a Windows DLL '.def' file. # Keep in sync with _LT_DLL_DEF_P in libtool.m4 func_dll_def_p () { $debug_cmd func_dll_def_p_tmp=`$SED -n \ -e 's/^[ ]*//' \ -e '/^\(;.*\)*$/d' \ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ -e q \ "$1"` test DEF = "$func_dll_def_p_tmp" } # func_mode_compile arg... func_mode_compile () { $debug_cmd # Get the compilation command and the source file. base_compile= srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg=$arg arg_mode=normal ;; target ) libobj=$arg arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs=$IFS; IFS=, for arg in $args; do IFS=$save_ifs func_append_quoted lastarg "$arg" done IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg=$srcfile srcfile=$arg ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj=$func_basename_result } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test yes = "$build_libtool_libs" \ || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname=$func_basename_result xdir=$func_dirname_result lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test no = "$compiler_c_o"; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext lockfile=$output_obj.lock else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test yes = "$build_old_libs"; then if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix '.c' with the library object suffix, '.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the '--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE use a list of object files found in FILE to specify objects -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with '-') are ignored. Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in '.la', then a libtool library is created, only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created using 'ar' and 'ranlib', or on Windows using 'lib'. If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test : = "$opt_help"; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | $SED '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $debug_cmd # The first argument is the command name. cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "'$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir=$func_dirname_result ;; *) func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file=$progdir/$program fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if $opt_dry_run; then # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd=\$cmd$args fi } test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $debug_cmd libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "'$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument '$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $debug_cmd # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=false stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=: if $isdir; then destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." destdir=$func_dirname_result destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking '$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname=$1 shift srcname=$realname test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= ;; esac ;; os2*) case $realname in *_dll.a) tstripme= ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try 'ln -sf' first, because the 'ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name=$func_basename_result instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest=$destfile destfile= ;; *) func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext= case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=.exe fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script '$wrapper'" finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then func_warning "'$lib' has not been installed in '$libdir'" finalize=false fi done relink_command= func_source "$wrapper" outputname= if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file=$func_basename_result outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file=$outputname else func_warning "cannot relink '$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name=$func_basename_result # Set up the ranlib parameters. oldlib=$destdir/$name func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $debug_cmd my_outputname=$1 my_originator=$2 my_pic_p=${3-false} my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* External symbol declarations for the compiler. */\ " if test yes = "$dlself"; then func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" name=$func_basename_result case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi func_show_eval '$RM "${nlist}I"' if test -n "$global_symbol_to_import"; then eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[];\ " if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ static void lt_syminit(void) { LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; for (; symbol->name; ++symbol) {" $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" echo >> "$output_objdir/$my_dlsyms" "\ } }" fi echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = { {\"$my_originator\", (void *) 0}," if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ {\"@INIT@\", (void *) <_syminit}," fi case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $debug_cmd win32_libid_type=unknown win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" || func_cygming_gnu_implib_p "$1" then win32_nmres=import else win32_nmres= fi ;; *) func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s|.*|import| p q } }'` ;; esac case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $debug_cmd sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $debug_cmd match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive that possess that section. Heuristic: eliminate # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $debug_cmd if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result= fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $debug_cmd f_ex_an_ar_dir=$1; shift f_ex_an_ar_oldlib=$1 if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $debug_cmd my_gentop=$1; shift my_oldlibs=${1+"$@"} my_oldobjs= my_xlib= my_xabs= my_xdir= for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` func_basename "$darwin_archive" darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches; do func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" cd "unfat-$$/$darwin_base_archive-$darwin_arch" func_extract_an_archive "`pwd`" "$darwin_base_archive" cd "$darwin_curdir" $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result=$my_oldobjs } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ #if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC #elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined other platforms ... */ #endif #if defined PATH_MAX # define LT_PATHMAX PATH_MAX #elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ defined __OS2__ # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free (stale); stale = 0; } \ } while (0) #if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; size_t tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined HAVE_DOS_BASED_FILE_SYSTEM if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined HAVE_DOS_BASED_FILE_SYSTEM } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = (size_t) (q - p); p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (STREQ (str, pat)) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else size_t len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { size_t orig_value_len = strlen (orig_value); size_t add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ size_t len = strlen (new_value); while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $debug_cmd case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_suncc_cstd_abi # !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! # Several compiler flags select an ABI that is incompatible with the # Cstd library. Avoid specifying it if any are in CXXFLAGS. func_suncc_cstd_abi () { $debug_cmd case " $compile_command " in *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) suncc_use_cstd_abi=no ;; *) suncc_use_cstd_abi=yes ;; esac } # func_mode_link arg... func_mode_link () { $debug_cmd case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=false prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test yes != "$build_libtool_libs" \ && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg=$1 shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir=$arg prev= continue ;; dlfiles|dlprefiles) $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=: } case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test no = "$dlself"; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test dlprefiles = "$prev"; then dlself=yes elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols=$arg test -f "$arg" \ || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex=$arg prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir=$arg prev= continue ;; mllvm) # Clang does not use LLVM to link, so we can simply discard any # '-mllvm $arg' options when doing the link step. prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object fi # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; os2dllname) os2dllname=$arg prev= continue ;; precious_regex) precious_files_regex=$arg prev= continue ;; release) release=-$arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds=$arg prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg=$arg case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between '-L' and '$1'" else func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of '$dir'" dir=$absdir ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test X-lc = "X$arg" && continue ;; esac elif test X-lc_r = "X$arg"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -mllvm) prev=mllvm continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module=$wl-multi_module continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "'-no-install' is ignored for $host" func_warning "assuming '-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -os2dllname) prev=os2dllname continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # -fstack-protector* stack protector flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang # -fsanitize=* Clang/GCC memory and address sanitizer # -fuse-ld=* Linker select flags for GCC # -static-* direct GCC to link specific libraries statically # -fcilkplus Cilk Plus language extension features for C/C++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; -Z*) if test os2 = "`expr $host : '.*\(os2\)'`"; then # OS/2 uses -Zxxx to specify OS/2-specific options compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case $arg in -Zlinker | -Zstack) prev=xcompiler ;; esac continue else # Otherwise treat like 'Some other compiler flag' below func_quote_for_eval "$arg" arg=$func_quote_for_eval_result fi ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result test none = "$pic_object" || { # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object } # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the '$prevarg' option requires an argument" if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname=$func_basename_result libobjs_save=$libobjs if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" # Definition is injected by LT_CONFIG during libtool generation. func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" func_dirname "$output" "/" "" output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test lib = "$linkmode"; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test lib,link = "$linkmode,$pass"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs=$tmp_deplibs fi if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass"; then libs=$deplibs deplibs= fi if test prog = "$linkmode"; then case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs=$dlprefiles fi if test dlopen = "$pass"; then # Collect dlpreopened libraries save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test lib != "$linkmode" && test prog != "$linkmode"; then func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test lib = "$linkmode"; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib=$searchdir/lib$name$search_ext if test -f "$lib"; then if test .la = "$search_ext"; then found=: else found=false fi break 2 fi done done if $found; then # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll=$l done if test "X$ll" = "X$old_library"; then # only static version available found=false func_dirname "$lib" "" "." ladir=$func_dirname_result lib=$ladir/$old_library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi else # deplib doesn't seem to be a libtool library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l *.ltframework) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=: fi ;; pass_all) valid_a_lib=: ;; esac if $valid_a_lib; then echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" else echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." fi ;; esac continue ;; prog) if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test conv = "$pass"; then deplibs="$deplib $deplibs" elif test prog = "$linkmode"; then if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=: continue ;; esac # case $deplib $found || test -f "$lib" \ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "'$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir=$func_dirname_result dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass" || { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test conv = "$pass"; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for '$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test yes = "$prefer_static_libs" || test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib=$l done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for '$lib'" fi # This library was specified with -dlopen. if test dlopen = "$pass"; then test -z "$libdir" \ && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || test yes != "$dlopen_support" || test no = "$build_libtool_libs" then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of '$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir=$ladir fi ;; esac func_basename "$lib" laname=$func_basename_result # Find the relevant object directory and library name. if test yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library '$lib' was moved." dir=$ladir absdir=$abs_ladir libdir=$abs_ladir else dir=$lt_sysroot$libdir absdir=$lt_sysroot$libdir fi test yes = "$hardcode_automatic" && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir=$ladir absdir=$abs_ladir # Remove this search path later func_append notinst_path " $abs_ladir" else dir=$ladir/$objdir absdir=$abs_ladir/$objdir # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test dlpreopen = "$pass"; then if test -z "$libdir" && test prog = "$linkmode"; then func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" elif test prog,link = "$linkmode,$pass"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=false if test no != "$link_all_deplibs" || test -z "$library_names" || test no = "$build_libtool_libs"; then linkalldeplibs=: fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if $linkalldeplibs; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && { { test no = "$prefer_static_libs" || test built,yes = "$prefer_static_libs,$installed"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then # Make sure the rpath contains only unique directories. case $temp_rpath: in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if $alldeplibs && { test pass_all = "$deplibs_check_method" || { test yes = "$build_libtool_libs" && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule= for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule=$dlpremoduletest break fi done if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo if test prog = "$linkmode"; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test lib = "$linkmode" && test yes = "$hardcode_into_libs"; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname=$1 shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname=$dlname elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result versuffix=-$major ;; esac eval soname=\"$soname_spec\" else soname=$realname fi # Make a new name for the extract_expsyms_cmds to use soroot=$soname func_basename "$soroot" soname=$func_basename_result func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from '$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for '$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test no = "$hardcode_direct"; then add=$dir/$linklib case $host in *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; *-*-sysv4*uw2*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we cannot # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library"; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add=$dir/$old_library fi elif test -n "$old_library"; then add=$dir/$old_library fi fi esac elif test no = "$hardcode_minus_L"; then case $host in *-*-sunos*) add_shlibpath=$dir ;; esac add_dir=-L$dir add=-l$name elif test no = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; relink) if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$dir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name elif test yes = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; *) lib_linked=no ;; esac if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test prog = "$linkmode"; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test yes != "$hardcode_direct" && test yes != "$hardcode_minus_L" && test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$libdir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$libdir add=-l$name elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add=-l$name elif test yes = "$hardcode_automatic"; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib"; then add=$inst_prefix_dir$libdir/$linklib else add=$libdir/$linklib fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name fi if test prog = "$linkmode"; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test prog = "$linkmode"; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test unsupported != "$hardcode_direct"; then test -n "$old_library" && linklib=$old_library compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test yes = "$build_libtool_libs"; then # Not a shared library if test pass_all != "$deplibs_check_method"; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system cannot link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test yes = "$module"; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test lib = "$linkmode"; then if test -n "$dependency_libs" && { test yes != "$hardcode_into_libs" || test yes = "$build_old_libs" || test yes = "$link_static"; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of '$dir'" absdir=$dir fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names"; then for tmp in $deplibrary_names; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl"; then depdepl=$absdir/$objdir/$depdepl darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" path= fi fi ;; *) path=-L$absdir/$objdir ;; esac else eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "'$deplib' seems to be moved" path=-L$absdir fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test link = "$pass"; then if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs=$newdependency_libs if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test dlopen != "$pass"; then test conv = "$pass" || { # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= } if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" else vars=deplibs fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Add Sun CC postdeps if required: test CXX = "$tagname" && { case $host_os in linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; solaris*) func_cc_basename "$CC" case $func_cc_basename_result in CC* | sunCC*) func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; esac } # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i= ;; esac if test -n "$i"; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test prog = "$linkmode"; then dlfiles=$newdlfiles fi if test prog = "$linkmode" || test lib = "$linkmode"; then dlprefiles=$newdlprefiles fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "'-R' is ignored for archives" test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "'-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "'-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs=$output func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form 'libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test no = "$module" \ && func_fatal_help "libtool library '$output' must begin with 'lib'" if test no != "$need_lib_prefix"; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test pass_all != "$deplibs_check_method"; then func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test no = "$dlself" \ || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test 1 -lt "$#" \ && func_warning "ignoring multiple '-rpath's for a libtool library" install_libdir=$1 oldlibs= if test -z "$rpath"; then if test yes = "$build_libtool_libs"; then # Building a libtool convenience library. # Some compilers have problems with a '.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "'-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs=$IFS; IFS=: set dummy $vinfo 0 0 0 shift IFS=$save_ifs test -n "$7" && \ func_fatal_help "too many parameters to '-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major=$1 number_minor=$2 number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # that has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|freebsd-elf|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; freebsd-aout|qnx|sunos) current=$number_major revision=$number_minor age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_minor lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type '$version_type'" ;; esac ;; no) current=$1 revision=$2 age=$3 ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT '$current' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION '$revision' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE '$age' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE '$age' is greater than the current interface number '$current'" func_fatal_error "'$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" # On Darwin other compilers case $CC in nagfor*) verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" ;; *) verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; esac ;; freebsd-aout) major=.$current versuffix=.$current.$revision ;; freebsd-elf) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; irix | nonstopux) if test no = "$lt_irix_increment"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring=$verstring_prefix$major.$revision # Add in all the interfaces that we are compatible with. loop=$revision while test 0 -ne "$loop"; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring_prefix$major.$iface:$verstring done # Before this point, $major must not contain '.'. major=.$major versuffix=$major.$revision ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=.$current.$age.$revision verstring=$current.$age.$revision # Add in all the interfaces that we are compatible with. loop=$age while test 0 -ne "$loop"; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring:$iface.0 done # Make executables depend on our current version. func_append verstring ":$current.0" ;; qnx) major=.$current versuffix=.$current ;; sco) major=.$current versuffix=.$current ;; sunos) major=.$current versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 file systems. func_arith $current - $age major=$func_arith_result versuffix=-$major ;; *) func_fatal_configuration "unknown library version type '$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring=0.0 ;; esac if test no = "$need_version"; then versuffix= else versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided if test yes,no = "$avoid_version,$need_version"; then major= versuffix= verstring= fi # Check to see if the archive will have undefined symbols. if test yes = "$allow_undefined"; then if test unsupported = "$allow_undefined_flag"; then if test yes = "$build_old_libs"; then func_warning "undefined symbols not allowed in $host shared libraries; building static only" build_libtool_libs=no else func_fatal_error "can't build $host shared library unless -no-undefined is specified" fi fi else # Don't allow undefined symbols. allow_undefined_flag=$no_undefined_flag fi fi func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" test " " = "$libobjs" && libobjs= if test relink != "$opt_mode"; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) if test -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles=$dlfiles dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles=$dlprefiles dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test yes = "$build_libtool_need_lc"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release= versuffix= major= newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib=$potent_lib while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | $SED 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib= ;; esac fi if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test yes = "$allow_libtool_libs_with_static_runtimes"; then for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test none = "$deplibs_check_method"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test yes = "$droppeddeps"; then if test yes = "$module"; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test no = "$allow_undefined"; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs=$new_libs # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test yes = "$build_libtool_libs"; then # Remove $wl instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath=$finalize_rpath test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath=$finalize_shlibpath test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname=$1 shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname=$realname fi if test -z "$dlname"; then dlname=$soname fi lib=$output_objdir/$realname linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols=$output_objdir/$libname.uexp func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile func_dll_def_p "$export_symbols" || { # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols=$export_symbols export_symbols= always_export_symbols=yes } fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs=$IFS; IFS='~' for cmd1 in $cmds; do IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS=$save_ifs if test -n "$export_symbols_regex" && test : != "$skipped_export"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test : != "$skipped_export" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test yes = "$compiler_needs_object" && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test : != "$skipped_export" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-$k.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test -z "$objlist" || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-$k.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-$k.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi ${skipped_export-false} && { func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi } test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs=$IFS; IFS='~' for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi ${skipped_export-false} && { if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi } libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs=$IFS; IFS='~' for cmd in $cmds; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs # Restore the uninstalled library and exit if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. dlname=$soname fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "'-R' is ignored for objects" test -n "$vinfo" && \ func_warning "'-version-info' is ignored for objects" test -n "$release" && \ func_warning "'-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object '$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj=$output ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # if reload_cmds runs $LD directly, get rid of -Wl from # whole_archive_flag_spec and hope we can get by with turning comma # into space. case $reload_cmds in *\$LD[\ \$]*) wl= ;; esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs output=$obj func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi test yes = "$build_libtool_libs" || { if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS } if test -n "$pic_flag" || test default != "$pic_mode"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output=$libobj func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "'-version-info' is ignored for programs" test -n "$release" && \ func_warning "'-release' is ignored for programs" $preload \ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " $wl-bind_at_load" func_append finalize_command " $wl-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath=$rpath rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath=$rpath if test -n "$libobjs" && test yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=false ;; *cygwin* | *mingw* ) test yes = "$build_libtool_libs" || wrappers_required=false ;; *) if test no = "$need_relink" || test yes != "$build_libtool_libs"; then wrappers_required=false fi ;; esac $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command=$compile_command$compile_rpath # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.$objext"; then func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' fi exit $exit_status } if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test yes = "$no_install"; then # We don't need to create a wrapper script. link_command=$compile_var$compile_command$compile_rpath # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi case $hardcode_action,$fast_install in relink,*) # Fast installation is not supported link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath func_warning "this platform does not like uninstalled shared libraries" func_warning "'$output' will be relinked during installation" ;; *,yes) link_command=$finalize_var$compile_command$finalize_rpath relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` ;; *,no) link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath ;; *,needless) link_command=$finalize_var$compile_command$finalize_rpath relink_command= ;; esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource=$output_path/$objdir/lt-$output_name.c cwrapper=$output_path/$output_name.exe $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host"; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do case $build_libtool_libs in convenience) oldobjs="$libobjs_save $symfileobj" addlibs=$convenience build_libtool_libs=no ;; module) oldobjs=$libobjs_save addlibs=$old_convenience build_libtool_libs=no ;; *) oldobjs="$old_deplibs $non_pic_objects" $preload && test -f "$symfileobj" \ && func_append oldobjs " $symfileobj" addlibs=$old_convenience ;; esac if test -n "$addlibs"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase=$func_basename_result case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj"; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test -z "$oldobjs"; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test yes = "$build_old_libs" && old_library=$libname.$libext func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test yes = "$installed"; then if test -z "$install_libdir"; then break fi output=$output_objdir/${outputname}i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name=$func_basename_result func_resolve_sysroot "$deplib" eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs=$newdependency_libs newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles=$newdlprefiles else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that cannot go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test no,yes = "$installed,$need_relink"; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } if test link = "$opt_mode" || test relink = "$opt_mode"; then func_mode_link ${1+"$@"} fi # func_mode_uninstall arg... func_mode_uninstall () { $debug_cmd RM=$nonopt files= rmforce=false exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic for arg do case $arg in -f) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir=$func_dirname_result if test . = "$dir"; then odir=$objdir else odir=$dir/$objdir fi func_basename "$file" name=$func_basename_result test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif $rmforce; then continue fi rmfiles=$file case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test clean = "$opt_mode"; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.$objext" if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name"; then func_append rmfiles " $odir/lt-$noexename.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then func_mode_uninstall ${1+"$@"} fi test -z "$opt_mode" && { help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode '$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # where we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: twin-0.9.0/admin/missing000077500000000000000000000153361377535120600152110ustar00rootroot00000000000000#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2018-03-07.03; # UTC # Copyright (C) 1996-2020 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard , 1996. # This program 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 2, or (at your option) # any later version. # This program 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 program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=https://www.perl.org/ flex_URL=https://github.com/westes/flex gnu_software_URL=https://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: twin-0.9.0/admin/tw_c_features.m4000066400000000000000000000030671377535120600167040ustar00rootroot00000000000000m4_define([TW_C_FEATURES], [ AC_CACHE_CHECK(for volatile, ac_cv_c_volatile, AC_TRY_COMPILE( [ #undef volatile int deref(int volatile * i) { return *i; } ] , [ volatile int a = 3; int b = deref(&a); ], ac_cv_c_volatile=yes, ac_cv_c_volatile=no)) AC_CACHE_CHECK(for gcc-compatible 'static inline', ac_cv_c_static_inline, AC_TRY_COMPILE( [ #undef inline static inline int ret0(void) { return 0; } ] , [ int a = ret0(); ], ac_cv_c_static_inline=yes, ac_cv_c_static_inline=no)) AC_CACHE_CHECK(for gcc-compatible 'attribute((const))', ac_cv_c_attribute_const, AC_TRY_COMPILE( [ #undef __attribute__ static int ret0(void) __attribute__((const)); static int ret0(void) { return 0; } ] , [ int a = ret0(); ], ac_cv_c_attribute_const='__attribute__((const))', ac_cv_c_attribute_const=no)) AC_CACHE_CHECK(for gcc-compatible 'attribute((packed))', ac_cv_c_attribute_packed, AC_TRY_COMPILE( [ #undef __attribute__ struct sp { char a; int b; } __attribute__((packed)); ], [[ struct sp s[2]; char compare_sizeof_packed_struct[ sizeof(struct sp) == sizeof(char) + sizeof(int) ? 1 : -1 ]; ]], ac_cv_c_attribute_packed='__attribute__((packed))', ac_cv_c_attribute_packed=no)) AC_CACHE_CHECK(for gcc-compatible 'attribute((aligned(1)))', ac_cv_c_attribute_aligned_1, AC_TRY_COMPILE( [ ], [[ #undef __attribute__ char buf[2 * sizeof(int)]; int * __attribute__((aligned(1))) p = buf + 1; *(int * __attribute__((aligned(1))))p = 0; ]], ac_cv_c_attribute_aligned_1='__attribute__((aligned(1)))', ac_cv_c_attribute_aligned_1=no)) ]) twin-0.9.0/admin/tw_fix_config.m4000066400000000000000000000030441377535120600166720ustar00rootroot00000000000000m4_define([TW_FIX_CONFIG], [ enable__alloc=no if test "$ac_cv_func_mmap_fixed_mapped" = no; then enable__alloc=no enable_wm_rc_shmmap=no fi if test "$ac_cv_header_dlfcn_h" = no -o "$ac_cv_search_dlopen" = no; then enable__dlopen=no fi if test "$ac_cv_search_socket" = no; then AC_MSG_WARN(missing socket(): disabling socket connections (libtw)!) enable_socket=no fi if test "$ac_cv_search_connect" = no; then AC_MSG_WARN(missing connect(): disabling socket connections (libtw)!) enable_socket=no fi if test "$ac_cv_search_gethostbyname" = no; then AC_MSG_WARN(missing gethostbyname(): libtw will only accept numerical IP addresses!) fi if test "$ac_cv_search_pthread_create" = no -o "$ac_cv_header_pthread_h" = no; then enable_socket_pthreads=no fi if test "$ac_cv_search_deflate" = no -o "$ac_cv_header_zlib_h" = no; then enable_socket_gz=no fi if test "$ac_cv_func_grantpt" = no -o "$ac_cv_func_unlockpt" = no -o "$ac_cv_func_ptsname" = no; then enable_term_devpts=no fi if test "$ac_cv_search_Gpm_Open" = no -o "$ac_cv_header_gpm_h" = no; then enable_hw_tty_linux=no fi if test "$ac_cv_header_linux_kd_h" = no -o "$ac_cv_header_linux_keyboard_h" = no -o "$ac_cv_header_linux_vt_h" = no; then enable_hw_tty_lrawkbd=no fi if test "$ac_cv_search_tgetent" = no; then enable_hw_tty_termcap=no fi if test "$have_x" != yes; then enable_hw_x11=no fi if test "$have_x" != yes -o "$ac_cv_header_X11_Xft_Xft_h" != yes -o "$ac_cv_header_fontconfig_fontconfig_h" != yes -o "$ac_cv_search_XftFontOpen" = no; then enable_hw_xft=no fi ]) twin-0.9.0/admin/tw_input_config.m4000066400000000000000000000075251377535120600172530ustar00rootroot00000000000000m4_define([TW_OPTIONS], [ dnl custom malloc/free dnl AC_ARG_ENABLE(-alloc,dnl dnl [ --enable--alloc[=yes|no] enable custom malloc/free routines ],, dnl enable__alloc=yes dnl )dnl enable__alloc=no dnl dlopen() and friends AC_ARG_ENABLE(-dlopen,dnl [ --enable--dlopen[=yes|no] use dlopen() to load modules instead of libtool lt_dlopen()],, enable__dlopen=yes )dnl dnl socket server AC_ARG_ENABLE(socket,dnl [ --enable-socket[=yes|no] enable remote socket connections (libtw) ],, enable_socket=yes )dnl dnl socket compression AC_ARG_ENABLE(socket_gz,dnl [ --enable-socket-gz[=yes|no] enable gzip compression on sockets ],, enable_socket_gz=yes )dnl dnl thread safe libtw AC_ARG_ENABLE(socket_pthreads,dnl [ --enable-socket-pthreads[=yes|no] enable thread safe libraries (requires pthread) ],, enable_socket_pthreads=yes )dnl dnl support alien architectures AC_ARG_ENABLE(socket_alien,dnl [ --enable-socket-alien[=yes|no] enable support for non-native architectures ],, enable_socket_alien=yes )dnl dnl builtin window manager AC_ARG_ENABLE(wm,dnl [ --enable-wm[=yes|no] enable the builtin WM (absolutely needed!) ],, enable_wm=yes )dnl dnl ~/.twinrc parser AC_ARG_ENABLE(wm_rc,dnl [ --enable-wm-rc[=yes|no] enable ~/.twinrc configuration parser ],, enable_wm_rc=yes )dnl dnl use mmapped shared file for parser AC_ARG_ENABLE(wm_rc_shmmap,dnl [ --enable-wm-rc-shmmap[=yes|no] enable mmapped shared file for parser ],, enable_wm_rc_shmmap=yes )dnl dnl shrink memory when parser finished AC_ARG_ENABLE(wm_rc_shrink,dnl [ --enable-wm-rc-shrink[=yes|no] enable shrinking memory when parser finished ],, enable_wm_rc_shrink=yes )dnl dnl terminal emulator AC_ARG_ENABLE(term,dnl [ --enable-term[=yes|no] enable builtin terminal emulator ],, enable_term=yes )dnl dnl use /dev/pts/* for terminal emulator AC_ARG_ENABLE(term_devpts,dnl [ --enable-term-devpts[=yes|no] enable Unix98 /dev/pts/* pseudo-ttys ],, enable_term_devpts=yes )dnl dnl store server messages in "Messages" window AC_ARG_ENABLE(printk,dnl [ --enable-printk[=yes|no] enable logging messages in Messages window ],, enable_printk=yes )dnl dnl tty drivers AC_ARG_ENABLE(hw-tty,dnl [ --enable-hw-tty[=yes|no] enable tty drivers ],, enable_hw_tty=yes )dnl dnl the Linux console driver AC_ARG_ENABLE(hw-tty-linux,dnl [ --enable-hw-tty-linux[=yes|no] enable the Linux console driver with gpm mouse],, enable_hw_tty_linux=yes )dnl dnl the Linux console raw keyboard driver AC_ARG_ENABLE(hw-tty-lrawkbd,dnl [ --enable-hw-tty-lrawkbd[=yes|no] enable the Linux console raw keyboard driver],, enable_hw_tty_lrawkbd=yes )dnl dnl the twterm terminal driver AC_ARG_ENABLE(hw-tty-twterm,dnl [ --enable-hw-tty-twterm[=yes|no] enable the twterm terminal driver ],, enable_hw_tty_twterm=yes )dnl dnl the termcap terminal driver AC_ARG_ENABLE(hw-tty-termcap,dnl [ --enable-hw-tty-termcap[=yes|no] enable the termcap/ncurses terminal driver ],, enable_hw_tty_termcap=yes )dnl dnl the X11 driver AC_ARG_ENABLE(hw-x11,dnl [ --enable-hw-x11[=yes|no] enable the X11 driver ],, enable_hw_x11=yes )dnl dnl the xft driver AC_ARG_ENABLE(hw-xft,dnl [ --enable-hw-xft[=yes|no] enable the xft (X11 with truetype fonts) driver ],, enable_hw_xft=yes )dnl dnl the twin driver AC_ARG_ENABLE(hw-twin,dnl [ --enable-hw-twin[=yes|no] enable the twin nested driver ],, enable_hw_twin=yes )dnl dnl the twdisplay driver AC_ARG_ENABLE(hw-display,dnl [ --enable-hw-display[=yes|no] enable the twdisplay client driver ],, enable_hw_display=yes )dnl enable_opt_shadows=yes enable_opt_blink=no enable_opt_cursor_always=no enable_opt_menu_hide=no enable_opt_menu_info=no enable_opt_menu_relax=yes enable_opt_screen_scroll=no ]) twin-0.9.0/admin/tw_output.m4000066400000000000000000000056571377535120600161330ustar00rootroot00000000000000m4_define([TW_OUTPUT], [[ echo '#ifndef TWAUTOCONF_H' > include/twautoconf.h echo '#define TWAUTOCONF_H' >> include/twautoconf.h echo >> include/twautoconf.h echo '/* this file is autogenerated by GNU configure, any change will be LOST when configure is re-executed */' >> include/twautoconf.h echo >> include/twautoconf.h $SED -e 's/define *\([A-Z]\)/define TW_\1/g' \ -e 's/undef *\([A-Z]\)/undef TW_\1/g' \ -e 's/ifdef *\([A-Z]\)/ifdef TW_\1/g' \ -e 's/ifndef *\([A-Z]\)/ifndef TW_\1/g' \ < include/config.h >> include/twautoconf.h echo >> include/twautoconf.h echo >> include/twautoconf.h echo '#endif /* TWAUTOCONF_H */' >> include/twautoconf.h $MKDIR_P include/Tw 2>/dev/null $SED -e 's/TWAUTOCONF_H/TW_AUTOCONF_H/g' < include/twautoconf.h > include/Tw/autoconf.h echo '#ifndef TWCONFIG_H' > include/twconfig.h echo '#define TWCONFIG_H' >> include/twconfig.h echo >> include/twconfig.h echo '/* this file is autogenerated by GNU configure, any change will be LOST when configure is re-executed */' >> include/twconfig.h echo >> include/twconfig.h tw_cfg CONF__ALLOC "$enable__alloc" tw_cfg CONF__DLOPEN "$enable__dlopen" tw_cfg CONF_SOCKET "$enable_socket" tw_cfg CONF_SOCKET_GZ "$enable_socket_gz" tw_cfg CONF_SOCKET_PTHREADS "$enable_socket_pthreads" tw_cfg CONF_SOCKET_ALIEN "$enable_socket_alien" tw_cfg CONF_WM "$enable_wm" tw_cfg CONF_WM_RC "$enable_wm_rc" tw_cfg CONF_WM_RC_SHMMAP "$enable_wm_rc_shmmap" tw_cfg CONF_WM_RC_SHRINK "$enable_wm_rc_shrink" tw_cfg CONF_TERM "$enable_term" tw_cfg CONF_TERM_DEVPTS "$enable_term_devpts" tw_cfg CONF_PRINTK "$enable_printk" tw_cfg CONF_HW_TTY "$enable_hw_tty" tw_cfg CONF_HW_TTY_LINUX "$enable_hw_tty_linux" tw_cfg CONF_HW_TTY_LRAWKBD "$enable_hw_tty_lrawkbd" tw_cfg CONF_HW_TTY_TWTERM "$enable_hw_tty_twterm" tw_cfg CONF_HW_TTY_TERMCAP "$enable_hw_tty_termcap" tw_cfg CONF_HW_X11 "$enable_hw_x11" tw_cfg CONF_HW_XFT "$enable_hw_xft" tw_cfg CONF_HW_TWIN "$enable_hw_twin" tw_cfg CONF_HW_DISPLAY "$enable_hw_display" tw_cfg CONF_OPT_SHADOWS "$enable_opt_shadows" tw_cfg CONF_OPT_BLINK "$enable_opt_blink" tw_cfg CONF_OPT_CURSOR_ALWAYS "$enable_opt_cursor_always" tw_cfg CONF_OPT_MENU_HIDE "$enable_opt_menu_hide" tw_cfg CONF_OPT_MENU_INFO "$enable_opt_menu_info" tw_cfg CONF_OPT_MENU_RELAX "$enable_opt_menu_relax" tw_cfg CONF_OPT_SCREEN_SCROLL "$enable_opt_screen_scroll" echo >> include/twconfig.h echo '#endif /* TWCONFIG_H */' >> include/twconfig.h ]]) twin-0.9.0/admin/tw_version.m4000066400000000000000000000010601377535120600162400ustar00rootroot00000000000000m4_define([TW_VERSION], [ [ PACKAGE_VERSION_MAJOR="`echo \"$PACKAGE_VERSION\" | $SED 's|^\([0-9]*\)\..*|\1|g'`" PACKAGE_VERSION_MINOR="`echo \"$PACKAGE_VERSION\" | $SED 's|^\([0-9]*\)\.\([0-9]*\)\..*|\2|g'`" PACKAGE_VERSION_PATCH="`echo \"$PACKAGE_VERSION\" | $SED 's|^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*|\3|g'`" PACKAGE_VERSION_EXTRA="`echo \"$PACKAGE_VERSION\" | $SED 's|^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\(.*\)|\4|g'`" ] AC_SUBST(PACKAGE_VERSION_MAJOR) AC_SUBST(PACKAGE_VERSION_MINOR) AC_SUBST(PACKAGE_VERSION_PATCH) AC_SUBST(PACKAGE_VERSION_EXTRA) ]) twin-0.9.0/clients/000077500000000000000000000000001377535120600141535ustar00rootroot00000000000000twin-0.9.0/clients/Makefile.am000066400000000000000000000025621377535120600162140ustar00rootroot00000000000000SUBDIRS = mapscrn bin_PROGRAMS = twattach twcat twclip twclutter twcuckoo twdialog twevent twfindtwin twlsmsgport twlsobj twsendmsg twsetroot twsysmon twterm twthreadtest sbin_PROGRAMS = twdm AM_CPPFLAGS = -I$(top_srcdir)/include twattach_SOURCES = attach.c twcat_SOURCES = cat.c twclip_SOURCES = clip.c twclutter_SOURCES = clutter.c twcuckoo_SOURCES = cuckoo.c twdialog_SOURCES = dialog.c twdm_SOURCES = dm.c twevent_SOURCES = event.c twfindtwin_SOURCES = findtwin.c twlsmsgport_SOURCES = lsmsgport.c twlsobj_SOURCES = lsobj.c twsendmsg_SOURCES = sendmsg.c twsetroot_SOURCES = setroot.c twsysmon_SOURCES = sysmon.c twterm_SOURCES = pty.c term.c twthreadtest_SOURCES = threadtest.c twattach_LDADD = $(LIBTW) twcat_LDADD = $(LIBTW) twclip_LDADD = $(LIBTW) twclutter_LDADD = $(LIBTW) twcuckoo_LDADD = $(LIBTW) twdialog_LDADD = $(LIBTW) twdm_LDADD = $(LIBTW) $(LIBTUTF) $(LIBCRYPT) twevent_LDADD = $(LIBTW) twfindtwin_LDADD = $(LIBTW) twlsmsgport_LDADD = $(LIBTW) twlsobj_LDADD = $(LIBTW) twsendmsg_LDADD = $(LIBTW) twsetroot_LDADD = $(LIBTW) twsysmon_LDADD = $(LIBTW) twterm_LDADD = $(LIBTW) $(LIBTUTF) twthreadtest_LDADD = $(LIBTW) $(LIBPTHREAD) install-exec-hook: rm -f $(DESTDIR)$(bindir)/twdetach $(LN_S) twattach $(DESTDIR)$(bindir)/twdetach twin-0.9.0/clients/Makefile.in000066400000000000000000001116351377535120600162270ustar00rootroot00000000000000# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = twattach$(EXEEXT) twcat$(EXEEXT) twclip$(EXEEXT) \ twclutter$(EXEEXT) twcuckoo$(EXEEXT) twdialog$(EXEEXT) \ twevent$(EXEEXT) twfindtwin$(EXEEXT) twlsmsgport$(EXEEXT) \ twlsobj$(EXEEXT) twsendmsg$(EXEEXT) twsetroot$(EXEEXT) \ twsysmon$(EXEEXT) twterm$(EXEEXT) twthreadtest$(EXEEXT) sbin_PROGRAMS = twdm$(EXEEXT) subdir = clients ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" PROGRAMS = $(bin_PROGRAMS) $(sbin_PROGRAMS) am_twattach_OBJECTS = attach.$(OBJEXT) twattach_OBJECTS = $(am_twattach_OBJECTS) am__DEPENDENCIES_1 = twattach_DEPENDENCIES = $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = am_twcat_OBJECTS = cat.$(OBJEXT) twcat_OBJECTS = $(am_twcat_OBJECTS) twcat_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twclip_OBJECTS = clip.$(OBJEXT) twclip_OBJECTS = $(am_twclip_OBJECTS) twclip_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twclutter_OBJECTS = clutter.$(OBJEXT) twclutter_OBJECTS = $(am_twclutter_OBJECTS) twclutter_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twcuckoo_OBJECTS = cuckoo.$(OBJEXT) twcuckoo_OBJECTS = $(am_twcuckoo_OBJECTS) twcuckoo_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twdialog_OBJECTS = dialog.$(OBJEXT) twdialog_OBJECTS = $(am_twdialog_OBJECTS) twdialog_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twdm_OBJECTS = dm.$(OBJEXT) twdm_OBJECTS = $(am_twdm_OBJECTS) twdm_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_twevent_OBJECTS = event.$(OBJEXT) twevent_OBJECTS = $(am_twevent_OBJECTS) twevent_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twfindtwin_OBJECTS = findtwin.$(OBJEXT) twfindtwin_OBJECTS = $(am_twfindtwin_OBJECTS) twfindtwin_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twlsmsgport_OBJECTS = lsmsgport.$(OBJEXT) twlsmsgport_OBJECTS = $(am_twlsmsgport_OBJECTS) twlsmsgport_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twlsobj_OBJECTS = lsobj.$(OBJEXT) twlsobj_OBJECTS = $(am_twlsobj_OBJECTS) twlsobj_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twsendmsg_OBJECTS = sendmsg.$(OBJEXT) twsendmsg_OBJECTS = $(am_twsendmsg_OBJECTS) twsendmsg_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twsetroot_OBJECTS = setroot.$(OBJEXT) twsetroot_OBJECTS = $(am_twsetroot_OBJECTS) twsetroot_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twsysmon_OBJECTS = sysmon.$(OBJEXT) twsysmon_OBJECTS = $(am_twsysmon_OBJECTS) twsysmon_DEPENDENCIES = $(am__DEPENDENCIES_1) am_twterm_OBJECTS = pty.$(OBJEXT) term.$(OBJEXT) twterm_OBJECTS = $(am_twterm_OBJECTS) twterm_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_twthreadtest_OBJECTS = threadtest.$(OBJEXT) twthreadtest_OBJECTS = $(am_twthreadtest_OBJECTS) twthreadtest_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/attach.Po ./$(DEPDIR)/cat.Po \ ./$(DEPDIR)/clip.Po ./$(DEPDIR)/clutter.Po \ ./$(DEPDIR)/cuckoo.Po ./$(DEPDIR)/dialog.Po ./$(DEPDIR)/dm.Po \ ./$(DEPDIR)/event.Po ./$(DEPDIR)/findtwin.Po \ ./$(DEPDIR)/lsmsgport.Po ./$(DEPDIR)/lsobj.Po \ ./$(DEPDIR)/pty.Po ./$(DEPDIR)/sendmsg.Po \ ./$(DEPDIR)/setroot.Po ./$(DEPDIR)/sysmon.Po \ ./$(DEPDIR)/term.Po ./$(DEPDIR)/threadtest.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(twattach_SOURCES) $(twcat_SOURCES) $(twclip_SOURCES) \ $(twclutter_SOURCES) $(twcuckoo_SOURCES) $(twdialog_SOURCES) \ $(twdm_SOURCES) $(twevent_SOURCES) $(twfindtwin_SOURCES) \ $(twlsmsgport_SOURCES) $(twlsobj_SOURCES) $(twsendmsg_SOURCES) \ $(twsetroot_SOURCES) $(twsysmon_SOURCES) $(twterm_SOURCES) \ $(twthreadtest_SOURCES) DIST_SOURCES = $(twattach_SOURCES) $(twcat_SOURCES) $(twclip_SOURCES) \ $(twclutter_SOURCES) $(twcuckoo_SOURCES) $(twdialog_SOURCES) \ $(twdm_SOURCES) $(twevent_SOURCES) $(twfindtwin_SOURCES) \ $(twlsmsgport_SOURCES) $(twlsobj_SOURCES) $(twsendmsg_SOURCES) \ $(twsetroot_SOURCES) $(twsysmon_SOURCES) $(twterm_SOURCES) \ $(twthreadtest_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/admin/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = mapscrn AM_CPPFLAGS = -I$(top_srcdir)/include twattach_SOURCES = attach.c twcat_SOURCES = cat.c twclip_SOURCES = clip.c twclutter_SOURCES = clutter.c twcuckoo_SOURCES = cuckoo.c twdialog_SOURCES = dialog.c twdm_SOURCES = dm.c twevent_SOURCES = event.c twfindtwin_SOURCES = findtwin.c twlsmsgport_SOURCES = lsmsgport.c twlsobj_SOURCES = lsobj.c twsendmsg_SOURCES = sendmsg.c twsetroot_SOURCES = setroot.c twsysmon_SOURCES = sysmon.c twterm_SOURCES = pty.c term.c twthreadtest_SOURCES = threadtest.c twattach_LDADD = $(LIBTW) twcat_LDADD = $(LIBTW) twclip_LDADD = $(LIBTW) twclutter_LDADD = $(LIBTW) twcuckoo_LDADD = $(LIBTW) twdialog_LDADD = $(LIBTW) twdm_LDADD = $(LIBTW) $(LIBTUTF) $(LIBCRYPT) twevent_LDADD = $(LIBTW) twfindtwin_LDADD = $(LIBTW) twlsmsgport_LDADD = $(LIBTW) twlsobj_LDADD = $(LIBTW) twsendmsg_LDADD = $(LIBTW) twsetroot_LDADD = $(LIBTW) twsysmon_LDADD = $(LIBTW) twterm_LDADD = $(LIBTW) $(LIBTUTF) twthreadtest_LDADD = $(LIBTW) $(LIBPTHREAD) all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign clients/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign clients/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list install-sbinPROGRAMS: $(sbin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \ } \ ; done uninstall-sbinPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(sbindir)" && rm -f $$files clean-sbinPROGRAMS: @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list twattach$(EXEEXT): $(twattach_OBJECTS) $(twattach_DEPENDENCIES) $(EXTRA_twattach_DEPENDENCIES) @rm -f twattach$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twattach_OBJECTS) $(twattach_LDADD) $(LIBS) twcat$(EXEEXT): $(twcat_OBJECTS) $(twcat_DEPENDENCIES) $(EXTRA_twcat_DEPENDENCIES) @rm -f twcat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twcat_OBJECTS) $(twcat_LDADD) $(LIBS) twclip$(EXEEXT): $(twclip_OBJECTS) $(twclip_DEPENDENCIES) $(EXTRA_twclip_DEPENDENCIES) @rm -f twclip$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twclip_OBJECTS) $(twclip_LDADD) $(LIBS) twclutter$(EXEEXT): $(twclutter_OBJECTS) $(twclutter_DEPENDENCIES) $(EXTRA_twclutter_DEPENDENCIES) @rm -f twclutter$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twclutter_OBJECTS) $(twclutter_LDADD) $(LIBS) twcuckoo$(EXEEXT): $(twcuckoo_OBJECTS) $(twcuckoo_DEPENDENCIES) $(EXTRA_twcuckoo_DEPENDENCIES) @rm -f twcuckoo$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twcuckoo_OBJECTS) $(twcuckoo_LDADD) $(LIBS) twdialog$(EXEEXT): $(twdialog_OBJECTS) $(twdialog_DEPENDENCIES) $(EXTRA_twdialog_DEPENDENCIES) @rm -f twdialog$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twdialog_OBJECTS) $(twdialog_LDADD) $(LIBS) twdm$(EXEEXT): $(twdm_OBJECTS) $(twdm_DEPENDENCIES) $(EXTRA_twdm_DEPENDENCIES) @rm -f twdm$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twdm_OBJECTS) $(twdm_LDADD) $(LIBS) twevent$(EXEEXT): $(twevent_OBJECTS) $(twevent_DEPENDENCIES) $(EXTRA_twevent_DEPENDENCIES) @rm -f twevent$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twevent_OBJECTS) $(twevent_LDADD) $(LIBS) twfindtwin$(EXEEXT): $(twfindtwin_OBJECTS) $(twfindtwin_DEPENDENCIES) $(EXTRA_twfindtwin_DEPENDENCIES) @rm -f twfindtwin$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twfindtwin_OBJECTS) $(twfindtwin_LDADD) $(LIBS) twlsmsgport$(EXEEXT): $(twlsmsgport_OBJECTS) $(twlsmsgport_DEPENDENCIES) $(EXTRA_twlsmsgport_DEPENDENCIES) @rm -f twlsmsgport$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twlsmsgport_OBJECTS) $(twlsmsgport_LDADD) $(LIBS) twlsobj$(EXEEXT): $(twlsobj_OBJECTS) $(twlsobj_DEPENDENCIES) $(EXTRA_twlsobj_DEPENDENCIES) @rm -f twlsobj$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twlsobj_OBJECTS) $(twlsobj_LDADD) $(LIBS) twsendmsg$(EXEEXT): $(twsendmsg_OBJECTS) $(twsendmsg_DEPENDENCIES) $(EXTRA_twsendmsg_DEPENDENCIES) @rm -f twsendmsg$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twsendmsg_OBJECTS) $(twsendmsg_LDADD) $(LIBS) twsetroot$(EXEEXT): $(twsetroot_OBJECTS) $(twsetroot_DEPENDENCIES) $(EXTRA_twsetroot_DEPENDENCIES) @rm -f twsetroot$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twsetroot_OBJECTS) $(twsetroot_LDADD) $(LIBS) twsysmon$(EXEEXT): $(twsysmon_OBJECTS) $(twsysmon_DEPENDENCIES) $(EXTRA_twsysmon_DEPENDENCIES) @rm -f twsysmon$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twsysmon_OBJECTS) $(twsysmon_LDADD) $(LIBS) twterm$(EXEEXT): $(twterm_OBJECTS) $(twterm_DEPENDENCIES) $(EXTRA_twterm_DEPENDENCIES) @rm -f twterm$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twterm_OBJECTS) $(twterm_LDADD) $(LIBS) twthreadtest$(EXEEXT): $(twthreadtest_OBJECTS) $(twthreadtest_DEPENDENCIES) $(EXTRA_twthreadtest_DEPENDENCIES) @rm -f twthreadtest$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twthreadtest_OBJECTS) $(twthreadtest_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cat.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clip.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/clutter.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cuckoo.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dialog.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dm.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/findtwin.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lsmsgport.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lsobj.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pty.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sendmsg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setroot.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sysmon.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/term.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threadtest.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool \ clean-sbinPROGRAMS mostlyclean-am distclean: distclean-recursive -rm -f ./$(DEPDIR)/attach.Po -rm -f ./$(DEPDIR)/cat.Po -rm -f ./$(DEPDIR)/clip.Po -rm -f ./$(DEPDIR)/clutter.Po -rm -f ./$(DEPDIR)/cuckoo.Po -rm -f ./$(DEPDIR)/dialog.Po -rm -f ./$(DEPDIR)/dm.Po -rm -f ./$(DEPDIR)/event.Po -rm -f ./$(DEPDIR)/findtwin.Po -rm -f ./$(DEPDIR)/lsmsgport.Po -rm -f ./$(DEPDIR)/lsobj.Po -rm -f ./$(DEPDIR)/pty.Po -rm -f ./$(DEPDIR)/sendmsg.Po -rm -f ./$(DEPDIR)/setroot.Po -rm -f ./$(DEPDIR)/sysmon.Po -rm -f ./$(DEPDIR)/term.Po -rm -f ./$(DEPDIR)/threadtest.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-sbinPROGRAMS @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-exec-hook install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/attach.Po -rm -f ./$(DEPDIR)/cat.Po -rm -f ./$(DEPDIR)/clip.Po -rm -f ./$(DEPDIR)/clutter.Po -rm -f ./$(DEPDIR)/cuckoo.Po -rm -f ./$(DEPDIR)/dialog.Po -rm -f ./$(DEPDIR)/dm.Po -rm -f ./$(DEPDIR)/event.Po -rm -f ./$(DEPDIR)/findtwin.Po -rm -f ./$(DEPDIR)/lsmsgport.Po -rm -f ./$(DEPDIR)/lsobj.Po -rm -f ./$(DEPDIR)/pty.Po -rm -f ./$(DEPDIR)/sendmsg.Po -rm -f ./$(DEPDIR)/setroot.Po -rm -f ./$(DEPDIR)/sysmon.Po -rm -f ./$(DEPDIR)/term.Po -rm -f ./$(DEPDIR)/threadtest.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-sbinPROGRAMS .MAKE: $(am__recursive_targets) install-am install-exec-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--depfiles check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool clean-sbinPROGRAMS cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-exec-hook install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-sbinPROGRAMS install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-sbinPROGRAMS .PRECIOUS: Makefile install-exec-hook: rm -f $(DESTDIR)$(bindir)/twdetach $(LN_S) twattach $(DESTDIR)$(bindir)/twdetach # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: twin-0.9.0/clients/README.twsetroot000066400000000000000000000070301377535120600171040ustar00rootroot00000000000000 twsetroot --- set the desktop image in twin twsetroot is a tool to manipulate the background (or root window, or desktop) or a running twin. For the moment, twsetroot knows only about one type of image file: * ASCII art files: they consist of plain ASCII text plus special escape sequences (known as ANSI sequences, and ASCII art files may be named ANSI images) to manipulate colors and cursor position. On such files, the size of the generated image cannot be know beforehand, so twsetroot keeps track of the size while reading more and more data from the file. To have twsetroot read an ASCII art file, use `twsetroot -aa ' Whatever the file type is (others will be added in the future), once twsetroot has read the whole image, sends it to twin to be stored as the background image of the current screen. If you specify no parameter, twsetroot reads from standard input; so for example echo -e '\033[1;44;30m\261' | twsetroot sets the background of twin to a 1x1 image, with `bold black' (i.e. dark grey) foreground on `blue' background, and containing the pseudo-graphical character \261 (or ASCII 177, or '') This also happens to be the default background of twin. Another example: echo -e '\033[1;44;34m \334\337\n\337\334 ' | twsetroot This is also in the file setroot.sample, so you can instead do twsetroot -aa setroot.sample If twin is using the correct (VGA) font, this will look as: To add an empty border to an image, you can use the options `-padx ' and `-pady '. The border will use the last color set in the image, so it may be important *not* to put '\033[0m' at the image end. For example twsetroot -padx 2 -pady 1 -aa setroot.sample will produce A last (useless ?) example is to use this file, README.twsetroot, as background: twsetroot -aa README.twsetroot For more background images, you should probably look on the internet for ASCII art files, use aalib (ASCII art lib) to convert some *real* images (gif, jpeg, ...) into nice ASCII art files that twsetroot can use or create them by your own with an ANSI editor. Last, you probably are interested in knowing all the escape sequences to set colors. You can do `man console_codes' and learn the whole topic of escape sequences, but a quick summary about the ones supported by twsetroot is included here: the most general color-changing sequence (if I remember correctly, it's an ANSI stardard) is: ESC[;...m where ESC is the `Escape' char (\033 octal, 27 decimal), then you have an open square `[', then a list of semi-colon separated numbers, then a final `m' to close the sequence. Don't put spaces in the sequence, and don't put a semi-colon `;' just before the `m'. Recognized values are: 0 reset colors: set to white foreground on black background 1 bold / high intensity foreground 5 blink / high intensity background 7 reverse: swap foreground with background 30..37 set foreground to 0..7, with: 0 = black 1 = red 2 = green 3 = yellow (brown) 4 = blue 5 = magenta 6 = cyan 7 = white 38 restore default foreground (this is a linux and twin/twterm extension) 40..47 set background to 0..7 (see colors above) 48 restore default background (this is a linux and twin/twterm extension) That's all. Happy ASCII-arting, Massimiliano Ghilardi twin-0.9.0/clients/attach.c000066400000000000000000000207741377535120600155750ustar00rootroot00000000000000/* * attach.c -- connect to a running twin and tell it to attach/detach * from a given display * * Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include #include #include #include #include #include "version.h" static char *MYname; static void Usage(byte detach) { fprintf(stderr, "Usage: %s [OPTIONS] %s\n" "Currently known options: \n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" " -a attach display%s\n" " -d detach display%s\n" " -s, --share allow multiple simultaneous displays (default)\n" " -x, --excl request exclusive display - detach all others\n" " -v, --verbose verbose output (default)\n" " -q, --quiet quiet - don't report messages from twin server\n" " -f, --force force running even with wrong protocol version\n" " --twin@ specify server to contact (default is $TWDISPLAY)\n" " --hw=[,options] start the given display driver\n" "Currently known display drivers: \n" "\tX[@]\n" "\ttwin[@]\n" "\ttty[@]\n", MYname, detach ? "" : "--hw= [...]", detach ? "" : " (default)", detach ? " (default)" : ""); } static TW_VOLATILE byte gotSignals, gotSignalWinch, gotSignalPanic; static TW_RETSIGTYPE SignalWinch(int n) { signal(SIGWINCH, SignalWinch); gotSignals = gotSignalWinch = ttrue; TW_RETFROMSIGNAL(0); } static TW_RETSIGTYPE SignalPanic(int n) { signal(n, SIG_IGN); gotSignals = gotSignalPanic = ttrue; TW_RETFROMSIGNAL(0); } static void ShowVersion(void) { printf("%s " TWIN_VERSION_STR " with socket protocol " TW_PROTOCOL_VERSION_STR "\n", MYname); } static byte VersionsMatch(byte force) { uldat cv = TW_PROTOCOL_VERSION, lv = TwLibraryVersion(), sv = TwServerVersion(); if (lv != sv || lv != cv) { fprintf(stderr, "%s: %s: socket protocol version mismatch!%s\n" " client is %d.%d.%d, library is %d.%d.%d, server is %d.%d.%d\n", MYname, (force ? "warning" : "fatal"), (force ? " (ignored)" : ""), (int)TW_VER_MAJOR(cv), (int)TW_VER_MINOR(cv), (int)TW_VER_PATCH(cv), (int)TW_VER_MAJOR(lv), (int)TW_VER_MINOR(lv), (int)TW_VER_PATCH(lv), (int)TW_VER_MAJOR(sv), (int)TW_VER_MINOR(sv), (int)TW_VER_PATCH(sv)); return tfalse; } return ttrue; } static void InitSignals(void) { signal(SIGWINCH, SignalWinch); signal(SIGCHLD, SIG_IGN); signal(SIGPIPE, SIG_IGN); signal(SIGIO, SIG_IGN); #ifndef TW_DONT_TRAP_SIGNALS signal(SIGHUP, SignalPanic); signal(SIGINT, SignalPanic); signal(SIGQUIT, SignalPanic); signal(SIGILL, SignalPanic); signal(SIGABRT, SignalPanic); signal(SIGBUS, SignalPanic); signal(SIGFPE, SignalPanic); signal(SIGSEGV, SignalPanic); signal(SIGTERM, SignalPanic); signal(SIGXCPU, SignalPanic); signal(SIGXFSZ, SignalPanic); #ifdef SIGPWR signal(SIGPWR, SignalPanic); #endif #endif } TW_DECL_MAGIC(attach_magic); int main(int argc, char *argv[]) { byte detach = 0, redirect, force = 0, flags = TW_ATTACH_HW_REDIRECT; char *dpy = NULL, *arg = NULL, *tty = ttyname(0); byte ret = 0, ourtty = 0, servtty = 0; char *s; TW_CONST char *buff; uldat chunk; TwMergeHyphensArgv(argc, argv); MYname = argv[0]; if (strstr(argv[0], "detach")) detach = 1; while (*++argv) { if (!strcmp(*argv, "-V") || !strcmp(*argv, "-version")) { ShowVersion(); return 0; } else if (!strcmp(*argv, "-h") || !strcmp(*argv, "-help")) { Usage(detach); return 0; } else if (!strcmp(*argv, "-x") || !strcmp(*argv, "-excl")) flags |= TW_ATTACH_HW_EXCLUSIVE; else if (!strcmp(*argv, "-s") || !strcmp(*argv, "-share")) flags &= ~TW_ATTACH_HW_EXCLUSIVE; else if (!strcmp(*argv, "-a")) detach = 0; else if (!strcmp(*argv, "-d")) detach = 1; else if (!strcmp(*argv, "-v") || !strcmp(*argv, "-verbose")) flags |= TW_ATTACH_HW_REDIRECT; else if (!strcmp(*argv, "-q") || !strcmp(*argv, "-quiet")) flags &= ~TW_ATTACH_HW_REDIRECT; else if (!strcmp(*argv, "-f") || !strcmp(*argv, "-force")) force = 1; else if (!strncmp(*argv, "-twin@", 6)) dpy = *argv + 6; else if (!strncmp(*argv, "-hw=", 4)) { if (!strncmp(*argv + 4, "tty", 3)) { buff = *argv + 7; s = strchr(buff, ','); if (s) *s = '\0'; if (!*buff) /* attach twin to our tty */ ourtty = 1; else if (*buff == '@' && buff[1]) { if (buff[1] == '-') { /* tell twin to attach to its tty */ servtty = 1; } else if (tty) { if (!strcmp(buff + 1, tty)) /* attach twin to our tty */ ourtty = 1; } else { fprintf(stderr, "%s: ttyname() failed, cannot find controlling tty!\n", MYname); return 1; } } else { fprintf(stderr, "%s: malformed display hw `%s'\n", MYname, *argv); return 1; } if (s) *s = ','; else s = ""; if (ourtty) { buff = getenv("TERM"); if (!buff) buff = ""; arg = (char *)malloc(strlen(tty) + 9 + strlen(s) + (*buff ? 6 + strlen(buff) : 0)); sprintf(arg, "-hw=tty@%s%s%s%s", tty, (*buff ? ",TERM=" : ""), buff, s); } else if (servtty) { arg = malloc(8 + strlen(s)); sprintf(arg, "-hw=tty%s", s); } else arg = strdup(*argv); } else if ((*argv)[4]) arg = strdup(*argv); else { Usage(detach); return 1; } } else { fprintf(stderr, "%s: argument `%s' not recognized\n" "\ttry `%s --help' for usage summary.\n", MYname, *argv, MYname); return 1; } } if (detach == 0 && !arg) { Usage(detach); return 1; } redirect = flags & TW_ATTACH_HW_REDIRECT; InitSignals(); if (TwCheckMagic(attach_magic) && TwOpen(dpy) && TwCreateMsgPort(8, "twattach")) do { if (!VersionsMatch(force)) { if (!force) { fprintf(stderr, "%s: Aborting. Use option `--force' to ignore versions check.\n", MYname); TwClose(); return 1; } } if (detach) { return !TwDetachHW(arg ? strlen(arg) : 0, arg); } TwAttachHW(arg ? strlen(arg) : 0, arg, flags); TwFlush(); free(arg); if (redirect) fprintf(stderr, "reported messages...\n"); for (;;) { buff = TwAttachGetReply(&chunk); if (buff <= (char *)2) { ret = (byte)(size_t)buff; break; } else if (buff == (char *)-1) /* libtw panic */ break; fprintf(stderr, "%.*s", (int)chunk, buff); } fflush(stderr); if (TwInPanic()) break; if (ourtty) { fputs("\033[2J", stdout); fflush(stdout); } /* * twin waits this before grabbing the display... * so we can fflush(stdout) to show all messages * *BEFORE* twin draws on (eventually) the same tty */ TwAttachConfirm(); if (ret == 2) { /* * twin told us to stay and sit on the display * until it is quitted. */ int fd = TwConnectionFd(); fd_set fds; FD_ZERO(&fds); while (!gotSignalPanic && !TwInPanic()) { while (TwReadMsg(tfalse)) ; FD_SET(fd, &fds); select(fd + 1, &fds, NULL, NULL, NULL); if (gotSignalWinch) TwNeedResizeDisplay(), TwFlush(), gotSignalWinch = tfalse; } } else if (redirect) { if (ret) fprintf(stderr, "... ok, twin successfully attached.\n"); else fprintf(stderr, "... ach, twin failed to attach.\n"); } return !ret; } while (0); chunk = TwErrno; fprintf(stderr, "%s: libtw error: %s%s\n", MYname, TwStrError(chunk), TwStrErrorDetail(chunk, TwErrnoDetail)); return 1; } twin-0.9.0/clients/cat.c000066400000000000000000000071031377535120600150670ustar00rootroot00000000000000/* * cat.c -- twin-aware version of classical `cat' * * This program is placed in the public domain. * */ #include #include #include #ifdef TW_HAVE_STRING_H #include #endif #ifdef TW_HAVE_SYS_STAT_H #include #endif #ifdef TW_HAVE_FCNTL_H #include #endif #define COD_QUIT (udat)1 static tmsgport Cat_MsgPort; static tmenu Cat_Menu; static twindow Cat_Win; TW_DECL_MAGIC(cat_magic); static byte InitCat(void) { twindow Window; return TwCheckMagic(cat_magic) && TwOpen(NULL) && (Cat_MsgPort = TwCreateMsgPort(5, "twcat")) && (Cat_Menu = TwCreateMenu(TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && (TwInfo4Menu(Cat_Menu, TW_ROW_ACTIVE, 10, " Twin Cat ", (TW_CONST tcolor *)"ptpppptpppppp"), (Cat_Win = TwCreateWindow(8, "Twin Cat", NULL, Cat_Menu, TCOL(tblack, thigh | tblack), TW_LINECURSOR, TW_WINDOW_DRAG | TW_WINDOW_RESIZE | TW_WINDOW_X_BAR | TW_WINDOW_Y_BAR | TW_WINDOW_CLOSE, TW_WINDOWFL_USEROWS | TW_WINDOWFL_ROWS_DEFCOL, 80, 25, 0))) && (Window = TwWin4Menu(Cat_Menu)) && TwItem4Menu(Cat_Menu, Window, ttrue, 6, " File ") && (TwSetColorsWindow(Cat_Win, 0x1FF, TCOL(thigh | tgreen, twhite), TCOL(tcyan, tblue), TCOL(thigh | tblue, tblack), TCOL(thigh | twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblack), TCOL(thigh | tblack, twhite), TCOL(tblack, thigh | tblack), TCOL(tblack, twhite)), TwConfigureWindow(Cat_Win, 0xF << 2, 0, 0, 7, 3, TW_MAXDAT, TW_MAXDAT), TwRow4Menu(Window, COD_QUIT, TW_ROW_INACTIVE, 17, " Quit Alt-X ")) && TwItem4MenuCommon(Cat_Menu) && (TwMapWindow(Cat_Win, TwFirstScreen()), TwFlush()); } int main(int argc, char *argv[]) { int fd = -1, got; char buf[4096]; tmsg Msg; tevent_gadget EventG; uldat err; TwMergeHyphensArgv(argc, argv); if (argc > 2) { fprintf(stderr, "usage %s filename\n", argv[0]); return 0; } if (!argv[1] || !*argv[1]) { fd = 0; } else { if (!strcmp("-", argv[1])) fd = 0; else { fd = open(argv[1], O_RDONLY); if (fd < 0) { fprintf(stderr, "%s: failed to open `%s': %s\n", argv[0], argv[1], strerror(errno)); return 0; } } } if (!InitCat()) { err = TwErrno; fprintf(stderr, "%s: libtw error: %s%s\n", argv[0], TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); return 0; } while ((got = read(fd, buf, 4096)) > 0) { TwWriteCharsetWindow(Cat_Win, got, buf); TwFlush(); } while ((Msg = TwReadMsg(ttrue))) { if (Msg->Type == TW_MSG_WIDGET_GADGET) { EventG = &Msg->Event.EventGadget; if (EventG->Code == 0 && EventG->W == Cat_Win) break; } } if ((err = TwErrno)) fprintf(stderr, "%s: libtw error: %s%s\n", argv[0], TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); if (!TwInPanic()) { /* these are not strictly necessary, as the server would cleanup by itself... */ TwUnMapWindow(Cat_Win); TwDeleteWindow(Cat_Win); TwDeleteMenu(Cat_Menu); TwDeleteMsgPort(Cat_MsgPort); TwClose(); return 0; } return 1; } twin-0.9.0/clients/clip.c000066400000000000000000000116171377535120600152540ustar00rootroot00000000000000/* * clip.c -- a wannabe editor for twin. Currently just echoes keyboard. * * This program is placed in the public domain. * */ #include #include #include #define COD_QUIT (udat)1 static tmsgport Clip_MsgPort; static tmenu Clip_Menu; static twindow Clip_Win; TW_DECL_MAGIC(clip_magic); static byte InitClip(void) { twindow Window; return TwCheckMagic(clip_magic) && TwOpen(NULL) && (Clip_MsgPort = TwCreateMsgPort(11, "twclipboard")) && (Clip_Menu = TwCreateMenu(TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && (TwInfo4Menu(Clip_Menu, TW_ROW_ACTIVE, 16, " Twin Clipboard ", (TW_CONST tcolor *)"ptpppptppppppppp"), (Clip_Win = TwCreateWindow(14, "Twin Clipboard", NULL, Clip_Menu, TCOL(thigh | twhite, thigh | tblack), TW_LINECURSOR, TW_WINDOW_WANT_KEYS | TW_WINDOW_DRAG | TW_WINDOW_RESIZE | TW_WINDOW_X_BAR | TW_WINDOW_Y_BAR | TW_WINDOW_CLOSE, TW_WINDOWFL_CURSOR_ON | TW_WINDOWFL_ROWS_DEFCOL, 38, 18, 0))) && (Window = TwWin4Menu(Clip_Menu)) && TwRow4Menu(Window, COD_QUIT, TW_ROW_INACTIVE, 17, " Quit Alt-X ") && TwItem4Menu(Clip_Menu, Window, ttrue, 6, " File ") && (TwSetColorsWindow(Clip_Win, 0x1FF, TCOL(thigh | tgreen, twhite), TCOL(tcyan, tblue), TCOL(thigh | tblue, tblack), TCOL(thigh | twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblack), TCOL(thigh | tblack, twhite), TCOL(tblack, thigh | tblack), TCOL(tblack, twhite)), TwConfigureWindow(Clip_Win, 0xF << 2, 0, 0, 7, 3, TW_MAXDAT, TW_MAXDAT), (Window = TwWin4Menu(Clip_Menu))) && TwItem4Menu(Clip_Menu, Window, tfalse, 6, " Clip ") && TwRow4Menu(Window, (udat)0, TW_ROW_INACTIVE, 16, " Undo ") && TwRow4Menu(Window, (udat)0, TW_ROW_INACTIVE, 16, " Redo ") && TwRow4Menu(Window, (udat)0, TW_ROW_IGNORE, 16, "\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4") && TwRow4Menu(Window, (udat)0, TW_ROW_ACTIVE, 16, " Cut ") && TwRow4Menu(Window, (udat)0, TW_ROW_ACTIVE, 16, " Copy ") && TwRow4Menu(Window, (udat)0, TW_ROW_ACTIVE, 16, " Paste ") && TwRow4Menu(Window, (udat)0, TW_ROW_ACTIVE, 16, " Clear ") && TwRow4Menu(Window, (udat)0, TW_ROW_IGNORE, 16, "\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4") && TwRow4Menu(Window, (udat)0, TW_ROW_INACTIVE, 16, " Show Clipboard ") && (Window = TwWin4Menu(Clip_Menu)) && TwItem4Menu(Clip_Menu, Window, ttrue, 8, " Search ") && TwRow4Menu(Window, (udat)0, TW_ROW_ACTIVE, 9, " Find ") && TwRow4Menu(Window, (udat)0, TW_ROW_ACTIVE, 9, " Replace ") && TwItem4MenuCommon(Clip_Menu) && (TwMapWindow(Clip_Win, TwFirstScreen()), TwFlush()); } int main(int argc, char *argv[]) { tmsg Msg; uldat err, WinN = 1; if (InitClip()) while ((Msg = TwReadMsg(ttrue))) { if (Msg->Type == TW_MSG_WIDGET_KEY) { tevent_keyboard EventK = &Msg->Event.EventKeyboard; (void)TwWriteCharsetWindow(EventK->W, EventK->SeqLen, EventK->AsciiSeq); } else if (Msg->Type == TW_MSG_SELECTION) { /* * send Msg->Event.EventSelection.Window as ReqPrivate field, * so that we will get it back in TW_MSG_SELECTIONNOTIFY message * without having to store it manually */ TwRequestSelection(TwGetOwnerSelection(), Msg->Event.EventSelection.W); } else if (Msg->Type == TW_MSG_SELECTIONNOTIFY) { tevent_selectionnotify EventN = &Msg->Event.EventSelectionNotify; if (EventN->Magic == TW_SEL_UTF8MAGIC) (void)TwWriteUtf8Window(EventN->ReqPrivate, EventN->Len, EventN->Data); } else if (Msg->Type == TW_MSG_SELECTIONCLEAR) { ; } else if (Msg->Type == TW_MSG_WIDGET_GADGET) { tevent_gadget EventG = &Msg->Event.EventGadget; if (EventG->Code == 0 && EventG->W == Clip_Win) { TwUnMapWindow(Clip_Win); TwDeleteWindow(Clip_Win); if (!--WinN) break; } } } if ((err = TwErrno)) fprintf(stderr, "%s: libtw error: %s%s\n", argv[0], TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); if (!TwInPanic()) { /* these are not strictly necessary, as the server would cleanup by itself... */ TwDeleteMenu(Clip_Menu); TwDeleteMsgPort(Clip_MsgPort); TwClose(); return 0; } return 1; } twin-0.9.0/clients/clutter.c000066400000000000000000000044061377535120600160050ustar00rootroot00000000000000/* * clutter.c -- Useless client that spams twin with windows. Used for benchmarks ;-) * * This program is placed in the public domain. * */ #include #include #include #include #include static tmsgport Clutter_MsgPort; static tmenu Clutter_Menu; static tscreen Clutter_Screen; dat X, Y; #define MAXLRAND48 0x7FFFFFFFl static byte NewClutterWindow(void) { twindow Window; if ((Window = TwCreateWindow( 7, "Clutter", NULL, Clutter_Menu, TCOL(tblack, thigh | tblack), TW_LINECURSOR, TW_WINDOW_DRAG | TW_WINDOW_RESIZE | TW_WINDOW_X_BAR | TW_WINDOW_Y_BAR | TW_WINDOW_CLOSE, TW_WINDOWFL_ROWS_DEFCOL, 11, 3, 0))) { TwConfigureWindow(Window, 0x3, lrand48() / (MAXLRAND48 / X), lrand48() / (MAXLRAND48 / Y), 0, 0, 0, 0); TwMapWindow(Window, Clutter_Screen); return ttrue; } return tfalse; } TW_DECL_MAGIC(clutter_magic); static byte InitClutter(void) { if (!TwCheckMagic(clutter_magic) || !TwOpen(NULL)) return tfalse; srand48(time(NULL)); Clutter_Screen = TwFirstScreen(); X = TwGetDisplayWidth(); Y = TwGetDisplayHeight(); if ((Clutter_MsgPort = TwCreateMsgPort(9, "twclutter")) && (Clutter_Menu = TwCreateMenu(TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && TwItem4MenuCommon(Clutter_Menu)) { TwInfo4Menu(Clutter_Menu, TW_ROW_ACTIVE, 17, " Useless Clutter ", NULL); return ttrue; } return tfalse; } int main(int argc, char *argv[]) { tmsg Msg; uldat err; if (!InitClutter()) { err = TwErrno; fprintf(stderr, "%s: libtw error: %s%s\n", argv[0], TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); return 1; } while (NewClutterWindow()) { while ((Msg = TwReadMsg(tfalse))) { if (Msg->Type == TW_MSG_WIDGET_GADGET) { if (Msg->Event.EventGadget.Code == 0) { return 0; } } } } if ((err = TwErrno)) { fprintf(stderr, "%s: libtw error: %s%s\n", argv[0], TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); return 1; } return 0; } twin-0.9.0/clients/cuckoo.c000066400000000000000000000142421377535120600156050ustar00rootroot00000000000000/* * cuckoo.c -- twin reimplementation of xcuckoo * * Copyright (C) 1999-2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include #include #include #include #include #include #ifdef TW_HAVE_UNISTD_H #include #endif #ifdef TW_HAVE_SYS_RESOURCE_H #include #endif #ifdef TW_HAVE_SYS_WAIT_H #include #endif #include #include #include #include #include "version.h" TW_DECL_MAGIC(magic); static void Error(char *name, uldat err) { fprintf(stderr, "%s: libtw error: %s%s\n", name, TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); } static void Usage(char *name) { fprintf(stderr, "Usage: %s [OPTIONS]\n" "Currently known options: \n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" " -d, --delay= delay in seconds between updates\n" " -w, --window= window to place our egg into\n" " -e run instead of `time'\n" " (must be last option)\n", name); } static void ShowVersion(void) { fprintf(stdout, "twcuckoo " TWIN_VERSION_STR "\n"); } static uldat ReallocBuff(char **buff, uldat min_len) { uldat len; *buff = (char *)TwReAllocMem(*buff, len = (min_len + min_len / 4 + 10)); return len; } static struct timeval Now; static void GetNow(void) { gettimeofday(&Now, NULL); } static uldat BuiltinTime(char builtin_egg[10]) { time_t t; struct tm *localt; GetNow(); t = (time_t)Now.tv_sec; localt = localtime(&t); sprintf(builtin_egg, "%02d:%02d:%02d", (int)localt->tm_hour & 31, (int)localt->tm_min & 63, (int)localt->tm_sec & 63); return strlen(builtin_egg); } static twindow wid = TW_NOID; static tslist wlist = NULL; static TW_CONST char *wtitle; static uldat wtitle_len; static volatile int ReceivedFatalSignal = tfalse; static TW_RETSIGTYPE SignalChild(int n) { pid_t pid; signal(SIGCHLD, SignalChild); while ((pid = Tw_wait3(NULL, WNOHANG, NULL)) != 0 && pid != (pid_t)-1) ; TW_RETFROMSIGNAL(0); } static TW_RETSIGTYPE SignalFatal(int n) { ReceivedFatalSignal = n; signal(n, SIG_DFL); TW_RETFROMSIGNAL(0); } byte InitSignals(void) { signal(SIGCHLD, SignalChild); signal(SIGPIPE, SIG_IGN); signal(SIGIO, SIG_IGN); signal(SIGHUP, SignalFatal); signal(SIGINT, SignalFatal); signal(SIGQUIT, SignalFatal); signal(SIGILL, SignalFatal); signal(SIGABRT, SignalFatal); signal(SIGBUS, SignalFatal); signal(SIGFPE, SignalFatal); signal(SIGSEGV, SignalFatal); signal(SIGTERM, SignalFatal); signal(SIGXCPU, SignalFatal); signal(SIGXFSZ, SignalFatal); #ifdef SIGPWR signal(SIGPWR, SignalFatal); #endif return ttrue; } static byte Init(void) { return InitSignals() && TwCheckMagic(magic) && TwOpen(NULL); } static void Cleanup(void) { if (wlist) { TwSetTitleWindow(wid, wtitle_len, wtitle); TwDeleteStat(wlist); } TwFlush(); if (ReceivedFatalSignal) raise(ReceivedFatalSignal); } int main(int argc, char *argv[]) { char builtin_egg[10]; char **cmd_args = NULL, *name = argv[0], *buff = NULL; TW_CONST char *egg; uldat egg_len, buff_len = 0, buff_capacity = 0, delay = 1, err; tall aid = TW_NOID; tsfield wfield; argv++; argc--; TwMergeHyphensArgv(argc, argv); while (argc) { if (!strcmp(*argv, "-h") || !strcmp(*argv, "-help")) { Usage(name); return 0; } else if (!strcmp(*argv, "-V") || !strcmp(*argv, "-version")) { ShowVersion(); return 0; } else if (argc > 1 && !strcmp(*argv, "-d")) { delay = strtol(*++argv, NULL, 0); argc--; } else if (!strncmp(*argv, "-delay=", 7)) { delay = strtol(*argv + 7, NULL, 0); } else if (argc > 1 && !strcmp(*argv, "-w")) { wid = strtol(*++argv, NULL, 0); argc--; } else if (!strncmp(*argv, "-window=", 8)) { wid = strtol(*argv + 8, NULL, 0); } else if (argc > 1 && !strcmp(*argv, "-e")) { cmd_args = argv; cmd_args[0] = cmd_args[1]; break; } else { fprintf(stderr, "%s: argument `%s' not recognized\n" "\ttry `%s --help' for usage summary.\n", name, *argv, name); return 1; } argv++; argc--; } if (!Init() || (aid = TwGetAll()) == TW_NOID) { Error(name, TwErrno); return 1; } /* * race! we cannot use Tw_StatL() here, since the Tw_* calls below * will overwrite the returned buffer. So we use Tw_CloneStatL(), * which copies the buffer in a private malloc:ed() area. */ if (wid == TW_NOID || (wlist = TwCloneStatL(wid, 1, TWS_window_Name)) == NULL || wlist->N < 1 || (wfield = wlist->TSF)->label != TWS_window_Name || wfield->type != (TWS_vec | TWS_byte)) { fprintf(stderr, "%s: error: no such server window: 0x%X\n", name, wid); return 1; } wtitle = wfield->TWS_field_vecV; wtitle_len = wfield->TWS_field_vecL; while (!ReceivedFatalSignal && !TwInPanic()) { /* discard any message we may get... */ while (TwPeekMsg()) TwReadMsg(tfalse); if (cmd_args == NULL) { egg_len = BuiltinTime(builtin_egg); egg = builtin_egg; } else { /* TODO: run external command and collect its output */ fprintf(stderr, "%s: external commands not yet implemented!\n", name); return 1; } if (buff_capacity < (buff_len = wtitle_len + egg_len + 1)) buff_capacity = ReallocBuff(&buff, buff_len); memcpy(buff, wtitle, wtitle_len); buff[wtitle_len] = ' '; memcpy(buff + wtitle_len + 1, egg, egg_len); TwSetTitleWindow(wid, buff_len, buff); TwFlush(); GetNow(); #ifdef TW_HAVE_USLEEP usleep(delay * 1000000 - Now.tv_usec); #else sleep(delay); #endif } if ((err = TwErrno)) Error(name, err); Cleanup(); return TwInPanic() ? 1 : 0; } twin-0.9.0/clients/demo.c000066400000000000000000000016561377535120600152530ustar00rootroot00000000000000/* * demo.c -- sample client for libTT * * This program is placed in the public domain. * */ #include #include #include #include TT_DECL_MAGIC(ttdemo_magic); int main(int argc, char *argv[]) { ttframe f; ttbyte ok; ok = TTCheckMagic(ttdemo_magic) && TTOpen(NULL) && TTCreate_ttapplication("ttdemo") && (f = TTNEW(ttframe)) && /* * connect `askclose' event to TTExitMainLoop(): * * by default new listeners get called AFTER the other existing listeners */ TTCreateAskclose_ttlistener((ttcomponent)f, 0, (ttlistener_fn)TTExitMainLoop) && (TTSetWH_ttwidget((ttwidget)f, 10, 8), TTSetVisible_ttvisible((ttvisible)f, TT_TRUE), TTMainLoop()); if (!ok) fprintf(stderr, "ttdemo: libTT error: %s%s\n", TTStrError(TTErrno), TTStrErrorDetail(TTErrno, TTErrnoDetail)); TTClose(); return !ok; } twin-0.9.0/clients/demo2.c000066400000000000000000000163441377535120600153350ustar00rootroot00000000000000/* * demo.c -- sample client for libTT. * It mostly demonstrates some libTT functions, * without being actually useful. * * This program is placed in the public domain. * */ #include #include #include #include static TT_VOLATILE ttbyte my_exitmainloop; TT_DECL_MAGIC(ttdemo_magic); static void stat_ttobj(ttobj f) { ttfield i, last; TT_CONST ttbyte *name; ttbyte buf[64]; ttarg data; ttclass Class; ttopaque type; ttany value; printf("(%s) 0x%x = {\n", name = TTClassNameOf(f), (unsigned)(ttopaque)f); sprintf(buf, "%s_field_last", name); last = TTGet_ttfield(buf); i = TTGet_ttfield("ttobj_field_first"); for (; i < last; i = (ttfield)((ttopaque)i + 1)) { /* * evil trick here: * TTGet_ttfield() actually returns an integer, * and we try all values for that integer from * ttfield "ttobj_field_first" to "_field_last" */ if ((name = TTGetName_ttfield(i)) && TTGetField_ttobj(f, i, &data)) { value = data.value; type = data.type; Class = TTFromType_ttclass(type); /* if it's an array of bytes (i.e. a string) then print as a string */ if (Class == TTClass_ttbyte && TTIsArrayType_ttclass(type)) { if (value) printf("\t%s\t= (%s)\t\"%s\";\n", name, TTGetName_ttclass(Class), (ttbyte *)(ttopaque)value); else printf("\t%s\t= (%s)\tNULL;\n", name, TTGetName_ttclass(Class)); } else printf("\t%s\t= (%s)\t0x%lx;\n", name, TTGetName_ttclass(Class), (unsigned long)value); } } printf("}\n"); } /* * since my_printf is used from TTCreateDel_ttlistener(), * it will always receive only one argument: * arg0 will contain the object that generated the event since TTCreateDel_ttlistener() * was called with the ttlistener_lflags_arg0_component flag set. */ static ttany my_exit(ttany arg0) { printf("delete: 0x%x\n", (unsigned)arg0 /* this is (f) below */); if (TTIS(ttvisible, arg0)) { /* * the double cast (ttobj)(ttopaque)arg0 avoid warnings in case * the integer type (ttany) of arg0 has different size than the pointer type (ttobj) */ stat_ttobj((ttobj)(ttopaque)arg0); /* TTExitMainLoop(); */ my_exitmainloop = TT_TRUE; } return 0; } static void my_repaint(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h) { printf("repaint: 0x%x x=%d y=%d w=%d h=%d\n", (unsigned)(ttopaque)o, (int)x, (int)y, (int)w, (int)h); } static void my_resize(ttany arg0) { ttcomponent f; tteventbig e; static ttuint widget_w, widget_h; ttany value, old_value; ttany evcode; if (TTIS(tteventbig, arg0)) { e = (tteventbig)(ttopaque)arg0; f = TTGetComponent_ttevent((ttevent)e); evcode = TTGetEvcode_ttevent((ttevent)e); value = TTGetValue_tteventbig(e); old_value = TTGetOldValue_tteventbig(e); if (!widget_w) { widget_w = TTGetEvcode_ttfield("ttwidget_w"); widget_h = TTGetEvcode_ttfield("ttwidget_h"); } printf("resize: 0x%x %c=%d (was %d)\n", (unsigned)(ttopaque)f, evcode == widget_w ? 'w' : 'h', (int)value, (int)old_value); } } static void my_keydata_changed(ttany arg0) { tteventbig e; ttcomponent f; ttdata d; if (TTIS(tteventbig, arg0)) { e = (tteventbig)(ttopaque)arg0; d = (ttdata)TTGetComponent_ttevent((ttevent)e); if (TTIS(ttdata, d)) { f = TTGetComponent_ttdata(d); printf("key data change: 0x%x [key 0x%x, \"%s\"] data=%d (was %d)\n", (unsigned)(ttopaque)f, (unsigned)(ttopaque)d, TTGetKey_ttdata(d), TTGetValue_tteventbig(e), TTGetOldValue_tteventbig(e)); } } } static ttbyte my_init(void) { ttframe f; ttlistener l1, l2; if (TTCheckMagic(ttdemo_magic) && TTOpen(NULL) && TTCreate_ttapplication("ttdemo") && (f = TTNEW(ttframe)) && /* * connect `askclose' event to TTDel(): * this is only to show how to do it, since TTClose() * or exit() are already enough to shutdown libTT * * by default new listeners get called AFTER the other existing listeners * * set ttlistener_lflags_arg0_component flag so that * first argument will be (f) */ TTCreateAskclose_ttlistener((ttcomponent)f, ttlistener_lflags_arg0_component, (void *)TTDel) && /* * when f gets deleted (by callback above), call my_exit to exit libTT main loop. */ TTCreateDel_ttlistener((ttcomponent)f, ttlistener_lflags_arg0_component, (void *)my_exit) && /* * react to f resizes. */ (l1 = TTCreateChange_ttlistener((ttcomponent)f, TTGetEvcode_ttfield("ttwidget_w"), 0, (void *)my_resize)) && (l2 = TTCreateChange_ttlistener((ttcomponent)f, TTGetEvcode_ttfield("ttwidget_h"), 0, (void *)my_resize)) && /* * the following two function show how to use KeyData in ttcomponents * and watch for changes in it. */ TTSetKeyData_ttcomponent((ttcomponent)f, "somestring", 19) && TTCreateKeyData_ttlistener((ttcomponent)f, "somestring", 0, (void *)my_keydata_changed) && TTSetKeyData_ttcomponent((ttcomponent)f, "somestring", 123456789) && TT_TRUE) { /* * play with blocked events */ ttuint evtypes[] = {0x2000, 0x0100, 0x1000}; ttopaque n = sizeof(evtypes) / sizeof(evtypes[0]); TTSetEventMask_ttlistener( l1, TTCreateB_tteventmask(TTCreateR_ttbitmask(TTCreateY_ttvector(n, evtypes)), NULL, NULL)); /* * now we cannot use the created ttvectors, ttbitmasks and tteventmasks anymore: * TTSetEventMask_ttlistener(), TTCreate_tteventmask() and TTCreateV_ttbitmask() * swallow them. */ TTSetEventMask_ttlistener( l2, TTCreateB_tteventmask(TTCreateR_ttbitmask(TTCreateY_ttvector(n, evtypes)), NULL, NULL)); /* * idem as above */ TTSetRepaint_ttvisible((ttvisible)f, my_repaint); TTSetWH_ttwidget((ttwidget)f, 10, 8); TTSetVisible_ttvisible((ttvisible)f, TT_TRUE); return TT_TRUE; } return TT_FALSE; } static ttbyte my_mainloop(void) { int fd, ret; fd_set rfds; if ((fd = TTConnectionFd()) < 0) return tfalse; FD_ZERO(&rfds); for (; !my_exitmainloop;) { do { /* important: we must TTFlush() before select() ! */ TTFlush(); FD_SET(fd, &rfds); /* we could also add other fds to select(), or set a timeout */ ret = select(fd + 1, &rfds, NULL, NULL, NULL); } while (ret < 0 && errno == EINTR && !my_exitmainloop); if (FD_ISSET(fd, &rfds)) /* * here `FALSE' is the `wait' parameter: * if events are immediately available TTMainLoopOnce(wait) dispatches them, * else if `wait' is set waits for at least one event and dispatches it, * else just returns */ if (!TTMainLoopOnce(tfalse)) break; } return my_exitmainloop; } int main(int argc, char *argv[]) { byte ok; if ((ok = my_init())) { /* * ok = TTMainLoop(); */ /* do it the hard way instead: */ ok = my_mainloop(); } if (!ok) fprintf(stderr, "ttdemo: libTT error: %s%s\n", TTStrError(TTErrno), TTStrErrorDetail(TTErrno, TTErrnoDetail)); TTClose(); return !ok; } twin-0.9.0/clients/demo3.c000066400000000000000000000107531377535120600153340ustar00rootroot00000000000000/* * demo3.c -- sample client for libTT * * This program is placed in the public domain. * */ #include #include #include #include TT_DECL_MAGIC(ttdemo_magic); static ttslider s1, s2; static ttlabel l1, l2; static void print_error(void) { fprintf(stderr, "ttdemo3: libTT error: %s%s\n", TTStrError(TTErrno), TTStrErrorDetail(TTErrno, TTErrnoDetail)); } static void show_slider(ttany arg0) { tteventbig e = (tteventbig)(ttopaque)arg0; ttslider s; byte buf[8]; int val; if (TTINSTANCEOF(tteventbig, e)) { s = (ttslider)TTGetComponent_ttevent((ttevent)e); val = TTGetValue_tteventbig(e) & 0x3F; /* ensure not to overrun buf[] */ sprintf(buf, "%c=%2d", s == s1 ? 'x' : 'y', val); if (s == s1) TTSetText_ttlabel(l1, buf); else if (s == s2) TTSetText_ttlabel(l2, buf); } } static ttbyte init(void) { ttframe f; ttbutton b; ttcheckbutton c; ttradiobutton r1, r2; ttbuttongroup g; ttscroller s; ttscrollpane p; ttlabel l3[6]; ttint i; ttbyte ok = TT_FALSE; if (TTCheckMagic(ttdemo_magic) && TTOpen(NULL) && TTCreate_ttapplication("ttdemo3") && (f = TTCreate_ttframe("ttdemo3")) && /* * connect `askclose' event for f to TTExitMainLoop(): * * by default (unless you set ttlistener_lflags_before flag) * the listener gets called AFTER the other existing listeners */ TTCreateAskclose_ttlistener((ttcomponent)f, 0, (ttlistener_fn)TTExitMainLoop) && (b = TTCreate_ttbutton(6, 1, 6, "button")) && (c = TTCreate_ttcheckbutton(11, 1, 11, "checkbutton")) && (r1 = TTCreate_ttradiobutton(12, 1, 12, "radiobutton1")) && (r2 = TTCreate_ttradiobutton(12, 1, 12, "radiobutton2")) && (g = TTNEW(ttbuttongroup)) && (s1 = TTCreate_ttslider(ttanyscroll_orientation_x, 12)) && (s2 = TTCreate_ttslider(ttanyscroll_orientation_y, 9)) && (s = TTCreate_ttscroller(22, 6)) && (l1 = TTCreate_ttlabel("x= 0")) && (l2 = TTCreate_ttlabel("y= 0")) && (l3[0] = TTCreate_ttlabel("this is a scroll test.")) && (l3[1] = TTCreate_ttlabel("you should be able to scroll")) && (l3[2] = TTCreate_ttlabel("this text with the scrollbars")) && (l3[3] = TTCreate_ttlabel("at the right and at the bottom")) && (l3[4] = TTCreate_ttlabel("of the text itself. Please report")) && (l3[5] = TTCreate_ttlabel("any incorrect behaviour you find.")) && TTCreateChange_ttlistener((ttcomponent)s1, TTGetEvcode_ttfield("ttslider_slide_value"), 0, (ttlistener_fn)show_slider) && TTCreateChange_ttlistener((ttcomponent)s2, TTGetEvcode_ttfield("ttslider_slide_value"), 0, (ttlistener_fn)show_slider) && (ok = TT_TRUE)) { TTSetXY_ttwidget((ttwidget)b, 0, 0); TTSetXY_ttwidget((ttwidget)c, 0, 2); TTSetXY_ttwidget((ttwidget)r1, 0, 4); TTSetXY_ttwidget((ttwidget)r2, 0, 6); TTSetXY_ttwidget((ttwidget)s1, 0, 8); TTSetXY_ttwidget((ttwidget)s2, 17, 0); TTSetXY_ttwidget((ttwidget)l1, 19, 2); TTSetXY_ttwidget((ttwidget)l2, 19, 4); TTSetXY_ttwidget((ttwidget)s, 1, 10); TTAdd_ttvisible((ttvisible)f, (ttvisible)b, ttlayout_constraint_root); TTAdd_ttvisible((ttvisible)f, (ttvisible)c, ttlayout_constraint_root); TTAdd_ttvisible((ttvisible)f, (ttvisible)r1, ttlayout_constraint_root); TTAdd_ttvisible((ttvisible)f, (ttvisible)r2, ttlayout_constraint_root); TTAdd_ttvisible((ttvisible)f, (ttvisible)s1, ttlayout_constraint_root); TTAdd_ttvisible((ttvisible)f, (ttvisible)s2, ttlayout_constraint_root); TTAdd_ttvisible((ttvisible)f, (ttvisible)l1, ttlayout_constraint_root); TTAdd_ttvisible((ttvisible)f, (ttvisible)l2, ttlayout_constraint_root); TTAdd_ttvisible((ttvisible)f, (ttvisible)s, ttlayout_constraint_root); p = TTGetScrollpane_ttscroller(s); TTSetWlHl_ttwidget((ttwidget)p, 0x3, 35, 7); for (i = 0; i < sizeof(l3) / sizeof(l3[0]); i++) { TTSetXY_ttwidget((ttwidget)l3[i], 0, i); TTAdd_ttvisible((ttvisible)p, (ttvisible)l3[i], ttlayout_constraint_root); } TTAdd_ttbuttongroup(g, r1); TTAdd_ttbuttongroup(g, r2); TTSetWH_ttwidget((ttwidget)f, 24, 16); TTSetVisible_ttvisible((ttvisible)f, TT_TRUE); } return ok; } static ttbyte mainloop(void) { return TTMainLoop(); } static void quit(void) { if (TTErrno) print_error(); TTClose(); } int main(int argc, char *argv[]) { ttbyte ret; ret = init() && mainloop(); quit(); return !ret; } twin-0.9.0/clients/dialog.c000066400000000000000000000223761377535120600155700ustar00rootroot00000000000000/* * dialog.c -- twin-aware version of classical `dialog' * * Copyright (C) 2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include #include #include #include #include #define COD_QUIT (udat)1 #define Max2(a, b) ((a) > (b) ? (a) : (b)) static tmsgport Dialog_MsgPort; static tmenu Dialog_Menu; static twindow Dialog_Win; static byte separate_output; static char *title = "twdialog", *backtitle, *text, *input; static dat width = 80, height = 25, percent; typedef struct { char *tag; char *item; byte status; } t_list; static t_list *list; static int listN; static byte (*mode)(void); static void AllocList(void) { if (!(list = (t_list *)malloc(listN * sizeof(t_list)))) { fprintf(stderr, "twdialog: out of memory!\n"); exit(1); } } static byte OnOff(char *arg) { return strlen(arg) == 2 && (arg[0] == 'O' || arg[0] == 'o') && (arg[1] == 'N' || arg[1] == 'n'); } static void Usage(void) { fprintf(stderr, "twdialog version 0.1.\n" "Display dialog boxes from shell scripts\n" "\n" "Usage: twdialog [--title ] [--separate-output] [--backtitle <backtitle>] <Box " "options>\n" "\n" "Box options:\n" "\n" " --yesno <text> <height> <width>\n" " --msgbox <text> <height> <width>\n" " --infobox <text> <height> <width>\n" " --inputbox <text> <height> <width> [<init>]\n" " --textbox <file> <height> <width>\n" " --menu <text> <height> <width> <menu height> <tag1> <item1>...\n" " --checklist <text> <height> <width> <list height> <tag1> <item1> <status1>...\n" " --radiolist <text> <height> <width> <list height> <tag1> <item1> <status1>...\n" " --gauge <text> <height> <width> <percent>\n"); } static byte InitButtons(char *bt1, char *bt2) { return TwCreateButtonGadget(Dialog_Win, strlen(bt1), 1, bt1, 1, 0, TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, tgreen), width / 2 - (bt2 ? strlen(bt1) + 2 : strlen(bt1) / 2), height - 2) && (!bt2 || TwCreateButtonGadget(Dialog_Win, strlen(bt2), 1, bt2, 2, 0, TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, tgreen), width / 2 + strlen(bt2) / 2, height - 2)); } static byte InitGadgets(byte radio) { return tfalse; } static int CountNewLines(char *s) { int ret = 0; while (s) { if ((s = strchr(s, '\n'))) { ret++; s++; } } return ret; } static byte ShowText(void) { if (text) { int len = strlen(text); if (!memchr(text, '\n', len)) TwGotoXYWindow(Dialog_Win, (width - len) / 2, 0); TwWriteCharsetWindow(Dialog_Win, len, text); } return ttrue; } static byte ShowFile(void) { return tfalse; } static byte InitYesNoBox(void) { return ShowText() && InitButtons(" Yes ", " No "); } static byte InitMsgBox(void) { return ShowText() && InitButtons(" OK ", NULL); } static byte InitInfoBox(void) { return ShowText(); } static byte InitInputBox(void) { return tfalse; } static byte InitTextBox(void) { return ShowFile() && InitButtons(" EXIT ", NULL); } static byte InitMenuBox(void) { int i, y; if (ShowText()) { y = CountNewLines(text) + 2; for (i = 0; i < listN; i++) { TwGotoXYWindow(Dialog_Win, 3, i + y); TwWriteCharsetWindow(Dialog_Win, strlen(list[i].tag), list[i].tag); TwGotoXYWindow(Dialog_Win, 10, i + y); TwWriteCharsetWindow(Dialog_Win, strlen(list[i].item), list[i].item); } return InitButtons(" OK ", "Cancel"); } return tfalse; } static byte InitCheckBox(void) { return ShowText() && InitGadgets(ttrue); } static byte InitRadioBox(void) { return ShowText() && InitGadgets(tfalse); } static byte InitGaugeBox(void) { return ShowText(); } static byte ParseArgs(int argc, char *argv[]) { int eaten; if (++argv, !--argc) { Usage(); return tfalse; } while (argc) { eaten = 1; if (!strcmp(*argv, "--separate-output")) separate_output = ttrue; else if (argc >= 2 && !strcmp(*argv, "--title")) title = argv[1], eaten = 2; else if (argc >= 2 && !strcmp(*argv, "--backtitle")) backtitle = argv[1], eaten = 2; else if (argc == 4 && !strcmp(*argv, "--yesno")) { eaten = argc; mode = InitYesNoBox; text = argv[1]; height = atoi(argv[2]); width = atoi(argv[3]); } else if (argc == 4 && !strcmp(*argv, "--msgbox")) { eaten = argc; mode = InitMsgBox; text = argv[1]; height = atoi(argv[2]); width = atoi(argv[3]); } else if (argc == 4 && !strcmp(*argv, "--infobox")) { eaten = argc; mode = InitInfoBox; text = argv[1]; height = atoi(argv[2]); width = atoi(argv[3]); } else if ((argc == 4 || argc == 5) && !strcmp(*argv, "--inputbox")) { eaten = argc; mode = InitInputBox; text = argv[1]; height = atoi(argv[2]); width = atoi(argv[3]); if (argc == 5) input = argv[4]; } else if (argc == 4 && !strcmp(*argv, "--textbox")) { eaten = argc; mode = InitTextBox; text = argv[1]; height = atoi(argv[2]); width = atoi(argv[3]); } else if (argc >= 7 && (argc % 2) == 1 && !strcmp(*argv, "--menu") && (listN = atoi(argv[4])) * 2 + 5 == argc) { mode = InitMenuBox; text = argv[1]; height = atoi(argv[2]); width = atoi(argv[3]); AllocList(); for (eaten = 0; eaten < listN; eaten++) { list[eaten].tag = argv[5 + eaten * 2]; list[eaten].item = argv[6 + eaten * 2]; } eaten = argc; } else if (argc >= 8 && (argc % 3) == 2 && !strcmp(*argv, "--checklist") && (listN = atoi(argv[4])) * 3 + 5 == argc) { mode = InitCheckBox; text = argv[1]; height = atoi(argv[2]); width = atoi(argv[3]); AllocList(); for (eaten = 0; eaten < listN; eaten++) { list[eaten].tag = argv[5 + eaten * 3]; list[eaten].item = argv[6 + eaten * 3]; list[eaten].status = OnOff(argv[7 + eaten * 3]); } eaten = argc; } else if (argc >= 8 && (argc % 3) == 2 && !strcmp(*argv, "--radiolist") && (listN = atoi(argv[4])) * 3 + 5 == argc) { mode = InitRadioBox; text = argv[1]; height = atoi(argv[2]); width = atoi(argv[3]); AllocList(); for (eaten = 0; eaten < listN; eaten++) { list[eaten].tag = argv[5 + eaten * 3]; list[eaten].item = argv[6 + eaten * 3]; list[eaten].status = OnOff(argv[7 + eaten * 3]); } eaten = argc; } else if (argc == 5 && !strcmp(*argv, "--gauge")) { eaten = argc; mode = InitGaugeBox; text = argv[1]; height = atoi(argv[2]); width = atoi(argv[3]); percent = atoi(argv[4]); } else { Usage(); return tfalse; } argc -= eaten; argv += eaten; } width -= 2; height -= 2; return ttrue; } TW_DECL_MAGIC(dialog_magic); static byte InitDialog(void) { twindow Window; return TwCheckMagic(dialog_magic) && TwOpen(NULL) && (Dialog_MsgPort = TwCreateMsgPort(8, "twdialog")) && (Dialog_Menu = TwCreateMenu(TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && (TwInfo4Menu(Dialog_Menu, TW_ROW_ACTIVE, 10, " Twin Dialog ", (TW_CONST tcolor *)"ptpppptpppppp"), ttrue) && (Window = TwWin4Menu(Dialog_Menu)) && TwRow4Menu(Window, COD_QUIT, TW_ROW_INACTIVE, 6, " Quit ") && TwItem4Menu(Dialog_Menu, Window, ttrue, 6, " File ") && TwItem4MenuCommon(Dialog_Menu) && (Dialog_Win = TwCreateWindow(strlen(title), title, NULL, Dialog_Menu, TCOL(tblack, twhite), TW_LINECURSOR, TW_WINDOW_DRAG | TW_WINDOW_RESIZE | TW_WINDOW_CLOSE, TW_WINDOWFL_ROWS_DEFCOL, width, height, 0)) && (TwSetColorsWindow(Dialog_Win, 1 << 6, 0, 0, 0, 0, 0, 0, TCOL(thigh | twhite, tblue), 0, 0), ttrue) && (*mode)() && (TwMapWindow(Dialog_Win, TwFirstScreen()), ttrue) && TwFlush(); } int main(int argc, char *argv[]) { tmsg Msg; tevent_gadget EventG; uldat err; if (!ParseArgs(argc, argv)) return 255; if (InitDialog()) while ((Msg = TwReadMsg(ttrue))) { if (Msg->Type == TW_MSG_WIDGET_GADGET) { EventG = &Msg->Event.EventGadget; if (EventG->W == Dialog_Win) switch (EventG->Code) { case 0: return 1; default: return EventG->Code - 1; } } } if ((err = TwErrno)) fprintf(stderr, "%s: libtw error: %s%s\n", argv[0], TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); if (!TwInPanic()) TwClose(); return 255; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/dm.c�����������������������������������������������������������������������������0000664�0000000�0000000�00000044010�13775351206�0014716�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * dm.c -- twin version of 'xdm' * * Copyright (C) 2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <signal.h> #include <grp.h> #include <pwd.h> #include <sys/stat.h> #include <Tw/Tw.h> #include <Tw/Twkeys.h> #include <Tw/Twerrno.h> #include <Tutf/Tutf.h> #include "version.h" #ifdef TW_HAVE_FCNTL_H #include <fcntl.h> #endif #ifdef TW_HAVE_UNISTD_H #include <unistd.h> #endif #ifdef TW_HAVE_CRYPT_H #include <crypt.h> #endif #ifdef TW_HAVE_SHADOW_H #include <shadow.h> #endif #ifdef TW_HAVE_SYS_RESOURCE_H #include <sys/resource.h> #endif #ifdef TW_HAVE_SYS_WAIT_H #include <sys/wait.h> #endif #ifdef TW_HAVE_SYS_UTSNAME_H #include <sys/utsname.h> #endif #if !defined(TW_HAVE_WAIT3) && !defined(TW_HAVE_WAIT4) #error both wait3() and wait4() missing! Cannot compile twdm. #endif #ifdef BINDIR #define BINDIR_PREFIX BINDIR "/" #else #define BINDIR_PREFIX "../server/" #endif #define DM_GADGET_LOGIN 1 #define DM_GADGET_CLEAR 2 #define DM_GADGET_CONSOLE 3 #define DM_AUTO 0 #define DM_ATTACH 1 #define DM_DISPLAY 2 static tmsgport DM_MsgPort; static tmenu DM_Menu; static tscreen DM_Screen; static twindow DM_Window, DM_user, DM_pass; static TW_CONST char *DM_Display; static byte DM_Kill, quiet, oneshot, logged_in; static TW_VOLATILE pid_t ServerPid = (pid_t)-1, AttachPid = (pid_t)-1; static char *TW_CONST *Args; static TW_CONST char *hw_name = "--hw=tty", *title, *TwEnvRC = NULL; static byte use_twdisplay = DM_AUTO, Privileges = TW_PRIV_NONE; typedef struct s_data { char txt[30]; byte len; byte x; } * data; static struct s_data user, pass; static void Usage(void) { fprintf(stderr, "Usage: twdm [OPTIONS]\n" "Currently known options: \n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" " -k, --kill kill twin server upon display detach\n" " -q, --quiet quiet; suppress diagnostic messages\n" " -1, --one-shot start at most one session, then exit\n" " --attach use \"twattach\" to start display\n" " --display use \"twdisplay\" to start display\n" " (default unless --hw=tty)\n" " --envrc tell twin to run .twenvrc.sh to get environment\n" " --suidroot tell twin to keep suid root privileges\n" " --sgidtty tell twin to keep sgid tty privileges\n" " --title=<title> set window title\n" " --hw=<arg> set display hw to use (default: --hw=tty)\n"); } static void ShowVersion(void) { fprintf(stdout, "twdm " TWIN_VERSION_STR "\n"); } static void ParseArgs(void) { TW_CONST char *s; while ((s = *Args)) { if (!strcmp(s, "-h") || !Tw_option_strcmp(s, "-help")) { Usage(); exit(0); } else if (!strcmp(s, "-V") || !Tw_option_strcmp(s, "-version")) { ShowVersion(); exit(0); } else if (!strcmp(s, "-k") || !Tw_option_strcmp(s, "-kill")) { DM_Kill = ttrue; } else if (!strcmp(s, "-q") || !Tw_option_strcmp(s, "-quiet")) { quiet = ttrue; } else if (!strcmp(s, "-1") || !Tw_option_strcmp(s, "-one-shot")) { oneshot = ttrue; } else if (!Tw_option_strcmp(s, "-attach")) { use_twdisplay = DM_ATTACH; } else if (!Tw_option_strcmp(s, "-display")) { use_twdisplay = DM_DISPLAY; } else if (!Tw_option_strcmp(s, "-envrc")) { TwEnvRC = "--envrc"; } else if (!Tw_option_strcmp(s, "-suidroot")) { Privileges = TW_PRIV_SUIDROOT; } else if (!Tw_option_strcmp(s, "-sgidtty")) { Privileges = TW_PRIV_SGIDTTY; } else if (!Tw_option_strncmp(s, "-title=", 7)) { title = s + 7; } else if (!Tw_option_strncmp(s, "-hw=", 4)) { hw_name = s; } else if (!strcmp(s, "--")) { /* '--' means end of options */ break; } else { fprintf(stderr, "twdm: unknown option: `%s'\n" "\ttry `twdm --help' for usage summary.\n", s); exit(1); } Args++; } } static void SetHOME(void) { #if defined(TW_HAVE_SETENV) || defined(TW_HAVE_PUTENV) char *HOME = getenv("HOME"); struct stat buf; if ((!HOME || !strcmp(HOME, "/")) && #ifdef TW_HAVE_LSTAT lstat("/root", &buf) >= 0 && #else stat("/root", &buf) >= 0 && #endif S_ISDIR(buf.st_mode)) { #ifdef TW_HAVE_SETENV setenv("HOME", "/root", 1); #else putenv("HOME=/root"); #endif } #endif /* defined(TW_HAVE_SETENV) || defined(TW_HAVE_PUTENV) */ } static byte InitServer(void) { int i, fd[2]; static char buff[80]; if (pipe(fd) >= 0) switch (fork()) { case 0: /* child */ if (fd[1] != 1) { close(1); dup2(fd[1], 1); close(fd[1]); } if (fd[0] != 1) close(fd[0]); execl(BINDIR_PREFIX "twin", "twin", "--secure", "--nohw", TwEnvRC, NULL); execlp("twin", "twin", "--secure", "--nohw", TwEnvRC, NULL); fprintf(stderr, "twdm: exec(twin) failed: %s\n", strerror(errno)); exit(1); return tfalse; case (pid_t)-1: /* error */ close(fd[0]); close(fd[1]); fprintf(stderr, "twdm: fork() failed: %s\n", strerror(errno)); return tfalse; default: /* parent */ close(fd[1]); do { i = read(fd[0], buff, 79); } while (i < 0 && errno == EINTR); close(fd[0]); if (i > 33 && !memcmp(buff, "twin: starting in background as :", 33)) { while (buff[--i] == '\n') ; buff[++i] = '\0'; DM_Display = buff + (i = 32); while (buff[i] && buff[i] != ' ') i++; if (buff[i]) { buff[i++] = '\0'; if (!strncmp(buff + i, "(pid ", 5)) ServerPid = atoi(buff + i + 5); } return ttrue; } if (i <= 0) fprintf(stderr, "twdm: read() from twin failed: %s\n", strerror(errno)); else fprintf(stderr, "twdm: error starting twin:\n\t%.*s\n", i, buff); return tfalse; } fprintf(stderr, "twdm: pipe() failed: %s\n", strerror(errno)); return tfalse; } static void shortsleep(void) { struct timeval tv = {0, 100000}; select(0, NULL, NULL, NULL, &tv); } static byte InitAttach(void) { char *attach, *path_attach; char buff[] = "--twin@:\0\0\0"; if (use_twdisplay == DM_ATTACH || (use_twdisplay == DM_AUTO && !Tw_option_strcmp(hw_name, "-hw=tty"))) { attach = "twattach"; path_attach = BINDIR_PREFIX "twattach"; } else { attach = "twdisplay"; path_attach = BINDIR_PREFIX "twdisplay"; } strncpy(buff + 7, DM_Display, 4); /* sleep a little to let server start up */ shortsleep(); switch ((AttachPid = fork())) { case 0: /* child */ execl(path_attach, attach, "--quiet", buff, hw_name, NULL); execlp(attach, attach, "--quiet", buff, hw_name, NULL); fprintf(stderr, "twdm: exec(%s) failed: %s\n", attach, strerror(errno)); exit(1); return tfalse; case (pid_t)-1: /* error */ fprintf(stderr, "twdm: fork() failed: %s\n", strerror(errno)); return tfalse; default: /* parent */ break; } /* sleep a little to let twdisplay start up */ shortsleep(); return ttrue; } TW_DECL_MAGIC(DM_magic); static byte InitClient(void) { dat X, Y; char *tbuf; if (!TwCheckMagic(DM_magic) || !TwOpen(DM_Display)) return tfalse; DM_Screen = TwFirstScreen(); X = TwGetDisplayWidth(); Y = TwGetDisplayHeight(); if (!title) { struct utsname buf; if (uname(&buf) >= 0 && (tbuf = (char *)TwAllocMem(12 + strlen(buf.nodename)))) { sprintf(tbuf, "Welcome at %s", buf.nodename); title = tbuf; } else title = "Login Manager"; } if ((DM_MsgPort = TwCreateMsgPort(2, "DM")) && (DM_Menu = TwCreateMenu(TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && TwItem4MenuCommon(DM_Menu) && (TwInfo4Menu(DM_Menu, TW_ROW_ACTIVE, 61, " Twin Display Manager. Enter user name and password to login.", NULL), ttrue) && (DM_Window = TwCreateWindow(strlen(title), title, NULL, DM_Menu, TCOL(twhite, tblue), TW_NOCURSOR, TW_WINDOW_DRAG | TW_WINDOW_WANT_KEYS, TW_WINDOWFL_USEROWS, 40, 15, 0)) && (DM_user = TwCreateWindow( 6, "Login:", NULL, DM_Menu, TCOL(tblack, tcyan), TW_LINECURSOR, TW_WINDOW_WANT_KEYS, TW_WINDOWFL_CURSOR_ON | TW_WINDOWFL_USEROWS | TW_WINDOWFL_ROWS_DEFCOL, 30, 1, 0)) && (DM_pass = TwCreateWindow( 9, "Password:", NULL, DM_Menu, TCOL(tblack, tcyan), TW_LINECURSOR, TW_WINDOW_WANT_KEYS, TW_WINDOWFL_CURSOR_ON | TW_WINDOWFL_USEROWS | TW_WINDOWFL_ROWS_DEFCOL, 30, 1, 0)) && TwCreateButtonGadget(DM_Window, 7, 1, " Login ", TW_GADGETFL_USETEXT, DM_GADGET_LOGIN, TCOL(twhite, tblue), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, tgreen), 5, 12) && TwCreateButtonGadget(DM_Window, 7, 1, " Clear ", TW_GADGETFL_USETEXT, DM_GADGET_CLEAR, TCOL(twhite, tblue), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, tgreen), 16, 12) && TwCreateButtonGadget(DM_Window, 7, 1, " Leave ", TW_GADGETFL_USETEXT, DM_GADGET_CONSOLE, TCOL(twhite, tblue), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, tgreen), 27, 12) ) { TwSetColTextWindow(DM_Window, TCOL(thigh | tred, tblue)); TwGotoXYWindow(DM_Window, 7, 8); TwWriteCharsetWindow(DM_Window, 26, "L O G I N F A I L E D !"); TwSetXYWindow(DM_Window, (X - 40) / 2, (Y - 15) / 2); TwSetXYWindow(DM_user, 4, 2); TwSetXYWindow(DM_pass, 4, 7); TwMapWindow(DM_Window, DM_Screen); TwMapWindow(DM_user, DM_Window); TwMapWindow(DM_pass, DM_Window); TwFocusSubWidget(DM_user); return ttrue; } return tfalse; } static void ClearKey(void) { TwGotoXYWindow(DM_user, 0, 0); memset(user.txt, ' ', user.len); TwWriteCharsetWindow(DM_user, user.len, user.txt); TwGotoXYWindow(DM_user, user.len = user.x = 0, 0); user.txt[0] = '\0'; TwGotoXYWindow(DM_pass, 0, 0); memset(pass.txt, ' ', pass.len); TwWriteCharsetWindow(DM_pass, pass.len, pass.txt); TwGotoXYWindow(DM_pass, pass.len = pass.x = 0, 0); pass.txt[0] = '\0'; } static void kill_server(void) { if (ServerPid != (pid_t)-1) { kill(ServerPid, SIGTERM); kill(ServerPid, SIGCONT); } } static void kill_attach(void) { if (AttachPid != (pid_t)-1) { kill(AttachPid, SIGTERM); kill(AttachPid, SIGCONT); } } static void Login(void) { struct passwd *p; char *pw_passwd = NULL, *c; byte ok = tfalse; if ((p = getpwnam(user.txt))) { #ifdef TW_HAVE_GETSPNAM struct spwd *s = getspnam(user.txt); if (s) pw_passwd = s->sp_pwdp; else #endif pw_passwd = p->pw_passwd; #if defined(TW_HAVE_CRYPT) || defined(TW_HAVE_CRYPT_CRYPT) if (pw_passwd && (((c = crypt(pass.txt, pw_passwd)) && !strcmp(c, pw_passwd)) || !*pw_passwd)) ok = ttrue; #endif if (ok && TwSetServerUid(p->pw_uid, Privileges)) { /* all ok */ ClearKey(); TwDeleteMsgPort(DM_MsgPort); logged_in = ttrue; return; } } /* something is wrong... */ TwUnMapWindow(DM_pass); TwFocusSubWidget(DM_user); ClearKey(); TwFlush(); sleep(3); TwMapWindow(DM_pass, DM_Window); /* we slept. swallow all events ready to be received */ while (TwPeekMsg()) TwReadMsg(tfalse); } static void Logout(void) { TwClose(); if (DM_Kill || logged_in == tfalse) kill_server(); else kill_attach(); shortsleep(); logged_in = tfalse; } static void quit(void) { kill_server(); shortsleep(); exit(0); } static void DelKey(twindow W, data u) { if (u->x < u->len) { if (u->x + 1 < u->len) memmove(u->txt + u->x, u->txt + u->x + 1, u->len - u->x - 1); u->txt[--u->len] = '\0'; if (W == DM_user) { TwGotoXYWindow(W, 0, 0); TwWriteCharsetWindow(W, u->len, u->txt); } else TwGotoXYWindow(W, u->len, 0); TwWriteCharsetWindow(W, 1, " "); TwGotoXYWindow(W, u->x, 0); } } static void BackKey(twindow W, data u) { if (u->x) { u->x--; DelKey(W, u); } } static void LeftKey(twindow W, data u) { if (u->x) TwGotoXYWindow(W, --u->x, 0); } static void RightKey(twindow W, data u) { if (u->x < u->len) TwGotoXYWindow(W, ++u->x, 0); } static void HomeKey(twindow W, data u) { if (u->x) TwGotoXYWindow(W, u->x = 0, 0); } static void EndKey(twindow W, data u) { if (u->x < u->len) TwGotoXYWindow(W, u->x = u->len, 0); } static void WriteUtf8Key(twindow W, data u, udat len, char *seq) { char *_txt; byte _len, x; _txt = u->txt; _len = u->len; x = u->x; if (x <= 29) { if (x + len > 29) len = 29 - x; TwCopyMem(seq, _txt + x, len); if (x + len > _len) _len = x + len; _txt[_len] = '\0'; u->x += len; u->len = _len; if (W == DM_pass) memset(seq, '*', len); TwWriteUtf8Window(W, len, seq); } } static void HandleKey(tevent_keyboard E) { data u; if (E->W == DM_Window) { TwFocusSubWidget(E->W = DM_user); } if (E->W == DM_user) u = &user; else u = &pass; switch (E->Code) { case TW_Linefeed: case TW_Return: if (E->W == DM_pass) Login(); else TwFocusSubWidget(DM_pass); break; case TW_Tab: TwFocusSubWidget(E->W == DM_pass ? DM_user : DM_pass); break; case TW_BackSpace: BackKey(E->W, u); break; case TW_Delete: case TW_KP_Delete: DelKey(E->W, u); break; case TW_Left: case TW_KP_Left: LeftKey(E->W, u); break; case TW_Right: case TW_KP_Right: RightKey(E->W, u); break; case TW_Home: case TW_KP_Home: HomeKey(E->W, u); break; case TW_End: case TW_KP_End: EndKey(E->W, u); break; default: if (E->Code >= 32 && E->Code < 256 && E->SeqLen) WriteUtf8Key(E->W, u, E->SeqLen, E->AsciiSeq); break; } } static void HandleGadget(tevent_gadget E) { switch (E->Code) { case DM_GADGET_LOGIN: Login(); break; case DM_GADGET_CLEAR: ClearKey(); break; case DM_GADGET_CONSOLE: quit(); break; default: break; } } static TW_RETSIGTYPE SignalPanic(int n) { signal(n, SIG_DFL); quit(); TW_RETFROMSIGNAL(0); } static TW_RETSIGTYPE SignalChild(int n) { pid_t pid; int status; signal(SIGCHLD, SignalChild); while ((pid = Tw_wait3(&status, WNOHANG, (struct rusage *)0)) != 0 && pid != (pid_t)-1) { if (WIFEXITED(status) || WIFSIGNALED(status)) { if (pid == AttachPid) AttachPid = (pid_t)-1; } } TW_RETFROMSIGNAL(0); } static void InitSignals(void) { signal(SIGWINCH, SIG_IGN); signal(SIGCHLD, SignalChild); signal(SIGPIPE, SIG_IGN); signal(SIGIO, SIG_IGN); signal(SIGHUP, SIG_IGN); #ifndef TW_DONT_TRAP_SIGNALS signal(SIGINT, SignalPanic); signal(SIGQUIT, SignalPanic); signal(SIGILL, SignalPanic); signal(SIGABRT, SignalPanic); signal(SIGBUS, SignalPanic); signal(SIGFPE, SignalPanic); signal(SIGSEGV, SignalPanic); signal(SIGTERM, SignalPanic); signal(SIGXCPU, SignalPanic); signal(SIGXFSZ, SignalPanic); #ifdef SIGPWR signal(SIGPWR, SignalPanic); #endif #endif } int main(int argc, char *argv[]) { fd_set fset; int fd; tmsg Msg; uldat err; Args = argv + 1; ParseArgs(); SetHOME(); if (getuid() != 0) { fprintf(stderr, "Only root wants to run twdm\n"); return 1; } InitSignals(); if (quiet && (err = open("/dev/null", O_RDWR)) != (uldat)-1 && err != 2) { dup2(err, 2); close(err); } while (InitServer() && InitAttach() && InitClient()) { fd = TwConnectionFd(); FD_ZERO(&fset); /* wait for user to login */ while (AttachPid != (pid_t)-1 && ServerPid != (pid_t)-1 && logged_in == tfalse && !TwInPanic()) { while ((Msg = TwReadMsg(tfalse))) switch (Msg->Type) { case TW_MSG_WIDGET_KEY: HandleKey(&Msg->Event.EventKeyboard); break; case TW_MSG_WIDGET_GADGET: HandleGadget(&Msg->Event.EventGadget); break; case TW_MSG_SELECTION: /* * send Msg->Event.EventSelection.W as ReqPrivate field, * so that we will get it back in TW_MSG_SELECTIONNOTIFY message * without having to store it manually */ TwRequestSelection(TwGetOwnerSelection(), Msg->Event.EventSelection.W); break; case TW_MSG_SELECTIONNOTIFY: { tevent_selectionnotify E = &Msg->Event.EventSelectionNotify; /* react as for keypresses */ if (E->Magic == TW_SEL_UTF8MAGIC) { WriteUtf8Key(E->ReqPrivate, E->ReqPrivate == DM_user ? &user : &pass, E->Len, (char *)E->Data); } } break; default: break; } /* * sleep until a message or a signal arrives. * using TwReadMsg(ttrue) would *NOT* immediately return * after a signal is received. */ FD_SET(fd, &fset); select(fd + 1, &fset, NULL, NULL, NULL); } /* wait for user to logout */ while (AttachPid != (pid_t)-1 && ServerPid != (pid_t)-1 && logged_in == ttrue && !TwInPanic()) { while ((Msg = TwReadMsg(tfalse))) ; /* sleep until a message or a signal arrives (as above) */ FD_SET(fd, &fset); select(fd + 1, &fset, NULL, NULL, NULL); } Logout(); if (oneshot) { break; } } if ((err = TwErrno)) fprintf(stderr, "%s: libtw error: %s%s\n", argv[0], TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); quit(); /*NOTREACHED*/ return 0; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/event.c��������������������������������������������������������������������������0000664�0000000�0000000�00000024663�13775351206�0015453�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * event.c -- print libtw events in human readable form * * Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <stdio.h> #include <Tw/Tw.h> #include <Tw/Twerrno.h> #include <Tw/Twkeys.h> static tmsgport Event_MsgPort; static tmenu Event_Menu; static twindow Event_Win, Event_SubWin; TW_DECL_MAGIC(event_magic); static byte InitEvent(void) { return TwCheckMagic(event_magic) && TwOpen(NULL) && (Event_MsgPort = TwCreateMsgPort(7, "twevent")) && (Event_Menu = TwCreateMenu(TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && TwItem4MenuCommon(Event_Menu) && (TwInfo4Menu(Event_Menu, TW_ROW_ACTIVE, 14, " Event Tester ", (TW_CONST tcolor *)"ptppppptpppppp"), ttrue) && (Event_Win = TwCreateWindow( 12, "Event Tester", NULL, Event_Menu, TCOL(twhite, tblack), TW_NOCURSOR, TW_WINDOW_WANT_KEYS | TW_WINDOW_WANT_MOUSE | TW_WINDOW_WANT_CHANGES | TW_WINDOW_DRAG | TW_WINDOW_RESIZE | TW_WINDOW_CLOSE, TW_WINDOWFL_USEEXPOSE, 18, 8, 0)) && (TwSetColorsWindow(Event_Win, 0x1FF, TCOL(thigh | tyellow, tcyan), TCOL(thigh | tgreen, thigh | tblue), TCOL(twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(twhite, tblack), TCOL(twhite, thigh | tblack), TCOL(thigh | tblack, tblack), TCOL(tblack, thigh | tblack)), TwConfigureWindow(Event_Win, 0xF << 2, 0, 0, 10, 5, 30, 15), TwMapWindow(Event_Win, TwFirstScreen()), ttrue) && (Event_SubWin = TwCreateWindow( 9, "SubWindow", NULL, Event_Menu, TCOL(twhite, tblue), TW_NOCURSOR, TW_WINDOW_WANT_KEYS | TW_WINDOW_WANT_MOUSE | TW_WINDOW_WANT_MOUSE_MOTION | TW_WINDOW_AUTO_FOCUS | TW_WINDOW_WANT_CHANGES, TW_WINDOWFL_BORDERLESS, 7, 3, 0)) && (TwSetXYWindow(Event_SubWin, 5, 2), TwMapWindow(Event_SubWin, Event_Win), ttrue) && TwFlush(); } void human_print(uldat len, TW_CONST char *s) { byte c; putchar('`'); while (len--) { c = *s++; if (c >= ' ' && c <= '~') putchar(c); else printf("\\x%02x", (int)(byte)c); } putchar('\''); } #define IS(name) \ case TW_##name: \ return #name TW_CONST char *twkeyname(udat Code) { static char buf[2]; switch (Code) { IS(Tab); IS(Linefeed); IS(Return); IS(Escape); IS(space); IS(BackSpace); IS(Home); IS(Left); IS(Up); IS(Right); IS(Down); IS(Prior); IS(Next); IS(End); IS(Insert); IS(Delete); IS(Pause); IS(Scroll_Lock); IS(Sys_Req); IS(Clear); IS(Select); IS(Print); IS(Execute); IS(Undo); IS(Redo); IS(Menu); IS(Find); IS(Cancel); IS(Help); IS(Break); IS(Caps_Lock); IS(Shift_Lock); IS(Num_Lock); IS(KP_Home); IS(KP_Left); IS(KP_Up); IS(KP_Right); IS(KP_Down); IS(KP_Prior); IS(KP_Next); IS(KP_End); IS(KP_Insert); IS(KP_Delete); IS(KP_Multiply); IS(KP_Add); IS(KP_Separator); IS(KP_Subtract); IS(KP_Decimal); IS(KP_Divide); IS(KP_Equal); IS(KP_F1); IS(KP_F2); IS(KP_F3); IS(KP_F4); IS(KP_Space); IS(KP_Tab); IS(KP_Enter); IS(KP_0); IS(KP_1); IS(KP_2); IS(KP_3); IS(KP_4); IS(KP_5); IS(KP_6); IS(KP_7); IS(KP_8); IS(KP_9); IS(F1); IS(F2); IS(F3); IS(F4); IS(F5); IS(F6); IS(F7); IS(F8); IS(F9); IS(F10); IS(F11); IS(F12); IS(F13); IS(F14); IS(F15); IS(F16); IS(F17); IS(F18); IS(F19); IS(F20); IS(Shift_L); IS(Shift_R); IS(Control_L); IS(Control_R); IS(Meta_L); IS(Meta_R); IS(Alt_L); IS(Alt_R); IS(Super_L); IS(Super_R); IS(Hyper_L); IS(Hyper_R); IS(EcuSign); IS(ColonSign); IS(CruzeiroSign); IS(FFrancSign); IS(LiraSign); IS(MillSign); IS(NairaSign); IS(PesetaSign); IS(RupeeSign); IS(WonSign); IS(NewSheqelSign); IS(DongSign); IS(EuroSign); IS(XTermMouse); IS(Null); default: if (Code > (udat)' ' && Code <= (udat)'~') { buf[0] = (byte)Code; buf[1] = '\0'; return buf; } break; } return "unknown"; } TW_CONST char *twcontrolname(udat Code) { switch (Code) { case TW_MSG_CONTROL_QUIT: return "quit"; case TW_MSG_CONTROL_RESTART: return "restart"; case TW_MSG_CONTROL_OPEN: return "open"; case TW_MSG_CONTROL_DRAGNDROP: return "drag-and-drop"; default: return "unknown"; } } int main(int argc, char *argv[]) { tmsg Msg; uldat err; udat Code; if (InitEvent()) while ((Msg = TwReadMsg(ttrue))) { if (Msg->Event.EventCommon.W != Event_Win) printf("SubWindow: "); if (Msg->Type == TW_MSG_WIDGET_KEY) { tevent_keyboard EventK = &Msg->Event.EventKeyboard; printf("Key: Code %.3u (0x%04x, %s),\tShiftFlags 0x%04x, ASCII ", (unsigned)EventK->Code, (unsigned)EventK->Code, twkeyname(EventK->Code), (unsigned)EventK->ShiftFlags); human_print(EventK->SeqLen, EventK->AsciiSeq); putchar('\n'); } else if (Msg->Type == TW_MSG_SELECTION) { uldat Owner = TwGetOwnerSelection(); printf("Selection Paste: Owner %d (0x%08x), requesting data notify...\n", (int)Owner, (int)Owner); TwRequestSelection(Owner, TW_NOID); } else if (Msg->Type == TW_MSG_SELECTIONNOTIFY) { tevent_selectionnotify EventN = &Msg->Event.EventSelectionNotify; printf("Selection Notify: Magic %u (0x%08x), Len %u, ASCII ", (unsigned)EventN->Magic, (unsigned)EventN->Magic, (unsigned)EventN->Len); human_print(EventN->Len, EventN->Data); putchar('\n'); } else if (Msg->Type == TW_MSG_WIDGET_MOUSE) { char *s1, *s2, *s3, *s4, *s5, *s6, *s7, *s8, *s9; tevent_mouse EventM = &Msg->Event.EventMouse; Code = EventM->Code; if (isMOVE(Code)) { if (Code & HOLD_ANY) s1 = "Drag"; else s1 = "Motion"; s2 = ""; } else if (isPRESS(Code)) { s1 = "Press"; switch (Code & PRESS_ANY) { case PRESS_LEFT: s2 = " Left"; break; case PRESS_MIDDLE: s2 = " Middle"; break; case PRESS_RIGHT: s2 = " Right"; break; #ifdef HOLD_WHEEL_REV case PRESS_WHEEL_REV: s2 = " Wheel Rev"; break; #endif #ifdef HOLD_WHEEL_FWD case PRESS_WHEEL_FWD: s2 = " Wheel Fwd"; break; #endif default: s2 = "Unknown Button "; break; } } else if (isRELEASE(Code)) { s1 = "Release"; switch (Code & RELEASE_ANY) { case RELEASE_LEFT: s2 = " Left"; break; case RELEASE_MIDDLE: s2 = " Middle"; break; case RELEASE_RIGHT: s2 = " Right"; break; #ifdef HOLD_WHEEL_REV case RELEASE_WHEEL_REV: s2 = " Wheel Rev"; break; #endif #ifdef HOLD_WHEEL_FWD case RELEASE_WHEEL_FWD: s2 = " Wheel Fwd"; break; #endif default: s2 = "Unknown Button "; break; } } else { s1 = "Unknown Event "; s2 = ""; } if (Code & HOLD_ANY) { s3 = "while"; s4 = Code & HOLD_LEFT ? " Left" : ""; s5 = Code & HOLD_MIDDLE ? " Middle" : ""; s6 = Code & HOLD_RIGHT ? " Right" : ""; #ifdef HOLD_WHEEL_REV s7 = Code & HOLD_WHEEL_REV ? " Wheel Rev" : ""; #endif #ifdef HOLD_WHEEL_FWD s8 = Code & HOLD_WHEEL_FWD ? " Wheel Fwd" : ""; #endif s9 = " held, "; } else s3 = s4 = s5 = s6 = s7 = s8 = s9 = ""; printf("Mouse: Code 0x%04x: %s%s, %s%s%s%s%s%s%sx=%d, y=%d\n", (int)Code, s1, s2, s3, s4, s5, s6, s7, s8, s9, EventM->X, EventM->Y); } else if (Msg->Type == TW_MSG_WIDGET_GADGET) { tevent_gadget EventG = &Msg->Event.EventGadget; printf("Gadget: Code %d (0x%04x)\n", (unsigned)EventG->Code, (unsigned)EventG->Code); if (EventG->Code == 0 && EventG->W == Event_Win) { break; } } else if (Msg->Type == TW_MSG_WIDGET_CHANGE) { tevent_widget EventW = &Msg->Event.EventWidget; if (EventW->Code == TW_MSG_WIDGET_RESIZE) printf("Widget Change: new size x=%d y=%d\n", EventW->XWidth, EventW->YWidth); else if (EventW->Code == TW_MSG_WIDGET_EXPOSE) { printf("Widget Change: expose x=%d, y=%d, width=%d, height=%d%s\n", EventW->X, EventW->Y, EventW->XWidth, EventW->YWidth, EventW->Flags & TW_MSG_WIDGETFL_SHADED ? ", shaded" : ""); TwDrawTextWindow(EventW->W, EventW->XWidth, EventW->YWidth, EventW->X, EventW->Y, 0, NULL); } } else if (Msg->Type == TW_MSG_USER_CONTROL) { tevent_control EventC = &Msg->Event.EventControl; printf("User Control Message: Code %d (%s), x=%d y=%d, ASCII ", EventC->Code, twcontrolname(EventC->Code), EventC->X, EventC->Y); human_print(EventC->Len, EventC->Data); putchar('\n'); } else if (Msg->Type == TW_MSG_USER_CLIENTMSG) { tevent_clientmsg EventC = &Msg->Event.EventClientMsg; printf("User Client Message: Code %d, ASCII ", EventC->Code); human_print(EventC->Len, (TW_CONST char *)EventC->Data.b); putchar('\n'); } } if ((err = TwErrno)) printf("%s: libtw error: %s%s\n", argv[0], TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); TwClose(); return 0; } �����������������������������������������������������������������������������twin-0.9.0/clients/findtwin.c�����������������������������������������������������������������������0000664�0000000�0000000�00000004260�13775351206�0016143�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * findtwin.c -- find a running twin server * * This program is placed in the public domain. * */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <Tw/autoconf.h> #ifdef TW_HAVE_DIRENT_H #include <dirent.h> #else #ifdef TW_HAVE_SYS_NDIR_H #include <sys/ndir.h> #endif #ifdef TW_HAVE_SYS_DIR_H #include <sys/dir.h> #endif #ifdef TW_HAVE_NDIR_H #include <ndir.h> #endif #endif #include <Tw/Tw.h> #include <Tw/Twerrno.h> TW_DECL_MAGIC(findtwin_magic); static void try_TwOpen(TW_CONST char *dpy) { if (dpy || (dpy = getenv("TWDISPLAY"))) { if (TwOpen(dpy)) { printf("%s\n", dpy); exit(0); } } } #define ishex(c) (((c) >= '0' && (c) <= '9') || ((c) >= 'a' && (c) <= 'f')) static int match_twsocket(TW_CONST struct dirent *d) { TW_CONST char *s = d->d_name; return !strncmp(s, ".Twin:", 6) && ishex(s[6]) && (!s[7] || (ishex(s[7]) && (!s[8] || (ishex(s[8]) && !s[9])))); } #if defined(TW_HAVE_SCANDIR) && (defined(TW_HAVE_VERSIONSORT) || defined(TW_HAVE_ALPHASORT)) static TW_CONST char *tmpdir(void) { TW_CONST char *tmp = getenv("TMPDIR"); if (tmp == NULL) tmp = "/tmp"; return tmp; } static void search_unix_socket(void) { #ifdef TW_HAVE_VERSIONSORT #define my_sort versionsort #else #define my_sort alphasort #endif int my_sort(); // its two arguments may be either (void *) or (TW_CONST struct dirent **) struct dirent **namelist; char *s; int n = scandir(tmpdir(), &namelist, match_twsocket, my_sort); while (n > 0) { s = namelist[0]->d_name; try_TwOpen(s + 5); namelist++; n--; } } #endif int main(int argc, char *argv[]) { /* first: if given, check _ONLY_ command-line specified servers */ if (*++argv) { do { try_TwOpen(*argv); } while (*++argv); /* bomb out */ return 1; } if (!TwCheckMagic(findtwin_magic)) { fprintf(stderr, "twfindtwin: %s%s\n", TwStrError(TwErrno), TwStrErrorDetail(TwErrno, TwErrnoDetail)); return 1; } /* then, check for environment TWDISPLAY */ try_TwOpen(NULL); #if defined(TW_HAVE_SCANDIR) && defined(TW_HAVE_ALPHASORT) /* last resort: exhaustive search in /tmp */ search_unix_socket(); #endif return 1; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/lsmsgport.c����������������������������������������������������������������������0000664�0000000�0000000�00000004332�13775351206�0016353�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* contributed by Cristalle Azundris Sabon * * This program 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 2 of the License, or * (at your option) any later version. * */ /* list msgports. */ #include <Tw/Tw.h> #include <Tw/Twerrno.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> int errmsg(tdisplay td) { int err; if ((err = Tw_Errno(td))) { fprintf(stderr, "twlsmsgport: libtw error: %s%s\n", Tw_StrError(td, err), Tw_StrErrorDetail(td, err, Tw_ErrnoDetail(td))); } return !!err; } int main(int argc, char *argv[]) { tslist reply, reply2; uldat id; tdisplay td; int err; if (!(td = Tw_Open(NULL)) || !(id = Tw_GetAll(td))) return errmsg(td); /* * race! we cannot use Tw_StatL() here, since the Tw_* calls below * will overwrite the returned buffer. So we use Tw_CloneStatL(), * which copies the buffer in a private malloc:ed() area. */ reply = Tw_CloneStatL(td, id, 1, TWS_all_ChildrenMsgPort_List); if (reply && reply->N >= 1) { tsfield f = reply->TSF; if (f->label == TWS_all_ChildrenMsgPort_List && f->type == (TWS_vec | TWS_obj)) { uldat n = f->TWS_field_vecL / sizeof(tobj); TW_CONST tobj *data = (TW_CONST tobj *)f->TWS_field_vecV; int fl; /* data is guaranteed to be correctly aligned */ printf("twlsmgport: existing twin tmsgports:\n"); while (n--) { fl = tfalse; printf("0x%x:\t", (unsigned)*data); reply2 = Tw_StatL(td, (*data), 1, TWS_msgport_Name); if (reply2 && reply2->N >= 1) { f = reply2->TSF; if (f && f->type == (TWS_vec | TWS_byte) && f->label == TWS_msgport_Name) { TW_CONST byte *Name = (TW_CONST byte *)f->TWS_field_vecV; uldat NameLen = f->TWS_field_vecL; fl = ttrue; printf("%.*s\n", (int)NameLen, Name); } } if (reply2) Tw_DeleteStat(td, reply2); if (!fl) putchar('\n'); data++; } fflush(stdout); } } if (td && reply) Tw_DeleteStat(td, reply); err = errmsg(td); Tw_Close(td); return err; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/lsobj.c��������������������������������������������������������������������������0000664�0000000�0000000�00000013756�13775351206�0015444�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * lsobj.c -- print characteristic of an existing twin object * * This program is placed in the public domain. * */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <Tw/Tw.h> #include <Tw/Twerrno.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include "version.h" char *argv0; enum { #define EL(field) TWS_CAT(lsobj_, field), TWS_field_list_EL(EL) #undef EL lsobj_max_list0, dummy = lsobj_max_list0 - 1, #define EL(field) TWS_CAT(lsobj_, field), TWS_field_list_List_EL(EL) #undef EL lsobj_max_list1 }; udat field_list[] = { #define EL(field) TWS_CAT(TWS_, field), TWS_field_list_EL(EL) TWS_field_list_List_EL(EL) #undef EL }; /* these are hardcoded in libtw ABI, so we can hardcode them here too. */ char *type_list[TWS_highest + 2] = {"void", "char", "dat", "ldat", "tcolor", "time_t", "frac_t", "trune", "tcell", "tobj", "unknown"}; char *name_list[] = { #define EL(field) TWS_STR(field), TWS_field_list_EL(EL) TWS_field_list_List_EL(EL) #undef EL }; void Usage(void) { fprintf(stderr, "Usage: %s [option] [object_id]\n" "If no arguments are given, the first screen is used as default object_id\n" "Currently known options:\n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" " -r, --recursive also show lists of parents, children, ...\n" " -v, --verbose always show all data, even huge arrays\n", argv0); } void ShowVersion(void) { fputs("twlsobj " TWIN_VERSION_STR "\n", stdout); } static void human_print(TW_CONST char *data, uldat len, byte may_trim) { putchar(' '); putchar('"'); if (may_trim && len > 100) len = 100; else may_trim = tfalse; while (len--) { switch (*data) { case '\0': putchar('\\'); putchar('0'); break; case '\"': case '\'': case '\\': putchar('\\'); putchar(*data); break; default: if (*data < ' ') printf("\\x%02x", (int)*data); else putchar(*data); break; } data++; } printf("\"%s\n", may_trim ? "..." : ""); } static void human_print_tobjs(TW_CONST char *data, uldat len, byte may_trim) { putchar(' '); putchar('{'); if (may_trim && len > 100) len = 100; else may_trim = tfalse; while (len >= sizeof(tobj)) { len -= sizeof(tobj); printf("0x%lx%s", (long)*(TW_CONST tobj *)data, len >= sizeof(tobj) ? ", " : ""); data += sizeof(tobj); } printf("}%s\n", may_trim ? "..." : ""); } TW_DECL_MAGIC(lsobj_magic); int main(int argc, char *argv[]) { uldat err = 1, id, index_list, len; tslist TSL; tsfield TSF; uldat n, v_id; udat type_id, max_list; byte verbose = tfalse, recursive = tfalse, isvec; TwMergeHyphensArgv(argc, argv); argv0 = argv[0]; argc--; argv++; while (argc--) { if (!strcmp(*argv, "-h") || !strcmp(*argv, "-help")) { Usage(); return 0; } else if (!strcmp(*argv, "-V") || !strcmp(*argv, "-version")) { ShowVersion(); return 0; } else if (!strcmp(*argv, "-r") || !strcmp(*argv, "-recursive")) { recursive = ttrue; } else if (!strcmp(*argv, "-v") || !strcmp(*argv, "-verbose")) { verbose = ttrue; } else if ((id = strtoul(*argv, NULL, 0)) != TW_NOID) { err = 0; } argv++; } max_list = recursive ? lsobj_max_list1 : lsobj_max_list0; if (TwCheckMagic(lsobj_magic) && TwOpen(NULL)) do { if (err == 1) { id = TwGetAll(); if (TwErrno == TW_ESERVER_NO_FUNCTION) { TwErrno = 0; id = TwFirstScreen(); } } TSL = TwStatA(id, max_list, field_list); if (TSL) { for (id = 0, TSF = TSL->TSF; id < TSL->N; id++, TSF++) { for (index_list = 0; index_list < max_list; index_list++) { if (field_list[index_list] == TSF->label) break; } if (index_list < max_list) { printf("%s", name_list[index_list]); len = strlen(name_list[index_list]); } else { len = 13; printf("unknown_field"); } while (len < 32) len++, putchar(' '); isvec = TSF->type >= TWS_vec && (TSF->type & ~TWS_vec) <= TWS_last; if (isvec) type_id = TSF->type & ~TWS_vec; else type_id = TSF->type; if (type_id == TWS_tobj) type_id = TWS_highest; else if (type_id > TWS_tobj) /* unknown */ type_id = TWS_highest + 1; if (isvec) { len += 4 + strlen(type_list[type_id]); v_id = TSF->type & ~TWS_vec; if (v_id == TWS_tobj) v_id = TWS_uldat; if (v_id < TWS_highest) { n = v_id = TSF->TWS_field_vecL / lsobj_magic[v_id]; do len++; while (v_id /= 10); printf("= (%s[%d])", type_list[type_id], (int)n); } else printf("= (%s[])", type_list[type_id]); } else { len += 2 + strlen(type_list[type_id]); printf("= (%s)", type_list[type_id]); } while (len < 44) len++, putchar(' '); if (isvec) { if (TSF->TWS_field_vecL && TSF->TWS_field_vecV) { if (type_id == TWS_highest) human_print_tobjs(TSF->TWS_field_vecV, TSF->TWS_field_vecL, !verbose); else human_print(TSF->TWS_field_vecV, TSF->TWS_field_vecL, !verbose); } else printf(" (NULL)\n"); } else { err = TSF->TWS_field_scalar; printf("% -11ld # 0x%lx\n", (long)err, (long)err); } } TwDeleteStat(TSL); } } while (0); if ((err = TwErrno)) { fprintf(stderr, "%s: libtw error: %s%s\n", argv0, TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); return 1; } return 0; } ������������������twin-0.9.0/clients/mapscrn/�������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015616�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/CHANGES������������������������������������������������������������������0000664�0000000�0000000�00000017745�13775351206�0016627�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Changes from the prerelease to version 0.8: o Enhanced the shorthand notation `keycode xx = a', where `a' is an ASCII letter and changed `dumpkeys' and `loadkeys' accordingly. Now this entry defines useful values in shift+control, meta+shift, meta+control and meta+control+shift keytables, too. AltGr entries also default now to the value of non-AltGr entries. o Added the possibility to split long lines into multiple shorter ones by appending a backslash at the end of each partial line. o Added a version number and a short usage message to `dumpkeys' o Added the options --short-info, --long-info (replaces the symbol dump, -s), --numeric, --full-table, --funcs-only, --keys-only to `dumpkeys'. See manpage for more info. o Added a version number, a short usage message and the ability to load multiple map files at a time to `loadkeys'. o Added the utility `mktable' to generate the kernel default binding table automatically from the currently loaded keytable. o Added the utility `showkey' for interactively inspecting the scancodes and keycode values sent by key presses and releases. o Fixed the value of Uncaps_Shift, eliminated obsolete Map_xx symbols o Added Meta_Control_xxx symbols. o Added symbols for locking modifiers (kernel 0.99pl12 doesn't support this) Changes from version 0.8 to version 0.81: o Updated and fixed the keytable files o Minor additions to the loadkeys man page o Added support for ISO 8859-{2,3,4} character symbols, updated dumpkeys man page accordingly Changes from version 0.81 to version 0.82 (aeb@cwi.nl): o Made mktable an option of loadkeys, so that the file defkeymap.c produced is independent of the current kernel, and independent of the current keyboard settings. (The old mktable program is now obsolete.) o After dumpkeys > x; loadkeys x; dumpkeys > y the files x and y should be identical. They were not. I hope they are now. o Showkey now restores the original keyboard mode. o Loadkeys now accepts quotes and backslashes in strings. o Added compose key support. Changes for 0.83 (aeb): o Added KT_LETTER, so that CapsLock can work correctly. For the time being, this is denoted by a leading + in the keymap. o Added setfont, showfont, mapscrn. o Added setleds, setmetamode. o Put data by default in three subdirectories of /usr/lib/kbd. Changes for 0.84 (aeb): o Added more compose key support to loadkeys. o Setfont, loadkeys and mapscrn look by default in /usr/lib/kbd/*. o Setfont can read codepage font files (and select a font from them). o Many minor changes. Changes for 0.85-0.86 (aeb): o Minor things only. Added contributed keymaps and fonts. Changes for 0.87 (aeb): o Added iso-8859-8 support. Added "charset" directive. o Corrected a typo in "trivial". o Added kbd_mode. o Extended kbd.FAQ. Added contributed keymaps and fonts. Changes for 0.88 (aeb): o Added dynamic keymap support. Added "keymaps" directive. o Added dynamic console allocation. Added disalloc. o Added resize. o Changed LED handling. o Added the contributed codepage.c (to extract codepages from a DOS .cpi file). o Many minor changes. Changes for 0.89 (aeb): o Some minor things. Changes for 0.90 (aeb): o Changed setfont to subsume mapscrn and escape sequence. o Added hpa's psftable stuff. o Added Unicode stuff (requires kernel 1.1.92 or later). Changes for 0.91 (aeb): o Added hpa's setfont patch. Changes for 0.94 (aeb): o Added keyword alt_is_meta. Changes for 0.96 (aeb): o Added keywords like strings_as_usual. Added keymap include files. o Reorganized keymap directory. o Added loading of compressed fonts. o Added iso-8859-9 handling. o Added -a option to showkey. Changes for 0.98 (aeb): o Added internationalization and Dutch texts (nl.po) Changes for 1.00 (aeb): o Introduced psf2 fonts, allowing one to describe a font position with a Unicode sequence (base character with combining accents). o Reorganized fonts; added Unicode table to most of them. The consolefonts directory got a subdirectory partialfonts. The Unicode maps got a directory of their own. o Moved kbdrate from util-linux to here. o Added -s (sort) option to getunimap.c. o Setfont now accepts several psf2 fonts, each of arbitrary length. Setfont now accepts certain codepage fonts. Setfont now accepts a text file containing a list of fonts to load. o Made distinction between koi8-r and koi8-u. o spawn_console and spawn_login invoke openvt, not open. Changes for 1.03 (aeb): o Added doc/scancodes/* with information on the scancodes produced by PC keyboards. o Added by.map. o Added Unicode maps to Greek fonts. Changes for 1.04 (aeb, Olaf Hering, Kurt Garloff): o Programs: - setfont etc: support for font widths other than 8 - loadkeys.y: also look at mac/include - cp1250.syms.h: new - setlogcons: new - contrib/showfont: new - contrib/psfsplit: new - cad: don't create a temp file o Documentation: - Minor changes to kbd FAQ. Extended scancode FAQ. New A20 docs. - Minor changes to man pages. o Keymaps: - New keymap include dir mac/include. - Added euro1.map and euro2.map. - Added some compose definitions to compose.latin and compose.latin1. - Deleted be-latin1.map and renamed be2-latin1.map to be-latin1.map. There seems to be consensus that it is better than the original be-latin1.map. - Renamed hebrew.map to il-phonetic.map and added il.map. - Applied fix from Jochen Hein to de.map. - Applied SuSE fixes to mac-de-latin1-nodeadkeys.map, us.map, de*.map. - Added mac-be.map, mac-de-latin1.map, mac-de_CH.map, mac-dk-latin1.map, mac-es.map, mac-fi-latin1.map, mac-fr.map, mac-fr_CH-latin1.map, mac-it.map, mac-pt-latin1.map, mac-se.map, mac-uk.map, mac-us.map, br-latin1-abnt2.map, br-latin1-us.map, cz.map, de_CH-latin1.map, mk.map (renamed the old one to mk0.map), mk-cp1251.map, mk-utf.map, ro_win.map and cz-cp1250.map. o Unimaps: - Added cp1250.uni. o Console translations: - Added iso02_to_cp1250.trans. o Fonts: - Added cybercafe.fnt, sun12x22.psfu, cp1250.psfu, cp857.08, cp857.14, cp857.16. Changes for 1.05 (aeb) o Programs: - kdmapop.c, kdmapop.h, utf8.c, utf8.h: new - loadunimap.c: also allow a range mapped to a single Unicode symbol - mapscrn.c: also allow a character given as utf8 string - mapscrn.c: handle PIO_SCRNMAP and PIO_UNISCRNMAP with same -m/-om options - showfont.c: also show fonts larger than 256 glyphs - unicode_start: updated; added text from Bruno Haible o Documentation: - font-formats, unicode_start.1, unicode_stop.1: new - loadunimap.8, mapscrn.8, setfont.8: updated o Fonts: - Added drdos8xN.psfu o Unimaps: - Added cybercafe.uni o Console translations: - Added 8859-N_to_uni.trans, cpNNNN_to_uni.trans o Data: - Corrected corrupted 737.cp, lat5-N.psfu, baltic.trans Changes for 1.06 (aeb) o Programs: - Some Makefile changes (Peter Breitenlohner) - Added fgconsole to the installed programs - resizecons.c: removed .psf extension from default fonts (bero) - psffontop.c: correction to handling of unicode sequences (Kurt Garloff) - loadkeys: work better in the presence of symlinks o Documentation: - Removed scancode docs (these will be distributed separately, had grown to over 1 MB; see also http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html) o Fonts: - Added iso02-12x22.psfu (Jacek Lipkowski) - Renamed sun-12x22.psfu to iso01-12x22.psfu since Kurt Garloff explained that it was not the kernel font but a modified version. Added the original sun-12x22.psfu. - Renamed lat7-16.psfu to iso07u-16.psfu. (lat7 is iso13, not iso07) - Added lat7a-14.psfu (earlier: lt-brim*) and lat7a-16.psf (bad fonts) - Added lat7-14.psfu (ugly, but with the right characters) o Unimaps: - Renamed lat7u.uni to iso07u.uni since it is not a Latin-7 map. - Added lat7.uni o Keymaps (mostly Kurt Garloff, SuSE): - Corrected br-latin1-abnt2.map (Frdric Meunier), mac-de_CH.map, sunt5-uk.map - Added missing Latin-1 symbols to fi-latin1.map (Marko Myllynen) - Added sundvorak.map, sunt4-no-latin1.map, sunt5-cz-us.map, sunt5-us-cz.map, mac-dvorak.map, mac-qwertz-layout.inc ���������������������������twin-0.9.0/clients/mapscrn/Makefile.am��������������������������������������������������������������0000664�0000000�0000000�00000000000�13775351206�0017640�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/Makefile.in��������������������������������������������������������������0000664�0000000�0000000�00000032767�13775351206�0017702�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = clients/mapscrn ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign clients/mapscrn/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign clients/mapscrn/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���������twin-0.9.0/clients/mapscrn/README�������������������������������������������������������������������0000664�0000000�0000000�00000002162�13775351206�0016477�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This is kbd-1.06.tar.gz This package contains keytable files and keyboard utilities compatible with kernel version 1.1.54 and later. Setfont requires 1.1.92 or later. Major changes in keyboard and console handling occurred in 1.3.1. The current version of kbd might not work anymore on kernels older than that. This distribution contains no binaries - the sources depend on the kernel version - compile them yourself. To install this package, unpack it somewhere and issue the commands "./configure", "make" and "make install". This copies the utilities to /usr/bin, man pages to /usr/man/man{1,4,5,8} and data files to the subdirectories keymaps, unimaps, consolefonts, consoletrans and videomodes of the datadirectory chosen during configure, probably /usr/lib/kbd. Older versions of kbd used /usr/lib/kbd/keytables (instead of .../keymaps). This directory can now be removed. (Just to be sure, preserve a copy of your favourite keymap, for example in /usr/lib/kbd/keymaps/mykeymap. Note that it may be used from a script in /etc/rc.d/rc.local or so.) Report problems with this package to Andries Brouwer <aeb@cwi.nl>. May 2001 ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/findfile.c���������������������������������������������������������������0000664�0000000�0000000�00000012147�13775351206�0017547�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <dirent.h> #include "xmalloc.h" #include "findfile.h" #include "nls.h" char pathname[1024]; static int ispipe; void fpclose(FILE *fp) { if (ispipe) pclose(fp); else fclose(fp); } #define SIZE(a) (sizeof(a) / sizeof(a[0])) static struct decompressor { char *ext; /* starts with `.', has no other dots */ char *cmd; } decompressors[] = {{".gz", "gzip -d -c"}, {".bz2", "bzip2 -d -c"}, {0, 0}}; static FILE *pipe_open(struct decompressor *dc) { char *pipe_cmd; FILE *fp; ispipe = 1; pipe_cmd = xmalloc(strlen(dc->cmd) + strlen(pathname) + 2); sprintf(pipe_cmd, "%s %s", dc->cmd, pathname); fp = popen(pipe_cmd, "r"); if (fp == NULL) fprintf(stderr, _("error executing %s\n"), pipe_cmd); return fp; } /* If a file PATHNAME exists, then open it. If is has a `compressed' extension, then open a pipe reading it */ static FILE *maybe_pipe_open(void) { FILE *fp; char *t; struct decompressor *dc; if ((fp = fopen(pathname, "r")) != NULL) { t = rindex(pathname, '.'); if (t) { for (dc = &decompressors[0]; dc->cmd; dc++) if (strcmp(t, dc->ext) == 0) { fclose(fp); return pipe_open(dc); } } } return fp; } static FILE *findfile_in_dir(char *fnam, char *dir, int recdepth, char **suf) { FILE *fp = NULL; DIR *d; struct dirent *de; char *ff, *fdir, *p, *q, **sp; struct decompressor *dc; ispipe = 0; ff = index(fnam, '/'); if (ff) { fdir = xstrdup(fnam); fdir[ff - fnam] = 0; /* caller guarantees fdir != "" */ } else fdir = 0; /* just to please gcc */ d = opendir(dir); if (d == NULL) return NULL; while ((de = readdir(d)) != NULL) { int okdir; if (strcmp(de->d_name, ".") == 0 || strcmp(de->d_name, "..") == 0) continue; if (strlen(dir) + strlen(de->d_name) + 2 > sizeof(pathname)) continue; okdir = (ff && strcmp(de->d_name, fdir) == 0); if (recdepth || okdir) { struct stat statbuf; char *a; a = xmalloc(strlen(dir) + strlen(de->d_name) + 2); sprintf(a, "%s/%s", dir, de->d_name); if (stat(a, &statbuf) == 0 && S_ISDIR(statbuf.st_mode)) { if (okdir) fp = findfile_in_dir(ff + 1, a, 0, suf); if (!fp && recdepth) fp = findfile_in_dir(fnam, a, recdepth - 1, suf); if (fp) return fp; } free(a); } /* Should we be in a subdirectory? */ if (ff) continue; /* Does d_name start right? */ p = &de->d_name[0]; q = fnam; while (*p && *p == *q) p++, q++; if (*q) continue; sprintf(pathname, "%s/%s", dir, de->d_name); /* Does tail consist of a known suffix and possibly a compression suffix? */ for (sp = suf; *sp; sp++) { int l; if (!strcmp(p, *sp)) return maybe_pipe_open(); l = strlen(*sp); if (strncmp(p, *sp, l) == 0) { for (dc = &decompressors[0]; dc->cmd; dc++) if (strcmp(p + l, dc->ext) == 0) return pipe_open(dc); } } } return NULL; } /* find input file; leave name in pathname[] */ FILE *findfile(char *fnam, char **dirpath, char **suffixes) { char **dp, *dir, **sp; FILE *fp; int dl, recdepth; struct decompressor *dc; if (strlen(fnam) >= sizeof(pathname)) return NULL; /* Try explicitly given name first */ strcpy(pathname, fnam); fp = maybe_pipe_open(); if (fp) return fp; /* Test for full pathname - opening it failed, so need suffix */ /* (This is just nonsense, for backwards compatibility.) */ if (*fnam == '/') { for (sp = suffixes; *sp; sp++) { if (strlen(fnam) + strlen(*sp) + 1 > sizeof(pathname)) continue; if (*sp == 0) continue; /* we tried it already */ sprintf(pathname, "%s%s", fnam, *sp); if ((fp = fopen(pathname, "r")) != NULL) return fp; } for (sp = suffixes; *sp; sp++) { for (dc = &decompressors[0]; dc->cmd; dc++) { if (strlen(fnam) + strlen(*sp) + strlen(dc->ext) + 1 > sizeof(pathname)) continue; sprintf(pathname, "%s%s%s", fnam, *sp, dc->ext); if ((fp = fopen(pathname, "r")) != NULL) { fclose(fp); return pipe_open(dc); } } } return NULL; } /* Search a list of directories and directory hierarchies */ for (dp = dirpath; *dp; dp++) { /* delete trailing slashes; trailing stars denote recursion */ dir = xstrdup(*dp); dl = strlen(dir); recdepth = 0; while (dl && dir[dl - 1] == '*') { dir[--dl] = 0; recdepth++; } if (dl == 0) { dir = "."; } else if (dl > 1 && dir[dl - 1] == '/') { dir[dl - 1] = 0; } fp = findfile_in_dir(fnam, dir, recdepth, suffixes); if (fp) return fp; } return NULL; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/findfile.h���������������������������������������������������������������0000664�0000000�0000000�00000000560�13775351206�0017550�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ extern void fpclose(FILE *fp); extern FILE *findfile(char *fnam, char **dirpath, char **suffixes); ������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/getfd.c������������������������������������������������������������������0000664�0000000�0000000�00000002656�13775351206�0017064�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <linux/kd.h> #include <sys/ioctl.h> #include "nls.h" #include "getfd.h" /* * getfd.c * * Get an fd for use with kbd/console ioctls. * We try several things because opening /dev/console will fail * if someone else used X (which does a chown on /dev/console). */ static int is_a_console(int fd) { char arg; arg = 0; return (ioctl(fd, KDGKBTYPE, &arg) == 0 && ((arg == KB_101) || (arg == KB_84))); } static int open_a_console(char *fnam) { int fd; fd = open(fnam, O_RDONLY); if (fd < 0 && errno == EACCES) fd = open(fnam, O_WRONLY); if (fd < 0) return -1; if (!is_a_console(fd)) { close(fd); return -1; } return fd; } int getfd() { int fd; fd = open_a_console("/dev/tty"); if (fd >= 0) return fd; fd = open_a_console("/dev/tty0"); if (fd >= 0) return fd; fd = open_a_console("/dev/console"); if (fd >= 0) return fd; for (fd = 0; fd < 3; fd++) if (is_a_console(fd)) return fd; fprintf(stderr, _("Couldnt get a file descriptor referring to the console\n")); exit(1); /* total failure */ } ����������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/getfd.h������������������������������������������������������������������0000664�0000000�0000000�00000000445�13775351206�0017063�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ extern int getfd(void); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/kdmapop.c����������������������������������������������������������������0000664�0000000�0000000�00000013722�13775351206�0017422�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * kdmapop.c - export getscrnmap(), loadscrnmap(), * loaduniscrnmap(), loadunimap() * * Hide the ioctl use in this file. */ #include <Tw/Tw.h> #include <stdio.h> #include <errno.h> #include <stdlib.h> #ifdef TW_HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif #ifdef __linux__ #include <sys/kd.h> #elif !defined(E_TABSZ) #define E_TABSZ 256 #endif #include "kdmapop.h" #include "nls.h" #include "m_version.h" /* * Linux pre-0.96 defined GIO_SCRNMAP, PIO_SCRNMAP: typedef char scrnmap_t; #define E_TABSZ 256 #define GIO_SCRNMAP 0x4B40 #define PIO_SCRNMAP 0x4B41 * and Linux 0.99.14y first implemented them. * Usage: scrnmap_t map[E_TABSZ]; ioctl(fd,GIO_SCRNMAP,map); ioctl(fd,PIO_SCRNMAP,map); * to read or write the kernel translation table that is * applied to user application output before displaying. * * Before 1.3.1, the character set was completely undetermined, * and if the font was in an order different from the character * set in use, the user screen map was used to map application * codes to font indices. (To be more precise: there were four * translation tables, and this ioctl would get/set the fourth * table, while the other three tables are built-in and constant.) */ int getscrnmap(int fd, char *map) { if (ioctl(fd, GIO_SCRNMAP, map)) { perror("GIO_SCRNMAP"); return -1; } return 0; } int loadscrnmap(int fd, char *map) { TwSetFontTranslation(map + 0x80); TwSync(); return 0; } /* * Linux 1.3.1 introduces GIO_UNISCRNMAP, PIO_UNISCRNMAP: #define GIO_UNISCRNMAP 0x4B69 #define PIO_UNISCRNMAP 0x4B6A * Usage: unsigned short umap[E_TABSZ]; ioctl(fd,GIO_UNISCRNMAP,umap); ioctl(fd,PIO_UNISCRNMAP,umap); * to read or write the kernel translation table that is * applied to user application output before displaying. * (When the console is not in utf8 mode.) * * The idea is that the umap values are 16-bit unicode (ucs2) * values, and that the fonts will have an index giving the * unicode value for each glyph, so that the kernel can match up * application codes to font positions. #define UNI_DIRECT_BASE 0xF000 #define UNI_DIRECT_MASK 0x01FF * For compatibility, and for fonts without table, the unicode * values 0xF000+n, 0 <= n <= 0x01FF, acts as direct font indices. * In the new scheme, the old PIO_SCRNMAP fills the kernel umap * table with such direct-to-font values. */ int getuniscrnmap(int fd, unsigned short *map) { if (ioctl(fd, GIO_UNISCRNMAP, map)) { perror("GIO_UNISCRNMAP"); return -1; } return 0; } int loaduniscrnmap(int fd, unsigned short *map) { if (sizeof(trune) == sizeof(unsigned short)) { TwSetTRuneTranslation((trune *)map + 0x80); } else { trune buf[E_TABSZ - 0x80]; int i; for (i = 0; i < 0x80; i++) buf[i] = map[i | 0x80]; TwSetTRuneTranslation(buf); } TwSync(); return 0; } /* * Linux 1.1.63 introduces GIO_UNIMAP, PIO_UNIMAP, PIO_UNIMAPCLR: #define GIO_UNIMAP 0x4B66 #define PIO_UNIMAP 0x4B67 #define PIO_UNIMAPCLR 0x4B68 * And Linux 1.1.92 implements them. * Usage: struct unimapinit { unsigned short advised_hashsize; unsigned short advised_hashstep; unsigned short advised_hashlevel; } ui; ioctl(fd, PIO_UNIMAPCLR, &ui); * to clear the unimap table and advise about the kind of * hash setup appropriate to what one is going to load * (with 0 for "don't care"). struct unipair { unsigned short unicode; unsigned short fontpos; }; struct unimapdesc { unsigned short entry_ct; struct unipair *entries; } ud; ioctl(fd, PIO_UNIMAP, &ud); ioctl(fd, GIO_UNIMAP, &ud); * to add the indicated pairs to the kernel unimap table * or to read the kernel unimap table, where in the latter case * ud.entry_ct indicated the room available. * * In Linux 1.3.28 the hash table was replaced by a 3-level * paged table, so the contents of a struct unimapinit are * no longer meaningful. */ int getunimap(int fd, struct unimapdesc *ud0) { struct unimapdesc ud; int ct; ud.entry_ct = 0; ud.entries = 0; if (ioctl(fd, GIO_UNIMAP, &ud)) { if (errno != ENOMEM || ud.entry_ct == 0) { perror("GIO_UNIMAP(0)"); return -1; } ct = ud.entry_ct; ud.entries = (struct unipair *)malloc(ct * sizeof(struct unipair)); if (ud.entries == NULL) { fprintf(stderr, _("%s: out of memory\n"), progname); return -1; } if (ioctl(fd, GIO_UNIMAP, &ud)) { perror("GIO_UNIMAP"); return -1; } if (ct != ud.entry_ct) fprintf(stderr, _("strange... ct changed from %d to %d\n"), ct, ud.entry_ct); /* someone could change the unimap between our first and second ioctl, so the above errors are not impossible */ } *ud0 = ud; return 0; } int loadunimap(int fd, struct unimapinit *ui, struct unimapdesc *ud) { struct unimapinit advice; if (ui) advice = *ui; else { advice.advised_hashsize = 0; advice.advised_hashstep = 0; advice.advised_hashlevel = 0; } again: if (ioctl(fd, PIO_UNIMAPCLR, &advice)) { #ifdef ENOIOCTLCMD if (errno == ENOIOCTLCMD) { fprintf(stderr, _("It seems this kernel is older than 1.1.92\n" "No Unicode mapping table loaded.\n")); } else #endif perror("PIO_UNIMAPCLR"); return -1; } if (ud == NULL) return 0; if (ioctl(fd, PIO_UNIMAP, ud)) { if (errno == ENOMEM && advice.advised_hashlevel < 100) { advice.advised_hashlevel++; goto again; } perror("PIO_UNIMAP"); return -1; } return 0; } ����������������������������������������������twin-0.9.0/clients/mapscrn/kdmapop.h����������������������������������������������������������������0000664�0000000�0000000�00000001123�13775351206�0017417�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ extern int getscrnmap(int fd, char *map); extern int loadscrnmap(int fd, char *map); extern int getuniscrnmap(int fd, unsigned short *map); extern int loaduniscrnmap(int fd, unsigned short *map); extern int getunimap(int fd, struct unimapdesc *ud); extern int loadunimap(int fd, struct unimapinit *ui, struct unimapdesc *ud); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/m_version.h��������������������������������������������������������������0000664�0000000�0000000�00000001060�13775351206�0017765�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <string.h> #define VERSION "1.06" char *progname; TW_INLINE void set_progname(char *name) { char *p; p = rindex(name, '/'); progname = (p ? p + 1 : name); } TW_INLINE void print_version_and_exit(void) { printf(_("%s from %s\n"), progname, "kbd-" VERSION); exit(0); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/mapscrn.c����������������������������������������������������������������0000664�0000000�0000000�00000015604�13775351206�0017433�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * mapscrn.c */ #include <Tw/Tw.h> #include <Tw/Twerrno.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #ifdef TW_HAVE_MEMORY_H #include <memory.h> #endif #ifdef TW_HAVE_FCNTL_H #include <fcntl.h> #endif #ifdef TW_HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif #ifdef __linux__ #include <sys/kd.h> #elif !defined(E_TABSZ) #define E_TABSZ 256 #endif #include "paths.h" #include "findfile.h" #include "kdmapop.h" #include "utf8.h" #include "nls.h" /* the two exported functions */ void saveoldmap(int fd, char *omfil); void loadnewmap(int fd, char *mfil); static int ctoi(unsigned char *); /* search for the map file in these directories (with trailing /) */ static char *mapdirpath[] = {"", DATADIR "/" TRANSDIR "/", 0}; static char *mapsuffixes[] = {"", ".trans", "_to_uni.trans", ".acm", 0}; #ifdef MAIN #include "getfd.h" #include "m_version.h" int verbose = 0; int main(int argc, char *argv[]) { int fd; set_progname(argv[0]); setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); if (argc == 2 && !strcmp(argv[1], "-V")) print_version_and_exit(); if (argc > 1 && !strcmp(argv[1], "-v")) { verbose = 1; argc--; argv++; } fd = getfd(); if (argc >= 3 && !strcmp(argv[1], "-o")) { saveoldmap(fd, argv[2]); argc -= 2; argv += 2; if (argc == 1) exit(0); } if (argc != 2) { fprintf(stderr, _("usage: %s [-v] [-o map.orig] map-file\n"), progname); exit(1); } if (!TwOpen(NULL)) { fprintf(stderr, _("mapscrn: libtw error: %s\n"), TwStrError(TwErrno)); exit(1); } loadnewmap(fd, argv[1]); if (TwErrno) { fprintf(stderr, _("mapscrn: libtw error: %s\n"), TwStrError(TwErrno)); } TwClose(); exit(0); } #endif /* * Read two-column file (index, value) with index in 0-255 * and value in 0-65535. Acceptable representations: * decimal (nnn), octal (0nnn), hexadecimal (0xnnn), Unicode (U+xxxx), * character ('x'). * In the character encoding, x may be a single byte binary value * (but not space, tab, comma, #) or a single Unicode value coded * as a UTF-8 sequence. * * Store values in ubuf[], and small values also in buf[]. * Set u to 1 in case a value above 255 or a U+ occurs. * Set lineno to line number of first error. */ static int parsemap(FILE *fp, char *buf, unsigned short *ubuf, int *u, int *lineno) { char buffer[256]; int in, on, ln, ret = 0; char *p, *q; ln = 0; while (fgets(buffer, sizeof(buffer) - 1, fp)) { ln++; if (!*u && strstr(buffer, "U+")) *u = 1; p = strtok(buffer, " \t\n"); if (p && *p != '#') { q = strtok(NULL, " \t\n#"); if (q) { in = ctoi(p); on = ctoi(q); if (in >= 0 && in < 256 && on >= 0 && on < 65536) { ubuf[in] = on; if (on < 256) buf[in] = on; else *u = 1; } else { if (!ret) *lineno = ln; ret = -1; } } } } return ret; } static int readnewmapfromfile(int fd, char *mfil, char *buf, unsigned short *ubuf) { FILE *fp; struct stat stbuf; int u = 0; int lineno; if ((fp = findfile(mfil, mapdirpath, mapsuffixes)) == NULL) { fprintf(stderr, _("mapscrn: cannot open map file _%s_\n"), mfil); exit(1); } if (stat(pathname, &stbuf)) { perror(pathname); fprintf(stderr, _("Cannot stat map file")); exit(1); } if (stbuf.st_size == E_TABSZ) { if (verbose) printf(_("Loading binary direct-to-font screen map " "from file %s\n"), pathname); if (fread(buf, E_TABSZ, 1, fp) != 1) { fprintf(stderr, _("Error reading map from file `%s'\n"), pathname); exit(1); } } else if (stbuf.st_size == 2 * E_TABSZ) { if (verbose) printf(_("Loading binary unicode screen map " "from file %s\n"), pathname); if (fread(ubuf, 2 * E_TABSZ, 1, fp) != 1) { fprintf(stderr, _("Error reading map from file `%s'\n"), pathname); exit(1); } u = 1; } else { if (verbose) printf(_("Loading symbolic screen map from file %s\n"), pathname); if (parsemap(fp, buf, ubuf, &u, &lineno)) { fprintf(stderr, _("Error parsing symbolic map " "from `%s', line %d\n"), pathname, lineno); exit(1); } } fpclose(fp); return u; } void loadnewmap(int fd, char *mfil) { unsigned short ubuf[E_TABSZ]; char buf[E_TABSZ]; int i, u; /* default: trivial straight-to-font */ for (i = 0; i < E_TABSZ; i++) { buf[i] = i; ubuf[i] = (0xf000 + i); } u = 0; if (mfil) u = readnewmapfromfile(fd, mfil, buf, ubuf); /* do we need to use loaduniscrnmap() ? */ if (u) { /* yes */ if (loaduniscrnmap(fd, ubuf)) exit(1); } else { /* no */ if (loadscrnmap(fd, buf)) exit(1); } } /* * Read decimal, octal, hexadecimal, Unicode (U+xxxx) or character * ('x', x a single byte or a utf8 sequence). */ int ctoi(unsigned char *s) { int i; if ((strncmp(s, "0x", 2) == 0) && (strspn(s + 2, "0123456789abcdefABCDEF") == strlen(s + 2))) sscanf(s + 2, "%x", &i); else if ((*s == '0') && (strspn(s, "01234567") == strlen(s))) sscanf(s, "%o", &i); else if (strspn(s, "0123456789") == strlen(s)) sscanf(s, "%d", &i); else if ((strncmp(s, "U+", 2) == 0) && strlen(s) == 6 && (strspn(s + 2, "0123456789abcdefABCDEF") == 4)) sscanf(s + 2, "%x", &i); else if ((strlen(s) == 3) && (s[0] == '\'') && (s[2] == '\'')) i = s[1]; else if (s[0] == '\'') { int err; char *s1 = s + 1; i = from_utf8(&s1, 0, &err); if (err || s1[0] != '\'' || s1[1] != 0) return -1; } else return -1; return i; } void saveoldmap(int fd, char *omfil) { FILE *fp; char buf[E_TABSZ]; unsigned short ubuf[E_TABSZ]; int i, havemap, haveumap; if ((fp = fopen(omfil, "w")) == NULL) { perror(omfil); exit(1); } havemap = haveumap = 1; if (getscrnmap(fd, buf)) havemap = 0; if (getuniscrnmap(fd, ubuf)) haveumap = 0; if (havemap && haveumap) { for (i = 0; i < E_TABSZ; i++) { if ((ubuf[i] & ~0xff) != 0xf000) { havemap = 0; break; } } } if (havemap) { if (fwrite(buf, sizeof(buf), 1, fp) != 1) { fprintf(stderr, _("Error writing map to file\n")); exit(1); } } else if (haveumap) { if (fwrite(ubuf, sizeof(ubuf), 1, fp) != 1) { fprintf(stderr, _("Error writing map to file\n")); exit(1); } } else { fprintf(stderr, _("Cannot read console map\n")); exit(1); } fclose(fp); if (verbose) printf(_("Saved screen map in `%s'\n"), omfil); } ����������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/nls.h��������������������������������������������������������������������0000664�0000000�0000000�00000001534�13775351206�0016566�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef PACKAGE #define PACKAGE "kbd" #endif #ifndef LOCALEDIR #define LOCALEDIR "/usr/share/locale" #endif #ifdef TW_HAVE_LOCALE_H #include <locale.h> #endif #ifdef ENABLE_NLS #include <libintl.h> #define _(Text) gettext(Text) #ifdef gettext_noop #define N_(String) gettext_noop(String) #else #define N_(String) (String) #endif #else #undef bindtextdomain #define bindtextdomain(Domain, Directory) /* empty */ #undef textdomain #define textdomain(Domain) /* empty */ #undef setlocale #define setlocale(Category, Locale) /* empty */ #define _(Text) (Text) #define N_(Text) (Text) #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/paths.h������������������������������������������������������������������0000664�0000000�0000000�00000002041�13775351206�0017103�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * All data is in subdirectories of DATADIR, by default /usr/lib/kbd * The following five subdirectories are defined: */ #define KEYMAPDIR "keymaps" #define UNIMAPDIR "unimaps" #define TRANSDIR "consoletrans" #define VIDEOMODEDIR "videomodes" #define FONTDIR "consolefonts" /* subdir of the latter */ #define PARTIALDIR "partialfonts" /* obsolete */ #define OLDKEYMAPDIR "keytables" /* * Default keymap, and where the kernel copy of it lives. */ #ifdef __sparc__ #define DEFMAP "sunkeymap.map" #define KERNDIR "/usr/src/linux/drivers/sbus/char" #else #define DEFMAP "defkeymap.map" #define KERNDIR "/usr/src/linux/drivers/char" #endif extern FILE *findfile(char *fnam, char **dirpath, char **suffixes); extern char pathname[]; extern void fpclose(FILE *fp); extern int verbose; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/utf8.c�������������������������������������������������������������������0000664�0000000�0000000�00000002505�13775351206�0016652�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ /* utf8.c - collect routines for conversion to/from utf8 */ #include "utf8.h" /* * Convert utf8 to long. * On success: update *inptr to be the first nonread character, * set *err to 0, and return the obtained value. * On failure: leave *inptr unchanged, set *err to some nonzero error value: * UTF8_BAD: bad utf8, UTF8_SHORT: input too short * and return 0; * * cnt is either 0 or gives the number of available bytes */ unsigned long from_utf8(char **inptr, int cnt, int *err) { unsigned char *in; unsigned int uc, uc2; int need, bit, bad = 0; in = (unsigned char *)(*inptr); uc = *in++; need = 0; bit = 0x80; while (uc & bit) { need++; bit >>= 1; } uc &= (bit - 1); if (cnt && cnt < need) { *err = UTF8_SHORT; return 0; } if (need == 1) bad = 1; else if (need) while (--need) { uc2 = *in++; if ((uc2 & 0xc0) != 0x80) { bad = 1; break; } uc = ((uc << 6) | (uc2 & 0x3f)); } if (bad) { *err = UTF8_BAD; return 0; } *inptr = in; *err = 0; return uc; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/utf8.h�������������������������������������������������������������������0000664�0000000�0000000�00000000575�13775351206�0016664�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ extern unsigned long from_utf8(char **inptr, int cnt, int *err); #define UTF8_BAD (-1) #define UTF8_SHORT (-2) �����������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/xmalloc.c����������������������������������������������������������������0000664�0000000�0000000�00000001540�13775351206�0017421�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ /* Error-free versions of some libc routines */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sysexits.h> #include "nls.h" #include "xmalloc.h" extern char *progname; static void nomem(void) { fprintf(stderr, _("%s: out of memory\n"), progname); exit(EX_OSERR); } void *xmalloc(size_t sz) { void *p = malloc(sz); if (p == NULL) nomem(); return p; } void *xrealloc(void *pp, size_t sz) { void *p = realloc(pp, sz); if (p == NULL) nomem(); return p; } char *xstrdup(char *p) { char *q = strdup(p); if (q == NULL) nomem(); return q; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/mapscrn/xmalloc.h����������������������������������������������������������������0000664�0000000�0000000�00000000650�13775351206�0017427�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * This program 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 2 of the License, or * (at your option) any later version. * */ /* Error-free versions of some libc routines */ extern void *xmalloc(size_t sz); extern void *xrealloc(void *p, size_t sz); extern char *xstrdup(char *p); ����������������������������������������������������������������������������������������twin-0.9.0/clients/pty.c����������������������������������������������������������������������������0000664�0000000�0000000�00000012564�13775351206�0015143�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * parts of code taken from: * * rxvt-2.4.7 sources (various authors) * available at ftp://ftp.math.fu-berlin.de/pub/rxvt/ * and usual Linux mirrors * * * other parts from Twin autor: * * Copyright (C) 1993-1999 Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* tell <stdlib.h> to declare grantpt(), unlockpt(), ptsname() */ #define _GNU_SOURCE #define _XOPEN_SOURCE #include "twautoconf.h" /* for TW_HAVE_* macros */ #include "twconfig.h" /* for CONF_* macros */ #ifdef TW_HAVE_STDLIB_H #include <stdlib.h> #endif #ifdef TW_HAVE_SYS_STAT_H #include <sys/stat.h> #endif #ifdef TW_HAVE_FCNTL_H #include <fcntl.h> #endif #ifdef TW_HAVE_GRP_H #include <grp.h> #endif #ifdef TW_HAVE_TERMIOS_H #include <termios.h> #else #ifdef TW_HAVE_TERMIO_H #include <termio.h> #endif #endif #ifdef TW_HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif #include <Tw/Tw.h> #include "term.h" /* pseudo-teletype connections handling functions */ /* 0. variables */ static char *ptydev, *ttydev; static int ptyfd, ttyfd; #ifdef CONF_TERM_DEVPTS static void pty_error(TW_CONST char *d, TW_CONST char *f, TW_CONST char *arg) { fprintf(stderr, "twterm: %s: %s(\"%s\") failed: %s\n", d ? d : "<NULL>", f ? f : "<NULL>", arg ? arg : "<NULL>", strerror(errno)); } static void get_pty_error(TW_CONST char *f, TW_CONST char *arg) { pty_error("opening pseudo-tty", f, arg); } #endif /* 1. Acquire a pseudo-teletype from the system. */ /* * On failure, returns tfalse. * On success, fills ttydev and ptydev with the names of the master * and slave parts and sets ttyfd and ptyfd to the file descriptors */ static byte get_pty(void) { int fd = -1, sfd = -1; #ifdef CONF_TERM_DEVPTS /* open master pty */ if ( #ifdef TW_HAVE_GETPT (fd = getpt()) >= 0 #else (fd = open("/dev/ptmx", O_RDWR | O_NOCTTY)) >= 0 #endif ) { if (grantpt(fd) == 0) { if (unlockpt(fd) == 0) { ptydev = ttydev = ptsname(fd); if ((sfd = open(ptydev, O_RDWR | O_NOCTTY)) >= 0) goto Found; else get_pty_error("slave open", ptydev); } else get_pty_error("unlockpt", ""); } else get_pty_error("grantpt", ""); close(fd); } else get_pty_error( #ifdef TW_HAVE_GETPT "getpt", "" #else "open", "/dev/ptmx" #endif ); #else /* ! CONF_TERM_DEVPTS */ static char pty_name[] = "/dev/pty??"; static char tty_name[] = "/dev/tty??"; int len = strlen(tty_name); char *c1, *c2; ptydev = pty_name; ttydev = tty_name; #define PTYCHAR1 "pqrstuvwxyzabcde" #define PTYCHAR2 "0123456789abcdef" for (c1 = PTYCHAR1; *c1; c1++) { ptydev[len - 2] = ttydev[len - 2] = *c1; for (c2 = PTYCHAR2; *c2; c2++) { ptydev[len - 1] = ttydev[len - 1] = *c2; if ((fd = open(ptydev, O_RDWR | O_NOCTTY)) >= 0) { if ((sfd = open(ttydev, O_RDWR | O_NOCTTY)) >= 0) /* access(ttydev, R_OK|W_OK) won't do as it checks against REAL uid */ goto Found; close(fd); } } } fprintf(stderr, "twterm: failed to get a pty/tty pseudo-tty pair\n"); #endif return tfalse; Found: fcntl(fd, F_SETFL, O_NDELAY); fcntl(fd, F_SETFD, FD_CLOEXEC); ttyfd = sfd; ptyfd = fd; return ttrue; } static gid_t tty_grgid; gid_t get_tty_grgid(void) { struct group *gr; if (!tty_grgid) { if ((gr = getgrnam("tty"))) tty_grgid = gr->gr_gid; else tty_grgid = (gid_t)-1; } return tty_grgid; } /* 2. Fixup permission for pty master/slave pairs and set window size on slave */ static byte fixup_pty(dat X, dat Y) { struct winsize wsiz; uid_t id = getuid(); gid_t tty_gid = get_tty_grgid(); wsiz.ws_col = X; wsiz.ws_row = Y; wsiz.ws_xpixel = 0; wsiz.ws_ypixel = 0; (void)ioctl(ttyfd, TIOCSWINSZ, &wsiz); if (tty_gid != (gid_t)-1 && #ifndef CONF_TERM_DEVPTS chown(ptydev, id, 0) == 0 && chmod(ptydev, 0600) == 0 && #endif chown(ttydev, id, tty_gid) == 0 && chmod(ttydev, 0620) == 0) return ttrue; return tfalse; } /* 3. Establish ttyfd as controlling teletype for new session and switch to it */ static byte switchto_tty(void) { int i; pid_t pid; pid = setsid(); if (pid < 0) return tfalse; /* * Hope all other file descriptors are set to fcntl(fd, F_SETFD, FD_CLOEXEC) */ for (i = 0; i <= 2; i++) { if (i != ttyfd) { close(i); dup2(ttyfd, i); } } if (ttyfd > 2) close(ttyfd); #ifdef TIOCSCTTY ioctl(0, TIOCSCTTY, 0); #endif /* set process group */ #if defined(TW_HAVE_TCSETPGRP) tcsetpgrp(0, pid); #elif defined(TIOCSPGRP) ioctl(0, TIOCSPGRP, &pid); #endif return ttrue; } /* 5. fork() a program in a pseudo-teletype */ int Spawn(twindow Window, pid_t *ppid, dat X, dat Y, TW_CONST char *arg0, TW_CONST char *TW_CONST *argv) { TwGetPrivileges(); if (!get_pty()) { TwDropPrivileges(); return tfalse; } (void)fixup_pty(X, Y); TwDropPrivileges(); switch ((*ppid = fork())) { case -1: /* failed */ close(ptyfd); ptyfd = -1; break; case 0: /* child */ if (!switchto_tty()) exit(1); execvp(arg0, (char *TW_CONST *)argv); exit(1); break; default: /* father */ break; } close(ttyfd); return ptyfd; } ��������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/pty.h����������������������������������������������������������������������������0000664�0000000�0000000�00000000752�13775351206�0015144�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 1993-1999 Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TW_PTY_H #define TW_PTY_H int Spawn(twindow Window, pid_t *pid, dat X, dat Y, TW_CONST char *arg0, TW_CONST char *TW_CONST *argv); #endif /* TW_PTY_H */ ����������������������twin-0.9.0/clients/restackM.c�����������������������������������������������������������������������0000664�0000000�0000000�00000002503�13775351206�0016070�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * restackM - reverse stacking order of all menuitems in BuiltinMenu * * This program is placed in the public domain. * */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <Tw/Tw.h> #include <Tw/Twerrno.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include "version.h" TW_DECL_MAGIC(lsobj_magic); static void reverse_list(uldat n, tobj *v) { tobj tmp; uldat i, j; for (i = 0, j = n - 1; i < j; i++, j--) { tmp = v[i]; v[i] = v[j]; v[j] = tmp; } } int main(int argc, char *argv[]) { uldat err; tobj a, id, *v; tslist l; tsfield f; if (TwCheckMagic(lsobj_magic) && TwOpen(NULL)) { err = 0; a = TwGetAll(); id = TwStat(a, TWS_all_BuiltinMenu); printf("All = 0x%lx\n -> BuiltinMenu = 0x%lx\n", (long)a, (long)id); if ((l = TwStatL(id, 1, TWS_menu_ChildrenI_List))) { if ((f = TwFindStat(l, TWS_menu_ChildrenI_List)) && f->type == (TWS_vec | TWS_tobj)) { err = f->TWS_field_vecL / sizeof(tobj); v = (tobj *)f->TWS_field_vecV; reverse_list(err, v); TwRestackRows(id, err, v); TwFlush(); } TwDeleteStat(l); } } if ((err = TwErrno)) { fprintf(stderr, "%s: libtw error: %s%s\n", argv[0], TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); return 1; } return 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/restackW.c�����������������������������������������������������������������������0000664�0000000�0000000�00000002401�13775351206�0016077�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * restackW - reverse stacking order of all widgets in FirstScreen * * This program is placed in the public domain. * */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <Tw/Tw.h> #include <Tw/Twerrno.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include "version.h" TW_DECL_MAGIC(lsobj_magic); static void reverse_list(uldat n, tobj *v) { tobj tmp; uldat i, j; for (i = 0, j = n - 1; i < j; i++, j--) { tmp = v[i]; v[i] = v[j]; v[j] = tmp; } } int main(int argc, char *argv[]) { uldat err; tobj f, id, *v; tslist l; tsfield f; if (TwCheckMagic(lsobj_magic) && TwOpen(NULL)) { err = 0; id = TwGetFirstScreen(); printf("FirstScreen = 0x%lx\n", (long)id); if ((l = TwStatL(id, TWS_screen_ChildrenW_List, TWS__None))) { if ((f = TwFindStat(l, TWS_menu_ChildrenI_List)) && f->type == (TWS_vec | TWS_tobj)) { err = f->TWS_field_vecL; v = (tobj *)f->TWS_field_vecV; reverse_list(err, v); TwRestackRows(f, err, v); TwFlush(); } TwDeleteStat(l); } } if ((err = TwErrno)) { fprintf(stderr, "%s: libtw error: %s%s\n", argv[0], TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); return 1; } return 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/sendmsg.c������������������������������������������������������������������������0000664�0000000�0000000�00000010620�13775351206�0015756�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * sendmsg.c -- send a message to a twin client * * This program is placed in the public domain. * */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <Tw/Tw.h> #include <Tw/Twerrno.h> #include "version.h" char *argv0; void Usage(void) { fprintf(stderr, "Usage: %s [--msgport=]<MsgPort> [OPTIONS]\n" "Currently known options:\n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" " --twin@<dpy> set the server to contact (default is $TWDISPLAY)\n" " --control send a msg_user_control message (default)\n" " --clientmsg send a msg_user_clientmsg message\n" " [--code=]<Code> set the message code (default is `open')\n" " [--data=]<Data> set the message data\n" "Currently known codes for control messages are:\n" " quit (0), restart (1), open (2)\n", argv0); } void ShowVersion(void) { fputs("twsendmsg " TWIN_VERSION_STR "\n", stdout); } TW_DECL_MAGIC(sendmsg_magic); int main(int argc, char *argv[]) { char *DisplayName = NULL, *MsgPortName = NULL, *CodeName = NULL, *Data = NULL; udat Type = TW_MSG_USER_CONTROL, Code = TW_MSG_CONTROL_OPEN, DataLen = 0; tmsgport MsgPort; tmsg Msg; uldat err; TwMergeHyphensArgv(argc, argv); argv0 = argv[0]; if (argc == 2) { if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "-help")) { Usage(); return 0; } else if (!strcmp(argv[1], "-V") || !strcmp(argv[1], "-version")) { ShowVersion(); return 0; } } if (TwCheckMagic(sendmsg_magic)) do { while (++argv, --argc) { if (!strncmp(*argv, "-msgport=", 9)) MsgPortName = *argv + 9; else if (!strncmp(*argv, "-twin@", 6)) DisplayName = *argv + 6; else if (!strcmp(*argv, "-control")) Type = TW_MSG_USER_CONTROL; else if (!strcmp(*argv, "-clientmsg")) Type = TW_MSG_USER_CLIENTMSG; else if (!strncmp(*argv, "-code=", 6)) CodeName = *argv + 6; else if (!strncmp(*argv, "-data=", 6)) Data = *argv + 6; else if (!MsgPortName) MsgPortName = *argv; else if (!CodeName) CodeName = *argv; else if (!Data) Data = *argv; } if (CodeName) { if (!strcmp(CodeName, "quit")) Code = TW_MSG_CONTROL_QUIT; else if (!strcmp(CodeName, "restart")) Code = TW_MSG_CONTROL_RESTART; else if (!strcmp(CodeName, "open")) Code = TW_MSG_CONTROL_OPEN; else { fprintf(stderr, "%s: argument `%s' not recognized\n" "\ttry `%s --help' for usage summary.\n", argv0, CodeName, argv0); return 1; } } if (Data) DataLen = strlen(Data); if (!TwOpen(DisplayName)) break; if (MsgPortName) { if ((MsgPort = TwFindMsgPort(TW_NOID, strlen(MsgPortName), MsgPortName))) { if (Type == TW_MSG_USER_CONTROL) { if ((Msg = TwCreateMsg(TW_MSG_USER_CONTROL, DataLen + TW_SIZEOF_TEVENT_CONTROL))) { tevent_control EventC = &Msg->Event.EventControl; EventC->W = TW_NOID; EventC->Code = Code; EventC->Len = DataLen; EventC->X = 0; EventC->Y = 0; if (DataLen) memcpy(EventC->Data, Data, DataLen); if (TwSendMsg(MsgPort, Msg)) return 0; } } else { if ((Msg = TwCreateMsg(TW_MSG_USER_CLIENTMSG, DataLen + TW_SIZEOF_TEVENT_CLIENTMSG))) { tevent_clientmsg EventC = &Msg->Event.EventClientMsg; EventC->W = TW_NOID; EventC->Code = Code; EventC->Len = DataLen; if (DataLen) memcpy(EventC->Data.b, Data, DataLen); if (TwSendMsg(MsgPort, Msg)) return 0; } } } else { fprintf(stderr, "%s: MsgPort `%s' not found on server.\n", argv0, MsgPortName); return 1; } } else { Usage(); return 1; } } while (0); err = TwErrno; fprintf(stderr, "%s: libtw error: %s%s\n", argv0, TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); return 1; } ����������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/setroot.c������������������������������������������������������������������������0000664�0000000�0000000�00000022347�13775351206�0016026�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * setroot.c -- set the screen background image of a running twin * * Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <stdio.h> #include <string.h> #include <signal.h> #include <Tw/Tw.h> #include <Tw/Twerrno.h> char *name; void usage(void) { fprintf(stderr, "Usage: %s [--padx <X>] [--pady <Y>] [--aa <ascii art file>]\n", name); } void panic(void) { fprintf(stderr, "%s: Out of memory!\n", name); exit(1); } tcell *load_ascii_art(FILE *aaFILE, uldat *x, uldat *y, uldat padX, uldat padY); TW_DECL_MAGIC(setroot_magic); int main(int argc, char *argv[]) { tcell *image; uldat X, Y, padX = 0, padY = 0, err; enum { def, aa, padx, pady } state = def; char *aafile = NULL; name = *argv; TwMergeHyphensArgv(argc, argv); while (*++argv) { switch (state) { case def: if (!strcmp(*argv, "-aa")) state = aa; else if (!strcmp(*argv, "-padx")) state = padx; else if (!strcmp(*argv, "-pady")) state = pady; break; case aa: aafile = *argv; state = def; break; case padx: padX = atoi(*argv); state = def; break; case pady: padY = atoi(*argv); state = def; break; default: usage(); return 0; } } if (state != def) { usage(); return 0; } if (TwCheckMagic(setroot_magic) && TwOpen(NULL)) { FILE *aaFILE = aafile ? fopen(aafile, "r") : stdin; if (!aafile) aafile = "(stdin)"; if (aaFILE) { if ((image = load_ascii_art(aaFILE, &X, &Y, padX, padY))) { TwBgImageScreen(TwFirstScreen(), X, Y, image); TwFlush(); TwClose(); return 0; } else if (X || Y) fprintf(stderr, "%s: error reading `%s': %s\n", name, aafile, strerror(errno)); else fprintf(stderr, "%s: `%s' contains no ascii-art image!\n", name, aafile); } else fprintf(stderr, "%s: cannot open `%s': %s\n", name, aafile, strerror(errno)); TwClose(); } if ((err = TwErrno)) fprintf(stderr, "%s: libtw error: %s%s\n", name, TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); return 1; } #define DefColor TCOL(twhite, tblack) #define Underline TCOL(thigh | twhite, tblack) #define HalfInten TCOL(thigh | tblack, tblack) static tcell *image; static tcolor ColText = DefColor, Color = DefColor; static uldat X, Y, Xmax, Ymax, Xreal, Yreal, max; static enum { ESnormal, ESesc, ESsquare, ESgetpars, ESgotpars } State = ESnormal; #define NPAR 16 uldat nPar, Par[NPAR]; udat Effects; #define EFF_INTENSITY ((udat)0x0001) #define EFF_HALFINTENS ((udat)0x0002) #define EFF_UNDERLINE ((udat)0x0004) #define EFF_BLINK ((udat)0x0008) #define EFF_REVERSE ((udat)0x0010) TW_INLINE void update_eff(void) { udat effects = Effects; tcolor fg = TCOLFG(ColText), bg = TCOLBG(ColText); if (effects & EFF_UNDERLINE) fg = TCOLFG(Underline); else if (effects & EFF_HALFINTENS) fg = TCOLFG(HalfInten); if (effects & EFF_REVERSE) { tcolor tmp = TCOL(bg & ~thigh, fg & ~thigh) | TCOL(fg & thigh, bg & thigh); fg = TCOLFG(tmp); bg = TCOLBG(tmp); } if (effects & EFF_INTENSITY) fg ^= thigh; if (effects & EFF_BLINK) bg ^= thigh; Color = TCOL(fg, bg); } TW_INLINE void csi_m(void) { udat i; udat effects = Effects; tcolor fg = TCOLFG(ColText), bg = TCOLBG(ColText); for (i = 0; i <= nPar; i++) switch (Par[i]) { case 0: /* all attributes off */ fg = TCOLFG(DefColor); bg = TCOLBG(DefColor); effects = 0; break; case 1: effects &= ~EFF_HALFINTENS; effects |= EFF_INTENSITY; break; case 2: effects &= ~EFF_INTENSITY; effects |= EFF_HALFINTENS; break; case 4: effects |= EFF_UNDERLINE; break; case 5: effects |= EFF_BLINK; break; case 7: effects |= EFF_REVERSE; break; case 21: case 22: effects &= ~(EFF_HALFINTENS | EFF_INTENSITY); break; case 24: effects &= ~EFF_UNDERLINE; break; case 25: effects &= ~EFF_BLINK; break; case 27: effects &= ~EFF_REVERSE; break; case 38: /* ANSI X3.64-1979 (SCO-ish?) * Enables underscore, white foreground * with white underscore * (Linux - use default foreground). */ fg = TCOLFG(DefColor); effects |= EFF_UNDERLINE; break; case 39: /* ANSI X3.64-1979 (SCO-ish?) * Disable underline option. * Reset colour to default? It did this * before... */ fg = TCOLFG(DefColor); effects &= ~EFF_UNDERLINE; break; case 49: /* restore default bg */ bg = TCOLBG(DefColor); break; default: if (Par[i] >= 30 && Par[i] <= 37) Par[i] -= 30, fg = TANSI2VGA(Par[i]); else if (Par[i] >= 40 && Par[i] <= 47) Par[i] -= 40, bg = TANSI2VGA(Par[i]); break; } Effects = effects; ColText = TCOL(fg, bg); update_eff(); } TW_INLINE void Fill(tcell *t, tcell h, uldat count) { while (count--) *t++ = h; } TW_INLINE void Xgrow(void) { uldat n, newXmax; newXmax = X * 2 + 2; n = newXmax * Ymax; if (!n) { Xmax = newXmax; return; } if (!(image = TwReAllocMem(image, n * sizeof(tcell)))) panic(); max = n; n = Ymax; while (n--) { TwMoveMem(image + n * Xmax, image + n * newXmax, Xmax * sizeof(tcell)); Fill(image + n * newXmax + Xmax, TCELL(Color, ' '), newXmax - Xmax); } Xmax = newXmax; } TW_INLINE void Ygrow(void) { uldat n, newYmax; newYmax = Y * 2 + 2; n = Xmax * newYmax; if (!n) { Ymax = newYmax; return; } if (!(image = TwReAllocMem(image, n * sizeof(tcell)))) panic(); Fill(image + max, TCELL(Color, ' '), n - max); max = n; Ymax = newYmax; } void addc(byte c) { if (X >= Xmax) Xgrow(); if (Y >= Ymax) Ygrow(); if (Xreal <= X) Xreal = X + 1; if (Yreal <= Y) Yreal = Y + 1; image[X + Y * Xmax] = TCELL(Color, c); X++; } void finalize(void) { uldat i; if (!image || !Xreal || !Yreal) return; for (i = 1; i < Yreal; i++) TwMoveMem(image + i * Xmax, image + i * Xreal, Xreal * sizeof(tcell)); } #define goto_xy(x, y) (X = (x), Y = (y)) tcell *load_ascii_art(FILE *aaFILE, uldat *x, uldat *y, uldat padX, uldat padY) { int c; if (!(image = TwAllocMem(max * sizeof(tcell)))) panic(); while ((c = fgetc(aaFILE)) != EOF) { switch (State) { case ESnormal: switch ((byte)c) { case 8: if (X) X--; break; case 9: /* TAB */ do { addc(' '); } while (X & 7); break; case 10: case 11: case 12: X = 0; Y++; break; case 24: case 26: State = ESnormal; break; case 27: State = ESesc; break; case 127: if (X < Xmax && Y < Ymax) image[X + Y * Xmax] = TCELL(Color, ' '); if (X) X--; break; case 128 + 27: State = ESsquare; break; default: addc((byte)c); break; } break; case ESesc: switch (c) { case '[': State = ESsquare; break; default: break; } break; case ESsquare: Par[0] = nPar = 0; State = ESgetpars; /* FALLTHROUGH */ case ESgetpars: if (c == ';' && nPar < NPAR - 1) { Par[++nPar] = 0; break; } else if (c >= '0' && c <= '9') { Par[nPar] *= 10; Par[nPar] += c - '0'; break; } else State = ESgotpars; /* FALLTHROUGH */ case ESgotpars: switch (c) { case 'm': csi_m(); break; case 'H': case 'f': if (Par[0]) Par[0]--; if (!nPar) Par[1] = nPar; else if (Par[1]) Par[1]--; goto_xy(Par[1], Par[0]); break; case 'G': case '`': if (Par[0]) Par[0]--; goto_xy(Par[0], Y); break; case 'A': if (!Par[0]) Par[0]++; goto_xy(X, Y - Par[0]); break; case 'B': case 'e': if (!Par[0]) Par[0]++; goto_xy(X, Y + Par[0]); break; case 'C': case 'a': if (!Par[0]) Par[0]++; goto_xy(X + Par[0], Y); break; case 'D': if (!Par[0]) Par[0]++; goto_xy(X - Par[0], Y); break; case 'E': if (!Par[0]) Par[0]++; goto_xy(0, Y + Par[0]); break; case 'F': if (!Par[0]) Par[0]++; goto_xy(0, Y - Par[0]); break; case 'd': if (Par[0]) Par[0]--; goto_xy(X, Par[0]); break; default: break; } State = ESnormal; break; default: State = ESnormal; break; } } if (padX || padY) { goto_xy(Xreal + padX - 1, Yreal + padY - 1); addc(' '); } finalize(); *x = Xreal; *y = Yreal; return image; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/setroot.sample�������������������������������������������������������������������0000664�0000000�0000000�00000000024�13775351206�0017051�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/clients/sysmon.c�������������������������������������������������������������������������0000664�0000000�0000000�00000031704�13775351206�0015654�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * sysmon.c -- monitor system resources (CPU, Disk, Memory, Swap). * draws in a twin window. * * This program is placed in the public domain. * * Uptime function added by Mohammad Bahathir Hashim <bakhtiar@softhome.net> */ #include <stdio.h> #include <Tw/Tw.h> #include <Tw/Twerrno.h> #ifdef TW_HAVE_STRING_H #include <string.h> #endif #ifdef TW_HAVE_SYS_UTSNAME_H #include <sys/utsname.h> #endif #ifdef TW_HAVE_SYS_STAT_H #include <sys/stat.h> #endif #ifdef TW_HAVE_FCNTL_H #include <fcntl.h> #endif tmsgport SysMon_MsgPort; tmenu SysMon_Menu; twindow SysMon_Win; byte numeric = 1; char buf[TW_BIGBUFF]; TW_DECL_MAGIC(sysmon_magic); byte InitSysMon(int argc, char **argv) { char *name; ldat len; byte border = 1; #if defined(TW_HAVE_SYS_UTSNAME_H) && defined(TW_HAVE_UNAME) struct utsname uts; if (uname(&uts) >= 0 && (name = malloc(9 + (len = strlen(uts.nodename))))) { memcpy(name, uts.nodename, len); memcpy(name + len, " Monitor", 8); len += 8; } else #endif if ((name = strdup("System Monitor"))) len = 14; else return tfalse; name[len] = '\0'; while (--argc) { if (!strcmp(*++argv, "+numeric")) numeric = 1; else if (!strcmp(*argv, "-numeric")) numeric = 0; else if (!strcmp(*argv, "+border")) border = 1; else if (!strcmp(*argv, "-border")) border = 0; } return TwCheckMagic(sysmon_magic) && TwOpen(NULL) && (SysMon_MsgPort = TwCreateMsgPort(8, "twsysmon")) && (SysMon_Menu = TwCreateMenu(TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && TwItem4MenuCommon(SysMon_Menu) && (SysMon_Win = TwCreateWindow(len, name, NULL, SysMon_Menu, TCOL(thigh | tyellow, tblue), TW_NOCURSOR, TW_WINDOW_DRAG | TW_WINDOW_CLOSE, (border ? 0 : TW_WINDOWFL_BORDERLESS), numeric ? 29 : 24, 5, 0)) && (TwSetColorsWindow(SysMon_Win, 0x1FF, (tcolor)0x3F, (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0x9F, (tcolor)0x17, (tcolor)0x3F, (tcolor)0x18, (tcolor)0x08), TwInfo4Menu(SysMon_Menu, TW_ROW_ACTIVE, 16, " System Monitor ", (TW_CONST tcolor *)"pppppppppppppppp"), TwWriteCharsetWindow(SysMon_Win, 26, "CPU \nDISK\nMEM \nSWAP\nUPTIME"), TwMapWindow(SysMon_Win, TwFirstScreen()), ttrue); } #define WIDTH 40 uldat HBar(tcolor Col, uldat len, uldat scale, uldat frac) { static tcolor half; char *s = buf; if (len) { TwSetColTextWindow(SysMon_Win, Col | half); len *= WIDTH; len += frac; if (frac * 4 >= scale && len >= scale) memset(s++, '\xDE', 1), len -= scale; else frac = 0; memset(s, '\xDB', len / scale / 2); TwWriteCharsetWindow(SysMon_Win, len / scale / 2 + !!frac, buf); half = TCOL(0, TCOLFG(Col)); frac = len % (scale * 2); } return frac; } void PrintPercent(tcolor Col, uldat percent) { if (percent > 100) percent = 100; sprintf(buf, " %3d%%", percent); TwSetColTextWindow(SysMon_Win, Col); TwWriteCharsetWindow(SysMon_Win, 5, buf); } void PrintAbsoluteK(tcolor Col, unsigned long nK) { unsigned long G = nK >> 20; unsigned long M = (nK >> 10) & 0x3FF; unsigned long k = nK & 0x3FF; unsigned long hi, lo; char label; if (G) hi = G, lo = M, label = 'G'; else if (M) hi = M, lo = k, label = 'M'; else hi = k, lo = 0, label = 'k'; if (hi >= 10) sprintf(buf, " %3lu%c", hi, label); else if (hi || lo) sprintf(buf, " %1lu.%1lu%c", hi, lo / 103, label); else sprintf(buf, " 0"); TwSetColTextWindow(SysMon_Win, Col); TwWriteCharsetWindow(SysMon_Win, 5, buf); } void Update(void) { static int Fd; static unsigned long CpuUser[2], CpuNice[2], CpuSystem[2], CpuIdle[2], CpuWait[2], CpuHardInt[2], CpuSoftInt[2], CpuTotal; static unsigned long DiskR[2], DiskW[2], DiskMax; static unsigned long MemUsed, MemShared, MemBuff, MemCache, MemFree, MemTotal; static unsigned long SwapUsed, SwapFree, SwapTotal; static byte i; uldat len, tmp; char *s, *e, *e2, *e3; if ((Fd = open("/proc/stat", O_RDONLY)) != TW_NOFD) { s = buf; len = 0; while ((tmp = read(Fd, s, TW_BIGBUFF - len)) > 0) len += tmp, s += tmp; buf[len] = '\0'; if ((s = strstr(buf, "cpu "))) { CpuUser[i] = strtoul(s + 4, &e, 0) - CpuUser[!i]; CpuNice[i] = strtoul(e, &s, 0) - CpuNice[!i]; CpuSystem[i] = strtoul(s, &e, 0) - CpuSystem[!i]; CpuIdle[i] = strtoul(e, &s, 0) - CpuIdle[!i]; /* linux kernel 2.6 cpu stats: */ CpuWait[i] = strtoul(s, &e, 0) - CpuWait[!i]; CpuHardInt[i] = strtoul(e, &s, 0) - CpuHardInt[!i]; CpuSoftInt[i] = strtoul(s, &e, 0) - CpuSoftInt[!i]; } CpuTotal = CpuUser[i] + CpuNice[i] + CpuSystem[i] + CpuIdle[i] + CpuWait[i] + CpuHardInt[i] + CpuSoftInt[i]; /* linux kernel 2.2 disk stats: */ if ((s = strstr(buf, "disk_rio "))) { DiskR[i] = strtoul(s + 9, &e, 0); DiskR[i] += strtoul(e, &s, 0); DiskR[i] += strtoul(s, &e, 0); DiskR[i] += strtoul(e, &s, 0) - DiskR[!i]; } if ((s = strstr(buf, "disk_wio "))) { DiskW[i] = strtoul(s + 9, &e, 0); DiskW[i] += strtoul(e, &s, 0); DiskW[i] += strtoul(s, &e, 0); DiskW[i] += strtoul(e, &s, 0) - DiskW[!i]; } if ((s = strstr(buf, "disk_io: "))) { /* linux kernel 2.4 disk stats: */ s += 10; DiskR[i] = DiskW[i] = 0; while (s && (s = strstr(s, "):("))) { if ((s = strchr(s + 3, ',')) && (s = strchr(s + 1, ','))) { DiskR[i] += strtoul(s + 1, &e, 0); if (*e == ',' && (e = strchr(e + 1, ','))) DiskW[i] += strtoul(e + 1, &s, 0); } } DiskR[i] -= DiskR[!i]; DiskW[i] -= DiskW[!i]; } close(Fd); } if ((Fd = open("/proc/diskstats", O_RDONLY)) != TW_NOFD) { /* linux kernel 2.6 disk stats: */ s = buf; len = 0; while ((tmp = read(Fd, s, TW_BIGBUFF - len)) > 0) len += tmp, s += tmp; buf[len] = '\0'; s = buf; DiskR[i] = DiskW[i] = 0; while ((e = strstr(s, " hd")), (e2 = strstr(s, " sd")), (e3 = strstr(s, " nvme")), e || e2 || e3) { if (e && (!e2 || e < e2) && (!e3 || e < e3)) s = e + 3; else if (e2 && (!e3 || e2 < e3)) s = e2 + 3; else { s = e3 + 5; if (s[0] != ' ' && s[1] == 'n') { s += 2; } } if (s[0] != ' ' && s[1] == ' ') { /* match hd? sd? nvme?n? */ strtoul(s + 2, &s, 0); /* skip 'reads' */ strtoul(s, &s, 0); /* skip 'read_merges' */ DiskR[i] += strtoul(s, &s, 0); /* parse 'read_sectors' */ strtoul(s, &s, 0); /* skip 'read_ticks' */ strtoul(s, &s, 0); /* skip 'writes' */ strtoul(s, &s, 0); /* skip 'write_merges' */ DiskW[i] += strtoul(s, &s, 0); /* parse 'write_sectors' */ } } DiskR[i] -= DiskR[!i]; DiskW[i] -= DiskW[!i]; close(Fd); } if (DiskMax) { if (DiskMax < DiskR[i] + DiskW[i]) DiskMax = DiskR[i] + DiskW[i]; } else { /* first cycle... cannot know bandwidth */ DiskR[!i] = DiskR[i]; DiskW[!i] = DiskW[i]; DiskR[i] = DiskW[i] = 0; DiskMax = 1; } if ((Fd = open("/proc/meminfo", O_RDONLY)) != TW_NOFD) { s = buf; len = 0; while ((tmp = read(Fd, s, TW_BIGBUFF - len)) > 0) len += tmp, s += tmp; buf[len] = '\0'; if ((s = strstr(buf, "MemTotal:"))) MemTotal = strtoul(s + 9, &e, 0), s = e; if ((s = strstr(buf, "MemFree:"))) MemFree = strtoul(s + 8, &e, 0), s = e; if ((s = strstr(buf, "MemShared:"))) MemShared = strtoul(s + 10, &e, 0), s = e; if ((s = strstr(buf, "Buffers:"))) MemBuff = strtoul(s + 8, &e, 0), s = e; if ((s = strstr(buf, "Cached:"))) MemCache = strtoul(s + 8, &e, 0), s = e; MemUsed = MemTotal - MemFree; if (MemCache > MemUsed) MemCache = MemUsed; MemUsed -= MemCache; if (MemBuff > MemUsed) MemBuff = MemUsed; MemUsed -= MemBuff; if (MemShared > MemUsed) MemShared = MemUsed; MemUsed -= MemShared; if ((s = strstr(buf, "SwapTotal:"))) SwapTotal = strtoul(s + 10, &e, 0), s = e; if ((s = strstr(buf, "SwapFree:"))) SwapFree = strtoul(s + 9, &e, 0), s = e; SwapUsed = SwapTotal - SwapFree; close(Fd); } if (CpuTotal) { TwGotoXYWindow(SysMon_Win, 4, 0); if (numeric) PrintPercent(TCOL(thigh | tyellow, tblue), 100 * (CpuTotal - CpuIdle[i] - CpuWait[i]) / CpuTotal); tmp = HBar(TCOL(thigh | tgreen, 0), CpuUser[i], CpuTotal, 0); tmp = HBar(TCOL(thigh | tyellow, 0), CpuNice[i], CpuTotal, tmp); tmp = HBar(TCOL(thigh | tred, 0), CpuSystem[i], CpuTotal, tmp); tmp = HBar(TCOL(thigh | tmagenta, 0), CpuHardInt[i], CpuTotal, tmp); tmp = HBar(TCOL(thigh | tcyan, 0), CpuSoftInt[i], CpuTotal, tmp); tmp = HBar(TCOL(thigh | tblue, 0), CpuWait[i], CpuTotal, tmp); (void)HBar(TCOL(tblue, 0), CpuIdle[i], CpuTotal, tmp); } if (DiskMax) { TwGotoXYWindow(SysMon_Win, 4, 1); if (numeric) PrintAbsoluteK(TCOL(thigh | tyellow, tblue), (DiskR[i] + DiskW[i]) >> 1); tmp = HBar(TCOL(thigh | tgreen, 0), DiskR[i], DiskMax, 0); tmp = HBar(TCOL(thigh | tred, 0), DiskW[i], DiskMax, tmp); (void)HBar(TCOL(tblue, 0), DiskMax - DiskR[i] - DiskW[i], DiskMax, tmp); } if (MemTotal) { TwGotoXYWindow(SysMon_Win, 4, 2); if (numeric) PrintAbsoluteK(TCOL(thigh | tyellow, tblue), (MemTotal - MemFree)); tmp = HBar(TCOL(thigh | tgreen, 0), MemUsed, MemTotal, 0); tmp = HBar(TCOL(thigh | tcyan, 0), MemShared, MemTotal, tmp); tmp = HBar(TCOL(thigh | tyellow, 0), MemBuff, MemTotal, tmp); tmp = HBar(TCOL(thigh | tred, 0), MemCache, MemTotal, tmp); (void)HBar(TCOL(tblue, 0), MemFree, MemTotal, tmp); } if (SwapTotal) { TwGotoXYWindow(SysMon_Win, 4, 3); if (numeric) PrintAbsoluteK(TCOL(thigh | tyellow, tblue), SwapUsed); tmp = HBar(TCOL(thigh | tgreen, 0), SwapUsed, SwapTotal, 0); (void)HBar(TCOL(tblue, 0), SwapFree, SwapTotal, tmp); } TwSetColTextWindow(SysMon_Win, TCOL(twhite, tblue)); /* * --- Uptime --- * Print to SysMon Window * added by Mohammad Bahathir Hashim <bakhtiar@softhome.net> */ if ((Fd = open("/proc/uptime", O_RDONLY)) != TW_NOFD) { unsigned long updays; int uphours, upminutes; s = buf; len = 0; while ((tmp = read(Fd, s, TW_BIGBUFF - len)) > 0) len += tmp, s += tmp; buf[len] = '\0'; updays = strtoul(buf, NULL, 0); /*upseconds = updays % 60;*/ upminutes = (updays /= 60) % 60; uphours = (updays /= 60) % 24; updays /= 24; sprintf(buf, "%lu days %2d:%02d", updays, uphours, upminutes); TwGotoXYWindow(SysMon_Win, 8, 4); TwWriteCharsetWindow(SysMon_Win, strlen(buf), buf); close(Fd); } CpuUser[i] += CpuUser[!i]; CpuNice[i] += CpuNice[!i]; CpuSystem[i] += CpuSystem[!i]; CpuIdle[i] += CpuIdle[!i]; CpuWait[i] += CpuWait[!i]; CpuHardInt[i] += CpuHardInt[!i]; CpuSoftInt[i] += CpuSoftInt[!i]; DiskR[i] += DiskR[!i]; DiskW[i] += DiskW[!i]; i = !i; } #define Quit() \ do { \ if ((err = TwErrno)) { \ printf("%s: libtw error: %s%s\n", argv[0], TwStrError(err), \ TwStrErrorDetail(err, TwErrnoDetail)); \ TwClose(); \ exit(1); \ } \ exit(0); \ } while (0) int main(int argc, char *argv[]) { tmsg Msg; tevent_any Event; struct timeval p = {0, 0}; fd_set readfds; int fd; uldat err; if (!InitSysMon(argc, argv)) Quit(); fd = TwConnectionFd(); FD_ZERO(&readfds); for (;;) { if (p.tv_sec == 0 && p.tv_usec < 10000) { Update(); TwFlush(); p.tv_sec = 1; p.tv_usec = 0; } while ((Msg = TwReadMsg(tfalse))) { Event = &Msg->Event; if (Event->EventCommon.W == SysMon_Win) { if (Msg->Type == TW_MSG_WIDGET_GADGET) { if (Event->EventGadget.Code == 0) /* 0 == Close Code */ Quit(); } } } /* bail out if something goes *really* wrong */ if (TwInPanic()) break; FD_SET(fd, &readfds); select(fd + 1, &readfds, NULL, NULL, &p); } Quit(); } ������������������������������������������������������������twin-0.9.0/clients/term.c���������������������������������������������������������������������������0000664�0000000�0000000�00000034716�13775351206�0015301�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * tterm.c -- create and manage multiple terminal emulator windows on twin * * Copyright (C) 1999-2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <stdio.h> #include <string.h> #include <sys/ioctl.h> #include <signal.h> #include <Tw/autoconf.h> #ifdef TW_HAVE_SYS_RESOURCE_H #include <sys/resource.h> #endif #ifdef TW_HAVE_SYS_WAIT_H #include <sys/wait.h> #endif #ifdef TW_HAVE_TERMIOS_H #include <termios.h> #else #ifdef TW_HAVE_TERMIO_H #include <termio.h> #endif #endif #include <Tw/Tw.h> #include <Tw/Twerrno.h> #include <Tutf/Tutf.h> #include "version.h" #include "pty.h" #define COD_QUIT (udat)1 #define COD_ASKCLOSE (udat)2 #define COD_SPAWN (udat)3 static tscreen Term_Screen; static tmsgport Term_MsgPort; static tmenu Term_Menu; static uldat WinN; fd_set save_rfds; int max_fds; int twin_fd; static void CloseTerm(uldat Slot); /* 5. remote fds handling */ typedef struct { int Fd; twindow Window; pid_t Pid; } fdlist; static fdlist *FdList; static uldat FdSize, FdTop, FdBottom; #define LS FdList[Slot] /* functions */ static uldat FdListGrow(void) { uldat old_n, new_n; fdlist *newFdList; if ((old_n = FdSize) == TW_MAXULDAT) return TW_NOSLOT; if ((new_n = old_n < 64 ? 96 : old_n + (old_n >> 1)) < old_n) new_n = TW_MAXULDAT; if (!(newFdList = (fdlist *)TwReAllocMem0(FdList, sizeof(fdlist) * old_n, sizeof(fdlist) * new_n))) return TW_NOSLOT; for (FdSize = old_n + 1; FdSize < new_n; FdSize++) newFdList[FdSize].Fd = TW_NOFD; FdList = newFdList; return old_n; } TW_INLINE uldat FdListGet(void) { if (FdBottom < FdSize) return FdBottom; return FdListGrow(); } static uldat Slot_Window(twindow Window) { uldat Slot; for (Slot = 0; Slot < FdTop; Slot++) { if (LS.Fd != -1 && LS.Window == Window) return Slot; } return TW_NOSLOT; } TW_INLINE int Fd_Slot(uldat Slot) { if (Slot < FdTop) return LS.Fd; return TW_NOFD; } static uldat RegisterRemote(int Fd, twindow Window, pid_t Pid) { uldat Slot, j; if ((Slot = FdListGet()) == TW_NOSLOT) return Slot; LS.Fd = Fd; LS.Window = Window; LS.Pid = Pid; if (FdTop <= Slot) FdTop = Slot + 1; for (j = FdBottom; j < FdTop; j++) if (FdList[j].Fd == TW_NOFD) break; FdBottom = j; FD_SET(Fd, &save_rfds); if (max_fds < Fd) max_fds = Fd; return Slot; } /* UnRegister a Fd and related stuff given a slot number */ static void UnRegisterRemote(uldat Slot) { int i; uldat j; if (Slot < FdTop && LS.Fd != TW_NOFD) { FD_CLR(LS.Fd, &save_rfds); LS.Fd = TW_NOFD; for (i = max_fds; i >= 0; i--) if (FD_ISSET(i, &save_rfds)) break; max_fds = i; if (FdBottom > Slot) FdBottom = Slot; for (j = FdTop; j > FdBottom; j--) if (FdList[j].Fd != TW_NOFD) break; FdTop = (j == FdBottom) ? j : j + 1; } } void Resize(uldat Slot, dat X, dat Y) { struct winsize wsiz; if (Slot < FdTop && LS.Fd != TW_NOFD) { wsiz.ws_col = X; wsiz.ws_row = Y; wsiz.ws_xpixel = 0; wsiz.ws_ypixel = 0; if (ioctl(LS.Fd, TIOCSWINSZ, &wsiz) == 0) kill(-LS.Pid, SIGWINCH); } } static char **TokenizeStringVec(uldat len, char *s) { char **cmd = NULL, *buf; uldat save_len, n = 0; char c; /* skip initial spaces */ while (len && ((c = *s) == '\0' || c == ' ')) { len--, s++; } save_len = len; if (len && (buf = (char *)TwAllocMem(len + 1))) { TwCopyMem(s, buf, len); buf[len] = '\0'; /* how many args? */ while (len) { len--, c = *s++; if (c && c != ' ') { n++; while (len && (c = *s) && c != ' ') { len--, s++; } } } if ((cmd = TwAllocMem((n + 1) * sizeof(byte *)))) { n = 0; len = save_len; s = buf; /* put args in cmd[] */ while (len) { len--, c = *s++; if (c && c != ' ') { cmd[n++] = s - 1; while (len && (c = *s) && c != ' ') { len--, s++; } *s = '\0'; /* safe, we did a malloc(len+1) */ } } cmd[n] = NULL; /* safe, we did a malloc(n+1) */ } } return cmd; } static void FreeStringVec(char **cmd) { TwFreeMem(cmd[0]); TwFreeMem(cmd); } static char **default_args; static char *default_title = "Twin Term"; static twindow newTermWindow(TW_CONST char *title) { twindow Window = TwCreateWindow(strlen(title), title, NULL, Term_Menu, TCOL(twhite, tblack), TW_LINECURSOR, TW_WINDOW_WANT_KEYS | TW_WINDOW_WANT_CHANGES | TW_WINDOW_DRAG | TW_WINDOW_RESIZE | TW_WINDOW_Y_BAR | TW_WINDOW_CLOSE, TW_WINDOWFL_CURSOR_ON | TW_WINDOWFL_USECONTENTS, 80, 25, 200); if (Window != TW_NOID) { TwSetColorsWindow(Window, 0x1FF, TCOL(thigh | tyellow, tcyan), TCOL(thigh | tgreen, thigh | tblue), TCOL(twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(twhite, tblack), TCOL(thigh | tblack, thigh | twhite), TCOL(thigh | tblack, tblack), TCOL(tblack, thigh | tblack)); TwConfigureWindow(Window, (1 << 2) | (1 << 3), 0, 0, 5, 1, 0, 0); } return Window; } static byte OpenTerm(TW_CONST char *arg0, TW_CONST char *TW_CONST *argv) { twindow Window; int Fd; pid_t Pid; uldat Slot; TW_CONST char *title; /* if {arg0, argv} is {NULL, ...} or {"", ... } then start user's shell */ if (arg0 && *arg0 && argv && argv[0]) { if ((title = strrchr(argv[0], '/'))) title++; else title = argv[0]; } else { arg0 = default_args[0]; argv = (TW_CONST char *TW_CONST *)default_args + 1; title = default_title; } if ((Window = newTermWindow(title))) { if ((Fd = Spawn(Window, &Pid, 80, 25, arg0, argv)) != TW_NOFD) { if ((Slot = RegisterRemote(Fd, Window, Pid)) != TW_NOSLOT) { TwMapWindow(Window, Term_Screen); WinN++; return !TwInPanic(); } close(Fd); } TwDeleteWindow(Window); } return tfalse; } static void CloseTerm(uldat Slot) { close(LS.Fd); TwDeleteWindow(LS.Window); UnRegisterRemote(Slot); WinN--; } /* * it is not safe to call libtw functions from within signal handlers * (expecially if you compiled libtw as thread-safe) so * just set a flag in the handler and react to it syncronously */ static volatile byte ReceivedSignalChild; static TW_RETSIGTYPE SignalChild(int n) { ReceivedSignalChild = ttrue; signal(SIGCHLD, SignalChild); TW_RETFROMSIGNAL(0); } static void RemotePidIsDead(pid_t pid) { uldat Slot; for (Slot = 0; Slot < FdTop; Slot++) { if (LS.Fd != TW_NOFD && LS.Pid == pid) { CloseTerm(Slot); return; } } } static void HandleSignalChild(void) { pid_t pid; int status; while ((pid = Tw_wait3(&status, WNOHANG, (struct rusage *)0)) != 0 && pid != (pid_t)-1) { if (WIFEXITED(status) || WIFSIGNALED(status)) RemotePidIsDead(pid); } ReceivedSignalChild = tfalse; } static byte Add_Spawn_Row4Menu(twindow Window) { uldat len = strlen(default_title); char *name, ret; if (strcmp(default_title, "Twin Term") && (name = TwAllocMem(len + 6))) { TwCopyMem(" New ", name, 5); TwCopyMem(default_title, name + 5, len); name[len + 5] = ' '; ret = TwRow4Menu(Window, COD_SPAWN, TW_ROW_ACTIVE, len + 6, name); TwFreeMem(name); } else ret = TwRow4Menu(Window, COD_SPAWN, TW_ROW_ACTIVE, 10, " New Term "); return ret; } TW_DECL_MAGIC(term_magic); static byte InitTerm(void) { twindow Window; uldat err; signal(SIGCHLD, SignalChild); #if defined(TW_HAVE_SETENV) setenv("TERM", "linux", 1); #elif defined(TW_HAVE_PUTENV) putenv("TERM=linux"); #endif if (TwCheckMagic(term_magic) && TwOpen(NULL) && (Term_MsgPort = TwCreateMsgPort(6, "twterm")) && (Term_Menu = TwCreateMenu(TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && (TwInfo4Menu(Term_Menu, TW_ROW_ACTIVE, 18, " Remote Twin Term ", (TW_CONST tcolor *)"ptpppppptpppptpppp"), ttrue) && (Window = TwWin4Menu(Term_Menu)) && Add_Spawn_Row4Menu(Window) && TwRow4Menu(Window, COD_QUIT, tfalse, 6, " Exit ") && TwItem4Menu(Term_Menu, Window, ttrue, 6, " File ") && TwItem4MenuCommon(Term_Menu) && (Term_Screen = TwFirstScreen()) && (OpenTerm(NULL, NULL))) return ttrue; TwClose(); if ((err = TwErrno)) fprintf(stderr, "twterm: libtw error: %s%s\n", TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); return tfalse; } static void TwinTermH(void) { tmsg Msg; tevent_any Event; udat Code /*, Repeat*/; twindow Win; uldat Slot; int Fd; while ((Msg = TwReadMsg(tfalse))) { Event = &Msg->Event; Win = Event->EventCommon.W; Slot = Slot_Window(Win); Fd = Fd_Slot(Slot); if (Msg->Type == TW_MSG_WIDGET_KEY) { /* send keypresses */ write(Fd, Event->EventKeyboard.AsciiSeq, Event->EventKeyboard.SeqLen); } else if (Msg->Type == TW_MSG_SELECTION) { /* * send Msg->Event.EventCommon.Window as ReqPrivate field, * so that we will get it back in TW_MSG_SELECTIONNOTIFY message * without having to store it manually */ TwRequestSelection(TwGetOwnerSelection(), Win); } else if (Msg->Type == TW_MSG_SELECTIONNOTIFY) { Win = Event->EventSelectionNotify.ReqPrivate; Slot = Slot_Window(Win); Fd = Fd_Slot(Slot); /* react as for keypresses */ write(Fd, Event->EventSelectionNotify.Data, Event->EventSelectionNotify.Len); } else if (Msg->Type == TW_MSG_WIDGET_MOUSE) { fprintf(stderr, "twterm: unexpected Mouse event message!\n"); } else if (Msg->Type == TW_MSG_WIDGET_GADGET) { if (Event->EventGadget.Code == 0 /* Close Code */) CloseTerm(Slot); } else if (Msg->Type == TW_MSG_MENU_ROW) { if (Event->EventMenu.Menu == Term_Menu) { Code = Event->EventMenu.Code; switch (Code) { case COD_SPAWN: OpenTerm(NULL, NULL); break; case COD_ASKCLOSE: CloseTerm(Slot); break; default: break; } } } else if (Msg->Type == TW_MSG_WIDGET_CHANGE) { Resize(Slot, Event->EventWidget.XWidth, Event->EventWidget.YWidth); } else if (Msg->Type == TW_MSG_USER_CONTROL) { if (Event->EventControl.Code == TW_MSG_CONTROL_OPEN) { char **cmd = TokenizeStringVec(Event->EventControl.Len, (char *)Event->EventControl.Data); if (cmd) { OpenTerm(cmd[0], (TW_CONST char *TW_CONST *)cmd); FreeStringVec(cmd); } } } } } static void TwinTermIO(int Slot) { static char buf[TW_BIGBUFF]; ldat got = 0, chunk = 0; do { /* * TW_BIGBUFF - 1 to avoid silly windows... * linux ttys buffer up to 4095 bytes. */ chunk = read(LS.Fd, buf + got, TW_BIGBUFF - 1 - got); } while (chunk > 0 && (got += chunk) < TW_BIGBUFF - 1); if (got) TwWriteCharsetWindow(LS.Window, got, buf); else if (chunk == -1 && errno != EINTR && errno != EWOULDBLOCK) /* something bad happened to our child :( */ CloseTerm(Slot); } static void Usage(char *name) { fprintf(stderr, "Usage: %s [OPTIONS]\n" "Currently known options: \n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" " -t <title> set window title\n" " -e <command> run <command> instead of user's shell\n" " (must be last option)\n", name); } static void ShowVersion(void) { fputs("twterm " TWIN_VERSION_STR "\n", stdout); } int main(int argc, char *argv[]) { fd_set fds; int num_fds; uldat Slot, err; struct timeval zero = {0, 0}, *pt; char *t, *name = argv[0], *shell[3]; FD_ZERO(&save_rfds); argv++, argc--; TwMergeHyphensArgv(argc, argv); while (argc) { if (!strcmp(*argv, "-h") || !strcmp(*argv, "-help")) { Usage(name); return 0; } else if (!strcmp(*argv, "-V") || !strcmp(*argv, "-version")) { ShowVersion(); return 0; } else if (argc > 1 && !strcmp(*argv, "-t")) { default_title = *++argv; argc--; } else if (argc > 1 && !strcmp(*argv, "-e")) { default_args = argv; default_args[0] = default_args[1]; break; } else { fprintf(stderr, "%s: argument `%s' not recognized\n" "\ttry `%s --help' for usage summary.\n", name, *argv, name); return 1; } argv++; argc--; } if (!default_args) { if ((shell[0] = getenv("SHELL")) && (shell[0] = strdup(shell[0])) && (shell[1] = (t = strrchr(shell[0], '/')) ? strdup(t) : strdup(shell[0]))) { if (shell[1][0] == '/') shell[1][0] = '-'; shell[2] = NULL; default_args = shell; } else return 1; } if (!InitTerm()) return 0; twin_fd = TwConnectionFd(); FD_SET(twin_fd, &save_rfds); if (max_fds < twin_fd) max_fds = twin_fd; while (WinN) { /* bail out if something goes *really* wrong */ if (!TwFlush()) break; if (TwPendingMsg()) /* some Msg is available, don't sleep */ pt = &zero; else pt = NULL; fds = save_rfds; do { num_fds = select(max_fds + 1, &fds, NULL, NULL, pt); if (ReceivedSignalChild) HandleSignalChild(); } while (num_fds < 0 && errno == EINTR); if (num_fds < 0 && errno != EINTR) { /* panic! */ TwClose(); return 1; } /* * We cannot rely on FD_ISSET(twin_fd, &fds) alone to call TwinTermH(), * as Msgs may have been already received through the socket * and sitting in the local queue */ if ((num_fds > 0 && FD_ISSET(twin_fd, &fds)) || TwPendingMsg()) { if (FD_ISSET(twin_fd, &fds)) num_fds--; TwinTermH(); } for (Slot = 0; num_fds > 0 && Slot < FdTop; Slot++) { if (LS.Fd != TW_NOFD && FD_ISSET(LS.Fd, &fds)) TwinTermIO(Slot), num_fds--; } } if ((err = TwErrno)) { fprintf(stderr, "twterm: libtw error: %s%s\n", TwStrError(err), TwStrErrorDetail(err, TwErrnoDetail)); return 1; } TwClose(); return 0; } ��������������������������������������������������twin-0.9.0/clients/term.h���������������������������������������������������������������������������0000664�0000000�0000000�00000000631�13775351206�0015273�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 1993-1999 Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TW_TERM_H #define TW_TERM_H extern uldat max_fds; extern fd_set save_rfds; #endif �������������������������������������������������������������������������������������������������������twin-0.9.0/clients/threadtest.c���������������������������������������������������������������������0000664�0000000�0000000�00000006242�13775351206�0016472�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * threadtest.c -- test libtw thread-safety * Copyright (C) 1993-1999 Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef _REENTRANT #define _REENTRANT /* for thread-safety */ #endif #include <stdio.h> #include <string.h> #include <sys/stat.h> #include <pthread.h> #include <Tw/Tw.h> #include <Tw/Twerrno.h> tmsgport Thrd_MsgPort; tmenu Thrd_Menu; twindow Thrd_Win1, Thrd_Win2; pthread_t t1, t2; TW_DECL_MAGIC(threadtest_magic); byte InitThrd(void) { return TwCheckMagic(threadtest_magic) && TwOpen(NULL) && (Thrd_MsgPort = TwCreateMsgPort(10, "threadtest")) && (Thrd_Menu = TwCreateMenu(TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && (TwInfo4Menu(Thrd_Menu, TW_ROW_ACTIVE, 13, " Thread Test ", (TW_CONST tcolor *)"ppppppppppppp"), TwItem4MenuCommon(Thrd_Menu)); } static void Quit(void) { uldat err, detail; if ((err = TwErrno)) { detail = TwErrnoDetail; fprintf(stderr, "threadtest: libtw error: %s%s\n", TwStrError(err), TwStrErrorDetail(err, detail)); TwClose(); exit(1); } exit(0); } long seed; int fd; pthread_mutex_t T = PTHREAD_MUTEX_INITIALIZER; void mainloop(twindow *Win) { tmsg Msg; tevent_any Event; /*struct timeval p = {0, 0};*/ fd_set readfds; tcell x; int y; FD_ZERO(&readfds); srand48(++seed); if (!(*Win = TwCreateWindow(11, Win == &Thrd_Win1 ? "threadtest1" : "threadtest2", NULL, Thrd_Menu, TCOL(thigh | tyellow, tblue), TW_NOCURSOR, TW_WINDOW_DRAG | TW_WINDOW_CLOSE | TW_WINDOW_RESIZE, TW_WINDOWFL_USECONTENTS, 31 + sizeof(long) / sizeof(tcell), 16, 0))) Quit(); TwMapWindow(*Win, TwFirstScreen()); for (;;) { for (y = 256; y; y--) { x = lrand48(); TwWriteTCellWindow(*Win, lrand48() >> 26, lrand48() >> 27, sizeof(long) / sizeof(tcell), &x); } /* bail out if something goes *really* wrong */ if (!TwFlush()) Quit(); /* * use TwCloneReadMsg() instead of TwReadMsg() * as the other thread is calling Tw* functions... * they invalidate the static buffer used by TwReadMsg() */ while ((Msg = TwCloneReadMsg(tfalse))) { Event = &Msg->Event; if (Msg->Type == TW_MSG_WIDGET_GADGET) { if (Event->EventGadget.Code == 0) /* 0 == Close Code */ Quit(); } TwFreeMem(Msg); } /* FD_SET(fd, &readfds); p.tv_sec = 0; p.tv_usec = 10000; select(fd+1, &readfds, NULL, NULL, &p); */ } } int main(int argc, char *argv[]) { if (!InitThrd()) Quit(); fd = TwConnectionFd(); seed = time(NULL); pthread_create(&t1, NULL, (void *)mainloop, &Thrd_Win2); usleep(1); mainloop(&Thrd_Win1); Quit(); return 0; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/conf/������������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0013437�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/conf/conf.auto.in������������������������������������������������������������������������0000664�0000000�0000000�00000000360�13775351206�0015662�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # This is the configuration automagically created by './configure [OPTIONS]'. # Don't touch it, use './configure [OPTIONS]' or 'scripts/Configure.sh [OPTIONS]' # or 'make config' or 'make menuconfig' or 'make gconfig' instead. # @CONF_@ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/conf/conf.base���������������������������������������������������������������������������0000664�0000000�0000000�00000007620�13775351206�0015225�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # This is the skeleton for the configuration scripts. # CONF___MENU="General setup" CONF_SOCKET_MENU="Socket support" CONF_TT_MENU="Toolkit library support" CONF_WM_MENU="Window Manager" CONF_TERM_MENU="Terminal emulator" CONF_PRINTK_MENU="Messages logging" CONF_HW_MENU="Display hardware support" CONF_OPT_MENU="Runtime options" CONF__SHLIBS_HELP="Enable shared libraries" CONF__MODULES_HELP="Enable shared modules" CONF__ALLOC_HELP="Use custom mmap() based malloc/free" CONF_SOCKET_HELP="Support remote socket connections (libtw)" CONF_SOCKET_GZ_HELP=" -> Sockets: support gzip compression" CONF_SOCKET_PTHREADS_HELP=" -> Sockets: thread-safe libs (requires libpthread)" CONF_SOCKET_ALIEN_HELP=" -> Sockets: support non-native architectures" CONF_TT_HELP="Support Text Toolkit library (libTT)" CONF_TT_HW_TWIN_HELP=" -> HW support: twin, native" CONF_TT_HW_TWIN_TUNNEL_HELP=" -> HW support: twin + server side libTT" CONF_TT_HW_TWIN_DETUNNEL_HELP=" -> HW support: libTT on twin server side" CONF_TT_HW_GTK_HELP=" -> HW support: gtk" CONF_TT_HW_X11_HELP=" -> HW support: X11" CONF_TT_HW_XML_HELP=" -> HW support: write to xml files" CONF_WM_HELP="Window Manager: absolutely needed!" CONF_WM_RC_HELP="WM: support ~/.twinrc configuration parser" CONF_WM_RC_SHMMAP_HELP=" -> WM: RC: use mmapped shared file for parser" CONF_WM_RC_SHRINK_HELP=" -> WM: RC: shrink memory when parser finished" CONF_TERM_HELP="Builtin Terminal emulator" CONF_TERM_DEVPTS_HELP=" -> Terminal: use Unix98 /dev/pts/* pseudo-ttys" CONF_PRINTK_HELP="Store server messages into Messages window" CONF_HW_TTY_HELP="HW support: text terminals (Linux console...)" CONF_HW_TTY_LINUX_HELP=" -> tty support: Linux console with gpm mouse" CONF_HW_TTY_LRAWKBD_HELP=" -> tty support: use raw keyboard on Linux console" CONF_HW_TTY_TWTERM_HELP=" -> tty support: twin own terminal" CONF_HW_TTY_TERMCAP_HELP=" -> tty support: termcap/ncurses terminal database" CONF_HW_X11_HELP="HW support: X11" CONF_HW_TWIN_HELP="HW support: twin, native" CONF_HW_DISPLAY_HELP="HW support: twdisplay client as display" CONF_OPT_SHADOWS_HELP="Runtime option: enable shadows" CONF_OPT_BLINK_HELP="Runtime option: enable blink/high background" CONF_OPT_CURSOR_ALWAYS_HELP="Runtime option: force always visible cursor" CONF_OPT_MENU_HIDE_HELP="Runtime option: autohide menu" CONF_OPT_MENU_INFO_HELP="Runtime option: enable menu information line" CONF_OPT_MENU_RELAX_HELP="Runtime option: arrows can open/close submenus" CONF_OPT_SCREEN_SCROLL_HELP="Runtime option: enable screen scrolling" menu CONF__ yesno CONF__SHLIBS yesno CONF__MODULES yesno CONF__ALLOC endmenu menu CONF_SOCKET yesmodno CONF_SOCKET yesno_dep CONF_SOCKET_GZ CONF_SOCKET yesno_dep CONF_SOCKET_PTHREADS CONF_SOCKET yesno CONF_SOCKET_ALIEN endmenu menu CONF_TT yesno CONF_TT yesmodno_truedep CONF_TT_HW_TWIN CONF_SOCKET yesmodno_truedep CONF_TT_HW_TWIN_TUNNEL CONF_SOCKET yesmodno_truedep CONF_TT_HW_TWIN_DETUNNEL CONF_SOCKET yesmodno CONF_TT_HW_GTK yesmodno CONF_TT_HW_X11 yesmodno CONF_TT_HW_XML endmenu menu CONF_WM yesmodno CONF_WM yesmodno_dep CONF_WM_RC CONF_WM yesno_dep CONF_WM_RC_SHMMAP CONF_WM_RC yesno_dep CONF_WM_RC_SHRINK CONF_WM_RC endmenu menu CONF_TERM yesmodno CONF_TERM yesno CONF_TERM_DEVPTS endmenu menu CONF_PRINTK yesno CONF_PRINTK endmenu menu CONF_HW yesmodno CONF_HW_TTY yesno_dep CONF_HW_TTY_LINUX CONF_HW_TTY yesno_dep CONF_HW_TTY_LRAWKBD CONF_HW_TTY yesno_dep CONF_HW_TTY_TWTERM CONF_HW_TTY yesno_dep CONF_HW_TTY_TERMCAP CONF_HW_TTY yesmodno CONF_HW_X11 yesmodno_truedep CONF_HW_TWIN CONF_SOCKET yesmodno_truedep CONF_HW_DISPLAY CONF_SOCKET endmenu menu CONF_OPT msg "Warning: settings in ~/.twinrc or in system.twinrc" msg "will always override the following options!" yesno CONF_OPT_SHADOWS yesno CONF_OPT_BLINK yesno CONF_OPT_CURSOR_ALWAYS yesno CONF_OPT_MENU_HIDE yesno CONF_OPT_MENU_INFO yesno CONF_OPT_MENU_RELAX yesno CONF_OPT_SCREEN_SCROLL endmenu ����������������������������������������������������������������������������������������������������������������twin-0.9.0/conf/conf.default������������������������������������������������������������������������0000664�0000000�0000000�00000001366�13775351206�0015740�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # This is the default configuration. # Don't touch it, use 'make config' instead. # CONF__SHLIBS=y CONF__MODULES=n CONF__ALLOC=n CONF__LONG_LONG=n CONF_SOCKET=y CONF_SOCKET_GZ=y CONF_SOCKET_PTHREADS=n CONF_SOCKET_ALIEN=n CONF_TT=y CONF_TT_HW_TWIN=y CONF_TT_HW_TWIN_TUNNEL=y CONF_TT_HW_TWIN_DETUNNEL=y CONF_TT_HW_GTK=n CONF_TT_HW_X11=y CONF_TT_HW_XML=y CONF_WM=y CONF_WM_RC=y CONF_WM_RC_SHMMAP=n CONF_WM_RC_SHRINK=y CONF_TERM=y CONF_TERM_DEVPTS=n CONF_PRINTK=y CONF_HW_TTY=y CONF_HW_TTY_LINUX=y CONF_HW_TTY_LRAWKBD=y CONF_HW_TTY_TWTERM=y CONF_HW_TTY_TERMCAP=y CONF_HW_X11=y CONF_HW_TWIN=y CONF_HW_DISPLAY=y CONF_OPT_SHADOWS=y CONF_OPT_BLINK=n CONF_OPT_CURSOR_ALWAYS=n CONF_OPT_MENU_HIDE=n CONF_OPT_MENU_INFO=y CONF_OPT_MENU_RELAX=n CONF_OPT_SCREEN_SCROLL=y ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/conf/conf.list���������������������������������������������������������������������������0000664�0000000�0000000�00000001126�13775351206�0015261�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������CONF__SHLIBS CONF__MODULES CONF__ALLOC CONF__LONG_LONG CONF_SOCKET CONF_SOCKET_GZ CONF_SOCKET_PTHREADS CONF_SOCKET_ALIEN CONF_TT CONF_TT_HW_TWIN CONF_TT_HW_TWIN_TUNNEL CONF_TT_HW_TWIN_DETUNNEL CONF_TT_HW_GTK CONF_TT_HW_X11 CONF_TT_HW_XML CONF_WM CONF_WM_RC CONF_WM_RC_SHMMAP CONF_WM_RC_SHRINK CONF_TERM CONF_TERM_DEVPTS CONF_PRINTK CONF_HW_TTY CONF_HW_TTY_LINUX CONF_HW_TTY_LRAWKBD CONF_HW_TTY_TWTERM CONF_HW_TTY_TERMCAP CONF_HW_X11 CONF_HW_TWIN CONF_HW_DISPLAY CONF_OPT_SHADOWS CONF_OPT_BLINK CONF_OPT_CURSOR_ALWAYS CONF_OPT_MENU_HIDE CONF_OPT_MENU_INFO CONF_OPT_MENU_RELAX CONF_OPT_SCREEN_SCROLL ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/configure��������������������������������������������������������������������������������0000775�0000000�0000000�00002710427�13775351206�0014436�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for twin 0.9.0. # # Report bugs to <BUG-REPORT-ADDRESS>. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and BUG-REPORT-ADDRESS $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} lt_ltdl_dir='libs/libltdl' test -n "$DJDIR" || exec 7<&0 </dev/null exec 6>&1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='twin' PACKAGE_TARNAME='twin' PACKAGE_VERSION='0.9.0' PACKAGE_STRING='twin 0.9.0' PACKAGE_BUGREPORT='BUG-REPORT-ADDRESS' PACKAGE_URL='' ac_unique_file="server/main.cpp" # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> #ifdef HAVE_SYS_TYPES_H # include <sys/types.h> #endif #ifdef HAVE_SYS_STAT_H # include <sys/stat.h> #endif #ifdef STDC_HEADERS # include <stdlib.h> # include <stddef.h> #else # ifdef HAVE_STDLIB_H # include <stdlib.h> # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include <memory.h> # endif # include <string.h> #endif #ifdef HAVE_STRINGS_H # include <strings.h> #endif #ifdef HAVE_INTTYPES_H # include <inttypes.h> #endif #ifdef HAVE_STDINT_H # include <stdint.h> #endif #ifdef HAVE_UNISTD_H # include <unistd.h> #endif" ac_header_list= ac_subst_vars='ltdl_LTLIBOBJS ltdl_LIBOBJS am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LDFLAGS_BIN_EXPORT_DYNAMIC LIBWM_la_FALSE LIBWM_la_TRUE LIBTERM_la_FALSE LIBTERM_la_TRUE LIBSOCKET_la_FALSE LIBSOCKET_la_TRUE LIBRCPARSE_la_FALSE LIBRCPARSE_la_TRUE LIBHW_XFT_la_FALSE LIBHW_XFT_la_TRUE LIBHW_X11_la_FALSE LIBHW_X11_la_TRUE LIBHW_TWIN_la_FALSE LIBHW_TWIN_la_TRUE LIBHW_TTY_la_FALSE LIBHW_TTY_la_TRUE LIBHW_DISPLAY_la_FALSE LIBHW_DISPLAY_la_TRUE SUBDIR_LIBTT LIBTW LIBTUTF LIBTSTL LIBZ LIBXFT LIBTERMCAP LIBPTHREAD LIBSOCK LIBGPM LIBCRYPT SUBDIR_LIBLTDL LIBDL XFT_LIBS XFT_CFLAGS LIBOBJS ALLOCA LIBX11 X11_LDFLAGS X11_CPPFLAGS XMKMF PACKAGE_VERSION_EXTRA PACKAGE_VERSION_PATCH PACKAGE_VERSION_MINOR PACKAGE_VERSION_MAJOR PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG am__fastdepCCAS_FALSE am__fastdepCCAS_TRUE CCASDEPMODE CCASFLAGS CCAS CXXCPP am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX LTDLOPEN LT_CONFIG_H CONVENIENCE_LTDL_FALSE CONVENIENCE_LTDL_TRUE INSTALL_LTDL_FALSE INSTALL_LTDL_TRUE LT_ARGZ_H sys_symbol_underscore LIBADD_DL LT_DLPREOPEN LIBADD_DLD_LINK LIBADD_SHL_LOAD LIBADD_DLOPEN LT_DLLOADERS INCLTDL LTDLINCL LTDLDEPS LIBLTDL CPP LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR DLLTOOL OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_maintainer_mode enable__dlopen enable_socket enable_socket_gz enable_socket_pthreads enable_socket_alien enable_wm enable_wm_rc enable_wm_rc_shmmap enable_wm_rc_shrink enable_term enable_term_devpts enable_printk enable_hw_tty enable_hw_tty_linux enable_hw_tty_lrawkbd enable_hw_tty_twterm enable_hw_tty_termcap enable_hw_x11 enable_hw_xft enable_hw_twin enable_hw_display enable_shared enable_static with_pic enable_fast_install with_aix_soname enable_dependency_tracking with_gnu_ld with_sysroot enable_libtool_lock with_included_ltdl with_ltdl_include with_ltdl_lib enable_ltdl_install with_x ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS LT_SYS_LIBRARY_PATH CPP CXX CXXFLAGS CCC CXXCPP CCAS CCASFLAGS PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR XMKMF XFT_CFLAGS XFT_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures twin 0.9.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/twin] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names X features: --x-includes=DIR X include files are in DIR --x-libraries=DIR X library files are in DIR System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of twin 0.9.0:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable--dlopen=yes|no use dlopen() to load modules instead of libtool lt_dlopen() --enable-socket=yes|no enable remote socket connections (libtw) --enable-socket-gz=yes|no enable gzip compression on sockets --enable-socket-pthreads=yes|no enable thread safe libraries (requires pthread) --enable-socket-alien=yes|no enable support for non-native architectures --enable-wm=yes|no enable the builtin WM (absolutely needed!) --enable-wm-rc=yes|no enable ~/.twinrc configuration parser --enable-wm-rc-shmmap=yes|no enable mmapped shared file for parser --enable-wm-rc-shrink=yes|no enable shrinking memory when parser finished --enable-term=yes|no enable builtin terminal emulator --enable-term-devpts=yes|no enable Unix98 /dev/pts/* pseudo-ttys --enable-printk=yes|no enable logging messages in Messages window --enable-hw-tty=yes|no enable tty drivers --enable-hw-tty-linux=yes|no enable the Linux console driver with gpm mouse --enable-hw-tty-lrawkbd=yes|no enable the Linux console raw keyboard driver --enable-hw-tty-twterm=yes|no enable the twterm terminal driver --enable-hw-tty-termcap=yes|no enable the termcap/ncurses terminal driver --enable-hw-x11=yes|no enable the X11 driver --enable-hw-xft=yes|no enable the xft (X11 with truetype fonts) driver --enable-hw-twin=yes|no enable the twin nested driver --enable-hw-display=yes|no enable the twdisplay client driver --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-libtool-lock avoid locking (might break parallel builds) --enable-ltdl-install install libltdl Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, [default=aix]. --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-included-ltdl use the GNU ltdl sources included here --with-ltdl-include=DIR use the ltdl headers installed in DIR --with-ltdl-lib=DIR use the libltdl.la installed in DIR --with-x use the X Window System Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> LIBS libraries to pass to the linker, e.g. -l<library> CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> LT_SYS_LIBRARY_PATH User-defined run-time library search path. CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor CCAS assembler compiler command (defaults to CC) CCASFLAGS assembler compiler flags (defaults to CFLAGS) PKG_CONFIG path to pkg-config utility PKG_CONFIG_PATH directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path XMKMF Path to xmkmf, Makefile generator for X Window System XFT_CFLAGS C compiler flags for XFT, overriding pkg-config XFT_LIBS linker flags for XFT, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to <BUG-REPORT-ADDRESS>. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF twin configure 0.9.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case <limits.h> declares $2. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES # --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_cxx_check_type LINENO TYPE VAR INCLUDES # --------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_cxx_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_type # ac_fn_cxx_check_func LINENO FUNC VAR # ------------------------------------ # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_cxx_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case <limits.h> declares $2. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer <limits.h> to <assert.h> if __STDC__ is defined, since <limits.h> exists even on freestanding compilers. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_func # ac_fn_cxx_try_run LINENO # ------------------------ # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_cxx_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_run # ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES # --------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_cxx_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## --------------------------------- ## ## Report this to BUG-REPORT-ADDRESS ## ## --------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_header_mongrel # ac_fn_c_find_intX_t LINENO BITS VAR # ----------------------------------- # Finds a signed integer type with width BITS, setting cache variable VAR # accordingly. ac_fn_c_find_intX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5 $as_echo_n "checking for int$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in int$2_t 'int' 'long int' \ 'long long int' 'short int' 'signed char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default enum { N = $2 / 2 - 1 }; int main () { static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default enum { N = $2 / 2 - 1 }; int main () { static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1) < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else case $ac_type in #( int$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_intX_t # ac_fn_c_find_uintX_t LINENO BITS VAR # ------------------------------------ # Finds an unsigned integer type with width BITS, setting cache variable VAR # accordingly. ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 $as_echo_n "checking for uint$2_t... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : case $ac_type in #( uint$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if eval test \"x\$"$3"\" = x"no"; then : else break fi done fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include <stdio.h> #include <stdlib.h> int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 <conftest.val; ac_retval=0 else ac_retval=1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext rm -f conftest.val fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_compute_int # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## --------------------------------- ## ## Report this to BUG-REPORT-ADDRESS ## ## --------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES # ---------------------------------------------------- # Tries to find if the field MEMBER exists in type AGGR, after including # INCLUDES, setting cache variable VAR accordingly. ac_fn_c_check_member () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 $as_echo_n "checking for $2.$3... " >&6; } if eval \${$4+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int main () { static $2 ac_aggr; if (sizeof ac_aggr.$3) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$4=yes" else eval "$4=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$4 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_member cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by twin $as_me 0.9.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi as_fn_append ac_header_list " stdlib.h" as_fn_append ac_header_list " unistd.h" as_fn_append ac_header_list " sys/param.h" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers include/config.h" ac_aux_dir= for ac_dir in admin "$srcdir"/admin; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in admin \"$srcdir\"/admin" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. am__api_version='1.16' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='twin' VERSION='0.9.0' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html> # <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html> mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542> Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: <https://www.gnu.org/software/coreutils/>. If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 $as_echo "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE enable__alloc=no # Check whether --enable--dlopen was given. if test "${enable__dlopen+set}" = set; then : enableval=$enable__dlopen; else enable__dlopen=yes fi # Check whether --enable-socket was given. if test "${enable_socket+set}" = set; then : enableval=$enable_socket; else enable_socket=yes fi # Check whether --enable-socket_gz was given. if test "${enable_socket_gz+set}" = set; then : enableval=$enable_socket_gz; else enable_socket_gz=yes fi # Check whether --enable-socket_pthreads was given. if test "${enable_socket_pthreads+set}" = set; then : enableval=$enable_socket_pthreads; else enable_socket_pthreads=yes fi # Check whether --enable-socket_alien was given. if test "${enable_socket_alien+set}" = set; then : enableval=$enable_socket_alien; else enable_socket_alien=yes fi # Check whether --enable-wm was given. if test "${enable_wm+set}" = set; then : enableval=$enable_wm; else enable_wm=yes fi # Check whether --enable-wm_rc was given. if test "${enable_wm_rc+set}" = set; then : enableval=$enable_wm_rc; else enable_wm_rc=yes fi # Check whether --enable-wm_rc_shmmap was given. if test "${enable_wm_rc_shmmap+set}" = set; then : enableval=$enable_wm_rc_shmmap; else enable_wm_rc_shmmap=yes fi # Check whether --enable-wm_rc_shrink was given. if test "${enable_wm_rc_shrink+set}" = set; then : enableval=$enable_wm_rc_shrink; else enable_wm_rc_shrink=yes fi # Check whether --enable-term was given. if test "${enable_term+set}" = set; then : enableval=$enable_term; else enable_term=yes fi # Check whether --enable-term_devpts was given. if test "${enable_term_devpts+set}" = set; then : enableval=$enable_term_devpts; else enable_term_devpts=yes fi # Check whether --enable-printk was given. if test "${enable_printk+set}" = set; then : enableval=$enable_printk; else enable_printk=yes fi # Check whether --enable-hw-tty was given. if test "${enable_hw_tty+set}" = set; then : enableval=$enable_hw_tty; else enable_hw_tty=yes fi # Check whether --enable-hw-tty-linux was given. if test "${enable_hw_tty_linux+set}" = set; then : enableval=$enable_hw_tty_linux; else enable_hw_tty_linux=yes fi # Check whether --enable-hw-tty-lrawkbd was given. if test "${enable_hw_tty_lrawkbd+set}" = set; then : enableval=$enable_hw_tty_lrawkbd; else enable_hw_tty_lrawkbd=yes fi # Check whether --enable-hw-tty-twterm was given. if test "${enable_hw_tty_twterm+set}" = set; then : enableval=$enable_hw_tty_twterm; else enable_hw_tty_twterm=yes fi # Check whether --enable-hw-tty-termcap was given. if test "${enable_hw_tty_termcap+set}" = set; then : enableval=$enable_hw_tty_termcap; else enable_hw_tty_termcap=yes fi # Check whether --enable-hw-x11 was given. if test "${enable_hw_x11+set}" = set; then : enableval=$enable_hw_x11; else enable_hw_x11=yes fi # Check whether --enable-hw-xft was given. if test "${enable_hw_xft+set}" = set; then : enableval=$enable_hw_xft; else enable_hw_xft=yes fi # Check whether --enable-hw-twin was given. if test "${enable_hw_twin+set}" = set; then : enableval=$enable_hw_twin; else enable_hw_twin=yes fi # Check whether --enable-hw-display was given. if test "${enable_hw_display+set}" = set; then : enableval=$enable_hw_display; else enable_hw_display=yes fi enable_opt_shadows=yes enable_opt_blink=no enable_opt_cursor_always=no enable_opt_menu_hide=no enable_opt_menu_info=no enable_opt_menu_relax=yes enable_opt_screen_scroll=no case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.6' macro_revision='2.4.6' ltmain=$ac_aux_dir/ltmain.sh # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 $as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; } cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } case $?:`cat confinc.out 2>/dev/null` in #( '0:this is the am__doit target') : case $s in #( BSD) : am__include='.include' am__quote='"' ;; #( *) : am__include='include' am__quote='' ;; esac ;; #( *) : ;; esac if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 $as_echo "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdio.h> int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test no != "$with_gnu_ld" && break ;; *) test yes != "$with_gnu_ld" && break ;; esac fi done IFS=$lt_save_ifs else lt_cv_path_LD=$LD # Let the user override the test with a path. fi fi LD=$lt_cv_path_LD if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) lt_cv_prog_gnu_ld=yes ;; *) lt_cv_prog_gnu_ld=no ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n "$lt_cv_sys_max_cmd_len"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cr} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5 if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 $as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 $as_echo_n "checking for a working dd... " >&6; } if ${ac_cv_path_lt_DD+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in dd; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 $as_echo "$ac_cv_path_lt_DD" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 $as_echo_n "checking how to truncate binary pipes... " >&6; } if ${lt_cv_truncate_bin+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 $as_echo "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cr libconftest.a conftest.o" >&5 $AR cr libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[012][,.]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since # <limits.h> exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since # <limits.h> exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <float.h> int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <string.h> _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdlib.h> _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ctype.h> #include <stdlib.h> #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else pic_mode=default fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 $as_echo_n "checking which variant of shared library versioning to provide... " >&6; } # Check whether --with-aix-soname was given. if test "${with_aix_soname+set}" = set; then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else if ${lt_cv_with_aix_soname+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 $as_echo "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o func_cc_basename $compiler cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/${ac_tool_prefix}file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test no = "$hard_links"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach <jrb3@best.com> says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='$wl--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test no = "$ld_shlibs"; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' $wl-bernotok' allow_undefined_flag=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi link_all_deplibs=no else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' else archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; osf3*) if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='$wl-z,text' allow_undefined_flag='$wl-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib<name>.so # instead of lib<name>.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen=shl_load else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen=dlopen else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include <dlfcn.h> #endif #include <stdio.h> #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include <dlfcn.h> #endif #include <stdio.h> #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report what library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC ac_config_commands="$ac_config_commands libtool" # Only expand once: { $as_echo "$as_me:${as_lineno-$LINENO}: checking what extension is used for runtime loadable modules" >&5 $as_echo_n "checking what extension is used for runtime loadable modules... " >&6; } if ${libltdl_cv_shlibext+:} false; then : $as_echo_n "(cached) " >&6 else module=yes eval libltdl_cv_shlibext=$shrext_cmds module=no eval libltdl_cv_shrext=$shrext_cmds fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_shlibext" >&5 $as_echo "$libltdl_cv_shlibext" >&6; } if test -n "$libltdl_cv_shlibext"; then cat >>confdefs.h <<_ACEOF #define LT_MODULE_EXT "$libltdl_cv_shlibext" _ACEOF fi if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then cat >>confdefs.h <<_ACEOF #define LT_SHARED_EXT "$libltdl_cv_shrext" _ACEOF fi if test -n "$shared_archive_member_spec"; then cat >>confdefs.h <<_ACEOF #define LT_SHARED_LIB_MEMBER "($shared_archive_member_spec.o)" _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking what variable specifies run-time module search path" >&5 $as_echo_n "checking what variable specifies run-time module search path... " >&6; } if ${lt_cv_module_path_var+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_module_path_var=$shlibpath_var fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_module_path_var" >&5 $as_echo "$lt_cv_module_path_var" >&6; } if test -n "$lt_cv_module_path_var"; then cat >>confdefs.h <<_ACEOF #define LT_MODULE_PATH_VAR "$lt_cv_module_path_var" _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the default library search path" >&5 $as_echo_n "checking for the default library search path... " >&6; } if ${lt_cv_sys_dlsearch_path+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sys_dlsearch_path=$sys_lib_dlsearch_path_spec fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_dlsearch_path" >&5 $as_echo "$lt_cv_sys_dlsearch_path" >&6; } if test -n "$lt_cv_sys_dlsearch_path"; then sys_dlsearch_path= for dir in $lt_cv_sys_dlsearch_path; do if test -z "$sys_dlsearch_path"; then sys_dlsearch_path=$dir else sys_dlsearch_path=$sys_dlsearch_path$PATH_SEPARATOR$dir fi done cat >>confdefs.h <<_ACEOF #define LT_DLSEARCH_PATH "$sys_dlsearch_path" _ACEOF fi LT_DLLOADERS= ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu lt_dlload_save_LIBS=$LIBS LIBADD_DLOPEN= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 $as_echo_n "checking for library containing dlopen... " >&6; } if ${ac_cv_search_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF for ac_lib in '' dl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_dlopen=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_dlopen+:} false; then : break fi done if ${ac_cv_search_dlopen+:} false; then : else ac_cv_search_dlopen=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 $as_echo "$ac_cv_search_dlopen" >&6; } ac_res=$ac_cv_search_dlopen if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" $as_echo "#define HAVE_LIBDL 1" >>confdefs.h if test "$ac_cv_search_dlopen" != "none required"; then LIBADD_DLOPEN=-ldl fi libltdl_cv_lib_dl_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_DLFCN_H # include <dlfcn.h> #endif int main () { dlopen(0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : $as_echo "#define HAVE_LIBDL 1" >>confdefs.h libltdl_cv_func_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : $as_echo "#define HAVE_LIBDL 1" >>confdefs.h LIBADD_DLOPEN=-lsvld libltdl_cv_func_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la" fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen" then lt_save_LIBS=$LIBS LIBS="$LIBS $LIBADD_DLOPEN" for ac_func in dlerror do : ac_fn_c_check_func "$LINENO" "dlerror" "ac_cv_func_dlerror" if test "x$ac_cv_func_dlerror" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLERROR 1 _ACEOF fi done LIBS=$lt_save_LIBS fi LIBADD_SHL_LOAD= ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : $as_echo "#define HAVE_SHL_LOAD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : $as_echo "#define HAVE_SHL_LOAD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" LIBADD_SHL_LOAD=-ldld fi fi case $host_os in darwin[1567].*) # We only want this for pre-Mac OS X 10.4. ac_fn_c_check_func "$LINENO" "_dyld_func_lookup" "ac_cv_func__dyld_func_lookup" if test "x$ac_cv_func__dyld_func_lookup" = xyes; then : $as_echo "#define HAVE_DYLD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la" fi ;; beos*) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" ;; cygwin* | mingw* | pw32*) ac_fn_c_check_decl "$LINENO" "cygwin_conv_path" "ac_cv_have_decl_cygwin_conv_path" "#include <sys/cygwin.h> " if test "x$ac_cv_have_decl_cygwin_conv_path" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_CYGWIN_CONV_PATH $ac_have_decl _ACEOF LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : $as_echo "#define HAVE_DLD 1" >>confdefs.h LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la" fi LT_DLPREOPEN= if test -n "$LT_DLLOADERS" then for lt_loader in $LT_DLLOADERS; do LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " done $as_echo "#define HAVE_LIBDLLOADER 1" >>confdefs.h fi LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" LIBS=$lt_dlload_save_LIBS ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _ prefix in compiled symbols" >&5 $as_echo_n "checking for _ prefix in compiled symbols... " >&6; } if ${lt_cv_sys_symbol_underscore+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sys_symbol_underscore=no cat > conftest.$ac_ext <<_LT_EOF void nm_test_func(){} int main(){nm_test_func;return 0;} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. ac_nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist\""; } >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$ac_nlist"; then # See whether the symbols have a leading underscore. if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then lt_cv_sys_symbol_underscore=yes else if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then : else echo "configure: cannot find nm_test_func in $ac_nlist" >&5 fi fi else echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "configure: failed program was:" >&5 cat conftest.c >&5 fi rm -rf conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_symbol_underscore" >&5 $as_echo "$lt_cv_sys_symbol_underscore" >&6; } sys_symbol_underscore=$lt_cv_sys_symbol_underscore if test yes = "$lt_cv_sys_symbol_underscore"; then if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we have to add an underscore for dlsym" >&5 $as_echo_n "checking whether we have to add an underscore for dlsym... " >&6; } if ${libltdl_cv_need_uscore+:} false; then : $as_echo_n "(cached) " >&6 else libltdl_cv_need_uscore=unknown dlsym_uscore_save_LIBS=$LIBS LIBS="$LIBS $LIBADD_DLOPEN" libname=conftmod # stay within 8.3 filename limits! cat >$libname.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } _LT_EOF # ltfn_module_cmds module_cmds # Execute tilde-delimited MODULE_CMDS with environment primed for # $module_cmds or $archive_cmds type content. ltfn_module_cmds () {( # subshell avoids polluting parent global environment module_cmds_save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$module_cmds_save_ifs libobjs=$libname.$ac_objext; lib=$libname$libltdl_cv_shlibext rpath=/not-exists; soname=$libname$libltdl_cv_shlibext; output_objdir=. major=; versuffix=; verstring=; deplibs= ECHO=echo; wl=$lt_prog_compiler_wl; allow_undefined_flag= eval $cmd done IFS=$module_cmds_save_ifs )} # Compile a loadable module using libtool macro expansion results. $CC $pic_flag -c $libname.$ac_ext ltfn_module_cmds "${module_cmds:-$archive_cmds}" # Try to fetch fnord with dlsym(). libltdl_dlunknown=0; libltdl_dlnouscore=1; libltdl_dluscore=2 cat >conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include <dlfcn.h> #endif #include <stdio.h> #ifndef RTLD_GLOBAL # ifdef DL_GLOBAL # define RTLD_GLOBAL DL_GLOBAL # else # define RTLD_GLOBAL 0 # endif #endif #ifndef RTLD_NOW # ifdef DL_NOW # define RTLD_NOW DL_NOW # else # define RTLD_NOW 0 # endif #endif int main () { void *handle = dlopen ("`pwd`/$libname$libltdl_cv_shlibext", RTLD_GLOBAL|RTLD_NOW); int status = $libltdl_dlunknown; if (handle) { if (dlsym (handle, "fnord")) status = $libltdl_dlnouscore; else { if (dlsym (handle, "_fnord")) status = $libltdl_dluscore; else puts (dlerror ()); } dlclose (handle); } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null libltdl_status=$? case x$libltdl_status in x$libltdl_dlnouscore) libltdl_cv_need_uscore=no ;; x$libltdl_dluscore) libltdl_cv_need_uscore=yes ;; x*) libltdl_cv_need_uscore=unknown ;; esac fi rm -rf conftest* $libname* LIBS=$dlsym_uscore_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_need_uscore" >&5 $as_echo "$libltdl_cv_need_uscore" >&6; } fi fi if test yes = "$libltdl_cv_need_uscore"; then $as_echo "#define NEED_USCORE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether deplibs are loaded by dlopen" >&5 $as_echo_n "checking whether deplibs are loaded by dlopen... " >&6; } if ${lt_cv_sys_dlopen_deplibs+:} false; then : $as_echo_n "(cached) " >&6 else # PORTME does your system automatically load deplibs for dlopen? # or its logical equivalent (e.g. shl_load for HP-UX < 11) # For now, we just catch OSes we know something about -- in the # future, we'll try test this programmatically. lt_cv_sys_dlopen_deplibs=unknown case $host_os in aix3*|aix4.1.*|aix4.2.*) # Unknown whether this is true for these versions of AIX, but # we want this 'case' here to explicitly catch those versions. lt_cv_sys_dlopen_deplibs=unknown ;; aix[4-9]*) lt_cv_sys_dlopen_deplibs=yes ;; amigaos*) case $host_cpu in powerpc) lt_cv_sys_dlopen_deplibs=no ;; esac ;; bitrig*) lt_cv_sys_dlopen_deplibs=yes ;; darwin*) # Assuming the user has installed a libdl from somewhere, this is true # If you are looking for one http://www.opendarwin.org/projects/dlcompat lt_cv_sys_dlopen_deplibs=yes ;; freebsd* | dragonfly*) lt_cv_sys_dlopen_deplibs=yes ;; gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) # GNU and its variants, using gnu ld.so (Glibc) lt_cv_sys_dlopen_deplibs=yes ;; hpux10*|hpux11*) lt_cv_sys_dlopen_deplibs=yes ;; interix*) lt_cv_sys_dlopen_deplibs=yes ;; irix[12345]*|irix6.[01]*) # Catch all versions of IRIX before 6.2, and indicate that we don't # know how it worked for any of those versions. lt_cv_sys_dlopen_deplibs=unknown ;; irix*) # The case above catches anything before 6.2, and it's known that # at 6.2 and later dlopen does load deplibs. lt_cv_sys_dlopen_deplibs=yes ;; netbsd* | netbsdelf*-gnu) lt_cv_sys_dlopen_deplibs=yes ;; openbsd*) lt_cv_sys_dlopen_deplibs=yes ;; osf[1234]*) # dlopen did load deplibs (at least at 4.x), but until the 5.x series, # it did *not* use an RPATH in a shared library to find objects the # library depends on, so we explicitly say 'no'. lt_cv_sys_dlopen_deplibs=no ;; osf5.0|osf5.0a|osf5.1) # dlopen *does* load deplibs and with the right loader patch applied # it even uses RPATH in a shared library to search for shared objects # that the library depends on, but there's no easy way to know if that # patch is installed. Since this is the case, all we can really # say is unknown -- it depends on the patch being installed. If # it is, this changes to 'yes'. Without it, it would be 'no'. lt_cv_sys_dlopen_deplibs=unknown ;; osf*) # the two cases above should catch all versions of osf <= 5.1. Read # the comments above for what we know about them. # At > 5.1, deplibs are loaded *and* any RPATH in a shared library # is used to find them so we can finally say 'yes'. lt_cv_sys_dlopen_deplibs=yes ;; qnx*) lt_cv_sys_dlopen_deplibs=yes ;; solaris*) lt_cv_sys_dlopen_deplibs=yes ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) libltdl_cv_sys_dlopen_deplibs=yes ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_dlopen_deplibs" >&5 $as_echo "$lt_cv_sys_dlopen_deplibs" >&6; } if test yes != "$lt_cv_sys_dlopen_deplibs"; then $as_echo "#define LTDL_DLOPEN_DEPLIBS 1" >>confdefs.h fi for ac_header in argz.h do : ac_fn_c_check_header_compile "$LINENO" "argz.h" "ac_cv_header_argz_h" "$ac_includes_default " if test "x$ac_cv_header_argz_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ARGZ_H 1 _ACEOF fi done ac_fn_c_check_type "$LINENO" "error_t" "ac_cv_type_error_t" "#if defined(HAVE_ARGZ_H) # include <argz.h> #endif " if test "x$ac_cv_type_error_t" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ERROR_T 1 _ACEOF else $as_echo "#define error_t int" >>confdefs.h $as_echo "#define __error_t_defined 1" >>confdefs.h fi LT_ARGZ_H= for ac_func in argz_add argz_append argz_count argz_create_sep argz_insert \ argz_next argz_stringify do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else LT_ARGZ_H=lt__argz.h; _LT_LIBOBJS="$_LT_LIBOBJS lt__argz.$ac_objext" fi done if test -z "$LT_ARGZ_H"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking if argz actually works" >&5 $as_echo_n "checking if argz actually works... " >&6; } if ${lt_cv_sys_argz_works+:} false; then : $as_echo_n "(cached) " >&6 else case $host_os in #( *cygwin*) lt_cv_sys_argz_works=no if test no != "$cross_compiling"; then lt_cv_sys_argz_works="guessing no" else lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' save_IFS=$IFS IFS=-. set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` IFS=$save_IFS lt_os_major=${2-0} lt_os_minor=${3-0} lt_os_micro=${4-0} if test 1 -lt "$lt_os_major" \ || { test 1 -eq "$lt_os_major" \ && { test 5 -lt "$lt_os_minor" \ || { test 5 -eq "$lt_os_minor" \ && test 24 -lt "$lt_os_micro"; }; }; }; then lt_cv_sys_argz_works=yes fi fi ;; #( *) lt_cv_sys_argz_works=yes ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_argz_works" >&5 $as_echo "$lt_cv_sys_argz_works" >&6; } if test yes = "$lt_cv_sys_argz_works"; then : $as_echo "#define HAVE_WORKING_ARGZ 1" >>confdefs.h else LT_ARGZ_H=lt__argz.h _LT_LIBOBJS="$_LT_LIBOBJS lt__argz.$ac_objext" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether libtool supports -dlopen/-dlpreopen" >&5 $as_echo_n "checking whether libtool supports -dlopen/-dlpreopen... " >&6; } if ${libltdl_cv_preloaded_symbols+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$lt_cv_sys_global_symbol_pipe"; then libltdl_cv_preloaded_symbols=yes else libltdl_cv_preloaded_symbols=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libltdl_cv_preloaded_symbols" >&5 $as_echo "$libltdl_cv_preloaded_symbols" >&6; } if test yes = "$libltdl_cv_preloaded_symbols"; then $as_echo "#define HAVE_PRELOADED_SYMBOLS 1" >>confdefs.h fi # Set options # Check whether --with-included_ltdl was given. if test "${with_included_ltdl+set}" = set; then : withval=$with_included_ltdl; fi if test yes != "$with_included_ltdl"; then # We are not being forced to use the included libltdl sources, so # decide whether there is a useful installed version we can use. ac_fn_c_check_header_compile "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default " if test "x$ac_cv_header_ltdl_h" = xyes; then : ac_fn_c_check_decl "$LINENO" "lt_dlinterface_register" "ac_cv_have_decl_lt_dlinterface_register" "$ac_includes_default #include <ltdl.h> " if test "x$ac_cv_have_decl_lt_dlinterface_register" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lt_dladvise_preload in -lltdl" >&5 $as_echo_n "checking for lt_dladvise_preload in -lltdl... " >&6; } if ${ac_cv_lib_ltdl_lt_dladvise_preload+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lltdl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char lt_dladvise_preload (); int main () { return lt_dladvise_preload (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ltdl_lt_dladvise_preload=yes else ac_cv_lib_ltdl_lt_dladvise_preload=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ltdl_lt_dladvise_preload" >&5 $as_echo "$ac_cv_lib_ltdl_lt_dladvise_preload" >&6; } if test "x$ac_cv_lib_ltdl_lt_dladvise_preload" = xyes; then : with_included_ltdl=no else with_included_ltdl=yes fi else with_included_ltdl=yes fi else with_included_ltdl=yes fi fi # Check whether --with-ltdl_include was given. if test "${with_ltdl_include+set}" = set; then : withval=$with_ltdl_include; fi if test -n "$with_ltdl_include"; then if test -f "$with_ltdl_include/ltdl.h"; then : else as_fn_error $? "invalid ltdl include directory: '$with_ltdl_include'" "$LINENO" 5 fi else with_ltdl_include=no fi # Check whether --with-ltdl_lib was given. if test "${with_ltdl_lib+set}" = set; then : withval=$with_ltdl_lib; fi if test -n "$with_ltdl_lib"; then if test -f "$with_ltdl_lib/libltdl.la"; then : else as_fn_error $? "invalid ltdl library directory: '$with_ltdl_lib'" "$LINENO" 5 fi else with_ltdl_lib=no fi case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in ,yes,no,no,) case $enable_ltdl_convenience in no) as_fn_error $? "this package needs a convenience libltdl" "$LINENO" 5 ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='$(top_build_prefix)'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdlc.la" LTDLDEPS=$LIBLTDL LTDLINCL='-I$(top_srcdir)'"${lt_ltdl_dir+/$lt_ltdl_dir}" # For backwards non-gettext consistent compatibility... INCLTDL=$LTDLINCL ;; ,no,no,no,) # If the included ltdl is not to be used, then use the # preinstalled libltdl we found. $as_echo "#define HAVE_LTDL 1" >>confdefs.h LIBLTDL=-lltdl LTDLDEPS= LTDLINCL= ;; ,no*,no,*) as_fn_error $? "'--with-ltdl-include' and '--with-ltdl-lib' options must be used together" "$LINENO" 5 ;; *) with_included_ltdl=no LIBLTDL="-L$with_ltdl_lib -lltdl" LTDLDEPS= LTDLINCL=-I$with_ltdl_include ;; esac INCLTDL=$LTDLINCL # Report our decision... { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find libltdl headers" >&5 $as_echo_n "checking where to find libltdl headers... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LTDLINCL" >&5 $as_echo "$LTDLINCL" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find libltdl library" >&5 $as_echo_n "checking where to find libltdl library... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBLTDL" >&5 $as_echo "$LIBLTDL" >&6; } # Check whether --enable-ltdl-install was given. if test "${enable_ltdl_install+set}" = set; then : enableval=$enable_ltdl_install; fi case ,$enable_ltdl_install,$enable_ltdl_convenience in *yes*) ;; *) enable_ltdl_convenience=yes ;; esac if test no != "${enable_ltdl_install-no}"; then INSTALL_LTDL_TRUE= INSTALL_LTDL_FALSE='#' else INSTALL_LTDL_TRUE='#' INSTALL_LTDL_FALSE= fi if test no != "${enable_ltdl_convenience-no}"; then CONVENIENCE_LTDL_TRUE= CONVENIENCE_LTDL_FALSE='#' else CONVENIENCE_LTDL_TRUE='#' CONVENIENCE_LTDL_FALSE= fi # In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS # the user used. This is so that ltdl.h can pick up the parent projects # config.h file, The first file in AC_CONFIG_HEADERS must contain the # definitions required by ltdl.c. # FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). for ac_header in unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in closedir opendir readdir do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else _LT_LIBOBJS="$_LT_LIBOBJS lt__dirent.$ac_objext" fi done for ac_func in strlcat strlcpy do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else _LT_LIBOBJS="$_LT_LIBOBJS lt__strl.$ac_objext" fi done cat >>confdefs.h <<_ACEOF #define LT_LIBEXT "$libext" _ACEOF name= eval "lt_libprefix=\"$libname_spec\"" cat >>confdefs.h <<_ACEOF #define LT_LIBPREFIX "$lt_libprefix" _ACEOF name=ltdl eval "LTDLOPEN=\"$libname_spec\"" # Only expand once: # Checks for programs. ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi func_stripname_cnf () { case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;; esac } # func_stripname_cnf if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since # <limits.h> exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since # <limits.h> exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include <limits.h> #else # include <assert.h> #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <ac_nonexistent.h> _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds reload_flag_CXX=$reload_flag reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC func_cc_basename $compiler cc_basename=$func_cc_basename_result if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test no != "$with_gnu_ld" && break ;; *) test yes != "$with_gnu_ld" && break ;; esac fi done IFS=$lt_save_ifs else lt_cv_path_LD=$LD # Let the user override the test with a path. fi fi LD=$lt_cv_path_LD if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) lt_cv_prog_gnu_ld=yes ;; *) lt_cv_prog_gnu_ld=no ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test yes = "$with_gnu_ld"; then archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no ;; esac if test yes = "$GXX"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec_CXX='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. no_undefined_flag_CXX='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' $wl-bernotok' allow_undefined_flag_CXX=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' fi archive_cmds_need_lc_CXX=yes archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach <jrb3@best.com> says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=yes file_list_spec_CXX='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' export_dynamic_flag_spec_CXX='$wl--export-all-symbols' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_CXX='' fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" if test yes != "$lt_cv_apple_cc_single_mod"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi else ld_shlibs_CXX=no fi ;; os2*) hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_minus_L_CXX=yes allow_undefined_flag_CXX=unsupported shrext_cmds=.dll archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes_CXX=yes ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; hpux9*) hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='$wl-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' export_dynamic_flag_spec_CXX='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='$wl-E' whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then no_undefined_flag_CXX=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='$wl-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='$wl-z,text' allow_undefined_flag_CXX='$wl-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='$wl-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test no = "$ld_shlibs_CXX" && can_build_shared=no GCC_CXX=$GXX LD_CXX=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX=$prev$p else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX=$prev$p else postdeps_CXX="${postdeps_CXX} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$predep_objects_CXX"; then predep_objects_CXX=$p else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX=$p else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi lt_prog_compiler_pic_CXX='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static_CXX='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test no = "$hard_links"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ;; esac ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test no = "$ld_shlibs_CXX" && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_CXX=no else lt_cv_archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib<name>.so # instead of lib<name>.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec_CXX='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test yes = "$hardcode_automatic_CXX"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct_CXX" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" && test no != "$hardcode_minus_L_CXX"; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test relink = "$hardcode_action_CXX" || test yes = "$inherit_rpath_CXX"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test yes != "$_lt_caught_CXX_error" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # By default we simply use the C compiler to build assembly code. test "${CCAS+set}" = set || CCAS=$CC test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS depcc="$CCAS" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CCAS_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CCAS_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CCAS_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CCAS_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5 $as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; } CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then am__fastdepCCAS_TRUE= am__fastdepCCAS_FALSE='#' else am__fastdepCCAS_TRUE='#' am__fastdepCCAS_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.25 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi PACKAGE_VERSION_MAJOR="`echo \"$PACKAGE_VERSION\" | $SED 's|^\([0-9]*\)\..*|\1|g'`" PACKAGE_VERSION_MINOR="`echo \"$PACKAGE_VERSION\" | $SED 's|^\([0-9]*\)\.\([0-9]*\)\..*|\2|g'`" PACKAGE_VERSION_PATCH="`echo \"$PACKAGE_VERSION\" | $SED 's|^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*|\3|g'`" PACKAGE_VERSION_EXTRA="`echo \"$PACKAGE_VERSION\" | $SED 's|^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\(.*\)|\4|g'`" # Checks for header files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 $as_echo_n "checking for X... " >&6; } # Check whether --with-x was given. if test "${with_x+set}" = set; then : withval=$with_x; fi # $have_x is `yes', `no', `disabled', or empty when we do not yet know. if test "x$with_x" = xno; then # The user explicitly disabled X. have_x=disabled else case $x_includes,$x_libraries in #( *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : $as_echo_n "(cached) " >&6 else # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no rm -f -r conftest.dir if mkdir conftest.dir; then cd conftest.dir cat >Imakefile <<'_ACEOF' incroot: @echo incroot='${INCROOT}' usrlibdir: @echo usrlibdir='${USRLIBDIR}' libdir: @echo libdir='${LIBDIR}' _ACEOF if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. for ac_var in incroot usrlibdir libdir; do eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" done # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. for ac_extension in a so sl dylib la dll; do if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && test -f "$ac_im_libdir/libX11.$ac_extension"; then ac_im_usrlibdir=$ac_im_libdir; break fi done # Screen out bogus values from the imake configuration. They are # bogus both because they are the default anyway, and because # using them would break gcc on systems where it needs fixed includes. case $ac_im_incroot in /usr/include) ac_x_includes= ;; *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; esac case $ac_im_usrlibdir in /usr/lib | /usr/lib64 | /lib | /lib64) ;; *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; esac fi cd .. rm -f -r conftest.dir fi # Standard set of common directories for X headers. # Check X11 before X11Rn because it is often a symlink to the current release. ac_x_header_dirs=' /usr/X11/include /usr/X11R7/include /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R7 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R7/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /usr/local/include/X11R7 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 /usr/X386/include /usr/x386/include /usr/XFree86/include/X11 /usr/include /usr/local/include /usr/unsupported/include /usr/athena/include /usr/local/x11r5/include /usr/lpp/Xamples/include /usr/openwin/include /usr/openwin/share/include' if test "$ac_x_includes" = no; then # Guess where to find include files, by looking for Xlib.h. # First, try using that file with no special directory specified. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <X11/Xlib.h> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # We can compile using X headers with no special include directory. ac_x_includes= else for ac_dir in $ac_x_header_dirs; do if test -r "$ac_dir/X11/Xlib.h"; then ac_x_includes=$ac_dir break fi done fi rm -f conftest.err conftest.i conftest.$ac_ext fi # $ac_x_includes = no if test "$ac_x_libraries" = no; then # Check for the libraries. # See if we find them without any special options. # Don't add to $LIBS permanently. ac_save_LIBS=$LIBS LIBS="-lX11 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <X11/Xlib.h> int main () { XrmInitialize () ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else LIBS=$ac_save_LIBS for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` do # Don't even attempt the hair of trying to link an X program! for ac_extension in a so sl dylib la dll; do if test -r "$ac_dir/libX11.$ac_extension"; then ac_x_libraries=$ac_dir break 2 fi done done fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no case $ac_x_includes,$ac_x_libraries in #( no,* | *,no | *\'*) # Didn't find X, or a directory has "'" in its name. ac_cv_have_x="have_x=no";; #( *) # Record where we found X for the cache. ac_cv_have_x="have_x=yes\ ac_x_includes='$ac_x_includes'\ ac_x_libraries='$ac_x_libraries'" esac fi ;; #( *) have_x=yes;; esac eval "$ac_cv_have_x" fi # $with_x != no if test "$have_x" != yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 $as_echo "$have_x" >&6; } no_x=yes else # If each of the values was on the command line, it overrides each guess. test "x$x_includes" = xNONE && x_includes=$ac_x_includes test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries # Update the cache value to reflect the command line values. ac_cv_have_x="have_x=yes\ ac_x_includes='$x_includes'\ ac_x_libraries='$x_libraries'" { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 $as_echo "libraries $x_libraries, headers $x_includes" >&6; } fi if test "$have_x" = yes; then if test x"$ac_x_includes" != x; then X11_CPPFLAGS="-I$ac_x_includes" fi if test x"$ac_x_libraries" != x; then X11_LDFLAGS="-L$ac_x_libraries" fi LIBX11="-lX11" fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_fn_cxx_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <alloca.h> int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include <malloc.h> # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include <alloca.h> # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_cxx_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } if ${ac_cv_header_time+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/time.h> #include <time.h> int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_header_time=yes else ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 $as_echo "$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then $as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 $as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } if ${ac_cv_header_sys_wait_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/wait.h> #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif int main () { int s; wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_header_sys_wait_h=yes else ac_cv_header_sys_wait_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 $as_echo "$ac_cv_header_sys_wait_h" >&6; } if test $ac_cv_header_sys_wait_h = yes; then $as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h fi for ac_header in \ arpa/inet.h asm/page.h crypt.h dirent.h dlfcn.h fcntl.h grp.h inttypes.h libintl.h limits.h \ linux/kd.h linux/keyboard.h linux/vt.h locale.h machine/param.h malloc.h memory.h \ ncurses.h ncurses/ncurses.h ncurses/termcap.h ndir.h netdb.h netinet/in.h pthread.h pwd.h \ shadow.h signal.h stdarg.h stddef.h stdint.h stdlib.h string.h \ sys/dir.h sys/filio.h sys/ioctl.h sys/mman.h sys/ndir.h sys/param.h sys/resource.h \ sys/select.h sys/socket.h sys/stat.h sys/timeb.h sys/ttydefaults.h sys/un.h sys/utsname.h \ termcap.h termio.h termios.h unistd.h zlib.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_cxx_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if ${ac_cv_struct_tm+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <time.h> int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_struct_tm=time.h else ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 $as_echo "$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then $as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h fi # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } if ${ac_cv_c_bigendian+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_bigendian=unknown # See if we're dealing with a universal compiler. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : # Check for potential -arch flags. It is not universal unless # there are at least two -arch flags with different values. ac_arch= ac_prev= for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do if test -n "$ac_prev"; then case $ac_word in i?86 | x86_64 | ppc | ppc64) if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then ac_arch=$ac_word else ac_cv_c_bigendian=universal break fi ;; esac ac_prev= elif test "x$ac_word" = "x-arch"; then ac_prev=arch fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_c_bigendian = unknown; then # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/param.h> int main () { #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ && LITTLE_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <sys/param.h> int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> int main () { #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : # It does; now see whether it defined to _BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <limits.h> int main () { #ifndef _BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_c_bigendian=yes else ac_cv_c_bigendian=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi if test $ac_cv_c_bigendian = unknown; then # Compile a test program. if test "$cross_compiling" = yes; then : # Try to guess by grepping values from an object file. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ short int ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; short int ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; int use_ascii (int i) { return ascii_mm[i] + ascii_ii[i]; } short int ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; short int ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; int use_ebcdic (int i) { return ebcdic_mm[i] + ebcdic_ii[i]; } extern int foo; int main () { return use_ascii (foo) == use_ebcdic (foo); ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then ac_cv_c_bigendian=yes fi if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then if test "$ac_cv_c_bigendian" = unknown; then ac_cv_c_bigendian=no else # finding both strings is unlikely to happen, but who knows? ac_cv_c_bigendian=unknown fi fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Are we little or big endian? From Harbison&Steele. */ union { long int l; char c[sizeof (long int)]; } u; u.l = 1; return u.c[sizeof (long int) - 1] == 1; ; return 0; } _ACEOF if ac_fn_cxx_try_run "$LINENO"; then : ac_cv_c_bigendian=no else ac_cv_c_bigendian=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 $as_echo "$ac_cv_c_bigendian" >&6; } case $ac_cv_c_bigendian in #( yes) $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h ;; #( no) ;; #( universal) $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h ;; #( *) as_fn_error $? "unknown endianness presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for volatile" >&5 $as_echo_n "checking for volatile... " >&6; } if ${ac_cv_c_volatile+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #undef volatile int deref(int volatile * i) { return *i; } int main () { volatile int a = 3; int b = deref(&a); ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_c_volatile=yes else ac_cv_c_volatile=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 $as_echo "$ac_cv_c_volatile" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc-compatible 'static inline'" >&5 $as_echo_n "checking for gcc-compatible 'static inline'... " >&6; } if ${ac_cv_c_static_inline+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #undef inline static inline int ret0(void) { return 0; } int main () { int a = ret0(); ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_c_static_inline=yes else ac_cv_c_static_inline=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_static_inline" >&5 $as_echo "$ac_cv_c_static_inline" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc-compatible 'attribute((const))'" >&5 $as_echo_n "checking for gcc-compatible 'attribute((const))'... " >&6; } if ${ac_cv_c_attribute_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #undef __attribute__ static int ret0(void) __attribute__((const)); static int ret0(void) { return 0; } int main () { int a = ret0(); ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_c_attribute_const='__attribute__((const))' else ac_cv_c_attribute_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_attribute_const" >&5 $as_echo "$ac_cv_c_attribute_const" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc-compatible 'attribute((packed))'" >&5 $as_echo_n "checking for gcc-compatible 'attribute((packed))'... " >&6; } if ${ac_cv_c_attribute_packed+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #undef __attribute__ struct sp { char a; int b; } __attribute__((packed)); int main () { struct sp s[2]; char compare_sizeof_packed_struct[ sizeof(struct sp) == sizeof(char) + sizeof(int) ? 1 : -1 ]; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_c_attribute_packed='__attribute__((packed))' else ac_cv_c_attribute_packed=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_attribute_packed" >&5 $as_echo "$ac_cv_c_attribute_packed" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc-compatible 'attribute((aligned(1)))'" >&5 $as_echo_n "checking for gcc-compatible 'attribute((aligned(1)))'... " >&6; } if ${ac_cv_c_attribute_aligned_1+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #undef __attribute__ char buf[2 * sizeof(int)]; int * __attribute__((aligned(1))) p = buf + 1; *(int * __attribute__((aligned(1))))p = 0; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_c_attribute_aligned_1='__attribute__((aligned(1)))' else ac_cv_c_attribute_aligned_1=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_attribute_aligned_1" >&5 $as_echo "$ac_cv_c_attribute_aligned_1" >&6; } ################################################################################ # C++ flags '-g -O2' are already tested by AC_PROG_CC # C++ flags '-p -pg' are incompatible with -fomit-frame-pointer initial_CXXFLAGS="$CXXFLAGS" for try_flag in -std=c++98 -fomit-frame-pointer -fno-strict-aliasing -fno-rtti -fno-exceptions \ -pipe -Wall -Wshadow -Wno-uninitialized -Wno-unused -Wundef \ -Wcast-qual -Wcast-align -Wpointer-arith -Wwrite-strings \ # -Wstrict-prototypes -Wbad-function-cast -Wold-style-declaration -Wold-style-definition # -Wsign-compare do save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS $try_flag" try_flag_id="`echo \"$try_flag\" | tr =+- _x_`" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler flag $try_flag" >&5 $as_echo_n "checking for C++ compiler flag $try_flag... " >&6; } if eval \${ac_cv_cflag$try_flag_id+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int ret0(void) { return 0; } int main () { int a = ret0(); ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : eval "ac_cv_cflag$try_flag_id=yes" else eval "ac_cv_cflag$try_flag_id=no" CXXFLAGS="$save_CXXFLAGS" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$ac_cv_cflag$try_flag_id { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } done custom_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$initial_CXXFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ################################################################################ # on Mac OS X El Capitan, libtool ignores -export-dynamic # so pass the linker flag -Wl,-export_dynamic if supported # if echo "$ac_cv_host" | $GREP darwin >/dev/null 2>&1 ; then initial_LDFLAGS="$LDFLAGS" LDFLAGS= for try_flag in -Wl,-export_dynamic do save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $try_flag" try_flag_id="`echo \"$try_flag\" | tr ,- __`" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler flag $try_flag" >&5 $as_echo_n "checking for compiler flag $try_flag... " >&6; } if eval \${ac_cv_ldflag$try_flag_id+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int ret0(void) { return 0; } int main () { int a = ret0(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "ac_cv_ldflag$try_flag_id=yes" else eval "ac_cv_ldflag$try_flag_id=no" LDFLAGS="$save_LDFLAGS" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$ac_cv_ldflag$try_flag_id { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } done LDFLAGS_BIN_EXPORT_DYNAMIC="$LDFLAGS" LDFLAGS="$initial_LDFLAGS" fi ################################################################################ ac_fn_c_check_type "$LINENO" "gid_t" "ac_cv_type_gid_t" "$ac_includes_default" if test "x$ac_cv_type_gid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define gid_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default" if test "x$ac_cv_type_off_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define off_t long int _ACEOF fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 $as_echo_n "checking return type of signal handlers... " >&6; } if ${ac_cv_type_signal+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <signal.h> int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_type_signal=int else ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 $as_echo "$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "$ac_includes_default" if test "x$ac_cv_type_socklen_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define socklen_t int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 $as_echo_n "checking for uid_t in sys/types.h... " >&6; } if ${ac_cv_type_uid_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "uid_t" >/dev/null 2>&1; then : ac_cv_type_uid_t=yes else ac_cv_type_uid_t=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 $as_echo "$ac_cv_type_uid_t" >&6; } if test $ac_cv_type_uid_t = no; then $as_echo "#define uid_t int" >>confdefs.h $as_echo "#define gid_t int" >>confdefs.h fi ac_fn_c_find_intX_t "$LINENO" "8" "ac_cv_c_int8_t" case $ac_cv_c_int8_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int8_t $ac_cv_c_int8_t _ACEOF ;; esac ac_fn_c_find_intX_t "$LINENO" "16" "ac_cv_c_int16_t" case $ac_cv_c_int16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int16_t $ac_cv_c_int16_t _ACEOF ;; esac ac_fn_c_find_intX_t "$LINENO" "32" "ac_cv_c_int32_t" case $ac_cv_c_int32_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define int32_t $ac_cv_c_int32_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" case $ac_cv_c_uint8_t in #( no|yes) ;; #( *) $as_echo "#define _UINT8_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint8_t $ac_cv_c_uint8_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" case $ac_cv_c_uint16_t in #( no|yes) ;; #( *) cat >>confdefs.h <<_ACEOF #define uint16_t $ac_cv_c_uint16_t _ACEOF ;; esac ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" case $ac_cv_c_uint32_t in #( no|yes) ;; #( *) $as_echo "#define _UINT32_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define uint32_t $ac_cv_c_uint32_t _ACEOF ;; esac # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 $as_echo_n "checking size of char... " >&6; } if ${ac_cv_sizeof_char+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : else if test "$ac_cv_type_char" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (char) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_char=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 $as_echo "$ac_cv_sizeof_char" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_CHAR $ac_cv_sizeof_char _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 $as_echo_n "checking size of short... " >&6; } if ${ac_cv_sizeof_short+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : else if test "$ac_cv_type_short" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (short) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_short=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 $as_echo "$ac_cv_sizeof_short" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_SHORT $ac_cv_sizeof_short _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 $as_echo_n "checking size of int... " >&6; } if ${ac_cv_sizeof_int+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : else if test "$ac_cv_type_int" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 $as_echo "$ac_cv_sizeof_int" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_INT $ac_cv_sizeof_int _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 $as_echo_n "checking size of long... " >&6; } if ${ac_cv_sizeof_long+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : else if test "$ac_cv_type_long" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 $as_echo "$ac_cv_sizeof_long" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_LONG $ac_cv_sizeof_long _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 $as_echo_n "checking size of size_t... " >&6; } if ${ac_cv_sizeof_size_t+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then : else if test "$ac_cv_type_size_t" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (size_t) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_size_t=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 $as_echo "$ac_cv_sizeof_size_t" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_SIZE_T $ac_cv_sizeof_size_t _ACEOF # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 $as_echo_n "checking size of void *... " >&6; } if ${ac_cv_sizeof_void_p+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : else if test "$ac_cv_type_void_p" = yes; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void *) See \`config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_void_p=0 fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 $as_echo "$ac_cv_sizeof_void_p" >&6; } cat >>confdefs.h <<_ACEOF #define SIZEOF_VOID_P $ac_cv_sizeof_void_p _ACEOF # Checks for functions and libraries. for ac_header in unistd.h do : ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" if test "x$ac_cv_header_unistd_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNISTD_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5 $as_echo_n "checking for working chown... " >&6; } if ${ac_cv_func_chown_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_chown_works=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #include <fcntl.h> int main () { char *f = "conftest.chown"; struct stat before, after; if (creat (f, 0600) < 0) return 1; if (stat (f, &before) < 0) return 1; if (chown (f, (uid_t) -1, (gid_t) -1) == -1) return 1; if (stat (f, &after) < 0) return 1; return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_chown_works=yes else ac_cv_func_chown_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.chown fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5 $as_echo "$ac_cv_func_chown_works" >&6; } if test $ac_cv_func_chown_works = yes; then $as_echo "#define HAVE_CHOWN 1" >>confdefs.h fi for ac_header in vfork.h do : ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" if test "x$ac_cv_header_vfork_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VFORK_H 1 _ACEOF fi done for ac_func in fork vfork do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "x$ac_cv_func_fork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 $as_echo_n "checking for working fork... " >&6; } if ${ac_cv_func_fork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_fork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* By Ruediger Kuhlmann. */ return fork () < 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_fork_works=yes else ac_cv_func_fork_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 $as_echo "$ac_cv_func_fork_works" >&6; } else ac_cv_func_fork_works=$ac_cv_func_fork fi if test "x$ac_cv_func_fork_works" = xcross; then case $host in *-*-amigaos* | *-*-msdosdjgpp*) # Override, as these systems have only a dummy fork() stub ac_cv_func_fork_works=no ;; *) ac_cv_func_fork_works=yes ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} fi ac_cv_func_vfork_works=$ac_cv_func_vfork if test "x$ac_cv_func_vfork" = xyes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 $as_echo_n "checking for working vfork... " >&6; } if ${ac_cv_func_vfork_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_vfork_works=cross else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Thanks to Paul Eggert for this test. */ $ac_includes_default #include <sys/wait.h> #ifdef HAVE_VFORK_H # include <vfork.h> #endif /* On some sparc systems, changes by the child to local and incoming argument registers are propagated back to the parent. The compiler is told about this with #include <vfork.h>, but some compilers (e.g. gcc -O) don't grok <vfork.h>. Test for this by using a static variable whose address is put into a register that is clobbered by the vfork. */ static void #ifdef __cplusplus sparc_address_test (int arg) # else sparc_address_test (arg) int arg; #endif { static pid_t child; if (!child) { child = vfork (); if (child < 0) { perror ("vfork"); _exit(2); } if (!child) { arg = getpid(); write(-1, "", 0); _exit (arg); } } } int main () { pid_t parent = getpid (); pid_t child; sparc_address_test (0); child = vfork (); if (child == 0) { /* Here is another test for sparc vfork register problems. This test uses lots of local variables, at least as many local variables as main has allocated so far including compiler temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should reuse the register of parent for one of the local variables, since it will think that parent can't possibly be used any more in this routine. Assigning to the local variable will thus munge parent in the parent process. */ pid_t p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); /* Convince the compiler that p..p7 are live; otherwise, it might use the same hardware register for all 8 local variables. */ if (p != p1 || p != p2 || p != p3 || p != p4 || p != p5 || p != p6 || p != p7) _exit(1); /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent from child file descriptors. If the child closes a descriptor before it execs or exits, this munges the parent's descriptor as well. Test for this by closing stdout in the child. */ _exit(close(fileno(stdout)) != 0); } else { int status; struct stat st; while (wait(&status) != child) ; return ( /* Was there some problem with vforking? */ child < 0 /* Did the child fail? (This shouldn't happen.) */ || status /* Did the vfork/compiler bug occur? */ || parent != getpid() /* Did the file descriptor bug occur? */ || fstat(fileno(stdout), &st) != 0 ); } } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_vfork_works=yes else ac_cv_func_vfork_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 $as_echo "$ac_cv_func_vfork_works" >&6; } fi; if test "x$ac_cv_func_fork_works" = xcross; then ac_cv_func_vfork_works=$ac_cv_func_vfork { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 $as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} fi if test "x$ac_cv_func_vfork_works" = xyes; then $as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h else $as_echo "#define vfork fork" >>confdefs.h fi if test "x$ac_cv_func_fork_works" = xyes; then $as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_malloc_0_nonnull=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include <stdlib.h> #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : $as_echo "#define HAVE_MALLOC 1" >>confdefs.h else $as_echo "#define HAVE_MALLOC 0" >>confdefs.h case " $LIBOBJS " in *" malloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;; esac $as_echo "#define malloc rpl_malloc" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 $as_echo_n "checking for working memcmp... " >&6; } if ${ac_cv_func_memcmp_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_memcmp_working=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. William Lewis provided this test program. */ { char foo[21]; char bar[21]; int i; for (i = 0; i < 4; i++) { char *a = foo + i; char *b = bar + i; strcpy (a, "--------01111111"); strcpy (b, "--------10000000"); if (memcmp (a, b, 16) >= 0) return 1; } return 0; } ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_memcmp_working=yes else ac_cv_func_memcmp_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 $as_echo "$ac_cv_func_memcmp_working" >&6; } test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in *" memcmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;; esac for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 $as_echo_n "checking for working mmap... " >&6; } if ${ac_cv_func_mmap_fixed_mapped+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_mmap_fixed_mapped=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* malloc might have been renamed as rpl_malloc. */ #undef malloc /* Thanks to Mike Haertel and Jim Avera for this test. Here is a matrix of mmap possibilities: mmap private not fixed mmap private fixed at somewhere currently unmapped mmap private fixed at somewhere already mapped mmap shared not fixed mmap shared fixed at somewhere currently unmapped mmap shared fixed at somewhere already mapped For private mappings, we should verify that changes cannot be read() back from the file, nor mmap's back from the file at a different address. (There have been systems where private was not correctly implemented like the infamous i386 svr4.0, and systems where the VM page cache was not coherent with the file system buffer cache like early versions of FreeBSD and possibly contemporary NetBSD.) For shared mappings, we should conversely verify that changes get propagated back to all the places they're supposed to be. Grep wants private fixed already mapped. The main things grep needs to know about mmap are: * does it exist and is it safe to write into the mmap'd area * how to use it (BSD variants) */ #include <fcntl.h> #include <sys/mman.h> #if !defined STDC_HEADERS && !defined HAVE_STDLIB_H char *malloc (); #endif /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ # ifdef HAVE_SYS_PARAM_H # include <sys/param.h> # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE # else /* no EXEC_PAGESIZE */ # ifdef NBPG # define getpagesize() NBPG * CLSIZE # ifndef CLSIZE # define CLSIZE 1 # endif /* no CLSIZE */ # else /* no NBPG */ # ifdef NBPC # define getpagesize() NBPC # else /* no NBPC */ # ifdef PAGESIZE # define getpagesize() PAGESIZE # endif /* PAGESIZE */ # endif /* no NBPC */ # endif /* no NBPG */ # endif /* no EXEC_PAGESIZE */ # else /* no HAVE_SYS_PARAM_H */ # define getpagesize() 8192 /* punt totally */ # endif /* no HAVE_SYS_PARAM_H */ # endif /* no _SC_PAGESIZE */ #endif /* no HAVE_GETPAGESIZE */ int main () { char *data, *data2, *data3; const char *cdata2; int i, pagesize; int fd, fd2; pagesize = getpagesize (); /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) return 1; for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) return 2; if (write (fd, data, pagesize) != pagesize) return 3; close (fd); /* Next, check that the tail of a page is zero-filled. File must have non-zero length, otherwise we risk SIGBUS for entire page. */ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); if (fd2 < 0) return 4; cdata2 = ""; if (write (fd2, cdata2, 1) != 1) return 5; data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); if (data2 == MAP_FAILED) return 6; for (i = 0; i < pagesize; ++i) if (*(data2 + i)) return 7; close (fd2); if (munmap (data2, pagesize)) return 8; /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) return 9; if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) return 10; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) return 11; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on some variants of i386 svr4.0.) */ for (i = 0; i < pagesize; ++i) *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) return 12; if (read (fd, data3, pagesize) != pagesize) return 13; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) return 14; close (fd); free (data); free (data3); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_mmap_fixed_mapped=yes else ac_cv_func_mmap_fixed_mapped=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 $as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } if test $ac_cv_func_mmap_fixed_mapped = yes; then $as_echo "#define HAVE_MMAP 1" >>confdefs.h fi rm -f conftest.mmap conftest.txt for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible realloc" >&5 $as_echo_n "checking for GNU libc compatible realloc... " >&6; } if ${ac_cv_func_realloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_realloc_0_nonnull=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include <stdlib.h> #else char *realloc (); #endif int main () { return ! realloc (0, 0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_realloc_0_nonnull=yes else ac_cv_func_realloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5 $as_echo "$ac_cv_func_realloc_0_nonnull" >&6; } if test $ac_cv_func_realloc_0_nonnull = yes; then : $as_echo "#define HAVE_REALLOC 1" >>confdefs.h else $as_echo "#define HAVE_REALLOC 0" >>confdefs.h case " $LIBOBJS " in *" realloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS realloc.$ac_objext" ;; esac $as_echo "#define realloc rpl_realloc" >>confdefs.h fi if ${ac_cv_func_setvbuf_reversed+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_func_setvbuf_reversed=no fi for ac_func in \ alarm alphasort crypt dup2 ftime getenv gethostname getpagesize getpt getspnam gettimeofday \ grantpt hstrerror initgroups lstat memchr memcmp memmove memset munmap ptsname putenv \ scandir select setenv setlocale sigaction socket strchr strdup strerror strrchr \ strspn strstr strtol strtoul sysconf tcsetpgrp uname unlockpt usleep \ versionsort vprintf vsprintf vsnprintf wait3 wait4 do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 $as_echo_n "checking for library containing crypt... " >&6; } if ${ac_cv_search_crypt+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char crypt (); int main () { return crypt (); ; return 0; } _ACEOF for ac_lib in '' crypt; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_crypt=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_crypt+:} false; then : break fi done if ${ac_cv_search_crypt+:} false; then : else ac_cv_search_crypt=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 $as_echo "$ac_cv_search_crypt" >&6; } ac_res=$ac_cv_search_crypt if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing deflate" >&5 $as_echo_n "checking for library containing deflate... " >&6; } if ${ac_cv_search_deflate+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char deflate (); int main () { return deflate (); ; return 0; } _ACEOF for ac_lib in '' z; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_deflate=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_deflate+:} false; then : break fi done if ${ac_cv_search_deflate+:} false; then : else ac_cv_search_deflate=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_deflate" >&5 $as_echo "$ac_cv_search_deflate" >&6; } ac_res=$ac_cv_search_deflate if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 $as_echo_n "checking for library containing dlopen... " >&6; } if ${ac_cv_search_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF for ac_lib in '' dl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_dlopen=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_dlopen+:} false; then : break fi done if ${ac_cv_search_dlopen+:} false; then : else ac_cv_search_dlopen=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 $as_echo "$ac_cv_search_dlopen" >&6; } ac_res=$ac_cv_search_dlopen if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 $as_echo_n "checking for library containing socket... " >&6; } if ${ac_cv_search_socket+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char socket (); int main () { return socket (); ; return 0; } _ACEOF for ac_lib in '' socket wsock32; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_socket=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_socket+:} false; then : break fi done if ${ac_cv_search_socket+:} false; then : else ac_cv_search_socket=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 $as_echo "$ac_cv_search_socket" >&6; } ac_res=$ac_cv_search_socket if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing connect" >&5 $as_echo_n "checking for library containing connect... " >&6; } if ${ac_cv_search_connect+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char connect (); int main () { return connect (); ; return 0; } _ACEOF for ac_lib in '' socket wsock32; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_connect=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_connect+:} false; then : break fi done if ${ac_cv_search_connect+:} false; then : else ac_cv_search_connect=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_connect" >&5 $as_echo "$ac_cv_search_connect" >&6; } ac_res=$ac_cv_search_connect if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 $as_echo_n "checking for library containing gethostbyname... " >&6; } if ${ac_cv_search_gethostbyname+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gethostbyname (); int main () { return gethostbyname (); ; return 0; } _ACEOF for ac_lib in '' nsl wsock32; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_gethostbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_gethostbyname+:} false; then : break fi done if ${ac_cv_search_gethostbyname+:} false; then : else ac_cv_search_gethostbyname=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 $as_echo "$ac_cv_search_gethostbyname" >&6; } ac_res=$ac_cv_search_gethostbyname if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing Gpm_Open" >&5 $as_echo_n "checking for library containing Gpm_Open... " >&6; } if ${ac_cv_search_Gpm_Open+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char Gpm_Open (); int main () { return Gpm_Open (); ; return 0; } _ACEOF for ac_lib in '' gpm; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_Gpm_Open=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_Gpm_Open+:} false; then : break fi done if ${ac_cv_search_Gpm_Open+:} false; then : else ac_cv_search_Gpm_Open=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_Gpm_Open" >&5 $as_echo "$ac_cv_search_Gpm_Open" >&6; } ac_res=$ac_cv_search_Gpm_Open if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi ac_fn_c_check_member "$LINENO" "Gpm_Event" "wdy" "ac_cv_member_Gpm_Event_wdy" "#include <gpm.h> " if test "x$ac_cv_member_Gpm_Event_wdy" = xyes; then : fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pthread_create" >&5 $as_echo_n "checking for library containing pthread_create... " >&6; } if ${ac_cv_search_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF for ac_lib in '' pthread c_r; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_pthread_create=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_pthread_create+:} false; then : break fi done if ${ac_cv_search_pthread_create+:} false; then : else ac_cv_search_pthread_create=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pthread_create" >&5 $as_echo "$ac_cv_search_pthread_create" >&6; } ac_res=$ac_cv_search_pthread_create if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi LIBS= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing tgetent" >&5 $as_echo_n "checking for library containing tgetent... " >&6; } if ${ac_cv_search_tgetent+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char tgetent (); int main () { return tgetent (); ; return 0; } _ACEOF for ac_lib in '' gpm tinfo ncurses termcap; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_tgetent=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_tgetent+:} false; then : break fi done if ${ac_cv_search_tgetent+:} false; then : else ac_cv_search_tgetent=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_tgetent" >&5 $as_echo "$ac_cv_search_tgetent" >&6; } ac_res=$ac_cv_search_tgetent if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi if test "$have_x" = yes; then save_CPPFLAGS="$CPPFLAGS" save_LDFLAGS="$LDFLAGS" CPPFLAGS="$CPPFLAGS $X11_CPPFLAGS" LDFLAGS="$LDFLAGS $X11_LDFLAGS" if test x"$PKG_CONFIG" != x; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xft freetype2" >&5 $as_echo_n "checking for xft freetype2... " >&6; } if test -n "$XFT_CFLAGS"; then pkg_cv_XFT_CFLAGS="$XFT_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xft freetype2\""; } >&5 ($PKG_CONFIG --exists --print-errors "xft freetype2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_XFT_CFLAGS=`$PKG_CONFIG --cflags "xft freetype2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test -n "$XFT_LIBS"; then pkg_cv_XFT_LIBS="$XFT_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xft freetype2\""; } >&5 ($PKG_CONFIG --exists --print-errors "xft freetype2") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_XFT_LIBS=`$PKG_CONFIG --libs "xft freetype2" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi else pkg_failed=untried fi if test $pkg_failed = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then XFT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xft freetype2" 2>&1` else XFT_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xft freetype2" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$XFT_PKG_ERRORS" >&5 XFT_CFLAGS="-I/usr/include/freetype2" elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } XFT_CFLAGS="-I/usr/include/freetype2" else XFT_CFLAGS=$pkg_cv_XFT_CFLAGS XFT_LIBS=$pkg_cv_XFT_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi else XFT_CFLAGS="-I/usr/include/freetype2" fi CPPFLAGS="$CPPFLAGS $XFT_CFLAGS" LDFLAGS="$LDFLAGS $XFT_LIBS" for ac_header in X11/Xft/Xft.h do : ac_fn_c_check_header_mongrel "$LINENO" "X11/Xft/Xft.h" "ac_cv_header_X11_Xft_Xft_h" "$ac_includes_default" if test "x$ac_cv_header_X11_Xft_Xft_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_X11_XFT_XFT_H 1 _ACEOF fi done for ac_header in fontconfig/fontconfig.h do : ac_fn_c_check_header_mongrel "$LINENO" "fontconfig/fontconfig.h" "ac_cv_header_fontconfig_fontconfig_h" "$ac_includes_default" if test "x$ac_cv_header_fontconfig_fontconfig_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FONTCONFIG_FONTCONFIG_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing XftFontOpen" >&5 $as_echo_n "checking for library containing XftFontOpen... " >&6; } if ${ac_cv_search_XftFontOpen+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char XftFontOpen (); int main () { return XftFontOpen (); ; return 0; } _ACEOF for ac_lib in '' Xft; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_XftFontOpen=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_XftFontOpen+:} false; then : break fi done if ${ac_cv_search_XftFontOpen+:} false; then : else ac_cv_search_XftFontOpen=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_XftFontOpen" >&5 $as_echo "$ac_cv_search_XftFontOpen" >&6; } ac_res=$ac_cv_search_XftFontOpen if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" fi # Output if test "$ac_cv_c_volatile" != "no"; then $as_echo "#define HAVE_VOLATILE 1" >>confdefs.h fi if test "$ac_cv_c_static_inline" != "no"; then $as_echo "#define HAVE_STATIC_INLINE 1" >>confdefs.h fi cat >>confdefs.h <<_ACEOF #define ATTR_FN_CONST `echo $ac_cv_c_attribute_const | $SED -e 's/^no$//g'` _ACEOF cat >>confdefs.h <<_ACEOF #define ATTR_TYPE_PACKED `echo $ac_cv_c_attribute_packed | $SED -e 's/^no$//g'` _ACEOF cat >>confdefs.h <<_ACEOF #define ATTR_PTR_ALIGNED_1 `echo $ac_cv_c_attribute_aligned_1 | $SED -e 's/^no$//g'` _ACEOF if test "$ac_cv_search_crypt" != "no" -o "$ac_cv_func_crypt" != "no"; then $as_echo "#define HAVE_CRYPT 1" >>confdefs.h fi if test "$ac_cv_search_deflate" != "no"; then $as_echo "#define HAVE_DEFLATE 1" >>confdefs.h fi if test "$ac_cv_search_dlopen" != "no"; then $as_echo "#define HAVE_DLOPEN 1" >>confdefs.h fi if test "$ac_cv_search_gethostbyname" != "no"; then $as_echo "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h fi if test "$ac_cv_search_Gpm_Open" != "no"; then $as_echo "#define HAVE_GPM_OPEN 1" >>confdefs.h fi if test "$ac_cv_member_Gpm_Event_wdy" != "no"; then $as_echo "#define HAVE_STRUCT_GPM_EVENT_WDY 1" >>confdefs.h fi if test "$ac_cv_search_pthread_create" != "no"; then $as_echo "#define HAVE_PTHREAD_CREATE 1" >>confdefs.h fi if test "$ac_cv_search_tgetent" != "no"; then $as_echo "#define HAVE_TGETENT 1" >>confdefs.h fi enable__alloc=no if test "$ac_cv_func_mmap_fixed_mapped" = no; then enable__alloc=no enable_wm_rc_shmmap=no fi if test "$ac_cv_header_dlfcn_h" = no -o "$ac_cv_search_dlopen" = no; then enable__dlopen=no fi if test "$ac_cv_search_socket" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing socket(): disabling socket connections (libtw)!" >&5 $as_echo "$as_me: WARNING: missing socket(): disabling socket connections (libtw)!" >&2;} enable_socket=no fi if test "$ac_cv_search_connect" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing connect(): disabling socket connections (libtw)!" >&5 $as_echo "$as_me: WARNING: missing connect(): disabling socket connections (libtw)!" >&2;} enable_socket=no fi if test "$ac_cv_search_gethostbyname" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: missing gethostbyname(): libtw will only accept numerical IP addresses!" >&5 $as_echo "$as_me: WARNING: missing gethostbyname(): libtw will only accept numerical IP addresses!" >&2;} fi if test "$ac_cv_search_pthread_create" = no -o "$ac_cv_header_pthread_h" = no; then enable_socket_pthreads=no fi if test "$ac_cv_search_deflate" = no -o "$ac_cv_header_zlib_h" = no; then enable_socket_gz=no fi if test "$ac_cv_func_grantpt" = no -o "$ac_cv_func_unlockpt" = no -o "$ac_cv_func_ptsname" = no; then enable_term_devpts=no fi if test "$ac_cv_search_Gpm_Open" = no -o "$ac_cv_header_gpm_h" = no; then enable_hw_tty_linux=no fi if test "$ac_cv_header_linux_kd_h" = no -o "$ac_cv_header_linux_keyboard_h" = no -o "$ac_cv_header_linux_vt_h" = no; then enable_hw_tty_lrawkbd=no fi if test "$ac_cv_search_tgetent" = no; then enable_hw_tty_termcap=no fi if test "$have_x" != yes; then enable_hw_x11=no fi if test "$have_x" != yes -o "$ac_cv_header_X11_Xft_Xft_h" != yes -o "$ac_cv_header_fontconfig_fontconfig_h" != yes -o "$ac_cv_search_XftFontOpen" = no; then enable_hw_xft=no fi if test "$enable__dlopen" = yes ; then LIBDL="`echo \"$ac_cv_search_dlopen\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`" else # if dlopen() or <dlfcn.h> are missing, or user specified --enable-dlopen=no, link against libtool LIBDL="$LIBLTDL" if test "$with_included_ltdl" = yes ; then $as_echo "#define HAVE_INCLUDED_LTDL 1" >>confdefs.h SUBDIR_LIBLTDL=libltdl fi fi LIBCRYPT="`echo \"$ac_cv_search_crypt\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`" LIBGPM="`echo \"$ac_cv_search_Gpm_Open\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`" LIBSOCK="`echo \"$ac_cv_search_gethostbyname\" | $SED -e 's/^none required$//g' -e 's/^no$//g'` `echo \"$ac_cv_search_socket\" | $SED -e 's/^none required$//g' -e 's/^no$//g'` `echo \"$ac_cv_search_connect\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`" LIBPTHREAD="`echo \"$ac_cv_search_pthread_create\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`" LIBTERMCAP="`echo \"$ac_cv_search_tgetent\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`" LIBXFT="`echo \"$ac_cv_search_XftFontOpen\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`" if test "$enable_socket_gz" = yes; then LIBZ="`echo \"$ac_cv_search_deflate\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`" fi LIBTSTL='$(top_builddir)/libs/libtstl/libtstl.la' LIBTUTF='$(top_builddir)/libs/libtutf/libtutf.la' LIBTW='$(top_builddir)/libs/libtw/libtw.la' LIBS= if test "$enable_hw_display" = yes; then LIBHW_DISPLAY_la_TRUE= LIBHW_DISPLAY_la_FALSE='#' else LIBHW_DISPLAY_la_TRUE='#' LIBHW_DISPLAY_la_FALSE= fi if test "$enable_hw_tty" = yes; then LIBHW_TTY_la_TRUE= LIBHW_TTY_la_FALSE='#' else LIBHW_TTY_la_TRUE='#' LIBHW_TTY_la_FALSE= fi if test "$enable_hw_twin" = yes; then LIBHW_TWIN_la_TRUE= LIBHW_TWIN_la_FALSE='#' else LIBHW_TWIN_la_TRUE='#' LIBHW_TWIN_la_FALSE= fi if test "$enable_hw_x11" = yes; then LIBHW_X11_la_TRUE= LIBHW_X11_la_FALSE='#' else LIBHW_X11_la_TRUE='#' LIBHW_X11_la_FALSE= fi if test "$enable_hw_xft" = yes; then LIBHW_XFT_la_TRUE= LIBHW_XFT_la_FALSE='#' else LIBHW_XFT_la_TRUE='#' LIBHW_XFT_la_FALSE= fi if test "$enable_wm_rc" = yes; then LIBRCPARSE_la_TRUE= LIBRCPARSE_la_FALSE='#' else LIBRCPARSE_la_TRUE='#' LIBRCPARSE_la_FALSE= fi if test "$enable_socket" = yes; then LIBSOCKET_la_TRUE= LIBSOCKET_la_FALSE='#' else LIBSOCKET_la_TRUE='#' LIBSOCKET_la_FALSE= fi if test "$enable_term" = yes; then LIBTERM_la_TRUE= LIBTERM_la_FALSE='#' else LIBTERM_la_TRUE='#' LIBTERM_la_FALSE= fi if test "$enable_wm" = yes; then LIBWM_la_TRUE= LIBWM_la_FALSE='#' else LIBWM_la_TRUE='#' LIBWM_la_FALSE= fi CXXFLAGS="$custom_CXXFLAGS" LDFLAGS_BIN_EXPORT_DYNAMIC="$LDFLAGS_BIN_EXPORT_DYNAMIC" ac_config_files="$ac_config_files Makefile clients/Makefile clients/mapscrn/Makefile contrib/Makefile contrib/twcd/Makefile docs/Makefile include/Makefile include/Tutf/Makefile include/Tw/Makefile include/version.h include/Tutf/version.h include/Tw/version.h libs/Makefile libs/libltdl/Makefile libs/libtstl/Makefile libs/libtutf/Makefile libs/libtw/Makefile server/Makefile server/hw/Makefile test/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${INSTALL_LTDL_TRUE}" && test -z "${INSTALL_LTDL_FALSE}"; then as_fn_error $? "conditional \"INSTALL_LTDL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CONVENIENCE_LTDL_TRUE}" && test -z "${CONVENIENCE_LTDL_FALSE}"; then as_fn_error $? "conditional \"CONVENIENCE_LTDL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi LT_CONFIG_H=config.h _ltdl_libobjs= _ltdl_ltlibobjs= if test -n "$_LT_LIBOBJS"; then # Remove the extension. _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" done fi ltdl_LIBOBJS=$_ltdl_libobjs ltdl_LTLIBOBJS=$_ltdl_ltlibobjs if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBHW_DISPLAY_la_TRUE}" && test -z "${LIBHW_DISPLAY_la_FALSE}"; then as_fn_error $? "conditional \"LIBHW_DISPLAY_la\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBHW_TTY_la_TRUE}" && test -z "${LIBHW_TTY_la_FALSE}"; then as_fn_error $? "conditional \"LIBHW_TTY_la\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBHW_TWIN_la_TRUE}" && test -z "${LIBHW_TWIN_la_FALSE}"; then as_fn_error $? "conditional \"LIBHW_TWIN_la\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBHW_X11_la_TRUE}" && test -z "${LIBHW_X11_la_FALSE}"; then as_fn_error $? "conditional \"LIBHW_X11_la\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBHW_XFT_la_TRUE}" && test -z "${LIBHW_XFT_la_FALSE}"; then as_fn_error $? "conditional \"LIBHW_XFT_la\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBRCPARSE_la_TRUE}" && test -z "${LIBRCPARSE_la_FALSE}"; then as_fn_error $? "conditional \"LIBRCPARSE_la\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBSOCKET_la_TRUE}" && test -z "${LIBSOCKET_la_FALSE}"; then as_fn_error $? "conditional \"LIBSOCKET_la\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBTERM_la_TRUE}" && test -z "${LIBTERM_la_FALSE}"; then as_fn_error $? "conditional \"LIBTERM_la\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBWM_la_TRUE}" && test -z "${LIBWM_la_FALSE}"; then as_fn_error $? "conditional \"LIBWM_la\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by twin $as_me 0.9.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to <BUG-REPORT-ADDRESS>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ twin config.status 0.9.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_separator_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path \ reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "include/config.h") CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "clients/Makefile") CONFIG_FILES="$CONFIG_FILES clients/Makefile" ;; "clients/mapscrn/Makefile") CONFIG_FILES="$CONFIG_FILES clients/mapscrn/Makefile" ;; "contrib/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/Makefile" ;; "contrib/twcd/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/twcd/Makefile" ;; "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; "include/Tutf/Makefile") CONFIG_FILES="$CONFIG_FILES include/Tutf/Makefile" ;; "include/Tw/Makefile") CONFIG_FILES="$CONFIG_FILES include/Tw/Makefile" ;; "include/version.h") CONFIG_FILES="$CONFIG_FILES include/version.h" ;; "include/Tutf/version.h") CONFIG_FILES="$CONFIG_FILES include/Tutf/version.h" ;; "include/Tw/version.h") CONFIG_FILES="$CONFIG_FILES include/Tw/version.h" ;; "libs/Makefile") CONFIG_FILES="$CONFIG_FILES libs/Makefile" ;; "libs/libltdl/Makefile") CONFIG_FILES="$CONFIG_FILES libs/libltdl/Makefile" ;; "libs/libtstl/Makefile") CONFIG_FILES="$CONFIG_FILES libs/libtstl/Makefile" ;; "libs/libtutf/Makefile") CONFIG_FILES="$CONFIG_FILES libs/libtutf/Makefile" ;; "libs/libtw/Makefile") CONFIG_FILES="$CONFIG_FILES libs/libtw/Makefile" ;; "server/Makefile") CONFIG_FILES="$CONFIG_FILES server/Makefile" ;; "server/hw/Makefile") CONFIG_FILES="$CONFIG_FILES server/hw/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' <conf$$subs.awk | sed ' /^[^""]/{ N s/\n// } ' >>$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' <confdefs.h | sed ' s/'"$ac_delim"'/"\\\ "/g' >>$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. case $CONFIG_FILES in #( *\'*) : eval set x "$CONFIG_FILES" ;; #( *) : set x $CONFIG_FILES ;; #( *) : ;; esac shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`$as_dirname -- "$am_mf" || $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$am_mf" : 'X\(//\)[^/]' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` am_filepart=`$as_basename -- "$am_mf" || $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$am_mf" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` { echo "$as_me:$LINENO: cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles" >&5 (cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE=\"gmake\" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See \`config.log' for more details" "$LINENO" 5; } fi { am_dirpart=; unset am_dirpart;} { am_filepart=; unset am_filepart;} { am_mf=; unset am_mf;} { am_rc=; unset am_rc;} rm -f conftest-deps.mk } ;; "libtool":C) # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 2 of of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool 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 program. If not, see <http://www.gnu.org/licenses/>. # The names of the tagged configurations supported by this script. available_tags='CXX ' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain=$ac_aux_dir/ltmain.sh # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # How to create reloadable object files. reload_flag=$lt_reload_flag_CXX reload_cmds=$lt_reload_cmds_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi tw_cfg() { if test "$2" = yes; then echo "#define $1" >> include/twconfig.h else echo "#undef $1" >> include/twconfig.h fi } echo '#ifndef TWAUTOCONF_H' > include/twautoconf.h echo '#define TWAUTOCONF_H' >> include/twautoconf.h echo >> include/twautoconf.h echo '/* this file is autogenerated by GNU configure, any change will be LOST when configure is re-executed */' >> include/twautoconf.h echo >> include/twautoconf.h $SED -e 's/define *\([A-Z]\)/define TW_\1/g' \ -e 's/undef *\([A-Z]\)/undef TW_\1/g' \ -e 's/ifdef *\([A-Z]\)/ifdef TW_\1/g' \ -e 's/ifndef *\([A-Z]\)/ifndef TW_\1/g' \ < include/config.h >> include/twautoconf.h echo >> include/twautoconf.h echo >> include/twautoconf.h echo '#endif /* TWAUTOCONF_H */' >> include/twautoconf.h $MKDIR_P include/Tw 2>/dev/null $SED -e 's/TWAUTOCONF_H/TW_AUTOCONF_H/g' < include/twautoconf.h > include/Tw/autoconf.h echo '#ifndef TWCONFIG_H' > include/twconfig.h echo '#define TWCONFIG_H' >> include/twconfig.h echo >> include/twconfig.h echo '/* this file is autogenerated by GNU configure, any change will be LOST when configure is re-executed */' >> include/twconfig.h echo >> include/twconfig.h tw_cfg CONF__ALLOC "$enable__alloc" tw_cfg CONF__DLOPEN "$enable__dlopen" tw_cfg CONF_SOCKET "$enable_socket" tw_cfg CONF_SOCKET_GZ "$enable_socket_gz" tw_cfg CONF_SOCKET_PTHREADS "$enable_socket_pthreads" tw_cfg CONF_SOCKET_ALIEN "$enable_socket_alien" tw_cfg CONF_WM "$enable_wm" tw_cfg CONF_WM_RC "$enable_wm_rc" tw_cfg CONF_WM_RC_SHMMAP "$enable_wm_rc_shmmap" tw_cfg CONF_WM_RC_SHRINK "$enable_wm_rc_shrink" tw_cfg CONF_TERM "$enable_term" tw_cfg CONF_TERM_DEVPTS "$enable_term_devpts" tw_cfg CONF_PRINTK "$enable_printk" tw_cfg CONF_HW_TTY "$enable_hw_tty" tw_cfg CONF_HW_TTY_LINUX "$enable_hw_tty_linux" tw_cfg CONF_HW_TTY_LRAWKBD "$enable_hw_tty_lrawkbd" tw_cfg CONF_HW_TTY_TWTERM "$enable_hw_tty_twterm" tw_cfg CONF_HW_TTY_TERMCAP "$enable_hw_tty_termcap" tw_cfg CONF_HW_X11 "$enable_hw_x11" tw_cfg CONF_HW_XFT "$enable_hw_xft" tw_cfg CONF_HW_TWIN "$enable_hw_twin" tw_cfg CONF_HW_DISPLAY "$enable_hw_display" tw_cfg CONF_OPT_SHADOWS "$enable_opt_shadows" tw_cfg CONF_OPT_BLINK "$enable_opt_blink" tw_cfg CONF_OPT_CURSOR_ALWAYS "$enable_opt_cursor_always" tw_cfg CONF_OPT_MENU_HIDE "$enable_opt_menu_hide" tw_cfg CONF_OPT_MENU_INFO "$enable_opt_menu_info" tw_cfg CONF_OPT_MENU_RELAX "$enable_opt_menu_relax" tw_cfg CONF_OPT_SCREEN_SCROLL "$enable_opt_screen_scroll" echo >> include/twconfig.h echo '#endif /* TWCONFIG_H */' >> include/twconfig.h �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/configure.ac�����������������������������������������������������������������������������0000664�0000000�0000000�00000026560�13775351206�0015011�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.65]) AC_INIT([twin], [0.9.0], [BUG-REPORT-ADDRESS]) AC_CONFIG_SRCDIR([server/main.cpp]) AC_CONFIG_HEADERS([include/config.h]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIRS([m4]) AC_CONFIG_AUX_DIR([admin]) AM_INIT_AUTOMAKE([1.14 foreign subdir-objects]) AM_MAINTAINER_MODE dnl by default, do not try to run libtoolize/automake/autoconf/autoreconf because build system may lack them m4_define([AH_HEADER], [config.h]) dnl filename of first AC_CONFIG_HEADERS. works around a bug in included libltdl Makefiles TW_OPTIONS LT_INIT LT_CONFIG_LTDL_DIR([libs/libltdl]) LTDL_INIT([recursive]) # Checks for programs. AC_PROG_CC AC_PROG_CXX AM_PROG_AS AC_PROG_INSTALL AC_PROG_LIBTOOL AC_PROG_LN_S AC_PROG_SED PKG_PROG_PKG_CONFIG([0.25]) dnl TW_VERSION requires $SED TW_VERSION # Checks for header files. AC_PATH_X if test "$have_x" = yes; then if test x"$ac_x_includes" != x; then X11_CPPFLAGS="-I$ac_x_includes" fi if test x"$ac_x_libraries" != x; then X11_LDFLAGS="-L$ac_x_libraries" fi AC_SUBST(X11_CPPFLAGS) AC_SUBST(X11_LDFLAGS) AC_SUBST(LIBX11, "-lX11") fi AC_LANG_PUSH([C++]) AC_FUNC_ALLOCA AC_HEADER_TIME AC_HEADER_SYS_WAIT AC_CHECK_HEADERS([ \ arpa/inet.h asm/page.h crypt.h dirent.h dlfcn.h fcntl.h grp.h inttypes.h libintl.h limits.h \ linux/kd.h linux/keyboard.h linux/vt.h locale.h machine/param.h malloc.h memory.h \ ncurses.h ncurses/ncurses.h ncurses/termcap.h ndir.h netdb.h netinet/in.h pthread.h pwd.h \ shadow.h signal.h stdarg.h stddef.h stdint.h stdlib.h string.h \ sys/dir.h sys/filio.h sys/ioctl.h sys/mman.h sys/ndir.h sys/param.h sys/resource.h \ sys/select.h sys/socket.h sys/stat.h sys/timeb.h sys/ttydefaults.h sys/un.h sys/utsname.h \ termcap.h termio.h termios.h unistd.h zlib.h]) AC_STRUCT_TM # Checks for typedefs, structures, and compiler characteristics. AC_C_BIGENDIAN AC_C_CONST AC_C_INLINE TW_C_FEATURES ################################################################################ # C++ flags '-g -O2' are already tested by AC_PROG_CC # C++ flags '-p -pg' are incompatible with -fomit-frame-pointer initial_CXXFLAGS="$CXXFLAGS" for try_flag in -std=c++98 -fomit-frame-pointer -fno-strict-aliasing -fno-rtti -fno-exceptions \ -pipe -Wall -Wshadow -Wno-uninitialized -Wno-unused -Wundef \ -Wcast-qual -Wcast-align -Wpointer-arith -Wwrite-strings \ # -Wstrict-prototypes -Wbad-function-cast -Wold-style-declaration -Wold-style-definition # -Wsign-compare do save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS $try_flag" try_flag_id="`echo \"$try_flag\" | tr =+- _x_`" AC_CACHE_CHECK(for C++ compiler flag $try_flag, ac_cv_cflag$try_flag_id, AC_TRY_COMPILE( [ int ret0(void) { return 0; } ] , [ int a = ret0(); ], [ eval "ac_cv_cflag$try_flag_id=yes" ], [ eval "ac_cv_cflag$try_flag_id=no" CXXFLAGS="$save_CXXFLAGS" ])) done custom_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$initial_CXXFLAGS" AC_LANG_POP([C++]) ################################################################################ # on Mac OS X El Capitan, libtool ignores -export-dynamic # so pass the linker flag -Wl,-export_dynamic if supported # if echo "$ac_cv_host" | $GREP darwin >/dev/null 2>&1 ; then initial_LDFLAGS="$LDFLAGS" LDFLAGS= for try_flag in -Wl,-export_dynamic do save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $try_flag" try_flag_id="`echo \"$try_flag\" | tr ,- __`" AC_CACHE_CHECK(for compiler flag $try_flag, ac_cv_ldflag$try_flag_id, AC_TRY_LINK( [ int ret0(void) { return 0; } ] , [ int a = ret0(); ], [ eval "ac_cv_ldflag$try_flag_id=yes" ], [ eval "ac_cv_ldflag$try_flag_id=no" LDFLAGS="$save_LDFLAGS" ])) done LDFLAGS_BIN_EXPORT_DYNAMIC="$LDFLAGS" LDFLAGS="$initial_LDFLAGS" fi ################################################################################ AC_CHECK_TYPE(gid_t,int) AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIGNAL AC_TYPE_SIZE_T AC_CHECK_TYPE(socklen_t,int) AC_TYPE_UID_T AC_TYPE_INT8_T AC_TYPE_INT16_T AC_TYPE_INT32_T AC_TYPE_UINT8_T AC_TYPE_UINT16_T AC_TYPE_UINT32_T AC_CHECK_SIZEOF([char]) AC_CHECK_SIZEOF([short]) AC_CHECK_SIZEOF([int]) AC_CHECK_SIZEOF([long]) AC_CHECK_SIZEOF([size_t]) AC_CHECK_SIZEOF([void *]) # Checks for functions and libraries. AC_FUNC_CHOWN AC_FUNC_FORK AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK AC_FUNC_MALLOC AC_FUNC_MEMCMP AC_FUNC_MMAP AC_FUNC_REALLOC AC_FUNC_SETVBUF_REVERSED dnl we never use the 'struct rusage' returned by wait3() dnl AC_FUNC_WAIT3 AC_CHECK_FUNCS([ \ alarm alphasort crypt dup2 ftime getenv gethostname getpagesize getpt getspnam gettimeofday \ grantpt hstrerror initgroups lstat memchr memcmp memmove memset munmap ptsname putenv \ scandir select setenv setlocale sigaction socket strchr strdup strerror strrchr \ strspn strstr strtol strtoul sysconf tcsetpgrp uname unlockpt usleep \ versionsort vprintf vsprintf vsnprintf wait3 wait4]) AC_SEARCH_LIBS(crypt, crypt) dnl crypt() is needed by twdm AC_SEARCH_LIBS(deflate, z) AC_SEARCH_LIBS(dlopen, dl) AC_SEARCH_LIBS(socket, [socket wsock32]) AC_SEARCH_LIBS(connect, [socket wsock32]) AC_SEARCH_LIBS(gethostbyname, [nsl wsock32]) AC_SEARCH_LIBS(Gpm_Open, gpm) AC_CHECK_MEMBER([Gpm_Event.wdy],,, [[#include <gpm.h>]]) AC_SEARCH_LIBS(pthread_create, [pthread c_r]) dnl -lc_r is needed on FreeBSD to use pthread functions dnl reset LIBS, because we check -lgpm again LIBS= AC_SEARCH_LIBS(tgetent, [gpm tinfo ncurses termcap]) if test "$have_x" = yes; then save_CPPFLAGS="$CPPFLAGS" save_LDFLAGS="$LDFLAGS" CPPFLAGS="$CPPFLAGS $X11_CPPFLAGS" LDFLAGS="$LDFLAGS $X11_LDFLAGS" if test x"$PKG_CONFIG" != x; then PKG_CHECK_MODULES([XFT], [xft freetype2], , [XFT_CFLAGS="-I/usr/include/freetype2"]) else XFT_CFLAGS="-I/usr/include/freetype2" fi CPPFLAGS="$CPPFLAGS $XFT_CFLAGS" LDFLAGS="$LDFLAGS $XFT_LIBS" AC_CHECK_HEADERS([X11/Xft/Xft.h]) dnl needs XFT_CFLAGS AC_CHECK_HEADERS([fontconfig/fontconfig.h]) dnl needs XFT_CFLAGS AC_SEARCH_LIBS(XftFontOpen, Xft) dnl needs XFT_LIBS CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" fi # Output if test "$ac_cv_c_volatile" != "no"; then AC_DEFINE(HAVE_VOLATILE, 1, [Define to 1 if compiler supports 'volatile' keyword.]) fi if test "$ac_cv_c_static_inline" != "no"; then AC_DEFINE(HAVE_STATIC_INLINE, 1, [Define to 1 if compiler supports 'static inline' functions.]) fi AC_DEFINE_UNQUOTED(ATTR_FN_CONST, [`echo $ac_cv_c_attribute_const | $SED -e 's/^no$//g'`], [Define to compiler's variant of __attribute__((const)), or to empty if not supported.]) AC_DEFINE_UNQUOTED(ATTR_TYPE_PACKED, [`echo $ac_cv_c_attribute_packed | $SED -e 's/^no$//g'`], [Define to compiler's variant of __attribute__((packed)), or to empty if not supported.]) AC_DEFINE_UNQUOTED(ATTR_PTR_ALIGNED_1, [`echo $ac_cv_c_attribute_aligned_1 | $SED -e 's/^no$//g'`], [Define to compiler's variant of __attribute__((aligned(1))), or to empty if not supported.]) if test "$ac_cv_search_crypt" != "no" -o "$ac_cv_func_crypt" != "no"; then AC_DEFINE(HAVE_CRYPT, 1, [Define to 1 if you have the `crypt' function.]) fi if test "$ac_cv_search_deflate" != "no"; then AC_DEFINE(HAVE_DEFLATE, 1, [Define to 1 if you have the `deflate' function.]) fi if test "$ac_cv_search_dlopen" != "no"; then AC_DEFINE(HAVE_DLOPEN, 1, [Define to 1 if you have the `dlopen' function.]) fi if test "$ac_cv_search_gethostbyname" != "no"; then AC_DEFINE(HAVE_GETHOSTBYNAME, 1, [Define to 1 if you have the `gethostbyname' function.]) fi if test "$ac_cv_search_Gpm_Open" != "no"; then AC_DEFINE(HAVE_GPM_OPEN, 1, [Define to 1 if you have the `Gpm_Open' function.]) fi if test "$ac_cv_member_Gpm_Event_wdy" != "no"; then AC_DEFINE(HAVE_STRUCT_GPM_EVENT_WDY, 1, [Define to 1 if the `Gpm_Event' struct has a `wdy' member.]) fi if test "$ac_cv_search_pthread_create" != "no"; then AC_DEFINE(HAVE_PTHREAD_CREATE, 1, [Define to 1 if you have the `pthread_create' function.]) fi if test "$ac_cv_search_tgetent" != "no"; then AC_DEFINE(HAVE_TGETENT, 1, [Define to 1 if you have the `tgetent' function.]) fi TW_FIX_CONFIG if test "$enable__dlopen" = yes ; then AC_SUBST(LIBDL, "`echo \"$ac_cv_search_dlopen\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`") else # if dlopen() or <dlfcn.h> are missing, or user specified --enable-dlopen=no, link against libtool AC_SUBST(LIBDL, "$LIBLTDL") if test "$with_included_ltdl" = yes ; then AC_DEFINE(HAVE_INCLUDED_LTDL, 1, [Define to 1 if using the libltdl included with this package sources]) AC_SUBST(SUBDIR_LIBLTDL, libltdl) fi fi AC_SUBST(LIBCRYPT, "`echo \"$ac_cv_search_crypt\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`") AC_SUBST(LIBGPM, "`echo \"$ac_cv_search_Gpm_Open\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`") AC_SUBST(LIBSOCK, "`echo \"$ac_cv_search_gethostbyname\" | $SED -e 's/^none required$//g' -e 's/^no$//g'` `echo \"$ac_cv_search_socket\" | $SED -e 's/^none required$//g' -e 's/^no$//g'` `echo \"$ac_cv_search_connect\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`") AC_SUBST(LIBPTHREAD, "`echo \"$ac_cv_search_pthread_create\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`") AC_SUBST(LIBTERMCAP, "`echo \"$ac_cv_search_tgetent\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`") AC_SUBST(LIBXFT, "`echo \"$ac_cv_search_XftFontOpen\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`") if test "$enable_socket_gz" = yes; then AC_SUBST(LIBZ, "`echo \"$ac_cv_search_deflate\" | $SED -e 's/^none required$//g' -e 's/^no$//g'`") fi AC_SUBST(LIBTSTL, '$(top_builddir)/libs/libtstl/libtstl.la') AC_SUBST(LIBTUTF, '$(top_builddir)/libs/libtutf/libtutf.la') AC_SUBST(LIBTW, '$(top_builddir)/libs/libtw/libtw.la') AC_SUBST(SUBDIR_LIBTT, ) dnl libTT is disabled LIBS= AM_CONDITIONAL(LIBHW_DISPLAY_la, [test "$enable_hw_display" = yes]) AM_CONDITIONAL(LIBHW_TTY_la, [test "$enable_hw_tty" = yes]) AM_CONDITIONAL(LIBHW_TWIN_la, [test "$enable_hw_twin" = yes]) AM_CONDITIONAL(LIBHW_X11_la, [test "$enable_hw_x11" = yes]) AM_CONDITIONAL(LIBHW_XFT_la, [test "$enable_hw_xft" = yes]) AM_CONDITIONAL(LIBRCPARSE_la, [test "$enable_wm_rc" = yes]) AM_CONDITIONAL(LIBSOCKET_la, [test "$enable_socket" = yes]) AM_CONDITIONAL(LIBTERM_la, [test "$enable_term" = yes]) AM_CONDITIONAL(LIBWM_la, [test "$enable_wm" = yes]) CXXFLAGS="$custom_CXXFLAGS" AC_SUBST(LDFLAGS_BIN_EXPORT_DYNAMIC, "$LDFLAGS_BIN_EXPORT_DYNAMIC") AC_CONFIG_FILES([ Makefile clients/Makefile clients/mapscrn/Makefile contrib/Makefile contrib/twcd/Makefile \ docs/Makefile include/Makefile include/Tutf/Makefile include/Tw/Makefile \ include/version.h include/Tutf/version.h include/Tw/version.h \ libs/Makefile libs/libltdl/Makefile libs/libtstl/Makefile \ libs/libtutf/Makefile libs/libtw/Makefile server/Makefile server/hw/Makefile \ test/Makefile]) AC_OUTPUT tw_cfg() { if test "$2" = yes; then echo "#define $1" >> include/twconfig.h else echo "#undef $1" >> include/twconfig.h fi } TW_OUTPUT ������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/contrib/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014152�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/contrib/Makefile.am����������������������������������������������������������������������0000664�0000000�0000000�00000000017�13775351206�0016204�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������SUBDIRS = twcd �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/contrib/Makefile.in����������������������������������������������������������������������0000664�0000000�0000000�00000047337�13775351206�0016235�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = contrib ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = twcd all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign contrib/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/contrib/twcd/����������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015113�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/contrib/twcd/ChangeLog�������������������������������������������������������������������0000664�0000000�0000000�00000000450�13775351206�0016664�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Sun Nov 24 23:35:03 MET 2001 by Massimiliano Ghilardi - Updated to libtw.so.4 API Fri Jun 22 21:47:37 MET 2001 by Massimiliano Ghilardi - Cosmetic changes - Updated to libtw.so.3 API Sun Apr 2 00:26:09 CST 2000 - First public release - Plays CDs without an external binary (unlike 0.0) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/contrib/twcd/Makefile.am�����������������������������������������������������������������0000664�0000000�0000000�00000000000�13775351206�0017135�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/contrib/twcd/Makefile.in�����������������������������������������������������������������0000664�0000000�0000000�00000032775�13775351206�0017176�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = contrib/twcd ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in ChangeLog README TODO DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/twcd/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign contrib/twcd/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���twin-0.9.0/contrib/twcd/README����������������������������������������������������������������������0000664�0000000�0000000�00000001437�13775351206�0016000�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Twin CD ------- This is my attempt at a program for TWIN, a text-mode windowing environment available at https://github.com/cosmos72/twin/. It's in infancy (my program and the environment), but it's quite usable (both of them, again). TWCD has a long way to go before it's as good as something like kscd or tcd, but it plays CDs, and it's the only TWIN CD player. As far as I know, it's also the first (and only) 3rd party application for TWIN. Compiling --------- The latest version can be downloaded from http://sacredchao.net/piman/software.html TWCD requires libtw, from TWIN, and the cdaudio library (available with most distributions, or from freshmeat.net.) Buttons ------- << - Previous track [] - Stop || - Pause -> - Play >> - Next track /\ - Eject - Joe Wreschnig <piman@pfnet.org> ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/contrib/twcd/TODO������������������������������������������������������������������������0000664�0000000�0000000�00000000474�13775351206�0015610�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������TWCD: - CDDB support (shouldn't be too hard) - Playlists - Almost certainly a better implementation for track handling must exist - Playtime indicator WRT TWIN: - Document relevant parts of TWIN API (unless the author has plans to) - Work on a widget set, or some preliminary form of widget set, for playlist use ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/contrib/twcd/twcd.c����������������������������������������������������������������������0000664�0000000�0000000�00000013557�13775351206�0016233�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* This program is (c)2000 Joe Wreschnig under the GNU GPL v2 Email piman@pfnet.org with comments, it's my first TWIN program TWCD - a CD player for TWIN. Uses libcdaudio. Based off the TWEdit, TWCat, and TWSysMon code. */ #include <stdio.h> #include <errno.h> #include <cdaudio.h> #include <Tw/Tw.h> #include <Tw/Twerrno.h> #define COD_QUIT (udat)1 #define CD_PLAY (udat)2 #define CD_STOP (udat)3 #define CD_NEXT (udat)4 #define CD_PREV (udat)5 #define CD_EJECT (udat)6 static tmsgport TWCD_MsgPort; static tmenu TWCD_Menu; static twindow TWCD_Win; int track = 1, cdid; struct disc_info cdinfo; TW_DECL_MAGIC(twcd_magic); byte InitTWCD(void) { twindow FileWindow, PlayWindow; if (!TwCheckMagic(twcd_magic) || !TwOpen(NULL)) return tfalse; TWCD_MsgPort = TwCreateMsgPort(4, "twcd"); TWCD_Menu = TwCreateMenu(TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0); TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0); TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0); TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0); TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0); TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0); TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0); TwInfo4Menu(TWCD_Menu, TW_ROW_ACTIVE, (uldat)8, " Twin CD ", "ppppppttp"); TWCD_Win = TwCreateWindow( 9, " Twin CD ", NULL, TWCD_Menu, TCOL(thigh | twhite, tblue), TW_NOCURSOR, TW_WINDOW_DRAG | TW_WINDOW_CLOSE | TW_WINDOW_WANT_MOUSE | TW_WINDOW_WANT_KEYS, TW_WINDOWFL_USEROWS | TW_WINDOWFL_ROWS_DEFCOL, (udat)18, (udat)3, (udat)0); FileWindow = TwWin4Menu(TWCD_Menu); TwItem4Menu(TWCD_Menu, FileWindow, ttrue, 6, " File "); TwRow4Menu(FileWindow, COD_QUIT, TW_ROW_ACTIVE, 6, " Quit "); PlayWindow = TwWin4Menu(TWCD_Menu); TwItem4Menu(TWCD_Menu, PlayWindow, ttrue, 6, " Play "); if (!TwItem4MenuCommon(TWCD_Menu)) return tfalse; TwGotoXYWindow(TWCD_Win, 0, 2); TwWriteCharsetWindow(TWCD_Win, 17, "<< [] || -> >> /\\"); TwMapWindow(TWCD_Win, TwFirstScreen()); TwFlush(); return ttrue; } void writeTrack(char *title) { TwGotoXYWindow(TWCD_Win, 0, 0); TwWriteCharsetWindow(TWCD_Win, 20, " "); TwGotoXYWindow(TWCD_Win, 0, 0); TwWriteCharsetWindow(TWCD_Win, strlen(title), title); } void changeTrack(void) { char foo[20]; if (track != -1) { sprintf(foo, "Track %d", track); writeTrack(foo); cd_play(cdid, track); } else writeTrack("no disc"); } int main(int argc, char **argv) { tmsg Msg; tevent_any EventA; tevent_mouse EventM; udat Code, x, y; cdid = cd_init_device("/dev/cdrom"); cd_stat(cdid, &cdinfo); printf("TWCD 0.2, (c)2000 Joe Wreschnig under the terms of the GNU GPL v2 or\nlater. See the " "COPYING file included " "with the distribution for the\nfull license, or visit http://www.gnu.org\n\n"); if (!InitTWCD()) { fprintf(stderr, "%s: libtw error: %s%s\n", argv[0], TwStrError(TwErrno), TwStrErrorDetail(TwErrno, TwErrnoDetail)); return 1; } writeTrack(" Twin CD 0.1"); while ((Msg = TwReadMsg(ttrue))) { static byte eject = 0; EventA = &Msg->Event; if (Msg->Type == TW_MSG_WIDGET_MOUSE) { EventM = &Msg->Event.EventMouse; Code = EventA->EventMouse.Code; y = EventA->EventMouse.Y; x = EventA->EventMouse.X; /* printf("Code: %d\nX: %d\nY: %d\n", Code, x, y); */ if (isPRESS(Code) && y == 2) switch (x) { case 0: case 1: { if (track > 1 && !eject) track--; changeTrack(); break; } case 3: case 4: { cd_stop(cdid); break; } case 6: case 7: { cd_stat(cdid, &cdinfo); if (cdinfo.disc_mode == CDAUDIO_PLAYING) { cd_pause(cdid); } else { cd_resume(cdid); } break; } case 9: case 10: { cd_play(cdid, track); cd_stat(cdid, &cdinfo); changeTrack(); break; } case 12: case 13: { if (track < cdinfo.disc_total_tracks && !eject) track++; changeTrack(); cd_stat(cdid, &cdinfo); break; } case 15: case 16: { if (eject == 0) { cd_eject(cdid); eject = 1; track = -1; } else { cd_close(cdid); eject = 0; track = 1; cd_stat(cdid, &cdinfo); } changeTrack(); break; } default: break; } } else if (Msg->Type == TW_MSG_MENU_ROW) { if (EventA->EventMenu.Code == COD_QUIT && EventA->EventMenu.W == TWCD_Win) break; } else if (Msg->Type == TW_MSG_WIDGET_GADGET) { if (EventA->EventGadget.Code == 0 && EventA->EventGadget.W == TWCD_Win) break; } } if (TwErrno) printf("%s: libtw error: %s%s\n", argv[0], TwStrError(TwErrno), TwStrErrorDetail(TwErrno, TwErrnoDetail)); if (!TwInPanic()) { TwUnMapWindow(TWCD_Win); TwDeleteWindow(TWCD_Win); TwDeleteMenu(TWCD_Menu); TwDeleteMsgPort(TWCD_MsgPort); TwClose(); return 0; } return 1; } �������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/contrib/twin.spec������������������������������������������������������������������������0000664�0000000�0000000�00000006075�13775351206�0016017�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# # This program 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 2 of the License, or # (at your option) any later version. # # Name: twin Version: 0.5.0 Release: 2 Vendor: Massimiliano Ghilardi <https://github.com/cosmos72> Copyright: GPL Group: User Interface/Twin Packager: Oron Peled <oron@actcom.co.il> Summary: Textmode WINdow environment Source: %name-%version.tar.gz URL: http://sourceforge.net/projects/twin BuildRoot: %{_tmppath}/%{name}-%{version}-root Provides: %{name} %description Twin is a windowing environment with mouse support, window manager, terminal emulator and networked clients, all inside a text display. It supports a variety of displays: * plain text terminals (any termcap/ncurses compatible terminal, Linux console, twin's own terminal emulator); * X11, where it can be used as a multi-window xterm; * itself (you can display a twin on another twin); * twdisplay, a general network-transparent display client, used to attach/detach more displays on-the-fly. Currently, twin is tested on Linux (i386, PowerPC, Alpha, Sparc), FreeBSD and SunOS. %package devel Summary: Textmode WINdow environment - developer's files Group: Development/Libraries Requires: %{name} %description devel This package supplements '%{name}'. It contains header files and static libraries for %{name} developers %package libTT Summary: Text Toolkit library for twin - Textmode WINdow environment Group: User Interface/Twin Requires: %{name} Provides: %{name}-libTT %description libTT This package supplements '%{name}'. It contains libTT, a Text Toolkit library for %{name} %package libTT-devel Summary: Text Toolkit library for twin - developer's files Group: Development/Libraries Requires: %{name} %{name}-libTT %description libTT-devel This package supplements 'libTT'. It contains header files and static libraries for libTT %prep %setup %build ./configure --prefix=%{_prefix} make %install [ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT mkdir $RPM_BUILD_ROOT %makeinstall %post ldconfig %postun ldconfig %files %defattr(-, root, root) %doc %{_mandir}/man1/twin.1* %doc docs/Configure docs/Tutorial docs/libtw.txt docs/ltrace.conf %doc docs/Compatibility docs/libTT-design.txt docs/Philosophy %doc COPYING COPYING.LIB Changelog.txt README BUGS INSTALL README.porting %doc twin-current.lsm %{_libdir}/libtutf.so.* %{_libdir}/libtw.so.* %{_libdir}/twin %{_datadir}/twin %config %{_libdir}/twin/.twinrc %config %{_libdir}/twin/.twenvrc.sh %config %{_libdir}/twin/system.twinrc %config %{_libdir}/twin/system.twenvrc.sh %{_bindir}/tw* %{_sbindir}/tw* %files devel %defattr(-, root, root) %{_includedir}/Tutf %{_includedir}/Tw %{_libdir}/libtutf.a %{_libdir}/libtutf.so %{_libdir}/libtw.a %{_libdir}/libtw.so %files libTT %{_libdir}/TT %{_libdir}/libTT.so.* %{_bindir}/tt* %files libTT-devel %{_includedir}/TT %{_libdir}/libTT.a %{_libdir}/libTT.so %clean [ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/������������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0013442�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/Compatibility�����������������������������������������������������������������������0000664�0000000�0000000�00000004103�13775351206�0016174�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Compatibility problems This file describes known compatibility problems when mixing twin server, library and client of different versions. This file was created at the time of twin-0.3.9 so it may contain little information for older versions. Since libtw, libTT and libtutf have version numbering different from twin, but new libtw, libTT and libtutf are always released with a new twin server (until now), it is possible to match libtw, libTT and libtutf versions against the twin server version they were released with. Here is the correspondence: twin server libtw libtutf libTT 0.2.8 1.0.0 0.3.0 2.0.0 0.3.1 2.0.0 0.3.2 2.0.0 0.3.3 2.0.0 0.3.4 2.0.0 0.3.5 2.0.1 0.3.6 2.0.2 0.3.7 2.0.4 \_(this is a release bug) 0.3.8 2.0.4 / 0.3.9 3.0.0 0.0.1 (unreleased) 0.3.10 3.0.1 0.0.2 (unreleased) 0.4.0 3.0.3 0.0.3 (unreleased) 0.4.1 3.0.4 0.0.4 (unreleased) 0.4.2 3.0.5 0.0.5 0.0.5 0.4.3 3.0.6 0.0.6 0.0.6 0.4.4 3.0.7 0.0.7 0.0.7 0.4.5 3.0.8 0.0.8 0.0.8 0.4.6 3.0.9 0.0.9 0.0.9 0.5.0 4.5.0 0.5.0 0.5.0 0.5.1 4.5.1 0.5.1 0.5.1 As a general rule of thumb, you would better use libraries and servers released together to avoid most problems (clients are more version-mismatch tolerant with respect to libraries than the server, expecially when clients are older than libraries). * Using libtw >= 4.0.0 with twin < 0.5.0 or libtw < 4.0.0 with twin >= 0.5.0 : does not work. * Using libtw >= 3.0.0 : you can enable 'Unicode support' : if a client is compiled against libraries including 'Unicode support', it requires libraries including 'Unicode support' to run; if a client is compiled against libraries without 'Unicode support', it requires libraries without 'Unicode support' to run. * Using libtw >= 3.0.0 with twin < 0.3.9 or libtw < 3.0.0 with twin >= 0.3.9 : does not work. * Using libtw >= 2.0.4 with twin < 0.3.7 : calling Tw_MapWindow() and some other functions results in libtw panic with 'function not supported by server' (affects almost all clients) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/FAQ���������������������������������������������������������������������������������0000664�0000000�0000000�00000040701�13775351206�0013776�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ TWIN FREQUENTLY ASKED QUESTIONS WITH ANSWERS 28 Oct 2002 Massimiliano Ghilardi <https://github.com/cosmos72/> This is the list of Frequently Asked Questions about twin, a Textmode WINdow environment [see Q1.1 `What is twin ?' for more details]. It should be read in conjunction with the other documents describing twin, in particular the Tutorial. This file, and also a lot of other documents about twin, is distributed together with twin sources at: * https://github.com/cosmos72/twin/ * https://sourceforge.net/projects/twin/ and mirror sites thereof. See Q2.1 `Where can I get the documentation about twin ?' for a list of the available documents and more information. Please check out these documents and this FAQ, especially Q12.1 `You still haven't answered my question !', before sending your question. A new version of this document is released at each new version of twin, which means approximately monthly. If this copy is more than a month old it may be out of date. =============================================================================== Index Section 1. Introduction and General Information Q1.1 What is twin ? Q1.2 Does it run on my computer ? Q1.3 Can twin display on X ? On Linux console ? On ... ? Q1.4 What software does it provide ? Which programs require twin ? Q1.5 What ports to other operating systems are there ? Q1.6 Is twin PD ? Copyrighted ? Section 2. Network sources and resources Q2.1 Where can I get the HOWTOs and other documentation ? Q2.2 Where should I look on the World Wide Web for Linux stuff ? Q2.3 What newsgroups are there for Linux ? Q2.4 How do I install Linux ? Q2.5 Where can I get Linux material by FTP ? Q2.6 I don't have FTP access. Where do I get Linux ? Q2.7 I don't have Usenet access. Where do I get information ? Q2.8 What mailing lists are there ? Q2.9 Are the newsgroups archived anywhere ? Section 3. Compatibility with other operating systems Q3.1 Can Linux share my disk with DOS ? OS/2 ? 386BSD ? Win95 ? Q3.2 How do I access files on my DOS partition or floppy ? Q3.3 Can I use my Stacked/DBLSPC/etc. DOS drive ? Q3.4 Can I access OS/2 HPFS partitions from Linux ? Q3.5 Can I access BSD FFS, SysV UFS, Mac, Amiga, etc filesystems ? Q3.6 Can I run Microsoft Windows programs under Linux ? Q3.7 How can I boot Linux from OS/2's Boot Manager ? Q3.8 How can I share a swap partition between Linux and MS Windows ? Section 4. Linux's handling of filesystems, disks and drives Q4.1 How can I get Linux to work with my large disk ? Q4.2 How can I undelete files ? Q4.3 Is there a defragmenter for ext2fs etc. ? Q4.4 How do I format and create a filesystem on a floppy ? Q4.5 I get nasty messages about inodes, blocks, and the suchlike Q4.6 My swap area isn't working. Q4.7 How do I remove LILO so my system boots DOS again ? Q4.8 Why can't I use fdformat except as root ? Q4.9 Is there something like Stacker or Doublespace for Linux ? Q4.10 My ext2fs partitions are checked each time I reboot. Q4.11 My root filesystem is read-only ! Q4.12 I have a huge /proc/kcore ! Can I delete it ? Q4.13 My AHA1542C doesn't work with Linux. Section 5. Porting, compiling and obtaining programs Q5.1 How do I port XXX to Linux ? Q5.2 What is ld.so and where do I get it ? Q5.3 Has anyone ported / compiled / written XXX for Linux ? Q5.4 Can I use code or a compiler compiled for a 486 on my 386 ? Q5.5 What does gcc -O6 do ? Q5.6 Where are <linux/*.h> and <asm/*.h> ? Q5.7 I get errors when I try to compile the kernel. Q5.8 How do I make a shared library ? Q5.9 My executables are (very) large. Q5.10 Does Linux support threads or lightweight processes ? Q5.11 Where can I get `lint' for Linux ? Q5.12 Where can I find `kermit' for Linux ? Section 6. Solutions to common miscellaneous problems Q6.1 free dumps core. Q6.2 My clock is very wrong. Q6.3 Setuid scripts don't seem to work. Q6.4 Free memory as reported by free keeps shrinking. Q6.5 When I add more memory it slows to a crawl. Q6.6 Some programs (e.g. xdm) won't let me log in. Q6.7 Some programs let me log in with no password. Q6.8 My machine runs very slowly when I run GCC / X / ... Q6.9 I can only log in as root. Q6.10 My screen is all full of weird characters instead of letters. Q6.11 I have screwed up my system and can't log in to fix it. Q6.12 I've discovered a huge security hole in rm ! Q6.13 lpr and/or lpd aren't working. Q6.14 Timestamps on files on msdos partitions are set incorrectly. Q6.15 How do I get LILO to boot the vmlinux file ? Section 7. How do I do this or find out that ... ? Q7.1 How can I get scrollback in text mode ? Q7.2 How do I switch virtual consoles ? How do I enable them ? Q7.3 How do I set the timezone ? Q7.4 What version of Linux and what machine name am I using ? Q7.5 How can I enable or disable core dumps ? Q7.6 How do I upgrade/recompile my kernel ? Q7.7 Can I have more than 3 serial ports by sharing interrupts ? Q7.8 How do I make a bootable floppy ? Q7.9 How do I remap my keyboard to UK, French, etc. ? Q7.10 How do I get NUM LOCK to default to on ? Q7.11 How can I have more than 128Mb of swap ? Section 8. Miscellaneous information and questions answered Q8.1 How do I program XYZ under Linux ? Q8.2 What's all this about ELF ? Q8.3 What is a .gz file ? And a .tgz ? And ... ? Q8.4 What does VFS stand for ? Q8.5 What is a BogoMip ? Q8.6 What is the Linux Journal and where can I get it ? Q8.7 How many people use Linux ? Q8.8 How should I pronounce Linux ? Section 9. Frequently encountered error messages Q9.1 Unknown terminal type linux and similar Q9.2 During linking I get Undefined symbol _mcount Q9.3 lp1 on fire Q9.4 INET: Warning: old style ioctl(IP_SET_DEV) called! Q9.5 ld: unrecognized option '-m486' Q9.6 GCC says Internal compiler error Q9.7 make says Error 139 Q9.8 shell-init: permission denied when I log in. Q9.9 No utmp entry. You must exec ... when I log in. Q9.10 Warning - bdflush not running Q9.11 Warning: obsolete routing request made. Q9.12 EXT2-fs: warning: mounting unchecked filesystem Q9.13 EXT2-fs warning: maximal count reached Q9.14 EXT2-fs warning: checktime reached Q9.15 df says Cannot read table of mounted filesystems Q9.16 fdisk says Partition X has different physical/logical ... Q9.17 fdisk: Partition 1 does not start on cylinder boundary Q9.18 fdisk says partition n has an odd number of sectors Q9.19 mtools says cannot initialise drive XYZ Q9.20 At the start of booting: Memory tight Q9.21 You don't exist. Go away. Section 10. The X Window System Q10.1 Does Linux support X Windows ? Q10.2 Where can I get an XF86Config for my system ? Q10.3 xterm logins show up strangely in who, finger Q10.4 I can't get X Windows to work right. Section 11. Questions applicable to very out-of-date software Q11.1 Emacs just dumps core. Q11.2 fdisk says cannot use nnn sectors of this partition Q11.3 GCC sometimes uses huge amounts of virtual memory and thrashes Q11.4 My keyboard goes all funny after I switch VC's. Section 12. How to get further assistance Q12.1 You still haven't answered my question ! Q12.2 What to put in a request for help Q12.3 I want to mail someone about my problem. Section 13. Administrative information and acknowledgements Q13.1 Feedback is invited Q13.2 Formats in which this FAQ is available Q13.3 Authorship and acknowledgements Q13.4 Disclaimer and Copyright =============================================================================== Section 1. Introduction and General Information Q1.1 What is twin ? Q1.2 Does it run on my computer ? Q1.3 Can twin display on X ? On Linux console ? On ... ? Q1.4 What software does it provide ? Which programs require twin ? Q1.5 What ports to other operating systems are there ? Q1.6 Is twin PD ? Copyrighted ? ------------------------------------------------------------------------------- Question 1.1. What is twin ? Twin is a windowing environment with mouse support, window manager, terminal emulator and networked clients, all inside a text display. You can think to twin as the text-mode equivalent of X11 servers, with some extra features: a) It manages multiple windows on a single screen, just like X11 servers except that twin uses text-mode. b) It has X11-style networked server capabilities: programs started remotely can connect to twin using sockets, just like X11 clients (xterm, fvwm2, gimp, kde, netscape, ...) connect to X11 servers. c) It has built-in window manager and terminal emulator (Linux console emulator, actually). d) It supports a variety of displays by using specific drivers - see Q1.3 `Can twin use X11 to display ? And Linux console ? And ... ?' for more details. e) It and can attach/detach displays on-the-fly and supports multiple simultaneous displays. You can find a very similar feature in VNC (Virtual Network Computer, a virtual X11 server). Twin is distributed under the GNU General Public License - see Q1.6 `Is twin PD ? Copyrighted ?' for more details. ------------------------------------------------------------------------------- Question 1.2. Does it run on my computer ? Twin has been tested to compile on various operating systems, including: Linux (i386, PowerPC, Alpha, Sparc), FreeBSD (i386), SunOS. The author had yet no chance to seriously test twin on other systems. But having a compatible operating system is not enough, a supported display is required too - see Q1.3 Can twin display on X ? On Linux console ? On ... ? ------------------------------------------------------------------------------- Question 1.3. Can twin display on X ? On Linux console ? On ... ? In order to let the user see all the text-mode windows created by twin, twin server must draw on a display using one of its display drivers. At the time this document is being written, twin supports at least the following drivers: X [X11] : lets twin display on X11 servers. xft : lets twin display on X11 servers using truetype (antialiased) fonts. twin : lets twin display on another twin server or on itself. tty : lets twin display on text terminals, including at least: Linux console (mouse support requires gpm and libgpm) twterm, twin's own terminal emulator (with mouse) any termcap/ncurses compatible terminal (with mouse if they support either xterm or twterm mouse reporting protocols) ------------------------------------------------------------------------------- Question 1.4. What software does it provide ? Which programs require twin ? Twin is distributed with: a) twin server (obvious) b) twattach and twdisplay - utilities to attach/detach displays c) various more-or-less useful utilities, including at least: twcat, twclip, twlsobj, twevent, twfindtwin, twmapscrn, twsendmsg, twsetroot, twthreadtest. d) some more complex clients, including at least: twsysmon - a system resources monitor (works on Linux only) twterm - a terminal emulator (Linux console emulator, actually) twdm - a login manager, modeled after xdm/kdm. To obtain more information about these clients, see the Tutorial. Various libraries come with twin too: e) libtutf - a tiny unicode translation library f) libtw - a library to talk to twin servers g) libTT - a text toolkit library =============================================================================== Section 13. Administrative information and acknowledgements Q13.1 Feedback is invited Q13.2 Formats in which this FAQ is available Q13.3 Authorship and acknowledgements Q13.4 Disclaimer and Copyright ------------------------------------------------------------------------------- Question 13.1. Feedback is invited Please send me your comments on this FAQ. I accept submissions for the FAQ in any format; All contributions comments and corrections are gratefully received. Please send them to <ijackson@gnu.ai.mit.edu>. If you wish to refer to a question(s) in the FAQ it's most useful for me if you do so by the question heading, rather than the number, as the question numbers are generated automatically and I don't see them in the source file I edit. I prefer comments in English to patchfiles - I write the FAQ in a different internal format anyway, so I can't use a patchfile. ------------------------------------------------------------------------------- Question 13.2. Formats in which this FAQ is available This document is available as an ASCII text file, an Emacs Info document, an HTML World Wide Web page, PostScript and as a USENET news posting. The ASCII, Emacs Info, HTML and posted versions and a Lout typesetter file (from which the PostScript is produced) are generated automatically by a Perl script which takes as input a file in the Bizarre Format with No Name. The output files linux-faq.ascii, .info and .ps and a tarfile linux-faq.source.tar.gz, containing the BFNN source and Perl script converter, are available in the docs directories of the major Linux FTP sites. The HTML version of this FAQ is available as http://www.cl.cam.ac.uk/users/iwj10/linux-faq/index.html and is mirrored at www.li.org and other sites. The USENET version is posted regularly to comp.os.linux.announce, comp.os.linux.answers, comp.answers and news.answers. ------------------------------------------------------------------------------- Question 13.3. Authorship and acknowledgements This FAQ was compiled by Ian Jackson <ijackson@gnu.ai.mit.edu>, with assistance and comments from others too numerous to mention. Special thanks are due to Matt Welsh, who moderated comp.os.linux.announce and comp.os.linux.answers, used to coordinate the HOWTOs and has written substantial portions of many of them, to Greg Hankins, who currently coordinates the HOWTOS, to Lars Wirzenius, who currently moderates comp.os.linux.announce, and to Marc-Michel Corsini, who wrote the original Linux FAQ. Thanks also to the many people who have sent comments and suggestions; they are too numerous to list here, but their input has been invaluable. Last but not least, thanks to Linus Torvalds and the other contributors to Linux for giving us something to write about ! ------------------------------------------------------------------------------- Question 13.4. Disclaimer and Copyright Note that this document is provided as is. The information in it is *not* warranted to be correct; you use it at your own risk. Linux Frequently Asked Questions with Answers is Copyright 1994, 1995, 1996 by Ian Jackson <ijackson@gnu.ai.mit.edu>. It may be reproduced and distributed in its entirety (including this authorship, copyright and permission notice) provided that either: * the distribution is not commercial (commercial means any situation in which you benefit financially - directly or indirectly such as by inclusion in a publication which carries commercial advertising), or * the distribution is in machine-readable form (ie, a form intended to be easily processed by a computer). Note that this restriction is not intended to prohibit charging for the service of printing or copying a document supplied by your customer. Any distribution of a partial copy or extract, a translation or a derivative work must be approved by me before distribution. Email me - I'll probably be happy to oblige ! Exceptions to these rules may be granted, and I shall be happy to answer any questions about this copyright --- write to Ian Jackson, Churchill College, Cambridge, CB3 0DS, United Kingdom or email <ijackson@gnu.ai.mit.edu>. These restrictions are here to protect the contributors, not to restrict you as educators and learners. Ian Jackson asserts the right to be identified as the author of this work, and claims the moral rights of paternity and integrity, in accordance with the Copyright, Designs and Patents Act, 1988. ���������������������������������������������������������������twin-0.9.0/docs/Makefile.am�������������������������������������������������������������������������0000664�0000000�0000000�00000000311�13775351206�0015471�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������mydocsdir = $(pkgdatadir)/docs # do not install libTT-design.txt, libTT is currently disabled mydocs_DATA = Compatibility FAQ Philosophy Tutorial diagram.txt libtw.txt ltrace.conf man1_MANS = twin.1 �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/Makefile.in�������������������������������������������������������������������������0000664�0000000�0000000�00000043041�13775351206�0015511�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = docs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(mydocsdir)" NROFF = nroff MANS = $(man1_MANS) DATA = $(mydocs_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ mydocsdir = $(pkgdatadir)/docs # do not install libTT-design.txt, libTT is currently disabled mydocs_DATA = Compatibility FAQ Philosophy Tutorial diagram.txt libtw.txt ltrace.conf man1_MANS = twin.1 all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign docs/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-man1: $(man1_MANS) @$(NORMAL_INSTALL) @list1='$(man1_MANS)'; \ list2=''; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS)'; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-mydocsDATA: $(mydocs_DATA) @$(NORMAL_INSTALL) @list='$(mydocs_DATA)'; test -n "$(mydocsdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(mydocsdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(mydocsdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(mydocsdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(mydocsdir)" || exit $$?; \ done uninstall-mydocsDATA: @$(NORMAL_UNINSTALL) @list='$(mydocs_DATA)'; test -n "$(mydocsdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(mydocsdir)'; $(am__uninstall_files_from_dir) tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(MANS) $(DATA) installdirs: for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(mydocsdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-man install-mydocsDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-man1 install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-man uninstall-mydocsDATA uninstall-man: uninstall-man1 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-mydocsDATA install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-man uninstall-man1 uninstall-mydocsDATA .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/Philosophy��������������������������������������������������������������������������0000664�0000000�0000000�00000002231�13775351206�0015521�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Philosophy and goals of the 'twin' project: Twin is intended to be a text mode window environment. It brings mouse support, multiple indipendent windows, window manager, terminal emulator, and server for remote applications, all in a text mode display. All base features are already implemented, but there is much room for expansion. Planned features are: * A whole desktop environment, all running in text mode. This includes: * A toolkit library with user configurable look-n-feel and rich widget set (already in progress). * Programs for all tasks a user could perform while using a text display. Image viewers are probably ruled out (but see aalib), yet most other programs are possible: editor, taskbar, file manager, web browser, mail client, frontend to existing tty-based programs (gdb comes to mind). In most cases, existing programs can be used just adding small changes to better exploit 'twin' features, or even without modifications: editor: emacs & clones, vi & clones file manager: midnight commander web browser: links mail clients: pine, mutt, ... so the work is infinitely smaller than say, writing KDE or GNOME from scratch. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/Tutorial����������������������������������������������������������������������������0000664�0000000�0000000�00000123006�13775351206�0015172�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ TTTTT W W III NN N T W W W I N N N T W W III N NN Twin - a Textmode WINdow environment TUTORIAL updated to version 0.4.6, 26 Mar 2003 Author: Massimiliano Ghilardi <https://github.com/cosmos72/> 0. Index These are the topics discussed: 0. Index 1. Concepts 2. Supported displays 2.1. Emulated terminal 3. Configuring and Compiling twin 3.1 System Requirements 4. Installing and Starting twin 5. The Twin UI (User Interface): how to use it 6. External programs 6.1. Saving diagnostic messages (logs) 6.2. Security Statement on Sockets 7. Transparent Compression 8. Attach/Detach 9. Installing X11 and VGA fonts 10. Greetings 1. Concepts Twin creates, draws and manages windows inside a text display. It implements in text mode the same concepts that X11 does in graphics: a. draw on some kind of screen (tipically a computer monitor). b. allow multiple windows to coexist on the same screen, and draw independently on each of them. c. talk to external programs (even on other machines) so that the programs receive keystrokes, mouse movements, etc. and can send back drawing commands. There are anyway important differences, beyond the trivial one that `twin' works in text mode and X11 servers work in graphics: a. Each window has an associated menu. Many windows can share the same menu, and twin always show the menu associated to the currently focused window. b. In `twin', window borders are part of each window, and can be (partially) customized by the external program that draws in it. Things that you can't tailor in this way are: buttons position and look, scrollbars position and look, as they are under control of twin builtin window manager (see the sample system.twinrc to learn how to customize the window manager look-n-feel). c. In `twin', windows are not just plain rectangules where programs can draw. They can contain other windows and/or `gadgets' (small icons you can select, like the buttons you can find in many GUIs) and they can contain lines longer that the window width and/or more lines than the window height, letting the user scroll them. d. Twin implements virtual screens. Each virtual screen has very big sizes in both directions (something like 64K character cells), and you can scroll them by holding LEFT or MIDDLE mouse buttons and moving the mouse to one of the screen borders. Also, you can switch to the next virtual screen by clicking on the arrows at the top-right of its menu bar. e. Twin has a built-in window manager, which needs to do a slightly different work than a typical X11 window manager: it does window focus changes, window drags and resizes, virtual screen changes, menu activity and dispatches keystrokes and mouse events to the focused window. With the help of a built-in `scroller' it also implements virtual screen scrolling and window contents scrolling (when you drag the scrollbar or hit the scrollbar buttons). f. Twin has a built-in terminal emulator, so you don't have to start any program equivalent to xterm in order to run `normal' tty programs. Anyway, an external terminal emulator `twterm' is included among the clients distributed with twin, in case you really need it. Note anyway that `twterm' _needs_ the built-in terminal emulator code to be loaded into twin, and twin is capable to auto-load such code if needed. 2. Supported displays Twin runs perfectly on the linux console, inside itself, in a twin terminal and on X11: it opens a window and draws in it, does _not_ run inside an xterm or similar. It can also run on generic text terminals (ttys) using the termcap/ncurses driver, but it will work far from optimal: it will have problems with mouse (only xterm and derivatives have a standard to report mouse, but only report click/release, not drags) and keyboard (each terminal sends different codes for special keys: F1-F12, Pause, ...) Currently, twin is tested on Linux (i386, PowerPC, Alpha, Sparc) and on FreeBSD; SunOS porting is in progress. I had yet no chance to test it on other systems. Twin will not be able to take advantage of special features of non-Linux system consoles until someone adds to twin the necessary code for them. Twin can write to textmode terminals in different ways: a: on any Linux terminal: when writing to standard output, just like any `normal' textmode program, twin can take advantage of extra features of the Linux terminal. This doesn't allow displaying a few special characters, but it should not be a big problem. b: on any termcap or ncurses compatible terminal: this is the most generic driver, and is quite limited. Twin writes on standard output, but due to the broad-targeted code cannot take advantage of any extra features of the actual terminal it runs on. Yet this allows to display on such a large variety of terminals to be actually useful. When choosing a method to display on ttys, twin will use (a) if available, else fallback on (b). 2.1. Emulated terminals The built-in terminal emulator behaves as a linux console. Implementing it on something different than a linux console is a little hard, as it would have to translate keyboard sequences: For example, when you hit <F5>, a linux console sends ESC [ [ 5 while xterm and derivatives send ESC [ 1 5 ~. Having twin correctly running in an xterm also means that each time it receives ESC [ 1 5 ~ it must translate it into ESC [ [ 5. But what should it do when it receives ESC [ 1 alone? Translate to ESC [ [, sent the data without translations, or wait for more data? There's no easy answer. 3. Configuring and Compiling twin 3.1 System Requirements To compile twin you need the following programs installed on your system: * a Bourne-shell or compatible (for example bash, dash, ash...) * make (most variants are supported: GNU make, BSD make...) * an ANSI C compiler (for example gcc or clang) Once you have the necessary programs listed above, you can start: If you are trying to compile on non-Linux systems, you would do better reading the file README.porting now, for useful tips and warnings. Type `./configure [options]' to automatically configure twin for your system. AUTOMATIC CONFIGURATION SHOULD ALWAYS SUFFICE; YOU SHOULD NEVER NEED TO MANUALLY CONFIGURE TWIN. Yet, if you really know what you are doing, you can manually tweak the autogenerated configuration with one of `make config', `make menuconfig' (uses "dialog"), `make gconfig' (used gdialog), `./configure [OPTIONS]' or `scripts/Configure.sh [OPTIONS]'. See the `Configure' help file for details. Once you have done with configuration, you are ready to compile: just type `make'. Watch the compilation proceed, and, if everything goes fine, you get what follows: - `twin_server', the main program, in the server/ subdirectory; - various libraries (libT*), in libs/libT*/ subdirectories; - various clients (twcat, twterm, ...) in the clients/ subdirectory. In case you get errors during compilation and you really can't solve the problem by your own, you can open an issue at <https://github.com/cosmos72/twin> sending an _EXACT_ copy of what `make' printed and also specifying your operating system (uname -a), and I'll try to help you. If you have a fast computer and some spare time, you could help me a little and try to compile every source file under every possible configuration. This is not as huge as it may seem, and it's easy to do: just type `make Torture'. In case you get compile errors, please report them to me, specifying your OS name (type `uname -a'), and the compile command that failed, including the EXACT error messages. 4. Installing and Starting twin If you want to install twin on your system, make sure that the `prefix' variable set by './configure' is correct, considering that when you will type `make install' the various parts of twin will be placed as follows: `twin' and the other programs (twterm, etc.) will go in $prefix/bin, modules will go in $prefix/lib/twin/modules, libtw.so* will go in $prefix/lib. Once twin compiled fine, to actually install it, type the following command as root: make install WARNING (1): since twin has not been extensively tested against vulnerabilities, it will *NOT* be installed suid-root or sgid-tty by default. In order for the terminal emulator to work, you may need to give such privileges to twin, but remember that you do so at your own risk! WARNING (2): on most systems, after the installation it is necessary to run `ldconfig' or `ldconfig <some parameter>' as root before programs can find libtw.so* shared libraries. WARNING (3): if you compiled some code as modules, twin will look for them only in $prefix/lib/twin/modules so it may not find the modules until you install them. To make debugging easier, if you compile with $libdir set to empty value (i.e. make libdir= ) then twin will look for modules in the current directory. In this way `make install' is not necessary in order to use modules. In any case, you cannot mix modules from a certain version with a `twin' executable of a different version. After twin is installed, to start it just type twin If you did not install twin yet, you can go to the directory where you compiled twin, then run: cd server/ ./twin_server If you want, you can specify the display to use instead of letting twin autoprobe; the syntax is: twin [--hw=<display>[,options]] [--hw=<display>[,options]] ... where <display> is one of: X[@<XDISPLAY>] or X11[@<XDISPLAY>] xft[@<XDISPLAY>] twin[@<TWDISPLAY>] tty[@<tty device>] for an explanation of the available display methods and their options, see paragraph 8. below about `twattach' and `twdisplay': they have exactly the same syntax as twin for the argument `--hw=<display>[,options]' You can also start twin in the background without display with twin --nohw 5. The Twin UI (User Interface): how to use it Since the user interface of twin is quite customizable, this part cannot cover every possible setup you might create. For this reason, what is described here is the default setup, that you get if you do NOT start tweaking your own ~/.twinrc file. To learn the syntax of ~/.twinrc, look at the sample configuration `system.twinrc' distributed with twin. When twin comes up, you will have a blue screen (or window) with a white menu bar on the top saying "Hit PAUSE or Mouse Right Button for Menu" To activate the menu (this is the default menu) do what the writing says: either hit the `PAUSE' key or hold down the right mouse button and move the mouse on one of the words of the menu bar. A menu window will appear. Choose the line you want, then release the right button if you were holding it, or hit the `RETURN' key otherwise. If you feel slightly offended by reading something so trivial and obvious, well, I feel quite stupid too writing it, but I must start from somewhere ;) Each word in the menu just appeared is a `menuitem'. The "≡" menuitem lets you pop up some utility windows, including a Clock, the Options window, the Buttons window, the Display window and the About window. The "File" menuitem lets you Quit twin, Suspend or Detach it, Execute arbitrary shell commands and, if the builtin terminal emulator code is loaded, open a New Terminal window. The "Edit" menuitem is just a standard entry but it's not usable here. The "Modules" menuitem lets you insert/remove modules from the running twin: you can "Run Twin Term" to insert the terminal emulator module, you can "Stop Twin Term" to kill all terminal windows and unload the module; you can "Run Socket Server" to insert the support code for running external programs, you can "Stop Socket Server" to remove that code and kill all external programs. The "Window" menuitem is common to all menus and lets you do several operations on windows (explained immediately below) Ok, enough boring stuff for now... let's jump to something else. Each window has its own menu, so opening a new window will give you a new menu while the previous gets inaccessible. When you start without windows, you are presented the default menu described above. Anyway, all menus share a common part: the "Window" menuitem, which lets you do basic operations with all windows -- Move, Resize, Scroll, Center, Maximize, UnFocus, cycle through windows (Next), and also lets you open the Window List. You can open the Window List also by middle-cliking on the desktop, in any area with no windows at all. A side effect of opening the Window List is that its menu is the default one, so you can get it back. Anyway you can get back the default menu also by left-clicking on the screen background, in an area with no windows: this un-focuses all windows and, when no window is focused, you _always_ get the default menu. Clicking with left mouse button or hitting keyboard `Return' on a window name of the Window List will focus and Center the corresponding window. Other not-so-obvious things you can do from the Default menu are: "Full Screen" to maximize the current window to full-screen, RollUp to collapse a window to its title bar only, and back to normal size, Refresh to redraw the whole display in case it gets garbled, Raise/Lower to move the focused window to top/bottom of windows stack, and also unfocus if moving it to bottom of stack. You can use the menus even without a mouse: The `Pause' key opens the menu (to change it, edit your ~/.twinrc, or, if you disabled support for ~/.twinrc parser, edit server/hotkey.h and recompile) then you can transverse the menu with arrow keys, hit `Return' to select an entry in a menuitem or `Escape' to close the menu. Choosing Menu -> Window -> Move lets you move the focused window with arrows, Resize lets you resize it (still with arrows), while Scroll lets you scroll it: use arrows for one-line scrolls and Insert,Delete,PageUp,PageDown for one-page scrolls. There is a small problem now: if twin intercepts the `Pause' key, how can you have your programs receive it? This is what "Send Hotkey" is for: it sends a `Pause' key event to the focused window. Now, the next argument: Focusing and Freezing. Even if it comes quite natural to most people to press the left mouse button on the lower-right corner of windows to resize them, a thing you probably don't know is that if _while holding the left button_ you also press the middle or right button, the window will `freeze', i.e. it doesn't resize anymore when you move the mouse, but will istantly resize when you release the middle or right button. Also, while the window is `frozen', the virtual screen doesn't scroll. The same `freeze' technique can be used while dragging a window (to drag a window, press left button on window title). Downside: `Freezing' does not work if twin displays on X, you have a two-button mouse and you configured the X server with Option "Emulate3Buttons". That's a limit of your mouse / X server combination. Other maybe not-so-obvious things are: the button on top-left of each window, drawn as "[]", is the CLOSE button; the button on top-right, drawn as two up-down arrows, is the TOP/BACK button: click on it in the top window and it will become the last window; click on it in a window behind other windows, at it will become the top window; the button next to top-right, drawn as "><", is the ROLLUP button: click on it and it will collapse the window to its title bar; click on it again and it will restore the window to its normal size; the scrollbars are quite intuitive: click on the arrows near the lower-right corner to scroll the window contents one line (or row) at time; drag the `tab' (the solid white bar) to quickly scroll the window; click on the space before or after the `tab' to scroll the window contents one page at time. Twin splits the concepts of top window and focused window: left-clicking on a window will focus it, so that keypresses will go to that window, but you will need to click on the window's TOP/BACK button to have it become the top window. Clicking on the window's TOP/BACK button again will Lower and UnFocus the window. Twin also implements cut-n-paste, in the same way as linux console, xterm, and other terminals: you select some text by moving the mouse with the left button pressed and paste by clicking with the middle button. Again, you can tailor (almost) any of the above features to your tastes by editing your own ~/.twinrc configuration file. The file system.twinrc distributed with twin is a well commented sample configuration you can start from. 6. External programs If you have `twin' correctly installed and running (and eventually you loaded the Socket Server module) you can run an external program by typing its name, just as you do with X11 clients. If twin is not installed yet, you will need to set LD_LIBRARY_PATH to the directory where libtw.so.2 is: something like export LD_LIBRARY_PATH=<twin-top-dir>/lib should work. Also, if you don't start external programs from within a twin terminal window, you will need to set the display. Type echo $TWDISPLAY inside a twin terminal, then export TWDISPLAY=:<the-value-you-got> before running your external programs. To run external programs from another machine, using TCP sockets, do something like export TWDISPLAY=<host-name>:<the-value-you-got> In the last case, you will also need to authorize your clients to talk to twin. The authorization method currently used is similar to Xauthority: the file .TwinAuth in your home directory holds some magic data that clients use to answer the challenge received from twin. If that data is wrong or the file doesn't exist, clients can connect to twin only using the unix socket (TWDISPLAY=:<something>) so they must run on the same machine as twin; remote programs won't be able to connect. The external programs (clients) distributed with twin are: twattach - utility to attach/detach twin from displays twdisplay - advanced utility to attach/detach twin from displays twcat - twin-aware version of `cat' twclip - a wannabe utility to manage clipboard. For now, it's little more than test. twlsobj - show internal server objects: windows, menus, ... Options: -h, --help display this help and exit -V, --version output version information and exit -r, --recursive also show lists of parents, children, ... -v, --verbose always show all data, even huge arrays twevent - report twin events, like xev (X11) and mev (console/gpm) twmapscrn - twin equivalent of Linux console tool `mapscrn' NOTE: when started from Linux console, twin will already load the current consolemap translation, so using twmapscrn is often not necessary. twsendmsg - utility to send messages to running libtw clients. Options: -h, --help display this help and exit -V, --version output version information and exit --control send a msg_user_control message (default) --clientmsg send a msg_user_clientmsg message [--code=]<Code> set the message code (default is open (2)) [--data=]<Data> set the message data Currently known codes for control messages are: quit (0), restart (1), open (2) twsetroot - customize twin background (see clients/README.twsetroot) twsysmon - a system resources monitor (works on Linux only) twterm - create remote twin terminal windows. Known options: -h, --help display this help and exit -V, --version output version information and exit -t <title> set window title (you will need to enclose <title> in quotes if it contains spaces or other special chars) -e <command> run <command> instead of user's shell (must be last option) twthreadtest - a stupid demo to test libtw with threads. twdm - a login manager, modeled after xdm/kdm. Known options: -h, --help display this help and exit -V, --version output version information and exit -k, --kill kill twin server upon display detach -q, --quiet quiet; suppress diagnostic messages --attach use "twattach" to start display (default) --display use "twdisplay" to start display --envrc tell twin to run .twenvrc.sh to get environment --suidroot tell twin to keep suid root privileges --sgidtty tell twin to keep sgid tty privileges --title=<title> set window title --hw=<arg> set display hw to use (default: -hw=tty) `twdm' can be used instead of the usual mingetty/agetty/login programs to let a user login on a workstation console (currently tested only on Linux). To do that, you can just type in a root shell on the console # twdm but this will work only until twdm is killed. For a more permanent setup, you need to convince init that it should exec twdm instead of the usual getty. Assuming you have a SysV flavour of init and that twdm is installed in /usr/local/bin, a line like this in /etc/inittab should do the trick : (you must find the line that starts getty on the corresponding tty and replace the whole line with the one below -- of course you must replace TERM=<...> with the actual terminal type of your workstation console) 1:2345:respawn:/usr/local/bin/twdm --quiet --hw=tty@/dev/tty1,TERM=linux In order to correctly setup $PATH and other environment variables, you can add `-envrc' option to twdm (tested only on Linux with bash). The `twterm' client and the builtin terminal emulator deserve a few extra explanations. They implement a linux terminal, so applications running inside them will see TERM=linux, but also support two different mouse reporting protocols: the first is the classical xterm-style reporting (enabled with ESC [?1000h and disabled with ESC [?1000l ) which is only capable to report mouse buttons hit/release and the window position where they happened; furthermore, it is limited to a 255x255 window. The second is an enhanced version which can also report mouse drags and has 14 bits data for window width and height. It is enabled with ESC [?9h and disabled with ESC [?9l . Also, they support xterm-style escape sequence to change window title. Since most programs running inside a linux terminal don't expect to be able to use the mouse with xterm-style protocol, various tricks may be needed in order to have mouse functionality with applications running in a twin terminal. Here are some: Midnight Commander `mc': start with `mc -x' Other applications: you can try to set TERM=xterm and hope to fool them. The use of `twsendmsg' might not be obvious, so a few details can help: every twin client creates a message port inside twin, which is used to receive messages. These include keyboard and mouse events, window size changes, menu activity, and some other things. Anyway, not all messages are generated by the server. It is possible to create a message from a client and send it to another client. This makes possible, for example, to send a message to `twterm' saying "please open a shell window". To send exactly this message, one can use `twsendmsg' in the following way: twsendmsg "twterm" open ("twterm" is the name of the message port created by `twterm', while "twin" is the name of the message port builtin into twin server) Of course it is possible to start arbitrary commands with `twsendmsg', not just the user's shell: twsendmsg "twin" open "pine someone@somewhere.net" A last note: the message port must already exist to be able to send messages to it, so twsendmsg "twterm" [...] works only if there is at least one `twterm' running. Sending messages to "builtin twterm", the message port of the builtin terminal emulator, would work too, but only if the terminal emulator code (term.so) is already loaded into twin. Sending messages to "twin" instead always works, and it can auto-load term.so if needed. You can send also other kinds of messages. A (useless?) example is twsendmsg "twin" quit which causes twin to exit, as if Menu -> File -> Quit was selected. 6.1. Saving diagnostic messages (logs): twin and other programs send diagnostic messages, informations, and most notably errors, to standard error. This is good in most cases, but if you tell twin to use its own tty as display, diagnostic messages may be lost or may even garble the display. In this case, it can be useful to save diagnostic messages to some file or device, for example another tty, or /var/log/twdm.log. The way to obtain this depends on your shell, but with bash and many other common shells, you can redirect standard error in this way: $ program arguments 2>filename The various programs distributed with twin do not change their standard error, so for example, running $ twdm 2>/var/log/twdm.log will redirect all diagnostic messages produced by twdm and by programs executed by it (twin and twattach/twdisplay) to /var/log/twdm.log. Furthermore, diagnostic messages produced by twin are also collected within twin itself, and can be viewed selecting Menu -> ≡ -> Messages from the default menu. 6.2. Security Statement on Sockets: As said above, the authorization method currently used is similar to Xauthority: the file .TwinAuth in your home directory holds some magic data that clients use to answer the challenge received from twin. If that data is wrong or the file doesn't exist, clients can connect to twin only using the unix socket (TWDISPLAY=:<something>) so they must run on the same machine as twin; remote programs won't be able to connect. Also, the unix socket is set to permissions 600, so only the owner can connect to it (at least on Linux it works this way). The `challenge' is actually an MD5 checksum verification: server sends 256 bytes of random data; client does MD5 of that data + .TwinAuth and sends MD5 back. If server agrees on MD5, it grants connection. This challenge method has an important feature: The contents of your .TwinAuth is NEVER transmitted through any socket. So, unless your home directory resides on an NFS filesystem, you can be sure that noone will be able to find the data contained in your .TwinAuth by spying the network between twin and the clients you start. On the other hand, the connection between twin and clients is NOT encrypted, so it is easy to find out what you type and what you see in the client windows by spying the network as above. 7. Transparent Compression Twin and libtw transparently support gzip compressed sockets by using the library `zlib'. If the connection between twin and the remote programs you want to run is slow, you may benefit from compression. To allow compression, you need zlib installed on your system, then ensure `./configure' found it: among the zillion of messages, it should also print a line like [...] checking for zlib.h... yes [...] checking for deflate in -lz... yes [...] finally compile twin and libtw. To actually use compression, append ",gz" to your $TWDISPLAY like in these examples: export TWDISPLAY=:0,gz export TWDISPLAY=myhost.somewhere.net:5,gz 8. Attach/Detach Twin can run without a display at all, can attach or detach from a display on the fly, and can also run with multiple simultaneous displays. There are various ways to temporarily close a display used by twin: 1) select `Suspend' from the `File' entry of the default menu. This is equivalent to the normal Unix job control associated to CTRL-Z: twin shuts down all its displays and returns to the shell it was started from. To resume twin, just type `fg' (or send a SIGCONT to it). This may not work if you used 2) below, because that detaches twin from the job control mechanism used by shells. 2) select `Detach' from the `File' entry of the default menu. WARNING: Be sure the Socket Server can be started before doing this! Otherwise you will not be able to talk to twin at all! In this case, twin shuts down all its displays and detaches (by forking in the background) from the shell it was started from, but keeps running as a daemon (with no display). 3) run `twdetach' (more explanations below for this, but in this case it is equivalent to selecting `Detach' from the default menu). 4) select `Display' from the `≡' entry of the default menu, watch the `Display' window pop up, choose a display from the list and click on `Remove'. There are two ways to have twin attach to a display (or to ONE MORE display, as twin can use multiple simultaneous displays): `twattach' and `twdisplay'. Let's start with `twattach': Basically, you run twattach specifying which display you want *twin* to attach to. Twin then tries to start that display by its own, while twattach's only work is to report all messages generated by twin during the attach (if you run twattach with the option `-q' (quiet), then twattach has nothing to do at all). Instead `twdisplay' works differently: You run twdisplay specifying which display you want *twdisplay* to use. Twdisplay tries to start that display, reporting any generated message. If the display succeeds in starting up, twdisplay connects to twin, registers itself as a special display, and then works as an intermediate layer between the display it started and twin: twdisplay sends to twin the events generated by the display, and when it receives draw requests from twin, it calls the appropriate functions of the display to keep it up-to-date. The two different programs have different advantages and disadvantages: twattach: advantages: fast, efficient, extremely lightweight. disadvantages: completely relies on twin to be able to use the display. For example, twin running on a host cannot connect to `gpm' running on another, and attaching twin to itself causes a deadlock. twdisplay: advantages: starts up the display by its own. This means that if you have twin running on a host, you can use twdisplay to attach twin to the console of another host, WITH mouse support (gpm). Also protects twdisplay from bugs, quirks and limitations in display drivers and libraries needed by them: libgpm can connect only ONCE to A SINGLE gpm, libX11 calls exit() when receives fatal errors from X server, etc. Using `twdisplay' to attach twin to itself works! disadvantages: eats more CPU and memory. Not really a problem these days. Examples: $ twattach --hw=X tell the default twin (corresponding to $TWDISPLAY) to attach to the default X server (corresponding to $DISPLAY) $ twdetach --hw=X tell the default twin to detach ONE display attached to the default X server $ twdetach --twin@:5 tell the twin corresponding to :5 to detach from ALL its displays and keep running in the background (same as using `Detach' from menu) $ twattach --twin@<some twin display> --hw=X@<some X display> tell twin correspinding to <some twin display> (for example :5, or myhost.somewhere.net:2) to attach to the X server corresponding to <some X display> The programs `twattach', `twin', and the X server do not need to run on the same host as long as they have the permissions to talk each other (see above for an explanation about how the file .TwinAuth is used for authorization control) $ twattach --twin@:5 --hw=tty tell twin :5 to attach to the same tty device you are running `twattach' on. For this to work, both `twattach' and `twin' must be running on the same host. $ twdisplay autoprobe for a display, then attach twin at $TWDISPLAY to it. The main advantage of using twdisplay is: since it is actually twdisplay that attaches to the display, while twin just talks to twdisplay using a socket, `twdisplay' and `twin' may even be running on different hosts. $ twdisplay --twin@myhost.somewhere.net:1 --hw=tty attach twin at myhost.somewhere.net:1 to the tty device you are running `twdisplay' on. $ twattach --twin@myhost.somewhere.net:1 --hw=tty@- tell twin at myhost.somewhere.net:1 to attach to its own controlling tty. This does not work if that twin has already detached from its tty, but you will be told that in case it happens. $ twdetach --twin@myhost.somewhere.net:1 --hw=tty@- tell twin at myhost.somewhere.net:1 to detach from its own controlling tty (supposing it was being used as a display) $ twattach --twin@:5 --hw=tty@<some tty device>,TERM=<terminal type> tell twin to attach to <some tty device>. In this case you must make sure no program is reading/writing on <some tty device> (for example you might run `sleep 365d' on it) or things will go BADLY wrong. WARNING: twin has no way to detect if the tty you specified is really a supported terminal. If you attach twin to an unsupported terminal, things might go BADLY wrong. $ twdisplay --twin@myhost.somewhere.net:1 --hw=twin@yourhost:3,gz attach twin running on myhost.somewhere.net:1 to another twin running on yourhost:3 and display on it. The final ",gz" means that the connection between `twdisplay' and the second `twin' will be compressed. The most general syntax of twattach is: twattach [-a|-d] [-v|-q] [-s|-x] [--twin@<TWDISPLAY>] --hw=<display>[,options] The most general syntax of twdisplay is: twdisplay [-v|-q] [-s|-x] [--twin@<TWDISPLAY>] [--hw=<display>[,options]] switches have the following meaning: -a : send attach command (default) -d : send detach command (same as running `twdetach [args ...]') -v, --verbose : be verbose and display all messages generated by twin while trying to attach (default) -q, --quiet : be quiet and display no messages -s, --share : allow multiple simultaneous displays (default) -x, --excl : request an eclusive display - detach all others if you do not specify `--twin@<TWDISPLAY>', the default $TWDISPLAY will be used. if you do not specify `--hw=<display>[,options]', twdisplay will autoprobe for it. known displays are: --hw=X[@<XDISPLAY>] or --hw=X11[@<XDISPLAY>] --hw=xft[@<XDISPLAY>] --hw=twin[@<TWDISPLAY>] --hw=tty[@<tty device>] and known display options are: all displays : ",noinput" to start the display as view-only; keyboard and mouse activity on that display will be ignored. : ",slow" to tell twin the display is slow and output to it should be buffered and chunked together as much as possible (this is on by default for -hw=X , -hw=X11 and -hw=xft) --hw=X or --hw=X11 or --hw=xft : : ",font=<fontname>" to choose your favourite X11 font (default: vga). : ",charset=<name>" to inform the driver about the codepage corresponding to the used font (default: autodetected). : ",drag" to allow using XCopyArea as redrawing speedup. This is off by default as on many X servers XCopyArea is actually slower than a normal redraw. Your mileage may vary. --hw=twin : ",gz" to enable gzip compression on the connecting socket. --hw=tty : ",termcap" to use termcap/ncurses interface even if other methods are available. : ",colorbug" use with termcap interface, if terminal does not reset colors to white on black using ESC [ m (or the appropriate sequence for the terminal). : ",mouse={xterm|twterm}" to force mouse to xterm-style or to twin-term-style in case it is not autodetected. : ",TERM=<terminal>" to specify the terminal type. : ",charset=<name>" to inform the driver about the codepage used by the terminal (default: CP437). : ",ctty" to tell twin to grab given tty as its new controlling tty (mostly useful from twdm) : ",utf8" to tell twin that the tty understands utf8 encoding to display Unicode. A common situation is the following: You have a detached twin, whose TWDISPLAY is :2, running on a host (say plato.alter.net), you are sitting at the console of another host (say globe.alter.net) and you want to attach twin on the console of globe.alter.net. How? Attaching twin to the X server of globe.alter.net is easy, just run this command on globe $ twattach --twin@plato.alter.net:2 --hw=X@globe.alter.net:0 or alternatively, $ twdisplay --twin@plato.alter.net:2 --hw=X@globe.alter.net:0 (this requires you have the same .TwinAuth on both hosts and that the X server on globe accepts the connection attempt, either due to `xhost +plato.alter.net' or by having a suitable .Xauthority on both hosts) But attaching twin (running on plato) to the console of globe is another matter, since that twin has no way to reach the tty devices on globe. The easiest way is to use `twdisplay', running this command on globe console: $ twdisplay --twin@plato.alter.net:2 --hw=tty There are ways to solve the problem without `twdisplay', but they are both more complex and less functional, as they either require using telnet or ssh from globe to plato (and thus losing the mouse) or starting a SECOND twin, this time on globe console, and attaching the first twin on it. To avoid accidental problems, or to protect your twin session in a hostile environment, twin also implements exclusive displays: An exclusive display can be started only if there aren't already exclusive display running, it detaches all other displays while it starts, and forbids any other display to be attached as long as it is running. Twdetach is unable to detach an exclusive display: the only way to quit it is the Display window inside twin (killing the `twdisplay' process that requested the exclusive display works too). To request an exclusive display, you must add the option `-x' or `--excl' to twdisplay command line. Example: $ twattach --excl --twin@:0 --hw=tty Exclusive displays can be started directly by twin, exactly in the same way: $ twin --excl --hw=tty Of course, when specifying `--excl', twin can only start one display. Summary of twin options: -h, --help display this help and exit -V, --version output version information and exit --secure forbid starting external programs --envrc execute .twenvrc.sh and read its output to set environment variables (mostly useful for twdm) -s, --share start display as shared (default) -x, --excl start display as exclusive --nohw start in background without display --hw=<display>[,options] start with the given display (multiple --hw=... allowed) (default: autoprobe all displays until one succeeds) 9. Installing fonts a. X11: Two X11 fonts are currently distributed with twin: vga.pcf.gz a VGA-like font (size 8x16, codepage 437) 9x19u.pcf.gz a font derived from public domain '10x20.pcf.gz' font: it has 9x19 size and it is unicode. full X11 name is -misc-fixed-medium-r-normal--19-200-75-75-C-100-ISO10646-1 If you want to install these fonts to use them under X, you should do something like this (details are system dependant): copy fonts/*.pcf.gz from the distribution to a misc fonts directory, I used /usr/X11R6/lib/X11/fonts/misc on my system. Run `mkfontdir' as root on the directory used. Since you are at it, you may also add the line 9x19 -misc-fixed-medium-r-normal--19-200-75-75-C-100-ISO10646-1 to `fonts.alias' in the same directory. Run `xset fp rehash'. Use the command 'xlsfonts | grep vga' to see if the fonts have been registered correctly. This should fix some problems with twin displaying strange fonts under X, since if twin cannot find the `9x19' nor the `vga' font, it will fallback on `fixed', which has no pseudo-graphical characters and makes twin look really ugly. b. VGA text display: To use twin on a VGA or better text display, you can use the supplied VGA font `fonts/vgafont.raw' by typing a command like `setfont fonts/vgafont.raw' or `loadfont fonts/vgafont.raw' (again, details are system dependant). As side note, if you are going to use twin on a VGA text display, I strongly suggest to set your VGA card to something better than the default 80x25. Some of the ways to do this are: using SVGATextMode; using the card BIOS; compiling framebuffer support in your linux kernel. 10. Greetings I hope you will like using twin as I liked writing it. Have fun... Massimiliano Ghilardi <https://github.com/cosmos72/> ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/diagram.txt�������������������������������������������������������������������������0000664�0000000�0000000�00000016125�13775351206�0015614�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Date: Mon, 4 Nov 2002 20:12:03 +0100 (CET) From: Massimiliano Ghilardi <e-mail omitted> To: Adam Olsen <e-mail omitted> Cc: twin-develop@lists.sourceforge.net Subject: architecture of twin I thought on what you said about putting widgets in the server, and also about the discussion with PLD people on tha same topic, and I came up with a nice (IMHO) idea: adding extensions to twin server, to let it run arbitrary code in a controlled way, and in particular adding a "libTT" extension, that will execute libTT functions on clients' request. In this way clients have a twin server featuring a toolkit library, but I do not want clients to have hardcoded, ad-hoc code to exploit these features of twin, so I thought about writing two specialized HW drivers for libTT: hw_twin_tunnel_c and hw_twin_detunnel_c, as you can see in the diagram below (which enhances the diagram I previously wrote): +---------------+ +-------------------------------------------------------------------+ | libtw clients | | libTT clients | +---------------+ +-------------------------------------------------------------------+ | | | V | +-------------------------------------------------------------------+ | | libTT (libs/libTT/) | | +-------------------------------------------------------------------+ | | | V | +-------------------------------------------------------------------+ | | libTT HW drivers (libs/libTT/HW/hw_*_c) | | +-------------------------------------------------------------------+ | | | | | | | V V V V V | +----------------+ +---------+ +----------+ +----------+ +------------------+ | |hw_twin_tunnel_c| |hw_twin_c| | hw_gtk_c | | hw_X11_c | |hw_twin_detunnel_c| | +----------------+ +---------+ +----------+ +----------+ +------------------+ | | | | | | V V V V V | +--------------------------------+ +----------+ +----------+ V | libtw (network library) | | libgtk | | libX11 | cannot be used here +--------------------------------+ +----------+ +----------+ ^ | | | | | ............. network........................................................................................... | | | | | V | +----------------------------------------------------------------------------------------------------------+ | | twin server (server/) | | +----------------------------------------------------------------------------------------------------------+ | | ^ | | V | V | +-------------------------------------------------------------------+ | +--------------------------------+ | | server HW drivers (server/hw/hw_*.c) | | | server extensions (server/ext/)| | +-------------------------------------------------------------------+ | +--------------------------------+ | | ^ | | | | | | V | V V V | V | +---------+ | +------------+ +--------+ +--------+ | +------------------+ | |hw_twin.c| | |hw_display.c| |hw_X11.c| |hw_tty.c| | | ext_libTT.c | | +---------+ | +------------+ +--------+ +--------+ | +------------------+ | | | | | | | | +--------+ | V V V | V | +---------+ +--------+ +--------+ | +------------------+ | |twdisplay| | libX11 | | tty | | | libTT | | +---------+ +--------+ +--------+ | +------------------+ | | | | +--------+ | V | +------------------+ | | libTT HW drivers | | +------------------+ | | | V | +------------------+ | |hw_twin_detunnel_c| | +------------------+ | | +-----------+ In this way, it is possible for libTT clients to create the widgets on either client or server side, depending on runtime (!) parameters. If $TTDISPLAY=twin then libTT clients use the libTT HW driver 'hw_twin_c', which (as it is normal) internally create widgets, then uses libtw to draw them (using low level protocol) on a twin server. If $TTDISPLAY=twin-tunnel then libTT clients use the libTT HW driver 'hw_twin_tunnel_c', which only creates fake widgets internally, and uses libtw to tell the twin server to load the libTT extension (which, for now, MUST use libTT HW driver hw_twin_detunnel_c) and use it to create real widgets (high level protocol between client libTT and twin server libTT extension, encapsulated by libtw extension mechanism), then hw_twin_detunnel_c draws widgets on twin server itself using server native functions (low level protocol): this means there will be NO expensive network data transfers for widget related events (expose, repaint, ALL mouse and keyboard activity, theme change, ...): the only data passing across the network are client function calls (widget create/modify/delete) and events for listeners on client side explicitly created by the client. I hope you will like the idea, Massimiliano Ghilardi �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/libTT-design.txt��������������������������������������������������������������������0000664�0000000�0000000�00000022675�13775351206�0016504�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This file explains libTT internals: it is only useful if you are a programmer and you want to modify libTT. 1) libTT is plain C code. User visible libTT objects are C opaque struct pointers. They are internally manipulated by libTT to locate the actual objects, which are inaccessible by clients, and are C structures that also contain a set of methods (function pointers), internally used to actually perform work on the objects. Clients can only call global libTT method wrappers that perform extensive sanity checkings (like checking that a ttwindow argument actually IS a ttwindow), then internally call the needed method. At the time of writing, libTT objects (`obj' from now on) may have one of these types: ttfn ttobj ttevent tteventbig ttcallback ttlistener ttcomponent ttvisible ttnative ttwidget ttlabel ttanybutton ttbutton ttcheckbutton ttradiobutton ttscrollbar ttbuttongroup ttwindow ttframe ttscroller ttmenuitem ttcheckmenuitem ttradiomenuitem ttmenu ttmenubar ttanytext tttextfield tttextarea tttheme ttapplication ttfn is the type used to represent object types at runtime: you can get the type of an obj `o' with: TTCLASSOF(o) the result is an obj of type `ttfn' and with a value that uniquely indicates the type of `o'. As a shortcut, TTFN(o) is the same as TTCLASSOF(o). libTT implements inheritance, so it is possible to cast an obj from a type to another under certain conditions: you can cast an obj `o' to type <t> (say, ttlabel) if and only if TTINSTANCEOF(<t>, o) returns 1. As a shortcut, TTIS(<t>, o) is the same as TTINSTANCEOF(<t>, o). to perform the actual cast, just write: (<t>)o in our example, you would write (ttlabel)o if you have a object `t' of type `ttfn' (i.e. a runtime type), you can check whether an object `o' is of type `t' with: TTInstanceOf(t, (ttobj)o) As a shortcut, TTIs(t, o) is the same as TTInstanceOf(t, o). notes: you cannot create or destroy `ttfn' objects. exactly one `ttfn' object exists for each libTT type. you cannot cast an obj of type `ttfn' to any other type. you can access all the `ttfn' objects since they are libTT global variables: they are named TTFN_<type> where <type> is one of the libTT types listed above. for the curious, TTINSTANCEOF(type, o) is just the macro: #define TTINSTANCEOF(type, o) TTIstanceOf(TT_CAT(TTFN_,type), (ttobj)(o)) where TT_CAT(a,b) is a macro that concatenates its arguments as a##b There is also the null object: it has value zero (or 0). You cannot do anything with it, and it is considered an invalid object. If you cast an object `o' to a type for which TTIS() returns 0, the result of the cast is an invalid object. If you pass an invalid object to TTFN(), the result is zero. If you pass an invalid object to TTIS() or TTIs(), the result is zero (i.e. the cast is not allowed). Things you should NOT do with client-visible libTT objects (`obj'): a. do not assume they point to meaningful (or even existing) memory, since they do not. b. do not assume they are correctly aligned, since they are not. c. (follows a and b) do not try to dereference them. d. do not make any math operation on them. even if you can compare them (see below), you cannot add, subtract, or manipulate in any way them. Things you CAN do with client-visible libTT objects (`obj') : a. you can compare them: each distinct obj is represented by a unique client-visible value. you may need to cast them to (void *) or to (ttobj) in order for the compiler to allow the comparison. b. you can compare an obj with 0 (zero), after you cast 0 to the proper type. in other words, each obj is different from zero. c. you can cast them to a type <t>, provided that TTIS(<t>, <o>) is 1. d. (obvious) you can pass an obj as argument to libTT functions where an obj of the same type (or you can cast it to the that type, see c.) is expected. 2) Plain C has no object-oriented features like inheritance, so all the necessary object-oriented stuff is automagically produced using `m4' macros. For this purpose, various files exist: include/TT/m4/TTclasses.m4h m4 definitions for libTT objects hierarchy: defines all objects fields and methods. used to autogenerate a lot of files. after including it, you can define the m4 macros `el', `extends', `field', `private', `protected', `public' then use one of the `TT*list', `TT*def_tt*' macros to autogenerate whatever appropriate for your purpose. include/TT/m4/TThandy.m4h m4 definitions for some handy libTT method helpers. defines a few more objects methods. after including it, you can define the m4 macros `el', `extends', `field', `exported_fields' then use one of the `TT*list', `TT*handy_tt*' macros to autogenerate whatever appropriate for your purpose. ------------ include/TT/m4/defs.m4 includes "include/TT/m4/TTclasses.m4h" then properly defines the keywords `el', `extends', `field', `private', `protected', `public' to produce the C header file "include/TT/defs_m4.h" include/TT/defs_m4.h autogenerated from "include/TT/m4/defs.m4", it is a libTT header. declares all object types and related method types. intentionally does NOT provide internal informations about the declared objects, but only C opaque struct pointers. also provides C #defines to handle objects hierarchy. ------------ include/TT/m4/handy.m4 includes "include/TT/m4/TThandy.m4h" then properly defines the keywords `el', `extends', `field', `exported_fields' to produce the C header file "include/TT/handy_m4.h" include/TT/handy_m4.h autogenerated from "include/TT/m4/handy.m4", it is a libTT header. declares some handy object methods. ------------ libs/libTT/m4/defs.m4 includes "include/TT/m4/TTclasses.m4h" then properly defines the keywords `el', `extends', `field', `private', `protected', `public' to produce the C header file "libs/libTT/defs_m4.h" libs/libTT/defs_m4.h autogenerated from "libs/libTT/m4/defs.m4", it is an internal libTT header. declares all object types and related method types. provides the full prototype and informations about the libTT object structures. also provides C #defines to handle objects hierarchy. ------------ libs/libTT/m4/tree.m4 includes "include/TT/m4/TTclasses.m4h" then properly defines the keywords `el', `extends', `field', `private', `protected', `public' to produce the C header file "libs/libTT/tree_m4.h" libs/libTT/tree_m4.h autogenerated from "libs/libTT/m4/tree.m4", it is an internal libTT header. uses voodoo m4 magic to define obscure constants for magicmask_* and magic_* fields, in order to handle runtime type checking and casting between libTT types. Also defines constants to identify each object field. ------------ libs/libTT/m4/wrap.m4 includes "include/TT/m4/TTclasses.m4h" then properly defines the keywords `el', `extends', `field', `private', `protected', `public' to produce the C header file "libs/libTT/wrap_m4.h" libs/libTT/wrap_m4.h autogenerated from "libs/libTT/m4/wrap.m4", it is an internal libTT header. implements many client-visible methods as wrappers around internal libTT functions. ------------ then, for each display target (like "twin", "gtk", ...) : ------------ libs/libTT/HW/m4/hw.m4 properly defines the keywords `DEF', `NEW', `SUPER', `REALIZE', `DEL', `DELSUPER' to include the various "libs/libTT/hw/hw_*_c" to produce the C header files "libs/libTT/hw_*_m4.c". properly defines the keywords `extends', `field', `private', `protected', `public' then includes "include/TT/m4/TTclasses.m4h" to provide references to fallback implementations of methods not overloaded in "libs/libTT/hw_*_m4.c" ------------ libs/libTT/HW/hw_*_c C implementation of overloaded libTT methods for the specific target. used by libs/libTT/HW/m4/hw.m4 to autogenerate libs/libTT/HW/hw_*_m4.c ------------ libs/libTT/HW/hw_*_m4.c autogenerated from "libs/libTT/HW/hw_*_c", it contains, beyond "libs/libTT/HW/hw_*_c" itself, references to fallback implementations of methods not overloaded in "libs/libTT/hw_*_m4.c" ------------ Appendix 1. type inheritance properties The following properties hold for all valid types and objects: . if ((o) is a valid object) then ((t = TTFN(o)) is a valid type) . TTFN(t) == TTFN_ttfn . TTFN(TTFN(o)) == TTFN_ttfn . TTIs_ttfn(t, t) == TRUE . TTIs_ttfn(t, TTFN(o)) == TTIs(t, o) . #consequence: TTIs(TTFN(o), o) == TRUE . if (TTIs_ttfn(t1, t2) && t1 != t2) then !TTIs_ttfn(t2, t1) . if (TTIs_ttfn(t1, t2) && TTIs_ttfn(t2, t3)) then TTIs_ttfn(t1, t3) . if (!TTIs_ttfn(t1, t2) && !TTIs_ttfn(t2, t1)) then \ exists t3 such that \ TTIs_ttfn(t3, t2) && TTIs_ttfn(t3, t1) . if (TTIs_ttfn(t1, t2)) then TTIs_ttfn(TTGetSuper_ttfn(t1), t2) . if (!TTIs_ttfn(t1, t2)) then the following statements are definitively TRUE: (i.e. all statements after a certain point are TRUE) TTIs_ttfn(t1, t2) TTIs_ttfn(TTGetSuper_ttfn(t1), t2) TTIs_ttfn(TTGetSuper_ttfn(TTGetSuper_ttfn(t1)), t2) TTIs_ttfn(TTGetSuper_ttfn(TTGetSuper_ttfn(TTGetSuper_ttfn(t1))), t2) TTIs_ttfn(TTGetSuper_ttfn(TTGetSuper_ttfn(TTGetSuper_ttfn(TTGetSuper_ttfn(t1)))), t2) ... �������������������������������������������������������������������twin-0.9.0/docs/libtw.txt���������������������������������������������������������������������������0000664�0000000�0000000�00000051573�13775351206�0015337�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ libtw 2.0.0 tutorial libtw is the library that talks to `twin' server. Since the parallel between X11 server and twin server comes out so often, we could say libtw is the equivalent of libX11. One thing that has been asked many times is porting applications from ncurses to libtw. Unlickily, things are not so straightforward as the two libraries have quite different approaches: libtw is a network transparent, multi window, multi headed, event driven, mouse aware library, while ncurses is full-screen, single-headed library without mouse support and without events. If all you want is to have a ncurses program run inside a SINGLE twin window, you could just let it run unmodified inside twterm, or, if you like hacking programs, you could substitute printf(), write(), etc. calls to standard output with TwWriteCharsetWindow() and read() from standard input with TwReadMsg(). Yet, what you will get will still be a program displaying in a single window: converting an application that uses ncurses windows to use multiple libtw windows is usually much more difficult as with libtw any open window can generate events at any time, while with ncurses the "focused" window that generates events (user input) is decided by the application. the libtw API 1. Types and defines To access libtw functions, you need to #include <Tw/Tw.h> This include file defines various data types used by all libtw functions. The types, together with their usual definition, are: typedef signed char num; typedef unsigned char byte; typedef signed short dat; typedef unsigned short udat; typedef signed int ldat; typedef unsigned int uldat; Anyway, except for `num' and `byte' (which are always 1 byte long) you must NEVER assume to know a type's size as it may change between releases of libtw. You should instead use either sizeof(<type>) or the defines MINDAT MAXDAT MAXUDAT MINLDAT MAXLDAT MAXULDAT for the minimum and maximum values of the various types. Other defines coming from the include are: TW_NOID : a numeric value meaning `no object'. Used to indicate an invalid window, screen, msgport, etc. (see below) TW_NOFD : a negative number meaning `no file descriptor' (-1) FALSE, TRUE : the obvious meaning TW_INET_PORT: the base TCP port used by libtw/twin server (7754) TW_SMALLBUFF : the size for a small data buffer TW_BIGBUFF : the size for a bigger data buffer To represent colors, there are some dedicated types and defines: trune; tcolor; tcell; Don't assume you know the sizes of these types, always use sizeof(<type>) if you need it. trune can hold a single character. This means it surely can contain an ASCII character, but depending on libtw configuration, it may even contain a UNICODE character. tcolor can hold a single foreground color + background color combination This is loosely based on VGA colors, with 8 different colors tblack, tblue, tgreen, tcyan, tred, tmagenta, tyellow, twhite and a special thigh flag. The maximum possible color value is tmaxcol. to convert between this representation and ANSI colors, there are two macros: TANSI2VGA(col) and TVGA2ANSI(col) To compose and decompose a tcolor from fg/bg pair, you have the macros TFG(fg), TBG(bg) and TCOL(fg,bg) to compose a tcolor TCOL(fg,bg) is simply TFG(fg)|TBG(bg) TCOLBG(col) and TCOLFG(col) to decompose it To compose and decompose a tcell from tcolor/trune pair, you have the macros TCELL(col,rune) to compose and TCOLOR(cell), TRUNE(cell) to decompose. Examples: a blue `f' on white background is TCELL( TCOL(tblue,twhite), 'f') a cyan foreground on red background is TCOL(tcyan,tred) and so on... WARNING: TRUNE(), TCOLOR() and TCELL() are macros that can evaluate their arguments more than once. Don't use arguments that have side effects (like increments) inside them. For example, this causes unpredictable results because of the `h++' increment inside the TCELL() macro: tcell a[2]; trune buf[2], *h = buf; a[0] = TCELL(TCOL(twhite,tblack), *h++); a[1] = TCELL(TCOL(twhite,tblack), *h++); (types for time intervals: TODO) Mouse events masks HOLD_LEFT, HOLD_MIDDLE, HOLD_RIGHT, HOLD_ANY PRESS_LEFT, PRESS_RIGHT, PRESS_MIDDLE, PRESS_ANY #define DOWN_LEFT (HOLD_LEFT|PRESS_LEFT) #define DOWN_RIGHT (HOLD_RIGHT|PRESS_RIGHT) #define DOWN_MIDDLE (HOLD_MIDDLE|PRESS_MIDDLE) #define DOWN_ANY (HOLD_ANY|PRESS_ANY) RELEASE_LEFT, RELEASE_RIGHT, RELEASE_MIDDLE, RELEASE_ANY DRAG_MOUSE MOTION_MOUSE #define ANY_ACTION_MOUSE (PRESS_ANY | RELEASE_ANY | DRAG_MOUSE) isPRESS(code), isDRAG(code), isRELEASE(code), isMOTION(code) Finally, the types for the various libtw objects: tobj (generic), twidget (generic), tgadget, trow, twindow, tmenuitem, tmenu, tscreen, tmsgport The following are instead pointers to various structures: tevent_common, tevent_keyboard, tevent_keyboard, tevent_mouse, tevent_display, tevent_window, tevent_gadget, tevent_menu, tevent_selection, tevent_selectionnotify, tevent_selectionrequest, tevent_any tmsg /* Msg ->Type : */ TW_MSG_DISPLAY, TW_MSG_WINDOW_KEY, TW_MSG_WINDOW_MOUSE, TW_MSG_WINDOW_CHANGE, TW_MSG_WINDOW_GADGET, TW_MSG_MENU_ROW TW_MSG_SELECTION, TW_MSG_SELECTIONNOTIFY, TW_MSG_SELECTIONREQUEST TW_MSG_SELECTIONCLEAR tdisplay /* Gadget Flags : */ TW_GADGETFL_DISABLED, TW_GADGETFL_TOGGLE /* Row Flags : */ TW_ROW_INACTIVE, TW_ROW_ACTIVE, TW_ROW_IGNORE /* Window Attr : */ TW_WINDOW_WANT_KEYS, TW_WINDOW_WANT_MOUSE, TW_WINDOW_WANT_MOUSE_MOTION TW_WINDOW_WANT_CHANGES, TW_WINDOW_DRAG, TW_WINDOW_RESIZE, TW_WINDOW_CLOSE TW_WINDOW_ROLLED_UP, TW_WINDOW_X_BAR, TW_WINDOW_Y_BAR /* Window Flags: */ TW_WINDOWFL_USEROWS, TW_WINDOWFL_USECONTENTS, TW_WINDOWFL_USEEXPOSE TW_WINDOWFL_USEFILL, TW_WINDOWFL_CURSOR_ON, TW_WINDOWFL_MENU, TW_WINDOWFL_DISABLED, TW_WINDOWFL_BORDERLESS, TW_WINDOWFL_ROWS_INSERT, TW_WINDOWFL_ROWS_DEFCOL, TW_WINDOWFL_ROWS_SELCURRENT /* Window CursorType : */ TW_NOCURSOR, TW_LINECURSOR, TW_SOLIDCURSOR /* Buttons on window borders: */ TW_MAX_BUTTONS 2. Functions When no connections are open, you can call byte Tw_CheckMagic(byte Magic[]); to ensure sizeof() of the various types are the same in the client and in the library, and you can call void Tw_ConfigMalloc(void *(*my_malloc)(size_t), void *(*my_realloc)(void *, size_t), void (*my_free)(void *)); to set the functions extern void *(*Tw_AllocMem)(size_t); extern void *(*Tw_ReAllocMem)(void *, size_t); extern void (*Tw_FreeMem)(void *); extern byte *(*Tw_CloneStr)(byte *); to your custom malloc/free routines. To open a connection to a twin server, call (Tw_Display is optional) byte TwOpen(byte *Tw_Display); or tdisplay Tw_Open(byte *Tw_Display); To close, void TwClose(void); or void Tw_Close(tdisplay TwD); The file descriptor of a connection is returned by int TwConnectionFd(void); or int Tw_ConnectionFd(tdisplay TwD); As you may already have noticed, the functions starting with "Tw_" are multiheaded, i.e. can handle multiple tdisplay:s If all you want is to talk to a _single_ display, you can use the functions starting with "Tw" only (they are actually macros) and save a little typing. In case you need it, the "Tw" functions use the tdisplay Tw_DefaultD, so for example, TwConnectionFd is defined as #define TwConnectionFd() Tw_ConnectionFd(Tw_DefaultD) /* the following four functions return FALSE only after libtw has paniced */ /* flush output buffer. * if not all data can be written immediately, block, then write data when * output becomes possible again. return only after all data has been written */ byte TwFlush(void); byte Tw_Flush(tdisplay TwD); /* flush output buffer and wait for all replies from server */ byte TwSync(void); byte Tw_Sync(tdisplay TwD); /* did the library panic on that display? */ byte TwInPanic(void); byte Tw_InPanic(tdisplay TwD); /* * after a panic (i.e. a fatal error), the only useful thing * you can do is to Tw_Close() the display and, if you need, * to Tw_Open() again. */ /* * try to write to the underlying socket. * if not all data could be written immediately, write as much as possible, * keep the rest queued, then return. * * returns FALSE only after libtw has paniced, * returns TRUE if all data was written. * returns TRUE+TRUE if not all data could be written. */ byte TwTimidFlush(void); byte Tw_TimidFlush(tdisplay TwD); /* * This is the function you must call to get a Msg from the server. * If Wait is TRUE and no Msg is available, it flushes output queue * (with Tw_Flush()) then waits until a Msg arrives. * If Wait is FALSE and no Msg is available, it flushes output queue * non-blocking (with Tw_TimidFlush()), then it tries non-blocking * to receive more Msgs. * * In both cases, if there are already received Msgs they are returned * without waiting. */ tmsg TwReadMsg(byte Wait); tmsg Tw_ReadMsg(tdisplay TwD, byte Wait); /* * this is just like Tw_ReadMsg(), but returns a Tw_AllocMem() copy * of the message, to avoid concurrency problems with other threads. * You must Tw_DeleteMsg() it when done! */ tmsg TwCloneReadMsg(byte Wait); tmsg Tw_CloneReadMsg(tdisplay TwD, byte Wait); /* * This is the function you must call to check if there are pending Msgs. * There may be messages to process even if there's nothig to read on * (Fd = Tw_ConnectionFd()) as messages can be received also during any * blocking function call like Tw_Sync(), Tw_CreateWindow(), etc. * Look at the twterm sources for an example. * * This returns the first pending Msg, or (tmsg)0 if none is available * and none can be received non-blocking. */ tmsg TwPeekMsg(void); tmsg Tw_PeekMsg(tdisplay TwD); /* * <*> B I G W A R N I N G <*> * * Tw_PeekMsg() and Tw_ReadMsg() return a (tmsg) pointer to data * in a static buffer. The pointer becomes invalid after a call * to any function of Tw/Tw.h with non-void return value, * so that it sends something to the server and waits for the server * to send the return value (i.e. it is blocking), * in particular any of the following: * (but calling one of these with an argument pointing to data * inside a tmsg is allowed) * * Tw_Sync(); * Tw_PeekMsg(); * Tw_ReadMsg(); * Tw_CreateGadget(); * Tw_SearchGadget(); * Tw_CreateWindow(); * Tw_Create4MenuWindow(); * Tw_Create4MenuMenuItem(); * Tw_CreateMsgPort(); * Tw_CreateMenu(); * Tw_FirstScreen(); * Tw_FirstMsgPort(); * [...] * * If you are using threads, or just have a doubt that your code might * reference the message returned Tw_PeekMsg() or Tw_ReadMsg() * after a call to one of the above functions, use Tw_CloneReadMsg() : * it's just like Tw_ReadMsg(), except that it returns a Tw_AllocMem() copy * of the message, that you can use as long as you wish. Just remember to * Tw_DeleteMsg() it when done! * * * Other important notes: * 1. Only ONE MsgPort can exists at max on each connection. * 2. Tw_DeleteMsgPort() calls Tw_DeleteMenu() on all menus created by the client * and Tw_DeleteWidget/Gadget/Window() on all gadgets/widgets/windows created by the client. * 3. Tw_DeleteMenu() calls Tw_UnMapWindow() on all windows which use that menu. * 4. Tw_DeleteWidget[/Gadget/Window]() calls Tw_UnMapWidget() on all sub-gadgets/widgets/windows * of that widget, does NOT call Tw_DeleteWidget[/Gadget/Window]() recursively on them! * If you wish to delete a widget and all sub-widgets inside it, * use Tw_RecursiveDeleteWidget[/Gadget/Window]() * * also, if you exit() from your program without calling Tw_Flush(), Tw_Sync() or Tw_Close(), * pending data will *NOT* be sent to the server. */ tmsgport Tw_CreateMsgPort(tdisplay TwD, byte NameLen, byte *ProgramName, time_t PauseSec, frac_t PauseFraction, byte WakeUp); /* WakeUp: */ #define TW_TIMER_ALWAYS ((byte)1) #define TW_TIMER_ONCE ((byte)2) void Tw_DeleteMsgPort(tdisplay TwD, tmsgport MsgPort); tgadget Tw_CreateGadget(tdisplay TwD, twidget Parent, dat Left, dat Up, tcolor ColText, tcolor ColTextSelect, tcolor ColTextDisabled, tcolor ColTextSelectDisabled, uldat Attr, uldat Flags, dat XWidth, dat YWidth); void Tw_DeleteGadget(tdisplay TwD, tgadget Gadget); tgadget Tw_SearchGadget(tdisplay TwD, twindow Window, dat i, dat j); tgadget Tw_CreateButtonGadget(tdisplay TwD, twindow Window, twindow Tw_CreateButtonGadget(tdisplay TwD, twidget Parent, dat XWidth, dat YWidth, TW_CONST byte *Title, uldat Flags, udat Code, tcolor BgCol, tcolor Col, tcolor ColDisabled, dat Left, dat Up); void Tw_Create4MenuRow(tdisplay TwD, twindow Window, udat Code, byte FlagActive, uldat TextLen, byte *Text); #define Tw_Row4Menu Tw_Create4MenuRow twindow Tw_CreateWindow(tdisplay TwD, dat NameLen, TW_CONST byte *Name, TW_CONST tcolor *ColName, tmenu Menu, tcolor ColText, uldat cursorType, uldat Attr, uldat Flags, dat XWidth, dat YWidth, dat ScrollBackLines); void Tw_DeleteWindow(tdisplay TwD, twindow Window); twindow Tw_Create4MenuWindow(tdisplay TwD, tmenu Menu); #define Tw_Win4Menu Tw_Create4MenuWindow void Tw_MapWindow(tdisplay TwD, twindow Window, tscreen Screen); void Tw_UnMapWindow(tdisplay TwD, twindow Window); void Tw_WriteCharsetWindow(tdisplay TwD, twindow Window, uldat AsciiLen, TW_CONST char *charset_bytes); void Tw_WriteUtf8Window(tdisplay TwD, twindow Window, ldat AsciiLen, TW_CONST char *utf8_bytes); void Tw_WriteTCellWindow(tdisplay TwD, twindow Window, udat x, udat y, uldat Len, TW_CONST tcell *cells); void Tw_WriteRowWindow(tdisplay TwD, twindow Window, uldat Len, byte *Text); void Tw_SetColTextWindow(tdisplay TwD, twindow Window, tcolor ColText); void Tw_SetColorsWindow(tdisplay TwD, twindow Window, udat Bitmap, tcolor ColGadgets, tcolor ColArrows, tcolor ColBars, tcolor ColTabs, tcolor ColBorder, tcolor ColText, tcolor ColSelect, tcolor ColDisabled, tcolor ColSelectDisabled); void Tw_ConfigureWindow(tdisplay TwD, twindow Window, byte Bitmap, dat Left, udat Up, udat MinXWidth, udat MinYWidth, udat MaxXWidth, udat MaxYWidth); void Tw_ResizeWindow(tdisplay TwD, twindow Window, udat XWidth, udat YWidth); void Tw_GotoXYWindow(tdisplay TwD, twindow Window, uldat X, uldat Y); tgadget Tw_SearchGadgetWindow(tdisplay TwD, twindow Window, dat X, dat Y); tmenuitem Tw_Create4MenuMenuItem(tdisplay TwD, tmenu Menu, twindow Window, byte Flags, udat NameLen, byte *Name); #define Tw_Item4Menu Tw_Create4MenuMenuItem tmenuitem Tw_Create4MenuCommonMenuItem(tdisplay TwD, tmenu Menu); #define Tw_Item4MenuCommon Tw_Create4MenuCommonMenuItem void Tw_DeleteMenuItem(tdisplay TwD, tmenuitem MenuItem); tmenu Tw_CreateMenu(tdisplay TwD, tmsgport MsgPort, tcolor ColItem, tcolor ColSelect, tcolor ColDisabled, tcolor ColSelectDisabled, tcolor ColShtCut, tcolor ColSelShtCut, byte FlagDefColInfo); #define Tw_Grab Tw_CreateMutex void Tw_SetInfoMenu(tdisplay TwD, tmenu Menu, byte Flags, uldat Len, byte *Text, tcolor *ColText); #define Tw_Info4Menu Tw_SetInfoMenu void Tw_DeleteMenu(tdisplay TwD, tmenu Menu); void Tw_BgImageScreen(tdisplay TwD, tscreen Screen, udat BgWidth, udat BgHeight, tcell *BgImage); tscreen Tw_FirstScreen(tdisplay TwD); twindow Tw_FirstWindow(tdisplay TwD, tscreen Screen); tgadget Tw_FirstGadget(tdisplay TwD, twindow Window); tmsgport Tw_FirstMsgPort(tdisplay TwD); tmenu Tw_FirstMenu(tdisplay TwD, tmsgport MsgPort); tmenuitem Tw_FirstMenuItem(tdisplay TwD, tmenu Menu); tobj Tw_PrevObj(tdisplay TwD, tobj Obj); tobj Tw_NextObj(tdisplay TwD, tobj Obj); tobj Tw_ParentObj(tdisplay TwD, tobj Obj); udat Tw_GetDisplayWidth(tdisplay TwD); udat Tw_GetDisplayHeight(tdisplay TwD); tmsg Tw_CreateMsg(tdisplay TwD, udat Type, udat Len); void Tw_DeleteMsg(tdisplay TwD, tmsg Msg); byte Tw_SendMsg(tdisplay TwD, tmsgport MsgPort, tmsg Msg); void Tw_BlindSendMsg(tdisplay TwD, tmsgport MsgPort, tmsg Msg); /* * Selection handling. This is very similar to X11: * * if client <a> wants to know the contents of selection to paste it, * it must find who is the Selection owner (say <b>) and ask him: * * Tw_RequestSelection(TwD, Tw_GetOwnerSelection(TwD), ReqPrivate); * * ReqPrivate is some opaque data that client <a> may specify, * and it will be sent back later literally. * * after a while, a TW_MSG_SELECTIONNOTIFY will arrive with all the * precious Selection data and also with ReqPrivate. * * * * Now the other half of the story: What The Selection Owner Must Do. * (this is handled automagically by twin server if the client choosed * not to receive mouse events) * * If the user just hilighted some data in a window of client <b>, * client <b> will want to become the Selection owner, so that other * clients may receive that data too. For this, client <b> must call * * Tw_SetOwnerSelection(TwD, myMsgPort, TW_SEL_CURRENTTIME, TW_SEL_CURRENTTIME); * * where myMsgPort is actually client <b> MsgPort. From now on, and until * client <b> receives a TW_MSG_SELECTIONCLEAR event, client <b> must * send its precious Selection to whoever asks for it: every time client <b> * receives a TW_MSG_SELECTIONREQUEST event from libtw, it must call * * Tw_NotifySelection(TwD, Requestor, ReqPrivate, Magic, MIME, Len, Data); * * where Requestor and ReqPrivate come from the TW_MSG_SELECTIONREQUEST event, * and the rest is the Selection data: its Magic type (usually TW_SEL_UTF8MAGIC), * its MIME type ("text/plain", or whatever looks appropriate), * its Len in bytes and finally, Data: a pointer to the actual data. * * * There is a last thing: how can client <a> know that the user * wants to paste the selection in one of its windows ? * If the client keeps track of mouse movement and buttons, it can figure * out by its own. Otherwise, twin automagically solves the problem sending * a TW_MSG_SELECTION to the client when it should paste the selection * in a window. Client should then call the first function said above, * * Tw_RequestSelection(TwD, Tw_GetOwnerSelection(TwD), ReqPrivate); * * and start the chain of communications just explained. * Once client <a> got the Selection, it must paste it in the window * in whatever way is appropriate for that window. * * P.S. hint: a possible use for ReqPrivate is to store the window * that client <a> must paste into. * * Finally, the function prototypes: */ tobj Tw_GetOwnerSelection(tdisplay TwD); void Tw_RequestSelection(tdisplay TwD, tobj Owner, uldat ReqPrivate); void Tw_SetOwnerSelection(tdisplay TwD, tobj Owner, time_t Time, frac_t Frac); #define TW_SEL_CURRENTTIME ((time_t)0) void Tw_NotifySelection(tdisplay TwD, tobj Requestor, uldat ReqPrivate, uldat Magic, byte MIME[TW_MAX_MIMELEN], uldat Len, byte *Data); /* * a few string/memory related function macros: */ #define TwCopyStr(From,To) strcpy((To),(From)) #define TwCopyMem(From, To, Size) memcpy((To), (From), (size_t)(Size)) #define TwMoveMem(From, To, Size) memmove((To), (From), (size_t)(Size)) /* * the "Tw_" versions of the above ones exist, and have exactly the same * definition (no tdisplay argument here) */ /* * Check if the server supports a function given its name * (without the Tw/Tw_ prefix) */ uldat TwFindFunction(byte Len, byte *Name); uldat Tw_FindFunction(tdisplay TwD, byte Len, byte *Name); /* * Check if the server supports a list of functions given its pointers * (you must use the ones with Tw_ prefix as the other are macros) * The list must be NULL terminated. */ byte Tw_FindFunctions(tdisplay TwD, void *Function, ...); /* * enable gzip compression on the socket */ byte TwEnableGzip(void); byte Tw_EnableGzip(tdisplay TwD); /* * disable gzip compression on the socket */ byte TwDisableGzip(void); byte Tw_DisableGzip(tdisplay TwD); /* * these are reserved for the programs "twattach" and "twdisplay" : * manage attaching/detaching of display drivers inside twin core. */ void TwNeedResizeDisplay(void); void Tw_NeedResizeDisplay(tdisplay TwD); void TwAttachHW(uldat len, char *name, byte redirect); void Tw_AttachHW(tdisplay TwD, uldat len, char *name, byte redirect); char *TwAttachGetReply(uldat *len); char *Tw_AttachGetReply(tdisplay TwD, uldat *len); void TwAttachConfirm(void); void Tw_AttachConfirm(tdisplay TwD); byte TwDetachHW(uldat len, char *name); byte Tw_DetachHW(tdisplay TwD, uldat len, char *name); /* * load a customizable translation table. "trans" points to a 128 byte * translation table for the ASCII codes 0x80 - 0xff */ void TwSetFontTranslation(byte trans[0x80]); void Tw_SetFontTranslation(tdisplay TwD, byte trans[0x80]); �������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/ltrace.conf�������������������������������������������������������������������������0000664�0000000�0000000�00000054012�13775351206�0015565�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������; ; This file was automatically generated from m4/ltrace.conf.m4, do not edit! ; ; ; This is (almost) a complete listing of libtw ; function prototypes to use with Linux ltrace(1). ; ; You can either append the contents of this file to the system-wide ; /etc/ltrace.conf or to your personal ~/.ltrace.conf ; ; ; ltrace.conf ; ; Argument types: ; + == May vary (ie, is a returned value) (prefix) ; void ; int ; uint == (unsigned int) ; octal == (unsigned) [written in octal] ; char ; addr == (void *) [unsigned, written in hexa] ; file == (FILE *) [TODO] ; format == ((const char *), ...) [printf() like] [TODO] ; string == (char *) ; stringN == (char *) [N>=0] [show only up to (arg N) bytes] ; libtw.h ; ; the following are added manually ; addr Tw_CreateWidget(addr, int, int, uint, uint, int, int, int); void Tw_MapWidget(addr, addr, addr); void Tw_UnMapWidget(addr, addr); void Tw_DeleteObj(addr, addr); addr Tw_CreateGadget(addr, addr, int, int, string, uint, uint, int, int, int, int, int, int, int); addr Tw_SearchWidgetAtWidget(addr, addr, int, int); void Tw_Create4MenuRow(addr, addr, int, int, int, string); addr Tw_CreateWindow(addr, int, string2, string2, addr, int, uint, uint, uint, int, int, int); addr Tw_Create4MenuWindow(addr, addr); void Tw_WriteCharsetWindow(addr, addr, uint, string3); void Tw_WriteUtf8Window(addr, addr, uint, string3); void Tw_WriteTRuneWindow(addr, addr, int, addr); void Tw_WriteTCellWindow(addr, addr, int, int, uint, string); void Tw_WriteRowWindow(addr, addr, uint, string3); void Tw_ConfigureWindow(addr, addr, octal, int, int, int, int, int, int); void Tw_SetColorsWindow(addr, addr, octal, int, int, int, int, int, int, int, int, int); void Tw_GotoXYWindow(addr, addr, uint, uint); addr Tw_Create4MenuMenuItem(addr, addr, addr, int, int, string); addr Tw_Create4MenuCommonMenuItem(addr, addr); addr Tw_CreateMenu(addr, addr, int, int, int, int, int, int, int); void Tw_SetInfoMenu(addr, addr, int, uint, string, string); addr Tw_CreateMsgPort(addr, int, string2, int, int, int); addr Tw_FindMsgPort(addr, addr, int, string); addr Tw_GetOwnerSelection(addr); void Tw_SetOwnerSelection(addr, addr, int, int); void Tw_RequestSelection(addr, addr, addr); void Tw_NotifySelection(addr, addr, addr, addr, string, int, string); addr Tw_FirstScreen(addr); addr Tw_Open(string); void Tw_Close(addr); int Tw_Errno(addr); addr Tw_ErrnoLocation(addr); string Tw_StrError(addr, int); string Tw_StrErrorDetail(addr, int, int); int Tw_ConnectionFd(addr); int Tw_Flush(addr); int Tw_Sync(addr); int Tw_InPanic(addr); addr Tw_PendingMsg(addr); addr Tw_PeekMsg(addr); addr Tw_ReadMsg(addr, int); addr Tw_CloneReadMsg(addr, int); addr Tw_CreateMsg(addr, int, int); int Tw_SendMsg(addr, addr, addr); void Tw_BlindSendMsg(addr, addr, addr); addr Tw_Stat(addr, addr, addr, int); addr TwStat(addr, addr, int); ; ; the following are autogenerated ; uint Tw_FindFunction(addr, uint, string, uint, string); uint Tw_SyncSocket(addr); uint Tw_ServerSizeof(addr, uint); uint Tw_CanCompress(addr); uint Tw_DoCompress(addr, uint); void Tw_NeedResizeDisplay(addr); void Tw_AttachHW(addr, uint, string, uint); uint Tw_DetachHW(addr, uint, string); void Tw_SetFontTranslation(addr, string); void Tw_SetTRuneTranslation(addr, addr); void Tw_ChangeFieldObj(addr, addr, uint, uint, uint); void Tw_RecursiveDeleteWidget(addr, addr); void Tw_SetXYWidget(addr, addr, int, int); void Tw_ResizeWidget(addr, addr, int, int); void Tw_ScrollWidget(addr, addr, int, int); void Tw_DrawWidget(addr, addr, int, int, int, int, string, addr, addr); void Tw_SetVisibleWidget(addr, addr, uint); void Tw_FocusSubWidget(addr, addr); addr Tw_FindWidgetAtWidget(addr, addr, int, int); void Tw_RaiseWidget(addr, addr); void Tw_LowerWidget(addr, addr); void Tw_RestackChildrenWidget(addr, addr, uint, addr); void Tw_CirculateChildrenWidget(addr, addr, uint); addr Tw_CreateButtonGadget(addr, addr, int, int, string, uint, uint, addr, addr, addr, int, int); void Tw_WriteTextsGadget(addr, addr, uint, int, int, string, int, int); void Tw_WriteTRunesGadget(addr, addr, uint, int, int, addr, int, int); void Tw_SetTitleWindow(addr, addr, int, string); void Tw_SetColTextWindow(addr, addr, addr); addr Tw_FindRowByCodeWindow(addr, addr, int); addr Tw_CreateGroup(addr); void Tw_InsertGadgetGroup(addr, addr, addr); void Tw_RemoveGadgetGroup(addr, addr, addr); addr Tw_GetSelectedGadgetGroup(addr, addr); void Tw_SetSelectedGadgetGroup(addr, addr, addr); void Tw_RaiseRow(addr, addr); void Tw_LowerRow(addr, addr); void Tw_RestackChildrenRow(addr, addr, uint, addr); void Tw_CirculateChildrenRow(addr, addr, uint); addr Tw_Create4MenuAny(addr, addr, addr, uint, uint, int, string); void Tw_BgImageScreen(addr, addr, int, int, addr); addr Tw_PrevObj(addr, addr); addr Tw_NextObj(addr, addr); addr Tw_ParentObj(addr, addr); addr Tw_FirstWidget(addr, addr); addr Tw_FirstMsgPort(addr); addr Tw_FirstMenu(addr, addr); addr Tw_FirstW(addr, addr); addr Tw_FirstGroup(addr, addr); addr Tw_FirstMutex(addr, addr); addr Tw_FirstMenuItem(addr, addr); addr Tw_FirstGadget(addr, addr); int Tw_GetDisplayWidth(addr); int Tw_GetDisplayHeight(addr); addr Tw_GetAll(addr); uint Tw_SendToMsgPort(addr, addr, uint, string); void Tw_BlindSendToMsgPort(addr, addr, uint, string); uint Tw_SetServerUid(addr, uint, uint); ; ; This is (almost) a complete listing of libTT ; function prototypes to use with Linux ltrace(1). ; ; You can either append the contents of this file to the system-wide ; /etc/ltrace.conf or to your personal ~/.ltrace.conf ; ; ; ltrace.conf ; ; Argument types: ; + == May vary (ie, is a returned value) (prefix) ; void ; int ; uint == (unsigned int) ; octal == (unsigned) [written in octal] ; char ; addr == (void *) [unsigned, written in hexa] ; file == (FILE *) [TODO] ; format == ((const char *), ...) [printf() like] [TODO] ; string == (char *) ; stringN == (char *) [N>=0] [show only up to (arg N) bytes] ; libTT ; ; the following are added manually ; int TTCheckMagic(string); addr TTCloneMem(addr, uint); string TTCloneStr(string); void TTConfigMalloc(addr, addr, addr); uint TTInPanic(void); uint TTLibraryVersion(void); uint TTOpen(string); void TTClose(void); void TTCloseQuickNDirty(void); int TTConnectionFd(void); uint TTFlush(void); uint TTTimidFlush(void); uint TTSync(void); uint TTMainLoop(void); uint TTMainLoopOnce(uint); void TTExitMainLoop(void); addr TTErrnoLocation(void); string TTStrError(uint); string TTStrErrorDetail(uint, uint); addr TTNew(addr); void TTDel(addr); uint TTInstanceOf(addr, addr); addr TTClassOf(addr); string TTClassNameOf(addr); uint TTGetFieldId(string); string TTGetFieldName(uint); addr TTCreateL_ttlistener(addr, addr, uint, uint, uint, uint, addr); ; ; the following are autogenerated ; /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ uint TTttobj_3(addr, addr, addr, addr, addr, addr, addr, addr, addr, addr); string TTttclass_1(addr, addr, addr, addr); uint TTttclass_2(addr, addr, addr, addr, addr, addr, addr); void TTttobject_1(addr); uint TTttobject_2(addr); addr TTttvector_2(addr, addr, addr, addr); uint TTttvector_3(addr); addr TTttvector_1(addr); uint TTttvector_4(addr); addr TTttfield_1(addr, addr, string, addr); uint TTttfield_3(addr, addr, addr, addr, addr, addr, addr, addr, addr, addr); uint TTttfield_4(addr, addr, addr, addr); addr TTttmethod_1(addr, addr, string, addr); addr TTttmethod_3(addr, addr, addr, addr); uint TTttmethod_4(addr, addr, addr, addr, addr, addr, addr); addr TTttevent_3(addr); void TTttevent_2(addr, addr, addr, addr, addr, addr, addr); addr TTtteventbig_11(addr); addr TTtteventbig_7(addr); addr TTttbitmask_1(addr); void TTttbitmask_2(addr); uint TTttbitmask_3(addr); addr TTtteventmask_3(addr, addr, addr, addr, addr, addr, addr, addr, addr, addr); uint TTtteventmask_2(addr); addr TTttlistener_5(addr); addr TTttlistener_7(addr); addr TTttlistener_3(addr); addr TTttlistener_4(addr); void TTttlistener_2(addr); void TTttlistener_1(addr); addr TTtttimer_8(addr); addr TTtttimer_6(addr); void TTtttimer_3(addr); void TTtttimer_2(addr); uint TTtttimer_1(addr, addr, addr, addr); void TTttcomponent_2(addr); addr TTttcomponent_3(addr); uint TTttdata_2(addr); void TTttvisible_3(addr); void TTttvisible_1(addr); void TTttvisible_2(addr); void TTttvisible_9(addr); void TTttvisible_5(addr); addr TTttboxlayout_1(addr); addr TTttnative_0(addr); int TTttnative_1(addr, addr, addr, addr); void TTttwidget_2(addr); uint TTttwidget_3(addr); uint TTttwidget_4(addr); uint TTttwidget_6(addr); void TTttlabel_3(addr); uint TTttlabel_2(addr); addr TTttlabel_1(addr, addr, string, addr); uint TTtttooltip_2(addr, addr, addr, addr); void TTttbuttongroup_2(addr); void TTttanybutton_5(addr); addr TTttanybutton_4(addr); void TTttbutton_2(addr); uint TTttbutton_1(addr, addr, addr, addr); addr TTttbutton_4(addr); void TTttcheckbutton_2(addr); uint TTttcheckbutton_1(addr, addr, addr, addr); addr TTttcheckbutton_4(addr); void TTttradiobutton_2(addr); void TTttradiobutton_1(addr); addr TTttradiobutton_4(addr); uint TTttanyscroll_2(addr); addr TTttscrollbar_1(addr); addr TTttscrollbar_4(addr); uint TTttslider_2(addr); addr TTttprogressbar_1(addr); addr TTttscrollpane_2(addr); uint TTttwindow_2(addr); uint TTttframe_2(addr); addr TTttframe_1(addr, addr, string, addr); addr TTttscroller_2(addr); addr TTttmenubar_0(addr); addr TTtttheme_0(addr); addr TTttapplication_1(addr, addr, string, addr); addr TTttapplication_0(addr); getset_method(get,refcount,ttobject,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttobject,o) getset_method(get,oflags,ttobject,1, _R_ifaddress(,ttuint),ttuint,, TT_ARG_READ,ttobject,o) getset_method(get,user_data,ttobject,1, _R_ifaddress(,ttany),ttany,, TT_ARG_READ,ttobject,o) getset_method(get,events_inprogress,ttobject,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttobject,o) getset_method(get,events_informed,ttobject,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttobject,o) getset_method(get,array_size,ttvector,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttvector,o) getset_method(get,array_n,ttvector,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttvector,o) getset_method(get,array,ttvector,1, _R_ifaddress(TT_ARG_ARRAY((_F(array_n))),ttany *)TT_ARG_ARRAY((_F(array_n))),ttany *,, TT_ARG_READ,ttvector,o) getset_method(get,name_len,ttfield,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttfield,o) getset_method(get,name,ttfield,1, _R_ifaddress(TT_ARG_READ TT_ARG_ARRAY_Z,ttbyte *)TT_ARG_READ TT_ARG_ARRAY_Z,ttbyte *,, TT_ARG_READ,ttfield,o) getset_method(get,type,ttfield,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttfield,o) getset_method(get,name_len,ttmethod,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttmethod,o) getset_method(get,name,ttmethod,1, _R_ifaddress(TT_ARG_READ TT_ARG_ARRAY((_F(name_len))),ttbyte *)TT_ARG_READ TT_ARG_ARRAY((_F(name_len))),ttbyte *,, TT_ARG_READ,ttmethod,o) getset_method(get,address,ttmethod,1, _R_ifaddress(,ttfunction_fn),ttfunction_fn,, TT_ARG_READ,ttmethod,o) getset_method(get,return_type,ttmethod,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttmethod,o) getset_method(get,parameter_type,ttmethod,1, _R_ifaddress(,ttvector),ttvector,, TT_ARG_READ,ttmethod,o) getset_method(get,component,ttevent,1, _R_ifaddress(,ttcomponent),ttcomponent,, TT_ARG_READ,ttevent,o) getset_method(get,evtype,ttevent,1, _R_ifaddress(,ttuint),ttuint,, TT_ARG_READ,ttevent,o) getset_method(get,evcode,ttevent,1, _R_ifaddress(,ttuint),ttuint,, TT_ARG_READ,ttevent,o) getset_method(get,evflags,ttevent,1, _R_ifaddress(,ttuint),ttuint,, TT_ARG_READ,ttevent,o) getset_method(get,prev,ttevent,1, _R_ifaddress(,ttevent),ttevent,, TT_ARG_READ,ttevent,o) getset_method(get,next,ttevent,1, _R_ifaddress(,ttevent),ttevent,, TT_ARG_READ,ttevent,o) getset_method(get,x,tteventbig,1, _R_ifaddress(,ttshort),ttshort,, TT_ARG_READ,tteventbig,o) getset_method(get,y,tteventbig,1, _R_ifaddress(,ttshort),ttshort,, TT_ARG_READ,tteventbig,o) getset_method(get,w,tteventbig,1, _R_ifaddress(,ttshort),ttshort,, TT_ARG_READ,tteventbig,o) getset_method(get,h,tteventbig,1, _R_ifaddress(,ttshort),ttshort,, TT_ARG_READ,tteventbig,o) getset_method(get,value,tteventbig,1, _R_ifaddress(,ttany),ttany,, TT_ARG_READ,tteventbig,o) getset_method(get,old_value,tteventbig,1, _R_ifaddress(,ttany),ttany,, TT_ARG_READ,tteventbig,o) getset_method(get,data_len,tteventbig,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,tteventbig,o) getset_method(get,data,tteventbig,1, _R_ifaddress(TT_ARG_READ TT_ARG_ARRAY((_F(data_len))),ttbyte *)TT_ARG_READ TT_ARG_ARRAY((_F(data_len))),ttbyte *,, TT_ARG_READ,tteventbig,o) getset_method(get,evtype_mask,tteventmask,1, _R_ifaddress(,ttbitmask),ttbitmask,, TT_ARG_READ,tteventmask,o) getset_method(get,evcode_mask,tteventmask,1, _R_ifaddress(,ttbitmask),ttbitmask,, TT_ARG_READ,tteventmask,o) getset_method(get,component_mask,tteventmask,1, _R_ifaddress(,ttbitmask),ttbitmask,, TT_ARG_READ,tteventmask,o) getset_method(get,truth_table,tteventmask,1, _R_ifaddress(,ttuint),ttuint,, TT_ARG_READ,tteventmask,o) getset_method(get,lflags,ttcallback,1, _R_ifaddress(,ttuint),ttuint,, TT_ARG_READ,ttcallback,o) getset_method(get,component,ttcallback,1, _R_ifaddress(,ttcomponent),ttcomponent,, TT_ARG_READ,ttcallback,o) getset_method(get,prev,ttcallback,1, _R_ifaddress(,ttcallback),ttcallback,, TT_ARG_READ,ttcallback,o) getset_method(get,next,ttcallback,1, _R_ifaddress(,ttcallback),ttcallback,, TT_ARG_READ,ttcallback,o) getset_method(get,event,ttlistener,1, _R_ifaddress(,ttevent),ttevent,, TT_ARG_READ,ttlistener,o) getset_method(get,function,ttlistener,1, _R_ifaddress(,ttlistener_fn),ttlistener_fn,, TT_ARG_READ,ttlistener,o) getset_method(get,arg_component_n,ttlistener,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttlistener,o) getset_method(get,arg_event_n,ttlistener,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttlistener,o) getset_method(get,args,ttlistener,1, _R_ifaddress(,ttvector),ttvector,, TT_ARG_READ,ttlistener,o) getset_method(get,event_mask,ttlistener,1, _R_ifaddress(,tteventmask),tteventmask,, TT_ARG_READ,ttlistener,o) getset_method(get,delay_t,tttimer,1, _R_ifaddress(,ttany),ttany,, TT_ARG_READ,tttimer,o) getset_method(get,delay_f,tttimer,1, _R_ifaddress(,ttany),ttany,, TT_ARG_READ,tttimer,o) getset_method(get,timer_prev,tttimer,1, _R_ifaddress(,tttimer),tttimer,, TT_ARG_READ,tttimer,o) getset_method(get,timer_next,tttimer,1, _R_ifaddress(,tttimer),tttimer,, TT_ARG_READ,tttimer,o) getset_method(get,callbacks,ttcomponent,1, _R_ifaddress(,ttcallback),ttcallback,, TT_ARG_READ,ttcomponent,o) getset_method(get,listeners,ttcomponent,1, _R_ifaddress(,ttlistener),ttlistener,, TT_ARG_READ,ttcomponent,o) getset_method(get,timers,ttcomponent,1, _R_ifaddress(,tttimer),tttimer,, TT_ARG_READ,ttcomponent,o) getset_method(get,datas,ttcomponent,1, _R_ifaddress(,ttdata),ttdata,, TT_ARG_READ,ttcomponent,o) getset_method(get,component,ttdata,1, _R_ifaddress(,ttcomponent),ttcomponent,, TT_ARG_READ,ttdata,o) getset_method(get,key_len,ttdata,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttdata,o) getset_method(get,key,ttdata,1, _R_ifaddress(TT_ARG_ARRAY((_F(key_len))),ttbyte *)TT_ARG_ARRAY((_F(key_len))),ttbyte *,, TT_ARG_READ,ttdata,o) getset_method(get,data,ttdata,1, _R_ifaddress(,ttany),ttany,, TT_ARG_READ,ttdata,o) getset_method(get,vflags,ttvisible,1, _R_ifaddress(,ttuint),ttuint,, TT_ARG_READ,ttvisible,o) getset_method(get,prev,ttvisible,1, _R_ifaddress(,ttvisible),ttvisible,, TT_ARG_READ,ttvisible,o) getset_method(get,next,ttvisible,1, _R_ifaddress(,ttvisible),ttvisible,, TT_ARG_READ,ttvisible,o) getset_method(get,parent,ttvisible,1, _R_ifaddress(,ttvisible),ttvisible,, TT_ARG_READ,ttvisible,o) getset_method(get,child_first,ttvisible,1, _R_ifaddress(,ttvisible),ttvisible,, TT_ARG_READ,ttvisible,o) getset_method(get,child_last,ttvisible,1, _R_ifaddress(,ttvisible),ttvisible,, TT_ARG_READ,ttvisible,o) getset_method(get,constraint,ttvisible,1, _R_ifaddress(,ttany),ttany,, TT_ARG_READ,ttvisible,o) getset_method(get,theme,ttvisible,1, _R_ifaddress(,tttheme),tttheme,, TT_ARG_READ,ttvisible,o) getset_method(get,repaint,ttvisible,1, _R_ifaddress(,ttvisible_repaint_fn),ttvisible_repaint_fn,, TT_ARG_READ,ttvisible,o) getset_method(get,widget,ttlayout,1, _R_ifaddress(,ttwidget),ttwidget,, TT_ARG_READ,ttlayout,o) getset_method(get,orientation,ttboxlayout,1, _R_ifaddress(,ttuint),ttuint,, TT_ARG_READ,ttboxlayout,o) getset_method(get,x,ttwidget,1, _R_ifaddress(,ttshort),ttshort,, TT_ARG_READ,ttwidget,o) getset_method(get,y,ttwidget,1, _R_ifaddress(,ttshort),ttshort,, TT_ARG_READ,ttwidget,o) getset_method(get,w,ttwidget,1, _R_ifaddress(,ttshort),ttshort,, TT_ARG_READ,ttwidget,o) getset_method(get,h,ttwidget,1, _R_ifaddress(,ttshort),ttshort,, TT_ARG_READ,ttwidget,o) getset_method(get,layout,ttwidget,1, _R_ifaddress(,ttlayout),ttlayout,, TT_ARG_READ,ttwidget,o) getset_method(get,xl,ttwidget,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttwidget,o) getset_method(get,yl,ttwidget,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttwidget,o) getset_method(get,wl,ttwidget,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttwidget,o) getset_method(get,hl,ttwidget,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttwidget,o) getset_method(get,col,ttwidget,1, _R_ifaddress(,ttcol),ttcol,, TT_ARG_READ,ttwidget,o) getset_method(get,tooltip,ttwidget,1, _R_ifaddress(,tttooltip),tttooltip,, TT_ARG_READ,ttwidget,o) getset_method(get,text_len,ttlabel,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttlabel,o) getset_method(get,text,ttlabel,1, _R_ifaddress(TT_ARG_ARRAY((_F(text_len))),ttfont *)TT_ARG_ARRAY((_F(text_len))),ttfont *,, TT_ARG_READ,ttlabel,o) getset_method(get,widget,tttooltip,1, _R_ifaddress(,ttwidget),ttwidget,, TT_ARG_READ,tttooltip,o) getset_method(get,group_first,ttbuttongroup,1, _R_ifaddress(,ttradiobutton),ttradiobutton,, TT_ARG_READ,ttbuttongroup,o) getset_method(get,group_last,ttbuttongroup,1, _R_ifaddress(,ttradiobutton),ttradiobutton,, TT_ARG_READ,ttbuttongroup,o) getset_method(get,checked,ttbuttongroup,1, _R_ifaddress(,ttradiobutton),ttradiobutton,, TT_ARG_READ,ttbuttongroup,o) getset_method(get,text_width,ttanybutton,1, _R_ifaddress(,ttshort),ttshort,, TT_ARG_READ,ttanybutton,o) getset_method(get,text_height,ttanybutton,1, _R_ifaddress(,ttshort),ttshort,, TT_ARG_READ,ttanybutton,o) getset_method(get,text,ttanybutton,1, _R_ifaddress(TT_ARG_ARRAY((_F(text_width),*,_F(text_height))),ttattr *)TT_ARG_ARRAY((_F(text_width),*,_F(text_height))),ttattr *,, TT_ARG_READ,ttanybutton,o) getset_method(get,group,ttradiobutton,1, _R_ifaddress(,ttbuttongroup),ttbuttongroup,, TT_ARG_READ,ttradiobutton,o) getset_method(get,group_prev,ttradiobutton,1, _R_ifaddress(,ttradiobutton),ttradiobutton,, TT_ARG_READ,ttradiobutton,o) getset_method(get,group_next,ttradiobutton,1, _R_ifaddress(,ttradiobutton),ttradiobutton,, TT_ARG_READ,ttradiobutton,o) getset_method(get,orientation,ttanyscroll,1, _R_ifaddress(,ttbyte),ttbyte,, TT_ARG_READ,ttanyscroll,o) getset_method(get,size,ttanyscroll,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttanyscroll,o) getset_method(get,real_size,ttanyscroll,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttanyscroll,o) getset_method(get,view_size,ttanyscroll,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttanyscroll,o) getset_method(get,position,ttanyscroll,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttanyscroll,o) getset_method(get,real_position,ttanyscroll,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttanyscroll,o) getset_method(get,state,ttanyscroll,1, _R_ifaddress(,ttuint),ttuint,, TT_ARG_READ,ttanyscroll,o) getset_method(get,slide_min,ttslider,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttslider,o) getset_method(get,slide_max,ttslider,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttslider,o) getset_method(get,slide_value,ttslider,1, _R_ifaddress(,ttint),ttint,, TT_ARG_READ,ttslider,o) getset_method(get,bar_x,ttscrollpane,1, _R_ifaddress(,ttscrollbar),ttscrollbar,, TT_ARG_READ,ttscrollpane,o) getset_method(get,bar_y,ttscrollpane,1, _R_ifaddress(,ttscrollbar),ttscrollbar,, TT_ARG_READ,ttscrollpane,o) getset_method(get,title_len,ttwindow,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttwindow,o) getset_method(get,title,ttwindow,1, _R_ifaddress(TT_ARG_ARRAY((_F(title_len))),ttbyte *)TT_ARG_ARRAY((_F(title_len))),ttbyte *,, TT_ARG_READ,ttwindow,o) getset_method(get,menubar,ttframe,1, _R_ifaddress(,ttmenubar),ttmenubar,, TT_ARG_READ,ttframe,o) getset_method(get,scrollpane,ttscroller,1, _R_ifaddress(,ttscrollpane),ttscrollpane,, TT_ARG_READ,ttscroller,o) getset_method(get,name_len,ttmenuitem,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttmenuitem,o) getset_method(get,name,ttmenuitem,1, _R_ifaddress(TT_ARG_ARRAY((_F(name_len))),ttbyte *)TT_ARG_ARRAY((_F(name_len))),ttbyte *,, TT_ARG_READ,ttmenuitem,o) getset_method(get,menubar,ttmenu,1, _R_ifaddress(,ttmenubar),ttmenubar,, TT_ARG_READ,ttmenu,o) getset_method(get,text_len,ttanytext,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttanytext,o) getset_method(get,text,ttanytext,1, _R_ifaddress(TT_ARG_ARRAY((_F(text_len))),ttattr *)TT_ARG_ARRAY((_F(text_len))),ttattr *,, TT_ARG_READ,ttanytext,o) getset_method(get,name_len,tttheme,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,tttheme,o) getset_method(get,name,tttheme,1, _R_ifaddress(TT_ARG_ARRAY((_F(name_len))),ttbyte *)TT_ARG_ARRAY((_F(name_len))),ttbyte *,, TT_ARG_READ,tttheme,o) getset_method(get,name_len,ttapplication,1, _R_ifaddress(,ttopaque),ttopaque,, TT_ARG_READ,ttapplication,o) getset_method(get,name,ttapplication,1, _R_ifaddress(TT_ARG_ARRAY((_F(name_len))),ttbyte *)TT_ARG_ARRAY((_F(name_len))),ttbyte *,, TT_ARG_READ,ttapplication,o) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/m4/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0013762�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/m4/ltrace.conf.libTT.in�������������������������������������������������������������0000664�0000000�0000000�00000003207�13775351206�0017527�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������; ; This is (almost) a complete listing of libTT ; function prototypes to use with Linux ltrace(1). ; ; You can either append the contents of this file to the system-wide ; /etc/ltrace.conf or to your personal ~/.ltrace.conf ; ; ; ltrace.conf ; ; Argument types: ; + == May vary (ie, is a returned value) (prefix) ; void ; int ; uint == (unsigned int) ; octal == (unsigned) [written in octal] ; char ; addr == (void *) [unsigned, written in hexa] ; file == (FILE *) [TODO] ; format == ((const char *), ...) [printf() like] [TODO] ; string == (char *) ; stringN == (char *) [N>=0] [show only up to (arg N) bytes] ; libTT ; ; the following are added manually ; int DEF(TTCheckMagic)(string); addr DEF(TTCloneMem)(addr, uint); string DEF(TTCloneStr)(string); void DEF(TTConfigMalloc)(addr, addr, addr); uint DEF(TTInPanic)(void); uint DEF(TTLibraryVersion)(void); uint DEF(TTOpen)(string); void DEF(TTClose)(void); void DEF(TTCloseQuickNDirty)(void); int DEF(TTConnectionFd)(void); uint DEF(TTFlush)(void); uint DEF(TTTimidFlush)(void); uint DEF(TTSync)(void); uint DEF(TTMainLoop)(void); uint DEF(TTMainLoopOnce)(uint); void DEF(TTExitMainLoop)(void); addr DEF(TTErrnoLocation)(void); string DEF(TTStrError)(uint); string DEF(TTStrErrorDetail)(uint, uint); addr DEF(TTNew)(addr); void DEF(TTDel)(addr); uint DEF(TTInstanceOf)(addr, addr); addr DEF(TTClassOf)(addr); string DEF(TTClassNameOf)(addr); uint DEF(TTGetFieldId)(string); string DEF(TTGetFieldName)(uint); addr DEF(TTCreateL_ttlistener)(addr, addr, uint, uint, uint, uint, addr); ; ; the following are autogenerated ; �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/m4/ltrace.conf.libTw.in�������������������������������������������������������������0000664�0000000�0000000�00000005741�13775351206�0017577�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������; ; This is (almost) a complete listing of libtw ; function prototypes to use with Linux ltrace(1). ; ; You can either append the contents of this file to the system-wide ; /etc/ltrace.conf or to your personal ~/.ltrace.conf ; ; ; ltrace.conf ; ; Argument types: ; + == May vary (ie, is a returned value) (prefix) ; void ; int ; uint == (unsigned int) ; octal == (unsigned) [written in octal] ; char ; addr == (void *) [unsigned, written in hexa] ; file == (FILE *) [TODO] ; format == ((const char *), ...) [printf() like] [TODO] ; string == (char *) ; stringN == (char *) [N>=0] [show only up to (arg N) bytes] ; libtw.h ; ; the following are added manually ; addr DEF(Tw_CreateWidget)(addr, int, int, uint, uint, int, int, int); void DEF(Tw_MapWidget)(addr, addr, addr); void DEF(Tw_UnMapWidget)(addr, addr); void DEF(Tw_DeleteObj)(addr, addr); addr DEF(Tw_CreateGadget)(addr, addr, int, int, string, uint, uint, int, int, int, int, int, int, int); addr DEF(Tw_SearchWidgetAtWidget)(addr, addr, int, int); void DEF(Tw_Create4MenuRow)(addr, addr, int, int, int, string); addr DEF(Tw_CreateWindow)(addr, int, string2, string2, addr, int, uint, uint, uint, int, int, int); addr DEF(Tw_Create4MenuWindow)(addr, addr); void DEF(Tw_WriteCharsetWindow)(addr, addr, uint, string3); void DEF(Tw_WriteUtf8Window)(addr, addr, uint, string3); void DEF(Tw_WriteTCellWindow)(addr, addr, int, int, uint, string); void DEF(Tw_WriteRowWindow)(addr, addr, uint, string3); void DEF(Tw_ConfigureWindow)(addr, addr, octal, int, int, int, int, int, int); void DEF(Tw_SetColorsWindow)(addr, addr, octal, int, int, int, int, int, int, int, int, int); void DEF(Tw_GotoXYWindow)(addr, addr, uint, uint); addr DEF(Tw_Create4MenuMenuItem)(addr, addr, addr, int, int, string); addr DEF(Tw_Create4MenuCommonMenuItem)(addr, addr); addr DEF(Tw_CreateMenu)(addr, addr, int, int, int, int, int, int, int); void DEF(Tw_SetInfoMenu)(addr, addr, int, uint, string, string); addr DEF(Tw_CreateMsgPort)(addr, int, string2, int, int, int); addr DEF(Tw_FindMsgPort)(addr, addr, int, string); addr DEF(Tw_GetOwnerSelection)(addr); void DEF(Tw_SetOwnerSelection)(addr, addr, int, int); void DEF(Tw_RequestSelection)(addr, addr, addr); void DEF(Tw_NotifySelection)(addr, addr, addr, addr, string, int, string); addr DEF(Tw_FirstScreen)(addr); addr DEF(Tw_Open)(string); void DEF(Tw_Close)(addr); int DEF(Tw_Errno)(addr); addr DEF(Tw_ErrnoLocation)(addr); string DEF(Tw_StrError)(addr, int); string DEF(Tw_StrErrorDetail)(addr, int, int); int DEF(Tw_ConnectionFd)(addr); int DEF(Tw_Flush)(addr); int DEF(Tw_Sync)(addr); int DEF(Tw_InPanic)(addr); addr DEF(Tw_PendingMsg)(addr); addr DEF(Tw_PeekMsg)(addr); addr DEF(Tw_ReadMsg)(addr, int); addr DEF(Tw_CloneReadMsg)(addr, int); addr DEF(Tw_CreateMsg)(addr, int, int); int DEF(Tw_SendMsg)(addr, addr, addr); void DEF(Tw_BlindSendMsg)(addr, addr, addr); addr DEF(Tw_Stat)(addr, addr, addr, int); addr DEF(TwStat)(addr, addr, int); ; ; the following are autogenerated ; �������������������������������twin-0.9.0/docs/m4/ltrace.conf.m4�������������������������������������������������������������������0000664�0000000�0000000�00000006363�13775351206�0016432�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������; ; This file was automatically generated from m4/ltrace.conf.m4, do not edit! ; define(`DEF', `define(DEF_$1)$@') include(`m4/ltrace.conf.libtw.in') divert(-1) undefine(`DEF') define(`TRIM', `translit(`$1', ` ')') define(`CHAIN', `TRIM($1)`'TRIM($2)') define(`NAME', `Tw_`'CHAIN($1,$2)') define(`NSHIFT', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')') define(`tv', v) define(`t_', _) define(`tx', x) define(`tV', V) define(`tW', W) define(`tX', X) define(`tY', Y) define(`iV', `$1') define(`iW', `$1') define(`iX', `$1') define(`iY', `$1') define(`T_byte', `uint') define(`T_sbyte', `int') define(`T_dat', `int') define(`T_udat', `uint') define(`T_ldat', `int') define(`T_uldat', `uint') define(`T_time_t', `int') define(`T_frac_t', `int') define(`T_trune', `addr') define(`T_tcolor', `addr') define(`T_tcell', `addr') define(`T_opaque', `addr') define(`T_any', `uint') define(`Tv', `void') define(`T_', `T_$1') define(`Tx', `addr') define(`TV', `ifelse(`$1', char, string, `$1', byte, string, addr)') define(`TW', `TV($@)') define(`TX', `addr') define(`TY', `addr') define(`TYPE', `T$2($1)') define(`NARGS', `eval(($1-5)/2)') define(`NARGS1', `eval(1+($1-5)/2)') define(`ARG', `ifelse($3, v, `', `TYPE($2,$3)')') define(`_ARGS', `ifelse($#, 2, `', `, ARG($1,$2,t$3)`'_ARGS(incr($1), NSHIFT(4, $@))')') define(`ARGS', `addr`'ifelse($#, 2, `', `_ARGS($@)')') define(`PROTO', `ifdef(DEF_`'NAME($3, $4), `', `TYPE($1,t$2) NAME($3, $4)(ARGS(1, NSHIFT(5, $@)));define(DEF_`'NAME($3, $4))')') define(`PROTOSyncSocket', `PROTO($@)') define(`PROTOFindFunction', `PROTO($@)') divert include(`m4/Tw_sockproto.m4') dnl dnl dnl now libTT dnl dnl define(`DEF', `define(DEF_$1)$@') include(`m4/ltrace.conf.libTT.in') undefine(`DEF') include(`m4/TTclasses.m4') divert(-1) define(`arg_void', `void') define(`arg_ttbyte', `uint') define(`arg_ttchar', `int') define(`arg_ttshort', `int') define(`arg_ttushort',`uint') define(`arg_ttint', `int') define(`arg_ttuint', `uint') define(`arg_ttany', `addr') define(`arg_decay_scalar', `ifelse(index(`$1', `_fn'), -1, `ifdef(`arg_$1', arg_$1, addr)', addr)') define(`arg_decay_pointer', `ifelse(index(`$1', `ttbyte'), -1, addr, string)') define(`arg_decay', `ifdef(`m4_super_$1', addr, `ifelse(index(`$1', `*'), -1, `arg_decay_scalar(`$1')', `arg_decay_pointer(`$1')')')') define(`_args_decay', `ifelse(`$1', `', `', `, arg_decay(`$1')`'_args_decay(shift($@))')') define(`args_decay', `ifelse(`$2', `', `arg_decay(`$1')', `arg_decay(`$1')`'_args_decay(shift($@))')') define(`TTdeclare',`ifdef(`DEF_TT$2_$3', `', ` arg_decay($5) TT$2_$3(ifelse($4, 0, `void', `args_decay(NSHIFT(5, $@))'));define(`DEF_TT$2_$3')')') define(`el',`TTdef_ttclass_$1($1)') divert define(`extends') define(`public',`TTdeclare($@)') define(`public_set',`public($@)') define(`final',`public($@)') TTlist() define(`final') define(`public_set') define(`public') define(`extends') undefine(`el') divert(-1) include(`m4/TTfield.m4') define(`arg_decl_decay', `arg_decay($3) a$1') define(`def_field', ` `'arg_decay($1) TT`'decl_name($@)_`'this`'(args_decay(this, $4));') divert define(`el', ` `'define(`this', `$1')`'TTdef_$1($1)') define(`extends') define(`field', `get_field($@)') TTlist() define(`extends') define(`field') undefine(`el') �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/docs/twin.1������������������������������������������������������������������������������0000664�0000000�0000000�00000006676�13775351206�0014524�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������.TH "twin" "1" "0.6.3" "" "" .SH "NAME" twin \- a Textmode WINdow environment .SH "SYNTAX" .B twin [OPTION [...]] .SH "NOTE" This manual page uses some parts of /usr/local/share/doc/twin/Tutorial. you should look at this file if you need further info. .SH "DESCRIPTION" Twin creates, draws and manages windows inside a text display. It implements in text mode the same concepts that X11 does in graphics: .PP a. draw on some kind of screen (tipically a computer monitor). .PP b. allow multiple windows to coexist on the same screen, and draw independently on each of them. .PP c. talk to external programs (even on other machines) so that the programs receive keystrokes, mouse movements, etc. and can send back drawing commands. .PP Twin runs on the linux console, inside itself, in a twin terminal and on X11: it creates a window and draws in it, does not run inside an xterm or similar. It can also run on generic text terminals (ttys) using the termcap/ncurses driver, but it will work far from optimal. .SH "OPTIONS" .TP \fB\-h\fR, \fB\-\-help\fR display this help and exit .TP \fB\-V\fR, \fB\-\-version\fR output version information and exit .TP \fB\-x\fR, \fB\-\-excl\fR start display as exclusive .TP \fB\-\-nohw\fR start in background without display .TP \fB\-\-hw=<display>[,options]\fR start with the given display (multiple \-hw=... allowed) .TP Currently known display methods: X[@<XDISPLAY>] xft[@<XDISPLAY>] twin[@<TWDISPLAY>] tty[@<tty device>] .SH "FILES" \fI~/.twinrc\fP configuration file for the Twin user interface .br .br \fI~/.TwinAuth\fP holds some magic data that clients use to answer the challenge received from twin. See Security section. .SH "ENVIRONMENT VARIABLES" .TP \fBTWDISPLAY\fP Specifies the Twin server to be used. Twin can create a window on another twin server and use it as display. .TP \fBDISPLAY\fP Specifies the X11 server to be used. Twin can create a window on an X11 server and use it as display. .SH "SECURITY" The authorization method currently used vaguely resembles Xauthority: the file .TwinAuth in your home directory holds some magic data that clients use to answer the challenge received from twin. If that data is wrong or the file doesn't exist, clients can connect to twin only using the unix socket (TWDISPLAY=:<something>) so they must run on the same machine as twin; remote programs won't be able to connect. Also, the unix socket is set to permissions 600, so only the owner can connect to it (at least on Linux it works this way). The `challenge' is actually an MD5 checksum verification: server sends 256 bytes of random data; client does MD5 of that data + .TwinAuth and sends MD5 back. If server agrees on MD5, it grants connection. This challenge method has an important feature: The contents of your .TwinAuth is NEVER transmitted through any socket. So, unless your home directory resides on an NFS filesystem, you can be sure that noone will be able to find the data contained in your .TwinAuth by spying the network between twin and the clients you start. On the other hand, the connection between twin and clients is NOT encrypted, so it is easy to find out what you type and what you see in the client windows by spying the network as above. .SH "EXAMPLES" run a twin server, and let it try to autodetect the type of display (X11, tty or twin): .LP .B twin .PP run a twin server, specifying to create an X11 window to use as display: .LP .B twin \-\-hw=X .SH "AUTHORS" Massimiliano Ghilardi <paperinik@users.sourceforge.net> .SH "SEE ALSO" ������������������������������������������������������������������twin-0.9.0/fonts/�����������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0013643�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/fonts/9x19u.pcf.gz�����������������������������������������������������������������������0000664�0000000�0000000�00000201601�13775351206�0015653�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000�������������������������������������������������������������������������������������������������������������������������������������������������������������������������(/= |T&*j,)DEEE5VDPTTTxi5 jl.@�Qi*mJ۴RM5jXSjZRMkئ+F:3N6?s>shsgc\w9`1]X9~Ҡ`οgy${י?e GpכP]_,AƗ,6/pj|� /Wrv\`b 3 C|a1\63;5GF{/1ȏPqr._nS|;f^tօSt]6+[_4_.ilvY7k #윛oîz޹f\xÜ]6fKeSg^qޔ/[Κ2f^9}j.qެӯ켫wK^vgwE΢?d8.:K:w)?κf~eT|SL싧VOb 6;_/q奩o3~Mvu7Z4[XTtټ[poDv 'O9gkϻ蜋97-aN7-WT~sǸǞJQvx't"p 9ᄓN?N;?]x4`\~TYc鲯fLz˟.-ȫ^|U"XH-ŷ^*f\VF/_8u]ߖ[lymfacyڈ 'T}uu}5]!Ur&}#5<JT#~ouJÕuYKK*si52YmHghVr/c؈ѝU [,W<X0w=F97uIGjr$jFVߴUKc&u*#ˀK5FBjuנĈKWQ#SI?]V>R_G RqO +/uK{mV^6}ʲ3֧.A}[/<3$e`K-u)_@,52'DBMJ9ؘmQM5ejy9φxM"U gU2֦.iجOd}#H_:pf`M9;udWʼ&˕L\'5"yz3j 9"f_/J$}[՟ɫ;gȤ=_#]㲂ATPr2.Ln撾j=RtPTEkA){2\ QhVS#+moRL:%8DmoczINL;__giQUԧ=j0erߖ_zRC)kz}+jdV>sUT35U[[#j)ٷJ~I]po[q1:cFtݵ7[6b'}A/YJ]RT/՛K]p(YUu/J]sb\ˌ˒J3�1[sgm;X&YhbDamlXTĈR#ZK]}oRkTZ\Vޓ^25wA결0l[iӅ{ax,[a|I/K`/ߪKeQWDž:z0 HUqڰ3JSb\ftٗ.ϥRTW7S 2̈QbHL#)kwdHxz(CwHbR"m8$)R<1fJ_҃E7zjt^˃UuI}V_ ;3cڜ4 ek4]LS/4c nYM56.ĨFxTߖ-WuyUicfXP=�{#]?,/4vyEAJv|? 9OSnklk4(ԐedĀn./$L5N5d5* <bzRn )nԄT T\zN\2;y�jD{$.DW?kE![{EMd%*S}S[&L.W Wv/=D15Vg~I}yuSm"lQg z"hzC܌Y=.z2CJ7YUzxkDdLC%ڼz1^#eXlw"ݨTMjS\jj]MҊ%i1ΚZeNxYkdFԥfqY6^XQ+5HOkS2 +.P5eiZbdm^t˾lcdX.JyѿO 5F*mYJ(a|[a\ejJ%·ƃʲ1Y]4\R~GoJ2~\n-T-x9r`嬮K`pq#@6.g0:}JyCR U,1PFZd4q[S)5ԷF5ikGJ_/Y?;}H5Kt:^ߪ^je gh跱"ہT]3%]C:45xyj~`ƅ]HniϺ@h'A;Y+/5Eِ4#ct_e2iB4VmlLGO]噱F ,KQN=ަD$KZ?_A]Β(egV)&ZVp9UQd#zP;10錷R\VUۨN p7feJq>Ss 9snJW+/\A֤: :ɞyJ; ):<Nd!9M /V WdN{5e\ȁ_OZY? \d?5.5S<;*Չ:;v%Mɚ6TJVXL_& Yc ᬼXT9V29cY%յ굗^+rKb1bY.uYR Key7~{ZuYs%arY~euWe9_ YH I beB; 8qoiYkqM\omGu* ŝeZJ_ŘEY7%pIy FrEMjerctke1˓qT(sS*̭xY-^LU* D.Ae$U>rEF^FLu5RLKZ/JSCZ2TgdjU{+kg3qSYa$Bh*V#O*6\%4`*T*;o"Z *bÕ~8u93ߐ 4+DfE4 w!]ƯW⮬HB49j5YwW+zv뮽:iXjH=&:mQ2a߲\*ji P*R!]H}W(W8կi~:@}BrZ&w%=tuvNI+(Ǭ3u ibЎDEtMS*VNJu>}IJ+ #Mk jREiWeaYmȩ?kR%=@ƫّ5:̒Fmj.R3) ^ݯnri0ԎV\Y^/M?Xi\2s\K/uոZ/I]vuu5`+keLժ q3u1ҥ迤/ƽڑ1^S@N0W02gmM"3FjmЯ\^?cbxQ+wWs Pܞ UrVWLHc&;`6-ˮeqr[geeJ$3 zoJm$+*T\eE,F[�UF^P2 "엞0UMqQbfL11o+EߤKƏũK}~Xd\2/$NΞOϫUMS2%5Bj}*<銧 Ee$ˍeA+DMHj%钪E4S_,WkL/A3-Tn]ɔTN+̴j^o.uI=7*(15K_RU̥<_L52)FW<x bqYe24Lۓr%.ц~M:,JYͬ+NޙB_%1c.m%<E[*j%vtYߊ/g|[^O×%$MMVk_YaM0TUӚ! T_EբIEbtQ/J,1 %w|KWT°4!. D}T$Y.Tg{rCcTeiϕ2T6֥Bū&V+Kb|3f20Vv# {W:"e}r1^Dghb-rzYuEB;( F,ʚ~n/*ACZ]X^hbWYUyY%֪ōsA +\POԯJ-֗{C"A.W.%C5f3b:bkT\^( Fߖߖu.5~Yjyl֗F#n/{uBJL5cF4Z#MkS%eeƒJ#kɹ׸SNe_Ȭ\Mg޽r<#OH[Eu<WS҉KRBNiMT,3*rB۲MEθj\j`<W}Y@H˾RW^8Ӕbq]5n_K .W Ɔ,jMJ+x UKx7ES0`$իtb*X }VeEʕEnֽ\n4B}#g٠M3 ؑՉzN\/Z_UԦ,KGzej%kXSz$Y2zV+Y-@ U"uW_V2r~EZt=!MIVIG3ioS![w|_S- +HВ㸰o,[xe[T| ܫM] yTF+.Q^B4-H}2,Ͼ,ɹJex K2Z'xcΡX[|e͸7oeeےzÈ_* ̭JYob2n])[{HTߖ W7e ~ ҹI8wQ\sP3RjC=TǙʍ]@x0ԁf >ƃ2M &}Ms@=h@ l@>X6}P6N0,4PPFxAhݠ(LPZ@(恅`-Be`إ3F t_:= i\ f�vP>8`3��ƀR;@7(8`  A# v]?t04f 4`M`(<a�A;v(+@> tч!@`4n0z8̀u 1 h�͠_D|^0zD|@9ځl] p;~ tFh�-; i փvF|  ll=x4̀`u,l]`q#h�;@/w<;>:t``ԉxo@�% zb ƟM'# Z@({4n"A O`-ة?X6N 46*A<,`#_=�^0 %@xc@/w&̀u 0u"�`'MB<`dh@/s6ւvAho*A1^0fNFtf @7};HFM]t f`�E([@(e4Vf >40KQZq!A3?tl�@+HOPZ@(BDM @ aW#* Z0#h-*46&} y0ZZc3`ZIh]`;Xl-X66 9 JA=a{ L 6V "AXv=Ft>P t&=փ6 \l fFvP4n`(ԁ`[&`&X66܆x`eH/0 ԁߎ`�w]Zݑ<rta q`h;A݉I`(e vNP`X ց `/Fc40\怅4 lw;~�ut{AX 6&v]t. ߽HOPF0 `(`VAl (0i`2�` 6N z^*6@1*@=X 6͠�@'} vA! ƁIԃ`# VAU PfR�} q@06 `'U#]| l@EB t:=P6=`-h�;o)z2F t_=̂y�{@h99l^0j`DAځހr:@*4m`/=@/A=:>`|#@hփf@9 o _& 3l{@PAzuX v>P m}a�e`#h*@Q'`=h=:v03@�ZA'y4l@Y`]`QC|Al�(@0hFzG&Pփ6CfrtMH'P@7(H=` (SZ =0@(ތ0# ='( l)@7ք` ?Cx@9ځ(`@ ut-0 `3@:Oo4P`X3fFz_"Ah{i�kA+AAh]~z سH3P^Pzz>h�(A; *@/"0j+ Ov>P+1X^0f;@4`:@�` ;wP^0eւvW/HMf l@U fR0:ց `3h-`:n0L3@9�vPeԁ͠~8Yl{@(`>X Z@w! ` fvqf @|�A7l $fat0 X 6fAu,(`(Nl�׀2�0;Dy%`Xv�g#@>ut;p �`=h`Tt_uԃ`' C9z AFt�>�ƀ4`=@ zP6NwB� `v= ԍ43Al u >X6!;(A'փ @G( =ԁf |Nۋ0y`= |B|�Z^P  =߸@3h X6nP)A+rփ`g @3E}p ͠B t}H+P6N0, t0J,�ZAtPA9.P PZ@X)X v>P80;/l ?)l0?Ahݠ(xzz~u`'46 &'v=rta*@5`-h56,[Px @3E`4m9ւw.:`�#�[PxԃA6@h}iց6{`�v}T-`/BZ: @7h` l{#N4.P0 ~rtaGmP=hutcl`h1X v߱( `!:@q͠ ;~ @A N@9 q'"F} 6 #\`-`=B'#Bt±h�@/3n`ŧ `B-P6v04 ԁ)A䟎`3þut3.PZ^0z<h@/s& փ7.?Ao&2�6; f z@h{ATlA97n0\�:@4x0 ^Pṕi`>�:@?(A'v́ @t $^s4nPtQ܂ 3_4nPt zzKa, t�[P8@3EMP6] (A;Я@l`,0W/�-\t[@54`5p4nPU͠| y6Pt-�k60� CAhz ^P2a͠st17O|A7F lA7#: χ�-fnCB_/(0vl]!-D:2taw"A#h.'6v0n  tr {?X ZA(�A_� A +P``FU"`�U4v0,4`%4nPR`  `/(C`aA(Z`-ep- գ  [oP^Pv@#h` Woa/ @7(Zl�v@#h}@=h=`7�ZA/(~� ց6�z4 Fo!?AuX Aуp;p.z2}= t ?@l{@ԁf AQ`w/l{/Xv^0l�@h# & = t =/X ځ  &ԃ686.0z3^PcO.�va?]c?Cx69.P l�{@4>0O"l`S'�@Q3`80 ? 7ZgP&] Ԃt� "-@hݠCtP@<  k4n |/ OLPv>0E:@V`KBP*@ԁf ]`/mCX(0L`3h@`/gԯ>0,u`-V #n`!6f tP5l`F :@/2L@XփM`{AX.WP(P yֆsz~2_E\@#X6. F``�6^0i'Nq[@(ԃf7Ah=`.4m=X v>ṔF 7_v(A#2fGP6m F> v^Pԁ l^0O'[@ F F@)X v>P܉8u ?#< N`>XP�恵.JZ<(A;cEz�v^P ` }Ylmg`!v= 77恍ylv:{@(Ah{A�A'?`A+0 : tGH0,@{< v(` ցf "\``-` 7A9Xv.E PZ@) `3�` 6|!`X6A9XA;>GNP l=$<�A3ziEBPBPA7i0LPJA9X@ x A= v=@yx0@({8P *FX�A ځ/xRP6`Xv_fBv^0:a@hݠ 4fu M1u/ z @( ͠|M{4f ;l;A(8,PF :�0-?v@ h]a$p (kAP  cC ta_}�@3vAB}`7X 6]`/6 F(`h;A'`EHGP 2lݠxv AX 60׀h D@:Ah�`vnPtzzϠl`1(C4.P0 tcq$Ahݠx A .ւ�4=w" @ K30@/Sւ- N}0T` # Ah`X&B/ut)+: :S~P0~u`'w&}~F3PG2 tHKPZA/(>6v?4nP4A $KPց͠7@9 :Ɉ+�M  @l{@ԁf oPZ@u @+ F<�`c!Z_`<h�#ܠԁ,@#l;A/u! /B-@A>K&\ A.l� s`&H͠qu`lî@y[o샍`/r% tqW>`(n`# 5H;p h�͠_E9t1_C@(փ*Er\2 ւV_7A`0Y4�sP@X6f &"&݈NP<i @Ml^0f f`-ZN|-Pl�[@(_4]߆x 4&2< qL3@)(  @@o yl;@q׀vn' L  |w!tP@Qw#/<�`t9l�;@7v&|"l`>�v^Pe4& : p\`#@Q%*f|U' `V A)[N Bl]  ` X�`#%h�;ARute#�A0ԁ t&1+Xց |+&::t04f| LAh퀭30 el;^PJA@ֈ|�׀vn1* xLPփV '`Z 䯅;`:@zA7&tMJ5 ւf A[+`-�Z@;CX5MA%ځ۰`-h 5l@_89=rzyJAh]  A�` .)h�;{�͠ }z(`- G: @P6@#h`�`/(ބ2 6.P#X'0;A(yMތ@(1( `E?A|@=O^l=`LkNJ~B?G]qO }f =| lpA'(| ւ@ & H`K`H_�v] `'%-p4n0Yl�9`3=Ah{Aq+6.P[@(| A�[Q>@#hm$@ ~>Xvll f a9=X5GU[3{q>,C2P vJɝaUXs+(pA }#;zlo60w۰E<ӹy/0Rta~.g<O~9A,H(iĩ@wN^!O&q?^rcDJaa4Oٜ$I#ARgI8[%DVQco'4^/sm7K axGEhYDT )}WI<M$L]*o@*ُgMꞱ܏饃LݙM^zNiجh*$Mܝhr?E|>6)-aO<+paWX/Ȉ|;4gq$>[Kh<$2$^f?[fuYymQ#9sR̉zԤnw[~ vf,;G. XI=fXG}+jU?0ѤF\Ť(v]0Q6$F\IiI7gMvtҬϊM8|WR8*]#lʜgauѷ͓61 -&.=[-9vF.gx,`B%c+zR*?f嫍YMfuc<q&ѴnTYKg=&"~O{f11rيtvR/t-]n'j)?*AY{<C?k#uvY(X?]dr!MZZV2E\b<7%6yIxoi$cLE%a�}F*ql5Jy6-I$C%r\lXw=lr~ތFjdp 0.q$ ~k2y#!rSj|LP9KU5ZgKͺ; '`wN쎗,~rB)ɤ$| AEٖ8pܟDv<vc[r|ô[ukwlJv-ղyDxo;7/C[D9<%ʦ\ؕ˓r|؝Oj,mY-RD:K./B7v|pcwK{ND!\6;oԟyRI>Tr9Nv崷3/{;s]jr2ˁ Ům};Vu\fIbg^.@bLp׻`;Uުܷ'n7<:&Bn#riLDN;;N�a~ N&3yYlo¬r_l%vӓz׍?];rGOhis{l7:iO�',j׉_N䵨vI/'toeCќ:cwG7c]z?VU %O1?(}nO.n SL/BDvY幝߲]~aV Ԯ[s=B.GIq$mC].KJu>E}'.>gdfG:եH*vcK?*~V~vm<:ͼy+g)v7ᰍF }9!vK|:nDDf$,s/EG,H`: l'vܛ_r\▋>*6Qm`?蜪oQ T~*U̟r0$[Dyeצ(v~i^_.'v~<p s&ޞ]dIs*Y|˪jSL kfy\:o+;$YG#u<ҕ?;\qΏN^`lo;9Gl%GӏZe6cW.:r{$>ԼL*~];sߖF_A ʟJtT֋Nr\7~8K;Fq rύ}g ʝؕqSٛt K[ae_32fmVzNۢ5rN߹`~QvY'~%_βVUJ~*6 ѓem,[Wȩf*9p"뵜Ɵ,Wͣ9Ω\cĭiD'\LBnJ؝c1We5sF</W9yܧo[d\ ˢ2%]WHrTW5g :/٧Kx|O*BE.^׹(fh2nI.[0Z˲z#eg|?ò [a!ѷr^>E˻s ?vWs<)l[lazDQ̎xn.v<뾄fYQʸ;sFj][Y,%+TՓTٲUHrpKs0"lU1X,~lbb <Yycu=j[>ETyR$x/. LdWL@~Tʎ< I.>p!'i2>2e1މ#IXG~>,vkggy,Vsc`RY5[/*~rC5|'<$A Y'Zd<Ӹ,_a韇3oY1jbSw+wQ̽u=m"< E FwbAC>lWS&mNtms=tF4vM*ne_Nenɲ\sӭ}[_}s&2s>We}MJ3rE!䲞Xص[Dc-[DRةCXenu9ȍ~V摋8\KDFí[fdܱUf +'k� B]Z+٥<7='Ka&47軣껛muN߂ ٯWU[}zI,{muODz뢽NΡEvX|.7^dv~qrKڍMTqrlwptbWwr-vUڣVտvtp5v0c]3pǩ]NuS8"Cp&qd5c9 msni9w}ux/Y~pb<to/7cYD=@,4q؍}َ}rZ7msbWA 4?s8=Œ*2˛N?&(洜ir1 vIFaB}fcJ*o'yr.t#st Vh? ; };{|/P${v4-ܚ69i9:|T0n\V*ꐠEծeav8~7c* ,RɹDr K[J(#vrykn0:\ -[EP(IEIr}6ƵD,m*MtU[ 7v(^[eܘMkJ1-kU8JPZQCt_ ׳r;Ƥe5STwM^Z=6@3N"79ARse.n(g; Ƃ;2o{OkG57Saeem?W!/[UZXC:l,4\4ϩ>7#[yZNڏ^ߥn^2E/mD6@;?8LZU*s(GL& +e~Ɵ91N$ U}dq7Y{&q9m/S2-{[Q7c٤b|+L؏C#@j~2LHP9fP}V]2a2Lw.>2%hX%)f{x¾.e ot~}]?k,:-u,{Yy.Z@c /!y%Pw }&̙a&7q2/*#eS{+34HŒ ?;;k#a=Xvjԑ9NUV2<NNGICŃ}YAX#H12)֛oyk.w-)XRI^g^t>ęF(䧴ph=OY^r@zһGDqDŘV^_*K\zL}fNG03<i$AƁTn*In|ZTq3r΋}~1Oo|~:DnU&x?L 7)/'&q﷈?꒞85<ågYfGў̿|7+aWEtrn.1S@Ч&su)IedЫe֙=eUJ)x}wC`/{<h:2)e٭JCJ$_yIv"8[: r(VUxsڭB.D^:=ZsmZSDlgDWHK\ΣvVZ33d7#rn93Uc)Ojm:žiޑ*_5C^&(tTv ,dU5v]X6Yt۔3y/<IJq"=|Cy:'t6at}HuAv2m;/,U4Tk+tveUٿѤ7oQ>n_g.UEEqwQUȖ iݤGݞߕ?vqWՋfu'e-|2l7qν<l'9e?uOQ31W.ϵ2x 7㯖xFB[x_jeTvrx=&: 9RԻ<N-%UL$ȅ$KyW<ye^W[q}$^2(Im/[}b2۪./ۿd^52ޥWTA}f[yy~ȏeZ}ҌUءu0O-0R٩?n,ʯQǮeVE=33N0Xx٢Nt$Jqf}neZC'2Y6h'B?(2k˺\d?ss\([Uc5 >N^g7Hë:j. M*z6yN[h;U1vz0o:%:Ūo$+sK%Md&NeU~B?%.uS\R:ƬO9ޢie˕ DΎ)#_u;y+yS r_zu=F[]ƭCw͚ S;$F;&WXUjOXn{퉽$ VNn$I:F1Qm[rmLҤQߝJŽd_jCƸWffdV:i=vd39֣fksEmne{c'q:q0~FTa)JfD{wbE=@Q#Z;l^^eQDFؔCd넭rp蹌&H2~X1^`a9ߑrm}~q:SձV\fMC v`כ߉Jzrw}1_%Y`1}ϢΣvT =,w*r\dݛ2icv1 -sIcYn\ylK4o3;So.[CN梗e.Z5#ϷJe3PnW5'kWyj-{Vf2lUיlW6WI纬+% w2�rw"Oe̥6:tGbnX!bnN ջ/s퟇mhށܳ׭wϰcQt8!]ܜ=GQ3L颽2Oǰs7vDV^SIZ.۩~']5\5ibGPJt\r霰X^STKeY]sZγMq3a[ΣW*^j=ޖ֠N ߷K?]!G ;An:g݇t-6a&-}IMdsG*n3bMٙ{z_G4k+ws] 9):]n'fKHth.l=2~W~ hS13,)}d_s53'{JvvpTsftc{Qt[٧ lB͊uO:}j6W !q;kfW5`ֆ[{JhëRUv9$+MW7ɲ7'?s%?b>۩]۝;WLmj׍?sV{ڍ Q9kMdZ'gb'W] js0ssnPoOv780+}1ݾV+ /+ݜ&6HwnυY+L';9s~ d],32SJmXEkU>Gdb9يԚ`c66U:֛LvE:,5B4ľjxUk'8폳a+I;zQP dmxֻt N3_g.Tl[IL [RwzsK~^?.{O~Mg,{&ڕV"8[aTY>I'HcRzF5\Msɭ@\=d5,T:XLQ恨L__}z2to< ,h<TeR*oR =,s^ϗ^~;XfO.{d6gkԫ]\Icn)}XŞ}d}`oV^qKA^y?`;/0>Mwl.y]ӪW;Pf9(!^1ޢV9m4k)/X;Bϋzpv:вR}sU]7i U;RR?(N)ÒHB՗sRzTy?,ǧvV}ON,LS>n +l~o""̲T[͑>q\'PLd3u| Zf?E 6]׌1"?2sDt.k8o7S)}KuLIi./hwCؗEϠP !:Zd ij*s5 47#쳀[1̽jUE4>ccRr#'=3X Cꮦ@Ū>Oܧsvy"U>?iX= p.s{gp}" =] uYv i\0$^6Ա__ʶEu 羗IĨCh^,03'\}qr#ʥЗ cI@ (>SC=ҡ@e c8='uF菖>D^W\a,#޿fƸ;LԻ};苼W+aqzhGR42>=<|^>ꮝ O-s|,!qV >5KÐ1pa7NSQ0GʼE/o#y?C;s9QN ͧy2jö{s5g^m@v#o=HW|!y/!.y oBOqpk_3{\N{FYF-?{/ٗx&3\wN|&?l^Zfsʄޅ^inѾuxRwU7%9NQD=F-N~Lʬ,8| x9#vSG'r;#K.;眽D-vNe_|K2Sh+yƑQ(͑- xRnb>{S~|nW>'J,{po-Wb.L! sP\eznx"`I3OasfF\B\f|<!3QZ=4;km_G-sNu'_2~ 7t_ RC{} :9/e5VKkDT1@.%R,ڶM8W뛨.q>= Z`o?2CZYUU6fQP| N)Ou4 9cFN)ud~W,}LcoQi[f{sy? f\5BKa< ;> 6ʬ^>x8)]<펇cy~(dl<圛x/q\ז^1Ey3/e۬Q3wd)/uioExI]YZAʘ9s83ySϡy$eԌy4dUru4Ofu9>m{VfY&<7usYZ>&T2um$'p7\7^Bʘ8Ry C$~zWxtIDW >Sy0f >GBRz倦"$0gtXm2<d{vŒZvZ.,bϟHz(>vsy'TJ9y.} ѷYzr$.ѹk9Rɣf931/}sZUeG1y|Cl|]<,A!Oji2(>Njs#>+9KI]G綌u:a< HIZ =<D~z>3+˼z|fke>nO'<\{<hǿ2Ll_<]cǵt~^ ۩3s|]|<QйP+c;)U=WO g'o[93dmC *X}Nq&}Ib_6p]Reud琪0;Hũ\zv.S6$* 2CəJfggNH7Cy1OW)`b΄zBInp.:Tj+s{^m&Į }Z|kr&RwIQ7r$ Z~A{M۝3`*q9Ut֩+׉fR$~#|L[-+\Vfꌊ^Io!-u*iYkwCY' f/hkُi=Mo1/f=KټIhb)H+ϯq9*{)݇Md7x"aKۨzz:¬5{w+(tm)ms{!E*|fcy9+ՙ<}чNdڝz鼨^p ˵4y:f| #t'Xz6E+uY[|=;\purx*&dnEU%;N/ɬ@M #V:r Ws}1x#)^Ζ0}aw5tn :W6e$</.;Bk;ow9׸Y^CvTc zf0s|o;1/)kH{To:UE/MN֭Ide;~l7ph;r:Q{,lP,ʃ\ƒVY-piWv=@w֎&z#Weħ빊9y9;Ҝ{k$>S{ iNqN{r}& y;2N—z~YXIJǓfe|(f{gVg,\QS6Du.' ϴr\$3y,_FS Kf}fnDfʿf>79#d^!:,[mL68xES;\ٕ[5gvZ-SڪZvwi`1%>=JO)C>%sW2|vY>fg^0l*ndw>{3;VɩyZ_8SNg8'i0^!Wpv*\P)ҍUj}lfrWI3(Vj83ՊuN-nP,:'Gj/'ubaoi: lfsQ>sJ̱ZmQVK5FNdB*;f+;mNx'vdفX |~ סQW!:e37W<sjOS{r^l`>CykK%?Hv>?^pKKxigg^*svvɩ?4ڑsze>-6'k %~(iKZ~Hrǁ>ʎ S;No,X2OhazXmSz+~n.(Ճʲc&h*P]lϬ~\Щ^^M\&t '&_ëuvkx@5u\uUd'a>ϖPe2Wa+wjtgpʿ쟛iHtfv.!}`'v+;rWU+"kczBj13Z{rm {ƱZz9̙m&8O^_zMNO-|jפG]}`ҮM/wӍ]UʱRub׬ W.®/u_myduO0\X*!ƪ䷢OZƜۑ{;;rMܧhA1/u"+]daPQ}QiƎ͟)!v;L 8M`[0UvԎ!}=;;~侞,s̉?l%N~2cvĎ\;\}iE8R߳;ΎJig]Z/N~\X!_ĚZѮEuM0Y  nk83??Ke]7" c,s]dgFID&H|ʧ*|JOU9SUDG\WIy;{4Nh9}r?@Ȭ;c'ubGnؑeTn܍/O_inv$TGǕr'SMx ܤ=;]GԞ&NiK)ܔK_ezܠ2'ǡS{vv&)pZw+;!6|%>b]af-|MnՉ?W)ǨI-0 72IÍ 4wp4$lƺ`{y,T2'}XGX{?Ԟܧ܌?'m3ߪƥۥ쵫v(1G[> <֑?luYv<h0iK|D>U9ȂeU}9q* K_v`u_bߑ'L֗Yav%{tG^Ҏ+lgKt]L(y \#3*}4as菙|ƃ?srIk?YVk+:-Xgn2.ş-ֶ:C߹Qݣ!,oy tlPskeΞvid¾*hk_]Q+y߉Ʈu*ʜOs<Ԯ1\UHRT:vaj ZؕSȈ5s#_Wk}x+m}mSaV6F2Y.h|UeCN d\"3?HrAdaW:+jba|I'$9A氉t7K3.n9v̱K<3HI$fIr<c_oqFK. EO콒$߅"Lղx9yhkkg︇VO?2g&s!0VWc}NZ7`W$g[yŢ-2CϪWS 1dW67r"O4Ij^{r~{u`Ge+wMv(2gGL%h0ԯUrB0o/-lQQOg)愼,{bnΪonvNnSyDs3N%BC8C~n|Q{y?ʉׁ.ec uv xV0 gM 1+D!tIxmU3'rHye(+;H<wg:Ĥ*ݳ37U ]6c8#;ɞ`.3OmܒدU/ݔ Z&h84{7|sb+*^;H۩?t{ŸZ6G6Ւ2lON6C$soQ#[>:YCgx{RZ9IWՙ*)yFy܆U(\l2qw][RJ7Y.y9$VNWIX_yZ-=$5-=~gBGYhU?4zf{ HԪ zz$)S|X3^57`7V1~'wRgL}Ǝٞ&NvB%keTFlv6YR® 4s!eIr~'sWuցHo9&4z-S٥RRQ_q%-dfidl>W?d~RIXH+)gپ</4,׷=}݂MɻB>Ƿ\=V*Aln~;'Yʾ#ojmFgorՄ-Ɔw>S7rM^zarAv%0Lr]N˂]JҾXү}KW2. L}F?9;?BɭAA+ΌȱU&6Uʙ l>6q0qn$n_ydw5l'Z.g&c[ %.Ovܸ-M WI-vPNc9W:p9rwdߍv㺭ɮ*H_uIUNV~kov~Y? t>L6 Ϥø9atORJwyLkw8[IUJ+Yn3In>۸Ne'= C4~Rl-\Ѭ&eyQSY,)p c3\MgrrXqk#Mf2e&3;HhĉN$f>[BnI+3 ]`bgWc&C%0s_?\Jd7d퇕 -/NefW叕\3*>3)S*feilB/mIZGeqk UhTߴgГ UL?vgR.~%S5ydu'XZSGf:2t]9Cˋ5["_3?];?i {3yGdQd)A]ÞE/967ݔ'f\b0~᧞b_KsKs-+[nl1Fr[&[窗SB'Glᯕ/v诜7I~YU~*\t3ڂ\gn-tj k8ѫ^Z?n凪wȉG-qTY'tupǪ^ɲʑʮ~|[ g~Nfv*NەK\9z>a% ?1:r6tB\cc |7h^/=HC>D4$rLOnda:(ϭ{kV׍m$ HV։]z>0#9K[}-~h_21qkuNgR;Vkfߩ.U6{l?vOېߒyTe.!yvmS;Hȉ?nt~n4g$z}>vaH$rNy|{lyva_.cmk=࿭e΃ZfvTՕvVGvvT;{dgGQGvv>C} \{kRo1kw$&vN'N1vK ;GUZ} Uy |uCU^ݺ*n0k#=z@U9xY_휮h7a_.1ҟGHZJGLʎwe, ;l[z/esΎ꽳#T_cU={>~[瓘=jʹf{ZYaby_ta<\K2^Ԃn\Ic䇪Ύ=rbG~3;;ΎոBٸ̎WnQecqcwM/VvUy˨ʛUysbG.ovvTΎ9#7B&:*{L˔K~I'{>ӸY3gjEcVʝrgeǬYٱ*wNʞzU^yJXkTV^v֫J^cV3;|ډ N^Ď;;;*܎Uu+Ϳ;[S}eU|ݮuKঝWdKwYc:e7rPv~@v#ٍ\d7rOrN. ZYnG0R%reBK.gXt~Cv#W}gFgٍ\ԍ\ԍ\ԍȟq+"Z.hٍ\rZv#ʍS\r"vRaGܺxIĭGܺxiĭ;GxMĩUnue? ~iҥ\dr9vk>;xrM'|y֮Q=좟}*w +Skc_[̲)Q^s1wy]UDkn*3R5Oz'"=ɉ^pK.ֻ>LYN vf_DU̙Ne]YfEf )gF9C/: tb֓n׹zҭ][�Qg;ǧvhMUvNvZҼ 9Y&!'Nukr;FG UfMs_)ύ]Uj7ϫS}?(l?DyΕ"js?pҷt:z ]Xd]C&N~1wkq}qS G:9b8g8S-t!E/~.o#˿{~4>_̎|HBe(+_]3ߎbi]Yf6_a3{Io.\C.Ϩvmtkn729;X3y&}Ca>uc uY1_w籪֑塚eYkqդ<X\I) 9},׽'Tףlt_07Hs#M.ozcB;s|_FϕM9bTW0އ Y6a~)~?n^ <un<bO)Q7G 7ٿ?g}$OR5;kY*l�i+3z=xV0Y </v8 Sy{6bLZ],s^LxHUr=znM黔C)$=<}s9M||,Uh18_!-~8I>*GSXfVӳ E8U>&|xRwLU4y.g}v\GF'fi'ާrr9&Wge,}.ϼ.DJo)H b^(??;Sw2R]-!q9!}i$lK1I<Z:9p8,BFs˜(l}Z&rMGj>(D֘^ q1v25d5\b3wpv؟RiF3?ս<N4t" Ji`f~|x6oeSE.wMmܭmltTEfbT/g֍|w<Cu !aL|pk]Sf}SfX! #=k-#ڙ@"!D7mhOַsr},b#>^e?~rcF790,=/|*OX#c<[5Gx?#gӸU`gZv;QCeyL;t`xxVcHZ=d>^>WjiA؃7St}*'Gnoq]hZ<;_ R_k yH*Xq^e\| x=s{jKLYޤK2d1v dLؿw%oGLz詄||Fu_uVi~ɞuxg<JN_x8xٚ+>QO!Uz&*\y8T{fx]#@ZO#J-ww>."Sm}.ۡ]َŽ_MDe1N3 >ncL/ouƻd#Oq9A+ ur-rZ@w/kK0s yDx< wx].jv˄\Nヌ7uܼo8Ƽ=q꾙yg џ53/ƢF{{173&<f3R޿̼kyxy I#̼Y\Go~_b;ļ.0Ow%dK.1}e䉂%mH 怽#2<`#.ﲁkݯyU}" Tq Y_sE3M@}lޝ}iwE~6 =0ށRceAUgpsr¥Hqy '|Lf02^xą\Pj\F՟۝ͽ`"s C-1>y7'rIMs:țb2vnխxP!˗s6m]8UnNig>~j^뵚j#teVsfnZZܯ*V2v~ɜKI-3_zDQ*m|"_2&imWF ډ[V7'#t  ՋOjR sSEߍQ[ɸ U<¡2+O7ITc/a4qp.4{*פԠ7m˼'\FeD8}H$-{cUҹ$/>{.N{+DI9b =.;:;;c}B>~ff,'d"kd$iW+?Nqx$Np||o =ebN@Qe]rl7U ]FՆ7+vw[n77QTp١œa_Qs\71.ELN}\֒6>Is-Q}:"+>gn)Bv>O[C-#oW! =9 0|+ژu-v*fV|Ø'e򦏧C:Ei|-}\K("ygC$*.Kr얏˯~]>^ra?*9wymʌY?GF]Dԥb>S51_lvk6䱪jxWˬ}wW~̹fp=X#Dzr=din, Jzi؅Ib҅^s oj2x>MI_';;4|q=w7qQ\'SffER:[O'kJJ2A/ Y><8Bgl5sq˞$ߩL;IYh.f.P̃drz'sS>.X2ޤ}>gBNKMҽE&1H襤+*tIG~ njd'Hjz:| }1^ѥvl0sTn`u}v=W17 X(Kζ]K-:5ے.NѳsvyԿMuNnsOCOI:Zc~aF>Ti<PJ̉Nc#9[^Ե2+:@XuqYP9XVslvs/njUz%5ֱ'.|U6cS侺]4AòyU7Uϧ$3'q? v--4/nAK"}1ԁ;Һo~/CO^J=_R㟲n#휸WLB o. \\YW1-<oL$KWT-I&q㕴p#IRY x~@gINoI_je_Nf߭,{{{*}T_9y<bf|^?z*?[=熭/IچJ~w|jM%ߣ>Ý`cKO˘ߧeּST yZ 9#rhU3s[v#I$ wTƼWTOg5'K;-"XO교Tol|ĝ"+@爋�gÈo!-KN%{&{"9!">nyv(4;L!ҝ|pg<qGww]\uTa咚bL)*;fI3Y<^H|EzojqfDOy͝O1T?l3cb$kr~zop*yAϥv06}h/3y1{ J;yxfB֪dxMdx*\ ID}$ms^ι hsN@݀$|@~. k<@t{I]c=i!2\'01y<$II.+c5-^nF|_*y듎埯)kCfs3kŒp_Ƴ 8c/t?I,,aTU6>bK|N\Pˬvdm4KДfr?[5c "MTiZ:|noVi^.躴}621II⿍ߤf?2dc׏=\wA>[m1}ax_r—:Lb^W+k|o*;ydj(s. >q$OzΖmڈ^RlNGd9,&T&ۉ#\$i焾xi Ob[+|}%&%s;/C(qsmJ(d kf}'Kܬ;X ?V_g۫XKb17Cױn>,eTMReq(Ly^_5̏<u{2ό=\Γ ♝L"?v ᆕ_NeN*K^i߼dxkmQ~q'3Spž4Zتdohl4W"zQ &%Y`k;*NC|ݘ*F"ɢʜʼ>ʞ^ˉ̷Fcx]g_sW-pQ́2EX웹of#l;q=a>P#뻸:G{Lυ.V~oY`S4_33t<v+v;ɋBc8D'˅y_o͕$.{kd=&ń{oIBgQN%_IOV׎ cx\oWܧh?onsBϓ,֕!gtl[VBvg6`S^`aGl/:UߛJƃF]?矋>twG qs!gfn}.{\Vw=yg~:+%cKSK|-~-x&w)<m֨U( {FjyJ*C.Lt 9"Ifؤ|6{xWY{<cci_m(Ms~eβ=&Nu }igs{1K&' ®p,!~DZّQԎDz2o"WWLM}%syr}Id)D*Cd!S�y'r-1T+*E83Ҝ 1Xns<Ir\+¦?)!͓I 4^Hk}FM 1?9O>dOGP^W('Y-Ւ[mmN6sh=Bۛg"<r$6y/LvhL&i=ĎJOesd[vy6>ޟIG/ѡies,lK}Bj?߷^nh4.OIG|o$"1rL,$$-+B<-r?TU&^VngIY3ڍ;]Ǚ[L;')wk+YWIҫ$eop svZ_?]ݯTa&xw k.p}BhߛX\@!gc\~?ZL7C#Q@ij*:n2'Բ 1lGRFs­pi.?{~?2)^k_"2Lj̍MyJT>gx!p-SqtK*Xrٞzyˤ d;/$5{I%ev7iS'+9%Y\*>%y8$~![}˹x:sEKQs8LR-ss}~8Mz0s1.Y@7|}ݐlt=$2N"DNy;^"d,;(nx^2gUk@<d V/OB",E[F=\!S$s1#o mx͒횕u_z|&h>#H8E{)B v<ƞ9=l3RkD%+ɵJ=%N&n¹i'n* sȻSjS P&<}%ag_)OPs?r-ޥ; V©_ ˜G_ijY/lDG%ncOoX}g3gE.N1~!7gicovVK|Ak1!%fTc@yo1y^DO{nP.k#rZGǍ*R̹&=1vTNNX&=Iz6�_ҳ+E5vNc�_^Is?"lZ3Y~n,Ι6av:btm'PsvXIc|c2|eSvn!-Vy\&xK;bjx'vca}nX^8IZy.Gya|.dsB~D dU*r}U]@U Pɻ'к@:AUY7U66䷝{P;vu:A^.,7)۪@:AU?/+إ fsv^vZ\'TX96+)OYϐu*=Rfgf:fa0{c-\Dy7хy7:]iHH:OtaiZI7k{tNMo{i÷?{ |Owi/u"Np[_N/ωYy Hf{4f.tќuqߐN!g7Σa,/guN)3wH?'f?2Xml89Yx~I-[a0Xʅb =͏t/b;4t:EZؙӱH3s1O*wRn㿿=.˞vR69Li]oZ8m3t5v\\_qV+Nyez(bݻ z]7݀?"<b&$+$#tG!:a>E܄~^ l5iΧe[u:xH57fsbG_$ CBq3{zc^3*IM݁Mk͞WJTH4SԌէ\e黈ws94y/d݌4N:~s_06YTM*XEv$%_$~T9 ?&:t,{OJi}<ձXk/* qq]Cƍ5M~ ?p!7#)P`_zNx߯" b]X*ֿNaz~Yk| Y09rXmǐ^Iž 5w$ 'Kj߆b/veŚ~&E}ߏl?sۏ\Fe=]z+zΜy52{>=|^NOˬ} /Gc'I?N 'I8EE<DD<EE:8>2öLϟp;x=Z-FgnS^~{"uU| "R8w<ɲ {rrEXGjh?l#3G *։G&f_)ߋyK|^?e}38En0/akXﳰ_ F.ˌa:{= dyAOŇdyYԇފ󤫸𾲟^u;˜xԕOwUJeXcYO(1OFˤv^IK~;)+j c ,Ӊym|- [ˤ%̋Ԍ o޳GK)JHI>Fێ2s Dy[왟[K{i7eC;Bԅ<?K)RLyMhW:zl>VI{9$Y4%F:\BdƘ)-g8^-󹅷[;)ѫ}NŚr+n{^v{@ғօ\ y<ϗsNg%|_-̽f|p^{[ۍ# ?`^K>{l*s}3{}3sv{OΜ]32.=9[>ʲ1>J>Ƥ<ȸw%Zo eJ{={t@~DjE~t_t ݺCXoa.a]B# >"=S80@^:7>y R7ˬ"mT-[clg*>T2\J. v̾F_Nvx)dM 9)F[mw-/2%Ļy{*{#$x쯈oDME_`VJ qYR>|qy<N4Gs7r4+_pOP2g׈{q 9y?S]i|B \nc<#Jx PỈ}GH%ҸT+ľ|tIe)i2}75u5 ܣtE?$})$M'HyRHڕI&0>Zp_N}.9)$9Z!9orsCP:O#̡TV~햝}3c5y;eTܨz]~hh7܃|ZQFKHr$g6 0nbR)-}ثM㶚/&onp_/c<d|7-'Q!3{7.d]뤱+}ĞeYOF&Kߛd G2>?afT9^9~ʛ~\?2Z:ާeJ񪀞Aӽ ;cˇE;l|E㈼*~3I7ȅJx^ŹbOT=dE2e)?峁2V>"'͈|;wU}d+9>"gjI{Oʄ8t^I"Ɍ8mdFLR\L,mEXd|P2gTr*HƽYF*x?ݾe$U6Yo$>]eJQV?TS=8(DDŹ܇N풜U.}i{"O5<x?+y>#vsos38[;23 jIxߖ&mwꗸ-i"M̨:eä}̈SQo'9up$bX wT9V43sqO6s$=J2cV?)ޏKELF]t-Fnd\QUp{AN J3Jr.k~UZV]hO&QIs݀:>v F4{wX<2~R)YQJ d>Zk.LRlюH}Y\AzfM2ߊ9黉_nG覈|X57{"< w,svS/o,i6 G5SDSo%o<�b9]7=4.\V c1̍NJ%<'Xm!(!5ϋ=y{ saNM݄20'?YAvʬUx܄MS?9f徛8X,LYMZ]c0X\NˠntZi`g֮~*VfknyaWXUy :.<nʪi<MI#+vuVko7ٟ+wWmW? ~Lȍn 7`]}vW>9si׮~vnnL &OuLMyuLvӿ̸Ϊٵ{'ݍ]7 u䉛w0;wf݌oSO/si.IG7&'nGO1ߒs Yu;^s#?s#scxM|Wt;^s6nuKvLxm0u`knnz07<qcxM|s_57e;׶d0rw}2{ZO :ͼ<r;^˵vɵlfx-9M3^56s[rlYpjXbڊsƮ57�pnkn⛫`#nnZz%nkK'ō]kn!ܤ<p;^Um|ݤ<r;^sZEnk%[:Mn'ݤzʍnZ^L]>q/3\܎si4L:Zw0yƮZeAmI`7#kZSܼ33S>a.v=eJ ܼ'*Ʒ;Aip|xB}Eb,X>;�rfCY;}1.d_d#HVgG#G1l4;ǎgc D%$v2ƱSƧv:2;gg l"bl a"Oc tv!]fKإ26]ξ®`ؕ*v5}}];ȸ:v=\v#nb_g7dne` Bv' eeX[*YKjVjY[–e-g+JVl kdl-&[|6{gaG]=}yC=gُOOY9{ma`OX3%{=Zس9<ke/Q6_%~^am7U~~^gM??ݬf/e=}7w>`'eb^)>jѼOk-ѢŴkhjiôCC0 pP6BikGhGjcڱqDKZvv6Vhk_kgj$,mv6EM.Цkjik3KK˴W+YڕU5Wijulmv6WQݤ}]Yݢݪݦikwh ڝ]ZvvHkZЪVӖhKeZ\[Ujm֨ݧݯ=վ}SN{P^A=FQMڏǴǵڏh?՚i?מжhОԞҚ_jOkh-ڳsZUۦJۮ^~i^^vj~~k:?ioiok;ЩY֥U{W{OۣM֭C@P>r}}}[>}ik4<=O=Oԣ{b'ϓ9s 0C<z <y)|33S9sH(Q=xF{93sDϗ<Ş<'{zyN9S9e3=<=<gy&{LL93s| =y.s2L垯x\sW=_\)\33sgF<M{nssBϝ<w{=x,Tx{*=USyxzy==+<+= U]igozYymCx<{{6zC&Ϗ<ylO=My~y³ ϓ<͞_z<i<yEV6ϯ<=/yvx^ϫ<;=g7<oz=ѳyܟ=7E=y<zz<yس/'{z=zܳϓDVz>!oF7{z={{ B##EýGx={wXqc _{O5zTi/{=;{wwi{/N^k.{gx/^;{++Wz^U׼zKy;{ޛxo-û{.r={Jo7xku%ޥezr Jowww{~޵oxwA﷽y{}wy}?>}ܻcO?6y /Oz6{}9V [ۼn}k+6oz_;]#Jvvx}g_x}ϻo޿{~O޽y?g>}$H|>/ B/t_}L}KC| |+}77W;wH(Q}F;7wDߗ|ž|'N;W;唋gg&&&M;wo< |}.]w2L徯]wW}_]+]>پ9|s}7nnwwBߝ|w}-U*}UW}}+|+} Uվ5FwB[u}=[׿{o﻾{?1;~3}O~{KӾg|-g}^ no8di~2>{Uk~{ݷ{7}?m_Ͼ!nw{o}|u}{}}2D}}Kb=~x",=%eF'&l]71q?_?proooooooooooo/GG?hOdX8)SK??,d)s?"K/_? ,W5Rus7of|-[ ?[_nE bʟWk:R2ʿڿZ7˿NY=!zwo=G7&??ISf/O?߇֡s/EV6/T7Wwu.o'[?]{=G?^??',<od2Bp X  ;aM=/B`x0@Q#G86p\ _ N 8%pj@Ig LYɁSO L 870-p^ .\4pY`fWWf \:pMુ  \f9s7ܛ)́[m,p{;w ܋;Ł@U @m.$4,PXXXh  4 x 67 <XN# ~`c? l (X? 4Y'[<x /O l [qg[W큗;/~x%Mk~x=+7?)V@gρ tx7^`O݁>| |g |O@_�-� jAO@0 H0ԃ`<<0xPpX!CÂC, ~18"82X<<xDQG <>8&xB'O ۏӂ%Ӄ_<38!818)xVpr9sӂ^0xQ%Kg/~%xEpVUZ`i9s7o ~=xsp~ۂeۃw ;X'xopQ"8X &`m.$4l_}pypEpe!*:&/x7 ~+.` >|$!n >AM >q'? <DpK'O >|&|6\`km__ u`[7Ww]o cpw#[?|'k{= =GG? +I? ? &,<!o`( "hHBP^(?t@AaC  }!4<TbhDhd(txБ!~BG:6t\И C_ N :%tjPIЗCgƇ MM M :;4%45tNдyC. ]84#tIeC_ ]2tU56T.t}hvhNЍyB_%tkPY;Cw Z- UPM6TZZZ- 5VVքC=67C =C=n{6 ЦЏBm8OCM~z"%ГB͡_=j =z.|ʽ C[CBJz)#rסWBmޫ56]߇j!PGOBo:C%N+лB{B{;S> 3qho_OB> 'Y/yh_(ba- {þ?áp8 Gz8  >$|h |X ##EG 'G>6|\ _ O §O . r IFX'O O >  <=|aK—/ _JR_*}-|m4|] Ṹwcx^7o -\=)w ;\'|oxQ"8\ 'pm.$4,\^ή]VW««k #~(>G߅~4~]Qi)O~2T9g-gυ_ ¿ o~9+o¯_ 6냎îo cxw#[Ý?~'k{9'~oῇ0(? ;4g}dE'"H "H$X$ɋG9(2,rpȡa/DG #_Eq##"GE96r\Ș #_GN9%rjHIȗ#gDGΌLLL9;2%25rNȴy#DG.\82#rIe!<Y+#WE\jkk#"GfGDn̍)͑["FnEnYY3rWHyȽEHe*TGj"ȒȲH}dydEde!*:&/r7"ߌ|+.`ۑ"#߉<y$!"ߏl<A䇑ME<q'F"?<DdK'#OƯ9ӑg"-g#EF^Ud{Ȏˑ_G^E~y5Zdg䷑E^>FH{?FvG:"y;s/w"]Fލy?#ݑD>||gȿ"D|OH_ȾH2¢ZF}Q4 FCp4Fh,ED=8zHhAã/FGDGFG=*ztGDOR8zR)SEKG=#:>zftBtbtR)ѩsFEϋ :=zaKF/Ό^JѫWG~5u룳s7DFo΋z-[EˢG..+zw<zOhEtq2ZMD5h]tItitY><"2]]]m?@tmoF]}0CD>n{G7F 菢Vocǣ?$hSgџGn"dhsѧD[F>m}15-Kїm&jo}vD}+v3_D}/'~oѿG~0(ѽE?;4gѾ}dѽO=ѣCC0 pP>BGGdh}~~~>F?A?Q^%3}>I?KOѧ E R2}~ }~~~~Ukz~~>[ߠo7_!]ne}~ w{{EzXԫ^zD_/ }ޠWkF>~} uwO.bA=FQM?՛?ןзПԟқ_O-szUߦJ߮___w;?oo]_w=?#^_'^S?gzOO,<1o`, "hLbX^,?v@Aac}!6<VblDld(vxؑQbGǎ;.v|lL؉/Ŋc'Nةb%c_;36!616)vVlrؔ9scbΏ]0vQ،%Kcf.}%vElVUcľZXiٱ9bsc7n}=vsl~حbecw;V'volQ"8V%bձXm.$4,V[[[kUձ5}cƾf[ucߎ=[N# wcߋ}?1h6~{,xlsDZ~k,-_Ğ=k2tXKscb/ƶƶ~{)#rױWbm^mwcb{3C쏱ݱ؟boގuKXW쯱wcޏ-Xwbzb87'zcƆ<V}}TgT34|Ľqg x$X<ϋ?(> ?Q?,xawGGUǏϣGǏ?>>&.'O)^?)~r|l|\%_?3>!>1>)~V|r9sϏ_0~Q%Kg/%~E|VUĿZxiٰ5'~C|nMo-kxY;w_/Wƫxu&^///ǗWWk#ƿ(>Gߍ/Qi)Oķ2T9g-gş_U|{__5Z|g_>Fx{?w;;s/w]ߍ??gOx_x2<O7ϗ ByH^4Oϋ;0aywh^Aay_Wży#;"ȼQyGwLc;>oL y'})8祿;%ԼJNry̛71oRYyΛ75s块w~y.̻(y]wY̼wEެ+ʻ:}-ڼҼϛ7'y7˻)y7ϻ%o߭yY nO;ƟA,cSb!b!b!b!b!b!b!b!b!b!b!b!b!b!b!b#t~hp8L烙Z0bX �V_w_Tソsr@)RhRА(ԽOݞ=uww$z윜̚5s,lj8tp5nĝxq<,Njxuo>g_|~o_a-$lM0[ak Ŷ;a,ЈfG &bڱ;ľ8'<\p;#x}|_4|X+`uTNDpxo3|?0ܘ`i/`4vB&`p.5).>5gc9?c{4b<Ѕp8Z܂4^ 1BX`EaH}61& {�#qN82\p+xO97>g?W9w`A,VZPdž %bFcg4b&Ӱ!8$sp.UN܇Kxo|=~㿸X�b),U&al1C0c'xbwLŞpqW:܌;p/x/5 w`wBX+`U6Cv8{`?cp"yW܉8^ƛ_{G~,Ű,VZȰ6F_ ¶cфLŞ(sp.uw~<^ǻ_;̏ŰV:ȱcK v hC'8dp !< _GH`!, ւa=lͱ%v0mHSq6.e7܇G^kxs|'Չ X  [`0a{&ɘp�8\\+pn]x�7.>ƗEbX+a TQF苁]+Zс=8'L\p nxO~c'̏E4VĺaCl--vB#ZЎ.q()8j܈q/Ɠx-| ~lvX+cMdXcKl#a:8'LKpnm <W&ǧ?w>BXazcKl#a038l\p n)6>?O9?"X +`5`3l3&c*8 GDsquw<g_{:,Ű V1#0hdLǾ8Gq)ƍa<o|-~. ҭ`>,% VZ0M90lф0318"\p x U/ s-8X5l>ž(p.7N܏G4^x |_ZcQ,:E `k hE3&bwL818 g_Wz܊ dzx{_o bq,&2$l~ЀNLǾ8G8p>.ո^<'<^[�?0ǢNb^,%<Vȱ>6Elm1 ;aW{`q,Nƙ8*܀pxMO5~}1Vb,%A_lt`a8',\+q#“x]|3*za9 av@#&{@p~<:gb%;V:(6a; a2b/p4N8 \[pcx/ %ǯKhdn `1,c#@ .pq&% 76܃+xS|;f_<XK`9`X`slmv8L@`!8T pxOeO-~ÜKsaI,Ub(ơ Kq#ÓxKM�2X 96 XL4#q.x?1�`)հ lͰchn 0q:E܅Kxc|+*QbX+a TQF苁]+Zс=8q<}Vĺ0 c1{Spǥ7v܋$ǫx 3|X cI,U6rM[a[NhD х=?Q8\q-nƝi>/̵"(ƊX뢆 5c4Ƣ;ao3q>.õw!<:'?O̵;XK`yuQ[aFcG8\+qn}xe9ïme~a^,քa}l cCpN8܌ x c|\6XaU6B?lm=bWLOSp6.^</D\ c)5a=l-5F`C &c8't j܄;�sxo#|;XaYQ`C lQhE'f`cp2V܃^x0ĥXKb*6A pA&S78\\p#x/M|#k;VȰ!bc'4 ]8q-I.>sI`~,e F  vD#vqå7.<' ‡7̾s X 뢎m0 ; p NY�:܊{0‹xS|^,%VG ?c8ƠЎp..Uw~<g ‡7̾âX+c-�}0CvB&ӱ8 g|\kq Cx/uO5~Ÿk] b ,հ.c+ hhC8Tp%n7>wU'0/X k°>fq8  \^[s|0{F[a>,e F 0a'4a":0PpMq<W6>—cXk°>6� HFݱ!8 ' Kq n]xOyw1sXaU6B?lm=bWLOSp6.^</ c)5a=l-5F`C &c8't j܄;�sxo#|;^aYQ`C lQhE'f`cp2V܃^x0wXKb*6A pA&S78\\p#x u| fOJ?FbWL8f܏>7X.j}1c0{(+q{ `,&2$ h=q|0;ʨbC (4`"v4p*ǕIO gCKcE*6A pA&S78\\p#x o}#~̇E VZȱ` b;&LDc?q ܍$^xk?1^`A,Ecsla]0m^88sp Q<&>bM0/X k°>6� HFݱ!8 ' Kq n]xOyw1sno,űV:a#Öc,v$L8�ı8gB\q#x/x[R&$mõVȰ6#ơ1 `p:Kp5nx�9s7bX`m}1`vF3Zщp.ua<ç?/ݗQXKb*6A pA&S78\\p#x o?âX+c-�}0CvB&ӱ8 g|\kq Cx/uO5~Ÿks,%<VGͰF`'GA8g\p+x / O ~_?탅$V"a` 4`1{ qŸ 7܏,^[_{ٷ}02Xk!胁0p(I82\[p7“x]|\h,%<Vúccl0 ƣ ] pSq.•><g2W6Ϙ`i5aXa�`$vD#vqå7.<'<^;_G9 `q,Uj%]1 S'?q,NٸWz܆{K7g Ra,"@)0-iH/\qxU%~c+>c~,e F  Fag4q8 r\[qSxo=|o3܃ XU$lL@;bo#p<NùWF܁+x  |0bc@ v ML~8G$q-I.> b!XK`yuQ[aFcG8\+qn}xe9ïm(?"X+aMf!шݰ;8GDp)͸  <>W`m�rX렆[b[l0{� qmi}|o *rc,"@)0-iH/\qxU%~c?bX`m}1`vF3Zщp.ua<ç?/= aIQE&1hc*A84qnY! |X`eb(NhDt`:á8'Lp-nxOw OsǂXc5:6 0`<Ѕp q8"\p;ãx/M|~lqc^,քa}l cCpN8܌ x c|8êX5l~b{Ů)8l\+p=nýxO%3|_Pٞ`a,2MqhdL>8G\p'xm|/~1?òXkA3ъN8 d p9í)7>7a1XKb*6A pA&S78\\p#x o}̇E VZȱ` b;&LDc?q ܍$^xk?1׎XK`yuQ[aFcG8\+qn}xe9ïm'̋E4Vš00�C0;aw}q‰8R\qx|#;sc,*A Ķc+&a ')8 \p/x ◝Q0RXk z[`kL4샃q$N.ո w<*G?w̱ ?bX`m}1`vF3Zщp.ua<ç?/$V"a` 4`1{ qŸ 7܏,^[_{qc>,e2B 1a'4a":0Pp&en<'^ǻ_' X 뢎90.6ta/qN9W܎(xs|_1[?"X+aMf!шݰ;8GDp)͸  <>W`f,űV:a#Öc,v$L8�ı8gB\q#x/x[ʮ c)5a=l-5F`C &c8't j܄;�sxo#|;*X6D_ 6ьVtba8',\qn=xOE) sOBX+`uT c0c 0혊q8 b\qcx-|/=~-bc@ v ML~8G$q-I.> bݸ X 뢎90.6ta/qN9W܎(xs|_1D̋E4Vš00�C0;aw}q‰8R\qx|#X�jsrCcsyֆIݻڧ47kuM2Q60G mMS:'OhLnhnkmuu@)-+[:+&5T&TlmPVUJQUTY>[*͓ZҼ{WCke|GsߗsJ _kRS[WټҿEe@e`ePeV+C*C+T lWňcteLe\GC)C~x 44t4vMt5; 6W**J3W&TZ*U&VZ+*mJgeJ22Gezex}6+MiimjNYڧUmmi_iꠞW7'6߲뤩MRm-mIzmS'L-*[jnLjh(]32[2e_.bRW@MM]=xJ{[UֿdCQ68'4׋';{~ i裦۵yJUnފQc~?P]_W RA*4hBz 12D8T凪ЙMj2uzehYeGtF#69cr!~I.l6^5\i쮉f]ݬgjQ j2ҦWlWvo|{转ejKgܮ۲Kvڮh:eB{G[ez !+?X!/?Z^~H|rYY.+ee,岲\V,ge9+YYrVryY./e,\^+rEY(e,W劲\QjeZYVjeZYVezY^ezY^KeTKeTKeTKeDZYjeW+V_ZYjeW+V_ZYjeW+V_ZYjeW+V_ZYjeW+V_ZYjeW+V_ZYjeW+V_ZYjeW+V_zYeW/^_zYeW/^_zYeW/^_zYeW/^_:ק}<`'җ4s .;嗊ƆۋK|_|Lw9*uLSڧ67OY!^+ky1UWt~u*3jS ljftEO&H4AK=exw񲉦?$ _& 7]lD z!1r#oD{m5MYttO7t$Ǐo~sᗿ ׿IO4i7i.V6jOYCpKt`yk$n)o"+Cc?5Xyg^>ϼ|3/o^޼yy˛7/{^>Ͻ|s/_x^2)LͿgͿg׼|׼|׼|׽|˗Me^2/|k{d^2/K%^2_W+}e2_W+}e2{{哗O^>y哗O^sKTc?5X^߼߼߼߼߼߼߼߼G o0Z`L1P_G; 2b6l$F3L}o0o!&:o9ZʱS׫0 c07L {0y0?߾KM{D7QM{D7QM{D7QMDfܛ)Uro+Fm33X-b=/+r{r{r{r{r{roc3d3d3e3e3f3f3g3g3h3h3i3i3j3j3k3k3l3l3m3m3n3n3o3o3p3p3q3q3r3r3s3s3t3t3u3u3v3v3w3w3x3x3y3y3zB5W<<<<<<<<<<�<<<<< < <<<<<<<<<< <"<$<&<(<*<<<<<<<<n<p<r<t<v<x<z<r<j<l<n<p<r<t<v<x<z<|<~<<<<<<<.꼋a=KVF4<~7p3 zI ʯx3׽uo:1ӷbug2o:/6'ԋ2K+@yܘ%o-BuUtRUWx;x8ӟh!?xz-e<l̒LHe8RydL4~Xro\k}&o73o2^l}ڤgf'F;<3;<3;<3;<3;<3;<3;<3;<3| /_x^򅗯yyyy{{{{O^>y哗O^>y?]D8UG,c?ϼ3?ϼ3CR<$5ICR<$5ICR<$5ICR<$5ICR<$5ICR<$5ICR<$5ICR<$5ICR<$5ICR<$5ICR<$5ICR+CRn,?-/<*5JͣR<*5JQx<5AcP<5AcP<5AcP<5AcP<5AcPtbC[]ZOg퓛4klm?l<lۭqJ ?1j.e(3=:=UQ. onljk} 7R[EVQj(Uã(8< .9"JC!|[[[w嶎G+aaq(7* Lmoi쮸reDz汬y,kZ7[7[7GykGyk͖͖͖͖͖͖ yDgљGtyDgљGtV*-=3#:<3#:<3#:<3#:<3#:|||||||||||||||<J4ͧ::';g;ͧ;;'<g<ͧ<<'=g=ͧ=='>g>ͧ>cQX||||<F5555ZͧAA'BgBͧBcZ<5iͣY+> ZVdzw?(ԺԻu?XAR#/?~2"+Mc'5t(1 q&4Lɤ]ԴiLhhi!{OM4L.=g~'Ng-[߷2^S57|6|zއbrw}47<nkoo뭁G3UBYE&vvך|焲{>&!;{{ȗ{{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{h{{{{{{{{{{{{{{{{{{{{{{{�{�{�{�{�{�{�{�{�{�{�{�{�{�{Е 4ȱS:ʥ߱zv65w66Owȉ\6˭Iӌ 3}FD}L}<b#{8x-F 4`Lҟ_jqlcccccccccFFFFFFFFFFFFFFocccNQ( J~%@o7P( J~%@o7P( J~%@o7P( | 6J~%FoQ(m6J~%Foi oQ(m6J~%VhbV4\ pմ`Z]oմ`Z`00N e:iAUW5\z,躺K.麤뒮K.++-h"j\ >ƭjܪfrVnrZśX]+8k8Z,nUӸUV5[Uj>Wk 9ܪ&qŭjyܪ&rɭ\5s|Uy=b>Ze^ fbKffe^ fbKfffjfn grKgvgzg~ hKhhUTړbU-b]-be-bm-bu-b}-b-b-ٺW٪Zj=VZjMEj4ZjaeYp.SejL 25\bZ,Sr`Ƃ`ƒ` Ƣ`R`b``"`2`B`R`b`r`Ƃ`ƒ` Ƣ` Ʋ` ` ` ``Vc0c0V c0 c0cy0c0VcY0ca0Vci0cq0Vcy0c0Vc0c0V }oϼ츙fhc0 }p9UF)׋ʨH)5z/i-MHe?uzM7^bxUbToִX-X)RaXҶG+4k88oo:˃>Wԫ`zw/XDFLSbi0cq0SOԧIJ` ` ` ⠯Nu#GԣdQ2(Y٣LAsK\Rt8{i,"e@9:˓> BKFJ˔N R> BK. 2K6: 2K6:˓> BKFJ˔N RKVZ˕^ bKfj˖n rKvz˗rKvz˗~.85T]6jjb5XM-XjE軨9jjZDJ$D&JtFQs55GMQSsh6b権9jjf55ρiCPʃ\L~&W?ɕɕur:Sr{N|u`t]d>urAF%JbaKybr&/7&";Pk2/=GCL4{<{-zJW{eFWNze}'WXYQO=~G'I#L*+9+RwknmV�-z9}dh蓫ʻX3XjI }r }_)֞jvQ{dTedftg0(0(0(iTLS!B2Md 4i>$ӄHLS"D2Md4-i^$HLS#F2Md4=i~$ILS$H2Md%4Mi$DILS%J2Md-4]i$ӄILS&L2Md54mi$ILS'N2Md=4}i$JLS(.麤뒮nF,fX2Mdc4ɒi%4KyL-fZ2Mdk4ْi%tKL.f\2Mds4i%ӴKyL/f^2Md14 J%eE&E& EIAQҠ(iP4(J% EIAQҠ(iP4(J% EIAQҠ(iP4(J% EIAQҠ(iP4(J%uVIURgY%uVIURgY%uVIURgY%uVIUzQJꬒ:*YdDK侨Y%uVIU*;>=z>g6=Cf'f*<3}=vL%z鱞oz^?TC=?LLO<9~M{g}<gY>?k56DPAZ㠞g[z ynCg}s>1t7>Cgyw|>t7>C;k -CП?N??CCuȞG]#{އ#{އ#{~G#{އ#3tIʍ~SrzϣZh (i4M&vFIݤnh7i4M&vFIݤnRbnҠ7)57i4M&}ƾIcߤo7i4M"r#9;;P%#?PIޤAoҠ7iЛ4M& zIޤAoҠ7iЛ4M& zIޤAoҠ7iЛ4M& zIޤAoҠ7iЛ4M&vFIݤnh7i4M&oƷIۤm6i|4M5CM PSTߤnh7i4M&vFjvS-25&vFIݤnh7i4M&vFIݤnh7u|]5_WU_NJ`N`NJaNaNJbNbNuS]椴椼 $,4<TWbuX]-VWbvNJwNuX]-VWbvNJwNwNJxNxNuX]-VWTtNJuNu5U]MUWSTh*2u2I ΑϑbI-ΑI-bI-bI-bI-yΑFImyϑ8I8I)ϑIϑiI8ϑ8II8I͑I͑I͑I͑I͑I͑۝-ґ/ ӑ1)ӑ3ȚțȍȎȏȐȑ$Ȓ4ȓDȔTȕdȖtȗȘDȄTȅdȆtȇȈȉȊȋVbtUUFW]UrtUUGW]ͺSuA$Gvzw秫~j%WE\UqUyU%WI\U*qUL?u"=ݕﮟZUWP\UFqU)UoR-~xTrPc`~efuthnhOآnh[! Om<EuMnnGi6|BͺhW'R$oun~V[:H]VN2L̀ro61 5FQiPcj"MNQ1 5F(ա^Bー؍ B{/ Bc{/ ">?[ tGQhDmA8Զڶ}ߪ~J*ߪrJ*ߪJ*㶪۪rn5KMܪrpJ­* 4ܪpJĭT/Jȭ*#ܪrrJʭ*+Z!9$vҽADՋsJЭ*CݪrtJҭ*K4ݪtJԭ֢^GFU%V[UnUU%V[UnŎ}kڴ꺮Eש꺮^]꺮z-6:u=Ćؑ[rbONlޕTuu]u]W]UJ,*ZO'hC::oHߐ!ICRt$ I7$oHߐK;t////HשB\Uq5//gIש///R-6;:_R%_R%_ҞjlP*Cņ['JᕒLIT$*S)ʔDeJ2%QLIT$*S)ʔDeJ2%QLIT$*S)ʔDeJ2%QLIT$*S)ʔDeJ2%QLIT$*S)ʔDeJ2%QLIT$*S)ʔDeJ2%QLIT$*S)ʔDeYel-~;bK[Mm.ž;bk/6b[p-n-6.b[tn-6nb[x-o-6Ůb[|o-6b\쀋-p.6.b#W%_LW+S)ʔ|eJ2%_i0`j0bRLXT,i LY,Sb)1˔eJ2%fLY,Sb)1˔eJ2%f?]"C:Lgj?S~VNXrt~zuj?S~3,ػ͛j\헫r_~/bӧSj\헫r_S|-S)_˔e2kYdLh;McO2L[-SƖ)c˔e2el2L[-SƖ)ctCSiC2LTL*S&)ʔIeʤ2eR2LTL*S&)ʔIeʤ2`J2`ʫ2ULyUL?LYV,+S)ʔeeʲ2aJ2%[LVd+S)ʔleJ2%[LVd+S)ʔleJ2%[LVd+S)ʔleJ2%[LVd+S)ʔleJ2%[LVd+S)tX)ʔseʹ2\rL9W+SΕ)ʔseʹ2\rL9W+SΕ)ʔseʹ*uj?z2z2ztV);˔e2egLY,Sv);˔e2egLY,Sv);˔e2egLY,Sv);˔e*)vpWiic7Ln0a:zt?]jNC(a:t"HәC9Lr0a: 8a!X3␅8e!Ys⠅8i!ZⰅ8m![8q!\3Ѕ8u!]s8y!^8}!_�8!`38!aȃ8 =S؃8 >8 �8 38 !s 8 "08 #@8 $3 P8 %s `8 &0Edh8 ' x8 ( noSeL]2uY.e,SeL]2uY.e,SeL]2uY.e,SeL]2uY.eYg!e,SeL]2uY.eYWeL]2uY=6{c{~=6{c|삏m>6N {c3|솏>6ǎ{cS|슏m/>6{cs2uYW>6n.c|7uYs><c|쟏 >Dc}죏>^Lc;}짏 >ǞTc[}쫏>\c{}7\sz.SeL=2\sz.SeLvi;Ӵi4mg3MۙLvi;Ӵi4mg3MۙLvi;Ӵi4mg3MۙLvi;Ӵi.Lvi;Ӵi4mg3MۙLvi;Ӵi4mg3MۙLvi;Ӵi4mg3MۙLvi;Ӵi4mci;Ӵi4mg3MۙLvi;Ӵi4mg3MۙLvi;Ӵi4mgKj%VŸ\O'W+ r?Ÿ\OGLet:ur=<7r}\L(CL!0C`:t(YL#0G`:t"HәC L%0K`:t2h.麤뒮D00``:t)c L20d`:t0i L40h`:tP?]g.uj?嚯5_k.|]:`:t:xL'$H0`:$tJ9 tOa0Wԕ+u劺r[\qV *W+z= rEH"\R)W+B!EgšAݧ87(R(4 "ޘ~1{r=\M&W+d 2r\D@"W +H $r\t~:W?OYt#Osӹ\t~:W?Osӹ\t~:W?Osӹ\t~:`2`2`2z\\qrsu:\{=WǞcձsu:\{=WǞcqdTEyQq`~'ԣsz\vnP7Q(M& uBDnP7Q(M& uBDnP7Q(M%%%%%I $zB=IPOR')ԓI $zB=IPOR')ԓI $zB=IPOR')ԓI $zB=IPOR')ԓI $zB=IF T')ԓI $zB=IPOR')ԓI $zB=IPOR')ԓI $zB=IPOR')ԓI $zB=IPOR')ԓI $zB=IPOR')ԓI $zB=IPOR')ԓg(4Ph<CyB  3g(4Ph<CyB  3g(4Ph<CyB V~ Z)ShOB+?V~ Z)ShOB+?V~ Z)ShOB+?V~ Z)ShOB+?V~ Z)ShOB+?V~ Z)ShOB+?V~ Z)ShOB+?V~ Z)ShOB+?V~ Z)ShOB+?V~ Z)ShOB+?V~ Z)ShOB+?V~ Z)ShOB+?V~ +ShOB+?V~ : aNC,tbrNG,x\헫r_~K?WJh@J^c?7[a^ _U0d ��������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/fonts/vga.pcf.gz�������������������������������������������������������������������������0000664�0000000�0000000�00000010753�13775351206�0015537�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ Ň8vga.pcf�}\YB4M(a % N$ ń҈$$1D2sw3yRDDD""" F@D1瞻{rs_fӜ|g==眙͇@&; x"߬׃=`vUӽ{pGg j({2^> 0=0Uv뽷V n%α2z0:XOY$ FA$gX|s9 KV,_-8eXgvΊ3V\bvvn| .>k=oK%$^`&ocu 50h6wDO`dqTj|޳|AL 61eb| &Y$861yP \@ 桶w*پ@ bZ~@ bZNӴALALiAig[ 1- &AL#iG.@ bZALALhGYN61I9 &L LSALkϦM b|61I061I061IEĴ&_M bC$861Ipmbx @ bZ/&1 NM b|61Ip"mb˴ALh_M bL$*mb`>mb F$&1@ bZs$mb E$H&1 2AL,mb G$861I61IC$mb O$XH\h`:ˊm a@>oj|W:7jv- =uzuUuyی͉}dunvojtkI_sssH |?x<`]JNUT}j7WܨVl&aP4:s|ɳSvz u ,W2|L^uPu^C:Vi={\j>|"OSfy!d֨h;[4^!/zqs+8VWvт{,jmw[|u#sUu:CF=bJ;.!Q^%6~z\yHnn>HSsvŲifky7y6)ڵ z~p_s;B?t|旣Ű~;^wı>+}87<ۏocVy/~j74||{i&Ҫ]mxk@]>caI_v~sP׊r}5(}/}Pj{.dj- S#XOCmUX= Caz~j V?%Ζmwin}vOzw=y]9tOi SV\Ϳ7D,*UwFHoqW]!C^^k5mr.b Uu6!ҧ]ƼkL]O}!z|>=!GX;vuW2wƙ9-|qؽ3g,�A/몧ׯGicmW<_/_ZiT#rv:m~ٵvЩo5XP_�\k0aA^v~>d[ jAkZk=A?Y zj-;~T}ij>V󘚶 ZK%<OfW_7Gqn<{Ae~|:ߢͷQ~?_&PQvw=P]~\—}{a-DM[k'jGapF5RlIs=ƏKCv?OoS0{vOۙ#9inwՇ'y~;k}s Bjud3y61h<=D?n_?Fi+KOfvk{#o3ҿK]SX \vXW싐 U^Zܿ 6^7F,;=*4!?n.w:x12tao7C4>&7v{}'}aN602Sts~Ow{l{f9oF(z{3!~&~n׉ofa {it~a) jAL:{C,g[,ںoCucȃ'=\e7žK}خuxSsyiه{wV'Vپߡ?Řjݠke]Vkkw=}7aOqAcov;(8!Dz<ދ2~G vz|Ϭ6|* 'Ï##5; ܩF)Q|na"fn?[)]vd}ZN{dckԜhx9`~9yvvNN ?S$5+vC}ۇB]7TĴ:VVԸ_eCNZ_̖ѣ[ +˭2Mߑ:}Lݾhmz-Nsʒթ[5ܿ!5]8͇GZݣQc5[uJk@?־lm{u'ݲ<GcQÎ,a=쳣!;޴TdP-oENǨ1ܰ?F37I*C SWcˎ:U}k39F&Jdl; `EJ.gV,ݡ ^eեYQCvE=IL;]8sD?q(ç84YQRL<WBsq4cp,/| '8 _*S qHdr8~_H|b4,7p:3SX8glXsqV[X\=Q|^|B,.39y\Kq~[8ފ+p%q|gu�cCFMNn"Ʒq kK+7&*nƯ:no6&nwq~ wq~wwq~q��}<?LO(3<?Ǔ <+<9<;/ _[71'7>؇ e4�8O*s5j]byYϫ8Q7ụd9g.X{ k}7HvkfrgC'Y@3ST5Cg,ϒ%St2M摓HdI,&3ɹ|R"M2rz>0M%7[&ϳK Gɓ<yJ {d/z6. ngr9$)ꙄKl\@*"l!}d4:U;> y<N"ϒ5y|@>RAD#H7C#'$Mzȩd)YNV5d I!דmNr<y<G^$=!G&d?+x*Nf<r,ɓtr&9OJB\FT{&ɵr E%ɣI yD^%o=}|L:O'3lr 9L% r6YM. rL>2@jrJ wȃy),yL^#ow#\E$I8!qRi3g%I\$qYĽW8&1я~LcD?&1я~LcD?.qя~\E?.qя~\E?! O~B'D?! O~B'D?)IO~R'E?)IO~R'E?%)O~JSD?%)O~JSD?-iO~ZӢE?-iO~ZӢE?#ψ~F3gD?#ψ~F3gD?+Yϊ~VgE?+Yϊ~VgE?'9ω~NsD?'9ω~NsD(E/~Q_E(E/~Q_E$%/~IK_D$%/~IK_D,e/~Yˢ_E,e/~Yˢ_E"ѯ~E+_WD"ѯ~E+_WDW{EW{EW{EW{EW{EW{EW{EW{E*Uѯ~U_WE*Uѯ~U_WS|8`�����������������������twin-0.9.0/fonts/vgafont.raw������������������������������������������������������������������������0000664�0000000�0000000�00000010000�13775351206�0016011�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������~~������~~��������f~<��������<~~<��������<<<�������<~~<����������<<�����������<fBBf<�����Ù��1||������~~������?3?0000p������cccccg������<<������<~~<������fffffff�ff������{�����~`<ff<~�����������������<~~<~������<~������~<���������  �����������0``0�����������������������$ff$������99}}}}99������������������<<<������fff$��������������fffffff����~~~����� 0`Ã������<ff<{{�����000`������������  ����`00`��������f<<f�������������������������0���������������������������������� 0`������<ff<������8x~������~à 0`������~~������6f������~������>`~������ ������~~~������~|������������������������0����� 0`0 ���������������������`0  0`������~à ��������~~������<f������ccc~cccc������>cc>������fccccccf������cad|d`ac������cad|d```������>cg=������������<<������|������cflxxlfc������``````ac������������������<ff<������ccc~````������~~�����ccc~lfcc������~~~������ۙ<������~������f<������ff������f<<f������f<<������Æ 0`�����������`0 �����xx���<f����������������������������000����������������|~{������``|fcccc���������>cc>������>f{���������~~������<fb`````���������{~|���``nscccc�������8<�������cc>���``cflxlf������8<������������������cccccc���������<ff<���������ccccc~``������{~������sa```���������~~~������0000003���������{���������f<���������f���������f<<f��������������� 0a�����p�����������pp�����;n����������������<f�������>cc>~�����{����� �~~�����<f�|~{������f��|~{�����`0�|~{�����<f<�|~{���������>cc>~��<f�~~������f��~~�����`0�~~������f��8<�����<f�8<�����`0�8<����f�<f����<f<<f���� �a`|``a���������;~w������?l�����<f�<ff<������f��<ff<�����`0�<ff<�����<f�{�����`0�{������f���f�<ff<����f�~�������~~����<fb````������f<�����ff|bfofff�����~p��� �|~{����� �8<����� �<ff<����� �{������;n�cccccc����;n������<ll>�~����������<ff<�~������������0`~���������������������������0`Λ ���0fΖ?�����<<<���������3ff3�����������f3f������DDDDDDDDUUUUUUUUwwwwwwww666666666666666�������66666666�����66666666666666666666666666666�����6666666666666��������6666666�������������������������������������������������������������66666667666666666666670?�������������?076666666666666���������������666666666666670766666666��������������66666�66666666��������������������������������������?66666666666666666666666������������������������������� UUUUUUUիիիիիիիի3333333333333333��<f0||���������~~���������~~`�������0``~``0�������>cccccccc����������������������~��������0  0�~������� 0`0 �~������p��������������������;n�;n�������<ff<�������������������������������������������� x0����fffff����������<f 2~����������������������������������twin-0.9.0/include/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014135�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Makefile.am����������������������������������������������������������������������0000664�0000000�0000000�00000000022�13775351206�0016163�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������SUBDIRS = Tutf Tw ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Makefile.in����������������������������������������������������������������������0000664�0000000�0000000�00000050610�13775351206�0016204�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = version.h CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/version.h.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = Tutf Tw all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign include/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status include/config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 version.h: $(top_builddir)/config.status $(srcdir)/version.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014464�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/Doxyfile����������������������������������������������������������������������0000664�0000000�0000000�00000013357�13775351206�0016203�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Doxygen configuration generated by Doxywizard version 0.1 #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- PROJECT_NAME = libTT PROJECT_NUMBER = 0.5.0 OUTPUT_DIRECTORY = ../../docs/libTT/ OUTPUT_LANGUAGE = English EXTRACT_ALL = YES EXTRACT_PRIVATE = NO EXTRACT_STATIC = NO HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ALWAYS_DETAILED_SEC = NO FULL_PATH_NAMES = NO STRIP_FROM_PATH = INTERNAL_DOCS = NO CLASS_DIAGRAMS = NO SOURCE_BROWSER = NO INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO VERBATIM_HEADERS = NO SHOW_INCLUDE_FILES = NO JAVADOC_AUTOBRIEF = YES INHERIT_DOCS = YES INLINE_INFO = YES SORT_MEMBER_DOCS = YES DISTRIBUTE_GROUP_DOC = NO TAB_SIZE = 8 ENABLED_SECTIONS = GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES ALIASES = MAX_INITIALIZER_LINES = 30 OPTIMIZE_OUTPUT_FOR_C = YES SHOW_USED_FILES = NO #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = . FILE_PATTERNS = *.h RECURSIVE = YES EXCLUDE = EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = IMAGE_PATH = INPUT_FILTER = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = YES COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = YES TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = YES LATEX_OUTPUT = latex COMPACT_LATEX = YES PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = YES #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = YES RTF_OUTPUT = rtf COMPACT_RTF = YES RTF_HYPERLINKS = YES RTF_STYLESHEET_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = YES MAN_OUTPUT = man MAN_EXTENSION = .3 #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- HAVE_DOT = NO CLASS_GRAPH = YES COLLABORATION_GRAPH = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES GRAPHICAL_HIERARCHY = YES DOT_PATH = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO CGI_NAME = search.cgi CGI_URL = DOC_URL = DOC_ABSPATH = BIN_ABSPATH = /usr/local/bin/ EXT_DOC_PATHS = ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/TT.h��������������������������������������������������������������������������0000664�0000000�0000000�00000007201�13775351206�0015164�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * TT.h -- public header for libTT * * Copyright (C) 2001 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_H #define TT_H #include <TT/TTtypes.h> #include <TT/defines.h> /** check some magic data to ensure client and library have compatible types */ ttbyte TTCheckMagic(TT_CONST ttbyte id[]); /** return 1 if a fatal error occurred (panic) */ ttbyte TTInPanic(void); /** get full library version number */ ttuint TTLibraryVersion(void); typedef struct s_ttclasses *ttclasses; typedef struct s_tthw *tthw; /** register a new libTT display target */ ttbyte TTRegisterTarget(TT_CONST byte *name, ttclasses (*InitHW)(tthw *HW)); /** initialize libTT opening given display target (got from $TTDISPLAY if not specified) */ ttbyte TTOpen(TT_CONST ttbyte *target); /** reinitialize libTT to use newly given display target, WITHOUT deleting libTT objects */ ttbyte TTReopen(TT_CONST ttbyte *target); /** shutdown libTT; not necessary if you are going to exit() */ void TTClose(void); /** quickly shutdown libTT, does not generate `delete' events for objects being deleted; not * necessary if you are going to exit() */ void TTCloseQuickNDirty(void); /** get file descriptor used to communicate with target server */ int TTConnectionFd(void); /** send all buffered data to target server, blocking if needed */ ttbyte TTFlush(void); /** try to send all buffered data to target server, non-blocking */ ttbyte TTTimidFlush(void); /** send all buffered data to target server and wait for all replies */ ttbyte TTSync(void); /** enter libTT main loop; it just waits for events and dispatches them */ ttbyte TTMainLoop(void); /** run libTT main loop once: wait for events (if `wait' is set) and dispatch available events, then * return */ ttbyte TTMainLoopOnce(ttbyte wait); /** tell libTT main loop to return */ void TTExitMainLoop(void); /** create a new object of class `Class'; `Class' should be one of the `TTClass_*' classes */ ttobj TTNew(ttclass Class); /** delete given object */ void TTDel(ttobj o); /** get the first existing object of class `Class'; `Class' should be one of the `TTClass_*' classes */ ttobj TTGetFirst(ttclass Class); /** get the last existing object of class `Class'; `Class' should be one of the `TTClass_*' classes */ ttobj TTGetLast(ttclass Class); /** get size needed to store object `o' (i.e. sizeof(ttobj), NOT sizeof(*ttobj)) */ TT_ATTR_FN_CONST ttuint TTSizeOf(ttobj o); /** return the class (runtime type) of `o' (will be one of the `TTClass_*' types) */ TT_ATTR_FN_CONST ttclass TTClassOf(ttobj o); /** return TT_TRUE if `o' can be cast to class represented by `Class' */ TT_ATTR_FN_CONST ttbyte TTInstanceOf(ttclass Class, ttobj o); /** return the name of the class of `o' (i.e "ttbutton", "ttwindow", ...) */ TT_ATTR_FN_CONST TT_CONST TT_ARG_ARRAY_Z ttbyte *TTClassNameOf(ttobj o); /** create a vector with given values */ ttvector TTCreateL_ttvector(ttopaque value_n, ...); /** get the current mask of blocked events */ tteventmask TTGetInstalled_tteventmask(void); /** get the default mask of blocked events to be used while listeners are being called */ tteventmask TTGetDefault_tteventmask(void); /** set the current mask of blocked events */ void TTSetInstalled_tteventmask(tteventmask installed_event_mask); /** set the default mask of blocked events to be used while listeners are being called */ void TTSetDefault_tteventmask(tteventmask default_event_mask); #endif /* TT_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/TTerrno.h���������������������������������������������������������������������0000664�0000000�0000000�00000003361�13775351206�0016235�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * TTerrno.h -- error handling stuff for libTT * * Copyright (C) 2001 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_ERRNO_H #define TT_ERRNO_H #include <TT/TTtypes.h> #define TT_EBAD_SIZES 1 #define TT_ENO_MEM 2 #define TT_ETARGET_ALREADY_OPEN 20 #define TT_ETARGET_DLERROR 21 #define TT_ETARGET_FAILED 22 #define TT_ETARGET_BAD 23 #define TT_ETARGET_NO_EXTENSION 40 #define TT_ETARGET_BAD_EXTENSION_VERSION 41 #define TT_EBAD_ARG 60 #define TT_EEXIST 61 #define TT_EDETAIL_TARGET_TWIN_TUNNEL 1 #define TT_EDETAIL_TARGET_TWIN_DETUNNEL 2 #define TT_EDETAIL_TARGET_TWIN 3 #define TT_EDETAIL_TARGET_GTK 4 #define TT_EDETAIL_TARGET_X11 5 #define TT_EDETAIL_TARGET_XML 6 #define TT_EDETAIL_TARGET_NULL 7 typedef struct tt_errno { /** error number */ ttuint E; /** error detail number */ ttuint S; /* there may actually be more fields */ } tt_errno; #ifdef __cplusplus extern "C" { #endif /* get address of struct `tt_errno' describing last error */ tt_errno *TTErrnoLocation(void); /* get error number describing last error */ #define TTErrno (TTErrnoLocation()->E) /* get error detail number describing last error */ #define TTErrnoDetail (TTErrnoLocation()->S) /* get human-readable string describing error number `e' */ TT_ATTR_FN_CONST TT_CONST byte *TTStrError(ttuint e); /* get human-readable string describing error number `e' and error detail number `s' */ TT_ATTR_FN_CONST TT_CONST byte *TTStrErrorDetail(ttuint e, ttuint s); #ifdef __cplusplus } #endif #endif /* TT_ERRNO_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/TTflags.h���������������������������������������������������������������������0000664�0000000�0000000�00000021555�13775351206�0016211�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TT_FLAGS_H #define TT_FLAGS_H /** ttevent value of `evtype' field indicating `del' (delete) event */ #define ttevent_evtype_del 0 /** ttevent value of `evtype' field indicating `askclose' event */ #define ttevent_evtype_askclose 1 /** ttevent value of `evtype' field indicating `key' event */ #define ttevent_evtype_key 2 /** ttevent value of `evtype' field indicating `mouse' event */ #define ttevent_evtype_mouse 3 /** ttevent value of `evtype' field indicating `activate' (user click) event */ #define ttevent_evtype_activate 4 /* button, menu, ... */ /** ttevent value of `evtype' field indicating `field changed value' event */ #define ttevent_evtype_change 5 /** ttevent value of `evtype' field indicating `expose' event */ #define ttevent_evtype_expose 6 /** ttevent value of `evtype' field indicating the first user-defined event */ #define ttevent_evtype_user_first 0x1000 /** ttevent value of `evtype' field indicating the first user-defined control event */ #define ttevent_evtype_control 0x1000 /** ttevent value of `evtype' field indicating the first user-defined inter-client message */ #define ttevent_evtype_clientmsg 0x2000 #define ttevent_evcode_key_first 0x001 #define ttevent_evcode_key_last 0x3FF #define ttevent_evcode_key_mask 0x3FF /* 0x1FF actually used, but better stay large */ #define ttevent_evcode_mouse_first 0x400 #define ttevent_evcode_mouse_last 0x7FF #define ttevent_evcode_mouse_mask 0x3FF /* 0x07F actually used, but better stay large */ /* mouse events stuff; loosely designed after libtw */ #define ttevent_evcode_mouse_button_1 0x01 #define ttevent_evcode_mouse_button_2 0x02 #define ttevent_evcode_mouse_button_3 0x03 #define ttevent_evcode_mouse_button_4 0x04 #define ttevent_evcode_mouse_button_5 0x05 #define ttevent_evcode_mouse_button_mask 0x07 #define ttevent_evcode_mouse_hold_1 0x08 #define ttevent_evcode_mouse_hold_2 0x10 #define ttevent_evcode_mouse_hold_3 0x20 #define ttevent_evcode_mouse_hold_4 0x40 #define ttevent_evcode_mouse_hold_5 0x80 #define ttevent_evcode_mouse_hold_mask 0xFF #define ttevent_evcode_mouse_move 0x400 #define ttevent_evcode_mouse_press 0x500 #define ttevent_evcode_mouse_release 0x600 #define ttevent_evcode_mouse_action_mask 0x700 #define ttevent_mouse_get_hold_mask(code) ((code)&ttevent_evcode_mouse_button_hold_mask) #define ttevent_mouse_get_action(code) ((code)&ttevent_evcode_mouse_action_mask) #define ttevent_mouse_get_button(code) ((code)&ttevent_evcode_mouse_button_mask) #define ttevent_mouse_is_move(code) \ (((code)&ttevent_evcode_mouse_action_mask) == ttevent_evcode_mouse_move) #define ttevent_mouse_is_press(code) \ (((code)&ttevent_evcode_mouse_action_mask) == ttevent_evcode_mouse_press) #define ttevent_mouse_is_release(code) \ (((code)&ttevent_evcode_mouse_action_mask) == ttevent_evcode_mouse_release) /* shortcuts */ #define ttevent_evcode_mouse_press_1 (ttevent_evcode_mouse_press | ttevent_evcode_mouse_button_1) #define ttevent_evcode_mouse_press_2 (ttevent_evcode_mouse_press | ttevent_evcode_mouse_button_2) #define ttevent_evcode_mouse_press_3 (ttevent_evcode_mouse_press | ttevent_evcode_mouse_button_3) #define ttevent_evcode_mouse_press_4 (ttevent_evcode_mouse_press | ttevent_evcode_mouse_button_4) #define ttevent_evcode_mouse_press_5 (ttevent_evcode_mouse_press | ttevent_evcode_mouse_button_5) #define ttevent_evcode_mouse_release_1 \ (ttevent_evcode_mouse_release | ttevent_evcode_mouse_button_1) #define ttevent_evcode_mouse_release_2 \ (ttevent_evcode_mouse_release | ttevent_evcode_mouse_button_2) #define ttevent_evcode_mouse_release_3 \ (ttevent_evcode_mouse_release | ttevent_evcode_mouse_button_3) #define ttevent_evcode_mouse_release_4 \ (ttevent_evcode_mouse_release | ttevent_evcode_mouse_button_4) #define ttevent_evcode_mouse_release_5 \ (ttevent_evcode_mouse_release | ttevent_evcode_mouse_button_5) /* ttevent evflags; same as libtw */ #define ttevent_evflags_shift 0x0001 #define ttevent_evflags_ctrl 0x0002 #define ttevent_evflags_alt 0x0004 #define ttevent_evflags_caps_lock 0x0008 #define ttevent_evflags_num_lock 0x0010 #define ttevent_evflags_super 0x0020 #define ttevent_evflags_hyper 0x0040 /** ttlistener flag indicating the function will receive the component generating the event as first * arg */ #define ttlistener_lflags_arg0_component 1 /** ttlistener flag indicating the function will receive the event itself as first arg */ #define ttlistener_lflags_arg0_event 2 #define ttlistener_lflags_arg0_timer 2 /** ttlistener flag indicating the function should be called BEFORE other callbacks */ #define ttlistener_lflags_before 4 /** ttlistener flag indicating the function has alternate syntax */ #define ttlistener_lflags_function_array 8 /** mask of ttlistener flags */ #define ttlistener_lflags_any 0xC /** tttimer enabled flag */ #define tttimer_lflags_enabled 0x10 /** mask of tttimer flags */ #define tttimer_lflags_any 0x18 /** arguments to pass to a ttvisible_repaint_fn function to repaint the whole ttvisible */ #define ttvisible_repaint_args_WHOLE 0, 0, TW_MAXDAT, TW_MAXDAT /** ttvisible flag indicating it is visible */ #define ttvisible_vflags_visible 1 #define ttlayout_constraint_root 0 /** ttboxlayout horizontal layout */ #define ttboxlayout_orientation_x 0 /** ttboxlayout vertical layout */ #define ttboxlayout_orientation_y 1 #define ttborderlayout_constraint_north 1 #define ttborderlayout_constraint_west 3 #define ttborderlayout_constraint_east 4 #define ttborderlayout_constraint_center 5 #define ttborderlayout_constraint_south 7 /** ttwidget flag indicating the style used to hold its contents (fill repeating with a single * ttattr) */ #define ttwidget_vflags_style_fill 2 /** ttwidget flag indicating the style used to hold its contents (use expose events) */ #define ttwidget_vflags_style_expose 4 /** ttwidget flag indicating the style used to hold its contents (use expose events and cache * result) */ #define ttwidget_vflags_style_cache 8 /** ttwidget flag indicating the style used to hold its contents (store in a bi-dimensional array of * ttattr:s) */ #define ttwidget_vflags_style_contents 0x10 /** ttwidget flag indicating the style used to hold its contents (store each row in a * one-dimensional array of ttattr:s) */ #define ttwidget_vflags_style_rows 0x20 /** ttprogressbar horizontal orientation */ #define ttprogressbar_orientation_x ttanyscroll_orientation_x /** ttprogressbar vertical orientation */ #define ttprogressbar_orientation_y ttanyscroll_orientation_y /** ttprogressbar flag indicating it is in normal state */ #define ttprogressbar_vflags_normal 0x00 /** ttprogressbar flag indicating it is in disabled state */ #define ttprogressbar_vflags_disabled 0x10 /** mask of ttprogressbar state flags */ #define ttprogressbar_vflags_statemask 0x10 /** ttanybutton flag indicating it is in normal state */ #define ttanybutton_vflags_normal 0x00 /** ttanybutton flag indicating it is in prelight state */ #define ttanybutton_vflags_prelight 0x10 /** ttanybutton flag indicating it is in pressed state */ #define ttanybutton_vflags_pressed 0x20 /** ttanybutton flag indicating it is in disabled state */ #define ttanybutton_vflags_disabled 0x30 /** mask of ttanybutton state flags */ #define ttanybutton_vflags_statemask 0x30 /** ttcheckbutton flag indicating it is checked (i.e. `ON') */ #define ttcheckbutton_vflags_checked 0x40 /** mask of ttcheckbutton state flags */ #define ttcheckbutton_vflags_statemask 0x70 /** ttanyscroll horizontal orientation */ #define ttanyscroll_orientation_x 0 /** ttanyscroll vertical orientation */ #define ttanyscroll_orientation_y 1 /** ttanyscroll normal state */ #define ttanyscroll_state_normal 0 /** ttanyscroll `backward page pressed' state */ #define ttanyscroll_state_page_rev 1 /** ttanyscroll `forward page pressed' state */ #define ttanyscroll_state_page_fwd 2 /** ttanyscroll `tab pressed' state */ #define ttanyscroll_state_tab 5 #define ttslider_state_normal ttanyscroll_state_normal #define ttslider_state_page_rev ttanyscroll_state_page_rev #define ttslider_state_page_fwd ttanyscroll_state_page_fwd #define ttslider_state_tab ttanyscroll_state_tab #define ttscrollbar_state_normal ttanyscroll_state_normal #define ttscrollbar_state_page_rev ttanyscroll_state_page_rev #define ttscrollbar_state_page_fwd ttanyscroll_state_page_fwd #define ttscrollbar_state_tab ttanyscroll_state_tab /** ttscrollbar `backward arrow pressed' state */ #define ttscrollbar_state_arrow_rev 3 /** ttscrollbar `forward arrow pressed' state */ #define ttscrollbar_state_arrow_fwd 4 #endif /* TT_FLAGS_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/TTmem.h�����������������������������������������������������������������������0000664�0000000�0000000�00000007233�13775351206�0015670�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TT_MEM_H #define TT_MEM_H #include <TT/TTtypes.h> /* * TT<op>Mem functions */ /** pointer to custom malloc() function; use TTConfigAllocMem() to change it */ extern void *(*TTAllocMem)(size_t); /** pointer to custom realloc() function; use TTConfigAllocMem() to change it */ extern void *(*TTReallocMem)(void *, size_t); /** pointer to custom free() function; use TTConfigAllocMem() to change it */ extern void (*TTFreeMem)(void *); /** change TTAllocMem(), TTReAllocMem(), TTFreeMem() function pointers */ void TTConfigAllocMem(void *(*my_malloc)(size_t), void *(*my_realloc)(void *, size_t), void (*my_free)(void *)); /** wrapper around memcpy() */ #define TTCopyMem(From, To, Size) memcpy(To, From, Size) /** wrapper around memmove() */ #define TTMoveMem(From, To, Size) memmove(To, From, Size) /** wrapper around memset() */ #define TTWriteMem memset /** wrapper around memcmp() */ #define TTCmpMem memcmp /** custom malloc()+memcpy() function */ void *TTCloneMem(TT_CONST void *M, ttopaque len); /* * TT<op>Str* functions */ /** wrapper around strlen() */ ttopaque TTLenStr(TT_CONST ttbyte *s); /** 1+strlen(s) */ ttopaque TTLenStr1(TT_CONST ttbyte *s); /** wrapper around strcpy() */ #define TTCopyStr(From, To) strcpy(To, From) /** wrapper around memcpy */ #define TTCopyStrL TTCopyMem #if TT_SIZEOF_ttfont == 1 #define TTCopyStr2Font TTCopyStr #define TTCopyStrL2Font TTCopyStrL #else /** copy from ttbyte[] to ttfont[] */ ttfont *TTCopyStr2Font(TT_CONST ttbyte *s, ttfont *dest); /** copy from ttbyte[] to ttfont[] */ ttfont *TTCopyStrL2Font(TT_CONST ttbyte *s, ttfont *dest, ttopaque len); #endif /** copy from ttbyte[] to ttattr[] */ ttattr *TTCopyStr2Attr(TT_CONST ttbyte *s, ttattr *dest, ttcol c); /** copy from ttbyte[] to ttattr[] */ ttattr *TTCopyStrL2Attr(TT_CONST ttbyte *s, ttattr *dest, ttopaque len, ttcol c); /** custom strdup() function */ #define TTCloneStrL TTCloneMem ttbyte *TTCloneStr(TT_CONST ttbyte *S); #if TT_SIZEOF_ttfont == 1 #define TTCloneStrL2Font TTCloneStrL #define TTCloneStr2Font TTCloneStr #else ttfont *TTCloneStrL2Font(TT_CONST ttbyte *s, ttopaque len); ttfont *TTCloneStr2Font(TT_CONST ttbyte *s); #endif ttattr *TTCloneStrL2Attr(TT_CONST ttbyte *s, ttopaque len, ttcol c); ttattr *TTCloneStr2Attr(TT_CONST ttbyte *s, ttcol c); /** wrapper around strcmp() */ #define TTCmpStr strcmp /* * TT<op>Font* functions */ #if TT_SIZEOF_ttfont == 1 #define TTLenFont TTLenStr #define TTLenFont1 TTLenStr1 #define TTCopyFont TTCopyStr #define TTCopyFontL TTCopyStrL #define TTCopyFont2Attr TTCopyStr2Attr #define TTCopyFontL2Attr TTCopyStrL2Attr #define TTCloneFont TTCloneStr #define TTCloneFontL TTCloneStrL #define TTCloneFont2Attr TTCloneStr2Attr #define TTCloneFontL2Attr TTCloneStrL2Attr #else ttopaque TTLenFont(TT_CONST ttfont *f); ttopaque TTLenFont1(TT_CONST ttfont *f); ttfont *TTCopyFont(TT_CONST ttfont *f, ttfont *dest); #define TTCopyFontL(f, dest, len) TTCopyMem((f), (dest), (len)*TT_SIZEOF_ttfont) ttattr *TTCopyFont2Attr(TT_CONST ttfont *f, ttattr *dest, ttcol c); ttattr *TTCopyFontL2Attr(TT_CONST ttfont *f, ttattr *dest, ttopaque len, ttcol c); ttfont *TTCloneFont(TT_CONST ttfont *f); #define TTCloneFontL(f, len) TTCloneMem((f), (len)*TT_SIZEOF_ttfont) ttattr *TTCloneFont2Attr(TT_CONST ttfont *f, ttcol c); ttattr *TTCloneFontL2Attr(TT_CONST ttfont *f, ttopaque len, ttcol c); #endif #define TTCloneAttr(a, len) TTCloneMem((a), (len)*TT_SIZEOF_ttattr) #define TTAttr(col, font) TCELL(col, font) #define TTGetCol_ttattr(attr) TCOLOR(attr) #define TTGetFont_ttattr(attr) TRUNE(attr) #define TTCol(fg, bg) TCOL(fg, bg) #define TTGetFg_ttcol(col) TCOLFG(col) #define TTGetBg_ttcol(col) TCOLBG(col) #endif /* TT_MEM_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/TTtypes.h���������������������������������������������������������������������0000664�0000000�0000000�00000000465�13775351206�0016256�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TT_TYPES_H #define TT_TYPES_H #include <Tw/Twtypes.h> #include <Tutf/Tutf.h> #include <TT/osincludes.h> #include <TT/compiler.h> #include <TT/version.h> #include <TT/TTflags.h> #include <TT/datatypes.h> #include <TT/datasizes.h> #include <TT/tt.h> #include <TT/list_m4.h> #endif /* TT_TYPES_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/all_m4.h����������������������������������������������������������������������0000664�0000000�0000000�00000014203�13775351206�0016005�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/all.m4, do not edit! */ /* * all_m4.h -- internal header file that includes all single libTT object header files * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_ALL_M4_H #define TT_ALL_M4_H /* clang-format off */ #ifndef TT_TT_H #error "Never include <TT/all_m4.h> directly; include <TT/tt.h> instead." #endif typedef struct s_ttobj * ttobj; typedef struct s_ttclass * ttclass; typedef struct s_ttobject * ttobject; typedef struct s_ttvector * ttvector; typedef struct s_ttfield * ttfield; typedef struct s_ttmethod * ttmethod; typedef struct s_ttevent * ttevent; typedef struct s_tteventbig * tteventbig; typedef struct s_ttbitmask * ttbitmask; typedef struct s_tteventmask * tteventmask; typedef struct s_ttcallback * ttcallback; typedef struct s_ttlistener * ttlistener; typedef struct s_tttimer * tttimer; typedef struct s_ttcomponent * ttcomponent; typedef struct s_ttdata * ttdata; typedef struct s_ttvisible * ttvisible; typedef struct s_ttlayout * ttlayout; typedef struct s_ttboxlayout * ttboxlayout; typedef struct s_ttborderlayout * ttborderlayout; typedef struct s_ttnative * ttnative; typedef struct s_ttwidget * ttwidget; typedef struct s_ttlabel * ttlabel; typedef struct s_tttooltip * tttooltip; typedef struct s_ttbuttongroup * ttbuttongroup; typedef struct s_ttanybutton * ttanybutton; typedef struct s_ttbutton * ttbutton; typedef struct s_ttcheckbutton * ttcheckbutton; typedef struct s_ttradiobutton * ttradiobutton; typedef struct s_ttanyscroll * ttanyscroll; typedef struct s_ttscrollbar * ttscrollbar; typedef struct s_ttslider * ttslider; typedef struct s_ttprogressbar * ttprogressbar; typedef struct s_ttscrollpane * ttscrollpane; typedef struct s_ttwindow * ttwindow; typedef struct s_ttframe * ttframe; typedef struct s_ttscroller * ttscroller; typedef struct s_ttmenuitem * ttmenuitem; typedef struct s_ttcheckmenuitem * ttcheckmenuitem; typedef struct s_ttradiomenuitem * ttradiomenuitem; typedef struct s_ttmenu * ttmenu; typedef struct s_ttmenubar * ttmenubar; typedef struct s_ttanytext * ttanytext; typedef struct s_tttextfield * tttextfield; typedef struct s_tttextarea * tttextarea; typedef struct s_tttheme * tttheme; typedef struct s_ttapplication * ttapplication; #define s_ttobj s_ttobj #define s_ttclass s_ttclass #define s_ttobject s_ttobject #define s_ttvector s_ttvector #define s_ttfield s_ttfield #define s_ttmethod s_ttmethod #define s_ttevent s_ttevent #define s_tteventbig s_tteventbig #define s_ttbitmask s_ttbitmask #define s_tteventmask s_tteventmask #define s_ttcallback s_ttcallback #define s_ttlistener s_ttlistener #define s_tttimer s_tttimer #define s_ttcomponent s_ttcomponent #define s_ttdata s_ttdata #define s_ttvisible s_ttvisible #define s_ttlayout s_ttlayout #define s_ttboxlayout s_ttboxlayout #define s_ttborderlayout s_ttborderlayout #define s_ttnative s_ttnative #define s_ttwidget s_ttwidget #define s_ttlabel s_ttlabel #define s_tttooltip s_tttooltip #define s_ttbuttongroup s_ttbuttongroup #define s_ttanybutton s_ttanybutton #define s_ttbutton s_ttbutton #define s_ttcheckbutton s_ttcheckbutton #define s_ttradiobutton s_ttradiobutton #define s_ttanyscroll s_ttanyscroll #define s_ttscrollbar s_ttscrollbar #define s_ttslider s_ttslider #define s_ttprogressbar s_ttprogressbar #define s_ttscrollpane s_ttscrollpane #define s_ttwindow s_ttwindow #define s_ttframe s_ttframe #define s_ttscroller s_ttscroller #define s_ttmenuitem s_ttmenuitem #define s_ttcheckmenuitem s_ttcheckmenuitem #define s_ttradiomenuitem s_ttradiomenuitem #define s_ttmenu s_ttmenu #define s_ttmenubar s_ttmenubar #define s_ttanytext s_ttanytext #define s_tttextfield s_tttextfield #define s_tttextarea s_tttextarea #define s_tttheme s_tttheme #define s_ttapplication s_ttapplication /* useful types */ typedef void (*ttlistener_fn)(ttany arg0); typedef void (*ttvisible_repaint_fn)(ttvisible,ttshort,ttshort,ttshort,ttshort); #include <TT/ttobj.h> #include <TT/ttclass.h> #include <TT/ttobject.h> #include <TT/ttvector.h> #include <TT/ttfield.h> #include <TT/ttmethod.h> #include <TT/ttevent.h> #include <TT/tteventbig.h> #include <TT/ttbitmask.h> #include <TT/tteventmask.h> #include <TT/ttcallback.h> #include <TT/ttlistener.h> #include <TT/tttimer.h> #include <TT/ttcomponent.h> #include <TT/ttdata.h> #include <TT/ttvisible.h> #include <TT/ttlayout.h> #include <TT/ttboxlayout.h> #include <TT/ttborderlayout.h> #include <TT/ttnative.h> #include <TT/ttwidget.h> #include <TT/ttlabel.h> #include <TT/tttooltip.h> #include <TT/ttbuttongroup.h> #include <TT/ttanybutton.h> #include <TT/ttbutton.h> #include <TT/ttcheckbutton.h> #include <TT/ttradiobutton.h> #include <TT/ttanyscroll.h> #include <TT/ttscrollbar.h> #include <TT/ttslider.h> #include <TT/ttprogressbar.h> #include <TT/ttscrollpane.h> #include <TT/ttwindow.h> #include <TT/ttframe.h> #include <TT/ttscroller.h> #include <TT/ttmenuitem.h> #include <TT/ttcheckmenuitem.h> #include <TT/ttradiomenuitem.h> #include <TT/ttmenu.h> #include <TT/ttmenubar.h> #include <TT/ttanytext.h> #include <TT/tttextfield.h> #include <TT/tttextarea.h> #include <TT/tttheme.h> #include <TT/ttapplication.h> #endif /* TT_ALL_M4_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/compiler.h��������������������������������������������������������������������0000664�0000000�0000000�00000004167�13775351206�0016457�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TT_COMPILER_H #define TT_COMPILER_H /** macro to concatenate args */ #define TT_CAT(a, b) TW__CAT(a, b) #define TT_CAT3(a, b, c) TW__CAT3(a, b, c) #define TT_CAT4(a, b, c, d) TW__CAT4(a, b, c, d) /** macro to stringify an arg */ #define TT_STR(a) TW__STR(a) /** `const' if your compiler understands it, else nothing */ #define TT_CONST TW_CONST /** `inline' or an appropriate variation if your compiler understands it, else 'static' */ #define TT_INLINE TW_INLINE /** define if your compiler can inline */ #define TT_CAN_INLINE TW_CAN_INLINE /** `volatile' if your compiler understands it, else nothing */ #define TT_VOLATILE TW_VOLATILE /** `__attribute__((const))' if your compiler understands it, else nothing */ #define TT_ATTR_FN_CONST TW_ATTR_FN_CONST /** `__attribute__((packed))' if your compiler understands it, else nothing */ #define TT_ATTR_TYPE_PACKED TW_ATTR_TYPE_PACKED /* * function arguments attributes: * if no attribute is specified, TT_ARG_WRITE is assumed as default. */ /** * object can only be read (NOT written) by the function until it returns; * function does not own the object and cannot store object value * for later use after function returned. */ #define TT_ARG_READ TT_CONST /** * object can only be written (NOT read or destroyed) by the function until it returns; * function does not own the object, but can store object value for later use as long as * it sets up a mechanism to trash the object value upon or before object destruction. */ #define TT_ARG_WRITE /** * object can only be read/written (NOT destroyed) by the function until it returns; * function does not own the object, but can store object value for later use as long as * it sets up a mechanism to trash the object value upon or before object destruction. */ #define TT_ARG_READ_WRITE /** * object is donated to the function, which owns the object and can do anything with it. * caller cannot store object value for later use after function is invoked. */ #define TT_ARG_DIE /** * expression giving array length */ #define TT_ARG_ARRAY(expr) /** * array is zero-terminated */ #define TT_ARG_ARRAY_Z #endif /* TT_COMPILER_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/datasizes.h�������������������������������������������������������������������0000664�0000000�0000000�00000002755�13775351206�0016635�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TT_DATASIZES_H #define TT_DATASIZES_H #define TT_SIZEOF_void 0 #define TT_SIZEOF_ttchar TW_SIZEOF_BYTE #define TT_SIZEOF_ttbyte TW_SIZEOF_BYTE #define TT_SIZEOF_ttshort TW_SIZEOF_UDAT #define TT_SIZEOF_ttushort TW_SIZEOF_UDAT #define TT_SIZEOF_ttint TW_SIZEOF_ULDAT #define TT_SIZEOF_ttuint TW_SIZEOF_ULDAT #define TT_SIZEOF_ttcol TW_SIZEOF_TCOLOR #define TT_SIZEOF_ttfont TW_SIZEOF_TRUNE #define TT_SIZEOF_ttattr TW_SIZEOF_TCELL #define TT_SIZEOF_ttopaque TW_SIZEOF_TOPAQUE #define TT_SIZEOF_ttany TW_SIZEOF_TANY #define TT_SIZEOF_tttype TW_SIZEOF_TOPAQUE #define TT_MAX_ttchar TW_MAXSBYTE #define TT_MAX_ttbyte TW_MAXBYTE #define TT_MAX_ttshort TW_MAXDAT #define TT_MAX_ttushort TW_MAXUDAT #define TT_MAX_ttint TW_MAXLDAT #define TT_MAX_ttuint TW_MAXULDAT #define TT_MAX_ttcol TW_MAXTCOLOR #define TT_MAX_ttfont TW_MAXTRUNE #define TT_MAX_ttattr TW_MAXTCELL #define TT_MAX_ttopaque TW_MAXTOPAQUE #define TT_MAX_ttany TW_MAXTANY #define TT_MAX_tttype TW_MAXTOPAQUE #define TT_MIN_ttchar TW_MINSBYTE #define TT_MIN_ttshort TW_MINDAT #define TT_MIN_ttint TW_MINLDAT #define TT_MIN_ttany TW_MINTANY #define TT_MIN_ST(t) ((t)((t)1 << (8 * sizeof(t) - 1))) #define TT_MAX_ST(t) ((t)~TT_MIN_ST(t)) #define TT_MAX_UT(t) ((t) ~(t)0) #define TT_MIN_T(t) ((t)-1 > (t)0 ? (t)0 : TT_MIN_ST(t)) #define TT_MAX_T(t) ((t)-1 > (t)0 ? TT_MAX_UT(t) : TT_MAX_ST(t)) #define TT_PAGE_SIZE TW_PAGE_SIZE #define TT_IS_LITTLE_ENDIAN TW_IS_LITTLE_ENDIAN #define TT_IS_BIG_ENDIAN TW_IS_BIG_ENDIAN #endif /* TT_DATASIZES_H */ �������������������twin-0.9.0/include/TT/datatypes.h�������������������������������������������������������������������0000664�0000000�0000000�00000002264�13775351206�0016637�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TT_DATATYPES_H #define TT_DATATYPES_H /* typedefs for objects and method structures */ /** type == 1-byte, unsigned */ typedef byte ttbyte; /** type == 1-byte, signed */ typedef sbyte ttchar; /** type >= 2-bytes, signed */ typedef dat ttshort; /** type >= 2-bytes, unsigned */ typedef udat ttushort; /** type >= 4-bytes, signed */ typedef ldat ttint; /** type >= 4-bytes, unsigned */ typedef uldat ttuint; /** type >= 1-byte, unsigned, used to hold colors */ typedef tcolor ttcol; /** type >= 1-byte, unsigned, used to hold characters (possibly including unicode) */ typedef trune ttfont; /** type >= 2-bytes, unsigned, used to hold characters+colors */ typedef tcell ttattr; /** type == sizeof(void *), unsigned, used to hold pointers and (size_t) integers */ typedef topaque ttopaque; /** type == MAX2(ttuint,ttopaque), unsigned, used to hold anything */ typedef tany ttany; /** typed value, used for reflective calls */ typedef struct s_ttarg ttarg; struct s_ttarg { ttany value; ttopaque type; ttopaque size; /* in bytes, for arrays only */ ttopaque hash; }; /** alias for function pointers (void (*)(void)) */ typedef void (*ttfunction_fn)(void); #endif /* TT_DATATYPES_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/defines.h���������������������������������������������������������������������0000664�0000000�0000000�00000002350�13775351206�0016252�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TT_DEFINES_H #define TT_DEFINES_H #define TT_FALSE 0 #define TT_TRUE 1 /** value meaning `no object' */ #define TT_NOID ((ttopaque)0) /** value meaning `invalid object' */ #define TT_BADID TW_MAXTOPAQUE /** the obvious meaning */ #define TT_MIN2(a, b) ((a) < (b) ? (a) : (b)) /** the obvious meaning */ #define TT_MAX2(a, b) ((a) > (b) ? (a) : (b)) /** define some magic data to use with TTCheckMagic() */ #define TT_DECL_MAGIC(id) TW_DECL_MAGIC(id) /** create a new object given its type name (i.e TTNEW(ttlabel)) */ #define TTNEW(type) ((type)TTNew(TT_CAT(TTClass_, type))) /** delete given object */ #define TTDEL(o) TTDel((ttobj)(o)) /** return 1 if `o' can be cast to type name `t' (i.e TTINSTANCEOF(tttheme, o)) */ #define TTINSTANCEOF(t, o) TTInstanceOf(TT_CAT(TTClass_, t), (ttobj)(o)) /** alias for TTINSTANCEOF(t, o) */ #define TTIS(t, o) TTInstanceOf(TT_CAT(TTClass_, t), (ttobj)(o)) /** alias for TTInstanceOf(t, o) */ #define TTIs(Class, o) TTInstanceOf(Class, o) /** alias for TTIsInstance_ttclass(FN, t) */ #define TTIs_ttclass(Class, t) TTIsInstance_ttclass(Class, t) /** return the class (runtime type) of `o' (will be one of the `TTClass_*' types) */ #define TTCLASSOF(o) TTClassOf((ttobj)(o)) #endif /* TT_DEFINES_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/list_m4.h���������������������������������������������������������������������0000664�0000000�0000000�00000010232�13775351206�0016206�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/decls.m4, do not edit! */ /* * list_m4.h -- defines for listing all libTT object types * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_LIST_M4_H #define TT_LIST_M4_H /* clang-format off */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * m4/TTclasses.m4h -- header for libTT objects inheritance * used as template for a lot of autogenerated files. * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #define TT_LIST(el) \ el(ttobj) el(ttclass) el(ttobject) el(ttvector) el(ttfield) el(ttmethod) el(ttevent) el(tteventbig) el(ttbitmask) el(tteventmask) el(ttcallback) el(ttlistener) el(tttimer) el(ttcomponent) el(ttdata) el(ttvisible) el(ttlayout) el(ttboxlayout) el(ttborderlayout) el(ttnative) el(ttwidget) el(ttlabel) el(tttooltip) el(ttbuttongroup) el(ttanybutton) el(ttbutton) el(ttcheckbutton) el(ttradiobutton) el(ttanyscroll) el(ttscrollbar) el(ttslider) el(ttprogressbar) el(ttscrollpane) el(ttwindow) el(ttframe) el(ttscroller) el(ttmenuitem) el(ttcheckmenuitem) el(ttradiomenuitem) el(ttmenu) el(ttmenubar) el(ttanytext) el(tttextfield) el(tttextarea) el(tttheme) el(ttapplication) #define TT_NLIST(el) \ el(ttclass) el(ttobject) el(ttvector) el(ttfield) el(ttmethod) el(ttevent) el(tteventbig) el(ttbitmask) el(tteventmask) el(ttcallback) el(ttlistener) el(tttimer) el(ttcomponent) el(ttdata) el(ttvisible) el(ttlayout) el(ttboxlayout) el(ttborderlayout) el(ttnative) el(ttwidget) el(ttlabel) el(tttooltip) el(ttbuttongroup) el(ttanybutton) el(ttbutton) el(ttcheckbutton) el(ttradiobutton) el(ttanyscroll) el(ttscrollbar) el(ttslider) el(ttprogressbar) el(ttscrollpane) el(ttwindow) el(ttframe) el(ttscroller) el(ttmenuitem) el(ttcheckmenuitem) el(ttradiomenuitem) el(ttmenu) el(ttmenubar) el(ttanytext) el(tttextfield) el(tttextarea) el(tttheme) el(ttapplication) #define TT_TYPELIST(el) \ el(void) el(ttbyte) el(ttshort) el(ttint) el(ttcol) el(ttfont) el(ttattr) el(ttopaque) el(ttany) el(ttfunction_fn) el(va_list) el(ttarg) #define TT_TYPEALIASLIST(el) \ el(ttsbyte,ttbyte) el(ttushort,ttshort) el(ttuint,ttint) /** type of void */ extern ttclass TTClass_void; /** type of ttbyte */ extern ttclass TTClass_ttbyte; /** type of ttshort */ extern ttclass TTClass_ttshort; /** type of ttint */ extern ttclass TTClass_ttint; /** type of ttcol */ extern ttclass TTClass_ttcol; /** type of ttfont */ extern ttclass TTClass_ttfont; /** type of ttattr */ extern ttclass TTClass_ttattr; /** type of ttopaque */ extern ttclass TTClass_ttopaque; /** type of ttany */ extern ttclass TTClass_ttany; /** type of ttfunction_fn */ extern ttclass TTClass_ttfunction_fn; /** type of va_list */ extern ttclass TTClass_va_list; /** type of ttarg */ extern ttclass TTClass_ttarg; /** aliases */ #define TTClass_ttsbyte TTClass_ttbyte #define TTClass_ttushort TTClass_ttshort #define TTClass_ttuint TTClass_ttint #endif /* TT_LIST_M4_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/m4/���������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015004�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/m4/all.m4h��������������������������������������������������������������������0000664�0000000�0000000�00000002240�13775351206�0016164�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/all.m4' : m4 macros to autogenerate all_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/all.m4', do not edit! */ /* * all_m4.h -- internal header file that includes all single libTT object header files * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_ALL_M4_H #define TT_ALL_M4_H /* clang-format off */ #ifndef TT_TT_H #error "Never include <TT/all_m4.h> directly; include <TT/tt.h> instead." #endif divert(-1) include(`m4/TTclasses.m4') divert define(`el', ` typedef struct s_$1 * $1;') TTlist() undefine(`el') define(`el', ` `#'define s_$1 s_$1') TTlist() undefine(`el') /* useful types */ typedef void (*ttlistener_fn)(ttany arg0); typedef void (*ttvisible_repaint_fn)(ttvisible,ttshort,ttshort,ttshort,ttshort); define(`el', ` `#'include <TT/$1.h>') TTlist() undefine(`el') #endif /* TT_ALL_M4_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/m4/list.m4h�������������������������������������������������������������������0000664�0000000�0000000�00000002200�13775351206�0016363�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/decls.m4' : m4 macros to autogenerate decls_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/decls.m4', do not edit! */ /* * list_m4.h -- defines for listing all libTT object types * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_LIST_M4_H #define TT_LIST_M4_H /* clang-format off */ define(`c_doxygen', ` $@')`'dnl define(`c_comment', ` $@')`'dnl include(`m4/TTclasses.m4') include(`m4/TTclient.m4') #define TT_LIST(el) \ TTlist() #define TT_NLIST(el) \ TTnlist() #define TT_TYPELIST(el) \ TTtypelist() #define TT_TYPEALIASLIST(el) \ TTtypealiaslist() define(`el', ` /** type of `$1' */ extern ttclass TTClass_$1;') TTtypelist() undefine(`el') /** aliases */ define(`el', ` `#'define TTClass_$1 TTClass_$2') TTtypealiaslist() undefine(`el') #endif /* TT_LIST_M4_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/m4/makefragment.m4m�����������������������������������������������������������0000664�0000000�0000000�00000002346�13775351206�0020071�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/makefragment.m4m' : m4 macros to autogenerate makefragment_m4 dnl Tell the user about this. # This file was automatically generated from `m4/makefragment.m4m', do not edit! # # makefragment_m4 -- makefile containing rules to autogenerate some libTT headers # # Copyright (C) 2002 by Massimiliano Ghilardi # # 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. # divert(-1) include(`m4/TTclasses.m4') divert define(`el', `$1') tt_list_objects:=TTlist() undefine(`el') tt_list_files_h:=$(patsubst %,$(T)include/TT/%.h,$(tt_list_objects)) $(T)include/TT/makefragment_m4: $(wildcard $(T)include/m4/TT*) $(tt_list_files_h) $(T)include/TT/all_m4.h: $(T)include/TT/tt_timestamp $(T)include/TT/tt_timestamp: $(T)include/TT/m4/tt.m4 $(T)include/TT/makefragment_m4 $(T)include/m4/TT*.m4 @for i in $(tt_list_objects); do \ echo "building include/TT/$$i.h"; \ $(M4) -I$(T)include -Dtarget=$$i $< > $(T)include/TT/$$i.h; \ done; \ touch $@ PURE_REMOVE_FILES+=$(T)include/TT/tt_timestamp $(T)include/TT/tt?*.h ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/m4/tt.m4����������������������������������������������������������������������0000664�0000000�0000000�00000006334�13775351206�0015703�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/tt.m4hh' : m4 macros to autogenerate various target.h headers dnl Tell the user about this. /* This file was automatically generated from `m4/tt.m4hh', do not edit! */ /* * target.h -- public header for libTT declarations related to "target" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ define(`TARGET', `translit(target, `a-z', `A-Z')') `#'ifndef _TT_`'TARGET`'_H `#'define _TT_`'TARGET`'_H divert(-1) define(`c_doxygen', ` $@')dnl define(`c_comment', ` $@')dnl include(`m4/TTclasses.m4') divert divert(-1) include(`m4/TTclient.m4') include(`m4/TTdecay.m4') include(`m4/TTfield.m4') divert /* object structure */ `#'ifndef s_`'target define(`el', `TTdef_$1($1) struct s_$1; typedef struct s_$1 * $1;') el(target) undefine(`el') `#'endif /* s_`'target */ define(`c_comment') /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of target */ extern ttclass TTClass_`'target; dnl /* #defines for objects hierarchy */ dnl define(`extends',` dnl /** the superclass of $2 */ dnl `#'define TT_super_$2 $1')dnl dnl define(`field')dnl dnl define(`el', `TTdef_$1($1)')dnl dnl el(target)dnl dnl undefine(`el')dnl dnl define(`field')dnl dnl define(`extends')dnl divert(-1) define(`_G0', `ifelse(`$1', `', `', `$1 ')`'$2') define(`_G', `ifelse(`$1', `', `', `$1 ')`'$2 $3') define(`m4TTdeclare',`define(`m4TT$1_$2',`TT$1_$2') $4 TT$1_$2(ifelse($3, 0, `void', `NSHIFT(4, $@)')); ') define(`extends') define(`public',`m4TTdeclare($@)') define(`public_set',`public($@)') define(`final',`public($@)') define(`final_var',`public($@)') define(`el', `TTdef_ttclass_$1($1)') divert /* target methods */ el(target) divert(-1) undefine(`el') define(`final_var') define(`final') define(`public_set') define(`public') define(`extends') define(`_G0', `$@') define(`_G', `$@') define(`getset_method', ` `'/** $1 ``$2'' of target ``o'' */ `'c_arg_decl($5,$6) TT`'Toupper2($1,$2)_`'this`'(c_args_decl(NSHIFT(7, $@))); ') divert define(`el', ` /* TTGet*_$1 and TTSet*_$1 methods */ define(`this', `$1')`'TTdef_$1($1)') define(`extends') define(`field', `getset_field($@)') el(target) define(`final') define(`extends') define(`field') undefine(`el') divert(-1) dnl dnl define(`m4TTbasesuper',`ifdef(`m4TT$2_$3',`m4TT$2_$3',`m4TTbasesuper(,`$2',m4_super_$3)')') dnl dnl /* methods inherited by derivate classes */ dnl /* set #defines pointing to the most primitive class implementing the method */ dnl define(`extends') dnl define(`public',` dnl `#'define TT$2_$3 m4TTbasesuper(,$2,$3)') dnl define(`public_set',`public($@)') dnl define(`final',`public($@)') dnl define(`mysuper',`ifelse($1,ttobj,`',`mysuper(m4_super_$1,$2)')`'TTdef_ttclass_$1($2)') dnl define(`el',` dnl dnl /* methods inherited by $1 */dnl dnl mysuper(m4_super_$1,$1)') dnl dnl TTnlist() dnl undefine(`el') dnl undefine(`mysuper') dnl define(`final') dnl define(`public_set') dnl define(`public') dnl define(`extends') dnl divert `#'endif /* _TT_`'TARGET`'_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/makefragment_m4���������������������������������������������������������������0000664�0000000�0000000�00000003013�13775351206�0017445�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ # This file was automatically generated from `m4/makefragment.m4m', do not edit! # # makefragment_m4 -- makefile containing rules to autogenerate some libTT headers # # Copyright (C) 2002 by Massimiliano Ghilardi # # 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. # tt_list_objects:= ttobj ttclass ttobject ttvector ttfield ttmethod ttevent tteventbig ttbitmask tteventmask ttcallback ttlistener tttimer ttcomponent ttdata ttvisible ttlayout ttboxlayout ttborderlayout ttnative ttwidget ttlabel tttooltip ttbuttongroup ttanybutton ttbutton ttcheckbutton ttradiobutton ttanyscroll ttscrollbar ttslider ttprogressbar ttscrollpane ttwindow ttframe ttscroller ttmenuitem ttcheckmenuitem ttradiomenuitem ttmenu ttmenubar ttanytext tttextfield tttextarea tttheme ttapplication tt_list_files_h:=$(patsubst %,$(T)include/TT/%.h,$(tt_list_objects)) $(T)include/TT/makefragment_m4: $(wildcard $(T)include/m4/TT*) $(tt_list_files_h) $(T)include/TT/all_m4.h: $(T)include/TT/tt_timestamp $(T)include/TT/tt_timestamp: $(T)include/TT/m4/tt.m4 $(T)include/TT/makefragment_m4 $(T)include/m4/TT*.m4 @for i in $(tt_list_objects); do \ echo "building include/TT/$$i.h"; \ $(M4) -I$(T)include -Dtarget=$$i $< > $(T)include/TT/$$i.h; \ done; \ touch $@ PURE_REMOVE_FILES+=$(T)include/TT/tt_timestamp $(T)include/TT/tt?*.h ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/osincludes.h������������������������������������������������������������������0000664�0000000�0000000�00000000144�13775351206�0017004�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TT_OSINCLUDES_H #define TT_OSINCLUDES_H #include <stdarg.h> #endif /* TT_OSINCLUDES_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/pli/��������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015250�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/pli/m4/�����������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015570�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/pli/m4/makefragment.m4m_notyet������������������������������������������������0000664�0000000�0000000�00000002170�13775351206�0022252�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/makefragment.m4m' : m4 macros to autogenerate makefragment_m4 dnl Tell the user about this. # This file was automatically generated from `m4/makefragment.m4m', do not edit! # # makefragment_m4 -- makefile containing rules to autogenerate some libTT glue code for Pliant # # Copyright (C) 2002 by Massimiliano Ghilardi # # 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. # tt_list_files_pli:=$(patsubst %,$(T)include/TT/%.pli,$(tt_list_objects)) $(tt_list_files_pli) $(T)include/TT/pli/all_m4.pli: $(T)include/TT/pli/tt_timestamp $(T)include/TT/pli/tt_timestamp: $(T)include/TT/pli/m4/tt.m4 $(T)include/TT/pli/makefragment_m4 $(T)include/m4/TT*.m4 @for i in $(tt_list_objects); do \ echo "building include/TT/pli/$$i.pli"; \ $(M4) -I$(T)include -Dtarget=$$i $< > $(T)include/TT/pli/$$i.pli; \ done; \ touch $@ PURE_REMOVE_FILES+=$(T)include/TT/pli/tt_timestamp $(T)include/TT/pli/tt?*.pli ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/pli/m4/tt.m4_notyet�����������������������������������������������������������0000664�0000000�0000000�00000006642�13775351206�0020073�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/tt.m4pli' : m4 macros to autogenerate various target.pli headers dnl Tell the user about this. # This file was automatically generated from `m4/tt.m4pli', do not edit! # # target.pli -- public header for libTT declarations related to "target" # # Copyright (C) 2002 by Massimiliano Ghilardi # # 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. # # define(`TARGET', `translit(target, `a-z', `A-Z')') divert(-1) define(`c_doxygen', ` `#' $@')dnl define(`c_comment', ` `#' $@')dnl include(`m4/TTclasses.m4') divert divert(-1) include(`m4/TTclient.m4') include(`m4/TTfield.m4') divert public # object structure define(`el', `TTdef_$1($1) type $1 field uInt id') el(target) undefine(`el') define(`c_comment') # global runtime class type; returned by TTCLASSOF <some object> # class of target # # help! how to declare an external C variable? # #extern ttclass TTClass_`'target; define(`extends',` `#' the superclass of $2 $1 maybe $2')dnl define(`field')dnl define(`el', `TTdef_$1($1)')dnl el(target)dnl undefine(`el')dnl define(`field')dnl define(`extends')dnl divert(-1) define(`pliant_args_name', `ifelse($3, `', `', ` $3`'pliant_args_name(NSHIFT(3,$@))')') define(`pliant_args_decl', `ifelse($3, `', `', ` pliant_arg_decl($1,$2,$3)`'pliant_args_decl(NSHIFT(3,$@))')') define(`pliant_arg_decl', `pliant_arg_arg($@) $2 $3;') dnl define(`pliant_arg_arg', `ifelse(index(`$1', TT_ARG_READ), -1, `ifelse(index(`$1', TT_ARG_WRITE), -1, `arg_rw', `arg_w')', `arg')') define(`pliant_arg_arg', `arg') define(`_G', `$@') define(`_G0', `$@') define(`m4TTdeclare',`define(`m4TT$1_$2',`TT$1_$2') function TT$1_$2`'ifelse($3, 0, `', `pliant_args_name(NSHIFT(6, $@))')`'ifelse($5, void, `', ` -> result') pliant_args_decl(NSHIFT(6, $@)) ifelse(`$5', void, `', ``arg' $5 result external libTT "TT$1_$2"') ') define(`extends') define(`public',`m4TTdeclare($@)') define(`public_set',`public($@)') define(`final',`public($@)') define(`final_var',`public($@)') define(`el', `TTdef_ttclass_$1($1)') divert `#' target methods el(target) divert(-1) undefine(`el') define(`final_var') define(`final') define(`public_set') define(`public') define(`extends') define(`def_field', ` `'`#' $2 ``$3'' of target ``o'' `'$1 TT`'decl_name($@)_`'this`'(decl_args($@)); ') divert define(`el', ` `#' TTGet*_$1 and TTSet*_$1 methods define(`this', `$1')`'TTdef_$1($1)') define(`extends') define(`field', `getset_field($@)') el(target) define(`final') define(`extends') define(`field') undefine(`el') divert(-1) dnl dnl define(`m4TTbasesuper',`ifdef(`m4TT$2_$3',`m4TT$2_$3',`m4TTbasesuper(,`$2',m4_super_$3)')') dnl dnl /* methods inherited by derivate classes */ dnl /* set #defines pointing to the most primitive class implementing the method */ dnl define(`extends') dnl define(`public',` dnl `#'define TT$2_$3 m4TTbasesuper(,$2,$3)') dnl define(`public_set',`public($@)') dnl define(`final',`public($@)') dnl define(`mysuper',`ifelse($1,ttobj,`',`mysuper(m4_super_$1,$2)')`'TTdef_ttclass_$1($2)') dnl define(`el',` dnl dnl /* methods inherited by $1 */dnl dnl mysuper(m4_super_$1,$1)') dnl dnl TTnlist() dnl undefine(`el') dnl undefine(`mysuper') dnl define(`final') dnl define(`public_set') dnl define(`public') dnl define(`extends') dnl divert ����������������������������������������������������������������������������������������������twin-0.9.0/include/TT/tt.h��������������������������������������������������������������������������0000664�0000000�0000000�00000000254�13775351206�0015265�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * tt.h -- public header file that includes all single libTT object header files */ #ifndef TT_TT_H #define TT_TT_H #include <TT/all_m4.h> #endif /* TT_TT_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/tt_timestamp������������������������������������������������������������������0000664�0000000�0000000�00000000000�13775351206�0017107�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttanybutton.h�����������������������������������������������������������������0000664�0000000�0000000�00000004720�13775351206�0017233�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttanybutton.h -- public header for libTT declarations related to "ttanybutton" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTANYBUTTON_H #define TT_TTANYBUTTON_H /* object structure */ #ifndef s_ttanybutton /** ttanybutton: the abstract class all buttons are derived from */ struct s_ttanybutton; typedef struct s_ttanybutton *ttanybutton; #endif /* s_ttanybutton */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttanybutton */ extern ttclass TTClass_ttanybutton; /* ttanybutton methods */ /** set the text of the ttanybutton `o' and swallow `text' */ void TTSetAttrD_ttanybutton(ttanybutton o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3), *, _P(4))) ttattr *text); /** set the text of the ttanybutton `o' to a copy of `text' */ ttbyte TTSetAttr_ttanybutton(ttanybutton o, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(3), *, _P(4))) ttattr *text); /** set the text of the ttanybutton `o' to a copy of `text' */ ttbyte TTSetFont_ttanybutton(ttanybutton o, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(3), *, _P(4))) ttfont *text); /** set the text of the ttanybutton `o' to a copy of `text' */ ttbyte TTSetText_ttanybutton(ttanybutton o, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(3), *, _P(4))) ttbyte *text); /** create a ttanybutton with a copy of given text */ ttanybutton TTCreate_ttanybutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2), *, _P(3))) ttbyte *text); /* TTGet*_ttanybutton and TTSet*_ttanybutton methods */ /** get `text_width' of ttanybutton `o' */ ttshort TTGetTextWidth_ttanybutton(TT_ARG_READ ttanybutton o); /** get `text_height' of ttanybutton `o' */ ttshort TTGetTextHeight_ttanybutton(TT_ARG_READ ttanybutton o); /** get `text' of ttanybutton `o' */ TT_ARG_ARRAY((_F(text_width), *, _F(text_height))) ttattr *TTGetText_ttanybutton(TT_ARG_READ ttanybutton o); #endif /* TT_TTANYBUTTON_H */ ������������������������������������������������twin-0.9.0/include/TT/ttanyscroll.h�����������������������������������������������������������������0000664�0000000�0000000�00000005467�13775351206�0017227�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttanyscroll.h -- public header for libTT declarations related to "ttanyscroll" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTANYSCROLL_H #define TT_TTANYSCROLL_H /* object structure */ #ifndef s_ttanyscroll /** ttanyscroll: the abstract class all scroll-like widgets are derived from */ struct s_ttanyscroll; typedef struct s_ttanyscroll *ttanyscroll; #endif /* s_ttanyscroll */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttanyscroll */ extern ttclass TTClass_ttanyscroll; /* ttanyscroll methods */ /** set the orientation of the ttanyscroll `o' */ ttbyte TTSetOrientation_ttanyscroll(ttanyscroll o, ttbyte orientation); /** set the (virtual) size of the ttanyscroll `o' */ ttbyte TTSetSize_ttanyscroll(ttanyscroll o, ttint size); /** set the (real) size of the ttanyscroll `o' */ ttbyte TTSetRealSize_ttanyscroll(ttanyscroll o, ttint real_size); /** set the (virtual) view size of the ttanyscroll `o' */ ttbyte TTSetViewSize_ttanyscroll(ttanyscroll o, ttint view_size); /** set the (virtual) position of the ttanyscroll `o' */ ttbyte TTSetPosition_ttanyscroll(ttanyscroll o, ttint position); /* TTGet*_ttanyscroll and TTSet*_ttanyscroll methods */ /** get `orientation' of ttanyscroll `o' */ ttbyte TTGetOrientation_ttanyscroll(TT_ARG_READ ttanyscroll o); /** set `orientation' of ttanyscroll `o' */ ttbyte TTSetOrientation_ttanyscroll(ttanyscroll o, ttbyte orientation); /** get `size' of ttanyscroll `o' */ ttint TTGetSize_ttanyscroll(TT_ARG_READ ttanyscroll o); /** set `size' of ttanyscroll `o' */ ttbyte TTSetSize_ttanyscroll(ttanyscroll o, ttint size); /** get `real_size' of ttanyscroll `o' */ ttint TTGetRealSize_ttanyscroll(TT_ARG_READ ttanyscroll o); /** set `real_size' of ttanyscroll `o' */ ttbyte TTSetRealSize_ttanyscroll(ttanyscroll o, ttint real_size); /** get `view_size' of ttanyscroll `o' */ ttint TTGetViewSize_ttanyscroll(TT_ARG_READ ttanyscroll o); /** set `view_size' of ttanyscroll `o' */ ttbyte TTSetViewSize_ttanyscroll(ttanyscroll o, ttint view_size); /** get `position' of ttanyscroll `o' */ ttint TTGetPosition_ttanyscroll(TT_ARG_READ ttanyscroll o); /** set `position' of ttanyscroll `o' */ ttbyte TTSetPosition_ttanyscroll(ttanyscroll o, ttint position); /** get `real_position' of ttanyscroll `o' */ ttint TTGetRealPosition_ttanyscroll(TT_ARG_READ ttanyscroll o); /** get `state' of ttanyscroll `o' */ ttuint TTGetState_ttanyscroll(TT_ARG_READ ttanyscroll o); #endif /* TT_TTANYSCROLL_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttanytext.h�������������������������������������������������������������������0000664�0000000�0000000�00000002235�13775351206�0016703�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttanytext.h -- public header for libTT declarations related to "ttanytext" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTANYTEXT_H #define TT_TTANYTEXT_H /* object structure */ #ifndef s_ttanytext /** ttanytext: the superclass of all text-only widgets */ struct s_ttanytext; typedef struct s_ttanytext *ttanytext; #endif /* s_ttanytext */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttanytext */ extern ttclass TTClass_ttanytext; /* ttanytext methods */ /* TTGet*_ttanytext and TTSet*_ttanytext methods */ /** get `text_len' of ttanytext `o' */ ttopaque TTGetTextLen_ttanytext(TT_ARG_READ ttanytext o); /** get `text' of ttanytext `o' */ TT_ARG_ARRAY((_F(text_len))) ttattr *TTGetText_ttanytext(TT_ARG_READ ttanytext o); #endif /* TT_TTANYTEXT_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttapplication.h���������������������������������������������������������������0000664�0000000�0000000�00000002676�13775351206�0017523�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttapplication.h -- public header for libTT declarations related to "ttapplication" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTAPPLICATION_H #define TT_TTAPPLICATION_H /* object structure */ #ifndef s_ttapplication /** ttapplication: the topmost object */ struct s_ttapplication; typedef struct s_ttapplication *ttapplication; #endif /* s_ttapplication */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttapplication */ extern ttclass TTClass_ttapplication; /* ttapplication methods */ /** create (only one allowed) a ttapplication with given name */ ttapplication TTCreate_ttapplication(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *name); /** get the current application */ ttapplication TTGet_ttapplication(void); /* TTGet*_ttapplication and TTSet*_ttapplication methods */ /** get `name_len' of ttapplication `o' */ ttopaque TTGetNameLen_ttapplication(TT_ARG_READ ttapplication o); /** get `name' of ttapplication `o' */ TT_ARG_ARRAY((_F(name_len))) ttbyte *TTGetName_ttapplication(TT_ARG_READ ttapplication o); #endif /* TT_TTAPPLICATION_H */ ������������������������������������������������������������������twin-0.9.0/include/TT/ttbitmask.h�������������������������������������������������������������������0000664�0000000�0000000�00000006326�13775351206�0016646�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttbitmask.h -- public header for libTT declarations related to "ttbitmask" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTBITMASK_H #define TT_TTBITMASK_H /* object structure */ #ifndef s_ttbitmask /** ttbitmask: a bitmap mask of generic (ttany) values; * used, among others, to hold bitmaps of ttevent evtypes, evcodes and * components to block specific ttevents while calling event listeners. */ struct s_ttbitmask; typedef struct s_ttbitmask *ttbitmask; #endif /* s_ttbitmask */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttbitmask */ extern ttclass TTClass_ttbitmask; /* ttbitmask methods */ /** create a ttbitmask with given value */ ttbitmask TTCreate_ttbitmask(ttany value); /** create a ttbitmask equal to given one */ ttbitmask TTCreateB2_ttbitmask(TT_ARG_READ ttbitmask o); /** create a ttbitmask with given `value' array and swallow `value' */ ttbitmask TTCreateR_ttbitmask(TT_ARG_DIE ttvector value); /** create a ttbitmask with a copy of given `value' array */ ttbitmask TTCreateR2_ttbitmask(TT_ARG_READ ttvector value); /** initialize the ttbitmask `o' to empty */ void TTClear_ttbitmask(ttbitmask o); /** initialize the ttbitmask `o' to full */ void TTFill_ttbitmask(ttbitmask o); /** negate (i.e. make complement of) the ttbitmask `o' */ void TTNegate_ttbitmask(ttbitmask o); /** change ttbitmask `o' applying given truth table (i.e. logical operation) */ void TTChange_ttbitmask(ttbitmask o, ttuint truth_table); /** check whether `value' is member of the ttbitmask `o' */ ttbyte TTContains_ttbitmask(TT_ARG_READ ttbitmask o, ttany value); /** add `value' to the ttbitmask `o' */ ttbyte TTAdd_ttbitmask(ttbitmask o, ttany value); /** add `value' bitmask to the ttbitmask `o' */ ttbyte TTAddB_ttbitmask(ttbitmask o, TT_ARG_READ ttbitmask value); /** add `value' array to the ttbitmask `o' */ ttbyte TTAddR_ttbitmask(ttbitmask o, TT_ARG_READ ttvector value); /** remove `value' from the ttbitmask `o' */ ttbyte TTRemove_ttbitmask(ttbitmask o, ttany value); /** remove `value' bitmask from the ttbitmask `o' */ ttbyte TTRemoveB_ttbitmask(ttbitmask o, TT_ARG_READ ttbitmask value); /** remove `value' array from the ttbitmask `o' */ ttbyte TTRemoveR_ttbitmask(ttbitmask o, TT_ARG_READ ttvector value); /** combine ttbitmask `o' with `value' appling given truth table (i.e. logical operation) */ ttbyte TTCombine_ttbitmask(ttbitmask o, ttany value, ttuint truth_table); /** combine ttbitmask `o' with `value' array appling given truth table (i.e. logical operation) */ ttbyte TTCombineR_ttbitmask(ttbitmask o, TT_ARG_READ ttvector value, ttuint truth_table); /** combine ttbitmask `o' with `value' appling given truth table (i.e. logical operation) */ ttbyte TTCombineB_ttbitmask(ttbitmask o, TT_ARG_READ ttbitmask value, ttuint truth_table); /* TTGet*_ttbitmask and TTSet*_ttbitmask methods */ #endif /* TT_TTBITMASK_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttborderlayout.h��������������������������������������������������������������0000664�0000000�0000000�00000002025�13775351206�0017717�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttborderlayout.h -- public header for libTT declarations related to "ttborderlayout" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTBORDERLAYOUT_H #define TT_TTBORDERLAYOUT_H /* object structure */ #ifndef s_ttborderlayout /** ttlayout: a border (north+south+west+east+center) layout */ struct s_ttborderlayout; typedef struct s_ttborderlayout *ttborderlayout; #endif /* s_ttborderlayout */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttborderlayout */ extern ttclass TTClass_ttborderlayout; /* ttborderlayout methods */ /* TTGet*_ttborderlayout and TTSet*_ttborderlayout methods */ #endif /* TT_TTBORDERLAYOUT_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttboxlayout.h�����������������������������������������������������������������0000664�0000000�0000000�00000002265�13775351206�0017240�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttboxlayout.h -- public header for libTT declarations related to "ttboxlayout" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTBOXLAYOUT_H #define TT_TTBOXLAYOUT_H /* object structure */ #ifndef s_ttboxlayout /** ttlayout: a box (horizontal or vertical) layout */ struct s_ttboxlayout; typedef struct s_ttboxlayout *ttboxlayout; #endif /* s_ttboxlayout */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttboxlayout */ extern ttclass TTClass_ttboxlayout; /* ttboxlayout methods */ /** create a ttboxlayout with given orientation */ ttboxlayout TTCreate_ttboxlayout(ttany orientation); /* TTGet*_ttboxlayout and TTSet*_ttboxlayout methods */ /** get `orientation' of ttboxlayout `o' */ ttuint TTGetOrientation_ttboxlayout(TT_ARG_READ ttboxlayout o); #endif /* TT_TTBOXLAYOUT_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttbutton.h��������������������������������������������������������������������0000664�0000000�0000000�00000002511�13775351206�0016517�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttbutton.h -- public header for libTT declarations related to "ttbutton" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTBUTTON_H #define TT_TTBUTTON_H /* object structure */ #ifndef s_ttbutton /** ttbutton: a normal click-to-activate button */ struct s_ttbutton; typedef struct s_ttbutton *ttbutton; #endif /* s_ttbutton */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttbutton */ extern ttclass TTClass_ttbutton; /* ttbutton methods */ /** set whether the ttbutton `o' is pressed or not */ void TTSetPressed_ttbutton(ttbutton o, ttbyte pressed); /** get whether the ttbutton `o' is pressed or not */ ttbyte TTIsPressed_ttbutton(TT_ARG_READ ttbutton o); /** create a ttbutton with given text */ ttbutton TTCreate_ttbutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2), *, _P(3))) ttbyte *text); /* TTGet*_ttbutton and TTSet*_ttbutton methods */ #endif /* TT_TTBUTTON_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttbuttongroup.h���������������������������������������������������������������0000664�0000000�0000000�00000003344�13775351206�0017601�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttbuttongroup.h -- public header for libTT declarations related to "ttbuttongroup" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTBUTTONGROUP_H #define TT_TTBUTTONGROUP_H /* object structure */ #ifndef s_ttbuttongroup /** ttbuttongroup: a mutual-exclusion group of radiobuttons */ struct s_ttbuttongroup; typedef struct s_ttbuttongroup *ttbuttongroup; #endif /* s_ttbuttongroup */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttbuttongroup */ extern ttclass TTClass_ttbuttongroup; /* ttbuttongroup methods */ /** add the ttradiobutton `r' to the ttbuttongroup `o' */ void TTAdd_ttbuttongroup(ttbuttongroup o, ttradiobutton r); /** remove the ttradiobutton `r' from the ttbuttongroup `o' */ void TTRemove_ttbuttongroup(ttbuttongroup o, ttradiobutton r); /** set which ttradiobutton in the ttbuttongroup `o' is checked */ void TTSetChecked_ttbuttongroup(ttbuttongroup o, ttradiobutton r); /* TTGet*_ttbuttongroup and TTSet*_ttbuttongroup methods */ /** get `group_first' of ttbuttongroup `o' */ ttradiobutton TTGetGroupFirst_ttbuttongroup(TT_ARG_READ ttbuttongroup o); /** get `group_last' of ttbuttongroup `o' */ ttradiobutton TTGetGroupLast_ttbuttongroup(TT_ARG_READ ttbuttongroup o); /** get `checked' of ttbuttongroup `o' */ ttradiobutton TTGetChecked_ttbuttongroup(TT_ARG_READ ttbuttongroup o); #endif /* TT_TTBUTTONGROUP_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttcallback.h������������������������������������������������������������������0000664�0000000�0000000�00000002576�13775351206�0016753�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttcallback.h -- public header for libTT declarations related to "ttcallback" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTCALLBACK_H #define TT_TTCALLBACK_H /* object structure */ #ifndef s_ttcallback /** ttcallback: The entry point for internal event-based callbacks from target drivers */ struct s_ttcallback; typedef struct s_ttcallback *ttcallback; #endif /* s_ttcallback */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttcallback */ extern ttclass TTClass_ttcallback; /* ttcallback methods */ /* TTGet*_ttcallback and TTSet*_ttcallback methods */ /** get `lflags' of ttcallback `o' */ ttuint TTGetLflags_ttcallback(TT_ARG_READ ttcallback o); /** get `component' of ttcallback `o' */ ttcomponent TTGetComponent_ttcallback(TT_ARG_READ ttcallback o); /** get `prev' of ttcallback `o' */ ttcallback TTGetPrev_ttcallback(TT_ARG_READ ttcallback o); /** get `next' of ttcallback `o' */ ttcallback TTGetNext_ttcallback(TT_ARG_READ ttcallback o); #endif /* TT_TTCALLBACK_H */ ����������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttcheckbutton.h���������������������������������������������������������������0000664�0000000�0000000�00000002700�13775351206�0017515�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttcheckbutton.h -- public header for libTT declarations related to "ttcheckbutton" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTCHECKBUTTON_H #define TT_TTCHECKBUTTON_H /* object structure */ #ifndef s_ttcheckbutton /** ttcheckbutton: a two-state (on/off) button */ struct s_ttcheckbutton; typedef struct s_ttcheckbutton *ttcheckbutton; #endif /* s_ttcheckbutton */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttcheckbutton */ extern ttclass TTClass_ttcheckbutton; /* ttcheckbutton methods */ /** set whether the ttbutton `o' is checked or not */ void TTSetChecked_ttcheckbutton(ttcheckbutton o, ttbyte checked); /** get whether the ttbutton `o' is checked or not */ ttbyte TTIsChecked_ttcheckbutton(TT_ARG_READ ttcheckbutton o); /** create a ttcheckbutton with given text */ ttcheckbutton TTCreate_ttcheckbutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2), *, _P(3))) ttbyte *text); /* TTGet*_ttcheckbutton and TTSet*_ttcheckbutton methods */ #endif /* TT_TTCHECKBUTTON_H */ ����������������������������������������������������������������twin-0.9.0/include/TT/ttcheckmenuitem.h�������������������������������������������������������������0000664�0000000�0000000�00000002027�13775351206�0020027�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttcheckmenuitem.h -- public header for libTT declarations related to "ttcheckmenuitem" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTCHECKMENUITEM_H #define TT_TTCHECKMENUITEM_H /* object structure */ #ifndef s_ttcheckmenuitem /** ttcheckmenuitem: a checkable line in a menu */ struct s_ttcheckmenuitem; typedef struct s_ttcheckmenuitem *ttcheckmenuitem; #endif /* s_ttcheckmenuitem */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttcheckmenuitem */ extern ttclass TTClass_ttcheckmenuitem; /* ttcheckmenuitem methods */ /* TTGet*_ttcheckmenuitem and TTSet*_ttcheckmenuitem methods */ #endif /* TT_TTCHECKMENUITEM_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttclass.h���������������������������������������������������������������������0000664�0000000�0000000�00000003407�13775351206�0016316�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttclass.h -- public header for libTT declarations related to "ttclass" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTCLASS_H #define TT_TTCLASS_H /* object structure */ #ifndef s_ttclass /** ttclass: The runtime type of all objects */ struct s_ttclass; typedef struct s_ttclass *ttclass; #endif /* s_ttclass */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttclass */ extern ttclass TTClass_ttclass; /* ttclass methods */ /** get the name of the ttclass `o' */ TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *TTGetName_ttclass(TT_ARG_READ ttclass o); /** get the size (bytes) used by objects of type represented by ttclass `o' */ ttopaque TTGetSize_ttclass(TT_ARG_READ ttclass o); /** get the parent class of the ttclass `o' */ TT_ARG_READ ttclass TTGetSuper_ttclass(TT_ARG_READ ttclass o); /** return TT_TRUE if type `t' can be cast to type `o' */ ttbyte TTIsInstance_ttclass(TT_ARG_READ ttclass o, TT_ARG_READ ttclass t); /** get the bare class of given type (removing attribute like _R, _W, _D, _A((x))) */ TT_ARG_READ ttclass TTFromType_ttclass(ttopaque type); /** return TT_TRUE if given type indicates an array */ ttbyte TTIsArrayType_ttclass(ttopaque type); /** return TT_TRUE if given type indicates a primitive type (not a ttobj or derivate) */ ttbyte TTIsPrimitiveType_ttclass(ttopaque type); /* TTGet*_ttclass and TTSet*_ttclass methods */ #endif /* TT_TTCLASS_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttcomponent.h�����������������������������������������������������������������0000664�0000000�0000000�00000004405�13775351206�0017212�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttcomponent.h -- public header for libTT declarations related to "ttcomponent" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTCOMPONENT_H #define TT_TTCOMPONENT_H /* object structure */ #ifndef s_ttcomponent /** ttcomponent: The superclass of all components (visible objects, groups, applications, ...) */ struct s_ttcomponent; typedef struct s_ttcomponent *ttcomponent; #endif /* s_ttcomponent */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttcomponent */ extern ttclass TTClass_ttcomponent; /* ttcomponent methods */ /** add the ttlistener `c' to `o' */ void TTAddListener_ttcomponent(ttcomponent o, ttlistener l); /** remove the ttlistener `c' from `o' */ void TTRemoveListener_ttcomponent(ttcomponent o, ttlistener l); /** associate `data' with `key' in ttcomponent `o' */ ttdata TTSetKeyData_ttcomponent(ttcomponent o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *key, ttany data); /** get `data' associated with with `key' in ttcomponent `o' */ ttany TTGetKeyData_ttcomponent(TT_ARG_READ ttcomponent o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *key); /** remove `data' associated with `key' in ttcomponent `o' */ void TTUnsetKeyData_ttcomponent(ttcomponent o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *key); /** get the ttdata containing `data' associated with with `key' in ttcomponent `o' */ ttdata TTGetData_ttcomponent(TT_ARG_READ ttcomponent o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *key); /* TTGet*_ttcomponent and TTSet*_ttcomponent methods */ /** get `callbacks' of ttcomponent `o' */ ttcallback TTGetCallbacks_ttcomponent(TT_ARG_READ ttcomponent o); /** get `listeners' of ttcomponent `o' */ ttlistener TTGetListeners_ttcomponent(TT_ARG_READ ttcomponent o); /** get `timers' of ttcomponent `o' */ tttimer TTGetTimers_ttcomponent(TT_ARG_READ ttcomponent o); /** get `datas' of ttcomponent `o' */ ttdata TTGetDatas_ttcomponent(TT_ARG_READ ttcomponent o); #endif /* TT_TTCOMPONENT_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttdata.h����������������������������������������������������������������������0000664�0000000�0000000�00000003210�13775351206�0016112�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttdata.h -- public header for libTT declarations related to "ttdata" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTDATA_H #define TT_TTDATA_H /* object structure */ #ifndef s_ttdata /** * ttdata: wrapper for user-defined data in ttcomponents; * this class is derived from ttcomponent to allow creating listeners on it, * but this implementation has the undesired side effect that you can * TT{Set,Get,Unset}KeyData_ttcomponent also on ttdatas themselves. */ struct s_ttdata; typedef struct s_ttdata *ttdata; #endif /* s_ttdata */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttdata */ extern ttclass TTClass_ttdata; /* ttdata methods */ /** set the data in ttdata `o' */ ttbyte TTSetData_ttdata(ttdata o, ttany data); /* TTGet*_ttdata and TTSet*_ttdata methods */ /** get `component' of ttdata `o' */ ttcomponent TTGetComponent_ttdata(TT_ARG_READ ttdata o); /** get `key_len' of ttdata `o' */ ttopaque TTGetKeyLen_ttdata(TT_ARG_READ ttdata o); /** get `key' of ttdata `o' */ TT_ARG_ARRAY((_F(key_len))) ttbyte *TTGetKey_ttdata(TT_ARG_READ ttdata o); /** get `data' of ttdata `o' */ ttany TTGetData_ttdata(TT_ARG_READ ttdata o); /** set `data' of ttdata `o' */ ttbyte TTSetData_ttdata(ttdata o, ttany data); #endif /* TT_TTDATA_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttevent.h���������������������������������������������������������������������0000664�0000000�0000000�00000003261�13775351206�0016330�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttevent.h -- public header for libTT declarations related to "ttevent" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTEVENT_H #define TT_TTEVENT_H /* object structure */ #ifndef s_ttevent /** ttevent: The common part of all events. */ struct s_ttevent; typedef struct s_ttevent *ttevent; #endif /* s_ttevent */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttevent */ extern ttclass TTClass_ttevent; /* ttevent methods */ /** create a ttevent with given `evtype', `evcode' and `evflags' */ ttevent TTCreate_ttevent(ttuint evtype, ttuint evcode, ttuint evflags); /** fire the ttevent `ev' on ttcomponent `o' */ void TTFire_ttevent(TT_ARG_DIE ttevent ev, TT_ARG_READ ttcomponent o); /* TTGet*_ttevent and TTSet*_ttevent methods */ /** get `component' of ttevent `o' */ ttcomponent TTGetComponent_ttevent(TT_ARG_READ ttevent o); /** get `evtype' of ttevent `o' */ ttuint TTGetEvtype_ttevent(TT_ARG_READ ttevent o); /** get `evcode' of ttevent `o' */ ttuint TTGetEvcode_ttevent(TT_ARG_READ ttevent o); /** get `evflags' of ttevent `o' */ ttuint TTGetEvflags_ttevent(TT_ARG_READ ttevent o); /** get `prev' of ttevent `o' */ ttevent TTGetPrev_ttevent(TT_ARG_READ ttevent o); /** get `next' of ttevent `o' */ ttevent TTGetNext_ttevent(TT_ARG_READ ttevent o); #endif /* TT_TTEVENT_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/tteventbig.h������������������������������������������������������������������0000664�0000000�0000000�00000005003�13775351206�0017006�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * tteventbig.h -- public header for libTT declarations related to "tteventbig" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTEVENTBIG_H #define TT_TTEVENTBIG_H /* object structure */ #ifndef s_tteventbig /** tteventbig: The union of all events. */ struct s_tteventbig; typedef struct s_tteventbig *tteventbig; #endif /* s_tteventbig */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of tteventbig */ extern ttclass TTClass_tteventbig; /* tteventbig methods */ /** create a tteventbig with given fields */ tteventbig TTCreate8_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttshort x, ttshort y, ttshort w, ttshort h, ttany value, ttany old_value, ttopaque data_len, TT_ARG_READ TT_ARG_ARRAY((_P(10))) ttbyte *data); /** create a tteventbig with given fields */ tteventbig TTCreate4_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttshort x, ttshort, ttshort w, ttshort h); /** create a tteventbig with given fields */ tteventbig TTCreate4s4_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttany value, ttany old_value, ttopaque data_len, TT_ARG_READ TT_ARG_ARRAY((_P(6))) ttbyte *data); /* TTGet*_tteventbig and TTSet*_tteventbig methods */ /** get `x' of tteventbig `o' */ ttshort TTGetX_tteventbig(TT_ARG_READ tteventbig o); /** get `y' of tteventbig `o' */ ttshort TTGetY_tteventbig(TT_ARG_READ tteventbig o); /** get `w' of tteventbig `o' */ ttshort TTGetW_tteventbig(TT_ARG_READ tteventbig o); /** get `h' of tteventbig `o' */ ttshort TTGetH_tteventbig(TT_ARG_READ tteventbig o); /** get `value' of tteventbig `o' */ ttany TTGetValue_tteventbig(TT_ARG_READ tteventbig o); /** get `old_value' of tteventbig `o' */ ttany TTGetOldValue_tteventbig(TT_ARG_READ tteventbig o); /** get `data_len' of tteventbig `o' */ ttopaque TTGetDataLen_tteventbig(TT_ARG_READ tteventbig o); /** get `data' of tteventbig `o' */ TT_ARG_READ TT_ARG_ARRAY((_F(data_len))) ttbyte *TTGetData_tteventbig(TT_ARG_READ tteventbig o); #endif /* TT_TTEVENTBIG_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/tteventmask.h�����������������������������������������������������������������0000664�0000000�0000000�00000006133�13775351206�0017205�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * tteventmask.h -- public header for libTT declarations related to "tteventmask" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTEVENTMASK_H #define TT_TTEVENTMASK_H /* object structure */ #ifndef s_tteventmask /** tteventmask: a set of ttbitmasks used to block * events matching certain criteria */ struct s_tteventmask; typedef struct s_tteventmask *tteventmask; #endif /* s_tteventmask */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of tteventmask */ extern ttclass TTClass_tteventmask; /* tteventmask methods */ /** create a tteventmask with given fields and swallow the bitmasks */ tteventmask TTCreateB_tteventmask(TT_ARG_DIE ttbitmask evtype_mask, TT_ARG_DIE ttbitmask evcode_mask, TT_ARG_DIE ttbitmask component_mask); /** create a tteventmask with a copy of given bitbasks */ tteventmask TTCreateB2_tteventmask(TT_ARG_READ ttbitmask evtype_mask, TT_ARG_READ ttbitmask evcode_mask, TT_ARG_READ ttbitmask component_mask); /** set the mask of blocked event types and swallow the evtype bitmask */ ttbyte TTSetEvtypeMask_tteventmask(tteventmask o, TT_ARG_DIE ttbitmask evtype_mask); /** set the mask of blocked event codes and swallow the evtype bitmask */ ttbyte TTSetEvcodeMask_tteventmask(tteventmask o, TT_ARG_DIE ttbitmask evcode_mask); /** set the mask of blocked event types and swallow the evtype bitmask */ ttbyte TTSetComponentMask_tteventmask(tteventmask o, TT_ARG_DIE ttbitmask component_mask); /** set the truth table to combine masks of evtypes, evcodes and components of blocked events */ ttbyte TTSetTruthTable_tteventmask(tteventmask o, ttuint truth_table); /* TTGet*_tteventmask and TTSet*_tteventmask methods */ /** get `evtype_mask' of tteventmask `o' */ ttbitmask TTGetEvtypeMask_tteventmask(TT_ARG_READ tteventmask o); /** set `evtype_mask' of tteventmask `o' */ ttbyte TTSetEvtypeMask_tteventmask(tteventmask o, ttbitmask evtype_mask); /** get `evcode_mask' of tteventmask `o' */ ttbitmask TTGetEvcodeMask_tteventmask(TT_ARG_READ tteventmask o); /** set `evcode_mask' of tteventmask `o' */ ttbyte TTSetEvcodeMask_tteventmask(tteventmask o, ttbitmask evcode_mask); /** get `component_mask' of tteventmask `o' */ ttbitmask TTGetComponentMask_tteventmask(TT_ARG_READ tteventmask o); /** set `component_mask' of tteventmask `o' */ ttbyte TTSetComponentMask_tteventmask(tteventmask o, ttbitmask component_mask); /** get `truth_table' of tteventmask `o' */ ttuint TTGetTruthTable_tteventmask(TT_ARG_READ tteventmask o); /** set `truth_table' of tteventmask `o' */ ttbyte TTSetTruthTable_tteventmask(tteventmask o, ttuint truth_table); #endif /* TT_TTEVENTMASK_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttfield.h���������������������������������������������������������������������0000664�0000000�0000000�00000004306�13775351206�0016273�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttfield.h -- public header for libTT declarations related to "ttfield" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTFIELD_H #define TT_TTFIELD_H /* object structure */ #ifndef s_ttfield /** ttfield: a reflective class, represents a field in an object */ struct s_ttfield; typedef struct s_ttfield *ttfield; #endif /* s_ttfield */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttfield */ extern ttclass TTClass_ttfield; /* ttfield methods */ /** get the field with given name */ TT_ARG_READ ttfield TTGet_ttfield(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *name); /** get the value of field `f' in object `o' */ ttbyte TTGetValue_ttfield(TT_ARG_READ ttfield f, TT_ARG_READ ttobject o, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *value); /** set the value of field `f' in object `o' */ ttbyte TTSetValue_ttfield(TT_ARG_READ ttfield f, ttobject o, TT_ARG_READ TT_ARG_ARRAY((1)) ttarg *value); /** change the value of field `f' in object `o' */ ttbyte TTChangeValue_ttfield(TT_ARG_READ ttfield f, ttobject o, ttany nand_value, ttany xor_value); /** return the ttuint representing field `f' in evcodes */ ttopaque TTToEvcode_ttfield(TT_ARG_READ ttfield f); /** return the field corresponding to ttuint `i' in evcodes */ TT_ARG_READ ttfield TTFromEvcode_ttfield(ttopaque i); /** get the ttuint representing field `f' in evcodes given its name */ ttopaque TTGetEvcode_ttfield(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *name); /* TTGet*_ttfield and TTSet*_ttfield methods */ /** get `name_len' of ttfield `o' */ ttopaque TTGetNameLen_ttfield(TT_ARG_READ ttfield o); /** get `name' of ttfield `o' */ TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *TTGetName_ttfield(TT_ARG_READ ttfield o); /** get `type' of ttfield `o' */ ttopaque TTGetType_ttfield(TT_ARG_READ ttfield o); #endif /* TT_TTFIELD_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttframe.h���������������������������������������������������������������������0000664�0000000�0000000�00000002444�13775351206�0016303�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttframe.h -- public header for libTT declarations related to "ttframe" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTFRAME_H #define TT_TTFRAME_H /* object structure */ #ifndef s_ttframe /** ttframe: a toplevel window */ struct s_ttframe; typedef struct s_ttframe *ttframe; #endif /* s_ttframe */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttframe */ extern ttclass TTClass_ttframe; /* ttframe methods */ /** set the menubar of the ttframe `o' */ ttbyte TTSetMenubar_ttframe(ttframe o, TT_ARG_READ ttmenubar m); /** create a ttframe with given title */ ttframe TTCreate_ttframe(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *title); /* TTGet*_ttframe and TTSet*_ttframe methods */ /** get `menubar' of ttframe `o' */ ttmenubar TTGetMenubar_ttframe(TT_ARG_READ ttframe o); /** set `menubar' of ttframe `o' */ ttbyte TTSetMenubar_ttframe(ttframe o, ttmenubar menubar); #endif /* TT_TTFRAME_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttlabel.h���������������������������������������������������������������������0000664�0000000�0000000�00000003240�13775351206�0016263�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttlabel.h -- public header for libTT declarations related to "ttlabel" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTLABEL_H #define TT_TTLABEL_H /* object structure */ #ifndef s_ttlabel /** ttlabel: A simple text label */ struct s_ttlabel; typedef struct s_ttlabel *ttlabel; #endif /* s_ttlabel */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttlabel */ extern ttclass TTClass_ttlabel; /* ttlabel methods */ /** set the text of the ttlabel `o' and swallow `text' */ void TTSetFontD_ttlabel(ttlabel o, ttopaque text_len, TT_ARG_DIE TT_ARG_ARRAY((_P(2))) ttfont *text); /** set the text of the ttlabel `o' to a copy of `text' */ ttbyte TTSetFont_ttlabel(ttlabel o, TT_ARG_READ TT_ARG_ARRAY_Z ttfont *text); /** set the text of the ttlabel `o' to a copy of `text' */ ttbyte TTSetText_ttlabel(ttlabel o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *text); /** create a ttlabel with a copy of given text */ ttlabel TTCreate_ttlabel(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *text); /* TTGet*_ttlabel and TTSet*_ttlabel methods */ /** get `text_len' of ttlabel `o' */ ttopaque TTGetTextLen_ttlabel(TT_ARG_READ ttlabel o); /** get `text' of ttlabel `o' */ TT_ARG_ARRAY((_F(text_len))) ttfont *TTGetText_ttlabel(TT_ARG_READ ttlabel o); #endif /* TT_TTLABEL_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttlayout.h��������������������������������������������������������������������0000664�0000000�0000000�00000002133�13775351206�0016521�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttlayout.h -- public header for libTT declarations related to "ttlayout" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTLAYOUT_H #define TT_TTLAYOUT_H /* object structure */ #ifndef s_ttlayout /** ttlayout: The superclass of all layouts */ struct s_ttlayout; typedef struct s_ttlayout *ttlayout; #endif /* s_ttlayout */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttlayout */ extern ttclass TTClass_ttlayout; /* ttlayout methods */ /** set the current widget */ /** apply layout to the contents of current widget */ /* TTGet*_ttlayout and TTSet*_ttlayout methods */ /** get `widget' of ttlayout `o' */ ttwidget TTGetWidget_ttlayout(TT_ARG_READ ttlayout o); #endif /* TT_TTLAYOUT_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttlistener.h������������������������������������������������������������������0000664�0000000�0000000�00000011505�13775351206�0017034�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttlistener.h -- public header for libTT declarations related to "ttlistener" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTLISTENER_H #define TT_TTLISTENER_H /* object structure */ #ifndef s_ttlistener /** ttlistener: A ttcallback derivative for user-set event-based callbacks */ struct s_ttlistener; typedef struct s_ttlistener *ttlistener; #endif /* s_ttlistener */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttlistener */ extern ttclass TTClass_ttlistener; /* ttlistener methods */ /** create a ttlistener for a ttcomponent with given fields */ ttlistener TTCreate_ttlistener(ttcomponent o, ttuint evtype, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg); /** create a ttlistener for a ttcomponent with given fields */ ttlistener TTCreateE_ttlistener(ttcomponent o, TT_ARG_DIE ttevent ev, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg); /** create a ttlistener for a ttcomponent with given fields */ ttlistener TTCreateR_ttlistener(ttcomponent o, TT_ARG_DIE ttevent ev, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttopaque arg_component_n, ttopaque arg_event_n, TT_ARG_DIE ttvector args); /** create a ttlistener for a ttcomponent "del" ttevent with given fields */ ttlistener TTCreateDel_ttlistener(ttcomponent o, ttuint lflags, TT_ARG_READ ttlistener_fn function); /** create a ttlistener for a ttcomponent "askclose" ttevent with given fields */ ttlistener TTCreateAskclose_ttlistener(ttcomponent o, ttuint lflags, TT_ARG_READ ttlistener_fn function); /** create a ttlistener for a ttcomponent "key" ttevent with given fields */ ttlistener TTCreateKey_ttlistener(ttcomponent o, ttuint evcode, ttuint evflags, ttuint lflags, TT_ARG_READ ttlistener_fn function); /** create a ttlistener for a ttcomponent "mouse" ttevent with given fields */ ttlistener TTCreateMouse_ttlistener(ttcomponent o, ttuint evcode, ttuint evflags, ttuint lflags, TT_ARG_READ ttlistener_fn function); /** create a ttlistener for a ttcomponent "activate" ttevent with given fields */ ttlistener TTCreateActivate_ttlistener(ttcomponent o, ttuint lflags, TT_ARG_READ ttlistener_fn function); /** create a ttlistener for a ttcomponent "value change" ttevent with given fields */ ttlistener TTCreateChange_ttlistener(ttcomponent o, ttuint evcode, ttuint lflags, TT_ARG_READ ttlistener_fn function); /** create a ttlistener for a ttcomponent "key_data value change" ttevent with given fields * (WARNING: listener will be called with `ttdata' as event component!)*/ ttlistener TTCreateKeyData_ttlistener(ttcomponent o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *key, ttuint lflags, TT_ARG_READ ttlistener_fn function); /** create a ttlistener for a ttcomponent "expose" ttevent with given fields */ ttlistener TTCreateExpose_ttlistener(ttcomponent o, ttuint lflags, TT_ARG_READ ttlistener_fn function); /** add `o' to the ttcomponent `c' */ void TTAddTo_ttlistener(ttlistener o, ttcomponent c); /** remove `o' from the ttcomponent it is attached to */ void TTRemove_ttlistener(ttlistener o); /** set the function args of the listener `o' */ ttbyte TTSetArgsR_ttlistener(ttlistener o, TT_ARG_DIE ttvector args); /** set the mask of blocked events to be used while listener `o' is being called */ ttbyte TTSetEventMask_ttlistener(ttlistener o, TT_ARG_DIE tteventmask event_mask); /* TTGet*_ttlistener and TTSet*_ttlistener methods */ /** get `event' of ttlistener `o' */ ttevent TTGetEvent_ttlistener(TT_ARG_READ ttlistener o); /** get `function' of ttlistener `o' */ ttlistener_fn TTGetFunction_ttlistener(TT_ARG_READ ttlistener o); /** get `arg_component_n' of ttlistener `o' */ ttopaque TTGetArgComponentN_ttlistener(TT_ARG_READ ttlistener o); /** get `arg_event_n' of ttlistener `o' */ ttopaque TTGetArgEventN_ttlistener(TT_ARG_READ ttlistener o); /** get `args' of ttlistener `o' */ ttvector TTGetArgs_ttlistener(TT_ARG_READ ttlistener o); /** get `event_mask' of ttlistener `o' */ tteventmask TTGetEventMask_ttlistener(TT_ARG_READ ttlistener o); /** set `event_mask' of ttlistener `o' */ ttbyte TTSetEventMask_ttlistener(ttlistener o, tteventmask event_mask); #endif /* TT_TTLISTENER_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttmenu.h����������������������������������������������������������������������0000664�0000000�0000000�00000001755�13775351206�0016161�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttmenu.h -- public header for libTT declarations related to "ttmenu" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTMENU_H #define TT_TTMENU_H /* object structure */ #ifndef s_ttmenu /** ttmenu: a line in a menu pointing to a sub menu */ struct s_ttmenu; typedef struct s_ttmenu *ttmenu; #endif /* s_ttmenu */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttmenu */ extern ttclass TTClass_ttmenu; /* ttmenu methods */ /* TTGet*_ttmenu and TTSet*_ttmenu methods */ /** get `menubar' of ttmenu `o' */ ttmenubar TTGetMenubar_ttmenu(TT_ARG_READ ttmenu o); #endif /* TT_TTMENU_H */ �������������������twin-0.9.0/include/TT/ttmenubar.h�������������������������������������������������������������������0000664�0000000�0000000�00000002015�13775351206�0016634�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttmenubar.h -- public header for libTT declarations related to "ttmenubar" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTMENUBAR_H #define TT_TTMENUBAR_H /* object structure */ #ifndef s_ttmenubar /** ttmenubar: a complete menu bar */ struct s_ttmenubar; typedef struct s_ttmenubar *ttmenubar; #endif /* s_ttmenubar */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttmenubar */ extern ttclass TTClass_ttmenubar; /* ttmenubar methods */ /** get the default ttmenubar used by ttwidget:s */ ttmenubar TTGetDefault_ttmenubar(void); /* TTGet*_ttmenubar and TTSet*_ttmenubar methods */ #endif /* TT_TTMENUBAR_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttmenuitem.h������������������������������������������������������������������0000664�0000000�0000000�00000002243�13775351206�0017031�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttmenuitem.h -- public header for libTT declarations related to "ttmenuitem" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTMENUITEM_H #define TT_TTMENUITEM_H /* object structure */ #ifndef s_ttmenuitem /** ttmenuitem: a simple line in a menu */ struct s_ttmenuitem; typedef struct s_ttmenuitem *ttmenuitem; #endif /* s_ttmenuitem */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttmenuitem */ extern ttclass TTClass_ttmenuitem; /* ttmenuitem methods */ /* TTGet*_ttmenuitem and TTSet*_ttmenuitem methods */ /** get `name_len' of ttmenuitem `o' */ ttopaque TTGetNameLen_ttmenuitem(TT_ARG_READ ttmenuitem o); /** get `name' of ttmenuitem `o' */ TT_ARG_ARRAY((_F(name_len))) ttbyte *TTGetName_ttmenuitem(TT_ARG_READ ttmenuitem o); #endif /* TT_TTMENUITEM_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttmethod.h��������������������������������������������������������������������0000664�0000000�0000000�00000010360�13775351206�0016465�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttmethod.h -- public header for libTT declarations related to "ttmethod" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTMETHOD_H #define TT_TTMETHOD_H /* object structure */ #ifndef s_ttmethod /** * ttmethod: a reflective class, represents a method in an object. * It allows runtime inspecting the name, argument types and return types * of a method (i.e. almost any libTT function) and allows calling it. * * There are 5 different ways to invoke a method using ttmethod objects: * TTCall{A,L,R,V,Y}_ttmethod(). * Each one takes the method to call, the number of arguments you are passing to it * (but passing more arguments than needed is harmless), and respectively, * a (ttarg []), C variadic arg list, ttvector, (va_list *) or (tany []), of the arguments. * * A few libTT functions are not represented by ttmethods for various reasons, * thus cannot be inspected nor called using ttmethods: * * 1) functions not related to objects: * TTCheckMagic(), TTOpen(), TTReopen(), TTClose(), TTCloseQuickNDirty(), * TTConnectionFd(), TTInPanic(), TTFlush(), TTTimidFlush(), TTSync(), * TTConfigAllocMem(), TTAllocMem(), TTReallocMem(), TTFreeMem(), * TTMainLoop(), TTMainLoopOnce(), TTExitMainLoop() * * 2) variadic functions: * TTCreateL_ttvector(), TTCallL_ttmethod() * */ struct s_ttmethod; typedef struct s_ttmethod *ttmethod; #endif /* s_ttmethod */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttmethod */ extern ttclass TTClass_ttmethod; /* ttmethod methods */ /** get the method with given name */ TT_ARG_READ ttmethod TTGet_ttmethod(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *name); /** get the method with given address */ TT_ARG_READ ttmethod TTGetByAddress_ttmethod(TT_ARG_READ ttfunction_fn address); /** get the needed array length for the given method arg */ ttopaque TTGetArraySizeA_ttmethod(TT_ARG_READ ttmethod m, ttopaque arg_array_n, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttarg *args); /** check whether the given args have correct array lengths for the method */ ttbyte TTCheckArraySizesA_ttmethod(TT_ARG_READ ttmethod m, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttarg *args); /** invoke the method `m' with given args */ ttbyte TTCallA_ttmethod(TT_ARG_READ ttmethod m, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *return_value, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttarg *args); /** invoke the method `m' with given args */ ttbyte TTCallL_ttmethod(TT_ARG_READ ttmethod m, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *return_value, ttopaque args_n, ...); /** invoke the method `m' with given args */ ttbyte TTCallR_ttmethod(TT_ARG_READ ttmethod m, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *return_value, TT_ARG_READ ttvector args); /** invoke the method `m' with given args */ ttbyte TTCallV_ttmethod(TT_ARG_READ ttmethod m, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *return_value, ttopaque args_n, TT_ARG_ARRAY((1)) va_list *args); /** invoke the method `m' with given args */ ttbyte TTCallY_ttmethod(TT_ARG_READ ttmethod m, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *return_value, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttany *args); /* TTGet*_ttmethod and TTSet*_ttmethod methods */ /** get `name_len' of ttmethod `o' */ ttopaque TTGetNameLen_ttmethod(TT_ARG_READ ttmethod o); /** get `name' of ttmethod `o' */ TT_ARG_READ TT_ARG_ARRAY((_F(name_len))) ttbyte *TTGetName_ttmethod(TT_ARG_READ ttmethod o); /** get `address' of ttmethod `o' */ ttfunction_fn TTGetAddress_ttmethod(TT_ARG_READ ttmethod o); /** get `return_type' of ttmethod `o' */ ttopaque TTGetReturnType_ttmethod(TT_ARG_READ ttmethod o); /** get `parameter_type' of ttmethod `o' */ ttvector TTGetParameterType_ttmethod(TT_ARG_READ ttmethod o); #endif /* TT_TTMETHOD_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttnative.h��������������������������������������������������������������������0000664�0000000�0000000�00000002542�13775351206�0016476�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttnative.h -- public header for libTT declarations related to "ttnative" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTNATIVE_H #define TT_TTNATIVE_H /* object structure */ #ifndef s_ttnative /** ttnative: class representing all server visible objects not created by us */ struct s_ttnative; typedef struct s_ttnative *ttnative; #endif /* s_ttnative */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttnative */ extern ttclass TTClass_ttnative; /* ttnative methods */ /** get the ttnative `root' object into which each top level ttvisible is added */ ttnative TTGetRoot_ttnative(void); /** get `w' (width) field of given ttnative */ ttshort TTGetW_ttnative(TT_ARG_READ ttnative o); /** get `h' (height) field of given ttnative */ ttshort TTGetH_ttnative(TT_ARG_READ ttnative o); /** create a ttnative with given fields */ ttnative TTCreate_ttnative(ttany native_value); /* TTGet*_ttnative and TTSet*_ttnative methods */ #endif /* TT_TTNATIVE_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttobj.h�����������������������������������������������������������������������0000664�0000000�0000000�00000002601�13775351206�0015756�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttobj.h -- public header for libTT declarations related to "ttobj" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTOBJ_H #define TT_TTOBJ_H /* object structure */ #ifndef s_ttobj /** ttobj: The base class of all objects */ struct s_ttobj; typedef struct s_ttobj *ttobj; #endif /* s_ttobj */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttobj */ extern ttclass TTClass_ttobj; /* ttobj methods */ /** get `which' field value from ttobj `o' */ ttbyte TTGetField_ttobj(TT_ARG_READ ttobj o, TT_ARG_READ ttfield which, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *value); /** set `which' field to `value' into ttobj `o' */ ttbyte TTSetField_ttobj(ttobj o, TT_ARG_READ ttfield which, TT_ARG_READ TT_ARG_ARRAY((1)) ttarg *value); /** change `which' field value into ttobj `o' */ ttbyte TTChangeField_ttobj(ttobj o, TT_ARG_READ ttfield which, ttany nand_value, ttany xor_value); /* TTGet*_ttobj and TTSet*_ttobj methods */ #endif /* TT_TTOBJ_H */ �������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttobject.h��������������������������������������������������������������������0000664�0000000�0000000�00000003353�13775351206�0016457�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttobject.h -- public header for libTT declarations related to "ttobject" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTOBJECT_H #define TT_TTOBJECT_H /* object structure */ #ifndef s_ttobject struct s_ttobject; typedef struct s_ttobject *ttobject; #endif /* s_ttobject */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttobject */ extern ttclass TTClass_ttobject; /* ttobject methods */ /** increase by 1 the reference count of object `o' */ void TTRef_ttobject(ttobject o); /** decrease by 1 the reference count of object `o' */ void TTUnref_ttobject(ttobject o); /** set `user_data' of object `o' */ ttbyte TTSetUserData_ttobject(ttobject o, ttany user_data); /* TTGet*_ttobject and TTSet*_ttobject methods */ /** get `refcount' of ttobject `o' */ ttopaque TTGetRefcount_ttobject(TT_ARG_READ ttobject o); /** get `oflags' of ttobject `o' */ ttuint TTGetOflags_ttobject(TT_ARG_READ ttobject o); /** get `user_data' of ttobject `o' */ ttany TTGetUserData_ttobject(TT_ARG_READ ttobject o); /** set `user_data' of ttobject `o' */ ttbyte TTSetUserData_ttobject(ttobject o, ttany user_data); /** get `events_inprogress' of ttobject `o' */ ttopaque TTGetEventsInprogress_ttobject(TT_ARG_READ ttobject o); /** get `events_informed' of ttobject `o' */ ttopaque TTGetEventsInformed_ttobject(TT_ARG_READ ttobject o); #endif /* TT_TTOBJECT_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttprogressbar.h���������������������������������������������������������������0000664�0000000�0000000�00000002143�13775351206�0017536�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttprogressbar.h -- public header for libTT declarations related to "ttprogressbar" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTPROGRESSBAR_H #define TT_TTPROGRESSBAR_H /* object structure */ #ifndef s_ttprogressbar /** ttprogressbar: a percentage completion bar */ struct s_ttprogressbar; typedef struct s_ttprogressbar *ttprogressbar; #endif /* s_ttprogressbar */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttprogressbar */ extern ttclass TTClass_ttprogressbar; /* ttprogressbar methods */ /** create a ttprogressbar with given fields */ ttprogressbar TTCreate_ttprogressbar(ttbyte orientation); /* TTGet*_ttprogressbar and TTSet*_ttprogressbar methods */ #endif /* TT_TTPROGRESSBAR_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttradiobutton.h���������������������������������������������������������������0000664�0000000�0000000�00000003446�13775351206�0017546�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttradiobutton.h -- public header for libTT declarations related to "ttradiobutton" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTRADIOBUTTON_H #define TT_TTRADIOBUTTON_H /* object structure */ #ifndef s_ttradiobutton /** ttradiobutton: a two-state mutual-exclusion button */ struct s_ttradiobutton; typedef struct s_ttradiobutton *ttradiobutton; #endif /* s_ttradiobutton */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttradiobutton */ extern ttclass TTClass_ttradiobutton; /* ttradiobutton methods */ /** add the ttradiobutton `o' to the ttbuttongroup `g' */ void TTAddToGroup_ttradiobutton(ttradiobutton o, ttbuttongroup g); /** remove the ttradiobutton `o' from its ttbuttongroup */ void TTRemoveFromGroup_ttradiobutton(ttradiobutton o); /** create a ttradiobutton with given text */ ttradiobutton TTCreate_ttradiobutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2), *, _P(3))) ttbyte *text); /* TTGet*_ttradiobutton and TTSet*_ttradiobutton methods */ /** get `group' of ttradiobutton `o' */ ttbuttongroup TTGetGroup_ttradiobutton(TT_ARG_READ ttradiobutton o); /** get `group_prev' of ttradiobutton `o' */ ttradiobutton TTGetGroupPrev_ttradiobutton(TT_ARG_READ ttradiobutton o); /** get `group_next' of ttradiobutton `o' */ ttradiobutton TTGetGroupNext_ttradiobutton(TT_ARG_READ ttradiobutton o); #endif /* TT_TTRADIOBUTTON_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttradiomenuitem.h�������������������������������������������������������������0000664�0000000�0000000�00000002046�13775351206�0020051�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttradiomenuitem.h -- public header for libTT declarations related to "ttradiomenuitem" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTRADIOMENUITEM_H #define TT_TTRADIOMENUITEM_H /* object structure */ #ifndef s_ttradiomenuitem /** ttradiomenuitem: a radio (mutual-exclusion) line in a menu */ struct s_ttradiomenuitem; typedef struct s_ttradiomenuitem *ttradiomenuitem; #endif /* s_ttradiomenuitem */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttradiomenuitem */ extern ttclass TTClass_ttradiomenuitem; /* ttradiomenuitem methods */ /* TTGet*_ttradiomenuitem and TTSet*_ttradiomenuitem methods */ #endif /* TT_TTRADIOMENUITEM_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttscrollbar.h�����������������������������������������������������������������0000664�0000000�0000000�00000002327�13775351206�0017174�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttscrollbar.h -- public header for libTT declarations related to "ttscrollbar" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTSCROLLBAR_H #define TT_TTSCROLLBAR_H /* object structure */ #ifndef s_ttscrollbar /** ttscrollbar: a normal, interactive scroll bar */ struct s_ttscrollbar; typedef struct s_ttscrollbar *ttscrollbar; #endif /* s_ttscrollbar */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttscrollbar */ extern ttclass TTClass_ttscrollbar; /* ttscrollbar methods */ /** create a ttscrollbar with given fields */ ttscrollbar TTCreate1_ttscrollbar(ttbyte orientation); /** create a ttscrollbar with given fields */ ttscrollbar TTCreate4_ttscrollbar(ttbyte orientation, ttint size, ttint real_size, ttint view_size); /* TTGet*_ttscrollbar and TTSet*_ttscrollbar methods */ #endif /* TT_TTSCROLLBAR_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttscroller.h������������������������������������������������������������������0000664�0000000�0000000�00000002307�13775351206�0017034�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttscroller.h -- public header for libTT declarations related to "ttscroller" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTSCROLLER_H #define TT_TTSCROLLER_H /* object structure */ #ifndef s_ttscroller /** ttscroller: a scrollable container; * you can put any ttwidget inside its scrollpane */ struct s_ttscroller; typedef struct s_ttscroller *ttscroller; #endif /* s_ttscroller */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttscroller */ extern ttclass TTClass_ttscroller; /* ttscroller methods */ /** create a ttscroller with given size */ ttscroller TTCreate_ttscroller(ttshort w, ttshort h); /* TTGet*_ttscroller and TTSet*_ttscroller methods */ /** get `scrollpane' of ttscroller `o' */ ttscrollpane TTGetScrollpane_ttscroller(TT_ARG_READ ttscroller o); #endif /* TT_TTSCROLLER_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttscrollpane.h����������������������������������������������������������������0000664�0000000�0000000�00000003560�13775351206�0017353�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttscrollpane.h -- public header for libTT declarations related to "ttscrollpane" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTSCROLLPANE_H #define TT_TTSCROLLPANE_H /* object structure */ #ifndef s_ttscrollpane /** ttscrollpane: a scrollable widget; * it keeps track of its wl and hl * from the ttwidgets you put inside it; * also used as the scrollpane of a ttscroller. */ struct s_ttscrollpane; typedef struct s_ttscrollpane *ttscrollpane; #endif /* s_ttscrollpane */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttscrollpane */ extern ttclass TTClass_ttscrollpane; /* ttscrollpane methods */ /** create a ttscrollpane with given size */ ttscrollpane TTCreate_ttscrollpane(ttshort w, ttshort h); /** set the x scrollbar the ttscrollpane `o' is connected to */ ttbyte TTSetBarX_ttscrollpane(ttscrollpane o, ttscrollbar bar_x); /** set the y scrollbar the ttscrollpane `o' is connected to */ ttbyte TTSetBarY_ttscrollpane(ttscrollpane o, ttscrollbar bar_y); /* TTGet*_ttscrollpane and TTSet*_ttscrollpane methods */ /** get `bar_x' of ttscrollpane `o' */ ttscrollbar TTGetBarX_ttscrollpane(TT_ARG_READ ttscrollpane o); /** set `bar_x' of ttscrollpane `o' */ ttbyte TTSetBarX_ttscrollpane(ttscrollpane o, ttscrollbar bar_x); /** get `bar_y' of ttscrollpane `o' */ ttscrollbar TTGetBarY_ttscrollpane(TT_ARG_READ ttscrollpane o); /** set `bar_y' of ttscrollpane `o' */ ttbyte TTSetBarY_ttscrollpane(ttscrollpane o, ttscrollbar bar_y); #endif /* TT_TTSCROLLPANE_H */ ������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttslider.h��������������������������������������������������������������������0000664�0000000�0000000�00000003701�13775351206�0016470�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttslider.h -- public header for libTT declarations related to "ttslider" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTSLIDER_H #define TT_TTSLIDER_H /* object structure */ #ifndef s_ttslider /** ttslider: a sliding knob within a bounded interval */ struct s_ttslider; typedef struct s_ttslider *ttslider; #endif /* s_ttslider */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttslider */ extern ttclass TTClass_ttslider; /* ttslider methods */ /** set the slide minimum of the ttslider `o' */ ttbyte TTSetSlideMin_ttslider(ttslider o, ttint slide_min); /** set the slide maximum of the ttslider `o' */ ttbyte TTSetSlideMax_ttslider(ttslider o, ttint slide_max); /** set the slide position of the ttslider `o' */ ttbyte TTSetSlideValue_ttslider(ttslider o, ttint slide_value); /** create a ttslider with given fields */ ttslider TTCreate_ttslider(ttbyte orientation, ttint real_size); /* TTGet*_ttslider and TTSet*_ttslider methods */ /** get `slide_min' of ttslider `o' */ ttint TTGetSlideMin_ttslider(TT_ARG_READ ttslider o); /** set `slide_min' of ttslider `o' */ ttbyte TTSetSlideMin_ttslider(ttslider o, ttint slide_min); /** get `slide_max' of ttslider `o' */ ttint TTGetSlideMax_ttslider(TT_ARG_READ ttslider o); /** set `slide_max' of ttslider `o' */ ttbyte TTSetSlideMax_ttslider(ttslider o, ttint slide_max); /** get `slide_value' of ttslider `o' */ ttint TTGetSlideValue_ttslider(TT_ARG_READ ttslider o); /** set `slide_value' of ttslider `o' */ ttbyte TTSetSlideValue_ttslider(ttslider o, ttint slide_value); #endif /* TT_TTSLIDER_H */ ���������������������������������������������������������������twin-0.9.0/include/TT/tttextarea.h������������������������������������������������������������������0000664�0000000�0000000�00000001730�13775351206�0017023�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * tttextarea.h -- public header for libTT declarations related to "tttextarea" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTTEXTAREA_H #define TT_TTTEXTAREA_H /* object structure */ #ifndef s_tttextarea /** tttextarea: a multi line user editable text-only widget */ struct s_tttextarea; typedef struct s_tttextarea *tttextarea; #endif /* s_tttextarea */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of tttextarea */ extern ttclass TTClass_tttextarea; /* tttextarea methods */ /* TTGet*_tttextarea and TTSet*_tttextarea methods */ #endif /* TT_TTTEXTAREA_H */ ����������������������������������������twin-0.9.0/include/TT/tttextfield.h�����������������������������������������������������������������0000664�0000000�0000000�00000001751�13775351206�0017201�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * tttextfield.h -- public header for libTT declarations related to "tttextfield" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTTEXTFIELD_H #define TT_TTTEXTFIELD_H /* object structure */ #ifndef s_tttextfield /** tttextfield: a single line user editable text-only widget */ struct s_tttextfield; typedef struct s_tttextfield *tttextfield; #endif /* s_tttextfield */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of tttextfield */ extern ttclass TTClass_tttextfield; /* tttextfield methods */ /* TTGet*_tttextfield and TTSet*_tttextfield methods */ #endif /* TT_TTTEXTFIELD_H */ �����������������������twin-0.9.0/include/TT/tttheme.h���������������������������������������������������������������������0000664�0000000�0000000�00000002304�13775351206�0016306�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * tttheme.h -- public header for libTT declarations related to "tttheme" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTTHEME_H #define TT_TTTHEME_H /* object structure */ #ifndef s_tttheme /** tttheme: the look-n-feel of the application */ struct s_tttheme; typedef struct s_tttheme *tttheme; #endif /* s_tttheme */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of tttheme */ extern ttclass TTClass_tttheme; /* tttheme methods */ /** get the default tttheme used by ttvisible:s */ tttheme TTGetDefault_tttheme(void); /* TTGet*_tttheme and TTSet*_tttheme methods */ /** get `name_len' of tttheme `o' */ ttopaque TTGetNameLen_tttheme(TT_ARG_READ tttheme o); /** get `name' of tttheme `o' */ TT_ARG_ARRAY((_F(name_len))) ttbyte *TTGetName_tttheme(TT_ARG_READ tttheme o); #endif /* TT_TTTHEME_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/tttimer.h���������������������������������������������������������������������0000664�0000000�0000000�00000004103�13775351206�0016323�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * tttimer.h -- public header for libTT declarations related to "tttimer" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTTIMER_H #define TT_TTTIMER_H /* object structure */ #ifndef s_tttimer /** tttimer: A ttlistener derivative for timer-based callbacks */ struct s_tttimer; typedef struct s_tttimer *tttimer; #endif /* s_tttimer */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of tttimer */ extern ttclass TTClass_tttimer; /* tttimer methods */ /** create a tttimer with given fields */ tttimer TTCreateR_tttimer(ttcomponent r, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttopaque arg_component_n, ttopaque arg_timer_n, TT_ARG_DIE ttvector args, ttany delay_t, ttany delay_f); /** create a tttimer with given fields */ tttimer TTCreate_tttimer(ttcomponent r, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg, ttany delay_t, ttany delay_f); /** set delay (seconds and fraction of seconds) */ void TTSetDelay_tttimer(tttimer o, ttany delay_t, ttany delay_s); /** enable or disable tttimer `o' */ void TTSetEnabled_tttimer(tttimer o, ttbyte enabled); /** get whether tttimer `o' is enabled or disabled */ ttbyte TTIsEnabled_tttimer(TT_ARG_READ tttimer o); /* TTGet*_tttimer and TTSet*_tttimer methods */ /** get `delay_t' of tttimer `o' */ ttany TTGetDelayT_tttimer(TT_ARG_READ tttimer o); /** get `delay_f' of tttimer `o' */ ttany TTGetDelayF_tttimer(TT_ARG_READ tttimer o); /** get `timer_prev' of tttimer `o' */ tttimer TTGetTimerPrev_tttimer(TT_ARG_READ tttimer o); /** get `timer_next' of tttimer `o' */ tttimer TTGetTimerNext_tttimer(TT_ARG_READ tttimer o); #endif /* TT_TTTIMER_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/tttooltip.h�������������������������������������������������������������������0000664�0000000�0000000�00000002207�13775351206�0016700�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * tttooltip.h -- public header for libTT declarations related to "tttooltip" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTTOOLTIP_H #define TT_TTTOOLTIP_H /* object structure */ #ifndef s_tttooltip /** tttooltip: A simple tooltip */ struct s_tttooltip; typedef struct s_tttooltip *tttooltip; #endif /* s_tttooltip */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of tttooltip */ extern ttclass TTClass_tttooltip; /* tttooltip methods */ /** set the widget the tttooltip `o' is connected to */ ttbyte TTSetWidget_tttooltip(TT_ARG_DIE tttooltip o, ttwidget w); /* TTGet*_tttooltip and TTSet*_tttooltip methods */ /** get `widget' of tttooltip `o' */ ttwidget TTGetWidget_tttooltip(TT_ARG_READ tttooltip o); #endif /* TT_TTTOOLTIP_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttvector.h��������������������������������������������������������������������0000664�0000000�0000000�00000006761�13775351206�0016521�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttvector.h -- public header for libTT declarations related to "ttvector" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTVECTOR_H #define TT_TTVECTOR_H /* object structure */ #ifndef s_ttvector /** ttvector: A generic vector (array) */ struct s_ttvector; typedef struct s_ttvector *ttvector; #endif /* s_ttvector */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttvector */ extern ttclass TTClass_ttvector; /* ttvector methods */ /** get vector element at given position */ ttany TTGetAt_ttvector(TT_ARG_READ ttvector o, ttopaque pos); /** set vector element at given position */ ttbyte TTSetAt_ttvector(ttvector o, ttopaque pos, ttany value); /** create vector containing given value */ ttvector TTCreate1_ttvector(ttany value); /** create vector containing given values */ ttvector TTCreateA_ttvector(ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttarg *values); /** create vector containing given values */ ttvector TTCreateL_ttvector(ttopaque value_n, ...); /** create vector containing given values */ ttvector TTCreateR_ttvector(TT_ARG_READ ttvector v); /** create vector containing given values */ ttvector TTCreateV_ttvector(ttopaque value_n, TT_ARG_ARRAY((1)) va_list *values); /** create vector containing given values */ ttvector TTCreateY_ttvector(ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttany *values); /** add `value' at the end of the vector */ ttbyte TTAppend_ttvector(ttvector o, ttany value); /** add `value' at given pos of the vector */ ttbyte TTAdd_ttvector(ttvector o, ttopaque pos, ttany value); /** add values at given position of ttvector `o' */ ttbyte TTAddA_ttvector(ttvector o, ttopaque pos, ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttarg *values); /** add values at given position of ttvector `o' */ ttbyte TTAddL_ttvector(ttvector o, ttopaque pos, ttopaque value_n, ...); /** add values at given position of ttvector `o' */ ttbyte TTAddR_ttvector(ttvector o, ttopaque pos, TT_ARG_READ ttvector v); /** add values at given position of ttvector `o' */ ttbyte TTAddV_ttvector(ttvector o, ttopaque pos, ttopaque value_n, TT_ARG_ARRAY((1)) va_list *values); /** add values at given position of ttvector `o' */ ttbyte TTAddY_ttvector(ttvector o, ttopaque pos, ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttany *values); /** search for the first occurrence of `value' in the vector */ ttopaque TTContainsValue_ttvector(TT_ARG_READ ttvector o, ttopaque pos_start, ttany value); /** remove value at given pos of the vector */ ttbyte TTRemoveAt_ttvector(ttvector o, ttopaque pos); /** remove given range of values from ttvector `o' */ ttbyte TTRemoveRange_ttvector(ttvector o, ttopaque pos_start, ttopaque pos_n); /* TTGet*_ttvector and TTSet*_ttvector methods */ /** get `array_size' of ttvector `o' */ ttopaque TTGetArraySize_ttvector(TT_ARG_READ ttvector o); /** get `array_n' of ttvector `o' */ ttopaque TTGetArrayN_ttvector(TT_ARG_READ ttvector o); /** get `array' of ttvector `o' */ TT_ARG_ARRAY((_F(array_n))) ttany *TTGetArray_ttvector(TT_ARG_READ ttvector o); #endif /* TT_TTVECTOR_H */ ���������������twin-0.9.0/include/TT/ttvisible.h�������������������������������������������������������������������0000664�0000000�0000000�00000007275�13775351206�0016655�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttvisible.h -- public header for libTT declarations related to "ttvisible" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTVISIBLE_H #define TT_TTVISIBLE_H /* object structure */ #ifndef s_ttvisible /** ttvisible: The superclass of all visible objects */ struct s_ttvisible; typedef struct s_ttvisible *ttvisible; #endif /* s_ttvisible */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttvisible */ extern ttclass TTClass_ttvisible; /* ttvisible methods */ /** add the ttvisible `o' into `parent' */ void TTAddTo_ttvisible(ttvisible o, ttvisible parent, ttany constraint); /** apply layout the children of current component */ void TTValidate_ttvisible(ttvisible o); /** remove the ttvisible `o' from its parent */ void TTRemove_ttvisible(ttvisible o); /** invalidate ttvisible `o' internal caches (to force redrawing it) */ void TTInvalidate_ttvisible(ttvisible o); /** set the ttvisible `o' to be visible or not */ void TTSetVisible_ttvisible(ttvisible o, ttbyte visible); /** set the tttheme `theme' of the ttvisible `o' */ ttbyte TTSetTheme_ttvisible(ttvisible o, TT_ARG_READ tttheme theme); /** actually draw (part of) the contents of the ttvisible `o' - internally called by * TTBuiltinRepaint_ttvisible */ void TTDraw_ttvisible(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5), *, _P(6))) ttbyte *asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5), *, _P(6))) ttfont *fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5), *, _P(6))) ttattr *attrdata); /** internal libTT method that repaints (part of) the ttvisible `o' using its theme */ void TTBuiltinRepaint_ttvisible(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h); /** change the internal libTT method used to repaint (part of) the ttvisible `o' */ ttbyte TTSetRepaint_ttvisible(ttvisible o, TT_ARG_READ ttvisible_repaint_fn repaint); /** request a repaint for the given part of the ttvisible `o' */ void TTExpose_ttvisible(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h); /** add the ttvisible `child' into `o' */ void TTAdd_ttvisible(ttvisible o, ttvisible child, ttany constraint); /* TTGet*_ttvisible and TTSet*_ttvisible methods */ /** get `vflags' of ttvisible `o' */ ttuint TTGetVflags_ttvisible(TT_ARG_READ ttvisible o); /** get `prev' of ttvisible `o' */ ttvisible TTGetPrev_ttvisible(TT_ARG_READ ttvisible o); /** get `next' of ttvisible `o' */ ttvisible TTGetNext_ttvisible(TT_ARG_READ ttvisible o); /** get `parent' of ttvisible `o' */ ttvisible TTGetParent_ttvisible(TT_ARG_READ ttvisible o); /** get `child_first' of ttvisible `o' */ ttvisible TTGetChildFirst_ttvisible(TT_ARG_READ ttvisible o); /** get `child_last' of ttvisible `o' */ ttvisible TTGetChildLast_ttvisible(TT_ARG_READ ttvisible o); /** get `constraint' of ttvisible `o' */ ttany TTGetConstraint_ttvisible(TT_ARG_READ ttvisible o); /** get `theme' of ttvisible `o' */ tttheme TTGetTheme_ttvisible(TT_ARG_READ ttvisible o); /** set `theme' of ttvisible `o' */ ttbyte TTSetTheme_ttvisible(ttvisible o, tttheme theme); /** get `repaint' of ttvisible `o' */ ttvisible_repaint_fn TTGetRepaint_ttvisible(TT_ARG_READ ttvisible o); /** set `repaint' of ttvisible `o' */ ttbyte TTSetRepaint_ttvisible(ttvisible o, ttvisible_repaint_fn repaint); #endif /* TT_TTVISIBLE_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttwidget.h��������������������������������������������������������������������0000664�0000000�0000000�00000010504�13775351206�0016470�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttwidget.h -- public header for libTT declarations related to "ttwidget" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTWIDGET_H #define TT_TTWIDGET_H /* object structure */ #ifndef s_ttwidget /** ttwidget: The superclass of all window-like visible containers */ struct s_ttwidget; typedef struct s_ttwidget *ttwidget; #endif /* s_ttwidget */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttwidget */ extern ttclass TTClass_ttwidget; /* ttwidget methods */ /** set the layout of the ttvisible `o' */ void TTSetLayout_ttwidget(ttwidget o, ttlayout l); /** set the position `x' and `y' of the ttwidget `o' */ ttbyte TTSetXY_ttwidget(ttwidget o, ttshort x, ttshort y); /** set the size `w' and `h' of the ttwidget `o' */ ttbyte TTSetWH_ttwidget(ttwidget o, ttshort w, ttshort h); /** set the inside scroll position `xl' of the ttwidget `o' */ ttbyte TTSetXl_ttwidget(ttwidget o, ttint xl); /** set the inside scroll position `yl' of the ttwidget `o' */ ttbyte TTSetYl_ttwidget(ttwidget o, ttint yl); /** set the inside scroll size `wl' of the ttwidget `o' */ ttbyte TTSetWl_ttwidget(ttwidget o, ttint wl); /** set the inside scroll size `hl' of the ttwidget `o' */ ttbyte TTSetHl_ttwidget(ttwidget o, ttint hl); /** set the the tttooltip of the ttwidget `o' */ ttbyte TTSetTooltip_ttwidget(ttwidget o, TT_ARG_DIE tttooltip t); /** set some (depeding on `mask') of the inside scroll position `xl' and `yl' of the ttwidget `o' */ ttbyte TTSetXlYl_ttwidget(ttwidget o, ttuint mask, ttint xl, ttint yl); /** set some (depeding on `mask') of the inside scroll sizes `wl' and `hl' of the ttwidget `o' */ ttbyte TTSetWlHl_ttwidget(ttwidget o, ttuint mask, ttint wl, ttint hl); /** set some (depeding on `mask') of the position `x' and `y' and the size `w' and `h' of the * ttwidget `o' */ ttbyte TTSetXYWH_ttwidget(ttwidget o, ttuint mask, ttshort x, ttshort y, ttshort w, ttshort h); /** set the position `x' of the ttwidget `o' */ ttbyte TTSetX_ttwidget(ttwidget o, ttshort x); /** set the position `y' of the ttwidget `o' */ ttbyte TTSetY_ttwidget(ttwidget o, ttshort y); /** set the size `w' of the ttwidget `o' */ ttbyte TTSetW_ttwidget(ttwidget o, ttshort w); /** set the size `h' of the ttwidget `o' */ ttbyte TTSetH_ttwidget(ttwidget o, ttshort h); /* TTGet*_ttwidget and TTSet*_ttwidget methods */ /** get `x' of ttwidget `o' */ ttshort TTGetX_ttwidget(TT_ARG_READ ttwidget o); /** set `x' of ttwidget `o' */ ttbyte TTSetX_ttwidget(ttwidget o, ttshort x); /** get `y' of ttwidget `o' */ ttshort TTGetY_ttwidget(TT_ARG_READ ttwidget o); /** set `y' of ttwidget `o' */ ttbyte TTSetY_ttwidget(ttwidget o, ttshort y); /** get `w' of ttwidget `o' */ ttshort TTGetW_ttwidget(TT_ARG_READ ttwidget o); /** set `w' of ttwidget `o' */ ttbyte TTSetW_ttwidget(ttwidget o, ttshort w); /** get `h' of ttwidget `o' */ ttshort TTGetH_ttwidget(TT_ARG_READ ttwidget o); /** set `h' of ttwidget `o' */ ttbyte TTSetH_ttwidget(ttwidget o, ttshort h); /** get `layout' of ttwidget `o' */ ttlayout TTGetLayout_ttwidget(TT_ARG_READ ttwidget o); /** get `xl' of ttwidget `o' */ ttint TTGetXl_ttwidget(TT_ARG_READ ttwidget o); /** set `xl' of ttwidget `o' */ ttbyte TTSetXl_ttwidget(ttwidget o, ttint xl); /** get `yl' of ttwidget `o' */ ttint TTGetYl_ttwidget(TT_ARG_READ ttwidget o); /** set `yl' of ttwidget `o' */ ttbyte TTSetYl_ttwidget(ttwidget o, ttint yl); /** get `wl' of ttwidget `o' */ ttint TTGetWl_ttwidget(TT_ARG_READ ttwidget o); /** set `wl' of ttwidget `o' */ ttbyte TTSetWl_ttwidget(ttwidget o, ttint wl); /** get `hl' of ttwidget `o' */ ttint TTGetHl_ttwidget(TT_ARG_READ ttwidget o); /** set `hl' of ttwidget `o' */ ttbyte TTSetHl_ttwidget(ttwidget o, ttint hl); /** get `col' of ttwidget `o' */ ttcol TTGetCol_ttwidget(TT_ARG_READ ttwidget o); /** get `tooltip' of ttwidget `o' */ tttooltip TTGetTooltip_ttwidget(TT_ARG_READ ttwidget o); /** set `tooltip' of ttwidget `o' */ ttbyte TTSetTooltip_ttwidget(ttwidget o, tttooltip tooltip); #endif /* TT_TTWIDGET_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/ttwindow.h��������������������������������������������������������������������0000664�0000000�0000000�00000002367�13775351206�0016524�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tt.m4hh, do not edit! */ /* * ttwindow.h -- public header for libTT declarations related to "ttwindow" * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TTWINDOW_H #define TT_TTWINDOW_H /* object structure */ #ifndef s_ttwindow /** ttwindow: a full-featured window */ struct s_ttwindow; typedef struct s_ttwindow *ttwindow; #endif /* s_ttwindow */ /* global runtime class type; returned by TTCLASSOF(<some object>) */ /** class of ttwindow */ extern ttclass TTClass_ttwindow; /* ttwindow methods */ /** set the title of the ttwindow `o' */ ttbyte TTSetTitle_ttwindow(ttwindow o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *title); /* TTGet*_ttwindow and TTSet*_ttwindow methods */ /** get `title_len' of ttwindow `o' */ ttopaque TTGetTitleLen_ttwindow(TT_ARG_READ ttwindow o); /** get `title' of ttwindow `o' */ TT_ARG_ARRAY((_F(title_len))) ttbyte *TTGetTitle_ttwindow(TT_ARG_READ ttwindow o); #endif /* TT_TTWINDOW_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/version.h���������������������������������������������������������������������0000664�0000000�0000000�00000002354�13775351206�0016326�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TT_VERSION_H #define TT_VERSION_H /** library major version */ #define TT_PROTOCOL_VERSION_MAJOR 0 /** library minor version */ #define TT_PROTOCOL_VERSION_MINOR 6 /** library patch version */ #define TT_PROTOCOL_VERSION_PATCH 2 /** library full version number (major,minor,patch) */ #define TT_PROTOCOL_VERSION \ ((TT_PROTOCOL_VERSION_MAJOR << 16) | (TT_PROTOCOL_VERSION_MINOR << 8) | TT_PROTOCOL_VERSION_PATCH) /** string reperesenting library full version number ("major.minor.patch") */ #define TT_PROTOCOL_VERSION_STR \ TT_STR(TT_PROTOCOL_VERSION_MAJOR) \ "." TT_STR(TT_PROTOCOL_VERSION_MINOR) "." TT_STR(TT_PROTOCOL_VERSION_PATCH) /** extract major from a full version number */ #define TT_VER_MAJOR(n) ((n) >> 16) /** extract minor from a full version number */ #define TT_VER_MINOR(n) (((n) >> 8) & 0xFF) /** extract patch from a full version number */ #define TT_VER_PATCH(n) ((n)&0xFF) /** build full version number from major,minor,patch */ #define TT_VER_BUILD(M, m, p) (((M) << 16) | ((m) << 8) | (p)) #endif /* TT_VERSION_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/TT/version.h.in������������������������������������������������������������������0000664�0000000�0000000�00000002117�13775351206�0016730�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TT_VERSION_H #define TT_VERSION_H /** library major version */ #define TT_PROTOCOL_VERSION_MAJOR @PACKAGE_VERSION_MAJOR@ /** library minor version */ #define TT_PROTOCOL_VERSION_MINOR @PACKAGE_VERSION_MINOR@ /** library patch version */ #define TT_PROTOCOL_VERSION_PATCH @PACKAGE_VERSION_PATCH@ /** library full version number (major,minor,patch) */ #define TT_PROTOCOL_VERSION ((TT_PROTOCOL_VERSION_MAJOR<<16)|(TT_PROTOCOL_VERSION_MINOR<<8)|TT_PROTOCOL_VERSION_PATCH) /** string reperesenting library full version number ("major.minor.patch") */ #define TT_PROTOCOL_VERSION_STR TT_STR(TT_PROTOCOL_VERSION_MAJOR) "." TT_STR(TT_PROTOCOL_VERSION_MINOR) "." TT_STR(TT_PROTOCOL_VERSION_PATCH) /** extract major from a full version number */ #define TT_VER_MAJOR(n) ((n)>>16) /** extract minor from a full version number */ #define TT_VER_MINOR(n) (((n)>>8) & 0xFF) /** extract patch from a full version number */ #define TT_VER_PATCH(n) ((n) & 0xFF) /** build full version number from major,minor,patch */ #define TT_VER_BUILD(M, m, p) (((M)<<16)|((m)<<8)|(p)) #endif /* TT_VERSION_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/����������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015057�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/Doxyfile��������������������������������������������������������������������0000664�0000000�0000000�00000013325�13775351206�0016571�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Doxygen configuration generated by Doxywizard version 0.1 #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- PROJECT_NAME = libtutf PROJECT_NUMBER = 0.5.0 OUTPUT_DIRECTORY = ../../docs/libtutf/ OUTPUT_LANGUAGE = English EXTRACT_ALL = NO EXTRACT_PRIVATE = NO EXTRACT_STATIC = NO HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = NO ALWAYS_DETAILED_SEC = NO FULL_PATH_NAMES = NO STRIP_FROM_PATH = INTERNAL_DOCS = NO CLASS_DIAGRAMS = YES SOURCE_BROWSER = NO INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO VERBATIM_HEADERS = NO SHOW_INCLUDE_FILES = YES JAVADOC_AUTOBRIEF = YES INHERIT_DOCS = YES INLINE_INFO = YES SORT_MEMBER_DOCS = YES DISTRIBUTE_GROUP_DOC = NO TAB_SIZE = 8 ENABLED_SECTIONS = GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES ALIASES = MAX_INITIALIZER_LINES = 30 OPTIMIZE_OUTPUT_FOR_C = YES SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = . FILE_PATTERNS = *.h RECURSIVE = YES EXCLUDE = utf_16.h EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = IMAGE_PATH = INPUT_FILTER = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = YES COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = YES TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = YES LATEX_OUTPUT = latex COMPACT_LATEX = YES PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = YES #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = YES RTF_OUTPUT = rtf COMPACT_RTF = YES RTF_HYPERLINKS = YES RTF_STYLESHEET_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = YES MAN_OUTPUT = man MAN_EXTENSION = .3 #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- HAVE_DOT = NO CLASS_GRAPH = YES COLLABORATION_GRAPH = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES GRAPHICAL_HIERARCHY = YES DOT_PATH = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO CGI_NAME = search.cgi CGI_URL = DOC_URL = DOC_ABSPATH = BIN_ABSPATH = /usr/local/bin/ EXT_DOC_PATHS = �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/Makefile.am�����������������������������������������������������������������0000664�0000000�0000000�00000002272�13775351206�0017116�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������tutfincludedir = $(includedir)/Tutf tutfinclude_HEADERS = adobe_stdenc.h adobe_symbol.h apl_iso_ir_68.h \ ascii.h atarist.h compiler.h cp1006.h cp1250.h cp1251.h cp1252.h \ cp1253.h cp1254.h cp1255.h cp1256.h cp1257.h cp1258.h cp424.h cp437.h \ cp737.h cp775.h cp850.h cp852.h cp855.h cp856.h cp857.h cp860.h \ cp861.h cp862.h cp863.h cp864.h cp865.h cp866.h cp869.h cp874.h \ cp932.h cp936.h cp949.h cp950.h hp_roman8.h inprogress.h iso8859_10.h \ iso8859_11.h iso8859_13.h iso8859_14.h iso8859_15.h iso8859_16.h \ iso8859_1.h iso8859_2.h iso8859_3.h iso8859_4.h iso8859_5.h \ iso8859_6.h iso8859_7.h iso8859_8.h iso8859_9.h jisx0201.h koi8_r.h \ koi8_u.h kz1048.h mac_arabic.h mac_celtic.h mac_centraleurope.h \ mac_croatian.h mac_cyrillic.h mac_devanagari.h mac_dingbats.h \ mac_farsi.h mac_gaelic.h mac_greek.h mac_gujarati.h mac_gurmukhi.h \ mac_hebrew.h mac_icelandic.h mac_inuit.h mac_roman.h mac_romanian.h \ mac_symbol.h mac_thai.h mac_turkish.h ms_mac_cyrillic.h ms_mac_greek.h \ ms_mac_icelandic.h ms_mac_latin2.h ms_mac_roman.h ms_mac_turkish.h \ nextstep.h Tutf_defs.h Tutf.h Tutftypes.h utf_32_aux.h utf_32.h \ version.h vt100gr.h ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/Makefile.in�����������������������������������������������������������������0000664�0000000�0000000�00000046224�13775351206�0017134�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include/Tutf ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(tutfinclude_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = version.h CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(tutfincludedir)" HEADERS = $(tutfinclude_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.h.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ tutfincludedir = $(includedir)/Tutf tutfinclude_HEADERS = adobe_stdenc.h adobe_symbol.h apl_iso_ir_68.h \ ascii.h atarist.h compiler.h cp1006.h cp1250.h cp1251.h cp1252.h \ cp1253.h cp1254.h cp1255.h cp1256.h cp1257.h cp1258.h cp424.h cp437.h \ cp737.h cp775.h cp850.h cp852.h cp855.h cp856.h cp857.h cp860.h \ cp861.h cp862.h cp863.h cp864.h cp865.h cp866.h cp869.h cp874.h \ cp932.h cp936.h cp949.h cp950.h hp_roman8.h inprogress.h iso8859_10.h \ iso8859_11.h iso8859_13.h iso8859_14.h iso8859_15.h iso8859_16.h \ iso8859_1.h iso8859_2.h iso8859_3.h iso8859_4.h iso8859_5.h \ iso8859_6.h iso8859_7.h iso8859_8.h iso8859_9.h jisx0201.h koi8_r.h \ koi8_u.h kz1048.h mac_arabic.h mac_celtic.h mac_centraleurope.h \ mac_croatian.h mac_cyrillic.h mac_devanagari.h mac_dingbats.h \ mac_farsi.h mac_gaelic.h mac_greek.h mac_gujarati.h mac_gurmukhi.h \ mac_hebrew.h mac_icelandic.h mac_inuit.h mac_roman.h mac_romanian.h \ mac_symbol.h mac_thai.h mac_turkish.h ms_mac_cyrillic.h ms_mac_greek.h \ ms_mac_icelandic.h ms_mac_latin2.h ms_mac_roman.h ms_mac_turkish.h \ nextstep.h Tutf_defs.h Tutf.h Tutftypes.h utf_32_aux.h utf_32.h \ version.h vt100gr.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Tutf/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign include/Tutf/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): version.h: $(top_builddir)/config.status $(srcdir)/version.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-tutfincludeHEADERS: $(tutfinclude_HEADERS) @$(NORMAL_INSTALL) @list='$(tutfinclude_HEADERS)'; test -n "$(tutfincludedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(tutfincludedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(tutfincludedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(tutfincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(tutfincludedir)" || exit $$?; \ done uninstall-tutfincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(tutfinclude_HEADERS)'; test -n "$(tutfincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(tutfincludedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(tutfincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-tutfincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-tutfincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-tutfincludeHEADERS installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-tutfincludeHEADERS .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/Tutf.h����������������������������������������������������������������������0000664�0000000�0000000�00000070712�13775351206�0016161�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Tutf.h -- include for ASCII/VGA/UTF/UNICODE pseudographics characters database * * This library requires libtw headers too (NOT libtw shared library, just the headers) * * Copyright (C) 2001 by Massimiliano Ghilardi * * 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. * */ #ifndef TUTF_H #define TUTF_H #include <Tutf/Tutftypes.h> #ifdef __cplusplus extern "C" { #endif #if 0 } #endif /* get the canonical name of a charset */ #define T_MAP(alias) T_CAT(T_MAP_, alias) #define T_LIST(alias, EL) T_CAT(T_LIST_, T_MAP(alias))(EL) #define T_NLIST(alias, EL) T_CAT(T_NLIST_, T_MAP(alias))(EL) #define T_NAME(alias) T_CAT(T_NAME_, T_MAP(alias)) #define T_UTF(alias, name) T_CAT3(T_, T_MAP(alias), name) #define T_MAP_UTF_32 UTF_32 #define T_MAP_TF_32 UTF_32 #define T_MAP_UNICODE UTF_32 #define T_MAP_ISO_10646_1 UTF_32 #define T_MAP_ISO10646_1 UTF_32 #define T_NAME_UTF_32 "UTF-32" #define T_ALIASES_UTF_32 "TF-32", "Unicode", "ISO-10646-1", "ISO10646-1" #define T_MAP_ANSI_X3_4 ASCII #define T_MAP_ANSI_X3_4_1968 ASCII #define T_MAP_ANSI_X3_4_1986 ASCII #define T_MAP_ASCII ASCII #define T_MAP_ISO_646_IRV_1991 ASCII #define T_MAP_ISO646_US ASCII #define T_MAP_ISO_IR_6 ASCII #define T_MAP_US_ASCII ASCII #define T_MAP_US ASCII #define T_MAP_367 ASCII #define T_MAP_CP367 ASCII #define T_MAP_IBM367 ASCII #define T_NAME_ASCII "ASCII" #define T_ALIASES_ASCII \ "ANSI_X3.4" \ "ANSI_X3.4-1968", \ "ANSI_X3.4-1986", "ISO_646.irv:1991", "ISO646-US", "iso-ir-6", "US-ASCII", "us", "367", \ "cp367", "ibm367" /******************* ISO-8859-x charsets *************/ #define T_MAP_ISO_8859_1 ISO8859_1 #define T_MAP_ISO_8859_1_1987 ISO8859_1 #define T_MAP_ISO8859_1 ISO8859_1 #define T_MAP_819 ISO8859_1 #define T_MAP_CP819 ISO8859_1 #define T_MAP_IBM819 ISO8859_1 #define T_MAP_ISO_IR_100 ISO8859_1 #define T_MAP_L1 ISO8859_1 #define T_MAP_LAT1 ISO8859_1 #define T_MAP_LATIN1 ISO8859_1 #define T_MAP_LATIN_1 ISO8859_1 #define T_NAME_ISO8859_1 "ISO-8859-1" #define T_ALIASES_ISO8859_1 \ "ISO_8859-1:1987", "ISO8859-1", "819", "cp819", "ibm819", "iso-ir-100", "l1", "lat1", "latin1", \ "Latin-1" #define T_MAP_ISO_8859_2 ISO8859_2 #define T_MAP_ISO_8859_2_1987 ISO8859_2 #define T_MAP_ISO8859_2 ISO8859_2 #define T_MAP_912 ISO8859_2 #define T_MAP_CP912 ISO8859_2 #define T_MAP_IBM912 ISO8859_2 #define T_MAP_ISO_IR_101 ISO8859_2 #define T_MAP_L2 ISO8859_2 #define T_MAP_LATIN2 ISO8859_2 #define T_NAME_ISO8859_2 "ISO-8859-2" #define T_ALIASES_ISO8859_2 \ "ISO_8859-2:1987", "ISO8859-2", "912", "cp912", "ibm912", "iso-ir-101", "l2", "latin2" #define T_MAP_ISO_8859_3 ISO8859_3 #define T_MAP_ISO_8859_3_1988 ISO8859_3 #define T_MAP_ISO8859_3 ISO8859_3 #define T_MAP_ISO_IR_109 ISO8859_3 #define T_MAP_L3 ISO8859_3 #define T_MAP_LATIN3 ISO8859_3 #define T_NAME_ISO8859_3 "ISO-8859-3" #define T_ALIASES_ISO8859_3 "ISO_8859-3:1988", "ISO8859-3", "iso-ir-109", "l3", "latin3" #define T_MAP_ISO_8859_4 ISO8859_4 #define T_MAP_ISO_8859_4_1988 ISO8859_4 #define T_MAP_ISO8859_4 ISO8859_4 #define T_MAP_ISO_IR_110 ISO8859_4 #define T_MAP_L4 ISO8859_4 #define T_MAP_LATIN4 ISO8859_4 #define T_NAME_ISO8859_4 "ISO-8859-4" #define T_ALIASES_ISO8859_4 "ISO_8859-4:1988", "ISO8859-4", "iso-ir-109", "l4", "latin4" #define T_MAP_ISO_8859_5 ISO8859_5 #define T_MAP_ISO_8859_5_1988 ISO8859_5 #define T_MAP_ISO8859_5 ISO8859_5 #define T_MAP_ISO_IR_144 ISO8859_5 #define T_MAP_CYRILLIC ISO8859_5 #define T_NAME_ISO8859_5 "ISO-8859-5" #define T_ALIASES_ISO8859_5 "ISO_8859-5:1988", "ISO8859-5", "iso-ir-144", "cyrillic" #define T_MAP_ISO_8859_6 ISO8859_6 #define T_MAP_ISO_8859_6_1987 ISO8859_6 #define T_MAP_ISO8859_6 ISO8859_6 #define T_MAP_ARABIC ISO8859_6 #define T_MAP_ASMO_708 ISO8859_6 #define T_MAP_ECMA_114 ISO8859_6 #define T_MAP_ISO_IR_127 ISO8859_6 #define T_NAME_ISO8859_6 "ISO-8859-6" #define T_ALIASES_ISO8859_6 \ "ISO_8859-6:1987", "ISO8859-6", "arabic", "ASMO-708", "ECMA-114", "iso-ir-127" #define T_MAP_ISO_8859_7 ISO8859_7 #define T_MAP_ISO_8859_7_1987 ISO8859_7 #define T_MAP_ISO8859_7 ISO8859_7 #define T_MAP_GREEK ISO8859_7 #define T_MAP_GREEK8 ISO8859_7 #define T_MAP_ISO_IR_126 ISO8859_7 #define T_MAP_ELOT_928 ISO8859_7 #define T_MAP_ECMA_118 ISO8859_7 #define T_NAME_ISO8859_7 "ISO-8859-7" #define T_ALIASES_ISO8859_7 \ "ISO_8859-7:1987", "ISO8859-7", "greek", "greek8", "iso-ir-126", "ECMA-118", "ELOT_928" #define T_MAP_ISO_8859_8 ISO8859_8 #define T_MAP_ISO_8859_8_1988 ISO8859_8 #define T_MAP_ISO8859_8 ISO8859_8 #define T_MAP_HEBREW ISO8859_8 #define T_MAP_ISO_IR_138 ISO8859_8 #define T_NAME_ISO8859_8 "ISO-8859-8" #define T_ALIASES_ISO8859_8 "ISO_8859-8:1988", "ISO8859-8", "hebrew", "iso-ir-138" #define T_MAP_ISO_8859_9 ISO8859_9 #define T_MAP_ISO_8859_9_1989 ISO8859_9 #define T_MAP_ISO8859_9 ISO8859_9 #define T_MAP_L5 ISO8859_9 #define T_MAP_LATIN5 ISO8859_9 #define T_MAP_ISO_IR_148 ISO8859_9 #define T_MAP_TURKISH ISO8859_9 #define T_NAME_ISO8859_9 "ISO-8859-9" #define T_ALIASES_ISO8859_9 "ISO_8859-9:1989", "ISO8859-9", "l5", "latin5", "iso-ir-148", "turkish" #define T_MAP_ISO_8859_10 ISO8859_10 #define T_MAP_ISO8859_10 ISO8859_10 #define T_NAME_ISO8859_10 "ISO-8859-10" #define T_ALIASES_ISO8859_10 "ISO8859-10" #define T_MAP_ISO_8859_11 ISO8859_11 #define T_MAP_ISO8859_11 ISO8859_11 #define T_NAME_ISO8859_11 "ISO-8859-11" #define T_ALIASES_ISO8859_11 "ISO_8859-11:2001", "ISO8859-11" #define T_MAP_ISO_8859_13 ISO8859_13 #define T_MAP_ISO8859_13 ISO8859_13 #define T_MAP_L7 ISO8859_13 #define T_MAP_LATIN7 ISO8859_13 #define T_MAP_BALTIC ISO8859_13 #define T_MAP_ISO_IR_179A ISO8859_13 #define T_NAME_ISO8859_13 "ISO-8859-13" #define T_ALIASES_ISO8859_13 "ISO8859-13", "l7", "latin7", "iso-baltic", "iso-ir-179a" #define T_MAP_ISO_8859_14 ISO8859_14 #define T_MAP_ISO8859_14 ISO8859_14 #define T_MAP_L8 ISO8859_14 #define T_MAP_LATIN8 ISO8859_14 #define T_MAP_CELTIC ISO8859_14 #define T_MAP_ISO_IR_199 ISO8859_14 #define T_NAME_ISO8859_14 "ISO-8859-14" #define T_ALIASES_ISO8859_14 "ISO8859-14", "l8", "latin8", "iso-celtic", "iso-ir-199" #define T_MAP_ISO_8859_15 ISO8859_15 #define T_MAP_ISO8859_15 ISO8859_15 #define T_MAP_L9 ISO8859_15 #define T_MAP_LATIN9 ISO8859_15 #define T_MAP_EURO ISO8859_15 #define T_MAP_ISO_IR_203 ISO8859_15 #define T_NAME_ISO8859_15 "ISO-8859-15" #define T_ALIASES_ISO8859_15 "ISO8859-15", "l9", "latin9", "euro", "iso-ir-203" #define T_MAP_ISO_8859_16 ISO8859_16 #define T_MAP_ISO8859_16 ISO8859_16 #define T_NAME_ISO8859_16 "ISO-8859-16" #define T_ALIASES_ISO8859_16 "ISO_8859-16:2001", "ISO8859-16", "latin10" /******************* Codepage / IBM charsets *************/ #define T_MAP_CP424 CP424 #define T_MAP_424 CP424 #define T_MAP_IBM424 CP424 #define T_NAME_CP424 "cp424" #define T_ALIASES_CP424 "424", "ibm424" #define T_MAP_CP437 CP437 #define T_MAP_437 CP437 #define T_MAP_IBM437 CP437 #define T_NAME_CP437 "cp437" #define T_ALIASES_CP437 "437", "ibm437" #define T_MAP_CP737 CP737 #define T_MAP_737 CP737 #define T_NAME_CP737 "cp737" #define T_ALIASES_CP737 "737" #define T_MAP_CP775 CP775 #define T_MAP_775 CP775 #define T_NAME_CP775 "cp775" #define T_ALIASES_CP775 "775" #define T_MAP_CP850 CP850 #define T_MAP_850 CP850 #define T_MAP_IBM850 CP850 #define T_NAME_CP850 "cp850" #define T_ALIASES_CP850 "850", "ibm850" #define T_MAP_CP852 CP852 #define T_MAP_852 CP852 #define T_MAP_IBM852 CP852 #define T_MAP_PCL2 CP852 #define T_MAP_PCLATIN2 CP852 #define T_NAME_CP852 "cp852" #define T_ALIASES_CP852 "852", "ibm852", "pcl2", "pclatin2" #define T_MAP_CP855 CP855 #define T_MAP_855 CP855 #define T_MAP_IBM855 CP855 #define T_NAME_CP855 "cp855" #define T_ALIASES_CP855 "855", "ibm855" #define T_MAP_CP856 CP856 #define T_MAP_856 CP856 #define T_MAP_IBM856 CP856 #define T_NAME_CP856 "cp856" #define T_ALIASES_CP856 "856", "ibm856" #define T_MAP_CP857 CP857 #define T_MAP_857 CP857 #define T_MAP_IBM857 CP857 #define T_NAME_CP857 "cp857" #define T_ALIASES_CP857 "857", "ibm857" #define T_MAP_CP860 CP860 #define T_MAP_860 CP860 #define T_MAP_PORTUGUESE CP860 #define T_NAME_CP860 "cp860" #define T_ALIASES_CP860 "860", "portuguese" #define T_MAP_CP861 CP861 #define T_MAP_861 CP861 #define T_MAP_ICELANDIC CP861 #define T_NAME_CP861 "cp861" #define T_ALIASES_CP861 "861", "icelandic" #define T_MAP_CP862 CP862 #define T_MAP_862 CP862 #define T_NAME_CP862 "cp862" #define T_ALIASES_CP862 "862" #define T_MAP_CP863 CP863 #define T_MAP_863 CP863 #define T_NAME_CP863 "cp863" #define T_ALIASES_CP863 "863" #define T_MAP_CP864 CP864 #define T_MAP_864 CP864 #define T_NAME_CP864 "cp864" #define T_ALIASES_CP864 "864" #define T_MAP_CP865 CP865 #define T_MAP_865 CP865 #define T_MAP_IBM865 CP865 #define T_MAP_NORWEGIAN CP865 #define T_MAP_DANISH CP865 #define T_NAME_CP865 "cp865" #define T_ALIASES_CP865 "865", "ibm865", "norwegian", "danish" #define T_MAP_CP866 CP866 #define T_MAP_866 CP866 #define T_NAME_CP866 "cp866" #define T_ALIASES_CP866 "866" #define T_MAP_CP869 CP869 #define T_MAP_869 CP869 #define T_NAME_CP869 "cp869" #define T_ALIASES_CP869 "869" #define T_MAP_CP874 CP874 #define T_MAP_874 CP874 #define T_MAP_THAI CP874 #define T_NAME_CP874 "cp874" #define T_ALIASES_CP874 "874", "thai" #define T_MAP_CP932 CP932 #define T_MAP_932 CP932 #define T_MAP_IBM932 CP932 #define T_NAME_CP932 "cp932" #define T_ALIASES_CP932 "932", "ibm932" #define T_MAP_CP936 CP936 #define T_MAP_936 CP936 #define T_MAP_IBM936 CP936 #define T_NAME_CP936 "cp936" #define T_ALIASES_CP936 "936", "ibm936" #define T_MAP_CP949 CP949 #define T_MAP_949 CP949 #define T_MAP_IBM949 CP949 #define T_NAME_CP949 "cp949" #define T_ALIASES_CP949 "949", "ibm949" #define T_MAP_CP950 CP950 #define T_MAP_950 CP950 #define T_MAP_IBM950 CP950 #define T_NAME_CP950 "cp950" #define T_ALIASES_CP950 "950", "ibm950" #define T_MAP_CP1006 CP1006 #define T_MAP_1006 CP1006 #define T_MAP_IBM1006 CP1006 #define T_NAME_CP1006 "cp1006" #define T_ALIASES_CP1006 "1006", "ibm1006" #define T_MAP_CP1250 CP1250 #define T_MAP_1250 CP1250 #define T_MAP_MS_EE CP1250 #define T_MAP_WINDOWS_1250 CP1250 #define T_MAP_SLAVIC CP1250 #define T_NAME_CP1250 "cp1250" #define T_ALIASES_CP1250 "1250", "ms-ee", "windows-1250", "slavic", "ms-latin2" #define T_MAP_CP1251 CP1251 #define T_MAP_1251 CP1251 #define T_MAP_MS_CYRL CP1251 #define T_MAP_WINDOWS_1251 CP1251 #define T_MAP_BULGARIAN CP1251 #define T_NAME_CP1251 "cp1251" #define T_ALIASES_CP1251 "1251", "windows-1251", "bulgarian", "ms-cyrillic", "ms-cyrl" #define T_MAP_CP1252 CP1252 #define T_MAP_1252 CP1252 #define T_MAP_WINDOWS_1252 CP1252 #define T_NAME_CP1252 "cp1252" #define T_ALIASES_CP1252 "1252", "windows-1252", "ms-latin1" #define T_MAP_CP1253 CP1253 #define T_MAP_1253 CP1253 #define T_MAP_WINDOWS_1253 CP1253 #define T_NAME_CP1253 "cp1253" #define T_ALIASES_CP1253 "1253", "windows-1253", "ms-greek" #define T_MAP_CP1254 CP1254 #define T_MAP_1254 CP1254 #define T_MAP_WINDOWS_1254 CP1254 #define T_NAME_CP1254 "cp1254" #define T_ALIASES_CP1254 "1254", "windows-1254", "ms-turkish" #define T_MAP_CP1255 CP1255 #define T_MAP_1255 CP1255 #define T_MAP_WINDOWS_1255 CP1255 #define T_NAME_CP1255 "cp1255" #define T_ALIASES_CP1255 "1255", "windows-1255", "ms-hebrew" #define T_MAP_CP1256 CP1256 #define T_MAP_1256 CP1256 #define T_MAP_WINDOWS_1256 CP1256 #define T_NAME_CP1256 "cp1256" #define T_ALIASES_CP1256 "1256", "windows-1256", "ms-arabic" #define T_MAP_CP1257 CP1257 #define T_MAP_1257 CP1257 #define T_MAP_WINDOWS_1257 CP1257 #define T_NAME_CP1257 "cp1257" #define T_ALIASES_CP1257 "1257", "windows-1257", "baltic-rim", "ms-baltic-rim" #define T_MAP_CP1258 CP1258 #define T_MAP_1258 CP1258 #define T_MAP_WINDOWS_1258 CP1258 #define T_NAME_CP1258 "cp1258" #define T_ALIASES_CP1258 "1258", "windows-1258", "vietnamese", "ms-vietnamese" #define T_MAP_ADOBE_STDENC ADOBE_STDENC #define T_MAP_ADOBE_STANDARD ADOBE_STDENC #define T_MAP_ADOBE_STANDARD_ENCODING ADOBE_STDENC #define T_NAME_ADOBE_STDENC "adobe-stdenc" #define T_ALIASES_ADOBE_STDENC "adobe-standard", "adobe-standard-encoding" #define T_MAP_ADOBE_SYMBOL ADOBE_SYMBOL #define T_MAP_ADOBE_SYMBOL_ENCODING ADOBE_SYMBOL #define T_NAME_ADOBE_SYMBOL "adobe-symbol" #define T_ALIASES_ADOBE_SYMBOL "adobe-symbol-encoding" /******************* APPLE charsets for Mac OS *************/ #define T_MAP_MAC_ARABIC MAC_ARABIC #define T_MAP_APPLE_ARABIC MAC_ARABIC #define T_NAME_MAC_ARABIC "mac-arabic" #define T_ALIASES_MAC_ARABIC "apple-arabic" #define T_MAP_MAC_CELTIC MAC_CELTIC #define T_MAP_APPLE_CELTIC MAC_CELTIC #define T_NAME_MAC_CELTIC "mac-celtic" #define T_ALIASES_MAC_CELTIC "apple-celtic" #define T_MAP_MAC_CENTRALEUROPE MAC_CENTRALEUROPE #define T_MAP_APPLE_CENTRALEUROPE MAC_CENTRALEUROPE #define T_NAME_MAC_CENTRALEUROPE "mac-central-europe" #define T_ALIASES_MAC_CENTRALEUROPE "apple-central-europe" #define T_MAP_MAC_CROATIAN MAC_CROATIAN #define T_MAP_APPLE_CROATIAN MAC_CROATIAN #define T_NAME_MAC_CROATIAN "mac-croatian" #define T_ALIASES_MAC_CROATIAN "apple-croatian" #define T_MAP_MAC_CYRILLIC MAC_CYRILLIC #define T_MAP_APPLE_CYRILLIC MAC_CYRILLIC #define T_NAME_MAC_CYRILLIC "mac-cyrillic" #define T_ALIASES_MAC_CYRILLIC "apple-cyrillic" #define T_MAP_MAC_DEVANAGARI MAC_DEVANAGARI #define T_MAP_APPLE_DEVANAGARI MAC_DEVANAGARI #define T_NAME_MAC_DEVANAGARI "mac-devanagari" #define T_ALIASES_MAC_DEVANAGARI "apple-devanagari" #define T_MAP_MAC_DINGBATS MAC_DINGBATS #define T_MAP_APPLE_DINGBATS MAC_DINGBATS #define T_NAME_MAC_DINGBATS "mac-dingbats" #define T_ALIASES_MAC_DINGBATS "apple-dingbats" #define T_MAP_MAC_FARSI MAC_FARSI #define T_MAP_APPLE_FARSI MAC_FARSI #define T_NAME_MAC_FARSI "mac-farsi" #define T_ALIASES_MAC_FARSI "apple-farsi" #define T_MAP_MAC_GAELIC MAC_GAELIC #define T_MAP_APPLE_GAELIC MAC_GAELIC #define T_NAME_MAC_GAELIC "mac-gaelic" #define T_ALIASES_MAC_GAELIC "apple-gaelic" #define T_MAP_MAC_GREEK MAC_GREEK #define T_MAP_APPLE_GREEK MAC_GREEK #define T_NAME_MAC_GREEK "mac-greek" #define T_ALIASES_MAC_GREEK "apple-greek" #define T_MAP_MAC_GUJARATI MAC_GUJARATI #define T_MAP_APPLE_GUJARATI MAC_GUJARATI #define T_NAME_MAC_GUJARATI "mac-gujarati" #define T_ALIASES_MAC_GUJARATI "apple-gujarati" #define T_MAP_MAC_GURMUKHI MAC_GURMUKHI #define T_MAP_APPLE_GURMUKHI MAC_GURMUKHI #define T_NAME_MAC_GURMUKHI "mac-gurmukhi" #define T_ALIASES_MAC_GURMUKHI "apple-gurmukhi" #define T_MAP_MAC_HEBREW MAC_HEBREW #define T_MAP_APPLE_HEBREW MAC_HEBREW #define T_NAME_MAC_HEBREW "mac-hebrew" #define T_ALIASES_MAC_HEBREW "apple-hebrew" #define T_MAP_MAC_ICELANDIC MAC_ICELANDIC #define T_MAP_APPLE_ICELANDIC MAC_ICELANDIC #define T_NAME_MAC_ICELANDIC "mac-icelandic" #define T_ALIASES_MAC_ICELANDIC "apple-icelandic" #define T_MAP_MAC_INUIT MAC_INUIT #define T_MAP_APPLE_INUIT MAC_INUIT #define T_NAME_MAC_INUIT "mac-inuit" #define T_ALIASES_MAC_INUIT "apple-inuit" #define T_MAP_MAC_ROMANIAN MAC_ROMANIAN #define T_MAP_APPLE_ROMANIAN MAC_ROMANIAN #define T_NAME_MAC_ROMANIAN "mac-romanian" #define T_ALIASES_MAC_ROMANIAN "apple-romanian" #define T_MAP_MAC_ROMAN MAC_ROMAN #define T_MAP_APPLE_ROMAN MAC_ROMAN #define T_NAME_MAC_ROMAN "mac-roman" #define T_ALIASES_MAC_ROMAN "apple-roman" #define T_MAP_MAC_SYMBOL MAC_SYMBOL #define T_MAP_APPLE_SYMBOL MAC_SYMBOL #define T_NAME_MAC_SYMBOL "mac-symbol" #define T_ALIASES_MAC_SYMBOL "apple-symbol" #define T_MAP_MAC_THAI MAC_THAI #define T_MAP_APPLE_THAI MAC_THAI #define T_NAME_MAC_THAI "mac-thai" #define T_ALIASES_MAC_THAI "apple-thai" #define T_MAP_MAC_TURKISH MAC_TURKISH #define T_MAP_APPLE_TURKISH MAC_TURKISH #define T_NAME_MAC_TURKISH "mac-turkish" #define T_ALIASES_MAC_TURKISH "apple-turkish" /*********** Microsoft charsets for Mac OS ******************/ #define T_MAP_MS_MAC_CYRILLIC MS_MAC_CYRILLIC #define T_MAP_CP10007 MS_MAC_CYRILLIC #define T_NAME_MS_MAC_CYRILLIC "ms-mac-cyrillic" #define T_ALIASES_MS_MAC_CYRILLIC "cp10007" #define T_MAP_MS_MAC_GREEK MS_MAC_GREEK #define T_MAP_CP10006 MS_MAC_GREEK #define T_NAME_MS_MAC_GREEK "ms-mac-greek" #define T_ALIASES_MS_MAC_GREEK "cp10006" #define T_MAP_MS_MAC_ICELANDIC MS_MAC_ICELANDIC #define T_MAP_CP10079 MS_MAC_ICELANDIC #define T_NAME_MS_MAC_ICELANDIC "ms-mac-icelandic" #define T_ALIASES_MS_MAC_ICELANDIC "cp10079" #define T_MAP_MS_MAC_LATIN2 MS_MAC_LATIN2 #define T_MAP_MS_MAC_CENTRAL_EUROPE MS_MAC_LATIN2 #define T_MAP_CP10029 MS_MAC_LATIN2 #define T_NAME_MS_MAC_LATIN2 "ms-mac-latin2" #define T_ALIASES_MS_MAC_LATIN2 "ms-mac-central-europe", "cp10029" #define T_MAP_MS_MAC_ROMAN MS_MAC_ROMAN #define T_MAP_CP10000 MS_MAC_ROMAN #define T_NAME_MS_MAC_ROMAN "ms-mac-roman" #define T_ALIASES_MS_MAC_ROMAN "cp10000" #define T_MAP_MS_MAC_TURKISH MS_MAC_TURKISH #define T_MAP_CP10081 MS_MAC_TURKISH #define T_NAME_MS_MAC_TURKISH "ms-mac-turkish" #define T_ALIASES_MS_MAC_TURKISH "cp10081" /******************* misc charsets *************/ #define T_MAP_APL_ISO_IR_68 APL_ISO_IR_68 #define T_MAP_ISO_IR_68 APL_ISO_IR_68 #define T_MAP_IR_68 APL_ISO_IR_68 #define T_NAME_APL_ISO_IR_68 "apl-iso-ir-68" #define T_ALIASES_APL_ISO_IR_68 "iso-ir-68", "ir-68" #define T_MAP_ATARIST ATARIST #define T_MAP_ATARI_ST ATARIST #define T_NAME_ATARIST "Atari ST" #define T_ALIASES_ATARIST "atarist" #define T_MAP_HP_ROMAN8 HP_ROMAN8 #define T_MAP_HP_ROMAN_8 HP_ROMAN8 #define T_NAME_HP_ROMAN8 "hp-roman8" #define T_ALIASES_HP_ROMAN8 "hp-roman-8" #define T_MAP_JISX0201 JISX0201 #define T_MAP_JISC6220 JISX0201 #define T_NAME_JISX0201 "jis-x-0201" #define T_ALIASES_JISX0201 "jis-c-6220" #define T_MAP_KZ1048 KZ1048 #define T_MAP_KZ_1048 KZ1048 #define T_MAP_STRK1048 KZ1048 #define T_MAP_STRK1048_2002 KZ1048 #define T_NAME_KZ1048 "KZ-1048" #define T_ALIASES_KZ1048 "STRK1048", "STRK1048-2002" #define T_MAP_KOI8_R KOI8_R #define T_MAP_CP878 KOI8_R #define T_MAP_IBM878 KOI8_R #define T_NAME_KOI8_R "koi8-r" #define T_ALIASES_KOI8_R "cp878", "ibm878" #define T_MAP_KOI8_U KOI8_U #define T_MAP_CP1168 KOI8_U #define T_MAP_IBM1168 KOI8_U #define T_NAME_KOI8_U "koi8-u" #define T_ALIASES_KOI8_U "cp1168", "ibm1168" #define T_MAP_NEXTSTEP NEXTSTEP #define T_MAP_NEXT_NEXTSTEP NEXTSTEP #define T_NAME_NEXTSTEP "NextStep" #define T_ALIASES_NEXTSTEP "Next-NextStep" #define T_MAP_VT100 VT100GR #define T_MAP_VT100GR VT100GR #define T_MAP_VT100_GR VT100GR #define T_MAP_VT100_GRAPHICS VT100GR #define T_NAME_VT100GR "vt100-graphics" #define T_ALIASES_VT100GR "vt100-gr", "vt100" typedef trune *Tutf_array; typedef trune (*Tutf_function)(trune); /* get the charset `id' (opaque) from a charset alias */ uldat Tutf_charset_id(TUTF_CONST char *alias); /* get the canonical name from the charset `id' */ TUTF_CONST char *Tutf_charset_name(uldat id); /* get the canonical name from a charset alias */ TUTF_CONST char *Tutf_charset_alias(TUTF_CONST char *alias); /* return a function capable to translate from UTF-32 to given charset */ Tutf_function Tutf_UTF_32_to_charset_function(uldat id); /* return the array to translate from given charset to UTF-32 */ Tutf_array Tutf_charset_to_UTF_32_array(uldat id); /* specific translation functions */ #define Tutf_UTF_32_to_ASCII Tutf_UTF_32_to_ANSI_X3_4 #define Tutf_UTF_32_to_ISO8859_1 Tutf_UTF_32_to_ISO_8859_1 #define Tutf_UTF_32_to_ISO8859_2 Tutf_UTF_32_to_ISO_8859_2 #define Tutf_UTF_32_to_ISO8859_3 Tutf_UTF_32_to_ISO_8859_3 #define Tutf_UTF_32_to_ISO8859_4 Tutf_UTF_32_to_ISO_8859_4 #define Tutf_UTF_32_to_ISO8859_5 Tutf_UTF_32_to_ISO_8859_5 #define Tutf_UTF_32_to_ISO8859_6 Tutf_UTF_32_to_ISO_8859_6 #define Tutf_UTF_32_to_ISO8859_7 Tutf_UTF_32_to_ISO_8859_7 #define Tutf_UTF_32_to_ISO8859_8 Tutf_UTF_32_to_ISO_8859_8 #define Tutf_UTF_32_to_ISO8859_9 Tutf_UTF_32_to_ISO_8859_9 #define Tutf_UTF_32_to_ISO8859_10 Tutf_UTF_32_to_ISO_8859_10 #define Tutf_UTF_32_to_ISO8859_11 Tutf_UTF_32_to_ISO_8859_11 #define Tutf_UTF_32_to_ISO8859_13 Tutf_UTF_32_to_ISO_8859_13 #define Tutf_UTF_32_to_ISO8859_14 Tutf_UTF_32_to_ISO_8859_14 #define Tutf_UTF_32_to_ISO8859_15 Tutf_UTF_32_to_ISO_8859_15 #define Tutf_UTF_32_to_ISO8859_16 Tutf_UTF_32_to_ISO_8859_16 trune Tutf_UTF_32_to_ANSI_X3_4(trune c); trune Tutf_UTF_32_to_ISO_8859_1(trune c); trune Tutf_UTF_32_to_ISO_8859_2(trune c); trune Tutf_UTF_32_to_ISO_8859_3(trune c); trune Tutf_UTF_32_to_ISO_8859_4(trune c); trune Tutf_UTF_32_to_ISO_8859_5(trune c); trune Tutf_UTF_32_to_ISO_8859_6(trune c); trune Tutf_UTF_32_to_ISO_8859_7(trune c); trune Tutf_UTF_32_to_ISO_8859_8(trune c); trune Tutf_UTF_32_to_ISO_8859_9(trune c); trune Tutf_UTF_32_to_ISO_8859_10(trune c); trune Tutf_UTF_32_to_ISO_8859_11(trune c); trune Tutf_UTF_32_to_ISO_8859_13(trune c); trune Tutf_UTF_32_to_ISO_8859_14(trune c); trune Tutf_UTF_32_to_ISO_8859_15(trune c); trune Tutf_UTF_32_to_ISO_8859_16(trune c); trune Tutf_UTF_32_to_CP424(trune c); trune Tutf_UTF_32_to_CP437(trune c); trune Tutf_UTF_32_to_CP737(trune c); trune Tutf_UTF_32_to_CP775(trune c); trune Tutf_UTF_32_to_CP850(trune c); trune Tutf_UTF_32_to_CP852(trune c); trune Tutf_UTF_32_to_CP855(trune c); trune Tutf_UTF_32_to_CP856(trune c); trune Tutf_UTF_32_to_CP857(trune c); trune Tutf_UTF_32_to_CP860(trune c); trune Tutf_UTF_32_to_CP861(trune c); trune Tutf_UTF_32_to_CP862(trune c); trune Tutf_UTF_32_to_CP863(trune c); trune Tutf_UTF_32_to_CP864(trune c); trune Tutf_UTF_32_to_CP865(trune c); trune Tutf_UTF_32_to_CP866(trune c); trune Tutf_UTF_32_to_CP869(trune c); trune Tutf_UTF_32_to_CP874(trune c); trune Tutf_UTF_32_to_CP932(trune c); trune Tutf_UTF_32_to_CP936(trune c); trune Tutf_UTF_32_to_CP949(trune c); trune Tutf_UTF_32_to_CP950(trune c); trune Tutf_UTF_32_to_CP1006(trune c); trune Tutf_UTF_32_to_CP1250(trune c); trune Tutf_UTF_32_to_CP1251(trune c); trune Tutf_UTF_32_to_CP1252(trune c); trune Tutf_UTF_32_to_CP1253(trune c); trune Tutf_UTF_32_to_CP1254(trune c); trune Tutf_UTF_32_to_CP1255(trune c); trune Tutf_UTF_32_to_CP1256(trune c); trune Tutf_UTF_32_to_CP1257(trune c); trune Tutf_UTF_32_to_CP1258(trune c); trune Tutf_UTF_32_to_ADOBE_STDENC(trune c); trune Tutf_UTF_32_to_ADOBE_SYMBOL(trune c); trune Tutf_UTF_32_to_MAC_ARABIC(trune c); trune Tutf_UTF_32_to_MAC_CELTIC(trune c); trune Tutf_UTF_32_to_MAC_CENTRALEUROPE(trune c); trune Tutf_UTF_32_to_MAC_CROATIAN(trune c); trune Tutf_UTF_32_to_MAC_CYRILLIC(trune c); trune Tutf_UTF_32_to_MAC_DEVANAGARI(trune c); trune Tutf_UTF_32_to_MAC_DINGBATS(trune c); trune Tutf_UTF_32_to_MAC_FARSI(trune c); trune Tutf_UTF_32_to_MAC_GAELIC(trune c); trune Tutf_UTF_32_to_MAC_GREEK(trune c); trune Tutf_UTF_32_to_MAC_GUJARATI(trune c); trune Tutf_UTF_32_to_MAC_GURMUKHI(trune c); trune Tutf_UTF_32_to_MAC_HEBREW(trune c); trune Tutf_UTF_32_to_MAC_ICELANDIC(trune c); trune Tutf_UTF_32_to_MAC_INUIT(trune c); trune Tutf_UTF_32_to_MAC_ROMAN(trune c); trune Tutf_UTF_32_to_MAC_ROMANIAN(trune c); trune Tutf_UTF_32_to_MAC_SYMBOL(trune c); trune Tutf_UTF_32_to_MAC_THAI(trune c); trune Tutf_UTF_32_to_MAC_TURKISH(trune c); trune Tutf_UTF_32_to_MS_MAC_CYRILLIC(trune c); trune Tutf_UTF_32_to_MS_MAC_GREEK(trune c); trune Tutf_UTF_32_to_MS_MAC_ICELANDIC(trune c); trune Tutf_UTF_32_to_MS_MAC_LATIN2(trune c); trune Tutf_UTF_32_to_MS_MAC_ROMAN(trune c); trune Tutf_UTF_32_to_MS_MAC_TURKISH(trune c); trune Tutf_UTF_32_to_APL_ISO_IR_68(trune c); trune Tutf_UTF_32_to_ATARIST(trune c); trune Tutf_UTF_32_to_HP_ROMAN8(trune c); trune Tutf_UTF_32_to_JISX0201(trune c); trune Tutf_UTF_32_to_KZ1048(trune c); trune Tutf_UTF_32_to_KOI8_R(trune c); trune Tutf_UTF_32_to_KOI8_U(trune c); trune Tutf_UTF_32_to_NEXTSTEP(trune c); trune Tutf_UTF_32_to_VT100GR(trune c); /* specific translation arrays */ #define Tutf_ASCII_to_UTF_32 Tutf_ANSI_X3_4_to_UTF_32 #define Tutf_ISO8859_1_to_UTF_32 Tutf_ISO_8859_1_to_UTF_32 #define Tutf_ISO8859_2_to_UTF_32 Tutf_ISO_8859_2_to_UTF_32 #define Tutf_ISO8859_3_to_UTF_32 Tutf_ISO_8859_3_to_UTF_32 #define Tutf_ISO8859_4_to_UTF_32 Tutf_ISO_8859_4_to_UTF_32 #define Tutf_ISO8859_5_to_UTF_32 Tutf_ISO_8859_5_to_UTF_32 #define Tutf_ISO8859_6_to_UTF_32 Tutf_ISO_8859_6_to_UTF_32 #define Tutf_ISO8859_7_to_UTF_32 Tutf_ISO_8859_7_to_UTF_32 #define Tutf_ISO8859_8_to_UTF_32 Tutf_ISO_8859_8_to_UTF_32 #define Tutf_ISO8859_9_to_UTF_32 Tutf_ISO_8859_9_to_UTF_32 #define Tutf_ISO8859_10_to_UTF_32 Tutf_ISO_8859_10_to_UTF_32 #define Tutf_ISO8859_11_to_UTF_32 Tutf_ISO_8859_11_to_UTF_32 #define Tutf_ISO8859_13_to_UTF_32 Tutf_ISO_8859_13_to_UTF_32 #define Tutf_ISO8859_14_to_UTF_32 Tutf_ISO_8859_14_to_UTF_32 #define Tutf_ISO8859_15_to_UTF_32 Tutf_ISO_8859_15_to_UTF_32 #define Tutf_ISO8859_16_to_UTF_32 Tutf_ISO_8859_16_to_UTF_32 extern trune Tutf_ANSI_X3_4_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_1_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_2_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_3_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_4_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_5_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_6_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_7_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_8_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_9_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_10_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_13_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_14_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_15_to_UTF_32[0x100]; extern trune Tutf_ISO_8859_16_to_UTF_32[0x100]; extern trune Tutf_CP424_to_UTF_32[0x100]; extern trune Tutf_CP437_to_UTF_32[0x100]; extern trune Tutf_CP737_to_UTF_32[0x100]; extern trune Tutf_CP775_to_UTF_32[0x100]; extern trune Tutf_CP850_to_UTF_32[0x100]; extern trune Tutf_CP852_to_UTF_32[0x100]; extern trune Tutf_CP855_to_UTF_32[0x100]; extern trune Tutf_CP856_to_UTF_32[0x100]; extern trune Tutf_CP857_to_UTF_32[0x100]; extern trune Tutf_CP860_to_UTF_32[0x100]; extern trune Tutf_CP861_to_UTF_32[0x100]; extern trune Tutf_CP862_to_UTF_32[0x100]; extern trune Tutf_CP863_to_UTF_32[0x100]; extern trune Tutf_CP864_to_UTF_32[0x100]; extern trune Tutf_CP865_to_UTF_32[0x100]; extern trune Tutf_CP866_to_UTF_32[0x100]; extern trune Tutf_CP869_to_UTF_32[0x100]; extern trune Tutf_CP874_to_UTF_32[0x100]; extern trune Tutf_CP932_to_UTF_32[0x100]; extern trune Tutf_CP936_to_UTF_32[0x100]; extern trune Tutf_CP949_to_UTF_32[0x100]; extern trune Tutf_CP950_to_UTF_32[0x100]; extern trune Tutf_CP1006_to_UTF_32[0x100]; extern trune Tutf_CP1250_to_UTF_32[0x100]; extern trune Tutf_CP1251_to_UTF_32[0x100]; extern trune Tutf_CP1252_to_UTF_32[0x100]; extern trune Tutf_CP1253_to_UTF_32[0x100]; extern trune Tutf_CP1254_to_UTF_32[0x100]; extern trune Tutf_CP1255_to_UTF_32[0x100]; extern trune Tutf_CP1256_to_UTF_32[0x100]; extern trune Tutf_CP1257_to_UTF_32[0x100]; extern trune Tutf_CP1258_to_UTF_32[0x100]; extern trune Tutf_ADOBE_STDENC_to_UTF_32[0x100]; extern trune Tutf_ADOBE_SYMBOL_to_UTF_32[0x100]; extern trune Tutf_MAC_ARABIC_to_UTF_32[0x100]; extern trune Tutf_MAC_CELTIC_to_UTF_32[0x100]; extern trune Tutf_MAC_CENTRALEUROPE_to_UTF_32[0x100]; extern trune Tutf_MAC_CROATIAN_to_UTF_32[0x100]; extern trune Tutf_MAC_CYRILLIC_to_UTF_32[0x100]; extern trune Tutf_MAC_DEVANAGARI_to_UTF_32[0x100]; extern trune Tutf_MAC_DINGBATS_to_UTF_32[0x100]; extern trune Tutf_MAC_FARSI_to_UTF_32[0x100]; extern trune Tutf_MAC_GAELIC_to_UTF_32[0x100]; extern trune Tutf_MAC_GREEK_to_UTF_32[0x100]; extern trune Tutf_MAC_GUJARATI_to_UTF_32[0x100]; extern trune Tutf_MAC_GURMUKHI_to_UTF_32[0x100]; extern trune Tutf_MAC_HEBREW_to_UTF_32[0x100]; extern trune Tutf_MAC_ICELANDIC_to_UTF_32[0x100]; extern trune Tutf_MAC_INUIT_to_UTF_32[0x100]; extern trune Tutf_MAC_ROMAN_to_UTF_32[0x100]; extern trune Tutf_MAC_ROMANIAN_to_UTF_32[0x100]; extern trune Tutf_MAC_SYMBOL_to_UTF_32[0x100]; extern trune Tutf_MAC_THAI_to_UTF_32[0x100]; extern trune Tutf_MAC_TURKISH_to_UTF_32[0x100]; extern trune Tutf_MAC_UKRAINE_to_UTF_32[0x100]; extern trune Tutf_MS_MAC_CYRILLIC_to_UTF_32[0x100]; extern trune Tutf_MS_MAC_GREEK_to_UTF_32[0x100]; extern trune Tutf_MS_MAC_ICELANDIC_to_UTF_32[0x100]; extern trune Tutf_MS_MAC_LATIN2_to_UTF_32[0x100]; extern trune Tutf_MS_MAC_ROMAN_to_UTF_32[0x100]; extern trune Tutf_MS_MAC_TURKISH_to_UTF_32[0x100]; extern trune Tutf_APL_ISO_IR_68_to_UTF_32[0x100]; extern trune Tutf_ATARIST_to_UTF_32[0x100]; extern trune Tutf_HP_ROMAN8_to_UTF_32[0x100]; extern trune Tutf_JISX0201_to_UTF_32[0x100]; extern trune Tutf_KZ1048_to_UTF_32[0x100]; extern trune Tutf_KOI8_R_to_UTF_32[0x100]; extern trune Tutf_KOI8_U_to_UTF_32[0x100]; extern trune Tutf_NEXTSTEP_to_UTF_32[0x100]; extern trune Tutf_VT100GR_to_UTF_32[0x100]; #define Tutf_CP437_to_ASCII Tutf_CP437_to_ANSI_X3_4 extern trune Tutf_CP437_to_ANSI_X3_4[0x100]; #ifdef __cplusplus } #endif #endif /* TUTF_H */ ������������������������������������������������������twin-0.9.0/include/Tutf/Tutf_defs.h�����������������������������������������������������������������0000664�0000000�0000000�00000005454�13775351206�0017163�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Twutf_defs.h -- include for ASCII/VGA/UTF/UNICODE characters database * * Copyright (C) 2001 by Massimiliano Ghilardi * * 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. * */ #ifndef TUTF_DEFS_H #define TUTF_DEFS_H #include <Tutf/utf_32.h> #include <Tutf/ascii.h> #include <Tutf/iso8859_1.h> #include <Tutf/iso8859_2.h> #include <Tutf/iso8859_3.h> #include <Tutf/iso8859_4.h> #include <Tutf/iso8859_5.h> #include <Tutf/iso8859_6.h> #include <Tutf/iso8859_7.h> #include <Tutf/iso8859_8.h> #include <Tutf/iso8859_9.h> #include <Tutf/iso8859_10.h> #include <Tutf/iso8859_11.h> #include <Tutf/iso8859_13.h> #include <Tutf/iso8859_14.h> #include <Tutf/iso8859_15.h> #include <Tutf/iso8859_16.h> #include <Tutf/cp424.h> #include <Tutf/cp437.h> #include <Tutf/cp737.h> #include <Tutf/cp775.h> #include <Tutf/cp850.h> #include <Tutf/cp852.h> #include <Tutf/cp855.h> #include <Tutf/cp856.h> #include <Tutf/cp857.h> #include <Tutf/cp860.h> #include <Tutf/cp861.h> #include <Tutf/cp862.h> #include <Tutf/cp863.h> #include <Tutf/cp864.h> #include <Tutf/cp865.h> #include <Tutf/cp866.h> #include <Tutf/cp869.h> #include <Tutf/cp874.h> #include <Tutf/cp932.h> #include <Tutf/cp936.h> #include <Tutf/cp949.h> #include <Tutf/cp950.h> #include <Tutf/cp1006.h> #include <Tutf/cp1250.h> #include <Tutf/cp1251.h> #include <Tutf/cp1252.h> #include <Tutf/cp1253.h> #include <Tutf/cp1254.h> #include <Tutf/cp1255.h> #include <Tutf/cp1256.h> #include <Tutf/cp1257.h> #include <Tutf/cp1258.h> #include <Tutf/adobe_stdenc.h> #include <Tutf/adobe_symbol.h> #include <Tutf/mac_arabic.h> #include <Tutf/mac_celtic.h> #include <Tutf/mac_centraleurope.h> #include <Tutf/mac_croatian.h> #include <Tutf/mac_cyrillic.h> #include <Tutf/mac_devanagari.h> #include <Tutf/mac_dingbats.h> #include <Tutf/mac_farsi.h> #include <Tutf/mac_gaelic.h> #include <Tutf/mac_greek.h> #include <Tutf/mac_gujarati.h> #include <Tutf/mac_gurmukhi.h> #include <Tutf/mac_hebrew.h> #include <Tutf/mac_icelandic.h> #include <Tutf/mac_inuit.h> #include <Tutf/mac_roman.h> #include <Tutf/mac_romanian.h> #include <Tutf/mac_symbol.h> #include <Tutf/mac_thai.h> #include <Tutf/mac_turkish.h> #include <Tutf/ms_mac_cyrillic.h> #include <Tutf/ms_mac_greek.h> #include <Tutf/ms_mac_icelandic.h> #include <Tutf/ms_mac_latin2.h> #include <Tutf/ms_mac_roman.h> #include <Tutf/ms_mac_turkish.h> /* miscellaneous encodings */ #include <Tutf/apl_iso_ir_68.h> #include <Tutf/atarist.h> #include <Tutf/hp_roman8.h> #include <Tutf/jisx0201.h> #include <Tutf/koi8_r.h> #include <Tutf/koi8_u.h> #include <Tutf/kz1048.h> #include <Tutf/nextstep.h> #include <Tutf/vt100gr.h> #endif /* TUTF_DEFS_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/Tutftypes.h�����������������������������������������������������������������0000664�0000000�0000000�00000000200�13775351206�0017227�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TUTF_TYPES_H #include <Tw/Twtypes.h> #include <Tutf/compiler.h> #include <Tutf/version.h> #endif /* TUTF_TYPES_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/adobe_stdenc.h��������������������������������������������������������������0000664�0000000�0000000�00000072002�13775351206�0017643�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ADOBE_STDENC_H #define TUTF_ADOBE_STDENC_H #define T_ADOBE_STDENC_CTRL_NULL 0x0000 #define T_ADOBE_STDENC_CTRL_START_OF_HEADING 0x0001 #define T_ADOBE_STDENC_CTRL_START_OF_TEXT 0x0002 #define T_ADOBE_STDENC_CTRL_END_OF_TEXT 0x0003 #define T_ADOBE_STDENC_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ADOBE_STDENC_CTRL_ENQUIRY 0x0005 #define T_ADOBE_STDENC_CTRL_ACKNOWLEDGE 0x0006 #define T_ADOBE_STDENC_CTRL_BELL 0x0007 #define T_ADOBE_STDENC_CTRL_BACKSPACE 0x0008 #define T_ADOBE_STDENC_CTRL_CHARACTER_TABULATION 0x0009 #define T_ADOBE_STDENC_CTRL_LINE_FEED 0x000A #define T_ADOBE_STDENC_CTRL_LINE_TABULATION 0x000B #define T_ADOBE_STDENC_CTRL_FORM_FEED 0x000C #define T_ADOBE_STDENC_CTRL_CARRIAGE_RETURN 0x000D #define T_ADOBE_STDENC_CTRL_SHIFT_OUT 0x000E #define T_ADOBE_STDENC_CTRL_SHIFT_IN 0x000F #define T_ADOBE_STDENC_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ADOBE_STDENC_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ADOBE_STDENC_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ADOBE_STDENC_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ADOBE_STDENC_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ADOBE_STDENC_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ADOBE_STDENC_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ADOBE_STDENC_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ADOBE_STDENC_CTRL_CANCEL 0x0018 #define T_ADOBE_STDENC_CTRL_END_OF_MEDIUM 0x0019 #define T_ADOBE_STDENC_CTRL_SUBSTITUTE 0x001A #define T_ADOBE_STDENC_CTRL_ESCAPE 0x001B #define T_ADOBE_STDENC_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ADOBE_STDENC_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ADOBE_STDENC_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ADOBE_STDENC_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ADOBE_STDENC_SPACE 0x0020 #define T_ADOBE_STDENC_EXCLAMATION_MARK 0x0021 #define T_ADOBE_STDENC_QUOTATION_MARK 0x0022 #define T_ADOBE_STDENC_NUMBER_SIGN 0x0023 #define T_ADOBE_STDENC_DOLLAR_SIGN 0x0024 #define T_ADOBE_STDENC_PERCENT_SIGN 0x0025 #define T_ADOBE_STDENC_AMPERSAND 0x0026 #define T_ADOBE_STDENC_COPYRIGHT_SIGN 0x0027 #define T_ADOBE_STDENC_LEFT_PARENTHESIS 0x0028 #define T_ADOBE_STDENC_RIGHT_PARENTHESIS 0x0029 #define T_ADOBE_STDENC_ASTERISK 0x002A #define T_ADOBE_STDENC_PLUS_SIGN 0x002B #define T_ADOBE_STDENC_COMMA 0x002C #define T_ADOBE_STDENC_HYPHEN_MINUS 0x002D #define T_ADOBE_STDENC_FULL_STOP 0x002E #define T_ADOBE_STDENC_SOLIDUS 0x002F #define T_ADOBE_STDENC_DIGIT_ZERO 0x0030 #define T_ADOBE_STDENC_DIGIT_ONE 0x0031 #define T_ADOBE_STDENC_DIGIT_TWO 0x0032 #define T_ADOBE_STDENC_DIGIT_THREE 0x0033 #define T_ADOBE_STDENC_DIGIT_FOUR 0x0034 #define T_ADOBE_STDENC_DIGIT_FIVE 0x0035 #define T_ADOBE_STDENC_DIGIT_SIX 0x0036 #define T_ADOBE_STDENC_DIGIT_SEVEN 0x0037 #define T_ADOBE_STDENC_DIGIT_EIGHT 0x0038 #define T_ADOBE_STDENC_DIGIT_NINE 0x0039 #define T_ADOBE_STDENC_COLON 0x003A #define T_ADOBE_STDENC_SEMICOLON 0x003B #define T_ADOBE_STDENC_LESS_THAN_SIGN 0x003C #define T_ADOBE_STDENC_EQUALS_SIGN 0x003D #define T_ADOBE_STDENC_GREATER_THAN_SIGN 0x003E #define T_ADOBE_STDENC_QUESTION_MARK 0x003F #define T_ADOBE_STDENC_COMMERCIAL_AT 0x0040 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_J 0x004A #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_K 0x004B #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_L 0x004C #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_M 0x004D #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_N 0x004E #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_O 0x004F #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ADOBE_STDENC_LEFT_SQUARE_BRACKET 0x005B #define T_ADOBE_STDENC_REVERSE_SOLIDUS 0x005C #define T_ADOBE_STDENC_RIGHT_SQUARE_BRACKET 0x005D #define T_ADOBE_STDENC_CIRCUMFLEX_ACCENT 0x005E #define T_ADOBE_STDENC_LOW_LINE 0x005F #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x0060 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_A 0x0061 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_B 0x0062 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_C 0x0063 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_D 0x0064 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_E 0x0065 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_F 0x0066 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_G 0x0067 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_H 0x0068 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_I 0x0069 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_J 0x006A #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_K 0x006B #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_L 0x006C #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_M 0x006D #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_N 0x006E #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_O 0x006F #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_P 0x0070 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_Q 0x0071 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_R 0x0072 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_S 0x0073 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_T 0x0074 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_U 0x0075 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_V 0x0076 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_W 0x0077 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_X 0x0078 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_Y 0x0079 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_Z 0x007A #define T_ADOBE_STDENC_LEFT_CURLY_BRACKET 0x007B #define T_ADOBE_STDENC_VERTICAL_LINE 0x007C #define T_ADOBE_STDENC_RIGHT_CURLY_BRACKET 0x007D #define T_ADOBE_STDENC_TILDE 0x007E #define T_ADOBE_STDENC_UNDEFINED_007F 0x007F #define T_ADOBE_STDENC_UNDEFINED_0080 0x0080 #define T_ADOBE_STDENC_UNDEFINED_0081 0x0081 #define T_ADOBE_STDENC_UNDEFINED_0082 0x0082 #define T_ADOBE_STDENC_UNDEFINED_0083 0x0083 #define T_ADOBE_STDENC_UNDEFINED_0084 0x0084 #define T_ADOBE_STDENC_UNDEFINED_0085 0x0085 #define T_ADOBE_STDENC_UNDEFINED_0086 0x0086 #define T_ADOBE_STDENC_UNDEFINED_0087 0x0087 #define T_ADOBE_STDENC_UNDEFINED_0088 0x0088 #define T_ADOBE_STDENC_UNDEFINED_0089 0x0089 #define T_ADOBE_STDENC_UNDEFINED_008A 0x008A #define T_ADOBE_STDENC_UNDEFINED_008B 0x008B #define T_ADOBE_STDENC_UNDEFINED_008C 0x008C #define T_ADOBE_STDENC_UNDEFINED_008D 0x008D #define T_ADOBE_STDENC_UNDEFINED_008E 0x008E #define T_ADOBE_STDENC_UNDEFINED_008F 0x008F #define T_ADOBE_STDENC_UNDEFINED_0090 0x0090 #define T_ADOBE_STDENC_UNDEFINED_0091 0x0091 #define T_ADOBE_STDENC_UNDEFINED_0092 0x0092 #define T_ADOBE_STDENC_UNDEFINED_0093 0x0093 #define T_ADOBE_STDENC_UNDEFINED_0094 0x0094 #define T_ADOBE_STDENC_UNDEFINED_0095 0x0095 #define T_ADOBE_STDENC_UNDEFINED_0096 0x0096 #define T_ADOBE_STDENC_UNDEFINED_0097 0x0097 #define T_ADOBE_STDENC_UNDEFINED_0098 0x0098 #define T_ADOBE_STDENC_UNDEFINED_0099 0x0099 #define T_ADOBE_STDENC_UNDEFINED_009A 0x009A #define T_ADOBE_STDENC_UNDEFINED_009B 0x009B #define T_ADOBE_STDENC_UNDEFINED_009C 0x009C #define T_ADOBE_STDENC_UNDEFINED_009D 0x009D #define T_ADOBE_STDENC_UNDEFINED_009E 0x009E #define T_ADOBE_STDENC_UNDEFINED_009F 0x009F #define T_ADOBE_STDENC_UNDEFINED_00A0 0x00A0 #define T_ADOBE_STDENC_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_ADOBE_STDENC_CENT_SIGN 0x00A2 #define T_ADOBE_STDENC_POUND_SIGN 0x00A3 #define T_ADOBE_STDENC_DIAERESIS 0x00A4 #define T_ADOBE_STDENC_YEN_SIGN 0x00A5 #define T_ADOBE_STDENC_UNDEFINED_00A6 0x00A6 #define T_ADOBE_STDENC_SECTION_SIGN 0x00A7 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00A8 #define T_ADOBE_STDENC_UNDEFINED_00A9 0x00A9 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00AA #define T_ADOBE_STDENC_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_ADOBE_STDENC_UNDEFINED_00AC 0x00AC #define T_ADOBE_STDENC_UNDEFINED_00AD 0x00AD #define T_ADOBE_STDENC_UNDEFINED_00AE 0x00AE #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00AF #define T_ADOBE_STDENC_UNDEFINED_00B0 0x00B0 #define T_ADOBE_STDENC_UNDEFINED_00B1 0x00B1 #define T_ADOBE_STDENC_UNDEFINED_00B2 0x00B2 #define T_ADOBE_STDENC_UNDEFINED_00B3 0x00B3 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00B4 #define T_ADOBE_STDENC_UNDEFINED_00B5 0x00B5 #define T_ADOBE_STDENC_PILCROW_SIGN 0x00B6 #define T_ADOBE_STDENC_ACUTE_ACCENT 0x00B7 #define T_ADOBE_STDENC_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00B8 #define T_ADOBE_STDENC_UNDEFINED_00B9 0x00B9 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00BA #define T_ADOBE_STDENC_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_ADOBE_STDENC_UNDEFINED_00BC 0x00BC #define T_ADOBE_STDENC_UNDEFINED_00BD 0x00BD #define T_ADOBE_STDENC_UNDEFINED_00BE 0x00BE #define T_ADOBE_STDENC_INVERTED_QUESTION_MARK 0x00BF #define T_ADOBE_STDENC_UNDEFINED_00C0 0x00C0 #define T_ADOBE_STDENC_UNDEFINED_00C1 0x00C1 #define T_ADOBE_STDENC_UNDEFINED_00C2 0x00C2 #define T_ADOBE_STDENC_UNDEFINED_00C3 0x00C3 #define T_ADOBE_STDENC_UNDEFINED_00C4 0x00C4 #define T_ADOBE_STDENC_UNDEFINED_00C5 0x00C5 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00C6 #define T_ADOBE_STDENC_UNDEFINED_00C7 0x00C7 #define T_ADOBE_STDENC_UNDEFINED_00C8 0x00C8 #define T_ADOBE_STDENC_UNDEFINED_00C9 0x00C9 #define T_ADOBE_STDENC_UNDEFINED_00CA 0x00CA #define T_ADOBE_STDENC_UNDEFINED_00CB 0x00CB #define T_ADOBE_STDENC_UNDEFINED_00CC 0x00CC #define T_ADOBE_STDENC_UNDEFINED_00CD 0x00CD #define T_ADOBE_STDENC_UNDEFINED_00CE 0x00CE #define T_ADOBE_STDENC_UNDEFINED_00CF 0x00CF #define T_ADOBE_STDENC_UNDEFINED_00D0 0x00D0 #define T_ADOBE_STDENC_UNDEFINED_00D1 0x00D1 #define T_ADOBE_STDENC_UNDEFINED_00D2 0x00D2 #define T_ADOBE_STDENC_UNDEFINED_00D3 0x00D3 #define T_ADOBE_STDENC_UNDEFINED_00D4 0x00D4 #define T_ADOBE_STDENC_UNDEFINED_00D5 0x00D5 #define T_ADOBE_STDENC_UNDEFINED_00D6 0x00D6 #define T_ADOBE_STDENC_UNDEFINED_00D7 0x00D7 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00D8 #define T_ADOBE_STDENC_UNDEFINED_00D9 0x00D9 #define T_ADOBE_STDENC_UNDEFINED_00DA 0x00DA #define T_ADOBE_STDENC_UNDEFINED_00DB 0x00DB #define T_ADOBE_STDENC_UNDEFINED_00DC 0x00DC #define T_ADOBE_STDENC_UNDEFINED_00DD 0x00DD #define T_ADOBE_STDENC_UNDEFINED_00DE 0x00DE #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00DF #define T_ADOBE_STDENC_UNDEFINED_00E0 0x00E0 #define T_ADOBE_STDENC_UNDEFINED_00E1 0x00E1 #define T_ADOBE_STDENC_UNDEFINED_00E2 0x00E2 #define T_ADOBE_STDENC_UNDEFINED_00E3 0x00E3 #define T_ADOBE_STDENC_UNDEFINED_00E4 0x00E4 #define T_ADOBE_STDENC_UNDEFINED_00E5 0x00E5 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00E6 #define T_ADOBE_STDENC_UNDEFINED_00E7 0x00E7 #define T_ADOBE_STDENC_UNDEFINED_00E8 0x00E8 #define T_ADOBE_STDENC_UNDEFINED_00E9 0x00E9 #define T_ADOBE_STDENC_UNDEFINED_00EA 0x00EA #define T_ADOBE_STDENC_UNDEFINED_00EB 0x00EB #define T_ADOBE_STDENC_UNDEFINED_00EC 0x00EC #define T_ADOBE_STDENC_UNDEFINED_00ED 0x00ED #define T_ADOBE_STDENC_UNDEFINED_00EE 0x00EE #define T_ADOBE_STDENC_UNDEFINED_00EF 0x00EF #define T_ADOBE_STDENC_UNDEFINED_00F0 0x00F0 #define T_ADOBE_STDENC_UNDEFINED_00F1 0x00F1 #define T_ADOBE_STDENC_UNDEFINED_00F2 0x00F2 #define T_ADOBE_STDENC_UNDEFINED_00F3 0x00F3 #define T_ADOBE_STDENC_UNDEFINED_00F4 0x00F4 #define T_ADOBE_STDENC_UNDEFINED_00F5 0x00F5 #define T_ADOBE_STDENC_UNDEFINED_00F6 0x00F6 #define T_ADOBE_STDENC_UNDEFINED_00F7 0x00F7 #define T_ADOBE_STDENC_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F8 #define T_ADOBE_STDENC_UNDEFINED_00F9 0x00F9 #define T_ADOBE_STDENC_UNDEFINED_00FA 0x00FA #define T_ADOBE_STDENC_UNDEFINED_00FB 0x00FB #define T_ADOBE_STDENC_UNDEFINED_00FC 0x00FC #define T_ADOBE_STDENC_UNDEFINED_00FD 0x00FD #define T_ADOBE_STDENC_UNDEFINED_00FE 0x00FE #define T_ADOBE_STDENC_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_ADOBE_STDENC(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_COPYRIGHT_SIGN) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_UNDEFINED_00A0) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_DIAERESIS) \ EL(_YEN_SIGN) \ EL(_SECTION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_00AD) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_PILCROW_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_INVERTED_QUESTION_MARK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ADOBE_STDENC(EL) \ EL(_COPYRIGHT_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_UNDEFINED_00A0) \ EL(_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_UNDEFINED_00AD) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_ACUTE_ACCENT) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) #endif /* TUTF_ADOBE_STDENC_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/adobe_symbol.h��������������������������������������������������������������0000664�0000000�0000000�00000046602�13775351206�0017677�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ADOBE_SYMBOL_H #define TUTF_ADOBE_SYMBOL_H #define T_ADOBE_SYMBOL_CTRL_NULL 0x0000 #define T_ADOBE_SYMBOL_CTRL_START_OF_HEADING 0x0001 #define T_ADOBE_SYMBOL_CTRL_START_OF_TEXT 0x0002 #define T_ADOBE_SYMBOL_CTRL_END_OF_TEXT 0x0003 #define T_ADOBE_SYMBOL_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ADOBE_SYMBOL_CTRL_ENQUIRY 0x0005 #define T_ADOBE_SYMBOL_CTRL_ACKNOWLEDGE 0x0006 #define T_ADOBE_SYMBOL_CTRL_BELL 0x0007 #define T_ADOBE_SYMBOL_CTRL_BACKSPACE 0x0008 #define T_ADOBE_SYMBOL_CTRL_CHARACTER_TABULATION 0x0009 #define T_ADOBE_SYMBOL_CTRL_LINE_FEED 0x000A #define T_ADOBE_SYMBOL_CTRL_LINE_TABULATION 0x000B #define T_ADOBE_SYMBOL_CTRL_FORM_FEED 0x000C #define T_ADOBE_SYMBOL_CTRL_CARRIAGE_RETURN 0x000D #define T_ADOBE_SYMBOL_CTRL_SHIFT_OUT 0x000E #define T_ADOBE_SYMBOL_CTRL_SHIFT_IN 0x000F #define T_ADOBE_SYMBOL_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ADOBE_SYMBOL_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ADOBE_SYMBOL_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ADOBE_SYMBOL_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ADOBE_SYMBOL_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ADOBE_SYMBOL_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ADOBE_SYMBOL_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ADOBE_SYMBOL_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ADOBE_SYMBOL_CTRL_CANCEL 0x0018 #define T_ADOBE_SYMBOL_CTRL_END_OF_MEDIUM 0x0019 #define T_ADOBE_SYMBOL_CTRL_SUBSTITUTE 0x001A #define T_ADOBE_SYMBOL_CTRL_ESCAPE 0x001B #define T_ADOBE_SYMBOL_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ADOBE_SYMBOL_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ADOBE_SYMBOL_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ADOBE_SYMBOL_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ADOBE_SYMBOL_SPACE 0x0020 #define T_ADOBE_SYMBOL_EXCLAMATION_MARK 0x0021 #define T_ADOBE_SYMBOL_UNDEFINED_0022 0x0022 #define T_ADOBE_SYMBOL_NUMBER_SIGN 0x0023 #define T_ADOBE_SYMBOL_UNDEFINED_0024 0x0024 #define T_ADOBE_SYMBOL_PERCENT_SIGN 0x0025 #define T_ADOBE_SYMBOL_AMPERSAND 0x0026 #define T_ADOBE_SYMBOL_UNDEFINED_0027 0x0027 #define T_ADOBE_SYMBOL_LEFT_PARENTHESIS 0x0028 #define T_ADOBE_SYMBOL_RIGHT_PARENTHESIS 0x0029 #define T_ADOBE_SYMBOL_UNDEFINED_002A 0x002A #define T_ADOBE_SYMBOL_PLUS_SIGN 0x002B #define T_ADOBE_SYMBOL_COMMA 0x002C #define T_ADOBE_SYMBOL_UNDEFINED_002D 0x002D #define T_ADOBE_SYMBOL_FULL_STOP 0x002E #define T_ADOBE_SYMBOL_SOLIDUS 0x002F #define T_ADOBE_SYMBOL_DIGIT_ZERO 0x0030 #define T_ADOBE_SYMBOL_DIGIT_ONE 0x0031 #define T_ADOBE_SYMBOL_DIGIT_TWO 0x0032 #define T_ADOBE_SYMBOL_DIGIT_THREE 0x0033 #define T_ADOBE_SYMBOL_DIGIT_FOUR 0x0034 #define T_ADOBE_SYMBOL_DIGIT_FIVE 0x0035 #define T_ADOBE_SYMBOL_DIGIT_SIX 0x0036 #define T_ADOBE_SYMBOL_DIGIT_SEVEN 0x0037 #define T_ADOBE_SYMBOL_DIGIT_EIGHT 0x0038 #define T_ADOBE_SYMBOL_DIGIT_NINE 0x0039 #define T_ADOBE_SYMBOL_COLON 0x003A #define T_ADOBE_SYMBOL_SEMICOLON 0x003B #define T_ADOBE_SYMBOL_LESS_THAN_SIGN 0x003C #define T_ADOBE_SYMBOL_EQUALS_SIGN 0x003D #define T_ADOBE_SYMBOL_GREATER_THAN_SIGN 0x003E #define T_ADOBE_SYMBOL_QUESTION_MARK 0x003F #define T_ADOBE_SYMBOL_UNDEFINED_0040 0x0040 #define T_ADOBE_SYMBOL_UNDEFINED_0041 0x0041 #define T_ADOBE_SYMBOL_UNDEFINED_0042 0x0042 #define T_ADOBE_SYMBOL_UNDEFINED_0043 0x0043 #define T_ADOBE_SYMBOL_UNDEFINED_0044 0x0044 #define T_ADOBE_SYMBOL_UNDEFINED_0045 0x0045 #define T_ADOBE_SYMBOL_UNDEFINED_0046 0x0046 #define T_ADOBE_SYMBOL_UNDEFINED_0047 0x0047 #define T_ADOBE_SYMBOL_UNDEFINED_0048 0x0048 #define T_ADOBE_SYMBOL_UNDEFINED_0049 0x0049 #define T_ADOBE_SYMBOL_UNDEFINED_004A 0x004A #define T_ADOBE_SYMBOL_UNDEFINED_004B 0x004B #define T_ADOBE_SYMBOL_UNDEFINED_004C 0x004C #define T_ADOBE_SYMBOL_UNDEFINED_004D 0x004D #define T_ADOBE_SYMBOL_UNDEFINED_004E 0x004E #define T_ADOBE_SYMBOL_UNDEFINED_004F 0x004F #define T_ADOBE_SYMBOL_UNDEFINED_0050 0x0050 #define T_ADOBE_SYMBOL_UNDEFINED_0051 0x0051 #define T_ADOBE_SYMBOL_UNDEFINED_0052 0x0052 #define T_ADOBE_SYMBOL_UNDEFINED_0053 0x0053 #define T_ADOBE_SYMBOL_UNDEFINED_0054 0x0054 #define T_ADOBE_SYMBOL_UNDEFINED_0055 0x0055 #define T_ADOBE_SYMBOL_UNDEFINED_0056 0x0056 #define T_ADOBE_SYMBOL_UNDEFINED_0057 0x0057 #define T_ADOBE_SYMBOL_UNDEFINED_0058 0x0058 #define T_ADOBE_SYMBOL_UNDEFINED_0059 0x0059 #define T_ADOBE_SYMBOL_UNDEFINED_005A 0x005A #define T_ADOBE_SYMBOL_LEFT_SQUARE_BRACKET 0x005B #define T_ADOBE_SYMBOL_UNDEFINED_005C 0x005C #define T_ADOBE_SYMBOL_RIGHT_SQUARE_BRACKET 0x005D #define T_ADOBE_SYMBOL_UNDEFINED_005E 0x005E #define T_ADOBE_SYMBOL_LOW_LINE 0x005F #define T_ADOBE_SYMBOL_UNDEFINED_0060 0x0060 #define T_ADOBE_SYMBOL_UNDEFINED_0061 0x0061 #define T_ADOBE_SYMBOL_UNDEFINED_0062 0x0062 #define T_ADOBE_SYMBOL_UNDEFINED_0063 0x0063 #define T_ADOBE_SYMBOL_UNDEFINED_0064 0x0064 #define T_ADOBE_SYMBOL_UNDEFINED_0065 0x0065 #define T_ADOBE_SYMBOL_UNDEFINED_0066 0x0066 #define T_ADOBE_SYMBOL_UNDEFINED_0067 0x0067 #define T_ADOBE_SYMBOL_UNDEFINED_0068 0x0068 #define T_ADOBE_SYMBOL_UNDEFINED_0069 0x0069 #define T_ADOBE_SYMBOL_UNDEFINED_006A 0x006A #define T_ADOBE_SYMBOL_UNDEFINED_006B 0x006B #define T_ADOBE_SYMBOL_UNDEFINED_006C 0x006C #define T_ADOBE_SYMBOL_UNDEFINED_006D 0x006D #define T_ADOBE_SYMBOL_UNDEFINED_006E 0x006E #define T_ADOBE_SYMBOL_UNDEFINED_006F 0x006F #define T_ADOBE_SYMBOL_UNDEFINED_0070 0x0070 #define T_ADOBE_SYMBOL_UNDEFINED_0071 0x0071 #define T_ADOBE_SYMBOL_UNDEFINED_0072 0x0072 #define T_ADOBE_SYMBOL_UNDEFINED_0073 0x0073 #define T_ADOBE_SYMBOL_UNDEFINED_0074 0x0074 #define T_ADOBE_SYMBOL_UNDEFINED_0075 0x0075 #define T_ADOBE_SYMBOL_UNDEFINED_0076 0x0076 #define T_ADOBE_SYMBOL_UNDEFINED_0077 0x0077 #define T_ADOBE_SYMBOL_UNDEFINED_0078 0x0078 #define T_ADOBE_SYMBOL_UNDEFINED_0079 0x0079 #define T_ADOBE_SYMBOL_UNDEFINED_007A 0x007A #define T_ADOBE_SYMBOL_LEFT_CURLY_BRACKET 0x007B #define T_ADOBE_SYMBOL_VERTICAL_LINE 0x007C #define T_ADOBE_SYMBOL_RIGHT_CURLY_BRACKET 0x007D #define T_ADOBE_SYMBOL_UNDEFINED_007E 0x007E #define T_ADOBE_SYMBOL_UNDEFINED_007F 0x007F #define T_ADOBE_SYMBOL_UNDEFINED_0080 0x0080 #define T_ADOBE_SYMBOL_UNDEFINED_0081 0x0081 #define T_ADOBE_SYMBOL_UNDEFINED_0082 0x0082 #define T_ADOBE_SYMBOL_UNDEFINED_0083 0x0083 #define T_ADOBE_SYMBOL_UNDEFINED_0084 0x0084 #define T_ADOBE_SYMBOL_UNDEFINED_0085 0x0085 #define T_ADOBE_SYMBOL_UNDEFINED_0086 0x0086 #define T_ADOBE_SYMBOL_UNDEFINED_0087 0x0087 #define T_ADOBE_SYMBOL_UNDEFINED_0088 0x0088 #define T_ADOBE_SYMBOL_UNDEFINED_0089 0x0089 #define T_ADOBE_SYMBOL_UNDEFINED_008A 0x008A #define T_ADOBE_SYMBOL_UNDEFINED_008B 0x008B #define T_ADOBE_SYMBOL_UNDEFINED_008C 0x008C #define T_ADOBE_SYMBOL_UNDEFINED_008D 0x008D #define T_ADOBE_SYMBOL_UNDEFINED_008E 0x008E #define T_ADOBE_SYMBOL_UNDEFINED_008F 0x008F #define T_ADOBE_SYMBOL_UNDEFINED_0090 0x0090 #define T_ADOBE_SYMBOL_UNDEFINED_0091 0x0091 #define T_ADOBE_SYMBOL_UNDEFINED_0092 0x0092 #define T_ADOBE_SYMBOL_UNDEFINED_0093 0x0093 #define T_ADOBE_SYMBOL_UNDEFINED_0094 0x0094 #define T_ADOBE_SYMBOL_UNDEFINED_0095 0x0095 #define T_ADOBE_SYMBOL_UNDEFINED_0096 0x0096 #define T_ADOBE_SYMBOL_UNDEFINED_0097 0x0097 #define T_ADOBE_SYMBOL_UNDEFINED_0098 0x0098 #define T_ADOBE_SYMBOL_UNDEFINED_0099 0x0099 #define T_ADOBE_SYMBOL_UNDEFINED_009A 0x009A #define T_ADOBE_SYMBOL_UNDEFINED_009B 0x009B #define T_ADOBE_SYMBOL_UNDEFINED_009C 0x009C #define T_ADOBE_SYMBOL_UNDEFINED_009D 0x009D #define T_ADOBE_SYMBOL_UNDEFINED_009E 0x009E #define T_ADOBE_SYMBOL_UNDEFINED_009F 0x009F #define T_ADOBE_SYMBOL_UNDEFINED_00A0 0x00A0 #define T_ADOBE_SYMBOL_UNDEFINED_00A1 0x00A1 #define T_ADOBE_SYMBOL_UNDEFINED_00A2 0x00A2 #define T_ADOBE_SYMBOL_UNDEFINED_00A3 0x00A3 #define T_ADOBE_SYMBOL_UNDEFINED_00A4 0x00A4 #define T_ADOBE_SYMBOL_UNDEFINED_00A5 0x00A5 #define T_ADOBE_SYMBOL_UNDEFINED_00A6 0x00A6 #define T_ADOBE_SYMBOL_UNDEFINED_00A7 0x00A7 #define T_ADOBE_SYMBOL_UNDEFINED_00A8 0x00A8 #define T_ADOBE_SYMBOL_UNDEFINED_00A9 0x00A9 #define T_ADOBE_SYMBOL_UNDEFINED_00AA 0x00AA #define T_ADOBE_SYMBOL_UNDEFINED_00AB 0x00AB #define T_ADOBE_SYMBOL_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00AC #define T_ADOBE_SYMBOL_UNDEFINED_00AD 0x00AD #define T_ADOBE_SYMBOL_UNDEFINED_00AE 0x00AE #define T_ADOBE_SYMBOL_UNDEFINED_00AF 0x00AF #define T_ADOBE_SYMBOL_DEGREE_SIGN 0x00B0 #define T_ADOBE_SYMBOL_PLUS_MINUS_SIGN 0x00B1 #define T_ADOBE_SYMBOL_UNDEFINED_00B2 0x00B2 #define T_ADOBE_SYMBOL_UNDEFINED_00B3 0x00B3 #define T_ADOBE_SYMBOL_UNDEFINED_00B4 0x00B4 #define T_ADOBE_SYMBOL_LATIN_SMALL_LETTER_M 0x00B5 #define T_ADOBE_SYMBOL_UNDEFINED_00B6 0x00B6 #define T_ADOBE_SYMBOL_UNDEFINED_00B7 0x00B7 #define T_ADOBE_SYMBOL_UNDEFINED_00B8 0x00B8 #define T_ADOBE_SYMBOL_UNDEFINED_00B9 0x00B9 #define T_ADOBE_SYMBOL_UNDEFINED_00BA 0x00BA #define T_ADOBE_SYMBOL_UNDEFINED_00BB 0x00BB #define T_ADOBE_SYMBOL_UNDEFINED_00BC 0x00BC #define T_ADOBE_SYMBOL_UNDEFINED_00BD 0x00BD #define T_ADOBE_SYMBOL_UNDEFINED_00BE 0x00BE #define T_ADOBE_SYMBOL_UNDEFINED_00BF 0x00BF #define T_ADOBE_SYMBOL_UNDEFINED_00C0 0x00C0 #define T_ADOBE_SYMBOL_UNDEFINED_00C1 0x00C1 #define T_ADOBE_SYMBOL_UNDEFINED_00C2 0x00C2 #define T_ADOBE_SYMBOL_UNDEFINED_00C3 0x00C3 #define T_ADOBE_SYMBOL_UNDEFINED_00C4 0x00C4 #define T_ADOBE_SYMBOL_UNDEFINED_00C5 0x00C5 #define T_ADOBE_SYMBOL_UNDEFINED_00C6 0x00C6 #define T_ADOBE_SYMBOL_UNDEFINED_00C7 0x00C7 #define T_ADOBE_SYMBOL_UNDEFINED_00C8 0x00C8 #define T_ADOBE_SYMBOL_UNDEFINED_00C9 0x00C9 #define T_ADOBE_SYMBOL_UNDEFINED_00CA 0x00CA #define T_ADOBE_SYMBOL_UNDEFINED_00CB 0x00CB #define T_ADOBE_SYMBOL_UNDEFINED_00CC 0x00CC #define T_ADOBE_SYMBOL_UNDEFINED_00CD 0x00CD #define T_ADOBE_SYMBOL_UNDEFINED_00CE 0x00CE #define T_ADOBE_SYMBOL_UNDEFINED_00CF 0x00CF #define T_ADOBE_SYMBOL_UNDEFINED_00D0 0x00D0 #define T_ADOBE_SYMBOL_UNDEFINED_00D1 0x00D1 #define T_ADOBE_SYMBOL_UNDEFINED_00D2 0x00D2 #define T_ADOBE_SYMBOL_UNDEFINED_00D3 0x00D3 #define T_ADOBE_SYMBOL_UNDEFINED_00D4 0x00D4 #define T_ADOBE_SYMBOL_UNDEFINED_00D5 0x00D5 #define T_ADOBE_SYMBOL_UNDEFINED_00D6 0x00D6 #define T_ADOBE_SYMBOL_ACUTE_ACCENT 0x00D7 #define T_ADOBE_SYMBOL_UNDEFINED_00D8 0x00D8 #define T_ADOBE_SYMBOL_UNDEFINED_00D9 0x00D9 #define T_ADOBE_SYMBOL_UNDEFINED_00DA 0x00DA #define T_ADOBE_SYMBOL_UNDEFINED_00DB 0x00DB #define T_ADOBE_SYMBOL_UNDEFINED_00DC 0x00DC #define T_ADOBE_SYMBOL_UNDEFINED_00DD 0x00DD #define T_ADOBE_SYMBOL_UNDEFINED_00DE 0x00DE #define T_ADOBE_SYMBOL_UNDEFINED_00DF 0x00DF #define T_ADOBE_SYMBOL_UNDEFINED_00E0 0x00E0 #define T_ADOBE_SYMBOL_UNDEFINED_00E1 0x00E1 #define T_ADOBE_SYMBOL_UNDEFINED_00E2 0x00E2 #define T_ADOBE_SYMBOL_UNDEFINED_00E3 0x00E3 #define T_ADOBE_SYMBOL_UNDEFINED_00E4 0x00E4 #define T_ADOBE_SYMBOL_UNDEFINED_00E5 0x00E5 #define T_ADOBE_SYMBOL_UNDEFINED_00E6 0x00E6 #define T_ADOBE_SYMBOL_UNDEFINED_00E7 0x00E7 #define T_ADOBE_SYMBOL_UNDEFINED_00E8 0x00E8 #define T_ADOBE_SYMBOL_UNDEFINED_00E9 0x00E9 #define T_ADOBE_SYMBOL_UNDEFINED_00EA 0x00EA #define T_ADOBE_SYMBOL_UNDEFINED_00EB 0x00EB #define T_ADOBE_SYMBOL_UNDEFINED_00EC 0x00EC #define T_ADOBE_SYMBOL_UNDEFINED_00ED 0x00ED #define T_ADOBE_SYMBOL_UNDEFINED_00EE 0x00EE #define T_ADOBE_SYMBOL_UNDEFINED_00EF 0x00EF #define T_ADOBE_SYMBOL_UNDEFINED_00F0 0x00F0 #define T_ADOBE_SYMBOL_UNDEFINED_00F1 0x00F1 #define T_ADOBE_SYMBOL_UNDEFINED_00F2 0x00F2 #define T_ADOBE_SYMBOL_UNDEFINED_00F3 0x00F3 #define T_ADOBE_SYMBOL_UNDEFINED_00F4 0x00F4 #define T_ADOBE_SYMBOL_UNDEFINED_00F5 0x00F5 #define T_ADOBE_SYMBOL_UNDEFINED_00F6 0x00F6 #define T_ADOBE_SYMBOL_CEDILLA 0x00F7 #define T_ADOBE_SYMBOL_UNDEFINED_00F8 0x00F8 #define T_ADOBE_SYMBOL_UNDEFINED_00F9 0x00F9 #define T_ADOBE_SYMBOL_UNDEFINED_00FA 0x00FA #define T_ADOBE_SYMBOL_UNDEFINED_00FB 0x00FB #define T_ADOBE_SYMBOL_UNDEFINED_00FC 0x00FC #define T_ADOBE_SYMBOL_UNDEFINED_00FD 0x00FD #define T_ADOBE_SYMBOL_UNDEFINED_00FE 0x00FE #define T_ADOBE_SYMBOL_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_ADOBE_SYMBOL(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_LOW_LINE) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_UNDEFINED_00A0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_ACUTE_ACCENT) \ EL(_CEDILLA) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ADOBE_SYMBOL(EL) \ EL(_UNDEFINED_00A0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_ACUTE_ACCENT) \ EL(_CEDILLA) #endif /* TUTF_ADOBE_SYMBOL_H */ ������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/apl_iso_ir_68.h�������������������������������������������������������������0000664�0000000�0000000�00000072333�13775351206�0017675�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_APL_ISO_IR_68_H #define TUTF_APL_ISO_IR_68_H #define T_APL_ISO_IR_68_UNDEFINED_0000 0x0000 #define T_APL_ISO_IR_68_UNDEFINED_0001 0x0001 #define T_APL_ISO_IR_68_UNDEFINED_0002 0x0002 #define T_APL_ISO_IR_68_UNDEFINED_0003 0x0003 #define T_APL_ISO_IR_68_UNDEFINED_0004 0x0004 #define T_APL_ISO_IR_68_UNDEFINED_0005 0x0005 #define T_APL_ISO_IR_68_UNDEFINED_0006 0x0006 #define T_APL_ISO_IR_68_UNDEFINED_0007 0x0007 #define T_APL_ISO_IR_68_UNDEFINED_0008 0x0008 #define T_APL_ISO_IR_68_UNDEFINED_0009 0x0009 #define T_APL_ISO_IR_68_UNDEFINED_000A 0x000A #define T_APL_ISO_IR_68_UNDEFINED_000B 0x000B #define T_APL_ISO_IR_68_UNDEFINED_000C 0x000C #define T_APL_ISO_IR_68_UNDEFINED_000D 0x000D #define T_APL_ISO_IR_68_UNDEFINED_000E 0x000E #define T_APL_ISO_IR_68_UNDEFINED_000F 0x000F #define T_APL_ISO_IR_68_UNDEFINED_0010 0x0010 #define T_APL_ISO_IR_68_UNDEFINED_0011 0x0011 #define T_APL_ISO_IR_68_UNDEFINED_0012 0x0012 #define T_APL_ISO_IR_68_UNDEFINED_0013 0x0013 #define T_APL_ISO_IR_68_UNDEFINED_0014 0x0014 #define T_APL_ISO_IR_68_UNDEFINED_0015 0x0015 #define T_APL_ISO_IR_68_UNDEFINED_0016 0x0016 #define T_APL_ISO_IR_68_UNDEFINED_0017 0x0017 #define T_APL_ISO_IR_68_UNDEFINED_0018 0x0018 #define T_APL_ISO_IR_68_UNDEFINED_0019 0x0019 #define T_APL_ISO_IR_68_UNDEFINED_001A 0x001A #define T_APL_ISO_IR_68_UNDEFINED_001B 0x001B #define T_APL_ISO_IR_68_UNDEFINED_001C 0x001C #define T_APL_ISO_IR_68_UNDEFINED_001D 0x001D #define T_APL_ISO_IR_68_UNDEFINED_001E 0x001E #define T_APL_ISO_IR_68_UNDEFINED_001F 0x001F #define T_APL_ISO_IR_68_SPACE 0x0020 #define T_APL_ISO_IR_68_DIAERESIS 0x0021 #define T_APL_ISO_IR_68_RIGHT_PARENTHESIS 0x0022 #define T_APL_ISO_IR_68_LESS_THAN_SIGN 0x0023 #define T_APL_ISO_IR_68_LESS_THAN_OR_EQUAL_TO 0x0024 #define T_APL_ISO_IR_68_EQUALS_SIGN 0x0025 #define T_APL_ISO_IR_68_GREATER_THAN_SIGN 0x0026 #define T_APL_ISO_IR_68_RIGHT_SQUARE_BRACKET 0x0027 #define T_APL_ISO_IR_68_LOGICAL_AND 0x0028 #define T_APL_ISO_IR_68_LOGICAL_OR 0x0029 #define T_APL_ISO_IR_68_NOT_EQUAL_TO 0x002A #define T_APL_ISO_IR_68_DIVISION_SIGN 0x002B #define T_APL_ISO_IR_68_COMMA 0x002C #define T_APL_ISO_IR_68_PLUS_SIGN 0x002D #define T_APL_ISO_IR_68_FULL_STOP 0x002E #define T_APL_ISO_IR_68_SOLIDUS 0x002F #define T_APL_ISO_IR_68_DIGIT_ZERO 0x0030 #define T_APL_ISO_IR_68_DIGIT_ONE 0x0031 #define T_APL_ISO_IR_68_DIGIT_TWO 0x0032 #define T_APL_ISO_IR_68_DIGIT_THREE 0x0033 #define T_APL_ISO_IR_68_DIGIT_FOUR 0x0034 #define T_APL_ISO_IR_68_DIGIT_FIVE 0x0035 #define T_APL_ISO_IR_68_DIGIT_SIX 0x0036 #define T_APL_ISO_IR_68_DIGIT_SEVEN 0x0037 #define T_APL_ISO_IR_68_DIGIT_EIGHT 0x0038 #define T_APL_ISO_IR_68_DIGIT_NINE 0x0039 #define T_APL_ISO_IR_68_LEFT_PARENTHESIS 0x003A #define T_APL_ISO_IR_68_LEFT_SQUARE_BRACKET 0x003B #define T_APL_ISO_IR_68_SEMICOLON 0x003C #define T_APL_ISO_IR_68_MULTIPLICATION_SIGN 0x003D #define T_APL_ISO_IR_68_COLON 0x003E #define T_APL_ISO_IR_68_REVERSE_SOLIDUS 0x003F #define T_APL_ISO_IR_68_MACRON 0x0040 #define T_APL_ISO_IR_68_APL_FUNCTIONAL_SYMBOL_ALPHA 0x0041 #define T_APL_ISO_IR_68_UP_TACK 0x0042 #define T_APL_ISO_IR_68_INTERSECTION 0x0043 #define T_APL_ISO_IR_68_LEFT_FLOOR 0x0044 #define T_APL_ISO_IR_68_SMALL_ELEMENT_OF 0x0045 #define T_APL_ISO_IR_68_LOW_LINE 0x0046 #define T_APL_ISO_IR_68_NABLA 0x0047 #define T_APL_ISO_IR_68_INCREMENT 0x0048 #define T_APL_ISO_IR_68_APL_FUNCTIONAL_SYMBOL_IOTA 0x0049 #define T_APL_ISO_IR_68_RING_OPERATOR 0x004A #define T_APL_ISO_IR_68_APOSTROPHE 0x004B #define T_APL_ISO_IR_68_APL_FUNCTIONAL_SYMBOL_QUAD 0x004C #define T_APL_ISO_IR_68_DIVIDES 0x004D #define T_APL_ISO_IR_68_DOWN_TACK 0x004E #define T_APL_ISO_IR_68_WHITE_CIRCLE 0x004F #define T_APL_ISO_IR_68_STAR_OPERATOR 0x0050 #define T_APL_ISO_IR_68_QUESTION_MARK 0x0051 #define T_APL_ISO_IR_68_APL_FUNCTIONAL_SYMBOL_RHO 0x0052 #define T_APL_ISO_IR_68_LEFT_CEILING 0x0053 #define T_APL_ISO_IR_68_TILDE_OPERATOR 0x0054 #define T_APL_ISO_IR_68_DOWNWARDS_ARROW 0x0055 #define T_APL_ISO_IR_68_UNION 0x0056 #define T_APL_ISO_IR_68_APL_FUNCTIONAL_SYMBOL_OMEGA 0x0057 #define T_APL_ISO_IR_68_SUPERSET_OF 0x0058 #define T_APL_ISO_IR_68_UPWARDS_ARROW 0x0059 #define T_APL_ISO_IR_68_SUBSET_OF 0x005A #define T_APL_ISO_IR_68_LEFTWARDS_ARROW 0x005B #define T_APL_ISO_IR_68_RIGHT_TACK 0x005C #define T_APL_ISO_IR_68_RIGHTWARDS_ARROW 0x005D #define T_APL_ISO_IR_68_GREATER_THAN_OR_EQUAL_TO 0x005E #define T_APL_ISO_IR_68_HYPHEN_MINUS 0x005F #define T_APL_ISO_IR_68_DIAMOND_OPERATOR 0x0060 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_A 0x0061 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_B 0x0062 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_C 0x0063 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_D 0x0064 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_E 0x0065 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_F 0x0066 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_G 0x0067 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_H 0x0068 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_I 0x0069 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_J 0x006A #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_K 0x006B #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_L 0x006C #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_M 0x006D #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_N 0x006E #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_O 0x006F #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_P 0x0070 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_Q 0x0071 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_R 0x0072 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_S 0x0073 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_T 0x0074 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_U 0x0075 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_V 0x0076 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_W 0x0077 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_X 0x0078 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_Y 0x0079 #define T_APL_ISO_IR_68_LATIN_CAPITAL_LETTER_Z 0x007A #define T_APL_ISO_IR_68_LEFT_CURLY_BRACKET 0x007B #define T_APL_ISO_IR_68_LEFT_TACK 0x007C #define T_APL_ISO_IR_68_RIGHT_CURLY_BRACKET 0x007D #define T_APL_ISO_IR_68_DOLLAR_SIGN 0x007E #define T_APL_ISO_IR_68_UNDEFINED_007F 0x007F #define T_APL_ISO_IR_68_UNDEFINED_0080 0x0080 #define T_APL_ISO_IR_68_UNDEFINED_0081 0x0081 #define T_APL_ISO_IR_68_UNDEFINED_0082 0x0082 #define T_APL_ISO_IR_68_UNDEFINED_0083 0x0083 #define T_APL_ISO_IR_68_UNDEFINED_0084 0x0084 #define T_APL_ISO_IR_68_UNDEFINED_0085 0x0085 #define T_APL_ISO_IR_68_UNDEFINED_0086 0x0086 #define T_APL_ISO_IR_68_UNDEFINED_0087 0x0087 #define T_APL_ISO_IR_68_UNDEFINED_0088 0x0088 #define T_APL_ISO_IR_68_UNDEFINED_0089 0x0089 #define T_APL_ISO_IR_68_UNDEFINED_008A 0x008A #define T_APL_ISO_IR_68_UNDEFINED_008B 0x008B #define T_APL_ISO_IR_68_UNDEFINED_008C 0x008C #define T_APL_ISO_IR_68_UNDEFINED_008D 0x008D #define T_APL_ISO_IR_68_UNDEFINED_008E 0x008E #define T_APL_ISO_IR_68_UNDEFINED_008F 0x008F #define T_APL_ISO_IR_68_UNDEFINED_0090 0x0090 #define T_APL_ISO_IR_68_UNDEFINED_0091 0x0091 #define T_APL_ISO_IR_68_UNDEFINED_0092 0x0092 #define T_APL_ISO_IR_68_UNDEFINED_0093 0x0093 #define T_APL_ISO_IR_68_UNDEFINED_0094 0x0094 #define T_APL_ISO_IR_68_UNDEFINED_0095 0x0095 #define T_APL_ISO_IR_68_UNDEFINED_0096 0x0096 #define T_APL_ISO_IR_68_UNDEFINED_0097 0x0097 #define T_APL_ISO_IR_68_UNDEFINED_0098 0x0098 #define T_APL_ISO_IR_68_UNDEFINED_0099 0x0099 #define T_APL_ISO_IR_68_UNDEFINED_009A 0x009A #define T_APL_ISO_IR_68_UNDEFINED_009B 0x009B #define T_APL_ISO_IR_68_UNDEFINED_009C 0x009C #define T_APL_ISO_IR_68_UNDEFINED_009D 0x009D #define T_APL_ISO_IR_68_UNDEFINED_009E 0x009E #define T_APL_ISO_IR_68_UNDEFINED_009F 0x009F #define T_APL_ISO_IR_68_UNDEFINED_00A0 0x00A0 #define T_APL_ISO_IR_68_UNDEFINED_00A1 0x00A1 #define T_APL_ISO_IR_68_UNDEFINED_00A2 0x00A2 #define T_APL_ISO_IR_68_UNDEFINED_00A3 0x00A3 #define T_APL_ISO_IR_68_UNDEFINED_00A4 0x00A4 #define T_APL_ISO_IR_68_UNDEFINED_00A5 0x00A5 #define T_APL_ISO_IR_68_UNDEFINED_00A6 0x00A6 #define T_APL_ISO_IR_68_UNDEFINED_00A7 0x00A7 #define T_APL_ISO_IR_68_UNDEFINED_00A8 0x00A8 #define T_APL_ISO_IR_68_UNDEFINED_00A9 0x00A9 #define T_APL_ISO_IR_68_UNDEFINED_00AA 0x00AA #define T_APL_ISO_IR_68_UNDEFINED_00AB 0x00AB #define T_APL_ISO_IR_68_UNDEFINED_00AC 0x00AC #define T_APL_ISO_IR_68_UNDEFINED_00AD 0x00AD #define T_APL_ISO_IR_68_UNDEFINED_00AE 0x00AE #define T_APL_ISO_IR_68_UNDEFINED_00AF 0x00AF #define T_APL_ISO_IR_68_UNDEFINED_00B0 0x00B0 #define T_APL_ISO_IR_68_UNDEFINED_00B1 0x00B1 #define T_APL_ISO_IR_68_UNDEFINED_00B2 0x00B2 #define T_APL_ISO_IR_68_UNDEFINED_00B3 0x00B3 #define T_APL_ISO_IR_68_UNDEFINED_00B4 0x00B4 #define T_APL_ISO_IR_68_UNDEFINED_00B5 0x00B5 #define T_APL_ISO_IR_68_UNDEFINED_00B6 0x00B6 #define T_APL_ISO_IR_68_UNDEFINED_00B7 0x00B7 #define T_APL_ISO_IR_68_UNDEFINED_00B8 0x00B8 #define T_APL_ISO_IR_68_UNDEFINED_00B9 0x00B9 #define T_APL_ISO_IR_68_UNDEFINED_00BA 0x00BA #define T_APL_ISO_IR_68_UNDEFINED_00BB 0x00BB #define T_APL_ISO_IR_68_UNDEFINED_00BC 0x00BC #define T_APL_ISO_IR_68_UNDEFINED_00BD 0x00BD #define T_APL_ISO_IR_68_UNDEFINED_00BE 0x00BE #define T_APL_ISO_IR_68_UNDEFINED_00BF 0x00BF #define T_APL_ISO_IR_68_UNDEFINED_00C0 0x00C0 #define T_APL_ISO_IR_68_UNDEFINED_00C1 0x00C1 #define T_APL_ISO_IR_68_UNDEFINED_00C2 0x00C2 #define T_APL_ISO_IR_68_UNDEFINED_00C3 0x00C3 #define T_APL_ISO_IR_68_UNDEFINED_00C4 0x00C4 #define T_APL_ISO_IR_68_UNDEFINED_00C5 0x00C5 #define T_APL_ISO_IR_68_UNDEFINED_00C6 0x00C6 #define T_APL_ISO_IR_68_UNDEFINED_00C7 0x00C7 #define T_APL_ISO_IR_68_UNDEFINED_00C8 0x00C8 #define T_APL_ISO_IR_68_UNDEFINED_00C9 0x00C9 #define T_APL_ISO_IR_68_UNDEFINED_00CA 0x00CA #define T_APL_ISO_IR_68_UNDEFINED_00CB 0x00CB #define T_APL_ISO_IR_68_UNDEFINED_00CC 0x00CC #define T_APL_ISO_IR_68_UNDEFINED_00CD 0x00CD #define T_APL_ISO_IR_68_UNDEFINED_00CE 0x00CE #define T_APL_ISO_IR_68_UNDEFINED_00CF 0x00CF #define T_APL_ISO_IR_68_UNDEFINED_00D0 0x00D0 #define T_APL_ISO_IR_68_UNDEFINED_00D1 0x00D1 #define T_APL_ISO_IR_68_UNDEFINED_00D2 0x00D2 #define T_APL_ISO_IR_68_UNDEFINED_00D3 0x00D3 #define T_APL_ISO_IR_68_UNDEFINED_00D4 0x00D4 #define T_APL_ISO_IR_68_UNDEFINED_00D5 0x00D5 #define T_APL_ISO_IR_68_UNDEFINED_00D6 0x00D6 #define T_APL_ISO_IR_68_UNDEFINED_00D7 0x00D7 #define T_APL_ISO_IR_68_UNDEFINED_00D8 0x00D8 #define T_APL_ISO_IR_68_UNDEFINED_00D9 0x00D9 #define T_APL_ISO_IR_68_UNDEFINED_00DA 0x00DA #define T_APL_ISO_IR_68_UNDEFINED_00DB 0x00DB #define T_APL_ISO_IR_68_UNDEFINED_00DC 0x00DC #define T_APL_ISO_IR_68_UNDEFINED_00DD 0x00DD #define T_APL_ISO_IR_68_UNDEFINED_00DE 0x00DE #define T_APL_ISO_IR_68_UNDEFINED_00DF 0x00DF #define T_APL_ISO_IR_68_UNDEFINED_00E0 0x00E0 #define T_APL_ISO_IR_68_UNDEFINED_00E1 0x00E1 #define T_APL_ISO_IR_68_UNDEFINED_00E2 0x00E2 #define T_APL_ISO_IR_68_UNDEFINED_00E3 0x00E3 #define T_APL_ISO_IR_68_UNDEFINED_00E4 0x00E4 #define T_APL_ISO_IR_68_UNDEFINED_00E5 0x00E5 #define T_APL_ISO_IR_68_UNDEFINED_00E6 0x00E6 #define T_APL_ISO_IR_68_UNDEFINED_00E7 0x00E7 #define T_APL_ISO_IR_68_UNDEFINED_00E8 0x00E8 #define T_APL_ISO_IR_68_UNDEFINED_00E9 0x00E9 #define T_APL_ISO_IR_68_UNDEFINED_00EA 0x00EA #define T_APL_ISO_IR_68_UNDEFINED_00EB 0x00EB #define T_APL_ISO_IR_68_UNDEFINED_00EC 0x00EC #define T_APL_ISO_IR_68_UNDEFINED_00ED 0x00ED #define T_APL_ISO_IR_68_UNDEFINED_00EE 0x00EE #define T_APL_ISO_IR_68_UNDEFINED_00EF 0x00EF #define T_APL_ISO_IR_68_UNDEFINED_00F0 0x00F0 #define T_APL_ISO_IR_68_UNDEFINED_00F1 0x00F1 #define T_APL_ISO_IR_68_UNDEFINED_00F2 0x00F2 #define T_APL_ISO_IR_68_UNDEFINED_00F3 0x00F3 #define T_APL_ISO_IR_68_UNDEFINED_00F4 0x00F4 #define T_APL_ISO_IR_68_UNDEFINED_00F5 0x00F5 #define T_APL_ISO_IR_68_UNDEFINED_00F6 0x00F6 #define T_APL_ISO_IR_68_UNDEFINED_00F7 0x00F7 #define T_APL_ISO_IR_68_UNDEFINED_00F8 0x00F8 #define T_APL_ISO_IR_68_UNDEFINED_00F9 0x00F9 #define T_APL_ISO_IR_68_UNDEFINED_00FA 0x00FA #define T_APL_ISO_IR_68_UNDEFINED_00FB 0x00FB #define T_APL_ISO_IR_68_UNDEFINED_00FC 0x00FC #define T_APL_ISO_IR_68_UNDEFINED_00FD 0x00FD #define T_APL_ISO_IR_68_UNDEFINED_00FE 0x00FE #define T_APL_ISO_IR_68_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_APL_ISO_IR_68(EL) \ EL(_SPACE) \ EL(_DIAERESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_LESS_THAN_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_LOGICAL_AND) \ EL(_LOGICAL_OR) \ EL(_NOT_EQUAL_TO) \ EL(_DIVISION_SIGN) \ EL(_COMMA) \ EL(_PLUS_SIGN) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_LEFT_PARENTHESIS) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_SEMICOLON) \ EL(_MULTIPLICATION_SIGN) \ EL(_COLON) \ EL(_REVERSE_SOLIDUS) \ EL(_MACRON) \ EL(_APL_FUNCTIONAL_SYMBOL_ALPHA) \ EL(_UP_TACK) \ EL(_INTERSECTION) \ EL(_LEFT_FLOOR) \ EL(_SMALL_ELEMENT_OF) \ EL(_LOW_LINE) \ EL(_NABLA) \ EL(_INCREMENT) \ EL(_APL_FUNCTIONAL_SYMBOL_IOTA) \ EL(_RING_OPERATOR) \ EL(_APOSTROPHE) \ EL(_APL_FUNCTIONAL_SYMBOL_QUAD) \ EL(_DIVIDES) \ EL(_DOWN_TACK) \ EL(_WHITE_CIRCLE) \ EL(_STAR_OPERATOR) \ EL(_QUESTION_MARK) \ EL(_APL_FUNCTIONAL_SYMBOL_RHO) \ EL(_LEFT_CEILING) \ EL(_TILDE_OPERATOR) \ EL(_DOWNWARDS_ARROW) \ EL(_UNION) \ EL(_APL_FUNCTIONAL_SYMBOL_OMEGA) \ EL(_SUPERSET_OF) \ EL(_UPWARDS_ARROW) \ EL(_SUBSET_OF) \ EL(_LEFTWARDS_ARROW) \ EL(_RIGHT_TACK) \ EL(_RIGHTWARDS_ARROW) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_HYPHEN_MINUS) \ EL(_DIAMOND_OPERATOR) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_LEFT_TACK) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_DOLLAR_SIGN) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_APL_ISO_IR_68(EL) \ EL(_DIAERESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_LESS_THAN_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_LOGICAL_AND) \ EL(_LOGICAL_OR) \ EL(_NOT_EQUAL_TO) \ EL(_DIVISION_SIGN) \ EL(_PLUS_SIGN) \ EL(_LEFT_PARENTHESIS) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_SEMICOLON) \ EL(_MULTIPLICATION_SIGN) \ EL(_COLON) \ EL(_REVERSE_SOLIDUS) \ EL(_MACRON) \ EL(_APL_FUNCTIONAL_SYMBOL_ALPHA) \ EL(_UP_TACK) \ EL(_INTERSECTION) \ EL(_LEFT_FLOOR) \ EL(_SMALL_ELEMENT_OF) \ EL(_LOW_LINE) \ EL(_NABLA) \ EL(_INCREMENT) \ EL(_APL_FUNCTIONAL_SYMBOL_IOTA) \ EL(_RING_OPERATOR) \ EL(_APOSTROPHE) \ EL(_APL_FUNCTIONAL_SYMBOL_QUAD) \ EL(_DIVIDES) \ EL(_DOWN_TACK) \ EL(_WHITE_CIRCLE) \ EL(_STAR_OPERATOR) \ EL(_QUESTION_MARK) \ EL(_APL_FUNCTIONAL_SYMBOL_RHO) \ EL(_LEFT_CEILING) \ EL(_TILDE_OPERATOR) \ EL(_DOWNWARDS_ARROW) \ EL(_UNION) \ EL(_APL_FUNCTIONAL_SYMBOL_OMEGA) \ EL(_SUPERSET_OF) \ EL(_UPWARDS_ARROW) \ EL(_SUBSET_OF) \ EL(_LEFTWARDS_ARROW) \ EL(_RIGHT_TACK) \ EL(_RIGHTWARDS_ARROW) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_HYPHEN_MINUS) \ EL(_DIAMOND_OPERATOR) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_TACK) \ EL(_DOLLAR_SIGN) #endif /* TUTF_APL_ISO_IR_68_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/ascii.h���������������������������������������������������������������������0000664�0000000�0000000�00000106754�13775351206�0016335�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * ascii.h -- include for ANSI_X3.4-1968 (US ASCII) characters database */ #ifndef TUTF_ASCII_H #define TUTF_ASCII_H #define T_ASCII_CTRL_NULL 0x0000 #define T_ASCII_CTRL_START_OF_HEADING 0x0001 #define T_ASCII_CTRL_START_OF_TEXT 0x0002 #define T_ASCII_CTRL_END_OF_TEXT 0x0003 #define T_ASCII_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ASCII_CTRL_ENQUIRY 0x0005 #define T_ASCII_CTRL_ACKNOWLEDGE 0x0006 #define T_ASCII_CTRL_BELL 0x0007 #define T_ASCII_CTRL_BACKSPACE 0x0008 #define T_ASCII_CTRL_CHARACTER_TABULATION 0x0009 #define T_ASCII_CTRL_LINE_FEED 0x000A #define T_ASCII_CTRL_LINE_TABULATION 0x000B #define T_ASCII_CTRL_FORM_FEED 0x000C #define T_ASCII_CTRL_CARRIAGE_RETURN 0x000D #define T_ASCII_CTRL_SHIFT_OUT 0x000E #define T_ASCII_CTRL_SHIFT_IN 0x000F #define T_ASCII_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ASCII_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ASCII_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ASCII_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ASCII_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ASCII_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ASCII_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ASCII_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ASCII_CTRL_CANCEL 0x0018 #define T_ASCII_CTRL_END_OF_MEDIUM 0x0019 #define T_ASCII_CTRL_SUBSTITUTE 0x001A #define T_ASCII_CTRL_ESCAPE 0x001B #define T_ASCII_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ASCII_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ASCII_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ASCII_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ASCII_SPACE 0x0020 #define T_ASCII_EXCLAMATION_MARK 0x0021 #define T_ASCII_QUOTATION_MARK 0x0022 #define T_ASCII_NUMBER_SIGN 0x0023 #define T_ASCII_DOLLAR_SIGN 0x0024 #define T_ASCII_PERCENT_SIGN 0x0025 #define T_ASCII_AMPERSAND 0x0026 #define T_ASCII_APOSTROPHE 0x0027 #define T_ASCII_LEFT_PARENTHESIS 0x0028 #define T_ASCII_RIGHT_PARENTHESIS 0x0029 #define T_ASCII_ASTERISK 0x002A #define T_ASCII_PLUS_SIGN 0x002B #define T_ASCII_COMMA 0x002C #define T_ASCII_HYPHEN_MINUS 0x002D #define T_ASCII_FULL_STOP 0x002E #define T_ASCII_SOLIDUS 0x002F #define T_ASCII_DIGIT_ZERO 0x0030 #define T_ASCII_DIGIT_ONE 0x0031 #define T_ASCII_DIGIT_TWO 0x0032 #define T_ASCII_DIGIT_THREE 0x0033 #define T_ASCII_DIGIT_FOUR 0x0034 #define T_ASCII_DIGIT_FIVE 0x0035 #define T_ASCII_DIGIT_SIX 0x0036 #define T_ASCII_DIGIT_SEVEN 0x0037 #define T_ASCII_DIGIT_EIGHT 0x0038 #define T_ASCII_DIGIT_NINE 0x0039 #define T_ASCII_COLON 0x003A #define T_ASCII_SEMICOLON 0x003B #define T_ASCII_LESS_THAN_SIGN 0x003C #define T_ASCII_EQUALS_SIGN 0x003D #define T_ASCII_GREATER_THAN_SIGN 0x003E #define T_ASCII_QUESTION_MARK 0x003F #define T_ASCII_COMMERCIAL_AT 0x0040 #define T_ASCII_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ASCII_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ASCII_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ASCII_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ASCII_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ASCII_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ASCII_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ASCII_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ASCII_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ASCII_LATIN_CAPITAL_LETTER_J 0x004A #define T_ASCII_LATIN_CAPITAL_LETTER_K 0x004B #define T_ASCII_LATIN_CAPITAL_LETTER_L 0x004C #define T_ASCII_LATIN_CAPITAL_LETTER_M 0x004D #define T_ASCII_LATIN_CAPITAL_LETTER_N 0x004E #define T_ASCII_LATIN_CAPITAL_LETTER_O 0x004F #define T_ASCII_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ASCII_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ASCII_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ASCII_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ASCII_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ASCII_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ASCII_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ASCII_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ASCII_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ASCII_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ASCII_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ASCII_LEFT_SQUARE_BRACKET 0x005B #define T_ASCII_REVERSE_SOLIDUS 0x005C #define T_ASCII_RIGHT_SQUARE_BRACKET 0x005D #define T_ASCII_CIRCUMFLEX_ACCENT 0x005E #define T_ASCII_LOW_LINE 0x005F #define T_ASCII_GRAVE_ACCENT 0x0060 #define T_ASCII_LATIN_SMALL_LETTER_A 0x0061 #define T_ASCII_LATIN_SMALL_LETTER_B 0x0062 #define T_ASCII_LATIN_SMALL_LETTER_C 0x0063 #define T_ASCII_LATIN_SMALL_LETTER_D 0x0064 #define T_ASCII_LATIN_SMALL_LETTER_E 0x0065 #define T_ASCII_LATIN_SMALL_LETTER_F 0x0066 #define T_ASCII_LATIN_SMALL_LETTER_G 0x0067 #define T_ASCII_LATIN_SMALL_LETTER_H 0x0068 #define T_ASCII_LATIN_SMALL_LETTER_I 0x0069 #define T_ASCII_LATIN_SMALL_LETTER_J 0x006A #define T_ASCII_LATIN_SMALL_LETTER_K 0x006B #define T_ASCII_LATIN_SMALL_LETTER_L 0x006C #define T_ASCII_LATIN_SMALL_LETTER_M 0x006D #define T_ASCII_LATIN_SMALL_LETTER_N 0x006E #define T_ASCII_LATIN_SMALL_LETTER_O 0x006F #define T_ASCII_LATIN_SMALL_LETTER_P 0x0070 #define T_ASCII_LATIN_SMALL_LETTER_Q 0x0071 #define T_ASCII_LATIN_SMALL_LETTER_R 0x0072 #define T_ASCII_LATIN_SMALL_LETTER_S 0x0073 #define T_ASCII_LATIN_SMALL_LETTER_T 0x0074 #define T_ASCII_LATIN_SMALL_LETTER_U 0x0075 #define T_ASCII_LATIN_SMALL_LETTER_V 0x0076 #define T_ASCII_LATIN_SMALL_LETTER_W 0x0077 #define T_ASCII_LATIN_SMALL_LETTER_X 0x0078 #define T_ASCII_LATIN_SMALL_LETTER_Y 0x0079 #define T_ASCII_LATIN_SMALL_LETTER_Z 0x007A #define T_ASCII_LEFT_CURLY_BRACKET 0x007B #define T_ASCII_VERTICAL_LINE 0x007C #define T_ASCII_RIGHT_CURLY_BRACKET 0x007D #define T_ASCII_TILDE 0x007E #define T_ASCII_UNDEFINED_007F 0x007F #define T_ASCII_UNDEFINED_0080 0x0080 #define T_ASCII_UNDEFINED_0081 0x0081 #define T_ASCII_UNDEFINED_0082 0x0082 #define T_ASCII_UNDEFINED_0083 0x0083 #define T_ASCII_UNDEFINED_0084 0x0084 #define T_ASCII_UNDEFINED_0085 0x0085 #define T_ASCII_UNDEFINED_0086 0x0086 #define T_ASCII_UNDEFINED_0087 0x0087 #define T_ASCII_UNDEFINED_0088 0x0088 #define T_ASCII_UNDEFINED_0089 0x0089 #define T_ASCII_UNDEFINED_008A 0x008A #define T_ASCII_UNDEFINED_008B 0x008B #define T_ASCII_UNDEFINED_008C 0x008C #define T_ASCII_UNDEFINED_008D 0x008D #define T_ASCII_UNDEFINED_008E 0x008E #define T_ASCII_UNDEFINED_008F 0x008F #define T_ASCII_UNDEFINED_0090 0x0090 #define T_ASCII_UNDEFINED_0091 0x0091 #define T_ASCII_UNDEFINED_0092 0x0092 #define T_ASCII_UNDEFINED_0093 0x0093 #define T_ASCII_UNDEFINED_0094 0x0094 #define T_ASCII_UNDEFINED_0095 0x0095 #define T_ASCII_UNDEFINED_0096 0x0096 #define T_ASCII_UNDEFINED_0097 0x0097 #define T_ASCII_UNDEFINED_0098 0x0098 #define T_ASCII_UNDEFINED_0099 0x0099 #define T_ASCII_UNDEFINED_009A 0x009A #define T_ASCII_UNDEFINED_009B 0x009B #define T_ASCII_UNDEFINED_009C 0x009C #define T_ASCII_UNDEFINED_009D 0x009D #define T_ASCII_UNDEFINED_009E 0x009E #define T_ASCII_UNDEFINED_009F 0x009F #define T_ASCII_UNDEFINED_00A0 0x00A0 #define T_ASCII_UNDEFINED_00A1 0x00A1 #define T_ASCII_UNDEFINED_00A2 0x00A2 #define T_ASCII_UNDEFINED_00A3 0x00A3 #define T_ASCII_UNDEFINED_00A4 0x00A4 #define T_ASCII_UNDEFINED_00A5 0x00A5 #define T_ASCII_UNDEFINED_00A6 0x00A6 #define T_ASCII_UNDEFINED_00A7 0x00A7 #define T_ASCII_UNDEFINED_00A8 0x00A8 #define T_ASCII_UNDEFINED_00A9 0x00A9 #define T_ASCII_UNDEFINED_00AA 0x00AA #define T_ASCII_UNDEFINED_00AB 0x00AB #define T_ASCII_UNDEFINED_00AC 0x00AC #define T_ASCII_UNDEFINED_00AD 0x00AD #define T_ASCII_UNDEFINED_00AE 0x00AE #define T_ASCII_UNDEFINED_00AF 0x00AF #define T_ASCII_UNDEFINED_00B0 0x00B0 #define T_ASCII_UNDEFINED_00B1 0x00B1 #define T_ASCII_UNDEFINED_00B2 0x00B2 #define T_ASCII_UNDEFINED_00B3 0x00B3 #define T_ASCII_UNDEFINED_00B4 0x00B4 #define T_ASCII_UNDEFINED_00B5 0x00B5 #define T_ASCII_UNDEFINED_00B6 0x00B6 #define T_ASCII_UNDEFINED_00B7 0x00B7 #define T_ASCII_UNDEFINED_00B8 0x00B8 #define T_ASCII_UNDEFINED_00B9 0x00B9 #define T_ASCII_UNDEFINED_00BA 0x00BA #define T_ASCII_UNDEFINED_00BB 0x00BB #define T_ASCII_UNDEFINED_00BC 0x00BC #define T_ASCII_UNDEFINED_00BD 0x00BD #define T_ASCII_UNDEFINED_00BE 0x00BE #define T_ASCII_UNDEFINED_00BF 0x00BF #define T_ASCII_UNDEFINED_00C0 0x00C0 #define T_ASCII_UNDEFINED_00C1 0x00C1 #define T_ASCII_UNDEFINED_00C2 0x00C2 #define T_ASCII_UNDEFINED_00C3 0x00C3 #define T_ASCII_UNDEFINED_00C4 0x00C4 #define T_ASCII_UNDEFINED_00C5 0x00C5 #define T_ASCII_UNDEFINED_00C6 0x00C6 #define T_ASCII_UNDEFINED_00C7 0x00C7 #define T_ASCII_UNDEFINED_00C8 0x00C8 #define T_ASCII_UNDEFINED_00C9 0x00C9 #define T_ASCII_UNDEFINED_00CA 0x00CA #define T_ASCII_UNDEFINED_00CB 0x00CB #define T_ASCII_UNDEFINED_00CC 0x00CC #define T_ASCII_UNDEFINED_00CD 0x00CD #define T_ASCII_UNDEFINED_00CE 0x00CE #define T_ASCII_UNDEFINED_00CF 0x00CF #define T_ASCII_UNDEFINED_00D0 0x00D0 #define T_ASCII_UNDEFINED_00D1 0x00D1 #define T_ASCII_UNDEFINED_00D2 0x00D2 #define T_ASCII_UNDEFINED_00D3 0x00D3 #define T_ASCII_UNDEFINED_00D4 0x00D4 #define T_ASCII_UNDEFINED_00D5 0x00D5 #define T_ASCII_UNDEFINED_00D6 0x00D6 #define T_ASCII_UNDEFINED_00D7 0x00D7 #define T_ASCII_UNDEFINED_00D8 0x00D8 #define T_ASCII_UNDEFINED_00D9 0x00D9 #define T_ASCII_UNDEFINED_00DA 0x00DA #define T_ASCII_UNDEFINED_00DB 0x00DB #define T_ASCII_UNDEFINED_00DC 0x00DC #define T_ASCII_UNDEFINED_00DD 0x00DD #define T_ASCII_UNDEFINED_00DE 0x00DE #define T_ASCII_UNDEFINED_00DF 0x00DF #define T_ASCII_UNDEFINED_00E0 0x00E0 #define T_ASCII_UNDEFINED_00E1 0x00E1 #define T_ASCII_UNDEFINED_00E2 0x00E2 #define T_ASCII_UNDEFINED_00E3 0x00E3 #define T_ASCII_UNDEFINED_00E4 0x00E4 #define T_ASCII_UNDEFINED_00E5 0x00E5 #define T_ASCII_UNDEFINED_00E6 0x00E6 #define T_ASCII_UNDEFINED_00E7 0x00E7 #define T_ASCII_UNDEFINED_00E8 0x00E8 #define T_ASCII_UNDEFINED_00E9 0x00E9 #define T_ASCII_UNDEFINED_00EA 0x00EA #define T_ASCII_UNDEFINED_00EB 0x00EB #define T_ASCII_UNDEFINED_00EC 0x00EC #define T_ASCII_UNDEFINED_00ED 0x00ED #define T_ASCII_UNDEFINED_00EE 0x00EE #define T_ASCII_UNDEFINED_00EF 0x00EF #define T_ASCII_UNDEFINED_00F0 0x00F0 #define T_ASCII_UNDEFINED_00F1 0x00F1 #define T_ASCII_UNDEFINED_00F2 0x00F2 #define T_ASCII_UNDEFINED_00F3 0x00F3 #define T_ASCII_UNDEFINED_00F4 0x00F4 #define T_ASCII_UNDEFINED_00F5 0x00F5 #define T_ASCII_UNDEFINED_00F6 0x00F6 #define T_ASCII_UNDEFINED_00F7 0x00F7 #define T_ASCII_UNDEFINED_00F8 0x00F8 #define T_ASCII_UNDEFINED_00F9 0x00F9 #define T_ASCII_UNDEFINED_00FA 0x00FA #define T_ASCII_UNDEFINED_00FB 0x00FB #define T_ASCII_UNDEFINED_00FC 0x00FC #define T_ASCII_UNDEFINED_00FD 0x00FD #define T_ASCII_UNDEFINED_00FE 0x00FE #define T_ASCII_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_ASCII(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_UNDEFINED_007F) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_UNDEFINED_0091) \ EL(_UNDEFINED_0092) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_UNDEFINED_0095) \ EL(_UNDEFINED_0096) \ EL(_UNDEFINED_0097) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_UNDEFINED_00B0) \ EL(_UNDEFINED_00B1) \ EL(_UNDEFINED_00B2) \ EL(_UNDEFINED_00B3) \ EL(_UNDEFINED_00B4) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_UNDEFINED_00B8) \ EL(_UNDEFINED_00B9) \ EL(_UNDEFINED_00BA) \ EL(_UNDEFINED_00BB) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_UNDEFINED_00BF) \ EL(_UNDEFINED_00C0) \ EL(_UNDEFINED_00C1) \ EL(_UNDEFINED_00C2) \ EL(_UNDEFINED_00C3) \ EL(_UNDEFINED_00C4) \ EL(_UNDEFINED_00C5) \ EL(_UNDEFINED_00C6) \ EL(_UNDEFINED_00C7) \ EL(_UNDEFINED_00C8) \ EL(_UNDEFINED_00C9) \ EL(_UNDEFINED_00CA) \ EL(_UNDEFINED_00CB) \ EL(_UNDEFINED_00CC) \ EL(_UNDEFINED_00CD) \ EL(_UNDEFINED_00CE) \ EL(_UNDEFINED_00CF) \ EL(_UNDEFINED_00D0) \ EL(_UNDEFINED_00D1) \ EL(_UNDEFINED_00D2) \ EL(_UNDEFINED_00D3) \ EL(_UNDEFINED_00D4) \ EL(_UNDEFINED_00D5) \ EL(_UNDEFINED_00D6) \ EL(_UNDEFINED_00D7) \ EL(_UNDEFINED_00D8) \ EL(_UNDEFINED_00D9) \ EL(_UNDEFINED_00DA) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-16 */ #define T_NLIST_ASCII(EL) /* empty */ #endif /* TUTF_ASCII_H */ ��������������������twin-0.9.0/include/Tutf/atarist.h�������������������������������������������������������������������0000664�0000000�0000000�00000143553�13775351206�0016712�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ATARIST_H #define TUTF_ATARIST_H #define T_ATARIST_CTRL_NULL 0x0000 #define T_ATARIST_CTRL_START_OF_HEADING 0x0001 #define T_ATARIST_CTRL_START_OF_TEXT 0x0002 #define T_ATARIST_CTRL_END_OF_TEXT 0x0003 #define T_ATARIST_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ATARIST_CTRL_ENQUIRY 0x0005 #define T_ATARIST_CTRL_ACKNOWLEDGE 0x0006 #define T_ATARIST_CTRL_BELL 0x0007 #define T_ATARIST_CTRL_BACKSPACE 0x0008 #define T_ATARIST_CTRL_CHARACTER_TABULATION 0x0009 #define T_ATARIST_CTRL_LINE_FEED 0x000A #define T_ATARIST_CTRL_LINE_TABULATION 0x000B #define T_ATARIST_CTRL_FORM_FEED 0x000C #define T_ATARIST_CTRL_CARRIAGE_RETURN 0x000D #define T_ATARIST_CTRL_SHIFT_OUT 0x000E #define T_ATARIST_CTRL_SHIFT_IN 0x000F #define T_ATARIST_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ATARIST_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ATARIST_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ATARIST_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ATARIST_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ATARIST_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ATARIST_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ATARIST_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ATARIST_CTRL_CANCEL 0x0018 #define T_ATARIST_CTRL_END_OF_MEDIUM 0x0019 #define T_ATARIST_CTRL_SUBSTITUTE 0x001A #define T_ATARIST_CTRL_ESCAPE 0x001B #define T_ATARIST_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ATARIST_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ATARIST_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ATARIST_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ATARIST_SPACE 0x0020 #define T_ATARIST_EXCLAMATION_MARK 0x0021 #define T_ATARIST_QUOTATION_MARK 0x0022 #define T_ATARIST_NUMBER_SIGN 0x0023 #define T_ATARIST_DOLLAR_SIGN 0x0024 #define T_ATARIST_PERCENT_SIGN 0x0025 #define T_ATARIST_AMPERSAND 0x0026 #define T_ATARIST_APOSTROPHE 0x0027 #define T_ATARIST_LEFT_PARENTHESIS 0x0028 #define T_ATARIST_RIGHT_PARENTHESIS 0x0029 #define T_ATARIST_ASTERISK 0x002A #define T_ATARIST_PLUS_SIGN 0x002B #define T_ATARIST_COMMA 0x002C #define T_ATARIST_HYPHEN_MINUS 0x002D #define T_ATARIST_FULL_STOP 0x002E #define T_ATARIST_SOLIDUS 0x002F #define T_ATARIST_DIGIT_ZERO 0x0030 #define T_ATARIST_DIGIT_ONE 0x0031 #define T_ATARIST_DIGIT_TWO 0x0032 #define T_ATARIST_DIGIT_THREE 0x0033 #define T_ATARIST_DIGIT_FOUR 0x0034 #define T_ATARIST_DIGIT_FIVE 0x0035 #define T_ATARIST_DIGIT_SIX 0x0036 #define T_ATARIST_DIGIT_SEVEN 0x0037 #define T_ATARIST_DIGIT_EIGHT 0x0038 #define T_ATARIST_DIGIT_NINE 0x0039 #define T_ATARIST_COLON 0x003A #define T_ATARIST_SEMICOLON 0x003B #define T_ATARIST_LESS_THAN_SIGN 0x003C #define T_ATARIST_EQUALS_SIGN 0x003D #define T_ATARIST_GREATER_THAN_SIGN 0x003E #define T_ATARIST_QUESTION_MARK 0x003F #define T_ATARIST_COMMERCIAL_AT 0x0040 #define T_ATARIST_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ATARIST_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ATARIST_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ATARIST_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ATARIST_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ATARIST_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ATARIST_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ATARIST_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ATARIST_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ATARIST_LATIN_CAPITAL_LETTER_J 0x004A #define T_ATARIST_LATIN_CAPITAL_LETTER_K 0x004B #define T_ATARIST_LATIN_CAPITAL_LETTER_L 0x004C #define T_ATARIST_LATIN_CAPITAL_LETTER_M 0x004D #define T_ATARIST_LATIN_CAPITAL_LETTER_N 0x004E #define T_ATARIST_LATIN_CAPITAL_LETTER_O 0x004F #define T_ATARIST_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ATARIST_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ATARIST_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ATARIST_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ATARIST_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ATARIST_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ATARIST_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ATARIST_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ATARIST_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ATARIST_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ATARIST_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ATARIST_LEFT_SQUARE_BRACKET 0x005B #define T_ATARIST_REVERSE_SOLIDUS 0x005C #define T_ATARIST_RIGHT_SQUARE_BRACKET 0x005D #define T_ATARIST_CIRCUMFLEX_ACCENT 0x005E #define T_ATARIST_LOW_LINE 0x005F #define T_ATARIST_GRAVE_ACCENT 0x0060 #define T_ATARIST_LATIN_SMALL_LETTER_A 0x0061 #define T_ATARIST_LATIN_SMALL_LETTER_B 0x0062 #define T_ATARIST_LATIN_SMALL_LETTER_C 0x0063 #define T_ATARIST_LATIN_SMALL_LETTER_D 0x0064 #define T_ATARIST_LATIN_SMALL_LETTER_E 0x0065 #define T_ATARIST_LATIN_SMALL_LETTER_F 0x0066 #define T_ATARIST_LATIN_SMALL_LETTER_G 0x0067 #define T_ATARIST_LATIN_SMALL_LETTER_H 0x0068 #define T_ATARIST_LATIN_SMALL_LETTER_I 0x0069 #define T_ATARIST_LATIN_SMALL_LETTER_J 0x006A #define T_ATARIST_LATIN_SMALL_LETTER_K 0x006B #define T_ATARIST_LATIN_SMALL_LETTER_L 0x006C #define T_ATARIST_LATIN_SMALL_LETTER_M 0x006D #define T_ATARIST_LATIN_SMALL_LETTER_N 0x006E #define T_ATARIST_LATIN_SMALL_LETTER_O 0x006F #define T_ATARIST_LATIN_SMALL_LETTER_P 0x0070 #define T_ATARIST_LATIN_SMALL_LETTER_Q 0x0071 #define T_ATARIST_LATIN_SMALL_LETTER_R 0x0072 #define T_ATARIST_LATIN_SMALL_LETTER_S 0x0073 #define T_ATARIST_LATIN_SMALL_LETTER_T 0x0074 #define T_ATARIST_LATIN_SMALL_LETTER_U 0x0075 #define T_ATARIST_LATIN_SMALL_LETTER_V 0x0076 #define T_ATARIST_LATIN_SMALL_LETTER_W 0x0077 #define T_ATARIST_LATIN_SMALL_LETTER_X 0x0078 #define T_ATARIST_LATIN_SMALL_LETTER_Y 0x0079 #define T_ATARIST_LATIN_SMALL_LETTER_Z 0x007A #define T_ATARIST_LEFT_CURLY_BRACKET 0x007B #define T_ATARIST_VERTICAL_LINE 0x007C #define T_ATARIST_RIGHT_CURLY_BRACKET 0x007D #define T_ATARIST_TILDE 0x007E #define T_ATARIST_CTRL_DELETE 0x007F #define T_ATARIST_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0080 #define T_ATARIST_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x0081 #define T_ATARIST_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x0082 #define T_ATARIST_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0083 #define T_ATARIST_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x0084 #define T_ATARIST_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0085 #define T_ATARIST_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x0086 #define T_ATARIST_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x0087 #define T_ATARIST_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0088 #define T_ATARIST_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0089 #define T_ATARIST_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008A #define T_ATARIST_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x008B #define T_ATARIST_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x008C #define T_ATARIST_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x008D #define T_ATARIST_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x008E #define T_ATARIST_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x008F #define T_ATARIST_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0090 #define T_ATARIST_LATIN_SMALL_LETTER_AE 0x0091 #define T_ATARIST_LATIN_CAPITAL_LETTER_AE 0x0092 #define T_ATARIST_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0093 #define T_ATARIST_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x0094 #define T_ATARIST_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0095 #define T_ATARIST_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x0096 #define T_ATARIST_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x0097 #define T_ATARIST_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x0098 #define T_ATARIST_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0099 #define T_ATARIST_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_ATARIST_CENT_SIGN 0x009B #define T_ATARIST_POUND_SIGN 0x009C #define T_ATARIST_YEN_SIGN 0x009D #define T_ATARIST_LATIN_SMALL_LETTER_SHARP_S 0x009E #define T_ATARIST_LATIN_SMALL_LETTER_F_WITH_HOOK 0x009F #define T_ATARIST_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00A0 #define T_ATARIST_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00A1 #define T_ATARIST_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_ATARIST_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00A3 #define T_ATARIST_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00A4 #define T_ATARIST_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00A5 #define T_ATARIST_FEMININE_ORDINAL_INDICATOR 0x00A6 #define T_ATARIST_MASCULINE_ORDINAL_INDICATOR 0x00A7 #define T_ATARIST_INVERTED_QUESTION_MARK 0x00A8 #define T_ATARIST_REVERSED_NOT_SIGN 0x00A9 #define T_ATARIST_NOT_SIGN 0x00AA #define T_ATARIST_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_ATARIST_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_ATARIST_INVERTED_EXCLAMATION_MARK 0x00AD #define T_ATARIST_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_ATARIST_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_ATARIST_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00B0 #define T_ATARIST_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00B1 #define T_ATARIST_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00B2 #define T_ATARIST_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00B3 #define T_ATARIST_LATIN_SMALL_LIGATURE_OE 0x00B4 #define T_ATARIST_LATIN_CAPITAL_LIGATURE_OE 0x00B5 #define T_ATARIST_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00B6 #define T_ATARIST_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00B7 #define T_ATARIST_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00B8 #define T_ATARIST_DIAERESIS 0x00B9 #define T_ATARIST_ACUTE_ACCENT 0x00BA #define T_ATARIST_DAGGER 0x00BB #define T_ATARIST_PILCROW_SIGN 0x00BC #define T_ATARIST_COPYRIGHT_SIGN 0x00BD #define T_ATARIST_REGISTERED_SIGN 0x00BE #define T_ATARIST_TRADE_MARK_SIGN 0x00BF #define T_ATARIST_LATIN_SMALL_LIGATURE_IJ 0x00C0 #define T_ATARIST_LATIN_CAPITAL_LIGATURE_IJ 0x00C1 #define T_ATARIST_HEBREW_LETTER_ALEF 0x00C2 #define T_ATARIST_HEBREW_LETTER_BET 0x00C3 #define T_ATARIST_HEBREW_LETTER_GIMEL 0x00C4 #define T_ATARIST_HEBREW_LETTER_DALET 0x00C5 #define T_ATARIST_HEBREW_LETTER_HE 0x00C6 #define T_ATARIST_HEBREW_LETTER_VAV 0x00C7 #define T_ATARIST_HEBREW_LETTER_ZAYIN 0x00C8 #define T_ATARIST_HEBREW_LETTER_HET 0x00C9 #define T_ATARIST_HEBREW_LETTER_TET 0x00CA #define T_ATARIST_HEBREW_LETTER_YOD 0x00CB #define T_ATARIST_HEBREW_LETTER_KAF 0x00CC #define T_ATARIST_HEBREW_LETTER_LAMED 0x00CD #define T_ATARIST_HEBREW_LETTER_MEM 0x00CE #define T_ATARIST_HEBREW_LETTER_NUN 0x00CF #define T_ATARIST_HEBREW_LETTER_SAMEKH 0x00D0 #define T_ATARIST_HEBREW_LETTER_AYIN 0x00D1 #define T_ATARIST_HEBREW_LETTER_PE 0x00D2 #define T_ATARIST_HEBREW_LETTER_TSADI 0x00D3 #define T_ATARIST_HEBREW_LETTER_QOF 0x00D4 #define T_ATARIST_HEBREW_LETTER_RESH 0x00D5 #define T_ATARIST_HEBREW_LETTER_SHIN 0x00D6 #define T_ATARIST_HEBREW_LETTER_TAV 0x00D7 #define T_ATARIST_HEBREW_LETTER_FINAL_NUN 0x00D8 #define T_ATARIST_HEBREW_LETTER_FINAL_KAF 0x00D9 #define T_ATARIST_HEBREW_LETTER_FINAL_MEM 0x00DA #define T_ATARIST_HEBREW_LETTER_FINAL_PE 0x00DB #define T_ATARIST_HEBREW_LETTER_FINAL_TSADI 0x00DC #define T_ATARIST_SECTION_SIGN 0x00DD #define T_ATARIST_LOGICAL_AND 0x00DE #define T_ATARIST_INFINITY 0x00DF #define T_ATARIST_GREEK_SMALL_LETTER_ALPHA 0x00E0 #define T_ATARIST_GREEK_SMALL_LETTER_BETA 0x00E1 #define T_ATARIST_GREEK_CAPITAL_LETTER_GAMMA 0x00E2 #define T_ATARIST_GREEK_SMALL_LETTER_PI 0x00E3 #define T_ATARIST_GREEK_CAPITAL_LETTER_SIGMA 0x00E4 #define T_ATARIST_GREEK_SMALL_LETTER_SIGMA 0x00E5 #define T_ATARIST_MICRO_SIGN 0x00E6 #define T_ATARIST_GREEK_SMALL_LETTER_TAU 0x00E7 #define T_ATARIST_GREEK_CAPITAL_LETTER_PHI 0x00E8 #define T_ATARIST_GREEK_CAPITAL_LETTER_THETA 0x00E9 #define T_ATARIST_GREEK_CAPITAL_LETTER_OMEGA 0x00EA #define T_ATARIST_GREEK_SMALL_LETTER_DELTA 0x00EB #define T_ATARIST_CONTOUR_INTEGRAL 0x00EC #define T_ATARIST_GREEK_SMALL_LETTER_PHI 0x00ED #define T_ATARIST_ELEMENT_OF 0x00EE #define T_ATARIST_INTERSECTION 0x00EF #define T_ATARIST_IDENTICAL_TO 0x00F0 #define T_ATARIST_PLUS_MINUS_SIGN 0x00F1 #define T_ATARIST_GREATER_THAN_OR_EQUAL_TO 0x00F2 #define T_ATARIST_LESS_THAN_OR_EQUAL_TO 0x00F3 #define T_ATARIST_TOP_HALF_INTEGRAL 0x00F4 #define T_ATARIST_BOTTOM_HALF_INTEGRAL 0x00F5 #define T_ATARIST_DIVISION_SIGN 0x00F6 #define T_ATARIST_ALMOST_EQUAL_TO 0x00F7 #define T_ATARIST_DEGREE_SIGN 0x00F8 #define T_ATARIST_BULLET_OPERATOR 0x00F9 #define T_ATARIST_MIDDLE_DOT 0x00FA #define T_ATARIST_SQUARE_ROOT 0x00FB #define T_ATARIST_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0x00FC #define T_ATARIST_SUPERSCRIPT_TWO 0x00FD #define T_ATARIST_SUPERSCRIPT_THREE 0x00FE #define T_ATARIST_MACRON 0x00FF /* list of all characters */ #define T_LIST_ATARIST(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_YEN_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_DIAERESIS) \ EL(_ACUTE_ACCENT) \ EL(_DAGGER) \ EL(_PILCROW_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LIGATURE_IJ) \ EL(_LATIN_CAPITAL_LIGATURE_IJ) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_SECTION_SIGN) \ EL(_LOGICAL_AND) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_CONTOUR_INTEGRAL) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_ELEMENT_OF) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_MACRON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ATARIST(EL) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_YEN_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_DIAERESIS) \ EL(_ACUTE_ACCENT) \ EL(_DAGGER) \ EL(_PILCROW_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LIGATURE_IJ) \ EL(_LATIN_CAPITAL_LIGATURE_IJ) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_SECTION_SIGN) \ EL(_LOGICAL_AND) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_CONTOUR_INTEGRAL) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_ELEMENT_OF) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_MACRON) #endif /* TUTF_ATARIST_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/compiler.h������������������������������������������������������������������0000664�0000000�0000000�00000001177�13775351206�0017050�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TUTF_COMPILER_H #define TUTF_COMPILER_H /* library stuff. define macros with TUTF_ prefix */ #define TUTF_CAT(a, b) TW__CAT(a, b) #define TUTF_CAT3(a, b, c) TW__CAT3(a, b, c) #define TUTF_CAT4(a, b, c, d) TW__CAT4(a, b, c, d) #define T_CAT(a, b) TW__CAT(a, b) #define T_CAT3(a, b, c) TW__CAT3(a, b, c) #define T_CAT4(a, b, c, d) TW__CAT4(a, b, c, d) #define TUTF_STR(s) TW__STR(s) #define T_STR(s) TW__STR(s) #define TUTF_CONST TW_CONST #define TUTF_INLINE TW_INLINE #define TUTF_VOLATILE TW_VOLATILE #define TUTF_ATTR_FN_CONST TW_ATTR_FN_CONST #define TUTF_ATTR_TYPE_PACKED TW_ATTR_TYPE_PACKED #endif /* TUTF_COMPILER_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp1006.h��������������������������������������������������������������������0000664�0000000�0000000�00000136112�13775351206�0016145�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP1006_H #define TUTF_CP1006_H #define T_CP1006_CTRL_NULL 0x0000 #define T_CP1006_CTRL_START_OF_HEADING 0x0001 #define T_CP1006_CTRL_START_OF_TEXT 0x0002 #define T_CP1006_CTRL_END_OF_TEXT 0x0003 #define T_CP1006_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP1006_CTRL_ENQUIRY 0x0005 #define T_CP1006_CTRL_ACKNOWLEDGE 0x0006 #define T_CP1006_CTRL_BELL 0x0007 #define T_CP1006_CTRL_BACKSPACE 0x0008 #define T_CP1006_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP1006_CTRL_LINE_FEED 0x000A #define T_CP1006_CTRL_LINE_TABULATION 0x000B #define T_CP1006_CTRL_FORM_FEED 0x000C #define T_CP1006_CTRL_CARRIAGE_RETURN 0x000D #define T_CP1006_CTRL_SHIFT_OUT 0x000E #define T_CP1006_CTRL_SHIFT_IN 0x000F #define T_CP1006_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP1006_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP1006_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP1006_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP1006_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP1006_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP1006_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP1006_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP1006_CTRL_CANCEL 0x0018 #define T_CP1006_CTRL_END_OF_MEDIUM 0x0019 #define T_CP1006_CTRL_SUBSTITUTE 0x001A #define T_CP1006_CTRL_ESCAPE 0x001B #define T_CP1006_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP1006_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP1006_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP1006_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP1006_SPACE 0x0020 #define T_CP1006_EXCLAMATION_MARK 0x0021 #define T_CP1006_QUOTATION_MARK 0x0022 #define T_CP1006_NUMBER_SIGN 0x0023 #define T_CP1006_DOLLAR_SIGN 0x0024 #define T_CP1006_PERCENT_SIGN 0x0025 #define T_CP1006_AMPERSAND 0x0026 #define T_CP1006_APOSTROPHE 0x0027 #define T_CP1006_LEFT_PARENTHESIS 0x0028 #define T_CP1006_RIGHT_PARENTHESIS 0x0029 #define T_CP1006_ASTERISK 0x002A #define T_CP1006_PLUS_SIGN 0x002B #define T_CP1006_COMMA 0x002C #define T_CP1006_HYPHEN_MINUS 0x002D #define T_CP1006_FULL_STOP 0x002E #define T_CP1006_SOLIDUS 0x002F #define T_CP1006_DIGIT_ZERO 0x0030 #define T_CP1006_DIGIT_ONE 0x0031 #define T_CP1006_DIGIT_TWO 0x0032 #define T_CP1006_DIGIT_THREE 0x0033 #define T_CP1006_DIGIT_FOUR 0x0034 #define T_CP1006_DIGIT_FIVE 0x0035 #define T_CP1006_DIGIT_SIX 0x0036 #define T_CP1006_DIGIT_SEVEN 0x0037 #define T_CP1006_DIGIT_EIGHT 0x0038 #define T_CP1006_DIGIT_NINE 0x0039 #define T_CP1006_COLON 0x003A #define T_CP1006_SEMICOLON 0x003B #define T_CP1006_LESS_THAN_SIGN 0x003C #define T_CP1006_EQUALS_SIGN 0x003D #define T_CP1006_GREATER_THAN_SIGN 0x003E #define T_CP1006_QUESTION_MARK 0x003F #define T_CP1006_COMMERCIAL_AT 0x0040 #define T_CP1006_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP1006_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP1006_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP1006_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP1006_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP1006_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP1006_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP1006_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP1006_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP1006_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP1006_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP1006_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP1006_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP1006_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP1006_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP1006_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP1006_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP1006_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP1006_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP1006_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP1006_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP1006_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP1006_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP1006_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP1006_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP1006_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP1006_LEFT_SQUARE_BRACKET 0x005B #define T_CP1006_REVERSE_SOLIDUS 0x005C #define T_CP1006_RIGHT_SQUARE_BRACKET 0x005D #define T_CP1006_CIRCUMFLEX_ACCENT 0x005E #define T_CP1006_LOW_LINE 0x005F #define T_CP1006_GRAVE_ACCENT 0x0060 #define T_CP1006_LATIN_SMALL_LETTER_A 0x0061 #define T_CP1006_LATIN_SMALL_LETTER_B 0x0062 #define T_CP1006_LATIN_SMALL_LETTER_C 0x0063 #define T_CP1006_LATIN_SMALL_LETTER_D 0x0064 #define T_CP1006_LATIN_SMALL_LETTER_E 0x0065 #define T_CP1006_LATIN_SMALL_LETTER_F 0x0066 #define T_CP1006_LATIN_SMALL_LETTER_G 0x0067 #define T_CP1006_LATIN_SMALL_LETTER_H 0x0068 #define T_CP1006_LATIN_SMALL_LETTER_I 0x0069 #define T_CP1006_LATIN_SMALL_LETTER_J 0x006A #define T_CP1006_LATIN_SMALL_LETTER_K 0x006B #define T_CP1006_LATIN_SMALL_LETTER_L 0x006C #define T_CP1006_LATIN_SMALL_LETTER_M 0x006D #define T_CP1006_LATIN_SMALL_LETTER_N 0x006E #define T_CP1006_LATIN_SMALL_LETTER_O 0x006F #define T_CP1006_LATIN_SMALL_LETTER_P 0x0070 #define T_CP1006_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP1006_LATIN_SMALL_LETTER_R 0x0072 #define T_CP1006_LATIN_SMALL_LETTER_S 0x0073 #define T_CP1006_LATIN_SMALL_LETTER_T 0x0074 #define T_CP1006_LATIN_SMALL_LETTER_U 0x0075 #define T_CP1006_LATIN_SMALL_LETTER_V 0x0076 #define T_CP1006_LATIN_SMALL_LETTER_W 0x0077 #define T_CP1006_LATIN_SMALL_LETTER_X 0x0078 #define T_CP1006_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP1006_LATIN_SMALL_LETTER_Z 0x007A #define T_CP1006_LEFT_CURLY_BRACKET 0x007B #define T_CP1006_VERTICAL_LINE 0x007C #define T_CP1006_RIGHT_CURLY_BRACKET 0x007D #define T_CP1006_TILDE 0x007E #define T_CP1006_CTRL_DELETE 0x007F #define T_CP1006_UNDEFINED_0080 0x0080 #define T_CP1006_UNDEFINED_0081 0x0081 #define T_CP1006_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_CP1006_CTRL_NO_BREAK_HERE 0x0083 #define T_CP1006_UNDEFINED_0084 0x0084 #define T_CP1006_CTRL_NEXT_LINE 0x0085 #define T_CP1006_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_CP1006_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_CP1006_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_CP1006_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_CP1006_CTRL_LINE_TABULATION_SET 0x008A #define T_CP1006_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_CP1006_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_CP1006_CTRL_REVERSE_LINE_FEED 0x008D #define T_CP1006_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_CP1006_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_CP1006_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_CP1006_CTRL_PRIVATE_USE_ONE 0x0091 #define T_CP1006_CTRL_PRIVATE_USE_TWO 0x0092 #define T_CP1006_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_CP1006_CTRL_CANCEL_CHARACTER 0x0094 #define T_CP1006_CTRL_MESSAGE_WAITING 0x0095 #define T_CP1006_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_CP1006_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_CP1006_CTRL_START_OF_STRING 0x0098 #define T_CP1006_UNDEFINED_0099 0x0099 #define T_CP1006_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_CP1006_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_CP1006_CTRL_STRING_TERMINATOR 0x009C #define T_CP1006_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_CP1006_CTRL_PRIVACY_MESSAGE 0x009E #define T_CP1006_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_CP1006_NO_BREAK_SPACE 0x00A0 #define T_CP1006_EXTENDED_ARABIC_INDIC_DIGIT_ZERO 0x00A1 #define T_CP1006_EXTENDED_ARABIC_INDIC_DIGIT_ONE 0x00A2 #define T_CP1006_EXTENDED_ARABIC_INDIC_DIGIT_TWO 0x00A3 #define T_CP1006_EXTENDED_ARABIC_INDIC_DIGIT_THREE 0x00A4 #define T_CP1006_EXTENDED_ARABIC_INDIC_DIGIT_FOUR 0x00A5 #define T_CP1006_EXTENDED_ARABIC_INDIC_DIGIT_FIVE 0x00A6 #define T_CP1006_EXTENDED_ARABIC_INDIC_DIGIT_SIX 0x00A7 #define T_CP1006_EXTENDED_ARABIC_INDIC_DIGIT_SEVEN 0x00A8 #define T_CP1006_EXTENDED_ARABIC_INDIC_DIGIT_EIGHT 0x00A9 #define T_CP1006_EXTENDED_ARABIC_INDIC_DIGIT_NINE 0x00AA #define T_CP1006_ARABIC_COMMA 0x00AB #define T_CP1006_ARABIC_SEMICOLON 0x00AC #define T_CP1006_SOFT_HYPHEN 0x00AD #define T_CP1006_ARABIC_QUESTION_MARK 0x00AE #define T_CP1006_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM 0x00AF #define T_CP1006_ARABIC_LETTER_ALEF_ISOLATED_FORM 0x00B0 #define T_CP1006_ARABIC_LETTER_ALEF_FINAL_FORM 0x00B1 #define T_CP1006_UNDEFINED_00B2 0x00B2 #define T_CP1006_ARABIC_LETTER_BEH_ISOLATED_FORM 0x00B3 #define T_CP1006_ARABIC_LETTER_BEH_INITIAL_FORM 0x00B4 #define T_CP1006_ARABIC_LETTER_PEH_ISOLATED_FORM 0x00B5 #define T_CP1006_ARABIC_LETTER_PEH_INITIAL_FORM 0x00B6 #define T_CP1006_ARABIC_LETTER_TEH_MARBUTA_ISOLATED_FORM 0x00B7 #define T_CP1006_ARABIC_LETTER_TEH_ISOLATED_FORM 0x00B8 #define T_CP1006_ARABIC_LETTER_TEH_INITIAL_FORM 0x00B9 #define T_CP1006_ARABIC_LETTER_TTEH_ISOLATED_FORM 0x00BA #define T_CP1006_ARABIC_LETTER_TTEH_INITIAL_FORM 0x00BB #define T_CP1006_ARABIC_LETTER_THEH_ISOLATED_FORM 0x00BC #define T_CP1006_ARABIC_LETTER_THEH_INITIAL_FORM 0x00BD #define T_CP1006_ARABIC_LETTER_JEEM_ISOLATED_FORM 0x00BE #define T_CP1006_ARABIC_LETTER_JEEM_INITIAL_FORM 0x00BF #define T_CP1006_ARABIC_LETTER_TCHEH_ISOLATED_FORM 0x00C0 #define T_CP1006_ARABIC_LETTER_TCHEH_INITIAL_FORM 0x00C1 #define T_CP1006_ARABIC_LETTER_HAH_ISOLATED_FORM 0x00C2 #define T_CP1006_ARABIC_LETTER_HAH_INITIAL_FORM 0x00C3 #define T_CP1006_ARABIC_LETTER_KHAH_ISOLATED_FORM 0x00C4 #define T_CP1006_ARABIC_LETTER_KHAH_INITIAL_FORM 0x00C5 #define T_CP1006_ARABIC_LETTER_DAL_ISOLATED_FORM 0x00C6 #define T_CP1006_ARABIC_LETTER_DAHAL_ISOLATED_FORM 0x00C7 #define T_CP1006_ARABIC_LETTER_THAL_ISOLATED_FORM 0x00C8 #define T_CP1006_ARABIC_LETTER_REH_ISOLATED_FORM 0x00C9 #define T_CP1006_ARABIC_LETTER_RREH_ISOLATED_FORM 0x00CA #define T_CP1006_ARABIC_LETTER_ZAIN_ISOLATED_FORM 0x00CB #define T_CP1006_ARABIC_LETTER_JEH_ISOLATED_FORM 0x00CC #define T_CP1006_ARABIC_LETTER_SEEN_ISOLATED_FORM 0x00CD #define T_CP1006_ARABIC_LETTER_SEEN_INITIAL_FORM 0x00CE #define T_CP1006_ARABIC_LETTER_SHEEN_ISOLATED_FORM 0x00CF #define T_CP1006_ARABIC_LETTER_SHEEN_INITIAL_FORM 0x00D0 #define T_CP1006_ARABIC_LETTER_SAD_ISOLATED_FORM 0x00D1 #define T_CP1006_ARABIC_LETTER_SAD_INITIAL_FORM 0x00D2 #define T_CP1006_ARABIC_LETTER_DAD_ISOLATED_FORM 0x00D3 #define T_CP1006_ARABIC_LETTER_DAD_INITIAL_FORM 0x00D4 #define T_CP1006_ARABIC_LETTER_TAH_ISOLATED_FORM 0x00D5 #define T_CP1006_ARABIC_LETTER_ZAH_ISOLATED_FORM 0x00D6 #define T_CP1006_ARABIC_LETTER_AIN_ISOLATED_FORM 0x00D7 #define T_CP1006_ARABIC_LETTER_AIN_FINAL_FORM 0x00D8 #define T_CP1006_ARABIC_LETTER_AIN_INITIAL_FORM 0x00D9 #define T_CP1006_ARABIC_LETTER_AIN_MEDIAL_FORM 0x00DA #define T_CP1006_ARABIC_LETTER_GHAIN_ISOLATED_FORM 0x00DB #define T_CP1006_ARABIC_LETTER_GHAIN_FINAL_FORM 0x00DC #define T_CP1006_ARABIC_LETTER_GHAIN_INITIAL_FORM 0x00DD #define T_CP1006_ARABIC_LETTER_GHAIN_MEDIAL_FORM 0x00DE #define T_CP1006_ARABIC_LETTER_FEH_ISOLATED_FORM 0x00DF #define T_CP1006_ARABIC_LETTER_FEH_INITIAL_FORM 0x00E0 #define T_CP1006_ARABIC_LETTER_QAF_ISOLATED_FORM 0x00E1 #define T_CP1006_ARABIC_LETTER_QAF_INITIAL_FORM 0x00E2 #define T_CP1006_ARABIC_LETTER_KAF_ISOLATED_FORM 0x00E3 #define T_CP1006_ARABIC_LETTER_KAF_INITIAL_FORM 0x00E4 #define T_CP1006_ARABIC_LETTER_GAF_ISOLATED_FORM 0x00E5 #define T_CP1006_ARABIC_LETTER_GAF_INITIAL_FORM 0x00E6 #define T_CP1006_ARABIC_LETTER_LAM_ISOLATED_FORM 0x00E7 #define T_CP1006_ARABIC_LETTER_LAM_INITIAL_FORM 0x00E8 #define T_CP1006_ARABIC_LETTER_LAM_MEDIAL_FORM 0x00E9 #define T_CP1006_ARABIC_LETTER_MEEM_ISOLATED_FORM 0x00EA #define T_CP1006_ARABIC_LETTER_MEEM_INITIAL_FORM 0x00EB #define T_CP1006_ARABIC_LETTER_NOON_GHUNNA_ISOLATED_FORM 0x00EC #define T_CP1006_ARABIC_LETTER_NOON_ISOLATED_FORM 0x00ED #define T_CP1006_ARABIC_LETTER_NOON_INITIAL_FORM 0x00EE #define T_CP1006_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE_ISOLATED_FORM 0x00EF #define T_CP1006_ARABIC_LETTER_WAW_ISOLATED_FORM 0x00F0 #define T_CP1006_ARABIC_LETTER_HEH_GOAL_ISOLATED_FORM 0x00F1 #define T_CP1006_ARABIC_LETTER_HEH_GOAL_INITIAL_FORM 0x00F2 #define T_CP1006_ARABIC_LETTER_HEH_GOAL_MEDIAL_FORM 0x00F3 #define T_CP1006_ARABIC_LETTER_HEH_DOACHASHMEE_ISOLATED_FORM 0x00F4 #define T_CP1006_ARABIC_LETTER_HAMZA_ISOLATED_FORM 0x00F5 #define T_CP1006_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_ISOLATED_FORM 0x00F6 #define T_CP1006_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_FINAL_FORM 0x00F7 #define T_CP1006_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_INITIAL_FORM 0x00F8 #define T_CP1006_ARABIC_LETTER_YEH_ISOLATED_FORM 0x00F9 #define T_CP1006_ARABIC_LETTER_YEH_FINAL_FORM 0x00FA #define T_CP1006_ARABIC_LETTER_YEH_INITIAL_FORM 0x00FB #define T_CP1006_ARABIC_LETTER_YEH_BARREE_WITH_HAMZA_ABOVE_ISOLATED_FORM 0x00FC #define T_CP1006_ARABIC_LETTER_YEH_BARREE_ISOLATED_FORM 0x00FD #define T_CP1006_ARABIC_SHADDA_ISOLATED_FORM 0x00FE #define T_CP1006_ARABIC_SHADDA_MEDIAL_FORM 0x00FF /* list of all characters */ #define T_LIST_CP1006(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_ZERO) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_ONE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_TWO) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_THREE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_FOUR) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_FIVE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_SIX) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_SEVEN) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_EIGHT) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_NINE) \ EL(_ARABIC_COMMA) \ EL(_ARABIC_SEMICOLON) \ EL(_SOFT_HYPHEN) \ EL(_ARABIC_QUESTION_MARK) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ALEF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ALEF_FINAL_FORM) \ EL(_UNDEFINED_00B2) \ EL(_ARABIC_LETTER_BEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_BEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_PEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_PEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_TEH_MARBUTA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_TTEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TTEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_THEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_THEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_JEEM_ISOLATED_FORM) \ EL(_ARABIC_LETTER_JEEM_INITIAL_FORM) \ EL(_ARABIC_LETTER_TCHEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TCHEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_HAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HAH_INITIAL_FORM) \ EL(_ARABIC_LETTER_KHAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_KHAH_INITIAL_FORM) \ EL(_ARABIC_LETTER_DAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_DAHAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_THAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_REH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_RREH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ZAIN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_JEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SEEN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SEEN_INITIAL_FORM) \ EL(_ARABIC_LETTER_SHEEN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SHEEN_INITIAL_FORM) \ EL(_ARABIC_LETTER_SAD_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SAD_INITIAL_FORM) \ EL(_ARABIC_LETTER_DAD_ISOLATED_FORM) \ EL(_ARABIC_LETTER_DAD_INITIAL_FORM) \ EL(_ARABIC_LETTER_TAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ZAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_AIN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_AIN_FINAL_FORM) \ EL(_ARABIC_LETTER_AIN_INITIAL_FORM) \ EL(_ARABIC_LETTER_AIN_MEDIAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_GHAIN_FINAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_INITIAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_MEDIAL_FORM) \ EL(_ARABIC_LETTER_FEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_FEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_QAF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_QAF_INITIAL_FORM) \ EL(_ARABIC_LETTER_KAF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_KAF_INITIAL_FORM) \ EL(_ARABIC_LETTER_GAF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_GAF_INITIAL_FORM) \ EL(_ARABIC_LETTER_LAM_ISOLATED_FORM) \ EL(_ARABIC_LETTER_LAM_INITIAL_FORM) \ EL(_ARABIC_LETTER_LAM_MEDIAL_FORM) \ EL(_ARABIC_LETTER_MEEM_ISOLATED_FORM) \ EL(_ARABIC_LETTER_MEEM_INITIAL_FORM) \ EL(_ARABIC_LETTER_NOON_GHUNNA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_NOON_ISOLATED_FORM) \ EL(_ARABIC_LETTER_NOON_INITIAL_FORM) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_WAW_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HEH_GOAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HEH_GOAL_INITIAL_FORM) \ EL(_ARABIC_LETTER_HEH_GOAL_MEDIAL_FORM) \ EL(_ARABIC_LETTER_HEH_DOACHASHMEE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HAMZA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_FINAL_FORM) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_INITIAL_FORM) \ EL(_ARABIC_LETTER_YEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_FINAL_FORM) \ EL(_ARABIC_LETTER_YEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_YEH_BARREE_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_BARREE_ISOLATED_FORM) \ EL(_ARABIC_SHADDA_ISOLATED_FORM) \ EL(_ARABIC_SHADDA_MEDIAL_FORM) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP1006(EL) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_ZERO) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_ONE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_TWO) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_THREE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_FOUR) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_FIVE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_SIX) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_SEVEN) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_EIGHT) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_NINE) \ EL(_ARABIC_COMMA) \ EL(_ARABIC_SEMICOLON) \ EL(_ARABIC_QUESTION_MARK) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ALEF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ALEF_FINAL_FORM) \ EL(_UNDEFINED_00B2) \ EL(_ARABIC_LETTER_BEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_BEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_PEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_PEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_TEH_MARBUTA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_TTEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TTEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_THEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_THEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_JEEM_ISOLATED_FORM) \ EL(_ARABIC_LETTER_JEEM_INITIAL_FORM) \ EL(_ARABIC_LETTER_TCHEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TCHEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_HAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HAH_INITIAL_FORM) \ EL(_ARABIC_LETTER_KHAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_KHAH_INITIAL_FORM) \ EL(_ARABIC_LETTER_DAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_DAHAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_THAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_REH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_RREH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ZAIN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_JEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SEEN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SEEN_INITIAL_FORM) \ EL(_ARABIC_LETTER_SHEEN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SHEEN_INITIAL_FORM) \ EL(_ARABIC_LETTER_SAD_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SAD_INITIAL_FORM) \ EL(_ARABIC_LETTER_DAD_ISOLATED_FORM) \ EL(_ARABIC_LETTER_DAD_INITIAL_FORM) \ EL(_ARABIC_LETTER_TAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ZAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_AIN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_AIN_FINAL_FORM) \ EL(_ARABIC_LETTER_AIN_INITIAL_FORM) \ EL(_ARABIC_LETTER_AIN_MEDIAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_GHAIN_FINAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_INITIAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_MEDIAL_FORM) \ EL(_ARABIC_LETTER_FEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_FEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_QAF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_QAF_INITIAL_FORM) \ EL(_ARABIC_LETTER_KAF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_KAF_INITIAL_FORM) \ EL(_ARABIC_LETTER_GAF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_GAF_INITIAL_FORM) \ EL(_ARABIC_LETTER_LAM_ISOLATED_FORM) \ EL(_ARABIC_LETTER_LAM_INITIAL_FORM) \ EL(_ARABIC_LETTER_LAM_MEDIAL_FORM) \ EL(_ARABIC_LETTER_MEEM_ISOLATED_FORM) \ EL(_ARABIC_LETTER_MEEM_INITIAL_FORM) \ EL(_ARABIC_LETTER_NOON_GHUNNA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_NOON_ISOLATED_FORM) \ EL(_ARABIC_LETTER_NOON_INITIAL_FORM) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_WAW_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HEH_GOAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HEH_GOAL_INITIAL_FORM) \ EL(_ARABIC_LETTER_HEH_GOAL_MEDIAL_FORM) \ EL(_ARABIC_LETTER_HEH_DOACHASHMEE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HAMZA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_FINAL_FORM) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_INITIAL_FORM) \ EL(_ARABIC_LETTER_YEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_FINAL_FORM) \ EL(_ARABIC_LETTER_YEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_YEH_BARREE_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_BARREE_ISOLATED_FORM) \ EL(_ARABIC_SHADDA_ISOLATED_FORM) \ EL(_ARABIC_SHADDA_MEDIAL_FORM) #endif /* TUTF_CP1006_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp1250.h��������������������������������������������������������������������0000664�0000000�0000000�00000132412�13775351206�0016145�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP1250_H #define TUTF_CP1250_H #define T_CP1250_CTRL_NULL 0x0000 #define T_CP1250_CTRL_START_OF_HEADING 0x0001 #define T_CP1250_CTRL_START_OF_TEXT 0x0002 #define T_CP1250_CTRL_END_OF_TEXT 0x0003 #define T_CP1250_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP1250_CTRL_ENQUIRY 0x0005 #define T_CP1250_CTRL_ACKNOWLEDGE 0x0006 #define T_CP1250_CTRL_BELL 0x0007 #define T_CP1250_CTRL_BACKSPACE 0x0008 #define T_CP1250_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP1250_CTRL_LINE_FEED 0x000A #define T_CP1250_CTRL_LINE_TABULATION 0x000B #define T_CP1250_CTRL_FORM_FEED 0x000C #define T_CP1250_CTRL_CARRIAGE_RETURN 0x000D #define T_CP1250_CTRL_SHIFT_OUT 0x000E #define T_CP1250_CTRL_SHIFT_IN 0x000F #define T_CP1250_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP1250_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP1250_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP1250_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP1250_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP1250_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP1250_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP1250_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP1250_CTRL_CANCEL 0x0018 #define T_CP1250_CTRL_END_OF_MEDIUM 0x0019 #define T_CP1250_CTRL_SUBSTITUTE 0x001A #define T_CP1250_CTRL_ESCAPE 0x001B #define T_CP1250_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP1250_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP1250_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP1250_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP1250_SPACE 0x0020 #define T_CP1250_EXCLAMATION_MARK 0x0021 #define T_CP1250_QUOTATION_MARK 0x0022 #define T_CP1250_NUMBER_SIGN 0x0023 #define T_CP1250_DOLLAR_SIGN 0x0024 #define T_CP1250_PERCENT_SIGN 0x0025 #define T_CP1250_AMPERSAND 0x0026 #define T_CP1250_APOSTROPHE 0x0027 #define T_CP1250_LEFT_PARENTHESIS 0x0028 #define T_CP1250_RIGHT_PARENTHESIS 0x0029 #define T_CP1250_ASTERISK 0x002A #define T_CP1250_PLUS_SIGN 0x002B #define T_CP1250_COMMA 0x002C #define T_CP1250_HYPHEN_MINUS 0x002D #define T_CP1250_FULL_STOP 0x002E #define T_CP1250_SOLIDUS 0x002F #define T_CP1250_DIGIT_ZERO 0x0030 #define T_CP1250_DIGIT_ONE 0x0031 #define T_CP1250_DIGIT_TWO 0x0032 #define T_CP1250_DIGIT_THREE 0x0033 #define T_CP1250_DIGIT_FOUR 0x0034 #define T_CP1250_DIGIT_FIVE 0x0035 #define T_CP1250_DIGIT_SIX 0x0036 #define T_CP1250_DIGIT_SEVEN 0x0037 #define T_CP1250_DIGIT_EIGHT 0x0038 #define T_CP1250_DIGIT_NINE 0x0039 #define T_CP1250_COLON 0x003A #define T_CP1250_SEMICOLON 0x003B #define T_CP1250_LESS_THAN_SIGN 0x003C #define T_CP1250_EQUALS_SIGN 0x003D #define T_CP1250_GREATER_THAN_SIGN 0x003E #define T_CP1250_QUESTION_MARK 0x003F #define T_CP1250_COMMERCIAL_AT 0x0040 #define T_CP1250_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP1250_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP1250_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP1250_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP1250_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP1250_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP1250_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP1250_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP1250_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP1250_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP1250_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP1250_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP1250_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP1250_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP1250_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP1250_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP1250_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP1250_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP1250_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP1250_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP1250_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP1250_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP1250_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP1250_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP1250_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP1250_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP1250_LEFT_SQUARE_BRACKET 0x005B #define T_CP1250_REVERSE_SOLIDUS 0x005C #define T_CP1250_RIGHT_SQUARE_BRACKET 0x005D #define T_CP1250_CIRCUMFLEX_ACCENT 0x005E #define T_CP1250_LOW_LINE 0x005F #define T_CP1250_GRAVE_ACCENT 0x0060 #define T_CP1250_LATIN_SMALL_LETTER_A 0x0061 #define T_CP1250_LATIN_SMALL_LETTER_B 0x0062 #define T_CP1250_LATIN_SMALL_LETTER_C 0x0063 #define T_CP1250_LATIN_SMALL_LETTER_D 0x0064 #define T_CP1250_LATIN_SMALL_LETTER_E 0x0065 #define T_CP1250_LATIN_SMALL_LETTER_F 0x0066 #define T_CP1250_LATIN_SMALL_LETTER_G 0x0067 #define T_CP1250_LATIN_SMALL_LETTER_H 0x0068 #define T_CP1250_LATIN_SMALL_LETTER_I 0x0069 #define T_CP1250_LATIN_SMALL_LETTER_J 0x006A #define T_CP1250_LATIN_SMALL_LETTER_K 0x006B #define T_CP1250_LATIN_SMALL_LETTER_L 0x006C #define T_CP1250_LATIN_SMALL_LETTER_M 0x006D #define T_CP1250_LATIN_SMALL_LETTER_N 0x006E #define T_CP1250_LATIN_SMALL_LETTER_O 0x006F #define T_CP1250_LATIN_SMALL_LETTER_P 0x0070 #define T_CP1250_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP1250_LATIN_SMALL_LETTER_R 0x0072 #define T_CP1250_LATIN_SMALL_LETTER_S 0x0073 #define T_CP1250_LATIN_SMALL_LETTER_T 0x0074 #define T_CP1250_LATIN_SMALL_LETTER_U 0x0075 #define T_CP1250_LATIN_SMALL_LETTER_V 0x0076 #define T_CP1250_LATIN_SMALL_LETTER_W 0x0077 #define T_CP1250_LATIN_SMALL_LETTER_X 0x0078 #define T_CP1250_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP1250_LATIN_SMALL_LETTER_Z 0x007A #define T_CP1250_LEFT_CURLY_BRACKET 0x007B #define T_CP1250_VERTICAL_LINE 0x007C #define T_CP1250_RIGHT_CURLY_BRACKET 0x007D #define T_CP1250_TILDE 0x007E #define T_CP1250_CTRL_DELETE 0x007F #define T_CP1250_EURO_SIGN 0x0080 #define T_CP1250_UNDEFINED_0081 0x0081 #define T_CP1250_SINGLE_LOW_9_QUOTATION_MARK 0x0082 #define T_CP1250_UNDEFINED_0083 0x0083 #define T_CP1250_DOUBLE_LOW_9_QUOTATION_MARK 0x0084 #define T_CP1250_HORIZONTAL_ELLIPSIS 0x0085 #define T_CP1250_DAGGER 0x0086 #define T_CP1250_DOUBLE_DAGGER 0x0087 #define T_CP1250_UNDEFINED_0088 0x0088 #define T_CP1250_PER_MILLE_SIGN 0x0089 #define T_CP1250_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x008A #define T_CP1250_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x008B #define T_CP1250_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x008C #define T_CP1250_LATIN_CAPITAL_LETTER_T_WITH_CARON 0x008D #define T_CP1250_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x008E #define T_CP1250_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x008F #define T_CP1250_UNDEFINED_0090 0x0090 #define T_CP1250_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_CP1250_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_CP1250_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_CP1250_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_CP1250_BULLET 0x0095 #define T_CP1250_EN_DASH 0x0096 #define T_CP1250_EM_DASH 0x0097 #define T_CP1250_UNDEFINED_0098 0x0098 #define T_CP1250_TRADE_MARK_SIGN 0x0099 #define T_CP1250_LATIN_SMALL_LETTER_S_WITH_CARON 0x009A #define T_CP1250_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x009B #define T_CP1250_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x009C #define T_CP1250_LATIN_SMALL_LETTER_T_WITH_CARON 0x009D #define T_CP1250_LATIN_SMALL_LETTER_Z_WITH_CARON 0x009E #define T_CP1250_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x009F #define T_CP1250_NO_BREAK_SPACE 0x00A0 #define T_CP1250_CARON 0x00A1 #define T_CP1250_BREVE 0x00A2 #define T_CP1250_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x00A3 #define T_CP1250_CURRENCY_SIGN 0x00A4 #define T_CP1250_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x00A5 #define T_CP1250_BROKEN_BAR 0x00A6 #define T_CP1250_SECTION_SIGN 0x00A7 #define T_CP1250_DIAERESIS 0x00A8 #define T_CP1250_COPYRIGHT_SIGN 0x00A9 #define T_CP1250_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x00AA #define T_CP1250_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_CP1250_NOT_SIGN 0x00AC #define T_CP1250_SOFT_HYPHEN 0x00AD #define T_CP1250_REGISTERED_SIGN 0x00AE #define T_CP1250_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x00AF #define T_CP1250_DEGREE_SIGN 0x00B0 #define T_CP1250_PLUS_MINUS_SIGN 0x00B1 #define T_CP1250_OGONEK 0x00B2 #define T_CP1250_LATIN_SMALL_LETTER_L_WITH_STROKE 0x00B3 #define T_CP1250_ACUTE_ACCENT 0x00B4 #define T_CP1250_MICRO_SIGN 0x00B5 #define T_CP1250_PILCROW_SIGN 0x00B6 #define T_CP1250_MIDDLE_DOT 0x00B7 #define T_CP1250_CEDILLA 0x00B8 #define T_CP1250_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x00B9 #define T_CP1250_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x00BA #define T_CP1250_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_CP1250_LATIN_CAPITAL_LETTER_L_WITH_CARON 0x00BC #define T_CP1250_DOUBLE_ACUTE_ACCENT 0x00BD #define T_CP1250_LATIN_SMALL_LETTER_L_WITH_CARON 0x00BE #define T_CP1250_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x00BF #define T_CP1250_LATIN_CAPITAL_LETTER_R_WITH_ACUTE 0x00C0 #define T_CP1250_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_CP1250_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_CP1250_LATIN_CAPITAL_LETTER_A_WITH_BREVE 0x00C3 #define T_CP1250_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_CP1250_LATIN_CAPITAL_LETTER_L_WITH_ACUTE 0x00C5 #define T_CP1250_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x00C6 #define T_CP1250_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_CP1250_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x00C8 #define T_CP1250_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_CP1250_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00CA #define T_CP1250_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_CP1250_LATIN_CAPITAL_LETTER_E_WITH_CARON 0x00CC #define T_CP1250_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_CP1250_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_CP1250_LATIN_CAPITAL_LETTER_D_WITH_CARON 0x00CF #define T_CP1250_LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x00D0 #define T_CP1250_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x00D1 #define T_CP1250_LATIN_CAPITAL_LETTER_N_WITH_CARON 0x00D2 #define T_CP1250_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_CP1250_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_CP1250_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE 0x00D5 #define T_CP1250_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_CP1250_MULTIPLICATION_SIGN 0x00D7 #define T_CP1250_LATIN_CAPITAL_LETTER_R_WITH_CARON 0x00D8 #define T_CP1250_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE 0x00D9 #define T_CP1250_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_CP1250_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0x00DB #define T_CP1250_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_CP1250_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD #define T_CP1250_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA 0x00DE #define T_CP1250_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_CP1250_LATIN_SMALL_LETTER_R_WITH_ACUTE 0x00E0 #define T_CP1250_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_CP1250_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_CP1250_LATIN_SMALL_LETTER_A_WITH_BREVE 0x00E3 #define T_CP1250_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_CP1250_LATIN_SMALL_LETTER_L_WITH_ACUTE 0x00E5 #define T_CP1250_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x00E6 #define T_CP1250_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_CP1250_LATIN_SMALL_LETTER_C_WITH_CARON 0x00E8 #define T_CP1250_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_CP1250_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00EA #define T_CP1250_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_CP1250_LATIN_SMALL_LETTER_E_WITH_CARON 0x00EC #define T_CP1250_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_CP1250_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_CP1250_LATIN_SMALL_LETTER_D_WITH_CARON 0x00EF #define T_CP1250_LATIN_SMALL_LETTER_D_WITH_STROKE 0x00F0 #define T_CP1250_LATIN_SMALL_LETTER_N_WITH_ACUTE 0x00F1 #define T_CP1250_LATIN_SMALL_LETTER_N_WITH_CARON 0x00F2 #define T_CP1250_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_CP1250_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_CP1250_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE 0x00F5 #define T_CP1250_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_CP1250_DIVISION_SIGN 0x00F7 #define T_CP1250_LATIN_SMALL_LETTER_R_WITH_CARON 0x00F8 #define T_CP1250_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE 0x00F9 #define T_CP1250_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_CP1250_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0x00FB #define T_CP1250_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_CP1250_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD #define T_CP1250_LATIN_SMALL_LETTER_T_WITH_CEDILLA 0x00FE #define T_CP1250_DOT_ABOVE 0x00FF /* list of all characters */ #define T_LIST_CP1250(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_UNDEFINED_0083) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_UNDEFINED_0088) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_T_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_NO_BREAK_SPACE) \ EL(_CARON) \ EL(_BREVE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_OGONEK) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CEDILLA) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CARON) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_LATIN_SMALL_LETTER_L_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_D_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_R_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_T_WITH_CEDILLA) \ EL(_DOT_ABOVE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP1250(EL) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_UNDEFINED_0083) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_UNDEFINED_0088) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_T_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_CARON) \ EL(_BREVE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_OGONEK) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CARON) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_LATIN_SMALL_LETTER_L_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_D_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_R_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_T_WITH_CEDILLA) \ EL(_DOT_ABOVE) #endif /* TUTF_CP1250_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp1251.h��������������������������������������������������������������������0000664�0000000�0000000�00000140471�13775351206�0016152�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP1251_H #define TUTF_CP1251_H #define T_CP1251_CTRL_NULL 0x0000 #define T_CP1251_CTRL_START_OF_HEADING 0x0001 #define T_CP1251_CTRL_START_OF_TEXT 0x0002 #define T_CP1251_CTRL_END_OF_TEXT 0x0003 #define T_CP1251_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP1251_CTRL_ENQUIRY 0x0005 #define T_CP1251_CTRL_ACKNOWLEDGE 0x0006 #define T_CP1251_CTRL_BELL 0x0007 #define T_CP1251_CTRL_BACKSPACE 0x0008 #define T_CP1251_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP1251_CTRL_LINE_FEED 0x000A #define T_CP1251_CTRL_LINE_TABULATION 0x000B #define T_CP1251_CTRL_FORM_FEED 0x000C #define T_CP1251_CTRL_CARRIAGE_RETURN 0x000D #define T_CP1251_CTRL_SHIFT_OUT 0x000E #define T_CP1251_CTRL_SHIFT_IN 0x000F #define T_CP1251_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP1251_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP1251_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP1251_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP1251_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP1251_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP1251_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP1251_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP1251_CTRL_CANCEL 0x0018 #define T_CP1251_CTRL_END_OF_MEDIUM 0x0019 #define T_CP1251_CTRL_SUBSTITUTE 0x001A #define T_CP1251_CTRL_ESCAPE 0x001B #define T_CP1251_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP1251_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP1251_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP1251_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP1251_SPACE 0x0020 #define T_CP1251_EXCLAMATION_MARK 0x0021 #define T_CP1251_QUOTATION_MARK 0x0022 #define T_CP1251_NUMBER_SIGN 0x0023 #define T_CP1251_DOLLAR_SIGN 0x0024 #define T_CP1251_PERCENT_SIGN 0x0025 #define T_CP1251_AMPERSAND 0x0026 #define T_CP1251_APOSTROPHE 0x0027 #define T_CP1251_LEFT_PARENTHESIS 0x0028 #define T_CP1251_RIGHT_PARENTHESIS 0x0029 #define T_CP1251_ASTERISK 0x002A #define T_CP1251_PLUS_SIGN 0x002B #define T_CP1251_COMMA 0x002C #define T_CP1251_HYPHEN_MINUS 0x002D #define T_CP1251_FULL_STOP 0x002E #define T_CP1251_SOLIDUS 0x002F #define T_CP1251_DIGIT_ZERO 0x0030 #define T_CP1251_DIGIT_ONE 0x0031 #define T_CP1251_DIGIT_TWO 0x0032 #define T_CP1251_DIGIT_THREE 0x0033 #define T_CP1251_DIGIT_FOUR 0x0034 #define T_CP1251_DIGIT_FIVE 0x0035 #define T_CP1251_DIGIT_SIX 0x0036 #define T_CP1251_DIGIT_SEVEN 0x0037 #define T_CP1251_DIGIT_EIGHT 0x0038 #define T_CP1251_DIGIT_NINE 0x0039 #define T_CP1251_COLON 0x003A #define T_CP1251_SEMICOLON 0x003B #define T_CP1251_LESS_THAN_SIGN 0x003C #define T_CP1251_EQUALS_SIGN 0x003D #define T_CP1251_GREATER_THAN_SIGN 0x003E #define T_CP1251_QUESTION_MARK 0x003F #define T_CP1251_COMMERCIAL_AT 0x0040 #define T_CP1251_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP1251_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP1251_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP1251_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP1251_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP1251_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP1251_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP1251_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP1251_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP1251_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP1251_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP1251_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP1251_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP1251_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP1251_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP1251_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP1251_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP1251_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP1251_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP1251_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP1251_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP1251_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP1251_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP1251_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP1251_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP1251_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP1251_LEFT_SQUARE_BRACKET 0x005B #define T_CP1251_REVERSE_SOLIDUS 0x005C #define T_CP1251_RIGHT_SQUARE_BRACKET 0x005D #define T_CP1251_CIRCUMFLEX_ACCENT 0x005E #define T_CP1251_LOW_LINE 0x005F #define T_CP1251_GRAVE_ACCENT 0x0060 #define T_CP1251_LATIN_SMALL_LETTER_A 0x0061 #define T_CP1251_LATIN_SMALL_LETTER_B 0x0062 #define T_CP1251_LATIN_SMALL_LETTER_C 0x0063 #define T_CP1251_LATIN_SMALL_LETTER_D 0x0064 #define T_CP1251_LATIN_SMALL_LETTER_E 0x0065 #define T_CP1251_LATIN_SMALL_LETTER_F 0x0066 #define T_CP1251_LATIN_SMALL_LETTER_G 0x0067 #define T_CP1251_LATIN_SMALL_LETTER_H 0x0068 #define T_CP1251_LATIN_SMALL_LETTER_I 0x0069 #define T_CP1251_LATIN_SMALL_LETTER_J 0x006A #define T_CP1251_LATIN_SMALL_LETTER_K 0x006B #define T_CP1251_LATIN_SMALL_LETTER_L 0x006C #define T_CP1251_LATIN_SMALL_LETTER_M 0x006D #define T_CP1251_LATIN_SMALL_LETTER_N 0x006E #define T_CP1251_LATIN_SMALL_LETTER_O 0x006F #define T_CP1251_LATIN_SMALL_LETTER_P 0x0070 #define T_CP1251_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP1251_LATIN_SMALL_LETTER_R 0x0072 #define T_CP1251_LATIN_SMALL_LETTER_S 0x0073 #define T_CP1251_LATIN_SMALL_LETTER_T 0x0074 #define T_CP1251_LATIN_SMALL_LETTER_U 0x0075 #define T_CP1251_LATIN_SMALL_LETTER_V 0x0076 #define T_CP1251_LATIN_SMALL_LETTER_W 0x0077 #define T_CP1251_LATIN_SMALL_LETTER_X 0x0078 #define T_CP1251_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP1251_LATIN_SMALL_LETTER_Z 0x007A #define T_CP1251_LEFT_CURLY_BRACKET 0x007B #define T_CP1251_VERTICAL_LINE 0x007C #define T_CP1251_RIGHT_CURLY_BRACKET 0x007D #define T_CP1251_TILDE 0x007E #define T_CP1251_CTRL_DELETE 0x007F #define T_CP1251_CYRILLIC_CAPITAL_LETTER_DJE 0x0080 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_GJE 0x0081 #define T_CP1251_SINGLE_LOW_9_QUOTATION_MARK 0x0082 #define T_CP1251_CYRILLIC_SMALL_LETTER_GJE 0x0083 #define T_CP1251_DOUBLE_LOW_9_QUOTATION_MARK 0x0084 #define T_CP1251_HORIZONTAL_ELLIPSIS 0x0085 #define T_CP1251_DAGGER 0x0086 #define T_CP1251_DOUBLE_DAGGER 0x0087 #define T_CP1251_EURO_SIGN 0x0088 #define T_CP1251_PER_MILLE_SIGN 0x0089 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_LJE 0x008A #define T_CP1251_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x008B #define T_CP1251_CYRILLIC_CAPITAL_LETTER_NJE 0x008C #define T_CP1251_CYRILLIC_CAPITAL_LETTER_KJE 0x008D #define T_CP1251_CYRILLIC_CAPITAL_LETTER_TSHE 0x008E #define T_CP1251_CYRILLIC_CAPITAL_LETTER_DZHE 0x008F #define T_CP1251_CYRILLIC_SMALL_LETTER_DJE 0x0090 #define T_CP1251_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_CP1251_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_CP1251_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_CP1251_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_CP1251_BULLET 0x0095 #define T_CP1251_EN_DASH 0x0096 #define T_CP1251_EM_DASH 0x0097 #define T_CP1251_UNDEFINED_0098 0x0098 #define T_CP1251_TRADE_MARK_SIGN 0x0099 #define T_CP1251_CYRILLIC_SMALL_LETTER_LJE 0x009A #define T_CP1251_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x009B #define T_CP1251_CYRILLIC_SMALL_LETTER_NJE 0x009C #define T_CP1251_CYRILLIC_SMALL_LETTER_KJE 0x009D #define T_CP1251_CYRILLIC_SMALL_LETTER_TSHE 0x009E #define T_CP1251_CYRILLIC_SMALL_LETTER_DZHE 0x009F #define T_CP1251_NO_BREAK_SPACE 0x00A0 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_SHORT_U 0x00A1 #define T_CP1251_CYRILLIC_SMALL_LETTER_SHORT_U 0x00A2 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_JE 0x00A3 #define T_CP1251_CURRENCY_SIGN 0x00A4 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN 0x00A5 #define T_CP1251_BROKEN_BAR 0x00A6 #define T_CP1251_SECTION_SIGN 0x00A7 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_IO 0x00A8 #define T_CP1251_COPYRIGHT_SIGN 0x00A9 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0x00AA #define T_CP1251_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_CP1251_NOT_SIGN 0x00AC #define T_CP1251_SOFT_HYPHEN 0x00AD #define T_CP1251_REGISTERED_SIGN 0x00AE #define T_CP1251_CYRILLIC_CAPITAL_LETTER_YI 0x00AF #define T_CP1251_DEGREE_SIGN 0x00B0 #define T_CP1251_PLUS_MINUS_SIGN 0x00B1 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00B2 #define T_CP1251_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00B3 #define T_CP1251_CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN 0x00B4 #define T_CP1251_MICRO_SIGN 0x00B5 #define T_CP1251_PILCROW_SIGN 0x00B6 #define T_CP1251_MIDDLE_DOT 0x00B7 #define T_CP1251_CYRILLIC_SMALL_LETTER_IO 0x00B8 #define T_CP1251_NUMERO_SIGN 0x00B9 #define T_CP1251_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0x00BA #define T_CP1251_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_CP1251_CYRILLIC_SMALL_LETTER_JE 0x00BC #define T_CP1251_CYRILLIC_CAPITAL_LETTER_DZE 0x00BD #define T_CP1251_CYRILLIC_SMALL_LETTER_DZE 0x00BE #define T_CP1251_CYRILLIC_SMALL_LETTER_YI 0x00BF #define T_CP1251_CYRILLIC_CAPITAL_LETTER_A 0x00C0 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_BE 0x00C1 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_VE 0x00C2 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_GHE 0x00C3 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_DE 0x00C4 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_IE 0x00C5 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_ZHE 0x00C6 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_ZE 0x00C7 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_I 0x00C8 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x00C9 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_KA 0x00CA #define T_CP1251_CYRILLIC_CAPITAL_LETTER_EL 0x00CB #define T_CP1251_CYRILLIC_CAPITAL_LETTER_EM 0x00CC #define T_CP1251_CYRILLIC_CAPITAL_LETTER_EN 0x00CD #define T_CP1251_CYRILLIC_CAPITAL_LETTER_O 0x00CE #define T_CP1251_CYRILLIC_CAPITAL_LETTER_PE 0x00CF #define T_CP1251_CYRILLIC_CAPITAL_LETTER_ER 0x00D0 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_ES 0x00D1 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_TE 0x00D2 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_U 0x00D3 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_EF 0x00D4 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_HA 0x00D5 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_TSE 0x00D6 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_CHE 0x00D7 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_SHA 0x00D8 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_SHCHA 0x00D9 #define T_CP1251_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x00DA #define T_CP1251_CYRILLIC_CAPITAL_LETTER_YERU 0x00DB #define T_CP1251_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x00DC #define T_CP1251_CYRILLIC_CAPITAL_LETTER_E 0x00DD #define T_CP1251_CYRILLIC_CAPITAL_LETTER_YU 0x00DE #define T_CP1251_CYRILLIC_CAPITAL_LETTER_YA 0x00DF #define T_CP1251_CYRILLIC_SMALL_LETTER_A 0x00E0 #define T_CP1251_CYRILLIC_SMALL_LETTER_BE 0x00E1 #define T_CP1251_CYRILLIC_SMALL_LETTER_VE 0x00E2 #define T_CP1251_CYRILLIC_SMALL_LETTER_GHE 0x00E3 #define T_CP1251_CYRILLIC_SMALL_LETTER_DE 0x00E4 #define T_CP1251_CYRILLIC_SMALL_LETTER_IE 0x00E5 #define T_CP1251_CYRILLIC_SMALL_LETTER_ZHE 0x00E6 #define T_CP1251_CYRILLIC_SMALL_LETTER_ZE 0x00E7 #define T_CP1251_CYRILLIC_SMALL_LETTER_I 0x00E8 #define T_CP1251_CYRILLIC_SMALL_LETTER_SHORT_I 0x00E9 #define T_CP1251_CYRILLIC_SMALL_LETTER_KA 0x00EA #define T_CP1251_CYRILLIC_SMALL_LETTER_EL 0x00EB #define T_CP1251_CYRILLIC_SMALL_LETTER_EM 0x00EC #define T_CP1251_CYRILLIC_SMALL_LETTER_EN 0x00ED #define T_CP1251_CYRILLIC_SMALL_LETTER_O 0x00EE #define T_CP1251_CYRILLIC_SMALL_LETTER_PE 0x00EF #define T_CP1251_CYRILLIC_SMALL_LETTER_ER 0x00F0 #define T_CP1251_CYRILLIC_SMALL_LETTER_ES 0x00F1 #define T_CP1251_CYRILLIC_SMALL_LETTER_TE 0x00F2 #define T_CP1251_CYRILLIC_SMALL_LETTER_U 0x00F3 #define T_CP1251_CYRILLIC_SMALL_LETTER_EF 0x00F4 #define T_CP1251_CYRILLIC_SMALL_LETTER_HA 0x00F5 #define T_CP1251_CYRILLIC_SMALL_LETTER_TSE 0x00F6 #define T_CP1251_CYRILLIC_SMALL_LETTER_CHE 0x00F7 #define T_CP1251_CYRILLIC_SMALL_LETTER_SHA 0x00F8 #define T_CP1251_CYRILLIC_SMALL_LETTER_SHCHA 0x00F9 #define T_CP1251_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x00FA #define T_CP1251_CYRILLIC_SMALL_LETTER_YERU 0x00FB #define T_CP1251_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0x00FC #define T_CP1251_CYRILLIC_SMALL_LETTER_E 0x00FD #define T_CP1251_CYRILLIC_SMALL_LETTER_YU 0x00FE #define T_CP1251_CYRILLIC_SMALL_LETTER_YA 0x00FF /* list of all characters */ #define T_LIST_CP1251(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_EURO_SIGN) \ EL(_PER_MILLE_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_CAPITAL_LETTER_KJE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_TRADE_MARK_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_TSHE) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) \ EL(_NO_BREAK_SPACE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_JE) \ EL(_CURRENCY_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_COPYRIGHT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_NUMERO_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_CYRILLIC_SMALL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZE) \ EL(_CYRILLIC_SMALL_LETTER_DZE) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_YA) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP1251(EL) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_EURO_SIGN) \ EL(_PER_MILLE_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_CAPITAL_LETTER_KJE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_TRADE_MARK_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_TSHE) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_NUMERO_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZE) \ EL(_CYRILLIC_SMALL_LETTER_DZE) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_YA) #endif /* TUTF_CP1251_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp1252.h��������������������������������������������������������������������0000664�0000000�0000000�00000121006�13775351206�0016144�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP1252_H #define TUTF_CP1252_H #define T_CP1252_CTRL_NULL 0x0000 #define T_CP1252_CTRL_START_OF_HEADING 0x0001 #define T_CP1252_CTRL_START_OF_TEXT 0x0002 #define T_CP1252_CTRL_END_OF_TEXT 0x0003 #define T_CP1252_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP1252_CTRL_ENQUIRY 0x0005 #define T_CP1252_CTRL_ACKNOWLEDGE 0x0006 #define T_CP1252_CTRL_BELL 0x0007 #define T_CP1252_CTRL_BACKSPACE 0x0008 #define T_CP1252_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP1252_CTRL_LINE_FEED 0x000A #define T_CP1252_CTRL_LINE_TABULATION 0x000B #define T_CP1252_CTRL_FORM_FEED 0x000C #define T_CP1252_CTRL_CARRIAGE_RETURN 0x000D #define T_CP1252_CTRL_SHIFT_OUT 0x000E #define T_CP1252_CTRL_SHIFT_IN 0x000F #define T_CP1252_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP1252_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP1252_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP1252_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP1252_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP1252_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP1252_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP1252_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP1252_CTRL_CANCEL 0x0018 #define T_CP1252_CTRL_END_OF_MEDIUM 0x0019 #define T_CP1252_CTRL_SUBSTITUTE 0x001A #define T_CP1252_CTRL_ESCAPE 0x001B #define T_CP1252_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP1252_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP1252_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP1252_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP1252_SPACE 0x0020 #define T_CP1252_EXCLAMATION_MARK 0x0021 #define T_CP1252_QUOTATION_MARK 0x0022 #define T_CP1252_NUMBER_SIGN 0x0023 #define T_CP1252_DOLLAR_SIGN 0x0024 #define T_CP1252_PERCENT_SIGN 0x0025 #define T_CP1252_AMPERSAND 0x0026 #define T_CP1252_APOSTROPHE 0x0027 #define T_CP1252_LEFT_PARENTHESIS 0x0028 #define T_CP1252_RIGHT_PARENTHESIS 0x0029 #define T_CP1252_ASTERISK 0x002A #define T_CP1252_PLUS_SIGN 0x002B #define T_CP1252_COMMA 0x002C #define T_CP1252_HYPHEN_MINUS 0x002D #define T_CP1252_FULL_STOP 0x002E #define T_CP1252_SOLIDUS 0x002F #define T_CP1252_DIGIT_ZERO 0x0030 #define T_CP1252_DIGIT_ONE 0x0031 #define T_CP1252_DIGIT_TWO 0x0032 #define T_CP1252_DIGIT_THREE 0x0033 #define T_CP1252_DIGIT_FOUR 0x0034 #define T_CP1252_DIGIT_FIVE 0x0035 #define T_CP1252_DIGIT_SIX 0x0036 #define T_CP1252_DIGIT_SEVEN 0x0037 #define T_CP1252_DIGIT_EIGHT 0x0038 #define T_CP1252_DIGIT_NINE 0x0039 #define T_CP1252_COLON 0x003A #define T_CP1252_SEMICOLON 0x003B #define T_CP1252_LESS_THAN_SIGN 0x003C #define T_CP1252_EQUALS_SIGN 0x003D #define T_CP1252_GREATER_THAN_SIGN 0x003E #define T_CP1252_QUESTION_MARK 0x003F #define T_CP1252_COMMERCIAL_AT 0x0040 #define T_CP1252_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP1252_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP1252_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP1252_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP1252_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP1252_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP1252_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP1252_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP1252_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP1252_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP1252_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP1252_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP1252_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP1252_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP1252_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP1252_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP1252_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP1252_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP1252_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP1252_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP1252_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP1252_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP1252_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP1252_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP1252_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP1252_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP1252_LEFT_SQUARE_BRACKET 0x005B #define T_CP1252_REVERSE_SOLIDUS 0x005C #define T_CP1252_RIGHT_SQUARE_BRACKET 0x005D #define T_CP1252_CIRCUMFLEX_ACCENT 0x005E #define T_CP1252_LOW_LINE 0x005F #define T_CP1252_GRAVE_ACCENT 0x0060 #define T_CP1252_LATIN_SMALL_LETTER_A 0x0061 #define T_CP1252_LATIN_SMALL_LETTER_B 0x0062 #define T_CP1252_LATIN_SMALL_LETTER_C 0x0063 #define T_CP1252_LATIN_SMALL_LETTER_D 0x0064 #define T_CP1252_LATIN_SMALL_LETTER_E 0x0065 #define T_CP1252_LATIN_SMALL_LETTER_F 0x0066 #define T_CP1252_LATIN_SMALL_LETTER_G 0x0067 #define T_CP1252_LATIN_SMALL_LETTER_H 0x0068 #define T_CP1252_LATIN_SMALL_LETTER_I 0x0069 #define T_CP1252_LATIN_SMALL_LETTER_J 0x006A #define T_CP1252_LATIN_SMALL_LETTER_K 0x006B #define T_CP1252_LATIN_SMALL_LETTER_L 0x006C #define T_CP1252_LATIN_SMALL_LETTER_M 0x006D #define T_CP1252_LATIN_SMALL_LETTER_N 0x006E #define T_CP1252_LATIN_SMALL_LETTER_O 0x006F #define T_CP1252_LATIN_SMALL_LETTER_P 0x0070 #define T_CP1252_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP1252_LATIN_SMALL_LETTER_R 0x0072 #define T_CP1252_LATIN_SMALL_LETTER_S 0x0073 #define T_CP1252_LATIN_SMALL_LETTER_T 0x0074 #define T_CP1252_LATIN_SMALL_LETTER_U 0x0075 #define T_CP1252_LATIN_SMALL_LETTER_V 0x0076 #define T_CP1252_LATIN_SMALL_LETTER_W 0x0077 #define T_CP1252_LATIN_SMALL_LETTER_X 0x0078 #define T_CP1252_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP1252_LATIN_SMALL_LETTER_Z 0x007A #define T_CP1252_LEFT_CURLY_BRACKET 0x007B #define T_CP1252_VERTICAL_LINE 0x007C #define T_CP1252_RIGHT_CURLY_BRACKET 0x007D #define T_CP1252_TILDE 0x007E #define T_CP1252_CTRL_DELETE 0x007F #define T_CP1252_EURO_SIGN 0x0080 #define T_CP1252_UNDEFINED_0081 0x0081 #define T_CP1252_SINGLE_LOW_9_QUOTATION_MARK 0x0082 #define T_CP1252_LATIN_SMALL_LETTER_F_WITH_HOOK 0x0083 #define T_CP1252_DOUBLE_LOW_9_QUOTATION_MARK 0x0084 #define T_CP1252_HORIZONTAL_ELLIPSIS 0x0085 #define T_CP1252_DAGGER 0x0086 #define T_CP1252_DOUBLE_DAGGER 0x0087 #define T_CP1252_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x0088 #define T_CP1252_PER_MILLE_SIGN 0x0089 #define T_CP1252_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x008A #define T_CP1252_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x008B #define T_CP1252_LATIN_CAPITAL_LIGATURE_OE 0x008C #define T_CP1252_UNDEFINED_008D 0x008D #define T_CP1252_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x008E #define T_CP1252_UNDEFINED_008F 0x008F #define T_CP1252_UNDEFINED_0090 0x0090 #define T_CP1252_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_CP1252_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_CP1252_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_CP1252_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_CP1252_BULLET 0x0095 #define T_CP1252_EN_DASH 0x0096 #define T_CP1252_EM_DASH 0x0097 #define T_CP1252_SMALL_TILDE 0x0098 #define T_CP1252_TRADE_MARK_SIGN 0x0099 #define T_CP1252_LATIN_SMALL_LETTER_S_WITH_CARON 0x009A #define T_CP1252_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x009B #define T_CP1252_LATIN_SMALL_LIGATURE_OE 0x009C #define T_CP1252_UNDEFINED_009D 0x009D #define T_CP1252_LATIN_SMALL_LETTER_Z_WITH_CARON 0x009E #define T_CP1252_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x009F #define T_CP1252_NO_BREAK_SPACE 0x00A0 #define T_CP1252_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_CP1252_CENT_SIGN 0x00A2 #define T_CP1252_POUND_SIGN 0x00A3 #define T_CP1252_CURRENCY_SIGN 0x00A4 #define T_CP1252_YEN_SIGN 0x00A5 #define T_CP1252_BROKEN_BAR 0x00A6 #define T_CP1252_SECTION_SIGN 0x00A7 #define T_CP1252_DIAERESIS 0x00A8 #define T_CP1252_COPYRIGHT_SIGN 0x00A9 #define T_CP1252_FEMININE_ORDINAL_INDICATOR 0x00AA #define T_CP1252_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_CP1252_NOT_SIGN 0x00AC #define T_CP1252_SOFT_HYPHEN 0x00AD #define T_CP1252_REGISTERED_SIGN 0x00AE #define T_CP1252_MACRON 0x00AF #define T_CP1252_DEGREE_SIGN 0x00B0 #define T_CP1252_PLUS_MINUS_SIGN 0x00B1 #define T_CP1252_SUPERSCRIPT_TWO 0x00B2 #define T_CP1252_SUPERSCRIPT_THREE 0x00B3 #define T_CP1252_ACUTE_ACCENT 0x00B4 #define T_CP1252_MICRO_SIGN 0x00B5 #define T_CP1252_PILCROW_SIGN 0x00B6 #define T_CP1252_MIDDLE_DOT 0x00B7 #define T_CP1252_CEDILLA 0x00B8 #define T_CP1252_SUPERSCRIPT_ONE 0x00B9 #define T_CP1252_MASCULINE_ORDINAL_INDICATOR 0x00BA #define T_CP1252_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_CP1252_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_CP1252_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_CP1252_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_CP1252_INVERTED_QUESTION_MARK 0x00BF #define T_CP1252_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_CP1252_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_CP1252_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_CP1252_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 #define T_CP1252_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_CP1252_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_CP1252_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_CP1252_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_CP1252_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_CP1252_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_CP1252_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_CP1252_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_CP1252_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC #define T_CP1252_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_CP1252_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_CP1252_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_CP1252_LATIN_CAPITAL_LETTER_ETH 0x00D0 #define T_CP1252_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 #define T_CP1252_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 #define T_CP1252_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_CP1252_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_CP1252_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_CP1252_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_CP1252_MULTIPLICATION_SIGN 0x00D7 #define T_CP1252_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_CP1252_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_CP1252_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_CP1252_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_CP1252_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_CP1252_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD #define T_CP1252_LATIN_CAPITAL_LETTER_THORN 0x00DE #define T_CP1252_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_CP1252_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_CP1252_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_CP1252_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_CP1252_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 #define T_CP1252_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_CP1252_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_CP1252_LATIN_SMALL_LETTER_AE 0x00E6 #define T_CP1252_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_CP1252_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_CP1252_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_CP1252_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_CP1252_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_CP1252_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_CP1252_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_CP1252_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_CP1252_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_CP1252_LATIN_SMALL_LETTER_ETH 0x00F0 #define T_CP1252_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 #define T_CP1252_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 #define T_CP1252_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_CP1252_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_CP1252_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_CP1252_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_CP1252_DIVISION_SIGN 0x00F7 #define T_CP1252_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_CP1252_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_CP1252_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_CP1252_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_CP1252_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_CP1252_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD #define T_CP1252_LATIN_SMALL_LETTER_THORN 0x00FE #define T_CP1252_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF /* list of all characters */ #define T_LIST_CP1252(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_UNDEFINED_008D) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_SMALL_TILDE) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_UNDEFINED_009D) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_NO_BREAK_SPACE) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_YEN_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_MACRON) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_ONE) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_INVERTED_QUESTION_MARK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP1252(EL) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_UNDEFINED_008D) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_SMALL_TILDE) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_UNDEFINED_009D) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) #endif /* TUTF_CP1252_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp1253.h��������������������������������������������������������������������0000664�0000000�0000000�00000137014�13775351206�0016153�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP1253_H #define TUTF_CP1253_H #define T_CP1253_CTRL_NULL 0x0000 #define T_CP1253_CTRL_START_OF_HEADING 0x0001 #define T_CP1253_CTRL_START_OF_TEXT 0x0002 #define T_CP1253_CTRL_END_OF_TEXT 0x0003 #define T_CP1253_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP1253_CTRL_ENQUIRY 0x0005 #define T_CP1253_CTRL_ACKNOWLEDGE 0x0006 #define T_CP1253_CTRL_BELL 0x0007 #define T_CP1253_CTRL_BACKSPACE 0x0008 #define T_CP1253_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP1253_CTRL_LINE_FEED 0x000A #define T_CP1253_CTRL_LINE_TABULATION 0x000B #define T_CP1253_CTRL_FORM_FEED 0x000C #define T_CP1253_CTRL_CARRIAGE_RETURN 0x000D #define T_CP1253_CTRL_SHIFT_OUT 0x000E #define T_CP1253_CTRL_SHIFT_IN 0x000F #define T_CP1253_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP1253_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP1253_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP1253_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP1253_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP1253_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP1253_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP1253_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP1253_CTRL_CANCEL 0x0018 #define T_CP1253_CTRL_END_OF_MEDIUM 0x0019 #define T_CP1253_CTRL_SUBSTITUTE 0x001A #define T_CP1253_CTRL_ESCAPE 0x001B #define T_CP1253_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP1253_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP1253_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP1253_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP1253_SPACE 0x0020 #define T_CP1253_EXCLAMATION_MARK 0x0021 #define T_CP1253_QUOTATION_MARK 0x0022 #define T_CP1253_NUMBER_SIGN 0x0023 #define T_CP1253_DOLLAR_SIGN 0x0024 #define T_CP1253_PERCENT_SIGN 0x0025 #define T_CP1253_AMPERSAND 0x0026 #define T_CP1253_APOSTROPHE 0x0027 #define T_CP1253_LEFT_PARENTHESIS 0x0028 #define T_CP1253_RIGHT_PARENTHESIS 0x0029 #define T_CP1253_ASTERISK 0x002A #define T_CP1253_PLUS_SIGN 0x002B #define T_CP1253_COMMA 0x002C #define T_CP1253_HYPHEN_MINUS 0x002D #define T_CP1253_FULL_STOP 0x002E #define T_CP1253_SOLIDUS 0x002F #define T_CP1253_DIGIT_ZERO 0x0030 #define T_CP1253_DIGIT_ONE 0x0031 #define T_CP1253_DIGIT_TWO 0x0032 #define T_CP1253_DIGIT_THREE 0x0033 #define T_CP1253_DIGIT_FOUR 0x0034 #define T_CP1253_DIGIT_FIVE 0x0035 #define T_CP1253_DIGIT_SIX 0x0036 #define T_CP1253_DIGIT_SEVEN 0x0037 #define T_CP1253_DIGIT_EIGHT 0x0038 #define T_CP1253_DIGIT_NINE 0x0039 #define T_CP1253_COLON 0x003A #define T_CP1253_SEMICOLON 0x003B #define T_CP1253_LESS_THAN_SIGN 0x003C #define T_CP1253_EQUALS_SIGN 0x003D #define T_CP1253_GREATER_THAN_SIGN 0x003E #define T_CP1253_QUESTION_MARK 0x003F #define T_CP1253_COMMERCIAL_AT 0x0040 #define T_CP1253_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP1253_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP1253_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP1253_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP1253_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP1253_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP1253_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP1253_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP1253_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP1253_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP1253_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP1253_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP1253_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP1253_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP1253_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP1253_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP1253_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP1253_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP1253_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP1253_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP1253_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP1253_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP1253_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP1253_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP1253_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP1253_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP1253_LEFT_SQUARE_BRACKET 0x005B #define T_CP1253_REVERSE_SOLIDUS 0x005C #define T_CP1253_RIGHT_SQUARE_BRACKET 0x005D #define T_CP1253_CIRCUMFLEX_ACCENT 0x005E #define T_CP1253_LOW_LINE 0x005F #define T_CP1253_GRAVE_ACCENT 0x0060 #define T_CP1253_LATIN_SMALL_LETTER_A 0x0061 #define T_CP1253_LATIN_SMALL_LETTER_B 0x0062 #define T_CP1253_LATIN_SMALL_LETTER_C 0x0063 #define T_CP1253_LATIN_SMALL_LETTER_D 0x0064 #define T_CP1253_LATIN_SMALL_LETTER_E 0x0065 #define T_CP1253_LATIN_SMALL_LETTER_F 0x0066 #define T_CP1253_LATIN_SMALL_LETTER_G 0x0067 #define T_CP1253_LATIN_SMALL_LETTER_H 0x0068 #define T_CP1253_LATIN_SMALL_LETTER_I 0x0069 #define T_CP1253_LATIN_SMALL_LETTER_J 0x006A #define T_CP1253_LATIN_SMALL_LETTER_K 0x006B #define T_CP1253_LATIN_SMALL_LETTER_L 0x006C #define T_CP1253_LATIN_SMALL_LETTER_M 0x006D #define T_CP1253_LATIN_SMALL_LETTER_N 0x006E #define T_CP1253_LATIN_SMALL_LETTER_O 0x006F #define T_CP1253_LATIN_SMALL_LETTER_P 0x0070 #define T_CP1253_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP1253_LATIN_SMALL_LETTER_R 0x0072 #define T_CP1253_LATIN_SMALL_LETTER_S 0x0073 #define T_CP1253_LATIN_SMALL_LETTER_T 0x0074 #define T_CP1253_LATIN_SMALL_LETTER_U 0x0075 #define T_CP1253_LATIN_SMALL_LETTER_V 0x0076 #define T_CP1253_LATIN_SMALL_LETTER_W 0x0077 #define T_CP1253_LATIN_SMALL_LETTER_X 0x0078 #define T_CP1253_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP1253_LATIN_SMALL_LETTER_Z 0x007A #define T_CP1253_LEFT_CURLY_BRACKET 0x007B #define T_CP1253_VERTICAL_LINE 0x007C #define T_CP1253_RIGHT_CURLY_BRACKET 0x007D #define T_CP1253_TILDE 0x007E #define T_CP1253_CTRL_DELETE 0x007F #define T_CP1253_EURO_SIGN 0x0080 #define T_CP1253_UNDEFINED_0081 0x0081 #define T_CP1253_SINGLE_LOW_9_QUOTATION_MARK 0x0082 #define T_CP1253_LATIN_SMALL_LETTER_F_WITH_HOOK 0x0083 #define T_CP1253_DOUBLE_LOW_9_QUOTATION_MARK 0x0084 #define T_CP1253_HORIZONTAL_ELLIPSIS 0x0085 #define T_CP1253_DAGGER 0x0086 #define T_CP1253_DOUBLE_DAGGER 0x0087 #define T_CP1253_UNDEFINED_0088 0x0088 #define T_CP1253_PER_MILLE_SIGN 0x0089 #define T_CP1253_UNDEFINED_008A 0x008A #define T_CP1253_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x008B #define T_CP1253_UNDEFINED_008C 0x008C #define T_CP1253_UNDEFINED_008D 0x008D #define T_CP1253_UNDEFINED_008E 0x008E #define T_CP1253_UNDEFINED_008F 0x008F #define T_CP1253_UNDEFINED_0090 0x0090 #define T_CP1253_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_CP1253_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_CP1253_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_CP1253_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_CP1253_BULLET 0x0095 #define T_CP1253_EN_DASH 0x0096 #define T_CP1253_EM_DASH 0x0097 #define T_CP1253_UNDEFINED_0098 0x0098 #define T_CP1253_TRADE_MARK_SIGN 0x0099 #define T_CP1253_UNDEFINED_009A 0x009A #define T_CP1253_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x009B #define T_CP1253_UNDEFINED_009C 0x009C #define T_CP1253_UNDEFINED_009D 0x009D #define T_CP1253_UNDEFINED_009E 0x009E #define T_CP1253_UNDEFINED_009F 0x009F #define T_CP1253_NO_BREAK_SPACE 0x00A0 #define T_CP1253_GREEK_DIALYTIKA_TONOS 0x00A1 #define T_CP1253_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0x00A2 #define T_CP1253_POUND_SIGN 0x00A3 #define T_CP1253_CURRENCY_SIGN 0x00A4 #define T_CP1253_YEN_SIGN 0x00A5 #define T_CP1253_BROKEN_BAR 0x00A6 #define T_CP1253_SECTION_SIGN 0x00A7 #define T_CP1253_DIAERESIS 0x00A8 #define T_CP1253_COPYRIGHT_SIGN 0x00A9 #define T_CP1253_UNDEFINED_00AA 0x00AA #define T_CP1253_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_CP1253_NOT_SIGN 0x00AC #define T_CP1253_SOFT_HYPHEN 0x00AD #define T_CP1253_REGISTERED_SIGN 0x00AE #define T_CP1253_HORIZONTAL_BAR 0x00AF #define T_CP1253_DEGREE_SIGN 0x00B0 #define T_CP1253_PLUS_MINUS_SIGN 0x00B1 #define T_CP1253_SUPERSCRIPT_TWO 0x00B2 #define T_CP1253_SUPERSCRIPT_THREE 0x00B3 #define T_CP1253_GREEK_TONOS 0x00B4 #define T_CP1253_MICRO_SIGN 0x00B5 #define T_CP1253_PILCROW_SIGN 0x00B6 #define T_CP1253_MIDDLE_DOT 0x00B7 #define T_CP1253_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0x00B8 #define T_CP1253_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0x00B9 #define T_CP1253_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0x00BA #define T_CP1253_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_CP1253_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0x00BC #define T_CP1253_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_CP1253_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0x00BE #define T_CP1253_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0x00BF #define T_CP1253_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS 0x00C0 #define T_CP1253_GREEK_CAPITAL_LETTER_ALPHA 0x00C1 #define T_CP1253_GREEK_CAPITAL_LETTER_BETA 0x00C2 #define T_CP1253_GREEK_CAPITAL_LETTER_GAMMA 0x00C3 #define T_CP1253_GREEK_CAPITAL_LETTER_DELTA 0x00C4 #define T_CP1253_GREEK_CAPITAL_LETTER_EPSILON 0x00C5 #define T_CP1253_GREEK_CAPITAL_LETTER_ZETA 0x00C6 #define T_CP1253_GREEK_CAPITAL_LETTER_ETA 0x00C7 #define T_CP1253_GREEK_CAPITAL_LETTER_THETA 0x00C8 #define T_CP1253_GREEK_CAPITAL_LETTER_IOTA 0x00C9 #define T_CP1253_GREEK_CAPITAL_LETTER_KAPPA 0x00CA #define T_CP1253_GREEK_CAPITAL_LETTER_LAMDA 0x00CB #define T_CP1253_GREEK_CAPITAL_LETTER_MU 0x00CC #define T_CP1253_GREEK_CAPITAL_LETTER_NU 0x00CD #define T_CP1253_GREEK_CAPITAL_LETTER_XI 0x00CE #define T_CP1253_GREEK_CAPITAL_LETTER_OMICRON 0x00CF #define T_CP1253_GREEK_CAPITAL_LETTER_PI 0x00D0 #define T_CP1253_GREEK_CAPITAL_LETTER_RHO 0x00D1 #define T_CP1253_UNDEFINED_00D2 0x00D2 #define T_CP1253_GREEK_CAPITAL_LETTER_SIGMA 0x00D3 #define T_CP1253_GREEK_CAPITAL_LETTER_TAU 0x00D4 #define T_CP1253_GREEK_CAPITAL_LETTER_UPSILON 0x00D5 #define T_CP1253_GREEK_CAPITAL_LETTER_PHI 0x00D6 #define T_CP1253_GREEK_CAPITAL_LETTER_CHI 0x00D7 #define T_CP1253_GREEK_CAPITAL_LETTER_PSI 0x00D8 #define T_CP1253_GREEK_CAPITAL_LETTER_OMEGA 0x00D9 #define T_CP1253_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0x00DA #define T_CP1253_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0x00DB #define T_CP1253_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0x00DC #define T_CP1253_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0x00DD #define T_CP1253_GREEK_SMALL_LETTER_ETA_WITH_TONOS 0x00DE #define T_CP1253_GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0x00DF #define T_CP1253_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS 0x00E0 #define T_CP1253_GREEK_SMALL_LETTER_ALPHA 0x00E1 #define T_CP1253_GREEK_SMALL_LETTER_BETA 0x00E2 #define T_CP1253_GREEK_SMALL_LETTER_GAMMA 0x00E3 #define T_CP1253_GREEK_SMALL_LETTER_DELTA 0x00E4 #define T_CP1253_GREEK_SMALL_LETTER_EPSILON 0x00E5 #define T_CP1253_GREEK_SMALL_LETTER_ZETA 0x00E6 #define T_CP1253_GREEK_SMALL_LETTER_ETA 0x00E7 #define T_CP1253_GREEK_SMALL_LETTER_THETA 0x00E8 #define T_CP1253_GREEK_SMALL_LETTER_IOTA 0x00E9 #define T_CP1253_GREEK_SMALL_LETTER_KAPPA 0x00EA #define T_CP1253_GREEK_SMALL_LETTER_LAMDA 0x00EB #define T_CP1253_GREEK_SMALL_LETTER_MU 0x00EC #define T_CP1253_GREEK_SMALL_LETTER_NU 0x00ED #define T_CP1253_GREEK_SMALL_LETTER_XI 0x00EE #define T_CP1253_GREEK_SMALL_LETTER_OMICRON 0x00EF #define T_CP1253_GREEK_SMALL_LETTER_PI 0x00F0 #define T_CP1253_GREEK_SMALL_LETTER_RHO 0x00F1 #define T_CP1253_GREEK_SMALL_LETTER_FINAL_SIGMA 0x00F2 #define T_CP1253_GREEK_SMALL_LETTER_SIGMA 0x00F3 #define T_CP1253_GREEK_SMALL_LETTER_TAU 0x00F4 #define T_CP1253_GREEK_SMALL_LETTER_UPSILON 0x00F5 #define T_CP1253_GREEK_SMALL_LETTER_PHI 0x00F6 #define T_CP1253_GREEK_SMALL_LETTER_CHI 0x00F7 #define T_CP1253_GREEK_SMALL_LETTER_PSI 0x00F8 #define T_CP1253_GREEK_SMALL_LETTER_OMEGA 0x00F9 #define T_CP1253_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0x00FA #define T_CP1253_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0x00FB #define T_CP1253_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0x00FC #define T_CP1253_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0x00FD #define T_CP1253_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0x00FE #define T_CP1253_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_CP1253(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_UNDEFINED_0088) \ EL(_PER_MILLE_SIGN) \ EL(_UNDEFINED_008A) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_TRADE_MARK_SIGN) \ EL(_UNDEFINED_009A) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_NO_BREAK_SPACE) \ EL(_GREEK_DIALYTIKA_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_YEN_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_UNDEFINED_00AA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_HORIZONTAL_BAR) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_GREEK_TONOS) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_UNDEFINED_00D2) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP1253(EL) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_UNDEFINED_0088) \ EL(_PER_MILLE_SIGN) \ EL(_UNDEFINED_008A) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_TRADE_MARK_SIGN) \ EL(_UNDEFINED_009A) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_GREEK_DIALYTIKA_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_UNDEFINED_00AA) \ EL(_HORIZONTAL_BAR) \ EL(_GREEK_TONOS) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_UNDEFINED_00D2) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) \ EL(_UNDEFINED_00FF) #endif /* TUTF_CP1253_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp1254.h��������������������������������������������������������������������0000664�0000000�0000000�00000122141�13775351206�0016147�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP1254_H #define TUTF_CP1254_H #define T_CP1254_CTRL_NULL 0x0000 #define T_CP1254_CTRL_START_OF_HEADING 0x0001 #define T_CP1254_CTRL_START_OF_TEXT 0x0002 #define T_CP1254_CTRL_END_OF_TEXT 0x0003 #define T_CP1254_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP1254_CTRL_ENQUIRY 0x0005 #define T_CP1254_CTRL_ACKNOWLEDGE 0x0006 #define T_CP1254_CTRL_BELL 0x0007 #define T_CP1254_CTRL_BACKSPACE 0x0008 #define T_CP1254_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP1254_CTRL_LINE_FEED 0x000A #define T_CP1254_CTRL_LINE_TABULATION 0x000B #define T_CP1254_CTRL_FORM_FEED 0x000C #define T_CP1254_CTRL_CARRIAGE_RETURN 0x000D #define T_CP1254_CTRL_SHIFT_OUT 0x000E #define T_CP1254_CTRL_SHIFT_IN 0x000F #define T_CP1254_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP1254_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP1254_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP1254_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP1254_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP1254_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP1254_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP1254_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP1254_CTRL_CANCEL 0x0018 #define T_CP1254_CTRL_END_OF_MEDIUM 0x0019 #define T_CP1254_CTRL_SUBSTITUTE 0x001A #define T_CP1254_CTRL_ESCAPE 0x001B #define T_CP1254_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP1254_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP1254_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP1254_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP1254_SPACE 0x0020 #define T_CP1254_EXCLAMATION_MARK 0x0021 #define T_CP1254_QUOTATION_MARK 0x0022 #define T_CP1254_NUMBER_SIGN 0x0023 #define T_CP1254_DOLLAR_SIGN 0x0024 #define T_CP1254_PERCENT_SIGN 0x0025 #define T_CP1254_AMPERSAND 0x0026 #define T_CP1254_APOSTROPHE 0x0027 #define T_CP1254_LEFT_PARENTHESIS 0x0028 #define T_CP1254_RIGHT_PARENTHESIS 0x0029 #define T_CP1254_ASTERISK 0x002A #define T_CP1254_PLUS_SIGN 0x002B #define T_CP1254_COMMA 0x002C #define T_CP1254_HYPHEN_MINUS 0x002D #define T_CP1254_FULL_STOP 0x002E #define T_CP1254_SOLIDUS 0x002F #define T_CP1254_DIGIT_ZERO 0x0030 #define T_CP1254_DIGIT_ONE 0x0031 #define T_CP1254_DIGIT_TWO 0x0032 #define T_CP1254_DIGIT_THREE 0x0033 #define T_CP1254_DIGIT_FOUR 0x0034 #define T_CP1254_DIGIT_FIVE 0x0035 #define T_CP1254_DIGIT_SIX 0x0036 #define T_CP1254_DIGIT_SEVEN 0x0037 #define T_CP1254_DIGIT_EIGHT 0x0038 #define T_CP1254_DIGIT_NINE 0x0039 #define T_CP1254_COLON 0x003A #define T_CP1254_SEMICOLON 0x003B #define T_CP1254_LESS_THAN_SIGN 0x003C #define T_CP1254_EQUALS_SIGN 0x003D #define T_CP1254_GREATER_THAN_SIGN 0x003E #define T_CP1254_QUESTION_MARK 0x003F #define T_CP1254_COMMERCIAL_AT 0x0040 #define T_CP1254_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP1254_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP1254_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP1254_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP1254_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP1254_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP1254_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP1254_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP1254_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP1254_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP1254_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP1254_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP1254_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP1254_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP1254_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP1254_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP1254_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP1254_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP1254_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP1254_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP1254_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP1254_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP1254_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP1254_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP1254_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP1254_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP1254_LEFT_SQUARE_BRACKET 0x005B #define T_CP1254_REVERSE_SOLIDUS 0x005C #define T_CP1254_RIGHT_SQUARE_BRACKET 0x005D #define T_CP1254_CIRCUMFLEX_ACCENT 0x005E #define T_CP1254_LOW_LINE 0x005F #define T_CP1254_GRAVE_ACCENT 0x0060 #define T_CP1254_LATIN_SMALL_LETTER_A 0x0061 #define T_CP1254_LATIN_SMALL_LETTER_B 0x0062 #define T_CP1254_LATIN_SMALL_LETTER_C 0x0063 #define T_CP1254_LATIN_SMALL_LETTER_D 0x0064 #define T_CP1254_LATIN_SMALL_LETTER_E 0x0065 #define T_CP1254_LATIN_SMALL_LETTER_F 0x0066 #define T_CP1254_LATIN_SMALL_LETTER_G 0x0067 #define T_CP1254_LATIN_SMALL_LETTER_H 0x0068 #define T_CP1254_LATIN_SMALL_LETTER_I 0x0069 #define T_CP1254_LATIN_SMALL_LETTER_J 0x006A #define T_CP1254_LATIN_SMALL_LETTER_K 0x006B #define T_CP1254_LATIN_SMALL_LETTER_L 0x006C #define T_CP1254_LATIN_SMALL_LETTER_M 0x006D #define T_CP1254_LATIN_SMALL_LETTER_N 0x006E #define T_CP1254_LATIN_SMALL_LETTER_O 0x006F #define T_CP1254_LATIN_SMALL_LETTER_P 0x0070 #define T_CP1254_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP1254_LATIN_SMALL_LETTER_R 0x0072 #define T_CP1254_LATIN_SMALL_LETTER_S 0x0073 #define T_CP1254_LATIN_SMALL_LETTER_T 0x0074 #define T_CP1254_LATIN_SMALL_LETTER_U 0x0075 #define T_CP1254_LATIN_SMALL_LETTER_V 0x0076 #define T_CP1254_LATIN_SMALL_LETTER_W 0x0077 #define T_CP1254_LATIN_SMALL_LETTER_X 0x0078 #define T_CP1254_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP1254_LATIN_SMALL_LETTER_Z 0x007A #define T_CP1254_LEFT_CURLY_BRACKET 0x007B #define T_CP1254_VERTICAL_LINE 0x007C #define T_CP1254_RIGHT_CURLY_BRACKET 0x007D #define T_CP1254_TILDE 0x007E #define T_CP1254_CTRL_DELETE 0x007F #define T_CP1254_EURO_SIGN 0x0080 #define T_CP1254_UNDEFINED_0081 0x0081 #define T_CP1254_SINGLE_LOW_9_QUOTATION_MARK 0x0082 #define T_CP1254_LATIN_SMALL_LETTER_F_WITH_HOOK 0x0083 #define T_CP1254_DOUBLE_LOW_9_QUOTATION_MARK 0x0084 #define T_CP1254_HORIZONTAL_ELLIPSIS 0x0085 #define T_CP1254_DAGGER 0x0086 #define T_CP1254_DOUBLE_DAGGER 0x0087 #define T_CP1254_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x0088 #define T_CP1254_PER_MILLE_SIGN 0x0089 #define T_CP1254_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x008A #define T_CP1254_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x008B #define T_CP1254_LATIN_CAPITAL_LIGATURE_OE 0x008C #define T_CP1254_UNDEFINED_008D 0x008D #define T_CP1254_UNDEFINED_008E 0x008E #define T_CP1254_UNDEFINED_008F 0x008F #define T_CP1254_UNDEFINED_0090 0x0090 #define T_CP1254_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_CP1254_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_CP1254_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_CP1254_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_CP1254_BULLET 0x0095 #define T_CP1254_EN_DASH 0x0096 #define T_CP1254_EM_DASH 0x0097 #define T_CP1254_SMALL_TILDE 0x0098 #define T_CP1254_TRADE_MARK_SIGN 0x0099 #define T_CP1254_LATIN_SMALL_LETTER_S_WITH_CARON 0x009A #define T_CP1254_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x009B #define T_CP1254_LATIN_SMALL_LIGATURE_OE 0x009C #define T_CP1254_UNDEFINED_009D 0x009D #define T_CP1254_UNDEFINED_009E 0x009E #define T_CP1254_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x009F #define T_CP1254_NO_BREAK_SPACE 0x00A0 #define T_CP1254_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_CP1254_CENT_SIGN 0x00A2 #define T_CP1254_POUND_SIGN 0x00A3 #define T_CP1254_CURRENCY_SIGN 0x00A4 #define T_CP1254_YEN_SIGN 0x00A5 #define T_CP1254_BROKEN_BAR 0x00A6 #define T_CP1254_SECTION_SIGN 0x00A7 #define T_CP1254_DIAERESIS 0x00A8 #define T_CP1254_COPYRIGHT_SIGN 0x00A9 #define T_CP1254_FEMININE_ORDINAL_INDICATOR 0x00AA #define T_CP1254_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_CP1254_NOT_SIGN 0x00AC #define T_CP1254_SOFT_HYPHEN 0x00AD #define T_CP1254_REGISTERED_SIGN 0x00AE #define T_CP1254_MACRON 0x00AF #define T_CP1254_DEGREE_SIGN 0x00B0 #define T_CP1254_PLUS_MINUS_SIGN 0x00B1 #define T_CP1254_SUPERSCRIPT_TWO 0x00B2 #define T_CP1254_SUPERSCRIPT_THREE 0x00B3 #define T_CP1254_ACUTE_ACCENT 0x00B4 #define T_CP1254_MICRO_SIGN 0x00B5 #define T_CP1254_PILCROW_SIGN 0x00B6 #define T_CP1254_MIDDLE_DOT 0x00B7 #define T_CP1254_CEDILLA 0x00B8 #define T_CP1254_SUPERSCRIPT_ONE 0x00B9 #define T_CP1254_MASCULINE_ORDINAL_INDICATOR 0x00BA #define T_CP1254_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_CP1254_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_CP1254_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_CP1254_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_CP1254_INVERTED_QUESTION_MARK 0x00BF #define T_CP1254_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_CP1254_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_CP1254_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_CP1254_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 #define T_CP1254_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_CP1254_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_CP1254_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_CP1254_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_CP1254_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_CP1254_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_CP1254_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_CP1254_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_CP1254_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC #define T_CP1254_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_CP1254_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_CP1254_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_CP1254_LATIN_CAPITAL_LETTER_G_WITH_BREVE 0x00D0 #define T_CP1254_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 #define T_CP1254_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 #define T_CP1254_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_CP1254_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_CP1254_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_CP1254_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_CP1254_MULTIPLICATION_SIGN 0x00D7 #define T_CP1254_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_CP1254_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_CP1254_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_CP1254_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_CP1254_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_CP1254_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE 0x00DD #define T_CP1254_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x00DE #define T_CP1254_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_CP1254_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_CP1254_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_CP1254_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_CP1254_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 #define T_CP1254_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_CP1254_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_CP1254_LATIN_SMALL_LETTER_AE 0x00E6 #define T_CP1254_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_CP1254_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_CP1254_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_CP1254_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_CP1254_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_CP1254_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_CP1254_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_CP1254_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_CP1254_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_CP1254_LATIN_SMALL_LETTER_G_WITH_BREVE 0x00F0 #define T_CP1254_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 #define T_CP1254_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 #define T_CP1254_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_CP1254_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_CP1254_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_CP1254_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_CP1254_DIVISION_SIGN 0x00F7 #define T_CP1254_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_CP1254_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_CP1254_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_CP1254_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_CP1254_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_CP1254_LATIN_SMALL_LETTER_DOTLESS_I 0x00FD #define T_CP1254_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x00FE #define T_CP1254_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF /* list of all characters */ #define T_LIST_CP1254(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_SMALL_TILDE) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_NO_BREAK_SPACE) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_YEN_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_MACRON) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_ONE) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_INVERTED_QUESTION_MARK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP1254(EL) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_SMALL_TILDE) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) #endif /* TUTF_CP1254_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp1255.h��������������������������������������������������������������������0000664�0000000�0000000�00000134216�13775351206�0016156�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP1255_H #define TUTF_CP1255_H #define T_CP1255_CTRL_NULL 0x0000 #define T_CP1255_CTRL_START_OF_HEADING 0x0001 #define T_CP1255_CTRL_START_OF_TEXT 0x0002 #define T_CP1255_CTRL_END_OF_TEXT 0x0003 #define T_CP1255_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP1255_CTRL_ENQUIRY 0x0005 #define T_CP1255_CTRL_ACKNOWLEDGE 0x0006 #define T_CP1255_CTRL_BELL 0x0007 #define T_CP1255_CTRL_BACKSPACE 0x0008 #define T_CP1255_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP1255_CTRL_LINE_FEED 0x000A #define T_CP1255_CTRL_LINE_TABULATION 0x000B #define T_CP1255_CTRL_FORM_FEED 0x000C #define T_CP1255_CTRL_CARRIAGE_RETURN 0x000D #define T_CP1255_CTRL_SHIFT_OUT 0x000E #define T_CP1255_CTRL_SHIFT_IN 0x000F #define T_CP1255_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP1255_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP1255_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP1255_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP1255_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP1255_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP1255_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP1255_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP1255_CTRL_CANCEL 0x0018 #define T_CP1255_CTRL_END_OF_MEDIUM 0x0019 #define T_CP1255_CTRL_SUBSTITUTE 0x001A #define T_CP1255_CTRL_ESCAPE 0x001B #define T_CP1255_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP1255_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP1255_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP1255_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP1255_SPACE 0x0020 #define T_CP1255_EXCLAMATION_MARK 0x0021 #define T_CP1255_QUOTATION_MARK 0x0022 #define T_CP1255_NUMBER_SIGN 0x0023 #define T_CP1255_DOLLAR_SIGN 0x0024 #define T_CP1255_PERCENT_SIGN 0x0025 #define T_CP1255_AMPERSAND 0x0026 #define T_CP1255_APOSTROPHE 0x0027 #define T_CP1255_LEFT_PARENTHESIS 0x0028 #define T_CP1255_RIGHT_PARENTHESIS 0x0029 #define T_CP1255_ASTERISK 0x002A #define T_CP1255_PLUS_SIGN 0x002B #define T_CP1255_COMMA 0x002C #define T_CP1255_HYPHEN_MINUS 0x002D #define T_CP1255_FULL_STOP 0x002E #define T_CP1255_SOLIDUS 0x002F #define T_CP1255_DIGIT_ZERO 0x0030 #define T_CP1255_DIGIT_ONE 0x0031 #define T_CP1255_DIGIT_TWO 0x0032 #define T_CP1255_DIGIT_THREE 0x0033 #define T_CP1255_DIGIT_FOUR 0x0034 #define T_CP1255_DIGIT_FIVE 0x0035 #define T_CP1255_DIGIT_SIX 0x0036 #define T_CP1255_DIGIT_SEVEN 0x0037 #define T_CP1255_DIGIT_EIGHT 0x0038 #define T_CP1255_DIGIT_NINE 0x0039 #define T_CP1255_COLON 0x003A #define T_CP1255_SEMICOLON 0x003B #define T_CP1255_LESS_THAN_SIGN 0x003C #define T_CP1255_EQUALS_SIGN 0x003D #define T_CP1255_GREATER_THAN_SIGN 0x003E #define T_CP1255_QUESTION_MARK 0x003F #define T_CP1255_COMMERCIAL_AT 0x0040 #define T_CP1255_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP1255_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP1255_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP1255_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP1255_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP1255_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP1255_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP1255_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP1255_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP1255_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP1255_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP1255_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP1255_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP1255_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP1255_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP1255_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP1255_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP1255_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP1255_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP1255_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP1255_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP1255_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP1255_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP1255_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP1255_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP1255_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP1255_LEFT_SQUARE_BRACKET 0x005B #define T_CP1255_REVERSE_SOLIDUS 0x005C #define T_CP1255_RIGHT_SQUARE_BRACKET 0x005D #define T_CP1255_CIRCUMFLEX_ACCENT 0x005E #define T_CP1255_LOW_LINE 0x005F #define T_CP1255_GRAVE_ACCENT 0x0060 #define T_CP1255_LATIN_SMALL_LETTER_A 0x0061 #define T_CP1255_LATIN_SMALL_LETTER_B 0x0062 #define T_CP1255_LATIN_SMALL_LETTER_C 0x0063 #define T_CP1255_LATIN_SMALL_LETTER_D 0x0064 #define T_CP1255_LATIN_SMALL_LETTER_E 0x0065 #define T_CP1255_LATIN_SMALL_LETTER_F 0x0066 #define T_CP1255_LATIN_SMALL_LETTER_G 0x0067 #define T_CP1255_LATIN_SMALL_LETTER_H 0x0068 #define T_CP1255_LATIN_SMALL_LETTER_I 0x0069 #define T_CP1255_LATIN_SMALL_LETTER_J 0x006A #define T_CP1255_LATIN_SMALL_LETTER_K 0x006B #define T_CP1255_LATIN_SMALL_LETTER_L 0x006C #define T_CP1255_LATIN_SMALL_LETTER_M 0x006D #define T_CP1255_LATIN_SMALL_LETTER_N 0x006E #define T_CP1255_LATIN_SMALL_LETTER_O 0x006F #define T_CP1255_LATIN_SMALL_LETTER_P 0x0070 #define T_CP1255_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP1255_LATIN_SMALL_LETTER_R 0x0072 #define T_CP1255_LATIN_SMALL_LETTER_S 0x0073 #define T_CP1255_LATIN_SMALL_LETTER_T 0x0074 #define T_CP1255_LATIN_SMALL_LETTER_U 0x0075 #define T_CP1255_LATIN_SMALL_LETTER_V 0x0076 #define T_CP1255_LATIN_SMALL_LETTER_W 0x0077 #define T_CP1255_LATIN_SMALL_LETTER_X 0x0078 #define T_CP1255_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP1255_LATIN_SMALL_LETTER_Z 0x007A #define T_CP1255_LEFT_CURLY_BRACKET 0x007B #define T_CP1255_VERTICAL_LINE 0x007C #define T_CP1255_RIGHT_CURLY_BRACKET 0x007D #define T_CP1255_TILDE 0x007E #define T_CP1255_CTRL_DELETE 0x007F #define T_CP1255_EURO_SIGN 0x0080 #define T_CP1255_UNDEFINED_0081 0x0081 #define T_CP1255_SINGLE_LOW_9_QUOTATION_MARK 0x0082 #define T_CP1255_LATIN_SMALL_LETTER_F_WITH_HOOK 0x0083 #define T_CP1255_DOUBLE_LOW_9_QUOTATION_MARK 0x0084 #define T_CP1255_HORIZONTAL_ELLIPSIS 0x0085 #define T_CP1255_DAGGER 0x0086 #define T_CP1255_DOUBLE_DAGGER 0x0087 #define T_CP1255_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x0088 #define T_CP1255_PER_MILLE_SIGN 0x0089 #define T_CP1255_UNDEFINED_008A 0x008A #define T_CP1255_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x008B #define T_CP1255_UNDEFINED_008C 0x008C #define T_CP1255_UNDEFINED_008D 0x008D #define T_CP1255_UNDEFINED_008E 0x008E #define T_CP1255_UNDEFINED_008F 0x008F #define T_CP1255_UNDEFINED_0090 0x0090 #define T_CP1255_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_CP1255_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_CP1255_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_CP1255_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_CP1255_BULLET 0x0095 #define T_CP1255_EN_DASH 0x0096 #define T_CP1255_EM_DASH 0x0097 #define T_CP1255_SMALL_TILDE 0x0098 #define T_CP1255_TRADE_MARK_SIGN 0x0099 #define T_CP1255_UNDEFINED_009A 0x009A #define T_CP1255_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x009B #define T_CP1255_UNDEFINED_009C 0x009C #define T_CP1255_UNDEFINED_009D 0x009D #define T_CP1255_UNDEFINED_009E 0x009E #define T_CP1255_UNDEFINED_009F 0x009F #define T_CP1255_NO_BREAK_SPACE 0x00A0 #define T_CP1255_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_CP1255_CENT_SIGN 0x00A2 #define T_CP1255_POUND_SIGN 0x00A3 #define T_CP1255_NEW_SHEQEL_SIGN 0x00A4 #define T_CP1255_YEN_SIGN 0x00A5 #define T_CP1255_BROKEN_BAR 0x00A6 #define T_CP1255_SECTION_SIGN 0x00A7 #define T_CP1255_DIAERESIS 0x00A8 #define T_CP1255_COPYRIGHT_SIGN 0x00A9 #define T_CP1255_MULTIPLICATION_SIGN 0x00AA #define T_CP1255_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_CP1255_NOT_SIGN 0x00AC #define T_CP1255_SOFT_HYPHEN 0x00AD #define T_CP1255_REGISTERED_SIGN 0x00AE #define T_CP1255_MACRON 0x00AF #define T_CP1255_DEGREE_SIGN 0x00B0 #define T_CP1255_PLUS_MINUS_SIGN 0x00B1 #define T_CP1255_SUPERSCRIPT_TWO 0x00B2 #define T_CP1255_SUPERSCRIPT_THREE 0x00B3 #define T_CP1255_ACUTE_ACCENT 0x00B4 #define T_CP1255_MICRO_SIGN 0x00B5 #define T_CP1255_PILCROW_SIGN 0x00B6 #define T_CP1255_MIDDLE_DOT 0x00B7 #define T_CP1255_CEDILLA 0x00B8 #define T_CP1255_SUPERSCRIPT_ONE 0x00B9 #define T_CP1255_DIVISION_SIGN 0x00BA #define T_CP1255_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_CP1255_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_CP1255_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_CP1255_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_CP1255_INVERTED_QUESTION_MARK 0x00BF #define T_CP1255_HEBREW_POINT_SHEVA 0x00C0 #define T_CP1255_HEBREW_POINT_HATAF_SEGOL 0x00C1 #define T_CP1255_HEBREW_POINT_HATAF_PATAH 0x00C2 #define T_CP1255_HEBREW_POINT_HATAF_QAMATS 0x00C3 #define T_CP1255_HEBREW_POINT_HIRIQ 0x00C4 #define T_CP1255_HEBREW_POINT_TSERE 0x00C5 #define T_CP1255_HEBREW_POINT_SEGOL 0x00C6 #define T_CP1255_HEBREW_POINT_PATAH 0x00C7 #define T_CP1255_HEBREW_POINT_QAMATS 0x00C8 #define T_CP1255_HEBREW_POINT_HOLAM 0x00C9 #define T_CP1255_UNDEFINED_00CA 0x00CA #define T_CP1255_HEBREW_POINT_QUBUTS 0x00CB #define T_CP1255_HEBREW_POINT_DAGESH_OR_MAPIQ 0x00CC #define T_CP1255_HEBREW_POINT_METEG 0x00CD #define T_CP1255_HEBREW_PUNCTUATION_MAQAF 0x00CE #define T_CP1255_HEBREW_POINT_RAFE 0x00CF #define T_CP1255_HEBREW_PUNCTUATION_PASEQ 0x00D0 #define T_CP1255_HEBREW_POINT_SHIN_DOT 0x00D1 #define T_CP1255_HEBREW_POINT_SIN_DOT 0x00D2 #define T_CP1255_HEBREW_PUNCTUATION_SOF_PASUQ 0x00D3 #define T_CP1255_HEBREW_LIGATURE_YIDDISH_DOUBLE_VAV 0x00D4 #define T_CP1255_HEBREW_LIGATURE_YIDDISH_VAV_YOD 0x00D5 #define T_CP1255_HEBREW_LIGATURE_YIDDISH_DOUBLE_YOD 0x00D6 #define T_CP1255_HEBREW_PUNCTUATION_GERESH 0x00D7 #define T_CP1255_HEBREW_PUNCTUATION_GERSHAYIM 0x00D8 #define T_CP1255_UNDEFINED_00D9 0x00D9 #define T_CP1255_UNDEFINED_00DA 0x00DA #define T_CP1255_UNDEFINED_00DB 0x00DB #define T_CP1255_UNDEFINED_00DC 0x00DC #define T_CP1255_UNDEFINED_00DD 0x00DD #define T_CP1255_UNDEFINED_00DE 0x00DE #define T_CP1255_UNDEFINED_00DF 0x00DF #define T_CP1255_HEBREW_LETTER_ALEF 0x00E0 #define T_CP1255_HEBREW_LETTER_BET 0x00E1 #define T_CP1255_HEBREW_LETTER_GIMEL 0x00E2 #define T_CP1255_HEBREW_LETTER_DALET 0x00E3 #define T_CP1255_HEBREW_LETTER_HE 0x00E4 #define T_CP1255_HEBREW_LETTER_VAV 0x00E5 #define T_CP1255_HEBREW_LETTER_ZAYIN 0x00E6 #define T_CP1255_HEBREW_LETTER_HET 0x00E7 #define T_CP1255_HEBREW_LETTER_TET 0x00E8 #define T_CP1255_HEBREW_LETTER_YOD 0x00E9 #define T_CP1255_HEBREW_LETTER_FINAL_KAF 0x00EA #define T_CP1255_HEBREW_LETTER_KAF 0x00EB #define T_CP1255_HEBREW_LETTER_LAMED 0x00EC #define T_CP1255_HEBREW_LETTER_FINAL_MEM 0x00ED #define T_CP1255_HEBREW_LETTER_MEM 0x00EE #define T_CP1255_HEBREW_LETTER_FINAL_NUN 0x00EF #define T_CP1255_HEBREW_LETTER_NUN 0x00F0 #define T_CP1255_HEBREW_LETTER_SAMEKH 0x00F1 #define T_CP1255_HEBREW_LETTER_AYIN 0x00F2 #define T_CP1255_HEBREW_LETTER_FINAL_PE 0x00F3 #define T_CP1255_HEBREW_LETTER_PE 0x00F4 #define T_CP1255_HEBREW_LETTER_FINAL_TSADI 0x00F5 #define T_CP1255_HEBREW_LETTER_TSADI 0x00F6 #define T_CP1255_HEBREW_LETTER_QOF 0x00F7 #define T_CP1255_HEBREW_LETTER_RESH 0x00F8 #define T_CP1255_HEBREW_LETTER_SHIN 0x00F9 #define T_CP1255_HEBREW_LETTER_TAV 0x00FA #define T_CP1255_UNDEFINED_00FB 0x00FB #define T_CP1255_UNDEFINED_00FC 0x00FC #define T_CP1255_LEFT_TO_RIGHT_MARK 0x00FD #define T_CP1255_RIGHT_TO_LEFT_MARK 0x00FE #define T_CP1255_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_CP1255(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_PER_MILLE_SIGN) \ EL(_UNDEFINED_008A) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_SMALL_TILDE) \ EL(_TRADE_MARK_SIGN) \ EL(_UNDEFINED_009A) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_NO_BREAK_SPACE) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_NEW_SHEQEL_SIGN) \ EL(_YEN_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_MULTIPLICATION_SIGN) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_MACRON) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_ONE) \ EL(_DIVISION_SIGN) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_INVERTED_QUESTION_MARK) \ EL(_HEBREW_POINT_SHEVA) \ EL(_HEBREW_POINT_HATAF_SEGOL) \ EL(_HEBREW_POINT_HATAF_PATAH) \ EL(_HEBREW_POINT_HATAF_QAMATS) \ EL(_HEBREW_POINT_HIRIQ) \ EL(_HEBREW_POINT_TSERE) \ EL(_HEBREW_POINT_SEGOL) \ EL(_HEBREW_POINT_PATAH) \ EL(_HEBREW_POINT_QAMATS) \ EL(_HEBREW_POINT_HOLAM) \ EL(_UNDEFINED_00CA) \ EL(_HEBREW_POINT_QUBUTS) \ EL(_HEBREW_POINT_DAGESH_OR_MAPIQ) \ EL(_HEBREW_POINT_METEG) \ EL(_HEBREW_PUNCTUATION_MAQAF) \ EL(_HEBREW_POINT_RAFE) \ EL(_HEBREW_PUNCTUATION_PASEQ) \ EL(_HEBREW_POINT_SHIN_DOT) \ EL(_HEBREW_POINT_SIN_DOT) \ EL(_HEBREW_PUNCTUATION_SOF_PASUQ) \ EL(_HEBREW_LIGATURE_YIDDISH_DOUBLE_VAV) \ EL(_HEBREW_LIGATURE_YIDDISH_VAV_YOD) \ EL(_HEBREW_LIGATURE_YIDDISH_DOUBLE_YOD) \ EL(_HEBREW_PUNCTUATION_GERESH) \ EL(_HEBREW_PUNCTUATION_GERSHAYIM) \ EL(_UNDEFINED_00D9) \ EL(_UNDEFINED_00DA) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_RIGHT_TO_LEFT_MARK) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP1255(EL) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_PER_MILLE_SIGN) \ EL(_UNDEFINED_008A) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_SMALL_TILDE) \ EL(_TRADE_MARK_SIGN) \ EL(_UNDEFINED_009A) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_NEW_SHEQEL_SIGN) \ EL(_MULTIPLICATION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_HEBREW_POINT_SHEVA) \ EL(_HEBREW_POINT_HATAF_SEGOL) \ EL(_HEBREW_POINT_HATAF_PATAH) \ EL(_HEBREW_POINT_HATAF_QAMATS) \ EL(_HEBREW_POINT_HIRIQ) \ EL(_HEBREW_POINT_TSERE) \ EL(_HEBREW_POINT_SEGOL) \ EL(_HEBREW_POINT_PATAH) \ EL(_HEBREW_POINT_QAMATS) \ EL(_HEBREW_POINT_HOLAM) \ EL(_UNDEFINED_00CA) \ EL(_HEBREW_POINT_QUBUTS) \ EL(_HEBREW_POINT_DAGESH_OR_MAPIQ) \ EL(_HEBREW_POINT_METEG) \ EL(_HEBREW_PUNCTUATION_MAQAF) \ EL(_HEBREW_POINT_RAFE) \ EL(_HEBREW_PUNCTUATION_PASEQ) \ EL(_HEBREW_POINT_SHIN_DOT) \ EL(_HEBREW_POINT_SIN_DOT) \ EL(_HEBREW_PUNCTUATION_SOF_PASUQ) \ EL(_HEBREW_LIGATURE_YIDDISH_DOUBLE_VAV) \ EL(_HEBREW_LIGATURE_YIDDISH_VAV_YOD) \ EL(_HEBREW_LIGATURE_YIDDISH_DOUBLE_YOD) \ EL(_HEBREW_PUNCTUATION_GERESH) \ EL(_HEBREW_PUNCTUATION_GERSHAYIM) \ EL(_UNDEFINED_00D9) \ EL(_UNDEFINED_00DA) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_RIGHT_TO_LEFT_MARK) \ EL(_UNDEFINED_00FF) #endif /* TUTF_CP1255_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp1256.h��������������������������������������������������������������������0000664�0000000�0000000�00000132005�13775351206�0016151�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP1256_H #define TUTF_CP1256_H #define T_CP1256_CTRL_NULL 0x0000 #define T_CP1256_CTRL_START_OF_HEADING 0x0001 #define T_CP1256_CTRL_START_OF_TEXT 0x0002 #define T_CP1256_CTRL_END_OF_TEXT 0x0003 #define T_CP1256_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP1256_CTRL_ENQUIRY 0x0005 #define T_CP1256_CTRL_ACKNOWLEDGE 0x0006 #define T_CP1256_CTRL_BELL 0x0007 #define T_CP1256_CTRL_BACKSPACE 0x0008 #define T_CP1256_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP1256_CTRL_LINE_FEED 0x000A #define T_CP1256_CTRL_LINE_TABULATION 0x000B #define T_CP1256_CTRL_FORM_FEED 0x000C #define T_CP1256_CTRL_CARRIAGE_RETURN 0x000D #define T_CP1256_CTRL_SHIFT_OUT 0x000E #define T_CP1256_CTRL_SHIFT_IN 0x000F #define T_CP1256_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP1256_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP1256_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP1256_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP1256_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP1256_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP1256_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP1256_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP1256_CTRL_CANCEL 0x0018 #define T_CP1256_CTRL_END_OF_MEDIUM 0x0019 #define T_CP1256_CTRL_SUBSTITUTE 0x001A #define T_CP1256_CTRL_ESCAPE 0x001B #define T_CP1256_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP1256_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP1256_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP1256_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP1256_SPACE 0x0020 #define T_CP1256_EXCLAMATION_MARK 0x0021 #define T_CP1256_QUOTATION_MARK 0x0022 #define T_CP1256_NUMBER_SIGN 0x0023 #define T_CP1256_DOLLAR_SIGN 0x0024 #define T_CP1256_PERCENT_SIGN 0x0025 #define T_CP1256_AMPERSAND 0x0026 #define T_CP1256_APOSTROPHE 0x0027 #define T_CP1256_LEFT_PARENTHESIS 0x0028 #define T_CP1256_RIGHT_PARENTHESIS 0x0029 #define T_CP1256_ASTERISK 0x002A #define T_CP1256_PLUS_SIGN 0x002B #define T_CP1256_COMMA 0x002C #define T_CP1256_HYPHEN_MINUS 0x002D #define T_CP1256_FULL_STOP 0x002E #define T_CP1256_SOLIDUS 0x002F #define T_CP1256_DIGIT_ZERO 0x0030 #define T_CP1256_DIGIT_ONE 0x0031 #define T_CP1256_DIGIT_TWO 0x0032 #define T_CP1256_DIGIT_THREE 0x0033 #define T_CP1256_DIGIT_FOUR 0x0034 #define T_CP1256_DIGIT_FIVE 0x0035 #define T_CP1256_DIGIT_SIX 0x0036 #define T_CP1256_DIGIT_SEVEN 0x0037 #define T_CP1256_DIGIT_EIGHT 0x0038 #define T_CP1256_DIGIT_NINE 0x0039 #define T_CP1256_COLON 0x003A #define T_CP1256_SEMICOLON 0x003B #define T_CP1256_LESS_THAN_SIGN 0x003C #define T_CP1256_EQUALS_SIGN 0x003D #define T_CP1256_GREATER_THAN_SIGN 0x003E #define T_CP1256_QUESTION_MARK 0x003F #define T_CP1256_COMMERCIAL_AT 0x0040 #define T_CP1256_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP1256_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP1256_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP1256_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP1256_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP1256_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP1256_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP1256_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP1256_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP1256_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP1256_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP1256_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP1256_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP1256_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP1256_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP1256_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP1256_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP1256_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP1256_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP1256_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP1256_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP1256_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP1256_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP1256_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP1256_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP1256_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP1256_LEFT_SQUARE_BRACKET 0x005B #define T_CP1256_REVERSE_SOLIDUS 0x005C #define T_CP1256_RIGHT_SQUARE_BRACKET 0x005D #define T_CP1256_CIRCUMFLEX_ACCENT 0x005E #define T_CP1256_LOW_LINE 0x005F #define T_CP1256_GRAVE_ACCENT 0x0060 #define T_CP1256_LATIN_SMALL_LETTER_A 0x0061 #define T_CP1256_LATIN_SMALL_LETTER_B 0x0062 #define T_CP1256_LATIN_SMALL_LETTER_C 0x0063 #define T_CP1256_LATIN_SMALL_LETTER_D 0x0064 #define T_CP1256_LATIN_SMALL_LETTER_E 0x0065 #define T_CP1256_LATIN_SMALL_LETTER_F 0x0066 #define T_CP1256_LATIN_SMALL_LETTER_G 0x0067 #define T_CP1256_LATIN_SMALL_LETTER_H 0x0068 #define T_CP1256_LATIN_SMALL_LETTER_I 0x0069 #define T_CP1256_LATIN_SMALL_LETTER_J 0x006A #define T_CP1256_LATIN_SMALL_LETTER_K 0x006B #define T_CP1256_LATIN_SMALL_LETTER_L 0x006C #define T_CP1256_LATIN_SMALL_LETTER_M 0x006D #define T_CP1256_LATIN_SMALL_LETTER_N 0x006E #define T_CP1256_LATIN_SMALL_LETTER_O 0x006F #define T_CP1256_LATIN_SMALL_LETTER_P 0x0070 #define T_CP1256_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP1256_LATIN_SMALL_LETTER_R 0x0072 #define T_CP1256_LATIN_SMALL_LETTER_S 0x0073 #define T_CP1256_LATIN_SMALL_LETTER_T 0x0074 #define T_CP1256_LATIN_SMALL_LETTER_U 0x0075 #define T_CP1256_LATIN_SMALL_LETTER_V 0x0076 #define T_CP1256_LATIN_SMALL_LETTER_W 0x0077 #define T_CP1256_LATIN_SMALL_LETTER_X 0x0078 #define T_CP1256_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP1256_LATIN_SMALL_LETTER_Z 0x007A #define T_CP1256_LEFT_CURLY_BRACKET 0x007B #define T_CP1256_VERTICAL_LINE 0x007C #define T_CP1256_RIGHT_CURLY_BRACKET 0x007D #define T_CP1256_TILDE 0x007E #define T_CP1256_CTRL_DELETE 0x007F #define T_CP1256_EURO_SIGN 0x0080 #define T_CP1256_ARABIC_LETTER_PEH 0x0081 #define T_CP1256_SINGLE_LOW_9_QUOTATION_MARK 0x0082 #define T_CP1256_LATIN_SMALL_LETTER_F_WITH_HOOK 0x0083 #define T_CP1256_DOUBLE_LOW_9_QUOTATION_MARK 0x0084 #define T_CP1256_HORIZONTAL_ELLIPSIS 0x0085 #define T_CP1256_DAGGER 0x0086 #define T_CP1256_DOUBLE_DAGGER 0x0087 #define T_CP1256_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x0088 #define T_CP1256_PER_MILLE_SIGN 0x0089 #define T_CP1256_ARABIC_LETTER_TTEH 0x008A #define T_CP1256_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x008B #define T_CP1256_LATIN_CAPITAL_LIGATURE_OE 0x008C #define T_CP1256_ARABIC_LETTER_TCHEH 0x008D #define T_CP1256_ARABIC_LETTER_JEH 0x008E #define T_CP1256_ARABIC_LETTER_DDAL 0x008F #define T_CP1256_ARABIC_LETTER_GAF 0x0090 #define T_CP1256_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_CP1256_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_CP1256_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_CP1256_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_CP1256_BULLET 0x0095 #define T_CP1256_EN_DASH 0x0096 #define T_CP1256_EM_DASH 0x0097 #define T_CP1256_ARABIC_LETTER_KEHEH 0x0098 #define T_CP1256_TRADE_MARK_SIGN 0x0099 #define T_CP1256_ARABIC_LETTER_RREH 0x009A #define T_CP1256_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x009B #define T_CP1256_LATIN_SMALL_LIGATURE_OE 0x009C #define T_CP1256_ZERO_WIDTH_NON_JOINER 0x009D #define T_CP1256_ZERO_WIDTH_JOINER 0x009E #define T_CP1256_ARABIC_LETTER_NOON_GHUNNA 0x009F #define T_CP1256_NO_BREAK_SPACE 0x00A0 #define T_CP1256_ARABIC_COMMA 0x00A1 #define T_CP1256_CENT_SIGN 0x00A2 #define T_CP1256_POUND_SIGN 0x00A3 #define T_CP1256_CURRENCY_SIGN 0x00A4 #define T_CP1256_YEN_SIGN 0x00A5 #define T_CP1256_BROKEN_BAR 0x00A6 #define T_CP1256_SECTION_SIGN 0x00A7 #define T_CP1256_DIAERESIS 0x00A8 #define T_CP1256_COPYRIGHT_SIGN 0x00A9 #define T_CP1256_ARABIC_LETTER_HEH_DOACHASHMEE 0x00AA #define T_CP1256_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_CP1256_NOT_SIGN 0x00AC #define T_CP1256_SOFT_HYPHEN 0x00AD #define T_CP1256_REGISTERED_SIGN 0x00AE #define T_CP1256_MACRON 0x00AF #define T_CP1256_DEGREE_SIGN 0x00B0 #define T_CP1256_PLUS_MINUS_SIGN 0x00B1 #define T_CP1256_SUPERSCRIPT_TWO 0x00B2 #define T_CP1256_SUPERSCRIPT_THREE 0x00B3 #define T_CP1256_ACUTE_ACCENT 0x00B4 #define T_CP1256_MICRO_SIGN 0x00B5 #define T_CP1256_PILCROW_SIGN 0x00B6 #define T_CP1256_MIDDLE_DOT 0x00B7 #define T_CP1256_CEDILLA 0x00B8 #define T_CP1256_SUPERSCRIPT_ONE 0x00B9 #define T_CP1256_ARABIC_SEMICOLON 0x00BA #define T_CP1256_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_CP1256_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_CP1256_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_CP1256_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_CP1256_ARABIC_QUESTION_MARK 0x00BF #define T_CP1256_ARABIC_LETTER_HEH_GOAL 0x00C0 #define T_CP1256_ARABIC_LETTER_HAMZA 0x00C1 #define T_CP1256_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE 0x00C2 #define T_CP1256_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE 0x00C3 #define T_CP1256_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE 0x00C4 #define T_CP1256_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW 0x00C5 #define T_CP1256_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE 0x00C6 #define T_CP1256_ARABIC_LETTER_ALEF 0x00C7 #define T_CP1256_ARABIC_LETTER_BEH 0x00C8 #define T_CP1256_ARABIC_LETTER_TEH_MARBUTA 0x00C9 #define T_CP1256_ARABIC_LETTER_TEH 0x00CA #define T_CP1256_ARABIC_LETTER_THEH 0x00CB #define T_CP1256_ARABIC_LETTER_JEEM 0x00CC #define T_CP1256_ARABIC_LETTER_HAH 0x00CD #define T_CP1256_ARABIC_LETTER_KHAH 0x00CE #define T_CP1256_ARABIC_LETTER_DAL 0x00CF #define T_CP1256_ARABIC_LETTER_THAL 0x00D0 #define T_CP1256_ARABIC_LETTER_REH 0x00D1 #define T_CP1256_ARABIC_LETTER_ZAIN 0x00D2 #define T_CP1256_ARABIC_LETTER_SEEN 0x00D3 #define T_CP1256_ARABIC_LETTER_SHEEN 0x00D4 #define T_CP1256_ARABIC_LETTER_SAD 0x00D5 #define T_CP1256_ARABIC_LETTER_DAD 0x00D6 #define T_CP1256_MULTIPLICATION_SIGN 0x00D7 #define T_CP1256_ARABIC_LETTER_TAH 0x00D8 #define T_CP1256_ARABIC_LETTER_ZAH 0x00D9 #define T_CP1256_ARABIC_LETTER_AIN 0x00DA #define T_CP1256_ARABIC_LETTER_GHAIN 0x00DB #define T_CP1256_ARABIC_TATWEEL 0x00DC #define T_CP1256_ARABIC_LETTER_FEH 0x00DD #define T_CP1256_ARABIC_LETTER_QAF 0x00DE #define T_CP1256_ARABIC_LETTER_KAF 0x00DF #define T_CP1256_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_CP1256_ARABIC_LETTER_LAM 0x00E1 #define T_CP1256_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_CP1256_ARABIC_LETTER_MEEM 0x00E3 #define T_CP1256_ARABIC_LETTER_NOON 0x00E4 #define T_CP1256_ARABIC_LETTER_HEH 0x00E5 #define T_CP1256_ARABIC_LETTER_WAW 0x00E6 #define T_CP1256_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_CP1256_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_CP1256_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_CP1256_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_CP1256_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_CP1256_ARABIC_LETTER_ALEF_MAKSURA 0x00EC #define T_CP1256_ARABIC_LETTER_YEH 0x00ED #define T_CP1256_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_CP1256_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_CP1256_ARABIC_FATHATAN 0x00F0 #define T_CP1256_ARABIC_DAMMATAN 0x00F1 #define T_CP1256_ARABIC_KASRATAN 0x00F2 #define T_CP1256_ARABIC_FATHA 0x00F3 #define T_CP1256_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_CP1256_ARABIC_DAMMA 0x00F5 #define T_CP1256_ARABIC_KASRA 0x00F6 #define T_CP1256_DIVISION_SIGN 0x00F7 #define T_CP1256_ARABIC_SHADDA 0x00F8 #define T_CP1256_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_CP1256_ARABIC_SUKUN 0x00FA #define T_CP1256_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_CP1256_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_CP1256_LEFT_TO_RIGHT_MARK 0x00FD #define T_CP1256_RIGHT_TO_LEFT_MARK 0x00FE #define T_CP1256_ARABIC_LETTER_YEH_BARREE 0x00FF /* list of all characters */ #define T_LIST_CP1256(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_ARABIC_LETTER_PEH) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_PER_MILLE_SIGN) \ EL(_ARABIC_LETTER_TTEH) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_ARABIC_LETTER_TCHEH) \ EL(_ARABIC_LETTER_JEH) \ EL(_ARABIC_LETTER_DDAL) \ EL(_ARABIC_LETTER_GAF) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_ARABIC_LETTER_KEHEH) \ EL(_TRADE_MARK_SIGN) \ EL(_ARABIC_LETTER_RREH) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_ZERO_WIDTH_NON_JOINER) \ EL(_ZERO_WIDTH_JOINER) \ EL(_ARABIC_LETTER_NOON_GHUNNA) \ EL(_NO_BREAK_SPACE) \ EL(_ARABIC_COMMA) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_YEN_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_ARABIC_LETTER_HEH_DOACHASHMEE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_MACRON) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_ONE) \ EL(_ARABIC_SEMICOLON) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_ARABIC_QUESTION_MARK) \ EL(_ARABIC_LETTER_HEH_GOAL) \ EL(_ARABIC_LETTER_HAMZA) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF) \ EL(_ARABIC_LETTER_BEH) \ EL(_ARABIC_LETTER_TEH_MARBUTA) \ EL(_ARABIC_LETTER_TEH) \ EL(_ARABIC_LETTER_THEH) \ EL(_ARABIC_LETTER_JEEM) \ EL(_ARABIC_LETTER_HAH) \ EL(_ARABIC_LETTER_KHAH) \ EL(_ARABIC_LETTER_DAL) \ EL(_ARABIC_LETTER_THAL) \ EL(_ARABIC_LETTER_REH) \ EL(_ARABIC_LETTER_ZAIN) \ EL(_ARABIC_LETTER_SEEN) \ EL(_ARABIC_LETTER_SHEEN) \ EL(_ARABIC_LETTER_SAD) \ EL(_ARABIC_LETTER_DAD) \ EL(_MULTIPLICATION_SIGN) \ EL(_ARABIC_LETTER_TAH) \ EL(_ARABIC_LETTER_ZAH) \ EL(_ARABIC_LETTER_AIN) \ EL(_ARABIC_LETTER_GHAIN) \ EL(_ARABIC_TATWEEL) \ EL(_ARABIC_LETTER_FEH) \ EL(_ARABIC_LETTER_QAF) \ EL(_ARABIC_LETTER_KAF) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_ARABIC_LETTER_LAM) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_ARABIC_LETTER_MEEM) \ EL(_ARABIC_LETTER_NOON) \ EL(_ARABIC_LETTER_HEH) \ EL(_ARABIC_LETTER_WAW) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_ARABIC_LETTER_ALEF_MAKSURA) \ EL(_ARABIC_LETTER_YEH) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_ARABIC_FATHATAN) \ EL(_ARABIC_DAMMATAN) \ EL(_ARABIC_KASRATAN) \ EL(_ARABIC_FATHA) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_ARABIC_DAMMA) \ EL(_ARABIC_KASRA) \ EL(_DIVISION_SIGN) \ EL(_ARABIC_SHADDA) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_ARABIC_SUKUN) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_RIGHT_TO_LEFT_MARK) \ EL(_ARABIC_LETTER_YEH_BARREE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP1256(EL) \ EL(_EURO_SIGN) \ EL(_ARABIC_LETTER_PEH) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_PER_MILLE_SIGN) \ EL(_ARABIC_LETTER_TTEH) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_ARABIC_LETTER_TCHEH) \ EL(_ARABIC_LETTER_JEH) \ EL(_ARABIC_LETTER_DDAL) \ EL(_ARABIC_LETTER_GAF) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_ARABIC_LETTER_KEHEH) \ EL(_TRADE_MARK_SIGN) \ EL(_ARABIC_LETTER_RREH) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_ZERO_WIDTH_NON_JOINER) \ EL(_ZERO_WIDTH_JOINER) \ EL(_ARABIC_LETTER_NOON_GHUNNA) \ EL(_ARABIC_COMMA) \ EL(_ARABIC_LETTER_HEH_DOACHASHMEE) \ EL(_ARABIC_SEMICOLON) \ EL(_ARABIC_QUESTION_MARK) \ EL(_ARABIC_LETTER_HEH_GOAL) \ EL(_ARABIC_LETTER_HAMZA) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF) \ EL(_ARABIC_LETTER_BEH) \ EL(_ARABIC_LETTER_TEH_MARBUTA) \ EL(_ARABIC_LETTER_TEH) \ EL(_ARABIC_LETTER_THEH) \ EL(_ARABIC_LETTER_JEEM) \ EL(_ARABIC_LETTER_HAH) \ EL(_ARABIC_LETTER_KHAH) \ EL(_ARABIC_LETTER_DAL) \ EL(_ARABIC_LETTER_THAL) \ EL(_ARABIC_LETTER_REH) \ EL(_ARABIC_LETTER_ZAIN) \ EL(_ARABIC_LETTER_SEEN) \ EL(_ARABIC_LETTER_SHEEN) \ EL(_ARABIC_LETTER_SAD) \ EL(_ARABIC_LETTER_DAD) \ EL(_ARABIC_LETTER_TAH) \ EL(_ARABIC_LETTER_ZAH) \ EL(_ARABIC_LETTER_AIN) \ EL(_ARABIC_LETTER_GHAIN) \ EL(_ARABIC_TATWEEL) \ EL(_ARABIC_LETTER_FEH) \ EL(_ARABIC_LETTER_QAF) \ EL(_ARABIC_LETTER_KAF) \ EL(_ARABIC_LETTER_LAM) \ EL(_ARABIC_LETTER_MEEM) \ EL(_ARABIC_LETTER_NOON) \ EL(_ARABIC_LETTER_HEH) \ EL(_ARABIC_LETTER_WAW) \ EL(_ARABIC_LETTER_ALEF_MAKSURA) \ EL(_ARABIC_LETTER_YEH) \ EL(_ARABIC_FATHATAN) \ EL(_ARABIC_DAMMATAN) \ EL(_ARABIC_KASRATAN) \ EL(_ARABIC_FATHA) \ EL(_ARABIC_DAMMA) \ EL(_ARABIC_KASRA) \ EL(_ARABIC_SHADDA) \ EL(_ARABIC_SUKUN) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_RIGHT_TO_LEFT_MARK) \ EL(_ARABIC_LETTER_YEH_BARREE) #endif /* TUTF_CP1256_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp1257.h��������������������������������������������������������������������0000664�0000000�0000000�00000133435�13775351206�0016162�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP1257_H #define TUTF_CP1257_H #define T_CP1257_CTRL_NULL 0x0000 #define T_CP1257_CTRL_START_OF_HEADING 0x0001 #define T_CP1257_CTRL_START_OF_TEXT 0x0002 #define T_CP1257_CTRL_END_OF_TEXT 0x0003 #define T_CP1257_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP1257_CTRL_ENQUIRY 0x0005 #define T_CP1257_CTRL_ACKNOWLEDGE 0x0006 #define T_CP1257_CTRL_BELL 0x0007 #define T_CP1257_CTRL_BACKSPACE 0x0008 #define T_CP1257_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP1257_CTRL_LINE_FEED 0x000A #define T_CP1257_CTRL_LINE_TABULATION 0x000B #define T_CP1257_CTRL_FORM_FEED 0x000C #define T_CP1257_CTRL_CARRIAGE_RETURN 0x000D #define T_CP1257_CTRL_SHIFT_OUT 0x000E #define T_CP1257_CTRL_SHIFT_IN 0x000F #define T_CP1257_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP1257_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP1257_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP1257_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP1257_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP1257_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP1257_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP1257_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP1257_CTRL_CANCEL 0x0018 #define T_CP1257_CTRL_END_OF_MEDIUM 0x0019 #define T_CP1257_CTRL_SUBSTITUTE 0x001A #define T_CP1257_CTRL_ESCAPE 0x001B #define T_CP1257_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP1257_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP1257_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP1257_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP1257_SPACE 0x0020 #define T_CP1257_EXCLAMATION_MARK 0x0021 #define T_CP1257_QUOTATION_MARK 0x0022 #define T_CP1257_NUMBER_SIGN 0x0023 #define T_CP1257_DOLLAR_SIGN 0x0024 #define T_CP1257_PERCENT_SIGN 0x0025 #define T_CP1257_AMPERSAND 0x0026 #define T_CP1257_APOSTROPHE 0x0027 #define T_CP1257_LEFT_PARENTHESIS 0x0028 #define T_CP1257_RIGHT_PARENTHESIS 0x0029 #define T_CP1257_ASTERISK 0x002A #define T_CP1257_PLUS_SIGN 0x002B #define T_CP1257_COMMA 0x002C #define T_CP1257_HYPHEN_MINUS 0x002D #define T_CP1257_FULL_STOP 0x002E #define T_CP1257_SOLIDUS 0x002F #define T_CP1257_DIGIT_ZERO 0x0030 #define T_CP1257_DIGIT_ONE 0x0031 #define T_CP1257_DIGIT_TWO 0x0032 #define T_CP1257_DIGIT_THREE 0x0033 #define T_CP1257_DIGIT_FOUR 0x0034 #define T_CP1257_DIGIT_FIVE 0x0035 #define T_CP1257_DIGIT_SIX 0x0036 #define T_CP1257_DIGIT_SEVEN 0x0037 #define T_CP1257_DIGIT_EIGHT 0x0038 #define T_CP1257_DIGIT_NINE 0x0039 #define T_CP1257_COLON 0x003A #define T_CP1257_SEMICOLON 0x003B #define T_CP1257_LESS_THAN_SIGN 0x003C #define T_CP1257_EQUALS_SIGN 0x003D #define T_CP1257_GREATER_THAN_SIGN 0x003E #define T_CP1257_QUESTION_MARK 0x003F #define T_CP1257_COMMERCIAL_AT 0x0040 #define T_CP1257_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP1257_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP1257_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP1257_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP1257_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP1257_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP1257_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP1257_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP1257_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP1257_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP1257_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP1257_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP1257_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP1257_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP1257_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP1257_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP1257_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP1257_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP1257_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP1257_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP1257_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP1257_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP1257_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP1257_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP1257_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP1257_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP1257_LEFT_SQUARE_BRACKET 0x005B #define T_CP1257_REVERSE_SOLIDUS 0x005C #define T_CP1257_RIGHT_SQUARE_BRACKET 0x005D #define T_CP1257_CIRCUMFLEX_ACCENT 0x005E #define T_CP1257_LOW_LINE 0x005F #define T_CP1257_GRAVE_ACCENT 0x0060 #define T_CP1257_LATIN_SMALL_LETTER_A 0x0061 #define T_CP1257_LATIN_SMALL_LETTER_B 0x0062 #define T_CP1257_LATIN_SMALL_LETTER_C 0x0063 #define T_CP1257_LATIN_SMALL_LETTER_D 0x0064 #define T_CP1257_LATIN_SMALL_LETTER_E 0x0065 #define T_CP1257_LATIN_SMALL_LETTER_F 0x0066 #define T_CP1257_LATIN_SMALL_LETTER_G 0x0067 #define T_CP1257_LATIN_SMALL_LETTER_H 0x0068 #define T_CP1257_LATIN_SMALL_LETTER_I 0x0069 #define T_CP1257_LATIN_SMALL_LETTER_J 0x006A #define T_CP1257_LATIN_SMALL_LETTER_K 0x006B #define T_CP1257_LATIN_SMALL_LETTER_L 0x006C #define T_CP1257_LATIN_SMALL_LETTER_M 0x006D #define T_CP1257_LATIN_SMALL_LETTER_N 0x006E #define T_CP1257_LATIN_SMALL_LETTER_O 0x006F #define T_CP1257_LATIN_SMALL_LETTER_P 0x0070 #define T_CP1257_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP1257_LATIN_SMALL_LETTER_R 0x0072 #define T_CP1257_LATIN_SMALL_LETTER_S 0x0073 #define T_CP1257_LATIN_SMALL_LETTER_T 0x0074 #define T_CP1257_LATIN_SMALL_LETTER_U 0x0075 #define T_CP1257_LATIN_SMALL_LETTER_V 0x0076 #define T_CP1257_LATIN_SMALL_LETTER_W 0x0077 #define T_CP1257_LATIN_SMALL_LETTER_X 0x0078 #define T_CP1257_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP1257_LATIN_SMALL_LETTER_Z 0x007A #define T_CP1257_LEFT_CURLY_BRACKET 0x007B #define T_CP1257_VERTICAL_LINE 0x007C #define T_CP1257_RIGHT_CURLY_BRACKET 0x007D #define T_CP1257_TILDE 0x007E #define T_CP1257_CTRL_DELETE 0x007F #define T_CP1257_EURO_SIGN 0x0080 #define T_CP1257_UNDEFINED_0081 0x0081 #define T_CP1257_SINGLE_LOW_9_QUOTATION_MARK 0x0082 #define T_CP1257_UNDEFINED_0083 0x0083 #define T_CP1257_DOUBLE_LOW_9_QUOTATION_MARK 0x0084 #define T_CP1257_HORIZONTAL_ELLIPSIS 0x0085 #define T_CP1257_DAGGER 0x0086 #define T_CP1257_DOUBLE_DAGGER 0x0087 #define T_CP1257_UNDEFINED_0088 0x0088 #define T_CP1257_PER_MILLE_SIGN 0x0089 #define T_CP1257_UNDEFINED_008A 0x008A #define T_CP1257_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x008B #define T_CP1257_UNDEFINED_008C 0x008C #define T_CP1257_DIAERESIS 0x008D #define T_CP1257_CARON 0x008E #define T_CP1257_CEDILLA 0x008F #define T_CP1257_UNDEFINED_0090 0x0090 #define T_CP1257_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_CP1257_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_CP1257_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_CP1257_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_CP1257_BULLET 0x0095 #define T_CP1257_EN_DASH 0x0096 #define T_CP1257_EM_DASH 0x0097 #define T_CP1257_UNDEFINED_0098 0x0098 #define T_CP1257_TRADE_MARK_SIGN 0x0099 #define T_CP1257_UNDEFINED_009A 0x009A #define T_CP1257_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x009B #define T_CP1257_UNDEFINED_009C 0x009C #define T_CP1257_MACRON 0x009D #define T_CP1257_OGONEK 0x009E #define T_CP1257_UNDEFINED_009F 0x009F #define T_CP1257_NO_BREAK_SPACE 0x00A0 #define T_CP1257_UNDEFINED_00A1 0x00A1 #define T_CP1257_CENT_SIGN 0x00A2 #define T_CP1257_POUND_SIGN 0x00A3 #define T_CP1257_CURRENCY_SIGN 0x00A4 #define T_CP1257_UNDEFINED_00A5 0x00A5 #define T_CP1257_BROKEN_BAR 0x00A6 #define T_CP1257_SECTION_SIGN 0x00A7 #define T_CP1257_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00A8 #define T_CP1257_COPYRIGHT_SIGN 0x00A9 #define T_CP1257_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA 0x00AA #define T_CP1257_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_CP1257_NOT_SIGN 0x00AC #define T_CP1257_SOFT_HYPHEN 0x00AD #define T_CP1257_REGISTERED_SIGN 0x00AE #define T_CP1257_LATIN_CAPITAL_LETTER_AE 0x00AF #define T_CP1257_DEGREE_SIGN 0x00B0 #define T_CP1257_PLUS_MINUS_SIGN 0x00B1 #define T_CP1257_SUPERSCRIPT_TWO 0x00B2 #define T_CP1257_SUPERSCRIPT_THREE 0x00B3 #define T_CP1257_ACUTE_ACCENT 0x00B4 #define T_CP1257_MICRO_SIGN 0x00B5 #define T_CP1257_PILCROW_SIGN 0x00B6 #define T_CP1257_MIDDLE_DOT 0x00B7 #define T_CP1257_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00B8 #define T_CP1257_SUPERSCRIPT_ONE 0x00B9 #define T_CP1257_LATIN_SMALL_LETTER_R_WITH_CEDILLA 0x00BA #define T_CP1257_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_CP1257_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_CP1257_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_CP1257_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_CP1257_LATIN_SMALL_LETTER_AE 0x00BF #define T_CP1257_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x00C0 #define T_CP1257_LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0x00C1 #define T_CP1257_LATIN_CAPITAL_LETTER_A_WITH_MACRON 0x00C2 #define T_CP1257_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x00C3 #define T_CP1257_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_CP1257_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_CP1257_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00C6 #define T_CP1257_LATIN_CAPITAL_LETTER_E_WITH_MACRON 0x00C7 #define T_CP1257_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x00C8 #define T_CP1257_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_CP1257_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x00CA #define T_CP1257_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0x00CB #define T_CP1257_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x00CC #define T_CP1257_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0x00CD #define T_CP1257_LATIN_CAPITAL_LETTER_I_WITH_MACRON 0x00CE #define T_CP1257_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0x00CF #define T_CP1257_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00D0 #define T_CP1257_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x00D1 #define T_CP1257_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0x00D2 #define T_CP1257_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_CP1257_LATIN_CAPITAL_LETTER_O_WITH_MACRON 0x00D4 #define T_CP1257_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_CP1257_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_CP1257_MULTIPLICATION_SIGN 0x00D7 #define T_CP1257_LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0x00D8 #define T_CP1257_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x00D9 #define T_CP1257_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x00DA #define T_CP1257_LATIN_CAPITAL_LETTER_U_WITH_MACRON 0x00DB #define T_CP1257_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_CP1257_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x00DD #define T_CP1257_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00DE #define T_CP1257_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_CP1257_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x00E0 #define T_CP1257_LATIN_SMALL_LETTER_I_WITH_OGONEK 0x00E1 #define T_CP1257_LATIN_SMALL_LETTER_A_WITH_MACRON 0x00E2 #define T_CP1257_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x00E3 #define T_CP1257_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_CP1257_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_CP1257_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00E6 #define T_CP1257_LATIN_SMALL_LETTER_E_WITH_MACRON 0x00E7 #define T_CP1257_LATIN_SMALL_LETTER_C_WITH_CARON 0x00E8 #define T_CP1257_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_CP1257_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x00EA #define T_CP1257_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0x00EB #define T_CP1257_LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x00EC #define T_CP1257_LATIN_SMALL_LETTER_K_WITH_CEDILLA 0x00ED #define T_CP1257_LATIN_SMALL_LETTER_I_WITH_MACRON 0x00EE #define T_CP1257_LATIN_SMALL_LETTER_L_WITH_CEDILLA 0x00EF #define T_CP1257_LATIN_SMALL_LETTER_S_WITH_CARON 0x00F0 #define T_CP1257_LATIN_SMALL_LETTER_N_WITH_ACUTE 0x00F1 #define T_CP1257_LATIN_SMALL_LETTER_N_WITH_CEDILLA 0x00F2 #define T_CP1257_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_CP1257_LATIN_SMALL_LETTER_O_WITH_MACRON 0x00F4 #define T_CP1257_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_CP1257_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_CP1257_DIVISION_SIGN 0x00F7 #define T_CP1257_LATIN_SMALL_LETTER_U_WITH_OGONEK 0x00F8 #define T_CP1257_LATIN_SMALL_LETTER_L_WITH_STROKE 0x00F9 #define T_CP1257_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x00FA #define T_CP1257_LATIN_SMALL_LETTER_U_WITH_MACRON 0x00FB #define T_CP1257_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_CP1257_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x00FD #define T_CP1257_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00FE #define T_CP1257_DOT_ABOVE 0x00FF /* list of all characters */ #define T_LIST_CP1257(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_UNDEFINED_0083) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_UNDEFINED_0088) \ EL(_PER_MILLE_SIGN) \ EL(_UNDEFINED_008A) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_008C) \ EL(_DIAERESIS) \ EL(_CARON) \ EL(_CEDILLA) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_TRADE_MARK_SIGN) \ EL(_UNDEFINED_009A) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_009C) \ EL(_MACRON) \ EL(_OGONEK) \ EL(_UNDEFINED_009F) \ EL(_NO_BREAK_SPACE) \ EL(_UNDEFINED_00A1) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_UNDEFINED_00A5) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_COPYRIGHT_SIGN) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_SUPERSCRIPT_ONE) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_DOT_ABOVE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP1257(EL) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_UNDEFINED_0083) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_UNDEFINED_0088) \ EL(_PER_MILLE_SIGN) \ EL(_UNDEFINED_008A) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_008C) \ EL(_DIAERESIS) \ EL(_CARON) \ EL(_CEDILLA) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_TRADE_MARK_SIGN) \ EL(_UNDEFINED_009A) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_009C) \ EL(_MACRON) \ EL(_OGONEK) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A5) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_DOT_ABOVE) #endif /* TUTF_CP1257_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp1258.h��������������������������������������������������������������������0000664�0000000�0000000�00000123361�13775351206�0016160�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP1258_H #define TUTF_CP1258_H #define T_CP1258_CTRL_NULL 0x0000 #define T_CP1258_CTRL_START_OF_HEADING 0x0001 #define T_CP1258_CTRL_START_OF_TEXT 0x0002 #define T_CP1258_CTRL_END_OF_TEXT 0x0003 #define T_CP1258_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP1258_CTRL_ENQUIRY 0x0005 #define T_CP1258_CTRL_ACKNOWLEDGE 0x0006 #define T_CP1258_CTRL_BELL 0x0007 #define T_CP1258_CTRL_BACKSPACE 0x0008 #define T_CP1258_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP1258_CTRL_LINE_FEED 0x000A #define T_CP1258_CTRL_LINE_TABULATION 0x000B #define T_CP1258_CTRL_FORM_FEED 0x000C #define T_CP1258_CTRL_CARRIAGE_RETURN 0x000D #define T_CP1258_CTRL_SHIFT_OUT 0x000E #define T_CP1258_CTRL_SHIFT_IN 0x000F #define T_CP1258_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP1258_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP1258_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP1258_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP1258_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP1258_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP1258_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP1258_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP1258_CTRL_CANCEL 0x0018 #define T_CP1258_CTRL_END_OF_MEDIUM 0x0019 #define T_CP1258_CTRL_SUBSTITUTE 0x001A #define T_CP1258_CTRL_ESCAPE 0x001B #define T_CP1258_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP1258_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP1258_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP1258_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP1258_SPACE 0x0020 #define T_CP1258_EXCLAMATION_MARK 0x0021 #define T_CP1258_QUOTATION_MARK 0x0022 #define T_CP1258_NUMBER_SIGN 0x0023 #define T_CP1258_DOLLAR_SIGN 0x0024 #define T_CP1258_PERCENT_SIGN 0x0025 #define T_CP1258_AMPERSAND 0x0026 #define T_CP1258_APOSTROPHE 0x0027 #define T_CP1258_LEFT_PARENTHESIS 0x0028 #define T_CP1258_RIGHT_PARENTHESIS 0x0029 #define T_CP1258_ASTERISK 0x002A #define T_CP1258_PLUS_SIGN 0x002B #define T_CP1258_COMMA 0x002C #define T_CP1258_HYPHEN_MINUS 0x002D #define T_CP1258_FULL_STOP 0x002E #define T_CP1258_SOLIDUS 0x002F #define T_CP1258_DIGIT_ZERO 0x0030 #define T_CP1258_DIGIT_ONE 0x0031 #define T_CP1258_DIGIT_TWO 0x0032 #define T_CP1258_DIGIT_THREE 0x0033 #define T_CP1258_DIGIT_FOUR 0x0034 #define T_CP1258_DIGIT_FIVE 0x0035 #define T_CP1258_DIGIT_SIX 0x0036 #define T_CP1258_DIGIT_SEVEN 0x0037 #define T_CP1258_DIGIT_EIGHT 0x0038 #define T_CP1258_DIGIT_NINE 0x0039 #define T_CP1258_COLON 0x003A #define T_CP1258_SEMICOLON 0x003B #define T_CP1258_LESS_THAN_SIGN 0x003C #define T_CP1258_EQUALS_SIGN 0x003D #define T_CP1258_GREATER_THAN_SIGN 0x003E #define T_CP1258_QUESTION_MARK 0x003F #define T_CP1258_COMMERCIAL_AT 0x0040 #define T_CP1258_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP1258_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP1258_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP1258_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP1258_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP1258_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP1258_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP1258_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP1258_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP1258_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP1258_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP1258_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP1258_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP1258_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP1258_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP1258_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP1258_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP1258_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP1258_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP1258_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP1258_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP1258_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP1258_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP1258_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP1258_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP1258_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP1258_LEFT_SQUARE_BRACKET 0x005B #define T_CP1258_REVERSE_SOLIDUS 0x005C #define T_CP1258_RIGHT_SQUARE_BRACKET 0x005D #define T_CP1258_CIRCUMFLEX_ACCENT 0x005E #define T_CP1258_LOW_LINE 0x005F #define T_CP1258_GRAVE_ACCENT 0x0060 #define T_CP1258_LATIN_SMALL_LETTER_A 0x0061 #define T_CP1258_LATIN_SMALL_LETTER_B 0x0062 #define T_CP1258_LATIN_SMALL_LETTER_C 0x0063 #define T_CP1258_LATIN_SMALL_LETTER_D 0x0064 #define T_CP1258_LATIN_SMALL_LETTER_E 0x0065 #define T_CP1258_LATIN_SMALL_LETTER_F 0x0066 #define T_CP1258_LATIN_SMALL_LETTER_G 0x0067 #define T_CP1258_LATIN_SMALL_LETTER_H 0x0068 #define T_CP1258_LATIN_SMALL_LETTER_I 0x0069 #define T_CP1258_LATIN_SMALL_LETTER_J 0x006A #define T_CP1258_LATIN_SMALL_LETTER_K 0x006B #define T_CP1258_LATIN_SMALL_LETTER_L 0x006C #define T_CP1258_LATIN_SMALL_LETTER_M 0x006D #define T_CP1258_LATIN_SMALL_LETTER_N 0x006E #define T_CP1258_LATIN_SMALL_LETTER_O 0x006F #define T_CP1258_LATIN_SMALL_LETTER_P 0x0070 #define T_CP1258_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP1258_LATIN_SMALL_LETTER_R 0x0072 #define T_CP1258_LATIN_SMALL_LETTER_S 0x0073 #define T_CP1258_LATIN_SMALL_LETTER_T 0x0074 #define T_CP1258_LATIN_SMALL_LETTER_U 0x0075 #define T_CP1258_LATIN_SMALL_LETTER_V 0x0076 #define T_CP1258_LATIN_SMALL_LETTER_W 0x0077 #define T_CP1258_LATIN_SMALL_LETTER_X 0x0078 #define T_CP1258_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP1258_LATIN_SMALL_LETTER_Z 0x007A #define T_CP1258_LEFT_CURLY_BRACKET 0x007B #define T_CP1258_VERTICAL_LINE 0x007C #define T_CP1258_RIGHT_CURLY_BRACKET 0x007D #define T_CP1258_TILDE 0x007E #define T_CP1258_CTRL_DELETE 0x007F #define T_CP1258_EURO_SIGN 0x0080 #define T_CP1258_UNDEFINED_0081 0x0081 #define T_CP1258_SINGLE_LOW_9_QUOTATION_MARK 0x0082 #define T_CP1258_LATIN_SMALL_LETTER_F_WITH_HOOK 0x0083 #define T_CP1258_DOUBLE_LOW_9_QUOTATION_MARK 0x0084 #define T_CP1258_HORIZONTAL_ELLIPSIS 0x0085 #define T_CP1258_DAGGER 0x0086 #define T_CP1258_DOUBLE_DAGGER 0x0087 #define T_CP1258_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x0088 #define T_CP1258_PER_MILLE_SIGN 0x0089 #define T_CP1258_UNDEFINED_008A 0x008A #define T_CP1258_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x008B #define T_CP1258_LATIN_CAPITAL_LIGATURE_OE 0x008C #define T_CP1258_UNDEFINED_008D 0x008D #define T_CP1258_UNDEFINED_008E 0x008E #define T_CP1258_UNDEFINED_008F 0x008F #define T_CP1258_UNDEFINED_0090 0x0090 #define T_CP1258_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_CP1258_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_CP1258_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_CP1258_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_CP1258_BULLET 0x0095 #define T_CP1258_EN_DASH 0x0096 #define T_CP1258_EM_DASH 0x0097 #define T_CP1258_SMALL_TILDE 0x0098 #define T_CP1258_TRADE_MARK_SIGN 0x0099 #define T_CP1258_UNDEFINED_009A 0x009A #define T_CP1258_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x009B #define T_CP1258_LATIN_SMALL_LIGATURE_OE 0x009C #define T_CP1258_UNDEFINED_009D 0x009D #define T_CP1258_UNDEFINED_009E 0x009E #define T_CP1258_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x009F #define T_CP1258_NO_BREAK_SPACE 0x00A0 #define T_CP1258_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_CP1258_CENT_SIGN 0x00A2 #define T_CP1258_POUND_SIGN 0x00A3 #define T_CP1258_CURRENCY_SIGN 0x00A4 #define T_CP1258_YEN_SIGN 0x00A5 #define T_CP1258_BROKEN_BAR 0x00A6 #define T_CP1258_SECTION_SIGN 0x00A7 #define T_CP1258_DIAERESIS 0x00A8 #define T_CP1258_COPYRIGHT_SIGN 0x00A9 #define T_CP1258_FEMININE_ORDINAL_INDICATOR 0x00AA #define T_CP1258_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_CP1258_NOT_SIGN 0x00AC #define T_CP1258_SOFT_HYPHEN 0x00AD #define T_CP1258_REGISTERED_SIGN 0x00AE #define T_CP1258_MACRON 0x00AF #define T_CP1258_DEGREE_SIGN 0x00B0 #define T_CP1258_PLUS_MINUS_SIGN 0x00B1 #define T_CP1258_SUPERSCRIPT_TWO 0x00B2 #define T_CP1258_SUPERSCRIPT_THREE 0x00B3 #define T_CP1258_ACUTE_ACCENT 0x00B4 #define T_CP1258_MICRO_SIGN 0x00B5 #define T_CP1258_PILCROW_SIGN 0x00B6 #define T_CP1258_MIDDLE_DOT 0x00B7 #define T_CP1258_CEDILLA 0x00B8 #define T_CP1258_SUPERSCRIPT_ONE 0x00B9 #define T_CP1258_MASCULINE_ORDINAL_INDICATOR 0x00BA #define T_CP1258_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_CP1258_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_CP1258_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_CP1258_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_CP1258_INVERTED_QUESTION_MARK 0x00BF #define T_CP1258_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_CP1258_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_CP1258_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_CP1258_LATIN_CAPITAL_LETTER_A_WITH_BREVE 0x00C3 #define T_CP1258_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_CP1258_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_CP1258_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_CP1258_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_CP1258_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_CP1258_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_CP1258_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_CP1258_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_CP1258_COMBINING_GRAVE_ACCENT 0x00CC #define T_CP1258_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_CP1258_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_CP1258_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_CP1258_LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x00D0 #define T_CP1258_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 #define T_CP1258_COMBINING_HOOK_ABOVE 0x00D2 #define T_CP1258_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_CP1258_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_CP1258_LATIN_CAPITAL_LETTER_O_WITH_HORN 0x00D5 #define T_CP1258_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_CP1258_MULTIPLICATION_SIGN 0x00D7 #define T_CP1258_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_CP1258_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_CP1258_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_CP1258_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_CP1258_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_CP1258_LATIN_CAPITAL_LETTER_U_WITH_HORN 0x00DD #define T_CP1258_COMBINING_TILDE 0x00DE #define T_CP1258_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_CP1258_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_CP1258_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_CP1258_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_CP1258_LATIN_SMALL_LETTER_A_WITH_BREVE 0x00E3 #define T_CP1258_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_CP1258_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_CP1258_LATIN_SMALL_LETTER_AE 0x00E6 #define T_CP1258_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_CP1258_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_CP1258_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_CP1258_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_CP1258_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_CP1258_COMBINING_ACUTE_ACCENT 0x00EC #define T_CP1258_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_CP1258_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_CP1258_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_CP1258_LATIN_SMALL_LETTER_D_WITH_STROKE 0x00F0 #define T_CP1258_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 #define T_CP1258_COMBINING_DOT_BELOW 0x00F2 #define T_CP1258_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_CP1258_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_CP1258_LATIN_SMALL_LETTER_O_WITH_HORN 0x00F5 #define T_CP1258_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_CP1258_DIVISION_SIGN 0x00F7 #define T_CP1258_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_CP1258_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_CP1258_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_CP1258_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_CP1258_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_CP1258_LATIN_SMALL_LETTER_U_WITH_HORN 0x00FD #define T_CP1258_DONG_SIGN 0x00FE #define T_CP1258_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF /* list of all characters */ #define T_LIST_CP1258(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_PER_MILLE_SIGN) \ EL(_UNDEFINED_008A) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_SMALL_TILDE) \ EL(_TRADE_MARK_SIGN) \ EL(_UNDEFINED_009A) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_NO_BREAK_SPACE) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_YEN_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_MACRON) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_ONE) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_INVERTED_QUESTION_MARK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_COMBINING_GRAVE_ACCENT) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_COMBINING_HOOK_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_HORN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_HORN) \ EL(_COMBINING_TILDE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_COMBINING_ACUTE_ACCENT) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_COMBINING_DOT_BELOW) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_HORN) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_U_WITH_HORN) \ EL(_DONG_SIGN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP1258(EL) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_PER_MILLE_SIGN) \ EL(_UNDEFINED_008A) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_SMALL_TILDE) \ EL(_TRADE_MARK_SIGN) \ EL(_UNDEFINED_009A) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_COMBINING_GRAVE_ACCENT) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_COMBINING_HOOK_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_HORN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_HORN) \ EL(_COMBINING_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_COMBINING_ACUTE_ACCENT) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_COMBINING_DOT_BELOW) \ EL(_LATIN_SMALL_LETTER_O_WITH_HORN) \ EL(_LATIN_SMALL_LETTER_U_WITH_HORN) \ EL(_DONG_SIGN) #endif /* TUTF_CP1258_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp424.h���������������������������������������������������������������������0000664�0000000�0000000�00000166556�13775351206�0016107�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP424_H #define TUTF_CP424_H #define T_CP424_CTRL_NULL 0x0000 #define T_CP424_CTRL_START_OF_HEADING 0x0001 #define T_CP424_CTRL_START_OF_TEXT 0x0002 #define T_CP424_CTRL_END_OF_TEXT 0x0003 #define T_CP424_CTRL_STRING_TERMINATOR 0x0004 #define T_CP424_CTRL_CHARACTER_TABULATION 0x0005 #define T_CP424_CTRL_START_OF_SELECTED_AREA 0x0006 #define T_CP424_CTRL_DELETE 0x0007 #define T_CP424_CTRL_END_OF_GUARDED_AREA 0x0008 #define T_CP424_CTRL_REVERSE_LINE_FEED 0x0009 #define T_CP424_CTRL_SINGLE_SHIFT_TWO 0x000A #define T_CP424_CTRL_LINE_TABULATION 0x000B #define T_CP424_CTRL_FORM_FEED 0x000C #define T_CP424_CTRL_CARRIAGE_RETURN 0x000D #define T_CP424_CTRL_SHIFT_OUT 0x000E #define T_CP424_CTRL_SHIFT_IN 0x000F #define T_CP424_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP424_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP424_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP424_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP424_CTRL_OPERATING_SYSTEM_COMMAND 0x0014 #define T_CP424_CTRL_NEXT_LINE 0x0015 #define T_CP424_CTRL_BACKSPACE 0x0016 #define T_CP424_CTRL_END_OF_SELECTED_AREA 0x0017 #define T_CP424_CTRL_CANCEL 0x0018 #define T_CP424_CTRL_END_OF_MEDIUM 0x0019 #define T_CP424_CTRL_PRIVATE_USE_TWO 0x001A #define T_CP424_CTRL_SINGLE_SHIFT_THREE 0x001B #define T_CP424_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP424_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP424_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP424_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP424_UNDEFINED_0020 0x0020 #define T_CP424_UNDEFINED_0021 0x0021 #define T_CP424_CTRL_BREAK_PERMITTED_HERE 0x0022 #define T_CP424_CTRL_NO_BREAK_HERE 0x0023 #define T_CP424_UNDEFINED_0024 0x0024 #define T_CP424_CTRL_LINE_FEED 0x0025 #define T_CP424_CTRL_END_OF_TRANSMISSION_BLOCK 0x0026 #define T_CP424_CTRL_ESCAPE 0x0027 #define T_CP424_CTRL_CHARACTER_TABULATION_SET 0x0028 #define T_CP424_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0029 #define T_CP424_CTRL_LINE_TABULATION_SET 0x002A #define T_CP424_CTRL_PARTIAL_LINE_FORWARD 0x002B #define T_CP424_CTRL_PARTIAL_LINE_BACKWARD 0x002C #define T_CP424_CTRL_ENQUIRY 0x002D #define T_CP424_CTRL_ACKNOWLEDGE 0x002E #define T_CP424_CTRL_BELL 0x002F #define T_CP424_CTRL_DEVICE_CONTROL_STRING 0x0030 #define T_CP424_CTRL_PRIVATE_USE_ONE 0x0031 #define T_CP424_CTRL_SYNCHRONOUS_IDLE 0x0032 #define T_CP424_CTRL_SET_TRANSMIT_STATE 0x0033 #define T_CP424_CTRL_CANCEL_CHARACTER 0x0034 #define T_CP424_CTRL_MESSAGE_WAITING 0x0035 #define T_CP424_CTRL_START_OF_GUARDED_AREA 0x0036 #define T_CP424_CTRL_END_OF_TRANSMISSION 0x0037 #define T_CP424_CTRL_START_OF_STRING 0x0038 #define T_CP424_UNDEFINED_0039 0x0039 #define T_CP424_CTRL_SINGLE_CHARACTER_INTRODUCER 0x003A #define T_CP424_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x003B #define T_CP424_CTRL_DEVICE_CONTROL_FOUR 0x003C #define T_CP424_CTRL_NEGATIVE_ACKNOWLEDGE 0x003D #define T_CP424_CTRL_PRIVACY_MESSAGE 0x003E #define T_CP424_CTRL_SUBSTITUTE 0x003F #define T_CP424_SPACE 0x0040 #define T_CP424_HEBREW_LETTER_ALEF 0x0041 #define T_CP424_HEBREW_LETTER_BET 0x0042 #define T_CP424_HEBREW_LETTER_GIMEL 0x0043 #define T_CP424_HEBREW_LETTER_DALET 0x0044 #define T_CP424_HEBREW_LETTER_HE 0x0045 #define T_CP424_HEBREW_LETTER_VAV 0x0046 #define T_CP424_HEBREW_LETTER_ZAYIN 0x0047 #define T_CP424_HEBREW_LETTER_HET 0x0048 #define T_CP424_HEBREW_LETTER_TET 0x0049 #define T_CP424_CENT_SIGN 0x004A #define T_CP424_FULL_STOP 0x004B #define T_CP424_LESS_THAN_SIGN 0x004C #define T_CP424_LEFT_PARENTHESIS 0x004D #define T_CP424_PLUS_SIGN 0x004E #define T_CP424_VERTICAL_LINE 0x004F #define T_CP424_AMPERSAND 0x0050 #define T_CP424_HEBREW_LETTER_YOD 0x0051 #define T_CP424_HEBREW_LETTER_FINAL_KAF 0x0052 #define T_CP424_HEBREW_LETTER_KAF 0x0053 #define T_CP424_HEBREW_LETTER_LAMED 0x0054 #define T_CP424_HEBREW_LETTER_FINAL_MEM 0x0055 #define T_CP424_HEBREW_LETTER_MEM 0x0056 #define T_CP424_HEBREW_LETTER_FINAL_NUN 0x0057 #define T_CP424_HEBREW_LETTER_NUN 0x0058 #define T_CP424_HEBREW_LETTER_SAMEKH 0x0059 #define T_CP424_EXCLAMATION_MARK 0x005A #define T_CP424_DOLLAR_SIGN 0x005B #define T_CP424_ASTERISK 0x005C #define T_CP424_RIGHT_PARENTHESIS 0x005D #define T_CP424_SEMICOLON 0x005E #define T_CP424_NOT_SIGN 0x005F #define T_CP424_HYPHEN_MINUS 0x0060 #define T_CP424_SOLIDUS 0x0061 #define T_CP424_HEBREW_LETTER_AYIN 0x0062 #define T_CP424_HEBREW_LETTER_FINAL_PE 0x0063 #define T_CP424_HEBREW_LETTER_PE 0x0064 #define T_CP424_HEBREW_LETTER_FINAL_TSADI 0x0065 #define T_CP424_HEBREW_LETTER_TSADI 0x0066 #define T_CP424_HEBREW_LETTER_QOF 0x0067 #define T_CP424_HEBREW_LETTER_RESH 0x0068 #define T_CP424_HEBREW_LETTER_SHIN 0x0069 #define T_CP424_BROKEN_BAR 0x006A #define T_CP424_COMMA 0x006B #define T_CP424_PERCENT_SIGN 0x006C #define T_CP424_LOW_LINE 0x006D #define T_CP424_GREATER_THAN_SIGN 0x006E #define T_CP424_QUESTION_MARK 0x006F #define T_CP424_UNDEFINED_0070 0x0070 #define T_CP424_HEBREW_LETTER_TAV 0x0071 #define T_CP424_UNDEFINED_0072 0x0072 #define T_CP424_UNDEFINED_0073 0x0073 #define T_CP424_NO_BREAK_SPACE 0x0074 #define T_CP424_UNDEFINED_0075 0x0075 #define T_CP424_UNDEFINED_0076 0x0076 #define T_CP424_UNDEFINED_0077 0x0077 #define T_CP424_DOUBLE_LOW_LINE 0x0078 #define T_CP424_GRAVE_ACCENT 0x0079 #define T_CP424_COLON 0x007A #define T_CP424_NUMBER_SIGN 0x007B #define T_CP424_COMMERCIAL_AT 0x007C #define T_CP424_APOSTROPHE 0x007D #define T_CP424_EQUALS_SIGN 0x007E #define T_CP424_QUOTATION_MARK 0x007F #define T_CP424_UNDEFINED_0080 0x0080 #define T_CP424_LATIN_SMALL_LETTER_A 0x0081 #define T_CP424_LATIN_SMALL_LETTER_B 0x0082 #define T_CP424_LATIN_SMALL_LETTER_C 0x0083 #define T_CP424_LATIN_SMALL_LETTER_D 0x0084 #define T_CP424_LATIN_SMALL_LETTER_E 0x0085 #define T_CP424_LATIN_SMALL_LETTER_F 0x0086 #define T_CP424_LATIN_SMALL_LETTER_G 0x0087 #define T_CP424_LATIN_SMALL_LETTER_H 0x0088 #define T_CP424_LATIN_SMALL_LETTER_I 0x0089 #define T_CP424_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x008A #define T_CP424_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x008B #define T_CP424_UNDEFINED_008C 0x008C #define T_CP424_UNDEFINED_008D 0x008D #define T_CP424_UNDEFINED_008E 0x008E #define T_CP424_PLUS_MINUS_SIGN 0x008F #define T_CP424_DEGREE_SIGN 0x0090 #define T_CP424_LATIN_SMALL_LETTER_J 0x0091 #define T_CP424_LATIN_SMALL_LETTER_K 0x0092 #define T_CP424_LATIN_SMALL_LETTER_L 0x0093 #define T_CP424_LATIN_SMALL_LETTER_M 0x0094 #define T_CP424_LATIN_SMALL_LETTER_N 0x0095 #define T_CP424_LATIN_SMALL_LETTER_O 0x0096 #define T_CP424_LATIN_SMALL_LETTER_P 0x0097 #define T_CP424_LATIN_SMALL_LETTER_Q 0x0098 #define T_CP424_LATIN_SMALL_LETTER_R 0x0099 #define T_CP424_UNDEFINED_009A 0x009A #define T_CP424_UNDEFINED_009B 0x009B #define T_CP424_UNDEFINED_009C 0x009C #define T_CP424_CEDILLA 0x009D #define T_CP424_UNDEFINED_009E 0x009E #define T_CP424_CURRENCY_SIGN 0x009F #define T_CP424_MICRO_SIGN 0x00A0 #define T_CP424_TILDE 0x00A1 #define T_CP424_LATIN_SMALL_LETTER_S 0x00A2 #define T_CP424_LATIN_SMALL_LETTER_T 0x00A3 #define T_CP424_LATIN_SMALL_LETTER_U 0x00A4 #define T_CP424_LATIN_SMALL_LETTER_V 0x00A5 #define T_CP424_LATIN_SMALL_LETTER_W 0x00A6 #define T_CP424_LATIN_SMALL_LETTER_X 0x00A7 #define T_CP424_LATIN_SMALL_LETTER_Y 0x00A8 #define T_CP424_LATIN_SMALL_LETTER_Z 0x00A9 #define T_CP424_UNDEFINED_00AA 0x00AA #define T_CP424_UNDEFINED_00AB 0x00AB #define T_CP424_UNDEFINED_00AC 0x00AC #define T_CP424_UNDEFINED_00AD 0x00AD #define T_CP424_UNDEFINED_00AE 0x00AE #define T_CP424_REGISTERED_SIGN 0x00AF #define T_CP424_CIRCUMFLEX_ACCENT 0x00B0 #define T_CP424_POUND_SIGN 0x00B1 #define T_CP424_YEN_SIGN 0x00B2 #define T_CP424_MIDDLE_DOT 0x00B3 #define T_CP424_COPYRIGHT_SIGN 0x00B4 #define T_CP424_SECTION_SIGN 0x00B5 #define T_CP424_PILCROW_SIGN 0x00B6 #define T_CP424_VULGAR_FRACTION_ONE_QUARTER 0x00B7 #define T_CP424_VULGAR_FRACTION_ONE_HALF 0x00B8 #define T_CP424_VULGAR_FRACTION_THREE_QUARTERS 0x00B9 #define T_CP424_LEFT_SQUARE_BRACKET 0x00BA #define T_CP424_RIGHT_SQUARE_BRACKET 0x00BB #define T_CP424_MACRON 0x00BC #define T_CP424_DIAERESIS 0x00BD #define T_CP424_ACUTE_ACCENT 0x00BE #define T_CP424_MULTIPLICATION_SIGN 0x00BF #define T_CP424_LEFT_CURLY_BRACKET 0x00C0 #define T_CP424_LATIN_CAPITAL_LETTER_A 0x00C1 #define T_CP424_LATIN_CAPITAL_LETTER_B 0x00C2 #define T_CP424_LATIN_CAPITAL_LETTER_C 0x00C3 #define T_CP424_LATIN_CAPITAL_LETTER_D 0x00C4 #define T_CP424_LATIN_CAPITAL_LETTER_E 0x00C5 #define T_CP424_LATIN_CAPITAL_LETTER_F 0x00C6 #define T_CP424_LATIN_CAPITAL_LETTER_G 0x00C7 #define T_CP424_LATIN_CAPITAL_LETTER_H 0x00C8 #define T_CP424_LATIN_CAPITAL_LETTER_I 0x00C9 #define T_CP424_SOFT_HYPHEN 0x00CA #define T_CP424_UNDEFINED_00CB 0x00CB #define T_CP424_UNDEFINED_00CC 0x00CC #define T_CP424_UNDEFINED_00CD 0x00CD #define T_CP424_UNDEFINED_00CE 0x00CE #define T_CP424_UNDEFINED_00CF 0x00CF #define T_CP424_RIGHT_CURLY_BRACKET 0x00D0 #define T_CP424_LATIN_CAPITAL_LETTER_J 0x00D1 #define T_CP424_LATIN_CAPITAL_LETTER_K 0x00D2 #define T_CP424_LATIN_CAPITAL_LETTER_L 0x00D3 #define T_CP424_LATIN_CAPITAL_LETTER_M 0x00D4 #define T_CP424_LATIN_CAPITAL_LETTER_N 0x00D5 #define T_CP424_LATIN_CAPITAL_LETTER_O 0x00D6 #define T_CP424_LATIN_CAPITAL_LETTER_P 0x00D7 #define T_CP424_LATIN_CAPITAL_LETTER_Q 0x00D8 #define T_CP424_LATIN_CAPITAL_LETTER_R 0x00D9 #define T_CP424_SUPERSCRIPT_ONE 0x00DA #define T_CP424_UNDEFINED_00DB 0x00DB #define T_CP424_UNDEFINED_00DC 0x00DC #define T_CP424_UNDEFINED_00DD 0x00DD #define T_CP424_UNDEFINED_00DE 0x00DE #define T_CP424_UNDEFINED_00DF 0x00DF #define T_CP424_REVERSE_SOLIDUS 0x00E0 #define T_CP424_DIVISION_SIGN 0x00E1 #define T_CP424_LATIN_CAPITAL_LETTER_S 0x00E2 #define T_CP424_LATIN_CAPITAL_LETTER_T 0x00E3 #define T_CP424_LATIN_CAPITAL_LETTER_U 0x00E4 #define T_CP424_LATIN_CAPITAL_LETTER_V 0x00E5 #define T_CP424_LATIN_CAPITAL_LETTER_W 0x00E6 #define T_CP424_LATIN_CAPITAL_LETTER_X 0x00E7 #define T_CP424_LATIN_CAPITAL_LETTER_Y 0x00E8 #define T_CP424_LATIN_CAPITAL_LETTER_Z 0x00E9 #define T_CP424_SUPERSCRIPT_TWO 0x00EA #define T_CP424_UNDEFINED_00EB 0x00EB #define T_CP424_UNDEFINED_00EC 0x00EC #define T_CP424_UNDEFINED_00ED 0x00ED #define T_CP424_UNDEFINED_00EE 0x00EE #define T_CP424_UNDEFINED_00EF 0x00EF #define T_CP424_DIGIT_ZERO 0x00F0 #define T_CP424_DIGIT_ONE 0x00F1 #define T_CP424_DIGIT_TWO 0x00F2 #define T_CP424_DIGIT_THREE 0x00F3 #define T_CP424_DIGIT_FOUR 0x00F4 #define T_CP424_DIGIT_FIVE 0x00F5 #define T_CP424_DIGIT_SIX 0x00F6 #define T_CP424_DIGIT_SEVEN 0x00F7 #define T_CP424_DIGIT_EIGHT 0x00F8 #define T_CP424_DIGIT_NINE 0x00F9 #define T_CP424_SUPERSCRIPT_THREE 0x00FA #define T_CP424_UNDEFINED_00FB 0x00FB #define T_CP424_UNDEFINED_00FC 0x00FC #define T_CP424_UNDEFINED_00FD 0x00FD #define T_CP424_UNDEFINED_00FE 0x00FE #define T_CP424_CTRL_APPLICATION_PROGRAM_COMMAND 0x00FF /* list of all characters */ #define T_LIST_CP424(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_DELETE) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_UNDEFINED_0020) \ EL(_UNDEFINED_0021) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0024) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0039) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_SUBSTITUTE) \ EL(_SPACE) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_CENT_SIGN) \ EL(_FULL_STOP) \ EL(_LESS_THAN_SIGN) \ EL(_LEFT_PARENTHESIS) \ EL(_PLUS_SIGN) \ EL(_VERTICAL_LINE) \ EL(_AMPERSAND) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_EXCLAMATION_MARK) \ EL(_DOLLAR_SIGN) \ EL(_ASTERISK) \ EL(_RIGHT_PARENTHESIS) \ EL(_SEMICOLON) \ EL(_NOT_SIGN) \ EL(_HYPHEN_MINUS) \ EL(_SOLIDUS) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_BROKEN_BAR) \ EL(_COMMA) \ EL(_PERCENT_SIGN) \ EL(_LOW_LINE) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_UNDEFINED_0070) \ EL(_HEBREW_LETTER_TAV) \ EL(_UNDEFINED_0072) \ EL(_UNDEFINED_0073) \ EL(_NO_BREAK_SPACE) \ EL(_UNDEFINED_0075) \ EL(_UNDEFINED_0076) \ EL(_UNDEFINED_0077) \ EL(_DOUBLE_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_COLON) \ EL(_NUMBER_SIGN) \ EL(_COMMERCIAL_AT) \ EL(_APOSTROPHE) \ EL(_EQUALS_SIGN) \ EL(_QUOTATION_MARK) \ EL(_UNDEFINED_0080) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_PLUS_MINUS_SIGN) \ EL(_DEGREE_SIGN) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_CEDILLA) \ EL(_UNDEFINED_009E) \ EL(_CURRENCY_SIGN) \ EL(_MICRO_SIGN) \ EL(_TILDE) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_REGISTERED_SIGN) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_POUND_SIGN) \ EL(_YEN_SIGN) \ EL(_MIDDLE_DOT) \ EL(_COPYRIGHT_SIGN) \ EL(_SECTION_SIGN) \ EL(_PILCROW_SIGN) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_MACRON) \ EL(_DIAERESIS) \ EL(_ACUTE_ACCENT) \ EL(_MULTIPLICATION_SIGN) \ EL(_LEFT_CURLY_BRACKET) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_SOFT_HYPHEN) \ EL(_UNDEFINED_00CB) \ EL(_UNDEFINED_00CC) \ EL(_UNDEFINED_00CD) \ EL(_UNDEFINED_00CE) \ EL(_UNDEFINED_00CF) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_SUPERSCRIPT_ONE) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_REVERSE_SOLIDUS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_SUPERSCRIPT_TWO) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_SUPERSCRIPT_THREE) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP424(EL) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_DELETE) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_UNDEFINED_0020) \ EL(_UNDEFINED_0021) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0024) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0039) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_SUBSTITUTE) \ EL(_SPACE) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_CENT_SIGN) \ EL(_FULL_STOP) \ EL(_LESS_THAN_SIGN) \ EL(_LEFT_PARENTHESIS) \ EL(_PLUS_SIGN) \ EL(_VERTICAL_LINE) \ EL(_AMPERSAND) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_EXCLAMATION_MARK) \ EL(_DOLLAR_SIGN) \ EL(_ASTERISK) \ EL(_RIGHT_PARENTHESIS) \ EL(_SEMICOLON) \ EL(_NOT_SIGN) \ EL(_HYPHEN_MINUS) \ EL(_SOLIDUS) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_BROKEN_BAR) \ EL(_COMMA) \ EL(_PERCENT_SIGN) \ EL(_LOW_LINE) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_UNDEFINED_0070) \ EL(_HEBREW_LETTER_TAV) \ EL(_UNDEFINED_0072) \ EL(_UNDEFINED_0073) \ EL(_NO_BREAK_SPACE) \ EL(_UNDEFINED_0075) \ EL(_UNDEFINED_0076) \ EL(_UNDEFINED_0077) \ EL(_DOUBLE_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_COLON) \ EL(_NUMBER_SIGN) \ EL(_COMMERCIAL_AT) \ EL(_APOSTROPHE) \ EL(_EQUALS_SIGN) \ EL(_QUOTATION_MARK) \ EL(_UNDEFINED_0080) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_PLUS_MINUS_SIGN) \ EL(_DEGREE_SIGN) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_CEDILLA) \ EL(_UNDEFINED_009E) \ EL(_CURRENCY_SIGN) \ EL(_MICRO_SIGN) \ EL(_TILDE) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_REGISTERED_SIGN) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_POUND_SIGN) \ EL(_YEN_SIGN) \ EL(_MIDDLE_DOT) \ EL(_COPYRIGHT_SIGN) \ EL(_SECTION_SIGN) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_MACRON) \ EL(_DIAERESIS) \ EL(_ACUTE_ACCENT) \ EL(_MULTIPLICATION_SIGN) \ EL(_LEFT_CURLY_BRACKET) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_SOFT_HYPHEN) \ EL(_UNDEFINED_00CB) \ EL(_UNDEFINED_00CC) \ EL(_UNDEFINED_00CD) \ EL(_UNDEFINED_00CE) \ EL(_UNDEFINED_00CF) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_SUPERSCRIPT_ONE) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_REVERSE_SOLIDUS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_SUPERSCRIPT_TWO) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_SUPERSCRIPT_THREE) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) #endif /* TUTF_CP424_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp437.h���������������������������������������������������������������������0000664�0000000�0000000�00000151723�13775351206�0016101�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * ibm437.h -- include for ibm437 (codepage 437) characters database */ #ifndef TUTF_CP437_H #define TUTF_CP437_H #define T_CP437_CTRL_NULL 0x0000 #define T_CP437_WHITE_SMILING_FACE 0x0001 #define T_CP437_BLACK_SMILING_FACE 0x0002 #define T_CP437_BLACK_HEART_SUIT 0x0003 #define T_CP437_BLACK_DIAMOND_SUIT 0x0004 #define T_CP437_BLACK_CLUB_SUIT 0x0005 #define T_CP437_BLACK_SPADE_SUIT 0x0006 #define T_CP437_BULLET 0x0007 #define T_CP437_INVERSE_BULLET 0x0008 #define T_CP437_WHITE_CIRCLE 0x0009 #define T_CP437_INVERSE_WHITE_CIRCLE 0x000A #define T_CP437_MALE_SIGN 0x000B #define T_CP437_FEMALE_SIGN 0x000C #define T_CP437_EIGHTH_NOTE 0x000D #define T_CP437_BEAMED_EIGHTH_NOTES 0x000E #define T_CP437_WHITE_SUN_WITH_RAYS 0x000F #define T_CP437_BLACK_RIGHT_POINTING_TRIANGLE 0x0010 #define T_CP437_BLACK_LEFT_POINTING_TRIANGLE 0x0011 #define T_CP437_UP_DOWN_ARROW 0x0012 #define T_CP437_DOUBLE_EXCLAMATION_MARK 0x0013 #define T_CP437_PILCROW_SIGN 0x0014 #define T_CP437_SECTION_SIGN 0x0015 #define T_CP437_BLACK_RECTANGLE 0x0016 #define T_CP437_UP_DOWN_ARROW_WITH_BASE 0x0017 #define T_CP437_UPWARDS_ARROW 0x0018 #define T_CP437_DOWNWARDS_ARROW 0x0019 #define T_CP437_RIGHTWARDS_ARROW 0x001A #define T_CP437_LEFTWARDS_ARROW 0x001B #define T_CP437_RIGHT_ANGLE 0x001C #define T_CP437_LEFT_RIGHT_ARROW 0x001D #define T_CP437_BLACK_UP_POINTING_TRIANGLE 0x001E #define T_CP437_BLACK_DOWN_POINTING_TRIANGLE 0x001F #define T_CP437_SPACE 0x0020 #define T_CP437_EXCLAMATION_MARK 0x0021 #define T_CP437_QUOTATION_MARK 0x0022 #define T_CP437_NUMBER_SIGN 0x0023 #define T_CP437_DOLLAR_SIGN 0x0024 #define T_CP437_PERCENT_SIGN 0x0025 #define T_CP437_AMPERSAND 0x0026 #define T_CP437_APOSTROPHE 0x0027 #define T_CP437_LEFT_PARENTHESIS 0x0028 #define T_CP437_RIGHT_PARENTHESIS 0x0029 #define T_CP437_ASTERISK 0x002A #define T_CP437_PLUS_SIGN 0x002B #define T_CP437_COMMA 0x002C #define T_CP437_HYPHEN_MINUS 0x002D #define T_CP437_FULL_STOP 0x002E #define T_CP437_SOLIDUS 0x002F #define T_CP437_DIGIT_ZERO 0x0030 #define T_CP437_DIGIT_ONE 0x0031 #define T_CP437_DIGIT_TWO 0x0032 #define T_CP437_DIGIT_THREE 0x0033 #define T_CP437_DIGIT_FOUR 0x0034 #define T_CP437_DIGIT_FIVE 0x0035 #define T_CP437_DIGIT_SIX 0x0036 #define T_CP437_DIGIT_SEVEN 0x0037 #define T_CP437_DIGIT_EIGHT 0x0038 #define T_CP437_DIGIT_NINE 0x0039 #define T_CP437_COLON 0x003A #define T_CP437_SEMICOLON 0x003B #define T_CP437_LESS_THAN_SIGN 0x003C #define T_CP437_EQUALS_SIGN 0x003D #define T_CP437_GREATER_THAN_SIGN 0x003E #define T_CP437_QUESTION_MARK 0x003F #define T_CP437_COMMERCIAL_AT 0x0040 #define T_CP437_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP437_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP437_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP437_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP437_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP437_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP437_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP437_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP437_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP437_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP437_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP437_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP437_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP437_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP437_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP437_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP437_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP437_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP437_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP437_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP437_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP437_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP437_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP437_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP437_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP437_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP437_LEFT_SQUARE_BRACKET 0x005B #define T_CP437_REVERSE_SOLIDUS 0x005C #define T_CP437_RIGHT_SQUARE_BRACKET 0x005D #define T_CP437_CIRCUMFLEX_ACCENT 0x005E #define T_CP437_LOW_LINE 0x005F #define T_CP437_GRAVE_ACCENT 0x0060 #define T_CP437_LATIN_SMALL_LETTER_A 0x0061 #define T_CP437_LATIN_SMALL_LETTER_B 0x0062 #define T_CP437_LATIN_SMALL_LETTER_C 0x0063 #define T_CP437_LATIN_SMALL_LETTER_D 0x0064 #define T_CP437_LATIN_SMALL_LETTER_E 0x0065 #define T_CP437_LATIN_SMALL_LETTER_F 0x0066 #define T_CP437_LATIN_SMALL_LETTER_G 0x0067 #define T_CP437_LATIN_SMALL_LETTER_H 0x0068 #define T_CP437_LATIN_SMALL_LETTER_I 0x0069 #define T_CP437_LATIN_SMALL_LETTER_J 0x006A #define T_CP437_LATIN_SMALL_LETTER_K 0x006B #define T_CP437_LATIN_SMALL_LETTER_L 0x006C #define T_CP437_LATIN_SMALL_LETTER_M 0x006D #define T_CP437_LATIN_SMALL_LETTER_N 0x006E #define T_CP437_LATIN_SMALL_LETTER_O 0x006F #define T_CP437_LATIN_SMALL_LETTER_P 0x0070 #define T_CP437_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP437_LATIN_SMALL_LETTER_R 0x0072 #define T_CP437_LATIN_SMALL_LETTER_S 0x0073 #define T_CP437_LATIN_SMALL_LETTER_T 0x0074 #define T_CP437_LATIN_SMALL_LETTER_U 0x0075 #define T_CP437_LATIN_SMALL_LETTER_V 0x0076 #define T_CP437_LATIN_SMALL_LETTER_W 0x0077 #define T_CP437_LATIN_SMALL_LETTER_X 0x0078 #define T_CP437_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP437_LATIN_SMALL_LETTER_Z 0x007A #define T_CP437_LEFT_CURLY_BRACKET 0x007B #define T_CP437_VERTICAL_LINE 0x007C #define T_CP437_RIGHT_CURLY_BRACKET 0x007D #define T_CP437_TILDE 0x007E #define T_CP437_HOUSE 0x007F #define T_CP437_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0080 #define T_CP437_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x0081 #define T_CP437_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x0082 #define T_CP437_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0083 #define T_CP437_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x0084 #define T_CP437_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0085 #define T_CP437_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x0086 #define T_CP437_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x0087 #define T_CP437_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0088 #define T_CP437_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0089 #define T_CP437_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008A #define T_CP437_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x008B #define T_CP437_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x008C #define T_CP437_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x008D #define T_CP437_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x008E #define T_CP437_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x008F #define T_CP437_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0090 #define T_CP437_LATIN_SMALL_LETTER_AE 0x0091 #define T_CP437_LATIN_CAPITAL_LETTER_AE 0x0092 #define T_CP437_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0093 #define T_CP437_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x0094 #define T_CP437_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0095 #define T_CP437_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x0096 #define T_CP437_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x0097 #define T_CP437_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x0098 #define T_CP437_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0099 #define T_CP437_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_CP437_CENT_SIGN 0x009B #define T_CP437_POUND_SIGN 0x009C #define T_CP437_YEN_SIGN 0x009D #define T_CP437_PESETA_SIGN 0x009E #define T_CP437_LATIN_SMALL_LETTER_F_WITH_HOOK 0x009F #define T_CP437_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00A0 #define T_CP437_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00A1 #define T_CP437_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_CP437_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00A3 #define T_CP437_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00A4 #define T_CP437_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00A5 #define T_CP437_FEMININE_ORDINAL_INDICATOR 0x00A6 #define T_CP437_MASCULINE_ORDINAL_INDICATOR 0x00A7 #define T_CP437_INVERTED_QUESTION_MARK 0x00A8 #define T_CP437_REVERSED_NOT_SIGN 0x00A9 #define T_CP437_NOT_SIGN 0x00AA #define T_CP437_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP437_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_CP437_INVERTED_EXCLAMATION_MARK 0x00AD #define T_CP437_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP437_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP437_LIGHT_SHADE 0x00B0 #define T_CP437_MEDIUM_SHADE 0x00B1 #define T_CP437_DARK_SHADE 0x00B2 #define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B5 #define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x00B6 #define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x00B7 #define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x00B8 #define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x00BD #define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00BE #define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP437_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP437_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00C6 #define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00C7 #define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP437_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP437_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP437_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP437_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00CF #define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D0 #define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D1 #define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D2 #define T_CP437_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00D3 #define T_CP437_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00D4 #define T_CP437_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00D5 #define T_CP437_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x00D6 #define T_CP437_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D7 #define T_CP437_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D8 #define T_CP437_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP437_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP437_FULL_BLOCK 0x00DB #define T_CP437_LOWER_HALF_BLOCK 0x00DC #define T_CP437_LEFT_HALF_BLOCK 0x00DD #define T_CP437_RIGHT_HALF_BLOCK 0x00DE #define T_CP437_UPPER_HALF_BLOCK 0x00DF #define T_CP437_GREEK_SMALL_LETTER_ALPHA 0x00E0 #define T_CP437_LATIN_SMALL_LETTER_SHARP_S 0x00E1 #define T_CP437_GREEK_CAPITAL_LETTER_GAMMA 0x00E2 #define T_CP437_GREEK_SMALL_LETTER_PI 0x00E3 #define T_CP437_GREEK_CAPITAL_LETTER_SIGMA 0x00E4 #define T_CP437_GREEK_SMALL_LETTER_SIGMA 0x00E5 #define T_CP437_MICRO_SIGN 0x00E6 #define T_CP437_GREEK_SMALL_LETTER_TAU 0x00E7 #define T_CP437_GREEK_CAPITAL_LETTER_PHI 0x00E8 #define T_CP437_GREEK_CAPITAL_LETTER_THETA 0x00E9 #define T_CP437_GREEK_CAPITAL_LETTER_OMEGA 0x00EA #define T_CP437_GREEK_SMALL_LETTER_DELTA 0x00EB #define T_CP437_INFINITY 0x00EC #define T_CP437_GREEK_SMALL_LETTER_PHI 0x00ED #define T_CP437_GREEK_SMALL_LETTER_EPSILON 0x00EE #define T_CP437_INTERSECTION 0x00EF #define T_CP437_IDENTICAL_TO 0x00F0 #define T_CP437_PLUS_MINUS_SIGN 0x00F1 #define T_CP437_GREATER_THAN_OR_EQUAL_TO 0x00F2 #define T_CP437_LESS_THAN_OR_EQUAL_TO 0x00F3 #define T_CP437_TOP_HALF_INTEGRAL 0x00F4 #define T_CP437_BOTTOM_HALF_INTEGRAL 0x00F5 #define T_CP437_DIVISION_SIGN 0x00F6 #define T_CP437_ALMOST_EQUAL_TO 0x00F7 #define T_CP437_DEGREE_SIGN 0x00F8 #define T_CP437_BULLET_OPERATOR 0x00F9 #define T_CP437_MIDDLE_DOT 0x00FA #define T_CP437_SQUARE_ROOT 0x00FB #define T_CP437_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0x00FC #define T_CP437_SUPERSCRIPT_TWO 0x00FD #define T_CP437_BLACK_SQUARE 0x00FE #define T_CP437_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP437(EL) \ EL(_CTRL_NULL) \ EL(_WHITE_SMILING_FACE) \ EL(_BLACK_SMILING_FACE) \ EL(_BLACK_HEART_SUIT) \ EL(_BLACK_DIAMOND_SUIT) \ EL(_BLACK_CLUB_SUIT) \ EL(_BLACK_SPADE_SUIT) \ EL(_BULLET) \ EL(_INVERSE_BULLET) \ EL(_WHITE_CIRCLE) \ EL(_INVERSE_WHITE_CIRCLE) \ EL(_MALE_SIGN) \ EL(_FEMALE_SIGN) \ EL(_EIGHTH_NOTE) \ EL(_BEAMED_EIGHTH_NOTES) \ EL(_WHITE_SUN_WITH_RAYS) \ EL(_BLACK_RIGHT_POINTING_TRIANGLE) \ EL(_BLACK_LEFT_POINTING_TRIANGLE) \ EL(_UP_DOWN_ARROW) \ EL(_DOUBLE_EXCLAMATION_MARK) \ EL(_PILCROW_SIGN) \ EL(_SECTION_SIGN) \ EL(_BLACK_RECTANGLE) \ EL(_UP_DOWN_ARROW_WITH_BASE) \ EL(_UPWARDS_ARROW) \ EL(_DOWNWARDS_ARROW) \ EL(_RIGHTWARDS_ARROW) \ EL(_LEFTWARDS_ARROW) \ EL(_RIGHT_ANGLE) \ EL(_LEFT_RIGHT_ARROW) \ EL(_BLACK_UP_POINTING_TRIANGLE) \ EL(_BLACK_DOWN_POINTING_TRIANGLE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_HOUSE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_YEN_SIGN) \ EL(_PESETA_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-16 */ #define T_NLIST_CP437(EL) \ EL(_WHITE_SMILING_FACE) \ EL(_BLACK_SMILING_FACE) \ EL(_BLACK_HEART_SUIT) \ EL(_BLACK_DIAMOND_SUIT) \ EL(_BLACK_CLUB_SUIT) \ EL(_BLACK_SPADE_SUIT) \ EL(_BULLET) \ EL(_INVERSE_BULLET) \ EL(_WHITE_CIRCLE) \ EL(_INVERSE_WHITE_CIRCLE) \ EL(_MALE_SIGN) \ EL(_FEMALE_SIGN) \ EL(_EIGHTH_NOTE) \ EL(_BEAMED_EIGHTH_NOTES) \ EL(_WHITE_SUN_WITH_RAYS) \ EL(_BLACK_RIGHT_POINTING_TRIANGLE) \ EL(_BLACK_LEFT_POINTING_TRIANGLE) \ EL(_UP_DOWN_ARROW) \ EL(_DOUBLE_EXCLAMATION_MARK) \ EL(_PILCROW_SIGN) \ EL(_SECTION_SIGN) \ EL(_BLACK_RECTANGLE) \ EL(_UP_DOWN_ARROW_WITH_BASE) \ EL(_UPWARDS_ARROW) \ EL(_DOWNWARDS_ARROW) \ EL(_RIGHTWARDS_ARROW) \ EL(_LEFTWARDS_ARROW) \ EL(_RIGHT_ANGLE) \ EL(_LEFT_RIGHT_ARROW) \ EL(_BLACK_UP_POINTING_TRIANGLE) \ EL(_BLACK_DOWN_POINTING_TRIANGLE) \ EL(_HOUSE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_YEN_SIGN) \ EL(_PESETA_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP437_H */ ���������������������������������������������twin-0.9.0/include/Tutf/cp737.h���������������������������������������������������������������������0000664�0000000�0000000�00000144122�13775351206�0016077�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP737_H #define TUTF_CP737_H #define T_CP737_CTRL_NULL 0x0000 #define T_CP737_CTRL_START_OF_HEADING 0x0001 #define T_CP737_CTRL_START_OF_TEXT 0x0002 #define T_CP737_CTRL_END_OF_TEXT 0x0003 #define T_CP737_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP737_CTRL_ENQUIRY 0x0005 #define T_CP737_CTRL_ACKNOWLEDGE 0x0006 #define T_CP737_CTRL_BELL 0x0007 #define T_CP737_CTRL_BACKSPACE 0x0008 #define T_CP737_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP737_CTRL_LINE_FEED 0x000A #define T_CP737_CTRL_LINE_TABULATION 0x000B #define T_CP737_CTRL_FORM_FEED 0x000C #define T_CP737_CTRL_CARRIAGE_RETURN 0x000D #define T_CP737_CTRL_SHIFT_OUT 0x000E #define T_CP737_CTRL_SHIFT_IN 0x000F #define T_CP737_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP737_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP737_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP737_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP737_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP737_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP737_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP737_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP737_CTRL_CANCEL 0x0018 #define T_CP737_CTRL_END_OF_MEDIUM 0x0019 #define T_CP737_CTRL_SUBSTITUTE 0x001A #define T_CP737_CTRL_ESCAPE 0x001B #define T_CP737_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP737_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP737_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP737_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP737_SPACE 0x0020 #define T_CP737_EXCLAMATION_MARK 0x0021 #define T_CP737_QUOTATION_MARK 0x0022 #define T_CP737_NUMBER_SIGN 0x0023 #define T_CP737_DOLLAR_SIGN 0x0024 #define T_CP737_PERCENT_SIGN 0x0025 #define T_CP737_AMPERSAND 0x0026 #define T_CP737_APOSTROPHE 0x0027 #define T_CP737_LEFT_PARENTHESIS 0x0028 #define T_CP737_RIGHT_PARENTHESIS 0x0029 #define T_CP737_ASTERISK 0x002A #define T_CP737_PLUS_SIGN 0x002B #define T_CP737_COMMA 0x002C #define T_CP737_HYPHEN_MINUS 0x002D #define T_CP737_FULL_STOP 0x002E #define T_CP737_SOLIDUS 0x002F #define T_CP737_DIGIT_ZERO 0x0030 #define T_CP737_DIGIT_ONE 0x0031 #define T_CP737_DIGIT_TWO 0x0032 #define T_CP737_DIGIT_THREE 0x0033 #define T_CP737_DIGIT_FOUR 0x0034 #define T_CP737_DIGIT_FIVE 0x0035 #define T_CP737_DIGIT_SIX 0x0036 #define T_CP737_DIGIT_SEVEN 0x0037 #define T_CP737_DIGIT_EIGHT 0x0038 #define T_CP737_DIGIT_NINE 0x0039 #define T_CP737_COLON 0x003A #define T_CP737_SEMICOLON 0x003B #define T_CP737_LESS_THAN_SIGN 0x003C #define T_CP737_EQUALS_SIGN 0x003D #define T_CP737_GREATER_THAN_SIGN 0x003E #define T_CP737_QUESTION_MARK 0x003F #define T_CP737_COMMERCIAL_AT 0x0040 #define T_CP737_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP737_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP737_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP737_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP737_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP737_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP737_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP737_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP737_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP737_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP737_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP737_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP737_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP737_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP737_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP737_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP737_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP737_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP737_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP737_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP737_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP737_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP737_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP737_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP737_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP737_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP737_LEFT_SQUARE_BRACKET 0x005B #define T_CP737_REVERSE_SOLIDUS 0x005C #define T_CP737_RIGHT_SQUARE_BRACKET 0x005D #define T_CP737_CIRCUMFLEX_ACCENT 0x005E #define T_CP737_LOW_LINE 0x005F #define T_CP737_GRAVE_ACCENT 0x0060 #define T_CP737_LATIN_SMALL_LETTER_A 0x0061 #define T_CP737_LATIN_SMALL_LETTER_B 0x0062 #define T_CP737_LATIN_SMALL_LETTER_C 0x0063 #define T_CP737_LATIN_SMALL_LETTER_D 0x0064 #define T_CP737_LATIN_SMALL_LETTER_E 0x0065 #define T_CP737_LATIN_SMALL_LETTER_F 0x0066 #define T_CP737_LATIN_SMALL_LETTER_G 0x0067 #define T_CP737_LATIN_SMALL_LETTER_H 0x0068 #define T_CP737_LATIN_SMALL_LETTER_I 0x0069 #define T_CP737_LATIN_SMALL_LETTER_J 0x006A #define T_CP737_LATIN_SMALL_LETTER_K 0x006B #define T_CP737_LATIN_SMALL_LETTER_L 0x006C #define T_CP737_LATIN_SMALL_LETTER_M 0x006D #define T_CP737_LATIN_SMALL_LETTER_N 0x006E #define T_CP737_LATIN_SMALL_LETTER_O 0x006F #define T_CP737_LATIN_SMALL_LETTER_P 0x0070 #define T_CP737_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP737_LATIN_SMALL_LETTER_R 0x0072 #define T_CP737_LATIN_SMALL_LETTER_S 0x0073 #define T_CP737_LATIN_SMALL_LETTER_T 0x0074 #define T_CP737_LATIN_SMALL_LETTER_U 0x0075 #define T_CP737_LATIN_SMALL_LETTER_V 0x0076 #define T_CP737_LATIN_SMALL_LETTER_W 0x0077 #define T_CP737_LATIN_SMALL_LETTER_X 0x0078 #define T_CP737_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP737_LATIN_SMALL_LETTER_Z 0x007A #define T_CP737_LEFT_CURLY_BRACKET 0x007B #define T_CP737_VERTICAL_LINE 0x007C #define T_CP737_RIGHT_CURLY_BRACKET 0x007D #define T_CP737_TILDE 0x007E #define T_CP737_CTRL_DELETE 0x007F #define T_CP737_GREEK_CAPITAL_LETTER_ALPHA 0x0080 #define T_CP737_GREEK_CAPITAL_LETTER_BETA 0x0081 #define T_CP737_GREEK_CAPITAL_LETTER_GAMMA 0x0082 #define T_CP737_GREEK_CAPITAL_LETTER_DELTA 0x0083 #define T_CP737_GREEK_CAPITAL_LETTER_EPSILON 0x0084 #define T_CP737_GREEK_CAPITAL_LETTER_ZETA 0x0085 #define T_CP737_GREEK_CAPITAL_LETTER_ETA 0x0086 #define T_CP737_GREEK_CAPITAL_LETTER_THETA 0x0087 #define T_CP737_GREEK_CAPITAL_LETTER_IOTA 0x0088 #define T_CP737_GREEK_CAPITAL_LETTER_KAPPA 0x0089 #define T_CP737_GREEK_CAPITAL_LETTER_LAMDA 0x008A #define T_CP737_GREEK_CAPITAL_LETTER_MU 0x008B #define T_CP737_GREEK_CAPITAL_LETTER_NU 0x008C #define T_CP737_GREEK_CAPITAL_LETTER_XI 0x008D #define T_CP737_GREEK_CAPITAL_LETTER_OMICRON 0x008E #define T_CP737_GREEK_CAPITAL_LETTER_PI 0x008F #define T_CP737_GREEK_CAPITAL_LETTER_RHO 0x0090 #define T_CP737_GREEK_CAPITAL_LETTER_SIGMA 0x0091 #define T_CP737_GREEK_CAPITAL_LETTER_TAU 0x0092 #define T_CP737_GREEK_CAPITAL_LETTER_UPSILON 0x0093 #define T_CP737_GREEK_CAPITAL_LETTER_PHI 0x0094 #define T_CP737_GREEK_CAPITAL_LETTER_CHI 0x0095 #define T_CP737_GREEK_CAPITAL_LETTER_PSI 0x0096 #define T_CP737_GREEK_CAPITAL_LETTER_OMEGA 0x0097 #define T_CP737_GREEK_SMALL_LETTER_ALPHA 0x0098 #define T_CP737_GREEK_SMALL_LETTER_BETA 0x0099 #define T_CP737_GREEK_SMALL_LETTER_GAMMA 0x009A #define T_CP737_GREEK_SMALL_LETTER_DELTA 0x009B #define T_CP737_GREEK_SMALL_LETTER_EPSILON 0x009C #define T_CP737_GREEK_SMALL_LETTER_ZETA 0x009D #define T_CP737_GREEK_SMALL_LETTER_ETA 0x009E #define T_CP737_GREEK_SMALL_LETTER_THETA 0x009F #define T_CP737_GREEK_SMALL_LETTER_IOTA 0x00A0 #define T_CP737_GREEK_SMALL_LETTER_KAPPA 0x00A1 #define T_CP737_GREEK_SMALL_LETTER_LAMDA 0x00A2 #define T_CP737_GREEK_SMALL_LETTER_MU 0x00A3 #define T_CP737_GREEK_SMALL_LETTER_NU 0x00A4 #define T_CP737_GREEK_SMALL_LETTER_XI 0x00A5 #define T_CP737_GREEK_SMALL_LETTER_OMICRON 0x00A6 #define T_CP737_GREEK_SMALL_LETTER_PI 0x00A7 #define T_CP737_GREEK_SMALL_LETTER_RHO 0x00A8 #define T_CP737_GREEK_SMALL_LETTER_SIGMA 0x00A9 #define T_CP737_GREEK_SMALL_LETTER_FINAL_SIGMA 0x00AA #define T_CP737_GREEK_SMALL_LETTER_TAU 0x00AB #define T_CP737_GREEK_SMALL_LETTER_UPSILON 0x00AC #define T_CP737_GREEK_SMALL_LETTER_PHI 0x00AD #define T_CP737_GREEK_SMALL_LETTER_CHI 0x00AE #define T_CP737_GREEK_SMALL_LETTER_PSI 0x00AF #define T_CP737_LIGHT_SHADE 0x00B0 #define T_CP737_MEDIUM_SHADE 0x00B1 #define T_CP737_DARK_SHADE 0x00B2 #define T_CP737_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP737_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP737_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B5 #define T_CP737_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x00B6 #define T_CP737_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x00B7 #define T_CP737_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x00B8 #define T_CP737_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP737_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP737_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP737_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP737_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x00BD #define T_CP737_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00BE #define T_CP737_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP737_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP737_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP737_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP737_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP737_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP737_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP737_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00C6 #define T_CP737_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00C7 #define T_CP737_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP737_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP737_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP737_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP737_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP737_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP737_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP737_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00CF #define T_CP737_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D0 #define T_CP737_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D1 #define T_CP737_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D2 #define T_CP737_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00D3 #define T_CP737_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00D4 #define T_CP737_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00D5 #define T_CP737_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x00D6 #define T_CP737_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D7 #define T_CP737_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D8 #define T_CP737_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP737_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP737_FULL_BLOCK 0x00DB #define T_CP737_LOWER_HALF_BLOCK 0x00DC #define T_CP737_LEFT_HALF_BLOCK 0x00DD #define T_CP737_RIGHT_HALF_BLOCK 0x00DE #define T_CP737_UPPER_HALF_BLOCK 0x00DF #define T_CP737_GREEK_SMALL_LETTER_OMEGA 0x00E0 #define T_CP737_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0x00E1 #define T_CP737_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0x00E2 #define T_CP737_GREEK_SMALL_LETTER_ETA_WITH_TONOS 0x00E3 #define T_CP737_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0x00E4 #define T_CP737_GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0x00E5 #define T_CP737_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0x00E6 #define T_CP737_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0x00E7 #define T_CP737_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0x00E8 #define T_CP737_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0x00E9 #define T_CP737_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0x00EA #define T_CP737_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0x00EB #define T_CP737_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0x00EC #define T_CP737_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0x00ED #define T_CP737_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0x00EE #define T_CP737_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0x00EF #define T_CP737_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0x00F0 #define T_CP737_PLUS_MINUS_SIGN 0x00F1 #define T_CP737_GREATER_THAN_OR_EQUAL_TO 0x00F2 #define T_CP737_LESS_THAN_OR_EQUAL_TO 0x00F3 #define T_CP737_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0x00F4 #define T_CP737_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0x00F5 #define T_CP737_DIVISION_SIGN 0x00F6 #define T_CP737_ALMOST_EQUAL_TO 0x00F7 #define T_CP737_DEGREE_SIGN 0x00F8 #define T_CP737_BULLET_OPERATOR 0x00F9 #define T_CP737_MIDDLE_DOT 0x00FA #define T_CP737_SQUARE_ROOT 0x00FB #define T_CP737_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0x00FC #define T_CP737_SUPERSCRIPT_TWO 0x00FD #define T_CP737_BLACK_SQUARE 0x00FE #define T_CP737_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP737(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP737(EL) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP737_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp775.h���������������������������������������������������������������������0000664�0000000�0000000�00000144001�13775351206�0016075�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP775_H #define TUTF_CP775_H #define T_CP775_CTRL_NULL 0x0000 #define T_CP775_CTRL_START_OF_HEADING 0x0001 #define T_CP775_CTRL_START_OF_TEXT 0x0002 #define T_CP775_CTRL_END_OF_TEXT 0x0003 #define T_CP775_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP775_CTRL_ENQUIRY 0x0005 #define T_CP775_CTRL_ACKNOWLEDGE 0x0006 #define T_CP775_CTRL_BELL 0x0007 #define T_CP775_CTRL_BACKSPACE 0x0008 #define T_CP775_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP775_CTRL_LINE_FEED 0x000A #define T_CP775_CTRL_LINE_TABULATION 0x000B #define T_CP775_CTRL_FORM_FEED 0x000C #define T_CP775_CTRL_CARRIAGE_RETURN 0x000D #define T_CP775_CTRL_SHIFT_OUT 0x000E #define T_CP775_CTRL_SHIFT_IN 0x000F #define T_CP775_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP775_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP775_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP775_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP775_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP775_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP775_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP775_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP775_CTRL_CANCEL 0x0018 #define T_CP775_CTRL_END_OF_MEDIUM 0x0019 #define T_CP775_CTRL_SUBSTITUTE 0x001A #define T_CP775_CTRL_ESCAPE 0x001B #define T_CP775_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP775_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP775_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP775_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP775_SPACE 0x0020 #define T_CP775_EXCLAMATION_MARK 0x0021 #define T_CP775_QUOTATION_MARK 0x0022 #define T_CP775_NUMBER_SIGN 0x0023 #define T_CP775_DOLLAR_SIGN 0x0024 #define T_CP775_PERCENT_SIGN 0x0025 #define T_CP775_AMPERSAND 0x0026 #define T_CP775_APOSTROPHE 0x0027 #define T_CP775_LEFT_PARENTHESIS 0x0028 #define T_CP775_RIGHT_PARENTHESIS 0x0029 #define T_CP775_ASTERISK 0x002A #define T_CP775_PLUS_SIGN 0x002B #define T_CP775_COMMA 0x002C #define T_CP775_HYPHEN_MINUS 0x002D #define T_CP775_FULL_STOP 0x002E #define T_CP775_SOLIDUS 0x002F #define T_CP775_DIGIT_ZERO 0x0030 #define T_CP775_DIGIT_ONE 0x0031 #define T_CP775_DIGIT_TWO 0x0032 #define T_CP775_DIGIT_THREE 0x0033 #define T_CP775_DIGIT_FOUR 0x0034 #define T_CP775_DIGIT_FIVE 0x0035 #define T_CP775_DIGIT_SIX 0x0036 #define T_CP775_DIGIT_SEVEN 0x0037 #define T_CP775_DIGIT_EIGHT 0x0038 #define T_CP775_DIGIT_NINE 0x0039 #define T_CP775_COLON 0x003A #define T_CP775_SEMICOLON 0x003B #define T_CP775_LESS_THAN_SIGN 0x003C #define T_CP775_EQUALS_SIGN 0x003D #define T_CP775_GREATER_THAN_SIGN 0x003E #define T_CP775_QUESTION_MARK 0x003F #define T_CP775_COMMERCIAL_AT 0x0040 #define T_CP775_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP775_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP775_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP775_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP775_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP775_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP775_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP775_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP775_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP775_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP775_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP775_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP775_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP775_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP775_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP775_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP775_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP775_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP775_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP775_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP775_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP775_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP775_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP775_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP775_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP775_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP775_LEFT_SQUARE_BRACKET 0x005B #define T_CP775_REVERSE_SOLIDUS 0x005C #define T_CP775_RIGHT_SQUARE_BRACKET 0x005D #define T_CP775_CIRCUMFLEX_ACCENT 0x005E #define T_CP775_LOW_LINE 0x005F #define T_CP775_GRAVE_ACCENT 0x0060 #define T_CP775_LATIN_SMALL_LETTER_A 0x0061 #define T_CP775_LATIN_SMALL_LETTER_B 0x0062 #define T_CP775_LATIN_SMALL_LETTER_C 0x0063 #define T_CP775_LATIN_SMALL_LETTER_D 0x0064 #define T_CP775_LATIN_SMALL_LETTER_E 0x0065 #define T_CP775_LATIN_SMALL_LETTER_F 0x0066 #define T_CP775_LATIN_SMALL_LETTER_G 0x0067 #define T_CP775_LATIN_SMALL_LETTER_H 0x0068 #define T_CP775_LATIN_SMALL_LETTER_I 0x0069 #define T_CP775_LATIN_SMALL_LETTER_J 0x006A #define T_CP775_LATIN_SMALL_LETTER_K 0x006B #define T_CP775_LATIN_SMALL_LETTER_L 0x006C #define T_CP775_LATIN_SMALL_LETTER_M 0x006D #define T_CP775_LATIN_SMALL_LETTER_N 0x006E #define T_CP775_LATIN_SMALL_LETTER_O 0x006F #define T_CP775_LATIN_SMALL_LETTER_P 0x0070 #define T_CP775_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP775_LATIN_SMALL_LETTER_R 0x0072 #define T_CP775_LATIN_SMALL_LETTER_S 0x0073 #define T_CP775_LATIN_SMALL_LETTER_T 0x0074 #define T_CP775_LATIN_SMALL_LETTER_U 0x0075 #define T_CP775_LATIN_SMALL_LETTER_V 0x0076 #define T_CP775_LATIN_SMALL_LETTER_W 0x0077 #define T_CP775_LATIN_SMALL_LETTER_X 0x0078 #define T_CP775_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP775_LATIN_SMALL_LETTER_Z 0x007A #define T_CP775_LEFT_CURLY_BRACKET 0x007B #define T_CP775_VERTICAL_LINE 0x007C #define T_CP775_RIGHT_CURLY_BRACKET 0x007D #define T_CP775_TILDE 0x007E #define T_CP775_CTRL_DELETE 0x007F #define T_CP775_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x0080 #define T_CP775_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x0081 #define T_CP775_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x0082 #define T_CP775_LATIN_SMALL_LETTER_A_WITH_MACRON 0x0083 #define T_CP775_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x0084 #define T_CP775_LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x0085 #define T_CP775_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x0086 #define T_CP775_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x0087 #define T_CP775_LATIN_SMALL_LETTER_L_WITH_STROKE 0x0088 #define T_CP775_LATIN_SMALL_LETTER_E_WITH_MACRON 0x0089 #define T_CP775_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA 0x008A #define T_CP775_LATIN_SMALL_LETTER_R_WITH_CEDILLA 0x008B #define T_CP775_LATIN_SMALL_LETTER_I_WITH_MACRON 0x008C #define T_CP775_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x008D #define T_CP775_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x008E #define T_CP775_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x008F #define T_CP775_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0090 #define T_CP775_LATIN_SMALL_LETTER_AE 0x0091 #define T_CP775_LATIN_CAPITAL_LETTER_AE 0x0092 #define T_CP775_LATIN_SMALL_LETTER_O_WITH_MACRON 0x0093 #define T_CP775_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x0094 #define T_CP775_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x0095 #define T_CP775_CENT_SIGN 0x0096 #define T_CP775_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x0097 #define T_CP775_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x0098 #define T_CP775_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0099 #define T_CP775_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_CP775_LATIN_SMALL_LETTER_O_WITH_STROKE 0x009B #define T_CP775_POUND_SIGN 0x009C #define T_CP775_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x009D #define T_CP775_MULTIPLICATION_SIGN 0x009E #define T_CP775_CURRENCY_SIGN 0x009F #define T_CP775_LATIN_CAPITAL_LETTER_A_WITH_MACRON 0x00A0 #define T_CP775_LATIN_CAPITAL_LETTER_I_WITH_MACRON 0x00A1 #define T_CP775_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_CP775_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x00A3 #define T_CP775_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x00A4 #define T_CP775_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x00A5 #define T_CP775_RIGHT_DOUBLE_QUOTATION_MARK 0x00A6 #define T_CP775_BROKEN_BAR 0x00A7 #define T_CP775_COPYRIGHT_SIGN 0x00A8 #define T_CP775_REGISTERED_SIGN 0x00A9 #define T_CP775_NOT_SIGN 0x00AA #define T_CP775_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP775_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_CP775_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x00AD #define T_CP775_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP775_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP775_LIGHT_SHADE 0x00B0 #define T_CP775_MEDIUM_SHADE 0x00B1 #define T_CP775_DARK_SHADE 0x00B2 #define T_CP775_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP775_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP775_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x00B5 #define T_CP775_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x00B6 #define T_CP775_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00B7 #define T_CP775_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0x00B8 #define T_CP775_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP775_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP775_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP775_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP775_LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0x00BD #define T_CP775_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00BE #define T_CP775_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP775_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP775_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP775_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP775_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP775_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP775_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP775_LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0x00C6 #define T_CP775_LATIN_CAPITAL_LETTER_U_WITH_MACRON 0x00C7 #define T_CP775_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP775_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP775_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP775_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP775_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP775_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP775_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP775_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00CF #define T_CP775_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x00D0 #define T_CP775_LATIN_SMALL_LETTER_C_WITH_CARON 0x00D1 #define T_CP775_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00D2 #define T_CP775_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0x00D3 #define T_CP775_LATIN_SMALL_LETTER_I_WITH_OGONEK 0x00D4 #define T_CP775_LATIN_SMALL_LETTER_S_WITH_CARON 0x00D5 #define T_CP775_LATIN_SMALL_LETTER_U_WITH_OGONEK 0x00D6 #define T_CP775_LATIN_SMALL_LETTER_U_WITH_MACRON 0x00D7 #define T_CP775_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00D8 #define T_CP775_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP775_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP775_FULL_BLOCK 0x00DB #define T_CP775_LOWER_HALF_BLOCK 0x00DC #define T_CP775_LEFT_HALF_BLOCK 0x00DD #define T_CP775_RIGHT_HALF_BLOCK 0x00DE #define T_CP775_UPPER_HALF_BLOCK 0x00DF #define T_CP775_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00E0 #define T_CP775_LATIN_SMALL_LETTER_SHARP_S 0x00E1 #define T_CP775_LATIN_CAPITAL_LETTER_O_WITH_MACRON 0x00E2 #define T_CP775_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x00E3 #define T_CP775_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00E4 #define T_CP775_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00E5 #define T_CP775_MICRO_SIGN 0x00E6 #define T_CP775_LATIN_SMALL_LETTER_N_WITH_ACUTE 0x00E7 #define T_CP775_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0x00E8 #define T_CP775_LATIN_SMALL_LETTER_K_WITH_CEDILLA 0x00E9 #define T_CP775_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0x00EA #define T_CP775_LATIN_SMALL_LETTER_L_WITH_CEDILLA 0x00EB #define T_CP775_LATIN_SMALL_LETTER_N_WITH_CEDILLA 0x00EC #define T_CP775_LATIN_CAPITAL_LETTER_E_WITH_MACRON 0x00ED #define T_CP775_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0x00EE #define T_CP775_RIGHT_SINGLE_QUOTATION_MARK 0x00EF #define T_CP775_SOFT_HYPHEN 0x00F0 #define T_CP775_PLUS_MINUS_SIGN 0x00F1 #define T_CP775_LEFT_DOUBLE_QUOTATION_MARK 0x00F2 #define T_CP775_VULGAR_FRACTION_THREE_QUARTERS 0x00F3 #define T_CP775_PILCROW_SIGN 0x00F4 #define T_CP775_SECTION_SIGN 0x00F5 #define T_CP775_DIVISION_SIGN 0x00F6 #define T_CP775_DOUBLE_LOW_9_QUOTATION_MARK 0x00F7 #define T_CP775_DEGREE_SIGN 0x00F8 #define T_CP775_BULLET_OPERATOR 0x00F9 #define T_CP775_MIDDLE_DOT 0x00FA #define T_CP775_SUPERSCRIPT_ONE 0x00FB #define T_CP775_SUPERSCRIPT_THREE 0x00FC #define T_CP775_SUPERSCRIPT_TWO 0x00FD #define T_CP775_BLACK_SQUARE 0x00FE #define T_CP775_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP775(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_CENT_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_MULTIPLICATION_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BROKEN_BAR) \ EL(_COPYRIGHT_SIGN) \ EL(_REGISTERED_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_MICRO_SIGN) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_SOFT_HYPHEN) \ EL(_PLUS_MINUS_SIGN) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_PILCROW_SIGN) \ EL(_SECTION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_THREE) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP775(EL) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_CENT_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_MULTIPLICATION_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BROKEN_BAR) \ EL(_COPYRIGHT_SIGN) \ EL(_REGISTERED_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_MICRO_SIGN) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_SOFT_HYPHEN) \ EL(_PLUS_MINUS_SIGN) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_PILCROW_SIGN) \ EL(_SECTION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_THREE) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP775_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp850.h���������������������������������������������������������������������0000664�0000000�0000000�00000152003�13775351206�0016070�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * It was then manually tuned adding glyphs 0x0001...0x001B */ #ifndef TUTF_CP850_H #define TUTF_CP850_H #define T_CP850_CTRL_NULL 0x0000 #define T_CP850_WHITE_SMILING_FACE 0x0001 #define T_CP850_BLACK_SMILING_FACE 0x0002 #define T_CP850_BLACK_HEART_SUIT 0x0003 #define T_CP850_BLACK_DIAMOND_SUIT 0x0004 #define T_CP850_BLACK_CLUB_SUIT 0x0005 #define T_CP850_BLACK_SPADE_SUIT 0x0006 #define T_CP850_BULLET 0x0007 #define T_CP850_INVERSE_BULLET 0x0008 #define T_CP850_WHITE_CIRCLE 0x0009 #define T_CP850_INVERSE_WHITE_CIRCLE 0x000A #define T_CP850_MALE_SIGN 0x000B #define T_CP850_FEMALE_SIGN 0x000C #define T_CP850_EIGHTH_NOTE 0x000D #define T_CP850_BEAMED_EIGHTH_NOTES 0x000E #define T_CP850_WHITE_SUN_WITH_RAYS 0x000F #define T_CP850_BLACK_RIGHT_POINTING_TRIANGLE 0x0010 #define T_CP850_BLACK_LEFT_POINTING_TRIANGLE 0x0011 #define T_CP850_UP_DOWN_ARROW 0x0012 #define T_CP850_DOUBLE_EXCLAMATION_MARK 0x0013 #define T_CP850_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP850_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP850_BLACK_RECTANGLE 0x0016 #define T_CP850_UP_DOWN_ARROW_WITH_BASE 0x0017 #define T_CP850_UPWARDS_ARROW 0x0018 #define T_CP850_DOWNWARDS_ARROW 0x0019 #define T_CP850_RIGHTWARDS_ARROW 0x001A #define T_CP850_LEFTWARDS_ARROW 0x001B #define T_CP850_RIGHT_ANGLE 0x001C #define T_CP850_LEFT_RIGHT_ARROW 0x001D #define T_CP850_BLACK_UP_POINTING_TRIANGLE 0x001E #define T_CP850_BLACK_DOWN_POINTING_TRIANGLE 0x001F #define T_CP850_SPACE 0x0020 #define T_CP850_EXCLAMATION_MARK 0x0021 #define T_CP850_QUOTATION_MARK 0x0022 #define T_CP850_NUMBER_SIGN 0x0023 #define T_CP850_DOLLAR_SIGN 0x0024 #define T_CP850_PERCENT_SIGN 0x0025 #define T_CP850_AMPERSAND 0x0026 #define T_CP850_APOSTROPHE 0x0027 #define T_CP850_LEFT_PARENTHESIS 0x0028 #define T_CP850_RIGHT_PARENTHESIS 0x0029 #define T_CP850_ASTERISK 0x002A #define T_CP850_PLUS_SIGN 0x002B #define T_CP850_COMMA 0x002C #define T_CP850_HYPHEN_MINUS 0x002D #define T_CP850_FULL_STOP 0x002E #define T_CP850_SOLIDUS 0x002F #define T_CP850_DIGIT_ZERO 0x0030 #define T_CP850_DIGIT_ONE 0x0031 #define T_CP850_DIGIT_TWO 0x0032 #define T_CP850_DIGIT_THREE 0x0033 #define T_CP850_DIGIT_FOUR 0x0034 #define T_CP850_DIGIT_FIVE 0x0035 #define T_CP850_DIGIT_SIX 0x0036 #define T_CP850_DIGIT_SEVEN 0x0037 #define T_CP850_DIGIT_EIGHT 0x0038 #define T_CP850_DIGIT_NINE 0x0039 #define T_CP850_COLON 0x003A #define T_CP850_SEMICOLON 0x003B #define T_CP850_LESS_THAN_SIGN 0x003C #define T_CP850_EQUALS_SIGN 0x003D #define T_CP850_GREATER_THAN_SIGN 0x003E #define T_CP850_QUESTION_MARK 0x003F #define T_CP850_COMMERCIAL_AT 0x0040 #define T_CP850_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP850_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP850_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP850_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP850_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP850_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP850_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP850_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP850_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP850_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP850_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP850_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP850_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP850_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP850_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP850_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP850_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP850_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP850_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP850_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP850_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP850_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP850_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP850_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP850_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP850_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP850_LEFT_SQUARE_BRACKET 0x005B #define T_CP850_REVERSE_SOLIDUS 0x005C #define T_CP850_RIGHT_SQUARE_BRACKET 0x005D #define T_CP850_CIRCUMFLEX_ACCENT 0x005E #define T_CP850_LOW_LINE 0x005F #define T_CP850_GRAVE_ACCENT 0x0060 #define T_CP850_LATIN_SMALL_LETTER_A 0x0061 #define T_CP850_LATIN_SMALL_LETTER_B 0x0062 #define T_CP850_LATIN_SMALL_LETTER_C 0x0063 #define T_CP850_LATIN_SMALL_LETTER_D 0x0064 #define T_CP850_LATIN_SMALL_LETTER_E 0x0065 #define T_CP850_LATIN_SMALL_LETTER_F 0x0066 #define T_CP850_LATIN_SMALL_LETTER_G 0x0067 #define T_CP850_LATIN_SMALL_LETTER_H 0x0068 #define T_CP850_LATIN_SMALL_LETTER_I 0x0069 #define T_CP850_LATIN_SMALL_LETTER_J 0x006A #define T_CP850_LATIN_SMALL_LETTER_K 0x006B #define T_CP850_LATIN_SMALL_LETTER_L 0x006C #define T_CP850_LATIN_SMALL_LETTER_M 0x006D #define T_CP850_LATIN_SMALL_LETTER_N 0x006E #define T_CP850_LATIN_SMALL_LETTER_O 0x006F #define T_CP850_LATIN_SMALL_LETTER_P 0x0070 #define T_CP850_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP850_LATIN_SMALL_LETTER_R 0x0072 #define T_CP850_LATIN_SMALL_LETTER_S 0x0073 #define T_CP850_LATIN_SMALL_LETTER_T 0x0074 #define T_CP850_LATIN_SMALL_LETTER_U 0x0075 #define T_CP850_LATIN_SMALL_LETTER_V 0x0076 #define T_CP850_LATIN_SMALL_LETTER_W 0x0077 #define T_CP850_LATIN_SMALL_LETTER_X 0x0078 #define T_CP850_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP850_LATIN_SMALL_LETTER_Z 0x007A #define T_CP850_LEFT_CURLY_BRACKET 0x007B #define T_CP850_VERTICAL_LINE 0x007C #define T_CP850_RIGHT_CURLY_BRACKET 0x007D #define T_CP850_TILDE 0x007E #define T_CP850_HOUSE 0x007F #define T_CP850_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0080 #define T_CP850_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x0081 #define T_CP850_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x0082 #define T_CP850_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0083 #define T_CP850_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x0084 #define T_CP850_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0085 #define T_CP850_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x0086 #define T_CP850_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x0087 #define T_CP850_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0088 #define T_CP850_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0089 #define T_CP850_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008A #define T_CP850_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x008B #define T_CP850_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x008C #define T_CP850_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x008D #define T_CP850_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x008E #define T_CP850_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x008F #define T_CP850_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0090 #define T_CP850_LATIN_SMALL_LETTER_AE 0x0091 #define T_CP850_LATIN_CAPITAL_LETTER_AE 0x0092 #define T_CP850_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0093 #define T_CP850_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x0094 #define T_CP850_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0095 #define T_CP850_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x0096 #define T_CP850_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x0097 #define T_CP850_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x0098 #define T_CP850_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0099 #define T_CP850_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_CP850_LATIN_SMALL_LETTER_O_WITH_STROKE 0x009B #define T_CP850_POUND_SIGN 0x009C #define T_CP850_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x009D #define T_CP850_MULTIPLICATION_SIGN 0x009E #define T_CP850_LATIN_SMALL_LETTER_F_WITH_HOOK 0x009F #define T_CP850_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00A0 #define T_CP850_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00A1 #define T_CP850_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_CP850_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00A3 #define T_CP850_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00A4 #define T_CP850_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00A5 #define T_CP850_FEMININE_ORDINAL_INDICATOR 0x00A6 #define T_CP850_MASCULINE_ORDINAL_INDICATOR 0x00A7 #define T_CP850_INVERTED_QUESTION_MARK 0x00A8 #define T_CP850_REGISTERED_SIGN 0x00A9 #define T_CP850_NOT_SIGN 0x00AA #define T_CP850_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP850_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_CP850_INVERTED_EXCLAMATION_MARK 0x00AD #define T_CP850_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP850_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP850_LIGHT_SHADE 0x00B0 #define T_CP850_MEDIUM_SHADE 0x00B1 #define T_CP850_DARK_SHADE 0x00B2 #define T_CP850_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP850_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP850_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00B5 #define T_CP850_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00B6 #define T_CP850_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00B7 #define T_CP850_COPYRIGHT_SIGN 0x00B8 #define T_CP850_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP850_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP850_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP850_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP850_CENT_SIGN 0x00BD #define T_CP850_YEN_SIGN 0x00BE #define T_CP850_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP850_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP850_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP850_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP850_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP850_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP850_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP850_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00C6 #define T_CP850_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C7 #define T_CP850_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP850_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP850_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP850_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP850_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP850_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP850_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP850_CURRENCY_SIGN 0x00CF #define T_CP850_LATIN_SMALL_LETTER_ETH 0x00D0 #define T_CP850_LATIN_CAPITAL_LETTER_ETH 0x00D1 #define T_CP850_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00D2 #define T_CP850_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00D3 #define T_CP850_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00D4 #define T_CP850_LATIN_SMALL_LETTER_DOTLESS_I 0x00D5 #define T_CP850_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00D6 #define T_CP850_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00D7 #define T_CP850_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00D8 #define T_CP850_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP850_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP850_FULL_BLOCK 0x00DB #define T_CP850_LOWER_HALF_BLOCK 0x00DC #define T_CP850_BROKEN_BAR 0x00DD #define T_CP850_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00DE #define T_CP850_UPPER_HALF_BLOCK 0x00DF #define T_CP850_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00E0 #define T_CP850_LATIN_SMALL_LETTER_SHARP_S 0x00E1 #define T_CP850_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00E2 #define T_CP850_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00E3 #define T_CP850_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00E4 #define T_CP850_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00E5 #define T_CP850_MICRO_SIGN 0x00E6 #define T_CP850_LATIN_SMALL_LETTER_THORN 0x00E7 #define T_CP850_LATIN_CAPITAL_LETTER_THORN 0x00E8 #define T_CP850_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00E9 #define T_CP850_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00EA #define T_CP850_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00EB #define T_CP850_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00EC #define T_CP850_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00ED #define T_CP850_MACRON 0x00EE #define T_CP850_ACUTE_ACCENT 0x00EF #define T_CP850_SOFT_HYPHEN 0x00F0 #define T_CP850_PLUS_MINUS_SIGN 0x00F1 #define T_CP850_DOUBLE_LOW_LINE 0x00F2 #define T_CP850_VULGAR_FRACTION_THREE_QUARTERS 0x00F3 #define T_CP850_PILCROW_SIGN 0x00F4 #define T_CP850_SECTION_SIGN 0x00F5 #define T_CP850_DIVISION_SIGN 0x00F6 #define T_CP850_CEDILLA 0x00F7 #define T_CP850_DEGREE_SIGN 0x00F8 #define T_CP850_DIAERESIS 0x00F9 #define T_CP850_MIDDLE_DOT 0x00FA #define T_CP850_SUPERSCRIPT_ONE 0x00FB #define T_CP850_SUPERSCRIPT_THREE 0x00FC #define T_CP850_SUPERSCRIPT_TWO 0x00FD #define T_CP850_BLACK_SQUARE 0x00FE #define T_CP850_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP850(EL) \ EL(_CTRL_NULL) \ EL(_WHITE_SMILING_FACE) \ EL(_BLACK_SMILING_FACE) \ EL(_BLACK_HEART_SUIT) \ EL(_BLACK_DIAMOND_SUIT) \ EL(_BLACK_CLUB_SUIT) \ EL(_BLACK_SPADE_SUIT) \ EL(_BULLET) \ EL(_INVERSE_BULLET) \ EL(_WHITE_CIRCLE) \ EL(_INVERSE_WHITE_CIRCLE) \ EL(_MALE_SIGN) \ EL(_FEMALE_SIGN) \ EL(_EIGHTH_NOTE) \ EL(_BEAMED_EIGHTH_NOTES) \ EL(_WHITE_SUN_WITH_RAYS) \ EL(_BLACK_RIGHT_POINTING_TRIANGLE) \ EL(_BLACK_LEFT_POINTING_TRIANGLE) \ EL(_UP_DOWN_ARROW) \ EL(_DOUBLE_EXCLAMATION_MARK) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_BLACK_RECTANGLE) \ EL(_UP_DOWN_ARROW_WITH_BASE) \ EL(_UPWARDS_ARROW) \ EL(_DOWNWARDS_ARROW) \ EL(_RIGHTWARDS_ARROW) \ EL(_LEFTWARDS_ARROW) \ EL(_RIGHT_ANGLE) \ EL(_LEFT_RIGHT_ARROW) \ EL(_BLACK_UP_POINTING_TRIANGLE) \ EL(_BLACK_DOWN_POINTING_TRIANGLE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_HOUSE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REGISTERED_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_COPYRIGHT_SIGN) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_CENT_SIGN) \ EL(_YEN_SIGN) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_BROKEN_BAR) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_UPPER_HALF_BLOCK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_MICRO_SIGN) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_MACRON) \ EL(_ACUTE_ACCENT) \ EL(_SOFT_HYPHEN) \ EL(_PLUS_MINUS_SIGN) \ EL(_DOUBLE_LOW_LINE) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_PILCROW_SIGN) \ EL(_SECTION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_CEDILLA) \ EL(_DEGREE_SIGN) \ EL(_DIAERESIS) \ EL(_MIDDLE_DOT) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_THREE) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-16 */ #define T_NLIST_CP850(EL) \ EL(_WHITE_SMILING_FACE) \ EL(_BLACK_SMILING_FACE) \ EL(_BLACK_HEART_SUIT) \ EL(_BLACK_DIAMOND_SUIT) \ EL(_BLACK_CLUB_SUIT) \ EL(_BLACK_SPADE_SUIT) \ EL(_BULLET) \ EL(_INVERSE_BULLET) \ EL(_WHITE_CIRCLE) \ EL(_INVERSE_WHITE_CIRCLE) \ EL(_MALE_SIGN) \ EL(_FEMALE_SIGN) \ EL(_EIGHTH_NOTE) \ EL(_BEAMED_EIGHTH_NOTES) \ EL(_WHITE_SUN_WITH_RAYS) \ EL(_BLACK_RIGHT_POINTING_TRIANGLE) \ EL(_BLACK_LEFT_POINTING_TRIANGLE) \ EL(_UP_DOWN_ARROW) \ EL(_DOUBLE_EXCLAMATION_MARK) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_BLACK_RECTANGLE) \ EL(_UP_DOWN_ARROW_WITH_BASE) \ EL(_UPWARDS_ARROW) \ EL(_DOWNWARDS_ARROW) \ EL(_RIGHTWARDS_ARROW) \ EL(_LEFTWARDS_ARROW) \ EL(_RIGHT_ANGLE) \ EL(_LEFT_RIGHT_ARROW) \ EL(_BLACK_UP_POINTING_TRIANGLE) \ EL(_BLACK_DOWN_POINTING_TRIANGLE) \ EL(_HOUSE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REGISTERED_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_COPYRIGHT_SIGN) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_CENT_SIGN) \ EL(_YEN_SIGN) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_BROKEN_BAR) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_UPPER_HALF_BLOCK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_MICRO_SIGN) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_MACRON) \ EL(_ACUTE_ACCENT) \ EL(_SOFT_HYPHEN) \ EL(_PLUS_MINUS_SIGN) \ EL(_DOUBLE_LOW_LINE) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_PILCROW_SIGN) \ EL(_SECTION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_CEDILLA) \ EL(_DEGREE_SIGN) \ EL(_DIAERESIS) \ EL(_MIDDLE_DOT) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_THREE) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP850_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp852.h���������������������������������������������������������������������0000664�0000000�0000000�00000144277�13775351206�0016110�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP852_H #define TUTF_CP852_H #define T_CP852_CTRL_NULL 0x0000 #define T_CP852_CTRL_START_OF_HEADING 0x0001 #define T_CP852_CTRL_START_OF_TEXT 0x0002 #define T_CP852_CTRL_END_OF_TEXT 0x0003 #define T_CP852_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP852_CTRL_ENQUIRY 0x0005 #define T_CP852_CTRL_ACKNOWLEDGE 0x0006 #define T_CP852_CTRL_BELL 0x0007 #define T_CP852_CTRL_BACKSPACE 0x0008 #define T_CP852_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP852_CTRL_LINE_FEED 0x000A #define T_CP852_CTRL_LINE_TABULATION 0x000B #define T_CP852_CTRL_FORM_FEED 0x000C #define T_CP852_CTRL_CARRIAGE_RETURN 0x000D #define T_CP852_CTRL_SHIFT_OUT 0x000E #define T_CP852_CTRL_SHIFT_IN 0x000F #define T_CP852_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP852_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP852_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP852_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP852_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP852_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP852_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP852_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP852_CTRL_CANCEL 0x0018 #define T_CP852_CTRL_END_OF_MEDIUM 0x0019 #define T_CP852_CTRL_SUBSTITUTE 0x001A #define T_CP852_CTRL_ESCAPE 0x001B #define T_CP852_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP852_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP852_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP852_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP852_SPACE 0x0020 #define T_CP852_EXCLAMATION_MARK 0x0021 #define T_CP852_QUOTATION_MARK 0x0022 #define T_CP852_NUMBER_SIGN 0x0023 #define T_CP852_DOLLAR_SIGN 0x0024 #define T_CP852_PERCENT_SIGN 0x0025 #define T_CP852_AMPERSAND 0x0026 #define T_CP852_APOSTROPHE 0x0027 #define T_CP852_LEFT_PARENTHESIS 0x0028 #define T_CP852_RIGHT_PARENTHESIS 0x0029 #define T_CP852_ASTERISK 0x002A #define T_CP852_PLUS_SIGN 0x002B #define T_CP852_COMMA 0x002C #define T_CP852_HYPHEN_MINUS 0x002D #define T_CP852_FULL_STOP 0x002E #define T_CP852_SOLIDUS 0x002F #define T_CP852_DIGIT_ZERO 0x0030 #define T_CP852_DIGIT_ONE 0x0031 #define T_CP852_DIGIT_TWO 0x0032 #define T_CP852_DIGIT_THREE 0x0033 #define T_CP852_DIGIT_FOUR 0x0034 #define T_CP852_DIGIT_FIVE 0x0035 #define T_CP852_DIGIT_SIX 0x0036 #define T_CP852_DIGIT_SEVEN 0x0037 #define T_CP852_DIGIT_EIGHT 0x0038 #define T_CP852_DIGIT_NINE 0x0039 #define T_CP852_COLON 0x003A #define T_CP852_SEMICOLON 0x003B #define T_CP852_LESS_THAN_SIGN 0x003C #define T_CP852_EQUALS_SIGN 0x003D #define T_CP852_GREATER_THAN_SIGN 0x003E #define T_CP852_QUESTION_MARK 0x003F #define T_CP852_COMMERCIAL_AT 0x0040 #define T_CP852_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP852_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP852_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP852_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP852_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP852_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP852_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP852_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP852_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP852_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP852_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP852_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP852_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP852_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP852_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP852_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP852_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP852_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP852_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP852_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP852_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP852_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP852_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP852_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP852_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP852_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP852_LEFT_SQUARE_BRACKET 0x005B #define T_CP852_REVERSE_SOLIDUS 0x005C #define T_CP852_RIGHT_SQUARE_BRACKET 0x005D #define T_CP852_CIRCUMFLEX_ACCENT 0x005E #define T_CP852_LOW_LINE 0x005F #define T_CP852_GRAVE_ACCENT 0x0060 #define T_CP852_LATIN_SMALL_LETTER_A 0x0061 #define T_CP852_LATIN_SMALL_LETTER_B 0x0062 #define T_CP852_LATIN_SMALL_LETTER_C 0x0063 #define T_CP852_LATIN_SMALL_LETTER_D 0x0064 #define T_CP852_LATIN_SMALL_LETTER_E 0x0065 #define T_CP852_LATIN_SMALL_LETTER_F 0x0066 #define T_CP852_LATIN_SMALL_LETTER_G 0x0067 #define T_CP852_LATIN_SMALL_LETTER_H 0x0068 #define T_CP852_LATIN_SMALL_LETTER_I 0x0069 #define T_CP852_LATIN_SMALL_LETTER_J 0x006A #define T_CP852_LATIN_SMALL_LETTER_K 0x006B #define T_CP852_LATIN_SMALL_LETTER_L 0x006C #define T_CP852_LATIN_SMALL_LETTER_M 0x006D #define T_CP852_LATIN_SMALL_LETTER_N 0x006E #define T_CP852_LATIN_SMALL_LETTER_O 0x006F #define T_CP852_LATIN_SMALL_LETTER_P 0x0070 #define T_CP852_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP852_LATIN_SMALL_LETTER_R 0x0072 #define T_CP852_LATIN_SMALL_LETTER_S 0x0073 #define T_CP852_LATIN_SMALL_LETTER_T 0x0074 #define T_CP852_LATIN_SMALL_LETTER_U 0x0075 #define T_CP852_LATIN_SMALL_LETTER_V 0x0076 #define T_CP852_LATIN_SMALL_LETTER_W 0x0077 #define T_CP852_LATIN_SMALL_LETTER_X 0x0078 #define T_CP852_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP852_LATIN_SMALL_LETTER_Z 0x007A #define T_CP852_LEFT_CURLY_BRACKET 0x007B #define T_CP852_VERTICAL_LINE 0x007C #define T_CP852_RIGHT_CURLY_BRACKET 0x007D #define T_CP852_TILDE 0x007E #define T_CP852_CTRL_DELETE 0x007F #define T_CP852_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0080 #define T_CP852_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x0081 #define T_CP852_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x0082 #define T_CP852_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0083 #define T_CP852_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x0084 #define T_CP852_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE 0x0085 #define T_CP852_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x0086 #define T_CP852_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x0087 #define T_CP852_LATIN_SMALL_LETTER_L_WITH_STROKE 0x0088 #define T_CP852_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0089 #define T_CP852_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE 0x008A #define T_CP852_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE 0x008B #define T_CP852_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x008C #define T_CP852_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x008D #define T_CP852_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x008E #define T_CP852_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x008F #define T_CP852_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0090 #define T_CP852_LATIN_CAPITAL_LETTER_L_WITH_ACUTE 0x0091 #define T_CP852_LATIN_SMALL_LETTER_L_WITH_ACUTE 0x0092 #define T_CP852_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0093 #define T_CP852_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x0094 #define T_CP852_LATIN_CAPITAL_LETTER_L_WITH_CARON 0x0095 #define T_CP852_LATIN_SMALL_LETTER_L_WITH_CARON 0x0096 #define T_CP852_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x0097 #define T_CP852_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x0098 #define T_CP852_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0099 #define T_CP852_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_CP852_LATIN_CAPITAL_LETTER_T_WITH_CARON 0x009B #define T_CP852_LATIN_SMALL_LETTER_T_WITH_CARON 0x009C #define T_CP852_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x009D #define T_CP852_MULTIPLICATION_SIGN 0x009E #define T_CP852_LATIN_SMALL_LETTER_C_WITH_CARON 0x009F #define T_CP852_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00A0 #define T_CP852_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00A1 #define T_CP852_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_CP852_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00A3 #define T_CP852_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x00A4 #define T_CP852_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x00A5 #define T_CP852_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00A6 #define T_CP852_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00A7 #define T_CP852_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00A8 #define T_CP852_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00A9 #define T_CP852_NOT_SIGN 0x00AA #define T_CP852_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x00AB #define T_CP852_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x00AC #define T_CP852_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x00AD #define T_CP852_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP852_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP852_LIGHT_SHADE 0x00B0 #define T_CP852_MEDIUM_SHADE 0x00B1 #define T_CP852_DARK_SHADE 0x00B2 #define T_CP852_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP852_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP852_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00B5 #define T_CP852_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00B6 #define T_CP852_LATIN_CAPITAL_LETTER_E_WITH_CARON 0x00B7 #define T_CP852_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x00B8 #define T_CP852_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP852_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP852_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP852_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP852_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x00BD #define T_CP852_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x00BE #define T_CP852_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP852_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP852_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP852_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP852_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP852_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP852_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP852_LATIN_CAPITAL_LETTER_A_WITH_BREVE 0x00C6 #define T_CP852_LATIN_SMALL_LETTER_A_WITH_BREVE 0x00C7 #define T_CP852_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP852_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP852_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP852_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP852_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP852_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP852_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP852_CURRENCY_SIGN 0x00CF #define T_CP852_LATIN_SMALL_LETTER_D_WITH_STROKE 0x00D0 #define T_CP852_LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x00D1 #define T_CP852_LATIN_CAPITAL_LETTER_D_WITH_CARON 0x00D2 #define T_CP852_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00D3 #define T_CP852_LATIN_SMALL_LETTER_D_WITH_CARON 0x00D4 #define T_CP852_LATIN_CAPITAL_LETTER_N_WITH_CARON 0x00D5 #define T_CP852_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00D6 #define T_CP852_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00D7 #define T_CP852_LATIN_SMALL_LETTER_E_WITH_CARON 0x00D8 #define T_CP852_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP852_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP852_FULL_BLOCK 0x00DB #define T_CP852_LOWER_HALF_BLOCK 0x00DC #define T_CP852_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA 0x00DD #define T_CP852_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE 0x00DE #define T_CP852_UPPER_HALF_BLOCK 0x00DF #define T_CP852_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00E0 #define T_CP852_LATIN_SMALL_LETTER_SHARP_S 0x00E1 #define T_CP852_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00E2 #define T_CP852_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x00E3 #define T_CP852_LATIN_SMALL_LETTER_N_WITH_ACUTE 0x00E4 #define T_CP852_LATIN_SMALL_LETTER_N_WITH_CARON 0x00E5 #define T_CP852_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00E6 #define T_CP852_LATIN_SMALL_LETTER_S_WITH_CARON 0x00E7 #define T_CP852_LATIN_CAPITAL_LETTER_R_WITH_ACUTE 0x00E8 #define T_CP852_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00E9 #define T_CP852_LATIN_SMALL_LETTER_R_WITH_ACUTE 0x00EA #define T_CP852_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0x00EB #define T_CP852_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00EC #define T_CP852_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00ED #define T_CP852_LATIN_SMALL_LETTER_T_WITH_CEDILLA 0x00EE #define T_CP852_ACUTE_ACCENT 0x00EF #define T_CP852_SOFT_HYPHEN 0x00F0 #define T_CP852_DOUBLE_ACUTE_ACCENT 0x00F1 #define T_CP852_OGONEK 0x00F2 #define T_CP852_CARON 0x00F3 #define T_CP852_BREVE 0x00F4 #define T_CP852_SECTION_SIGN 0x00F5 #define T_CP852_DIVISION_SIGN 0x00F6 #define T_CP852_CEDILLA 0x00F7 #define T_CP852_DEGREE_SIGN 0x00F8 #define T_CP852_DIAERESIS 0x00F9 #define T_CP852_DOT_ABOVE 0x00FA #define T_CP852_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0x00FB #define T_CP852_LATIN_CAPITAL_LETTER_R_WITH_CARON 0x00FC #define T_CP852_LATIN_SMALL_LETTER_R_WITH_CARON 0x00FD #define T_CP852_BLACK_SQUARE 0x00FE #define T_CP852_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP852(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_L_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_T_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_NOT_SIGN) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_CARON) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE) \ EL(_UPPER_HALF_BLOCK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_T_WITH_CEDILLA) \ EL(_ACUTE_ACCENT) \ EL(_SOFT_HYPHEN) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) \ EL(_BREVE) \ EL(_SECTION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_CEDILLA) \ EL(_DEGREE_SIGN) \ EL(_DIAERESIS) \ EL(_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_R_WITH_CARON) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP852(EL) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_L_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_T_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_NOT_SIGN) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_CARON) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE) \ EL(_UPPER_HALF_BLOCK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_T_WITH_CEDILLA) \ EL(_ACUTE_ACCENT) \ EL(_SOFT_HYPHEN) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) \ EL(_BREVE) \ EL(_SECTION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_CEDILLA) \ EL(_DEGREE_SIGN) \ EL(_DIAERESIS) \ EL(_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_R_WITH_CARON) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP852_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp855.h���������������������������������������������������������������������0000664�0000000�0000000�00000143477�13775351206�0016114�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP855_H #define TUTF_CP855_H #define T_CP855_CTRL_NULL 0x0000 #define T_CP855_CTRL_START_OF_HEADING 0x0001 #define T_CP855_CTRL_START_OF_TEXT 0x0002 #define T_CP855_CTRL_END_OF_TEXT 0x0003 #define T_CP855_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP855_CTRL_ENQUIRY 0x0005 #define T_CP855_CTRL_ACKNOWLEDGE 0x0006 #define T_CP855_CTRL_BELL 0x0007 #define T_CP855_CTRL_BACKSPACE 0x0008 #define T_CP855_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP855_CTRL_LINE_FEED 0x000A #define T_CP855_CTRL_LINE_TABULATION 0x000B #define T_CP855_CTRL_FORM_FEED 0x000C #define T_CP855_CTRL_CARRIAGE_RETURN 0x000D #define T_CP855_CTRL_SHIFT_OUT 0x000E #define T_CP855_CTRL_SHIFT_IN 0x000F #define T_CP855_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP855_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP855_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP855_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP855_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP855_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP855_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP855_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP855_CTRL_CANCEL 0x0018 #define T_CP855_CTRL_END_OF_MEDIUM 0x0019 #define T_CP855_CTRL_SUBSTITUTE 0x001A #define T_CP855_CTRL_ESCAPE 0x001B #define T_CP855_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP855_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP855_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP855_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP855_SPACE 0x0020 #define T_CP855_EXCLAMATION_MARK 0x0021 #define T_CP855_QUOTATION_MARK 0x0022 #define T_CP855_NUMBER_SIGN 0x0023 #define T_CP855_DOLLAR_SIGN 0x0024 #define T_CP855_PERCENT_SIGN 0x0025 #define T_CP855_AMPERSAND 0x0026 #define T_CP855_APOSTROPHE 0x0027 #define T_CP855_LEFT_PARENTHESIS 0x0028 #define T_CP855_RIGHT_PARENTHESIS 0x0029 #define T_CP855_ASTERISK 0x002A #define T_CP855_PLUS_SIGN 0x002B #define T_CP855_COMMA 0x002C #define T_CP855_HYPHEN_MINUS 0x002D #define T_CP855_FULL_STOP 0x002E #define T_CP855_SOLIDUS 0x002F #define T_CP855_DIGIT_ZERO 0x0030 #define T_CP855_DIGIT_ONE 0x0031 #define T_CP855_DIGIT_TWO 0x0032 #define T_CP855_DIGIT_THREE 0x0033 #define T_CP855_DIGIT_FOUR 0x0034 #define T_CP855_DIGIT_FIVE 0x0035 #define T_CP855_DIGIT_SIX 0x0036 #define T_CP855_DIGIT_SEVEN 0x0037 #define T_CP855_DIGIT_EIGHT 0x0038 #define T_CP855_DIGIT_NINE 0x0039 #define T_CP855_COLON 0x003A #define T_CP855_SEMICOLON 0x003B #define T_CP855_LESS_THAN_SIGN 0x003C #define T_CP855_EQUALS_SIGN 0x003D #define T_CP855_GREATER_THAN_SIGN 0x003E #define T_CP855_QUESTION_MARK 0x003F #define T_CP855_COMMERCIAL_AT 0x0040 #define T_CP855_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP855_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP855_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP855_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP855_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP855_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP855_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP855_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP855_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP855_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP855_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP855_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP855_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP855_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP855_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP855_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP855_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP855_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP855_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP855_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP855_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP855_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP855_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP855_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP855_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP855_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP855_LEFT_SQUARE_BRACKET 0x005B #define T_CP855_REVERSE_SOLIDUS 0x005C #define T_CP855_RIGHT_SQUARE_BRACKET 0x005D #define T_CP855_CIRCUMFLEX_ACCENT 0x005E #define T_CP855_LOW_LINE 0x005F #define T_CP855_GRAVE_ACCENT 0x0060 #define T_CP855_LATIN_SMALL_LETTER_A 0x0061 #define T_CP855_LATIN_SMALL_LETTER_B 0x0062 #define T_CP855_LATIN_SMALL_LETTER_C 0x0063 #define T_CP855_LATIN_SMALL_LETTER_D 0x0064 #define T_CP855_LATIN_SMALL_LETTER_E 0x0065 #define T_CP855_LATIN_SMALL_LETTER_F 0x0066 #define T_CP855_LATIN_SMALL_LETTER_G 0x0067 #define T_CP855_LATIN_SMALL_LETTER_H 0x0068 #define T_CP855_LATIN_SMALL_LETTER_I 0x0069 #define T_CP855_LATIN_SMALL_LETTER_J 0x006A #define T_CP855_LATIN_SMALL_LETTER_K 0x006B #define T_CP855_LATIN_SMALL_LETTER_L 0x006C #define T_CP855_LATIN_SMALL_LETTER_M 0x006D #define T_CP855_LATIN_SMALL_LETTER_N 0x006E #define T_CP855_LATIN_SMALL_LETTER_O 0x006F #define T_CP855_LATIN_SMALL_LETTER_P 0x0070 #define T_CP855_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP855_LATIN_SMALL_LETTER_R 0x0072 #define T_CP855_LATIN_SMALL_LETTER_S 0x0073 #define T_CP855_LATIN_SMALL_LETTER_T 0x0074 #define T_CP855_LATIN_SMALL_LETTER_U 0x0075 #define T_CP855_LATIN_SMALL_LETTER_V 0x0076 #define T_CP855_LATIN_SMALL_LETTER_W 0x0077 #define T_CP855_LATIN_SMALL_LETTER_X 0x0078 #define T_CP855_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP855_LATIN_SMALL_LETTER_Z 0x007A #define T_CP855_LEFT_CURLY_BRACKET 0x007B #define T_CP855_VERTICAL_LINE 0x007C #define T_CP855_RIGHT_CURLY_BRACKET 0x007D #define T_CP855_TILDE 0x007E #define T_CP855_CTRL_DELETE 0x007F #define T_CP855_CYRILLIC_SMALL_LETTER_DJE 0x0080 #define T_CP855_CYRILLIC_CAPITAL_LETTER_DJE 0x0081 #define T_CP855_CYRILLIC_SMALL_LETTER_GJE 0x0082 #define T_CP855_CYRILLIC_CAPITAL_LETTER_GJE 0x0083 #define T_CP855_CYRILLIC_SMALL_LETTER_IO 0x0084 #define T_CP855_CYRILLIC_CAPITAL_LETTER_IO 0x0085 #define T_CP855_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0x0086 #define T_CP855_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0x0087 #define T_CP855_CYRILLIC_SMALL_LETTER_DZE 0x0088 #define T_CP855_CYRILLIC_CAPITAL_LETTER_DZE 0x0089 #define T_CP855_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x008A #define T_CP855_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x008B #define T_CP855_CYRILLIC_SMALL_LETTER_YI 0x008C #define T_CP855_CYRILLIC_CAPITAL_LETTER_YI 0x008D #define T_CP855_CYRILLIC_SMALL_LETTER_JE 0x008E #define T_CP855_CYRILLIC_CAPITAL_LETTER_JE 0x008F #define T_CP855_CYRILLIC_SMALL_LETTER_LJE 0x0090 #define T_CP855_CYRILLIC_CAPITAL_LETTER_LJE 0x0091 #define T_CP855_CYRILLIC_SMALL_LETTER_NJE 0x0092 #define T_CP855_CYRILLIC_CAPITAL_LETTER_NJE 0x0093 #define T_CP855_CYRILLIC_SMALL_LETTER_TSHE 0x0094 #define T_CP855_CYRILLIC_CAPITAL_LETTER_TSHE 0x0095 #define T_CP855_CYRILLIC_SMALL_LETTER_KJE 0x0096 #define T_CP855_CYRILLIC_CAPITAL_LETTER_KJE 0x0097 #define T_CP855_CYRILLIC_SMALL_LETTER_SHORT_U 0x0098 #define T_CP855_CYRILLIC_CAPITAL_LETTER_SHORT_U 0x0099 #define T_CP855_CYRILLIC_SMALL_LETTER_DZHE 0x009A #define T_CP855_CYRILLIC_CAPITAL_LETTER_DZHE 0x009B #define T_CP855_CYRILLIC_SMALL_LETTER_YU 0x009C #define T_CP855_CYRILLIC_CAPITAL_LETTER_YU 0x009D #define T_CP855_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x009E #define T_CP855_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x009F #define T_CP855_CYRILLIC_SMALL_LETTER_A 0x00A0 #define T_CP855_CYRILLIC_CAPITAL_LETTER_A 0x00A1 #define T_CP855_CYRILLIC_SMALL_LETTER_BE 0x00A2 #define T_CP855_CYRILLIC_CAPITAL_LETTER_BE 0x00A3 #define T_CP855_CYRILLIC_SMALL_LETTER_TSE 0x00A4 #define T_CP855_CYRILLIC_CAPITAL_LETTER_TSE 0x00A5 #define T_CP855_CYRILLIC_SMALL_LETTER_DE 0x00A6 #define T_CP855_CYRILLIC_CAPITAL_LETTER_DE 0x00A7 #define T_CP855_CYRILLIC_SMALL_LETTER_IE 0x00A8 #define T_CP855_CYRILLIC_CAPITAL_LETTER_IE 0x00A9 #define T_CP855_CYRILLIC_SMALL_LETTER_EF 0x00AA #define T_CP855_CYRILLIC_CAPITAL_LETTER_EF 0x00AB #define T_CP855_CYRILLIC_SMALL_LETTER_GHE 0x00AC #define T_CP855_CYRILLIC_CAPITAL_LETTER_GHE 0x00AD #define T_CP855_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP855_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP855_LIGHT_SHADE 0x00B0 #define T_CP855_MEDIUM_SHADE 0x00B1 #define T_CP855_DARK_SHADE 0x00B2 #define T_CP855_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP855_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP855_CYRILLIC_SMALL_LETTER_HA 0x00B5 #define T_CP855_CYRILLIC_CAPITAL_LETTER_HA 0x00B6 #define T_CP855_CYRILLIC_SMALL_LETTER_I 0x00B7 #define T_CP855_CYRILLIC_CAPITAL_LETTER_I 0x00B8 #define T_CP855_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP855_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP855_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP855_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP855_CYRILLIC_SMALL_LETTER_SHORT_I 0x00BD #define T_CP855_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x00BE #define T_CP855_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP855_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP855_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP855_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP855_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP855_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP855_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP855_CYRILLIC_SMALL_LETTER_KA 0x00C6 #define T_CP855_CYRILLIC_CAPITAL_LETTER_KA 0x00C7 #define T_CP855_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP855_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP855_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP855_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP855_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP855_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP855_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP855_CURRENCY_SIGN 0x00CF #define T_CP855_CYRILLIC_SMALL_LETTER_EL 0x00D0 #define T_CP855_CYRILLIC_CAPITAL_LETTER_EL 0x00D1 #define T_CP855_CYRILLIC_SMALL_LETTER_EM 0x00D2 #define T_CP855_CYRILLIC_CAPITAL_LETTER_EM 0x00D3 #define T_CP855_CYRILLIC_SMALL_LETTER_EN 0x00D4 #define T_CP855_CYRILLIC_CAPITAL_LETTER_EN 0x00D5 #define T_CP855_CYRILLIC_SMALL_LETTER_O 0x00D6 #define T_CP855_CYRILLIC_CAPITAL_LETTER_O 0x00D7 #define T_CP855_CYRILLIC_SMALL_LETTER_PE 0x00D8 #define T_CP855_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP855_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP855_FULL_BLOCK 0x00DB #define T_CP855_LOWER_HALF_BLOCK 0x00DC #define T_CP855_CYRILLIC_CAPITAL_LETTER_PE 0x00DD #define T_CP855_CYRILLIC_SMALL_LETTER_YA 0x00DE #define T_CP855_UPPER_HALF_BLOCK 0x00DF #define T_CP855_CYRILLIC_CAPITAL_LETTER_YA 0x00E0 #define T_CP855_CYRILLIC_SMALL_LETTER_ER 0x00E1 #define T_CP855_CYRILLIC_CAPITAL_LETTER_ER 0x00E2 #define T_CP855_CYRILLIC_SMALL_LETTER_ES 0x00E3 #define T_CP855_CYRILLIC_CAPITAL_LETTER_ES 0x00E4 #define T_CP855_CYRILLIC_SMALL_LETTER_TE 0x00E5 #define T_CP855_CYRILLIC_CAPITAL_LETTER_TE 0x00E6 #define T_CP855_CYRILLIC_SMALL_LETTER_U 0x00E7 #define T_CP855_CYRILLIC_CAPITAL_LETTER_U 0x00E8 #define T_CP855_CYRILLIC_SMALL_LETTER_ZHE 0x00E9 #define T_CP855_CYRILLIC_CAPITAL_LETTER_ZHE 0x00EA #define T_CP855_CYRILLIC_SMALL_LETTER_VE 0x00EB #define T_CP855_CYRILLIC_CAPITAL_LETTER_VE 0x00EC #define T_CP855_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0x00ED #define T_CP855_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x00EE #define T_CP855_NUMERO_SIGN 0x00EF #define T_CP855_SOFT_HYPHEN 0x00F0 #define T_CP855_CYRILLIC_SMALL_LETTER_YERU 0x00F1 #define T_CP855_CYRILLIC_CAPITAL_LETTER_YERU 0x00F2 #define T_CP855_CYRILLIC_SMALL_LETTER_ZE 0x00F3 #define T_CP855_CYRILLIC_CAPITAL_LETTER_ZE 0x00F4 #define T_CP855_CYRILLIC_SMALL_LETTER_SHA 0x00F5 #define T_CP855_CYRILLIC_CAPITAL_LETTER_SHA 0x00F6 #define T_CP855_CYRILLIC_SMALL_LETTER_E 0x00F7 #define T_CP855_CYRILLIC_CAPITAL_LETTER_E 0x00F8 #define T_CP855_CYRILLIC_SMALL_LETTER_SHCHA 0x00F9 #define T_CP855_CYRILLIC_CAPITAL_LETTER_SHCHA 0x00FA #define T_CP855_CYRILLIC_SMALL_LETTER_CHE 0x00FB #define T_CP855_CYRILLIC_CAPITAL_LETTER_CHE 0x00FC #define T_CP855_SECTION_SIGN 0x00FD #define T_CP855_BLACK_SQUARE 0x00FE #define T_CP855_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP855(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_DZE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZE) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_SMALL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_JE) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_TSHE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSHE) \ EL(_CYRILLIC_SMALL_LETTER_KJE) \ EL(_CYRILLIC_CAPITAL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_CURRENCY_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_UPPER_HALF_BLOCK) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_NUMERO_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_SECTION_SIGN) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP855(EL) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_DZE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZE) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_SMALL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_JE) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_TSHE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSHE) \ EL(_CYRILLIC_SMALL_LETTER_KJE) \ EL(_CYRILLIC_CAPITAL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_CURRENCY_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_UPPER_HALF_BLOCK) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_NUMERO_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_SECTION_SIGN) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP855_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp856.h���������������������������������������������������������������������0000664�0000000�0000000�00000141466�13775351206�0016111�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP856_H #define TUTF_CP856_H #define T_CP856_CTRL_NULL 0x0000 #define T_CP856_CTRL_START_OF_HEADING 0x0001 #define T_CP856_CTRL_START_OF_TEXT 0x0002 #define T_CP856_CTRL_END_OF_TEXT 0x0003 #define T_CP856_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP856_CTRL_ENQUIRY 0x0005 #define T_CP856_CTRL_ACKNOWLEDGE 0x0006 #define T_CP856_CTRL_BELL 0x0007 #define T_CP856_CTRL_BACKSPACE 0x0008 #define T_CP856_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP856_CTRL_LINE_FEED 0x000A #define T_CP856_CTRL_LINE_TABULATION 0x000B #define T_CP856_CTRL_FORM_FEED 0x000C #define T_CP856_CTRL_CARRIAGE_RETURN 0x000D #define T_CP856_CTRL_SHIFT_OUT 0x000E #define T_CP856_CTRL_SHIFT_IN 0x000F #define T_CP856_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP856_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP856_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP856_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP856_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP856_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP856_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP856_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP856_CTRL_CANCEL 0x0018 #define T_CP856_CTRL_END_OF_MEDIUM 0x0019 #define T_CP856_CTRL_SUBSTITUTE 0x001A #define T_CP856_CTRL_ESCAPE 0x001B #define T_CP856_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP856_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP856_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP856_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP856_SPACE 0x0020 #define T_CP856_EXCLAMATION_MARK 0x0021 #define T_CP856_QUOTATION_MARK 0x0022 #define T_CP856_NUMBER_SIGN 0x0023 #define T_CP856_DOLLAR_SIGN 0x0024 #define T_CP856_PERCENT_SIGN 0x0025 #define T_CP856_AMPERSAND 0x0026 #define T_CP856_APOSTROPHE 0x0027 #define T_CP856_LEFT_PARENTHESIS 0x0028 #define T_CP856_RIGHT_PARENTHESIS 0x0029 #define T_CP856_ASTERISK 0x002A #define T_CP856_PLUS_SIGN 0x002B #define T_CP856_COMMA 0x002C #define T_CP856_HYPHEN_MINUS 0x002D #define T_CP856_FULL_STOP 0x002E #define T_CP856_SOLIDUS 0x002F #define T_CP856_DIGIT_ZERO 0x0030 #define T_CP856_DIGIT_ONE 0x0031 #define T_CP856_DIGIT_TWO 0x0032 #define T_CP856_DIGIT_THREE 0x0033 #define T_CP856_DIGIT_FOUR 0x0034 #define T_CP856_DIGIT_FIVE 0x0035 #define T_CP856_DIGIT_SIX 0x0036 #define T_CP856_DIGIT_SEVEN 0x0037 #define T_CP856_DIGIT_EIGHT 0x0038 #define T_CP856_DIGIT_NINE 0x0039 #define T_CP856_COLON 0x003A #define T_CP856_SEMICOLON 0x003B #define T_CP856_LESS_THAN_SIGN 0x003C #define T_CP856_EQUALS_SIGN 0x003D #define T_CP856_GREATER_THAN_SIGN 0x003E #define T_CP856_QUESTION_MARK 0x003F #define T_CP856_COMMERCIAL_AT 0x0040 #define T_CP856_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP856_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP856_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP856_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP856_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP856_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP856_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP856_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP856_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP856_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP856_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP856_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP856_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP856_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP856_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP856_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP856_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP856_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP856_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP856_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP856_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP856_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP856_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP856_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP856_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP856_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP856_LEFT_SQUARE_BRACKET 0x005B #define T_CP856_REVERSE_SOLIDUS 0x005C #define T_CP856_RIGHT_SQUARE_BRACKET 0x005D #define T_CP856_CIRCUMFLEX_ACCENT 0x005E #define T_CP856_LOW_LINE 0x005F #define T_CP856_GRAVE_ACCENT 0x0060 #define T_CP856_LATIN_SMALL_LETTER_A 0x0061 #define T_CP856_LATIN_SMALL_LETTER_B 0x0062 #define T_CP856_LATIN_SMALL_LETTER_C 0x0063 #define T_CP856_LATIN_SMALL_LETTER_D 0x0064 #define T_CP856_LATIN_SMALL_LETTER_E 0x0065 #define T_CP856_LATIN_SMALL_LETTER_F 0x0066 #define T_CP856_LATIN_SMALL_LETTER_G 0x0067 #define T_CP856_LATIN_SMALL_LETTER_H 0x0068 #define T_CP856_LATIN_SMALL_LETTER_I 0x0069 #define T_CP856_LATIN_SMALL_LETTER_J 0x006A #define T_CP856_LATIN_SMALL_LETTER_K 0x006B #define T_CP856_LATIN_SMALL_LETTER_L 0x006C #define T_CP856_LATIN_SMALL_LETTER_M 0x006D #define T_CP856_LATIN_SMALL_LETTER_N 0x006E #define T_CP856_LATIN_SMALL_LETTER_O 0x006F #define T_CP856_LATIN_SMALL_LETTER_P 0x0070 #define T_CP856_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP856_LATIN_SMALL_LETTER_R 0x0072 #define T_CP856_LATIN_SMALL_LETTER_S 0x0073 #define T_CP856_LATIN_SMALL_LETTER_T 0x0074 #define T_CP856_LATIN_SMALL_LETTER_U 0x0075 #define T_CP856_LATIN_SMALL_LETTER_V 0x0076 #define T_CP856_LATIN_SMALL_LETTER_W 0x0077 #define T_CP856_LATIN_SMALL_LETTER_X 0x0078 #define T_CP856_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP856_LATIN_SMALL_LETTER_Z 0x007A #define T_CP856_LEFT_CURLY_BRACKET 0x007B #define T_CP856_VERTICAL_LINE 0x007C #define T_CP856_RIGHT_CURLY_BRACKET 0x007D #define T_CP856_TILDE 0x007E #define T_CP856_CTRL_DELETE 0x007F #define T_CP856_HEBREW_LETTER_ALEF 0x0080 #define T_CP856_HEBREW_LETTER_BET 0x0081 #define T_CP856_HEBREW_LETTER_GIMEL 0x0082 #define T_CP856_HEBREW_LETTER_DALET 0x0083 #define T_CP856_HEBREW_LETTER_HE 0x0084 #define T_CP856_HEBREW_LETTER_VAV 0x0085 #define T_CP856_HEBREW_LETTER_ZAYIN 0x0086 #define T_CP856_HEBREW_LETTER_HET 0x0087 #define T_CP856_HEBREW_LETTER_TET 0x0088 #define T_CP856_HEBREW_LETTER_YOD 0x0089 #define T_CP856_HEBREW_LETTER_FINAL_KAF 0x008A #define T_CP856_HEBREW_LETTER_KAF 0x008B #define T_CP856_HEBREW_LETTER_LAMED 0x008C #define T_CP856_HEBREW_LETTER_FINAL_MEM 0x008D #define T_CP856_HEBREW_LETTER_MEM 0x008E #define T_CP856_HEBREW_LETTER_FINAL_NUN 0x008F #define T_CP856_HEBREW_LETTER_NUN 0x0090 #define T_CP856_HEBREW_LETTER_SAMEKH 0x0091 #define T_CP856_HEBREW_LETTER_AYIN 0x0092 #define T_CP856_HEBREW_LETTER_FINAL_PE 0x0093 #define T_CP856_HEBREW_LETTER_PE 0x0094 #define T_CP856_HEBREW_LETTER_FINAL_TSADI 0x0095 #define T_CP856_HEBREW_LETTER_TSADI 0x0096 #define T_CP856_HEBREW_LETTER_QOF 0x0097 #define T_CP856_HEBREW_LETTER_RESH 0x0098 #define T_CP856_HEBREW_LETTER_SHIN 0x0099 #define T_CP856_HEBREW_LETTER_TAV 0x009A #define T_CP856_UNDEFINED_009B 0x009B #define T_CP856_POUND_SIGN 0x009C #define T_CP856_UNDEFINED_009D 0x009D #define T_CP856_MULTIPLICATION_SIGN 0x009E #define T_CP856_UNDEFINED_009F 0x009F #define T_CP856_UNDEFINED_00A0 0x00A0 #define T_CP856_UNDEFINED_00A1 0x00A1 #define T_CP856_UNDEFINED_00A2 0x00A2 #define T_CP856_UNDEFINED_00A3 0x00A3 #define T_CP856_UNDEFINED_00A4 0x00A4 #define T_CP856_UNDEFINED_00A5 0x00A5 #define T_CP856_UNDEFINED_00A6 0x00A6 #define T_CP856_UNDEFINED_00A7 0x00A7 #define T_CP856_UNDEFINED_00A8 0x00A8 #define T_CP856_REGISTERED_SIGN 0x00A9 #define T_CP856_NOT_SIGN 0x00AA #define T_CP856_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP856_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_CP856_UNDEFINED_00AD 0x00AD #define T_CP856_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP856_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP856_LIGHT_SHADE 0x00B0 #define T_CP856_MEDIUM_SHADE 0x00B1 #define T_CP856_DARK_SHADE 0x00B2 #define T_CP856_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP856_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP856_UNDEFINED_00B5 0x00B5 #define T_CP856_UNDEFINED_00B6 0x00B6 #define T_CP856_UNDEFINED_00B7 0x00B7 #define T_CP856_COPYRIGHT_SIGN 0x00B8 #define T_CP856_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP856_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP856_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP856_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP856_CENT_SIGN 0x00BD #define T_CP856_YEN_SIGN 0x00BE #define T_CP856_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP856_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP856_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP856_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP856_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP856_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP856_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP856_UNDEFINED_00C6 0x00C6 #define T_CP856_UNDEFINED_00C7 0x00C7 #define T_CP856_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP856_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP856_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP856_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP856_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP856_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP856_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP856_CURRENCY_SIGN 0x00CF #define T_CP856_UNDEFINED_00D0 0x00D0 #define T_CP856_UNDEFINED_00D1 0x00D1 #define T_CP856_UNDEFINED_00D2 0x00D2 #define T_CP856_UNDEFINED_00D3 0x00D3 #define T_CP856_UNDEFINED_00D4 0x00D4 #define T_CP856_UNDEFINED_00D5 0x00D5 #define T_CP856_UNDEFINED_00D6 0x00D6 #define T_CP856_UNDEFINED_00D7 0x00D7 #define T_CP856_UNDEFINED_00D8 0x00D8 #define T_CP856_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP856_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP856_FULL_BLOCK 0x00DB #define T_CP856_LOWER_HALF_BLOCK 0x00DC #define T_CP856_BROKEN_BAR 0x00DD #define T_CP856_UNDEFINED_00DE 0x00DE #define T_CP856_UPPER_HALF_BLOCK 0x00DF #define T_CP856_UNDEFINED_00E0 0x00E0 #define T_CP856_UNDEFINED_00E1 0x00E1 #define T_CP856_UNDEFINED_00E2 0x00E2 #define T_CP856_UNDEFINED_00E3 0x00E3 #define T_CP856_UNDEFINED_00E4 0x00E4 #define T_CP856_UNDEFINED_00E5 0x00E5 #define T_CP856_MICRO_SIGN 0x00E6 #define T_CP856_UNDEFINED_00E7 0x00E7 #define T_CP856_UNDEFINED_00E8 0x00E8 #define T_CP856_UNDEFINED_00E9 0x00E9 #define T_CP856_UNDEFINED_00EA 0x00EA #define T_CP856_UNDEFINED_00EB 0x00EB #define T_CP856_UNDEFINED_00EC 0x00EC #define T_CP856_UNDEFINED_00ED 0x00ED #define T_CP856_MACRON 0x00EE #define T_CP856_ACUTE_ACCENT 0x00EF #define T_CP856_SOFT_HYPHEN 0x00F0 #define T_CP856_PLUS_MINUS_SIGN 0x00F1 #define T_CP856_DOUBLE_LOW_LINE 0x00F2 #define T_CP856_VULGAR_FRACTION_THREE_QUARTERS 0x00F3 #define T_CP856_PILCROW_SIGN 0x00F4 #define T_CP856_SECTION_SIGN 0x00F5 #define T_CP856_DIVISION_SIGN 0x00F6 #define T_CP856_CEDILLA 0x00F7 #define T_CP856_DEGREE_SIGN 0x00F8 #define T_CP856_DIAERESIS 0x00F9 #define T_CP856_MIDDLE_DOT 0x00FA #define T_CP856_SUPERSCRIPT_ONE 0x00FB #define T_CP856_SUPERSCRIPT_THREE 0x00FC #define T_CP856_SUPERSCRIPT_TWO 0x00FD #define T_CP856_BLACK_SQUARE 0x00FE #define T_CP856_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP856(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_UNDEFINED_009B) \ EL(_POUND_SIGN) \ EL(_UNDEFINED_009D) \ EL(_MULTIPLICATION_SIGN) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_REGISTERED_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_UNDEFINED_00AD) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_COPYRIGHT_SIGN) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_CENT_SIGN) \ EL(_YEN_SIGN) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_UNDEFINED_00C6) \ EL(_UNDEFINED_00C7) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_CURRENCY_SIGN) \ EL(_UNDEFINED_00D0) \ EL(_UNDEFINED_00D1) \ EL(_UNDEFINED_00D2) \ EL(_UNDEFINED_00D3) \ EL(_UNDEFINED_00D4) \ EL(_UNDEFINED_00D5) \ EL(_UNDEFINED_00D6) \ EL(_UNDEFINED_00D7) \ EL(_UNDEFINED_00D8) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_BROKEN_BAR) \ EL(_UNDEFINED_00DE) \ EL(_UPPER_HALF_BLOCK) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_MICRO_SIGN) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_MACRON) \ EL(_ACUTE_ACCENT) \ EL(_SOFT_HYPHEN) \ EL(_PLUS_MINUS_SIGN) \ EL(_DOUBLE_LOW_LINE) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_PILCROW_SIGN) \ EL(_SECTION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_CEDILLA) \ EL(_DEGREE_SIGN) \ EL(_DIAERESIS) \ EL(_MIDDLE_DOT) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_THREE) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP856(EL) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_UNDEFINED_009B) \ EL(_POUND_SIGN) \ EL(_UNDEFINED_009D) \ EL(_MULTIPLICATION_SIGN) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_REGISTERED_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_UNDEFINED_00AD) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_COPYRIGHT_SIGN) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_CENT_SIGN) \ EL(_YEN_SIGN) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_UNDEFINED_00C6) \ EL(_UNDEFINED_00C7) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_CURRENCY_SIGN) \ EL(_UNDEFINED_00D0) \ EL(_UNDEFINED_00D1) \ EL(_UNDEFINED_00D2) \ EL(_UNDEFINED_00D3) \ EL(_UNDEFINED_00D4) \ EL(_UNDEFINED_00D5) \ EL(_UNDEFINED_00D6) \ EL(_UNDEFINED_00D7) \ EL(_UNDEFINED_00D8) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_BROKEN_BAR) \ EL(_UNDEFINED_00DE) \ EL(_UPPER_HALF_BLOCK) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_MICRO_SIGN) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_MACRON) \ EL(_ACUTE_ACCENT) \ EL(_SOFT_HYPHEN) \ EL(_PLUS_MINUS_SIGN) \ EL(_DOUBLE_LOW_LINE) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_PILCROW_SIGN) \ EL(_SECTION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_CEDILLA) \ EL(_DEGREE_SIGN) \ EL(_DIAERESIS) \ EL(_MIDDLE_DOT) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_THREE) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP856_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp857.h���������������������������������������������������������������������0000664�0000000�0000000�00000143461�13775351206�0016107�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP857_H #define TUTF_CP857_H #define T_CP857_CTRL_NULL 0x0000 #define T_CP857_CTRL_START_OF_HEADING 0x0001 #define T_CP857_CTRL_START_OF_TEXT 0x0002 #define T_CP857_CTRL_END_OF_TEXT 0x0003 #define T_CP857_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP857_CTRL_ENQUIRY 0x0005 #define T_CP857_CTRL_ACKNOWLEDGE 0x0006 #define T_CP857_CTRL_BELL 0x0007 #define T_CP857_CTRL_BACKSPACE 0x0008 #define T_CP857_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP857_CTRL_LINE_FEED 0x000A #define T_CP857_CTRL_LINE_TABULATION 0x000B #define T_CP857_CTRL_FORM_FEED 0x000C #define T_CP857_CTRL_CARRIAGE_RETURN 0x000D #define T_CP857_CTRL_SHIFT_OUT 0x000E #define T_CP857_CTRL_SHIFT_IN 0x000F #define T_CP857_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP857_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP857_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP857_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP857_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP857_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP857_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP857_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP857_CTRL_CANCEL 0x0018 #define T_CP857_CTRL_END_OF_MEDIUM 0x0019 #define T_CP857_CTRL_SUBSTITUTE 0x001A #define T_CP857_CTRL_ESCAPE 0x001B #define T_CP857_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP857_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP857_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP857_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP857_SPACE 0x0020 #define T_CP857_EXCLAMATION_MARK 0x0021 #define T_CP857_QUOTATION_MARK 0x0022 #define T_CP857_NUMBER_SIGN 0x0023 #define T_CP857_DOLLAR_SIGN 0x0024 #define T_CP857_PERCENT_SIGN 0x0025 #define T_CP857_AMPERSAND 0x0026 #define T_CP857_APOSTROPHE 0x0027 #define T_CP857_LEFT_PARENTHESIS 0x0028 #define T_CP857_RIGHT_PARENTHESIS 0x0029 #define T_CP857_ASTERISK 0x002A #define T_CP857_PLUS_SIGN 0x002B #define T_CP857_COMMA 0x002C #define T_CP857_HYPHEN_MINUS 0x002D #define T_CP857_FULL_STOP 0x002E #define T_CP857_SOLIDUS 0x002F #define T_CP857_DIGIT_ZERO 0x0030 #define T_CP857_DIGIT_ONE 0x0031 #define T_CP857_DIGIT_TWO 0x0032 #define T_CP857_DIGIT_THREE 0x0033 #define T_CP857_DIGIT_FOUR 0x0034 #define T_CP857_DIGIT_FIVE 0x0035 #define T_CP857_DIGIT_SIX 0x0036 #define T_CP857_DIGIT_SEVEN 0x0037 #define T_CP857_DIGIT_EIGHT 0x0038 #define T_CP857_DIGIT_NINE 0x0039 #define T_CP857_COLON 0x003A #define T_CP857_SEMICOLON 0x003B #define T_CP857_LESS_THAN_SIGN 0x003C #define T_CP857_EQUALS_SIGN 0x003D #define T_CP857_GREATER_THAN_SIGN 0x003E #define T_CP857_QUESTION_MARK 0x003F #define T_CP857_COMMERCIAL_AT 0x0040 #define T_CP857_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP857_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP857_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP857_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP857_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP857_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP857_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP857_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP857_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP857_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP857_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP857_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP857_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP857_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP857_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP857_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP857_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP857_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP857_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP857_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP857_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP857_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP857_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP857_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP857_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP857_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP857_LEFT_SQUARE_BRACKET 0x005B #define T_CP857_REVERSE_SOLIDUS 0x005C #define T_CP857_RIGHT_SQUARE_BRACKET 0x005D #define T_CP857_CIRCUMFLEX_ACCENT 0x005E #define T_CP857_LOW_LINE 0x005F #define T_CP857_GRAVE_ACCENT 0x0060 #define T_CP857_LATIN_SMALL_LETTER_A 0x0061 #define T_CP857_LATIN_SMALL_LETTER_B 0x0062 #define T_CP857_LATIN_SMALL_LETTER_C 0x0063 #define T_CP857_LATIN_SMALL_LETTER_D 0x0064 #define T_CP857_LATIN_SMALL_LETTER_E 0x0065 #define T_CP857_LATIN_SMALL_LETTER_F 0x0066 #define T_CP857_LATIN_SMALL_LETTER_G 0x0067 #define T_CP857_LATIN_SMALL_LETTER_H 0x0068 #define T_CP857_LATIN_SMALL_LETTER_I 0x0069 #define T_CP857_LATIN_SMALL_LETTER_J 0x006A #define T_CP857_LATIN_SMALL_LETTER_K 0x006B #define T_CP857_LATIN_SMALL_LETTER_L 0x006C #define T_CP857_LATIN_SMALL_LETTER_M 0x006D #define T_CP857_LATIN_SMALL_LETTER_N 0x006E #define T_CP857_LATIN_SMALL_LETTER_O 0x006F #define T_CP857_LATIN_SMALL_LETTER_P 0x0070 #define T_CP857_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP857_LATIN_SMALL_LETTER_R 0x0072 #define T_CP857_LATIN_SMALL_LETTER_S 0x0073 #define T_CP857_LATIN_SMALL_LETTER_T 0x0074 #define T_CP857_LATIN_SMALL_LETTER_U 0x0075 #define T_CP857_LATIN_SMALL_LETTER_V 0x0076 #define T_CP857_LATIN_SMALL_LETTER_W 0x0077 #define T_CP857_LATIN_SMALL_LETTER_X 0x0078 #define T_CP857_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP857_LATIN_SMALL_LETTER_Z 0x007A #define T_CP857_LEFT_CURLY_BRACKET 0x007B #define T_CP857_VERTICAL_LINE 0x007C #define T_CP857_RIGHT_CURLY_BRACKET 0x007D #define T_CP857_TILDE 0x007E #define T_CP857_CTRL_DELETE 0x007F #define T_CP857_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0080 #define T_CP857_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x0081 #define T_CP857_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x0082 #define T_CP857_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0083 #define T_CP857_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x0084 #define T_CP857_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0085 #define T_CP857_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x0086 #define T_CP857_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x0087 #define T_CP857_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0088 #define T_CP857_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0089 #define T_CP857_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008A #define T_CP857_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x008B #define T_CP857_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x008C #define T_CP857_LATIN_SMALL_LETTER_DOTLESS_I 0x008D #define T_CP857_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x008E #define T_CP857_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x008F #define T_CP857_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0090 #define T_CP857_LATIN_SMALL_LETTER_AE 0x0091 #define T_CP857_LATIN_CAPITAL_LETTER_AE 0x0092 #define T_CP857_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0093 #define T_CP857_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x0094 #define T_CP857_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0095 #define T_CP857_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x0096 #define T_CP857_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x0097 #define T_CP857_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE 0x0098 #define T_CP857_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0099 #define T_CP857_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_CP857_LATIN_SMALL_LETTER_O_WITH_STROKE 0x009B #define T_CP857_POUND_SIGN 0x009C #define T_CP857_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x009D #define T_CP857_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x009E #define T_CP857_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x009F #define T_CP857_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00A0 #define T_CP857_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00A1 #define T_CP857_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_CP857_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00A3 #define T_CP857_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00A4 #define T_CP857_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00A5 #define T_CP857_LATIN_CAPITAL_LETTER_G_WITH_BREVE 0x00A6 #define T_CP857_LATIN_SMALL_LETTER_G_WITH_BREVE 0x00A7 #define T_CP857_INVERTED_QUESTION_MARK 0x00A8 #define T_CP857_REGISTERED_SIGN 0x00A9 #define T_CP857_NOT_SIGN 0x00AA #define T_CP857_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP857_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_CP857_INVERTED_EXCLAMATION_MARK 0x00AD #define T_CP857_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP857_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP857_LIGHT_SHADE 0x00B0 #define T_CP857_MEDIUM_SHADE 0x00B1 #define T_CP857_DARK_SHADE 0x00B2 #define T_CP857_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP857_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP857_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00B5 #define T_CP857_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00B6 #define T_CP857_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00B7 #define T_CP857_COPYRIGHT_SIGN 0x00B8 #define T_CP857_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP857_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP857_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP857_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP857_CENT_SIGN 0x00BD #define T_CP857_YEN_SIGN 0x00BE #define T_CP857_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP857_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP857_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP857_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP857_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP857_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP857_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP857_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00C6 #define T_CP857_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C7 #define T_CP857_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP857_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP857_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP857_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP857_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP857_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP857_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP857_CURRENCY_SIGN 0x00CF #define T_CP857_MASCULINE_ORDINAL_INDICATOR 0x00D0 #define T_CP857_FEMININE_ORDINAL_INDICATOR 0x00D1 #define T_CP857_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00D2 #define T_CP857_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00D3 #define T_CP857_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00D4 #define T_CP857_UNDEFINED_00D5 0x00D5 #define T_CP857_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00D6 #define T_CP857_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00D7 #define T_CP857_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00D8 #define T_CP857_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP857_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP857_FULL_BLOCK 0x00DB #define T_CP857_LOWER_HALF_BLOCK 0x00DC #define T_CP857_BROKEN_BAR 0x00DD #define T_CP857_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00DE #define T_CP857_UPPER_HALF_BLOCK 0x00DF #define T_CP857_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00E0 #define T_CP857_LATIN_SMALL_LETTER_SHARP_S 0x00E1 #define T_CP857_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00E2 #define T_CP857_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00E3 #define T_CP857_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00E4 #define T_CP857_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00E5 #define T_CP857_MICRO_SIGN 0x00E6 #define T_CP857_UNDEFINED_00E7 0x00E7 #define T_CP857_MULTIPLICATION_SIGN 0x00E8 #define T_CP857_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00E9 #define T_CP857_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00EA #define T_CP857_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00EB #define T_CP857_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_CP857_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00ED #define T_CP857_MACRON 0x00EE #define T_CP857_ACUTE_ACCENT 0x00EF #define T_CP857_SOFT_HYPHEN 0x00F0 #define T_CP857_PLUS_MINUS_SIGN 0x00F1 #define T_CP857_UNDEFINED_00F2 0x00F2 #define T_CP857_VULGAR_FRACTION_THREE_QUARTERS 0x00F3 #define T_CP857_PILCROW_SIGN 0x00F4 #define T_CP857_SECTION_SIGN 0x00F5 #define T_CP857_DIVISION_SIGN 0x00F6 #define T_CP857_CEDILLA 0x00F7 #define T_CP857_DEGREE_SIGN 0x00F8 #define T_CP857_DIAERESIS 0x00F9 #define T_CP857_MIDDLE_DOT 0x00FA #define T_CP857_SUPERSCRIPT_ONE 0x00FB #define T_CP857_SUPERSCRIPT_THREE 0x00FC #define T_CP857_SUPERSCRIPT_TWO 0x00FD #define T_CP857_BLACK_SQUARE 0x00FE #define T_CP857_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP857(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REGISTERED_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_COPYRIGHT_SIGN) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_CENT_SIGN) \ EL(_YEN_SIGN) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_CURRENCY_SIGN) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_UNDEFINED_00D5) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_BROKEN_BAR) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_UPPER_HALF_BLOCK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_MICRO_SIGN) \ EL(_UNDEFINED_00E7) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_MACRON) \ EL(_ACUTE_ACCENT) \ EL(_SOFT_HYPHEN) \ EL(_PLUS_MINUS_SIGN) \ EL(_UNDEFINED_00F2) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_PILCROW_SIGN) \ EL(_SECTION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_CEDILLA) \ EL(_DEGREE_SIGN) \ EL(_DIAERESIS) \ EL(_MIDDLE_DOT) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_THREE) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP857(EL) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REGISTERED_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_COPYRIGHT_SIGN) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_CENT_SIGN) \ EL(_YEN_SIGN) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_CURRENCY_SIGN) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_UNDEFINED_00D5) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_BROKEN_BAR) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_UPPER_HALF_BLOCK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_MICRO_SIGN) \ EL(_UNDEFINED_00E7) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_MACRON) \ EL(_ACUTE_ACCENT) \ EL(_SOFT_HYPHEN) \ EL(_PLUS_MINUS_SIGN) \ EL(_UNDEFINED_00F2) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_PILCROW_SIGN) \ EL(_SECTION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_CEDILLA) \ EL(_DEGREE_SIGN) \ EL(_DIAERESIS) \ EL(_MIDDLE_DOT) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_THREE) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP857_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp860.h���������������������������������������������������������������������0000664�0000000�0000000�00000144124�13775351206�0016076�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP860_H #define TUTF_CP860_H #define T_CP860_CTRL_NULL 0x0000 #define T_CP860_CTRL_START_OF_HEADING 0x0001 #define T_CP860_CTRL_START_OF_TEXT 0x0002 #define T_CP860_CTRL_END_OF_TEXT 0x0003 #define T_CP860_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP860_CTRL_ENQUIRY 0x0005 #define T_CP860_CTRL_ACKNOWLEDGE 0x0006 #define T_CP860_CTRL_BELL 0x0007 #define T_CP860_CTRL_BACKSPACE 0x0008 #define T_CP860_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP860_CTRL_LINE_FEED 0x000A #define T_CP860_CTRL_LINE_TABULATION 0x000B #define T_CP860_CTRL_FORM_FEED 0x000C #define T_CP860_CTRL_CARRIAGE_RETURN 0x000D #define T_CP860_CTRL_SHIFT_OUT 0x000E #define T_CP860_CTRL_SHIFT_IN 0x000F #define T_CP860_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP860_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP860_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP860_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP860_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP860_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP860_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP860_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP860_CTRL_CANCEL 0x0018 #define T_CP860_CTRL_END_OF_MEDIUM 0x0019 #define T_CP860_CTRL_SUBSTITUTE 0x001A #define T_CP860_CTRL_ESCAPE 0x001B #define T_CP860_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP860_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP860_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP860_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP860_SPACE 0x0020 #define T_CP860_EXCLAMATION_MARK 0x0021 #define T_CP860_QUOTATION_MARK 0x0022 #define T_CP860_NUMBER_SIGN 0x0023 #define T_CP860_DOLLAR_SIGN 0x0024 #define T_CP860_PERCENT_SIGN 0x0025 #define T_CP860_AMPERSAND 0x0026 #define T_CP860_APOSTROPHE 0x0027 #define T_CP860_LEFT_PARENTHESIS 0x0028 #define T_CP860_RIGHT_PARENTHESIS 0x0029 #define T_CP860_ASTERISK 0x002A #define T_CP860_PLUS_SIGN 0x002B #define T_CP860_COMMA 0x002C #define T_CP860_HYPHEN_MINUS 0x002D #define T_CP860_FULL_STOP 0x002E #define T_CP860_SOLIDUS 0x002F #define T_CP860_DIGIT_ZERO 0x0030 #define T_CP860_DIGIT_ONE 0x0031 #define T_CP860_DIGIT_TWO 0x0032 #define T_CP860_DIGIT_THREE 0x0033 #define T_CP860_DIGIT_FOUR 0x0034 #define T_CP860_DIGIT_FIVE 0x0035 #define T_CP860_DIGIT_SIX 0x0036 #define T_CP860_DIGIT_SEVEN 0x0037 #define T_CP860_DIGIT_EIGHT 0x0038 #define T_CP860_DIGIT_NINE 0x0039 #define T_CP860_COLON 0x003A #define T_CP860_SEMICOLON 0x003B #define T_CP860_LESS_THAN_SIGN 0x003C #define T_CP860_EQUALS_SIGN 0x003D #define T_CP860_GREATER_THAN_SIGN 0x003E #define T_CP860_QUESTION_MARK 0x003F #define T_CP860_COMMERCIAL_AT 0x0040 #define T_CP860_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP860_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP860_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP860_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP860_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP860_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP860_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP860_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP860_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP860_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP860_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP860_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP860_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP860_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP860_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP860_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP860_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP860_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP860_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP860_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP860_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP860_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP860_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP860_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP860_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP860_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP860_LEFT_SQUARE_BRACKET 0x005B #define T_CP860_REVERSE_SOLIDUS 0x005C #define T_CP860_RIGHT_SQUARE_BRACKET 0x005D #define T_CP860_CIRCUMFLEX_ACCENT 0x005E #define T_CP860_LOW_LINE 0x005F #define T_CP860_GRAVE_ACCENT 0x0060 #define T_CP860_LATIN_SMALL_LETTER_A 0x0061 #define T_CP860_LATIN_SMALL_LETTER_B 0x0062 #define T_CP860_LATIN_SMALL_LETTER_C 0x0063 #define T_CP860_LATIN_SMALL_LETTER_D 0x0064 #define T_CP860_LATIN_SMALL_LETTER_E 0x0065 #define T_CP860_LATIN_SMALL_LETTER_F 0x0066 #define T_CP860_LATIN_SMALL_LETTER_G 0x0067 #define T_CP860_LATIN_SMALL_LETTER_H 0x0068 #define T_CP860_LATIN_SMALL_LETTER_I 0x0069 #define T_CP860_LATIN_SMALL_LETTER_J 0x006A #define T_CP860_LATIN_SMALL_LETTER_K 0x006B #define T_CP860_LATIN_SMALL_LETTER_L 0x006C #define T_CP860_LATIN_SMALL_LETTER_M 0x006D #define T_CP860_LATIN_SMALL_LETTER_N 0x006E #define T_CP860_LATIN_SMALL_LETTER_O 0x006F #define T_CP860_LATIN_SMALL_LETTER_P 0x0070 #define T_CP860_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP860_LATIN_SMALL_LETTER_R 0x0072 #define T_CP860_LATIN_SMALL_LETTER_S 0x0073 #define T_CP860_LATIN_SMALL_LETTER_T 0x0074 #define T_CP860_LATIN_SMALL_LETTER_U 0x0075 #define T_CP860_LATIN_SMALL_LETTER_V 0x0076 #define T_CP860_LATIN_SMALL_LETTER_W 0x0077 #define T_CP860_LATIN_SMALL_LETTER_X 0x0078 #define T_CP860_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP860_LATIN_SMALL_LETTER_Z 0x007A #define T_CP860_LEFT_CURLY_BRACKET 0x007B #define T_CP860_VERTICAL_LINE 0x007C #define T_CP860_RIGHT_CURLY_BRACKET 0x007D #define T_CP860_TILDE 0x007E #define T_CP860_CTRL_DELETE 0x007F #define T_CP860_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0080 #define T_CP860_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x0081 #define T_CP860_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x0082 #define T_CP860_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0083 #define T_CP860_LATIN_SMALL_LETTER_A_WITH_TILDE 0x0084 #define T_CP860_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0085 #define T_CP860_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x0086 #define T_CP860_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x0087 #define T_CP860_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0088 #define T_CP860_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x0089 #define T_CP860_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008A #define T_CP860_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x008B #define T_CP860_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x008C #define T_CP860_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x008D #define T_CP860_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x008E #define T_CP860_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x008F #define T_CP860_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0090 #define T_CP860_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x0091 #define T_CP860_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x0092 #define T_CP860_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0093 #define T_CP860_LATIN_SMALL_LETTER_O_WITH_TILDE 0x0094 #define T_CP860_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0095 #define T_CP860_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x0096 #define T_CP860_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x0097 #define T_CP860_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x0098 #define T_CP860_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x0099 #define T_CP860_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_CP860_CENT_SIGN 0x009B #define T_CP860_POUND_SIGN 0x009C #define T_CP860_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x009D #define T_CP860_PESETA_SIGN 0x009E #define T_CP860_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x009F #define T_CP860_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00A0 #define T_CP860_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00A1 #define T_CP860_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_CP860_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00A3 #define T_CP860_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00A4 #define T_CP860_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00A5 #define T_CP860_FEMININE_ORDINAL_INDICATOR 0x00A6 #define T_CP860_MASCULINE_ORDINAL_INDICATOR 0x00A7 #define T_CP860_INVERTED_QUESTION_MARK 0x00A8 #define T_CP860_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00A9 #define T_CP860_NOT_SIGN 0x00AA #define T_CP860_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP860_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_CP860_INVERTED_EXCLAMATION_MARK 0x00AD #define T_CP860_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP860_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP860_LIGHT_SHADE 0x00B0 #define T_CP860_MEDIUM_SHADE 0x00B1 #define T_CP860_DARK_SHADE 0x00B2 #define T_CP860_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP860_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP860_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B5 #define T_CP860_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x00B6 #define T_CP860_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x00B7 #define T_CP860_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x00B8 #define T_CP860_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP860_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP860_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP860_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP860_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x00BD #define T_CP860_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00BE #define T_CP860_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP860_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP860_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP860_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP860_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP860_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP860_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP860_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00C6 #define T_CP860_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00C7 #define T_CP860_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP860_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP860_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP860_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP860_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP860_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP860_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP860_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00CF #define T_CP860_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D0 #define T_CP860_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D1 #define T_CP860_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D2 #define T_CP860_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00D3 #define T_CP860_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00D4 #define T_CP860_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00D5 #define T_CP860_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x00D6 #define T_CP860_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D7 #define T_CP860_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D8 #define T_CP860_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP860_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP860_FULL_BLOCK 0x00DB #define T_CP860_LOWER_HALF_BLOCK 0x00DC #define T_CP860_LEFT_HALF_BLOCK 0x00DD #define T_CP860_RIGHT_HALF_BLOCK 0x00DE #define T_CP860_UPPER_HALF_BLOCK 0x00DF #define T_CP860_GREEK_SMALL_LETTER_ALPHA 0x00E0 #define T_CP860_LATIN_SMALL_LETTER_SHARP_S 0x00E1 #define T_CP860_GREEK_CAPITAL_LETTER_GAMMA 0x00E2 #define T_CP860_GREEK_SMALL_LETTER_PI 0x00E3 #define T_CP860_GREEK_CAPITAL_LETTER_SIGMA 0x00E4 #define T_CP860_GREEK_SMALL_LETTER_SIGMA 0x00E5 #define T_CP860_MICRO_SIGN 0x00E6 #define T_CP860_GREEK_SMALL_LETTER_TAU 0x00E7 #define T_CP860_GREEK_CAPITAL_LETTER_PHI 0x00E8 #define T_CP860_GREEK_CAPITAL_LETTER_THETA 0x00E9 #define T_CP860_GREEK_CAPITAL_LETTER_OMEGA 0x00EA #define T_CP860_GREEK_SMALL_LETTER_DELTA 0x00EB #define T_CP860_INFINITY 0x00EC #define T_CP860_GREEK_SMALL_LETTER_PHI 0x00ED #define T_CP860_GREEK_SMALL_LETTER_EPSILON 0x00EE #define T_CP860_INTERSECTION 0x00EF #define T_CP860_IDENTICAL_TO 0x00F0 #define T_CP860_PLUS_MINUS_SIGN 0x00F1 #define T_CP860_GREATER_THAN_OR_EQUAL_TO 0x00F2 #define T_CP860_LESS_THAN_OR_EQUAL_TO 0x00F3 #define T_CP860_TOP_HALF_INTEGRAL 0x00F4 #define T_CP860_BOTTOM_HALF_INTEGRAL 0x00F5 #define T_CP860_DIVISION_SIGN 0x00F6 #define T_CP860_ALMOST_EQUAL_TO 0x00F7 #define T_CP860_DEGREE_SIGN 0x00F8 #define T_CP860_BULLET_OPERATOR 0x00F9 #define T_CP860_MIDDLE_DOT 0x00FA #define T_CP860_SQUARE_ROOT 0x00FB #define T_CP860_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0x00FC #define T_CP860_SUPERSCRIPT_TWO 0x00FD #define T_CP860_BLACK_SQUARE 0x00FE #define T_CP860_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP860(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_PESETA_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP860(EL) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_PESETA_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP860_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp861.h���������������������������������������������������������������������0000664�0000000�0000000�00000144100�13775351206�0016071�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP861_H #define TUTF_CP861_H #define T_CP861_CTRL_NULL 0x0000 #define T_CP861_CTRL_START_OF_HEADING 0x0001 #define T_CP861_CTRL_START_OF_TEXT 0x0002 #define T_CP861_CTRL_END_OF_TEXT 0x0003 #define T_CP861_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP861_CTRL_ENQUIRY 0x0005 #define T_CP861_CTRL_ACKNOWLEDGE 0x0006 #define T_CP861_CTRL_BELL 0x0007 #define T_CP861_CTRL_BACKSPACE 0x0008 #define T_CP861_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP861_CTRL_LINE_FEED 0x000A #define T_CP861_CTRL_LINE_TABULATION 0x000B #define T_CP861_CTRL_FORM_FEED 0x000C #define T_CP861_CTRL_CARRIAGE_RETURN 0x000D #define T_CP861_CTRL_SHIFT_OUT 0x000E #define T_CP861_CTRL_SHIFT_IN 0x000F #define T_CP861_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP861_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP861_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP861_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP861_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP861_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP861_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP861_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP861_CTRL_CANCEL 0x0018 #define T_CP861_CTRL_END_OF_MEDIUM 0x0019 #define T_CP861_CTRL_SUBSTITUTE 0x001A #define T_CP861_CTRL_ESCAPE 0x001B #define T_CP861_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP861_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP861_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP861_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP861_SPACE 0x0020 #define T_CP861_EXCLAMATION_MARK 0x0021 #define T_CP861_QUOTATION_MARK 0x0022 #define T_CP861_NUMBER_SIGN 0x0023 #define T_CP861_DOLLAR_SIGN 0x0024 #define T_CP861_PERCENT_SIGN 0x0025 #define T_CP861_AMPERSAND 0x0026 #define T_CP861_APOSTROPHE 0x0027 #define T_CP861_LEFT_PARENTHESIS 0x0028 #define T_CP861_RIGHT_PARENTHESIS 0x0029 #define T_CP861_ASTERISK 0x002A #define T_CP861_PLUS_SIGN 0x002B #define T_CP861_COMMA 0x002C #define T_CP861_HYPHEN_MINUS 0x002D #define T_CP861_FULL_STOP 0x002E #define T_CP861_SOLIDUS 0x002F #define T_CP861_DIGIT_ZERO 0x0030 #define T_CP861_DIGIT_ONE 0x0031 #define T_CP861_DIGIT_TWO 0x0032 #define T_CP861_DIGIT_THREE 0x0033 #define T_CP861_DIGIT_FOUR 0x0034 #define T_CP861_DIGIT_FIVE 0x0035 #define T_CP861_DIGIT_SIX 0x0036 #define T_CP861_DIGIT_SEVEN 0x0037 #define T_CP861_DIGIT_EIGHT 0x0038 #define T_CP861_DIGIT_NINE 0x0039 #define T_CP861_COLON 0x003A #define T_CP861_SEMICOLON 0x003B #define T_CP861_LESS_THAN_SIGN 0x003C #define T_CP861_EQUALS_SIGN 0x003D #define T_CP861_GREATER_THAN_SIGN 0x003E #define T_CP861_QUESTION_MARK 0x003F #define T_CP861_COMMERCIAL_AT 0x0040 #define T_CP861_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP861_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP861_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP861_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP861_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP861_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP861_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP861_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP861_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP861_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP861_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP861_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP861_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP861_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP861_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP861_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP861_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP861_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP861_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP861_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP861_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP861_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP861_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP861_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP861_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP861_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP861_LEFT_SQUARE_BRACKET 0x005B #define T_CP861_REVERSE_SOLIDUS 0x005C #define T_CP861_RIGHT_SQUARE_BRACKET 0x005D #define T_CP861_CIRCUMFLEX_ACCENT 0x005E #define T_CP861_LOW_LINE 0x005F #define T_CP861_GRAVE_ACCENT 0x0060 #define T_CP861_LATIN_SMALL_LETTER_A 0x0061 #define T_CP861_LATIN_SMALL_LETTER_B 0x0062 #define T_CP861_LATIN_SMALL_LETTER_C 0x0063 #define T_CP861_LATIN_SMALL_LETTER_D 0x0064 #define T_CP861_LATIN_SMALL_LETTER_E 0x0065 #define T_CP861_LATIN_SMALL_LETTER_F 0x0066 #define T_CP861_LATIN_SMALL_LETTER_G 0x0067 #define T_CP861_LATIN_SMALL_LETTER_H 0x0068 #define T_CP861_LATIN_SMALL_LETTER_I 0x0069 #define T_CP861_LATIN_SMALL_LETTER_J 0x006A #define T_CP861_LATIN_SMALL_LETTER_K 0x006B #define T_CP861_LATIN_SMALL_LETTER_L 0x006C #define T_CP861_LATIN_SMALL_LETTER_M 0x006D #define T_CP861_LATIN_SMALL_LETTER_N 0x006E #define T_CP861_LATIN_SMALL_LETTER_O 0x006F #define T_CP861_LATIN_SMALL_LETTER_P 0x0070 #define T_CP861_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP861_LATIN_SMALL_LETTER_R 0x0072 #define T_CP861_LATIN_SMALL_LETTER_S 0x0073 #define T_CP861_LATIN_SMALL_LETTER_T 0x0074 #define T_CP861_LATIN_SMALL_LETTER_U 0x0075 #define T_CP861_LATIN_SMALL_LETTER_V 0x0076 #define T_CP861_LATIN_SMALL_LETTER_W 0x0077 #define T_CP861_LATIN_SMALL_LETTER_X 0x0078 #define T_CP861_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP861_LATIN_SMALL_LETTER_Z 0x007A #define T_CP861_LEFT_CURLY_BRACKET 0x007B #define T_CP861_VERTICAL_LINE 0x007C #define T_CP861_RIGHT_CURLY_BRACKET 0x007D #define T_CP861_TILDE 0x007E #define T_CP861_CTRL_DELETE 0x007F #define T_CP861_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0080 #define T_CP861_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x0081 #define T_CP861_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x0082 #define T_CP861_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0083 #define T_CP861_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x0084 #define T_CP861_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0085 #define T_CP861_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x0086 #define T_CP861_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x0087 #define T_CP861_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0088 #define T_CP861_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0089 #define T_CP861_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008A #define T_CP861_LATIN_CAPITAL_LETTER_ETH 0x008B #define T_CP861_LATIN_SMALL_LETTER_ETH 0x008C #define T_CP861_LATIN_CAPITAL_LETTER_THORN 0x008D #define T_CP861_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x008E #define T_CP861_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x008F #define T_CP861_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0090 #define T_CP861_LATIN_SMALL_LETTER_AE 0x0091 #define T_CP861_LATIN_CAPITAL_LETTER_AE 0x0092 #define T_CP861_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0093 #define T_CP861_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x0094 #define T_CP861_LATIN_SMALL_LETTER_THORN 0x0095 #define T_CP861_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x0096 #define T_CP861_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x0097 #define T_CP861_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x0098 #define T_CP861_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0099 #define T_CP861_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_CP861_LATIN_SMALL_LETTER_O_WITH_STROKE 0x009B #define T_CP861_POUND_SIGN 0x009C #define T_CP861_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x009D #define T_CP861_PESETA_SIGN 0x009E #define T_CP861_LATIN_SMALL_LETTER_F_WITH_HOOK 0x009F #define T_CP861_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00A0 #define T_CP861_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00A1 #define T_CP861_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_CP861_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00A3 #define T_CP861_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00A4 #define T_CP861_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00A5 #define T_CP861_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00A6 #define T_CP861_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00A7 #define T_CP861_INVERTED_QUESTION_MARK 0x00A8 #define T_CP861_REVERSED_NOT_SIGN 0x00A9 #define T_CP861_NOT_SIGN 0x00AA #define T_CP861_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP861_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_CP861_INVERTED_EXCLAMATION_MARK 0x00AD #define T_CP861_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP861_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP861_LIGHT_SHADE 0x00B0 #define T_CP861_MEDIUM_SHADE 0x00B1 #define T_CP861_DARK_SHADE 0x00B2 #define T_CP861_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP861_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP861_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B5 #define T_CP861_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x00B6 #define T_CP861_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x00B7 #define T_CP861_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x00B8 #define T_CP861_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP861_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP861_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP861_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP861_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x00BD #define T_CP861_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00BE #define T_CP861_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP861_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP861_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP861_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP861_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP861_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP861_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP861_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00C6 #define T_CP861_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00C7 #define T_CP861_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP861_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP861_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP861_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP861_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP861_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP861_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP861_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00CF #define T_CP861_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D0 #define T_CP861_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D1 #define T_CP861_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D2 #define T_CP861_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00D3 #define T_CP861_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00D4 #define T_CP861_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00D5 #define T_CP861_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x00D6 #define T_CP861_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D7 #define T_CP861_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D8 #define T_CP861_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP861_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP861_FULL_BLOCK 0x00DB #define T_CP861_LOWER_HALF_BLOCK 0x00DC #define T_CP861_LEFT_HALF_BLOCK 0x00DD #define T_CP861_RIGHT_HALF_BLOCK 0x00DE #define T_CP861_UPPER_HALF_BLOCK 0x00DF #define T_CP861_GREEK_SMALL_LETTER_ALPHA 0x00E0 #define T_CP861_LATIN_SMALL_LETTER_SHARP_S 0x00E1 #define T_CP861_GREEK_CAPITAL_LETTER_GAMMA 0x00E2 #define T_CP861_GREEK_SMALL_LETTER_PI 0x00E3 #define T_CP861_GREEK_CAPITAL_LETTER_SIGMA 0x00E4 #define T_CP861_GREEK_SMALL_LETTER_SIGMA 0x00E5 #define T_CP861_MICRO_SIGN 0x00E6 #define T_CP861_GREEK_SMALL_LETTER_TAU 0x00E7 #define T_CP861_GREEK_CAPITAL_LETTER_PHI 0x00E8 #define T_CP861_GREEK_CAPITAL_LETTER_THETA 0x00E9 #define T_CP861_GREEK_CAPITAL_LETTER_OMEGA 0x00EA #define T_CP861_GREEK_SMALL_LETTER_DELTA 0x00EB #define T_CP861_INFINITY 0x00EC #define T_CP861_GREEK_SMALL_LETTER_PHI 0x00ED #define T_CP861_GREEK_SMALL_LETTER_EPSILON 0x00EE #define T_CP861_INTERSECTION 0x00EF #define T_CP861_IDENTICAL_TO 0x00F0 #define T_CP861_PLUS_MINUS_SIGN 0x00F1 #define T_CP861_GREATER_THAN_OR_EQUAL_TO 0x00F2 #define T_CP861_LESS_THAN_OR_EQUAL_TO 0x00F3 #define T_CP861_TOP_HALF_INTEGRAL 0x00F4 #define T_CP861_BOTTOM_HALF_INTEGRAL 0x00F5 #define T_CP861_DIVISION_SIGN 0x00F6 #define T_CP861_ALMOST_EQUAL_TO 0x00F7 #define T_CP861_DEGREE_SIGN 0x00F8 #define T_CP861_BULLET_OPERATOR 0x00F9 #define T_CP861_MIDDLE_DOT 0x00FA #define T_CP861_SQUARE_ROOT 0x00FB #define T_CP861_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0x00FC #define T_CP861_SUPERSCRIPT_TWO 0x00FD #define T_CP861_BLACK_SQUARE 0x00FE #define T_CP861_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP861(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_PESETA_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP861(EL) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_PESETA_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP861_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp862.h���������������������������������������������������������������������0000664�0000000�0000000�00000143226�13775351206�0016102�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP862_H #define TUTF_CP862_H #define T_CP862_CTRL_NULL 0x0000 #define T_CP862_CTRL_START_OF_HEADING 0x0001 #define T_CP862_CTRL_START_OF_TEXT 0x0002 #define T_CP862_CTRL_END_OF_TEXT 0x0003 #define T_CP862_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP862_CTRL_ENQUIRY 0x0005 #define T_CP862_CTRL_ACKNOWLEDGE 0x0006 #define T_CP862_CTRL_BELL 0x0007 #define T_CP862_CTRL_BACKSPACE 0x0008 #define T_CP862_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP862_CTRL_LINE_FEED 0x000A #define T_CP862_CTRL_LINE_TABULATION 0x000B #define T_CP862_CTRL_FORM_FEED 0x000C #define T_CP862_CTRL_CARRIAGE_RETURN 0x000D #define T_CP862_CTRL_SHIFT_OUT 0x000E #define T_CP862_CTRL_SHIFT_IN 0x000F #define T_CP862_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP862_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP862_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP862_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP862_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP862_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP862_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP862_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP862_CTRL_CANCEL 0x0018 #define T_CP862_CTRL_END_OF_MEDIUM 0x0019 #define T_CP862_CTRL_SUBSTITUTE 0x001A #define T_CP862_CTRL_ESCAPE 0x001B #define T_CP862_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP862_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP862_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP862_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP862_SPACE 0x0020 #define T_CP862_EXCLAMATION_MARK 0x0021 #define T_CP862_QUOTATION_MARK 0x0022 #define T_CP862_NUMBER_SIGN 0x0023 #define T_CP862_DOLLAR_SIGN 0x0024 #define T_CP862_PERCENT_SIGN 0x0025 #define T_CP862_AMPERSAND 0x0026 #define T_CP862_APOSTROPHE 0x0027 #define T_CP862_LEFT_PARENTHESIS 0x0028 #define T_CP862_RIGHT_PARENTHESIS 0x0029 #define T_CP862_ASTERISK 0x002A #define T_CP862_PLUS_SIGN 0x002B #define T_CP862_COMMA 0x002C #define T_CP862_HYPHEN_MINUS 0x002D #define T_CP862_FULL_STOP 0x002E #define T_CP862_SOLIDUS 0x002F #define T_CP862_DIGIT_ZERO 0x0030 #define T_CP862_DIGIT_ONE 0x0031 #define T_CP862_DIGIT_TWO 0x0032 #define T_CP862_DIGIT_THREE 0x0033 #define T_CP862_DIGIT_FOUR 0x0034 #define T_CP862_DIGIT_FIVE 0x0035 #define T_CP862_DIGIT_SIX 0x0036 #define T_CP862_DIGIT_SEVEN 0x0037 #define T_CP862_DIGIT_EIGHT 0x0038 #define T_CP862_DIGIT_NINE 0x0039 #define T_CP862_COLON 0x003A #define T_CP862_SEMICOLON 0x003B #define T_CP862_LESS_THAN_SIGN 0x003C #define T_CP862_EQUALS_SIGN 0x003D #define T_CP862_GREATER_THAN_SIGN 0x003E #define T_CP862_QUESTION_MARK 0x003F #define T_CP862_COMMERCIAL_AT 0x0040 #define T_CP862_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP862_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP862_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP862_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP862_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP862_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP862_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP862_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP862_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP862_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP862_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP862_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP862_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP862_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP862_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP862_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP862_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP862_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP862_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP862_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP862_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP862_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP862_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP862_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP862_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP862_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP862_LEFT_SQUARE_BRACKET 0x005B #define T_CP862_REVERSE_SOLIDUS 0x005C #define T_CP862_RIGHT_SQUARE_BRACKET 0x005D #define T_CP862_CIRCUMFLEX_ACCENT 0x005E #define T_CP862_LOW_LINE 0x005F #define T_CP862_GRAVE_ACCENT 0x0060 #define T_CP862_LATIN_SMALL_LETTER_A 0x0061 #define T_CP862_LATIN_SMALL_LETTER_B 0x0062 #define T_CP862_LATIN_SMALL_LETTER_C 0x0063 #define T_CP862_LATIN_SMALL_LETTER_D 0x0064 #define T_CP862_LATIN_SMALL_LETTER_E 0x0065 #define T_CP862_LATIN_SMALL_LETTER_F 0x0066 #define T_CP862_LATIN_SMALL_LETTER_G 0x0067 #define T_CP862_LATIN_SMALL_LETTER_H 0x0068 #define T_CP862_LATIN_SMALL_LETTER_I 0x0069 #define T_CP862_LATIN_SMALL_LETTER_J 0x006A #define T_CP862_LATIN_SMALL_LETTER_K 0x006B #define T_CP862_LATIN_SMALL_LETTER_L 0x006C #define T_CP862_LATIN_SMALL_LETTER_M 0x006D #define T_CP862_LATIN_SMALL_LETTER_N 0x006E #define T_CP862_LATIN_SMALL_LETTER_O 0x006F #define T_CP862_LATIN_SMALL_LETTER_P 0x0070 #define T_CP862_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP862_LATIN_SMALL_LETTER_R 0x0072 #define T_CP862_LATIN_SMALL_LETTER_S 0x0073 #define T_CP862_LATIN_SMALL_LETTER_T 0x0074 #define T_CP862_LATIN_SMALL_LETTER_U 0x0075 #define T_CP862_LATIN_SMALL_LETTER_V 0x0076 #define T_CP862_LATIN_SMALL_LETTER_W 0x0077 #define T_CP862_LATIN_SMALL_LETTER_X 0x0078 #define T_CP862_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP862_LATIN_SMALL_LETTER_Z 0x007A #define T_CP862_LEFT_CURLY_BRACKET 0x007B #define T_CP862_VERTICAL_LINE 0x007C #define T_CP862_RIGHT_CURLY_BRACKET 0x007D #define T_CP862_TILDE 0x007E #define T_CP862_CTRL_DELETE 0x007F #define T_CP862_HEBREW_LETTER_ALEF 0x0080 #define T_CP862_HEBREW_LETTER_BET 0x0081 #define T_CP862_HEBREW_LETTER_GIMEL 0x0082 #define T_CP862_HEBREW_LETTER_DALET 0x0083 #define T_CP862_HEBREW_LETTER_HE 0x0084 #define T_CP862_HEBREW_LETTER_VAV 0x0085 #define T_CP862_HEBREW_LETTER_ZAYIN 0x0086 #define T_CP862_HEBREW_LETTER_HET 0x0087 #define T_CP862_HEBREW_LETTER_TET 0x0088 #define T_CP862_HEBREW_LETTER_YOD 0x0089 #define T_CP862_HEBREW_LETTER_FINAL_KAF 0x008A #define T_CP862_HEBREW_LETTER_KAF 0x008B #define T_CP862_HEBREW_LETTER_LAMED 0x008C #define T_CP862_HEBREW_LETTER_FINAL_MEM 0x008D #define T_CP862_HEBREW_LETTER_MEM 0x008E #define T_CP862_HEBREW_LETTER_FINAL_NUN 0x008F #define T_CP862_HEBREW_LETTER_NUN 0x0090 #define T_CP862_HEBREW_LETTER_SAMEKH 0x0091 #define T_CP862_HEBREW_LETTER_AYIN 0x0092 #define T_CP862_HEBREW_LETTER_FINAL_PE 0x0093 #define T_CP862_HEBREW_LETTER_PE 0x0094 #define T_CP862_HEBREW_LETTER_FINAL_TSADI 0x0095 #define T_CP862_HEBREW_LETTER_TSADI 0x0096 #define T_CP862_HEBREW_LETTER_QOF 0x0097 #define T_CP862_HEBREW_LETTER_RESH 0x0098 #define T_CP862_HEBREW_LETTER_SHIN 0x0099 #define T_CP862_HEBREW_LETTER_TAV 0x009A #define T_CP862_CENT_SIGN 0x009B #define T_CP862_POUND_SIGN 0x009C #define T_CP862_YEN_SIGN 0x009D #define T_CP862_PESETA_SIGN 0x009E #define T_CP862_LATIN_SMALL_LETTER_F_WITH_HOOK 0x009F #define T_CP862_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00A0 #define T_CP862_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00A1 #define T_CP862_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_CP862_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00A3 #define T_CP862_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00A4 #define T_CP862_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00A5 #define T_CP862_FEMININE_ORDINAL_INDICATOR 0x00A6 #define T_CP862_MASCULINE_ORDINAL_INDICATOR 0x00A7 #define T_CP862_INVERTED_QUESTION_MARK 0x00A8 #define T_CP862_REVERSED_NOT_SIGN 0x00A9 #define T_CP862_NOT_SIGN 0x00AA #define T_CP862_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP862_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_CP862_INVERTED_EXCLAMATION_MARK 0x00AD #define T_CP862_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP862_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP862_LIGHT_SHADE 0x00B0 #define T_CP862_MEDIUM_SHADE 0x00B1 #define T_CP862_DARK_SHADE 0x00B2 #define T_CP862_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP862_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP862_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B5 #define T_CP862_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x00B6 #define T_CP862_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x00B7 #define T_CP862_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x00B8 #define T_CP862_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP862_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP862_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP862_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP862_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x00BD #define T_CP862_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00BE #define T_CP862_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP862_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP862_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP862_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP862_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP862_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP862_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP862_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00C6 #define T_CP862_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00C7 #define T_CP862_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP862_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP862_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP862_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP862_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP862_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP862_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP862_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00CF #define T_CP862_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D0 #define T_CP862_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D1 #define T_CP862_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D2 #define T_CP862_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00D3 #define T_CP862_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00D4 #define T_CP862_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00D5 #define T_CP862_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x00D6 #define T_CP862_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D7 #define T_CP862_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D8 #define T_CP862_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP862_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP862_FULL_BLOCK 0x00DB #define T_CP862_LOWER_HALF_BLOCK 0x00DC #define T_CP862_LEFT_HALF_BLOCK 0x00DD #define T_CP862_RIGHT_HALF_BLOCK 0x00DE #define T_CP862_UPPER_HALF_BLOCK 0x00DF #define T_CP862_GREEK_SMALL_LETTER_ALPHA 0x00E0 #define T_CP862_LATIN_SMALL_LETTER_SHARP_S 0x00E1 #define T_CP862_GREEK_CAPITAL_LETTER_GAMMA 0x00E2 #define T_CP862_GREEK_SMALL_LETTER_PI 0x00E3 #define T_CP862_GREEK_CAPITAL_LETTER_SIGMA 0x00E4 #define T_CP862_GREEK_SMALL_LETTER_SIGMA 0x00E5 #define T_CP862_MICRO_SIGN 0x00E6 #define T_CP862_GREEK_SMALL_LETTER_TAU 0x00E7 #define T_CP862_GREEK_CAPITAL_LETTER_PHI 0x00E8 #define T_CP862_GREEK_CAPITAL_LETTER_THETA 0x00E9 #define T_CP862_GREEK_CAPITAL_LETTER_OMEGA 0x00EA #define T_CP862_GREEK_SMALL_LETTER_DELTA 0x00EB #define T_CP862_INFINITY 0x00EC #define T_CP862_GREEK_SMALL_LETTER_PHI 0x00ED #define T_CP862_GREEK_SMALL_LETTER_EPSILON 0x00EE #define T_CP862_INTERSECTION 0x00EF #define T_CP862_IDENTICAL_TO 0x00F0 #define T_CP862_PLUS_MINUS_SIGN 0x00F1 #define T_CP862_GREATER_THAN_OR_EQUAL_TO 0x00F2 #define T_CP862_LESS_THAN_OR_EQUAL_TO 0x00F3 #define T_CP862_TOP_HALF_INTEGRAL 0x00F4 #define T_CP862_BOTTOM_HALF_INTEGRAL 0x00F5 #define T_CP862_DIVISION_SIGN 0x00F6 #define T_CP862_ALMOST_EQUAL_TO 0x00F7 #define T_CP862_DEGREE_SIGN 0x00F8 #define T_CP862_BULLET_OPERATOR 0x00F9 #define T_CP862_MIDDLE_DOT 0x00FA #define T_CP862_SQUARE_ROOT 0x00FB #define T_CP862_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0x00FC #define T_CP862_SUPERSCRIPT_TWO 0x00FD #define T_CP862_BLACK_SQUARE 0x00FE #define T_CP862_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP862(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_YEN_SIGN) \ EL(_PESETA_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP862(EL) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_YEN_SIGN) \ EL(_PESETA_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP862_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp863.h���������������������������������������������������������������������0000664�0000000�0000000�00000143705�13775351206�0016105�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP863_H #define TUTF_CP863_H #define T_CP863_CTRL_NULL 0x0000 #define T_CP863_CTRL_START_OF_HEADING 0x0001 #define T_CP863_CTRL_START_OF_TEXT 0x0002 #define T_CP863_CTRL_END_OF_TEXT 0x0003 #define T_CP863_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP863_CTRL_ENQUIRY 0x0005 #define T_CP863_CTRL_ACKNOWLEDGE 0x0006 #define T_CP863_CTRL_BELL 0x0007 #define T_CP863_CTRL_BACKSPACE 0x0008 #define T_CP863_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP863_CTRL_LINE_FEED 0x000A #define T_CP863_CTRL_LINE_TABULATION 0x000B #define T_CP863_CTRL_FORM_FEED 0x000C #define T_CP863_CTRL_CARRIAGE_RETURN 0x000D #define T_CP863_CTRL_SHIFT_OUT 0x000E #define T_CP863_CTRL_SHIFT_IN 0x000F #define T_CP863_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP863_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP863_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP863_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP863_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP863_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP863_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP863_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP863_CTRL_CANCEL 0x0018 #define T_CP863_CTRL_END_OF_MEDIUM 0x0019 #define T_CP863_CTRL_SUBSTITUTE 0x001A #define T_CP863_CTRL_ESCAPE 0x001B #define T_CP863_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP863_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP863_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP863_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP863_SPACE 0x0020 #define T_CP863_EXCLAMATION_MARK 0x0021 #define T_CP863_QUOTATION_MARK 0x0022 #define T_CP863_NUMBER_SIGN 0x0023 #define T_CP863_DOLLAR_SIGN 0x0024 #define T_CP863_PERCENT_SIGN 0x0025 #define T_CP863_AMPERSAND 0x0026 #define T_CP863_APOSTROPHE 0x0027 #define T_CP863_LEFT_PARENTHESIS 0x0028 #define T_CP863_RIGHT_PARENTHESIS 0x0029 #define T_CP863_ASTERISK 0x002A #define T_CP863_PLUS_SIGN 0x002B #define T_CP863_COMMA 0x002C #define T_CP863_HYPHEN_MINUS 0x002D #define T_CP863_FULL_STOP 0x002E #define T_CP863_SOLIDUS 0x002F #define T_CP863_DIGIT_ZERO 0x0030 #define T_CP863_DIGIT_ONE 0x0031 #define T_CP863_DIGIT_TWO 0x0032 #define T_CP863_DIGIT_THREE 0x0033 #define T_CP863_DIGIT_FOUR 0x0034 #define T_CP863_DIGIT_FIVE 0x0035 #define T_CP863_DIGIT_SIX 0x0036 #define T_CP863_DIGIT_SEVEN 0x0037 #define T_CP863_DIGIT_EIGHT 0x0038 #define T_CP863_DIGIT_NINE 0x0039 #define T_CP863_COLON 0x003A #define T_CP863_SEMICOLON 0x003B #define T_CP863_LESS_THAN_SIGN 0x003C #define T_CP863_EQUALS_SIGN 0x003D #define T_CP863_GREATER_THAN_SIGN 0x003E #define T_CP863_QUESTION_MARK 0x003F #define T_CP863_COMMERCIAL_AT 0x0040 #define T_CP863_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP863_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP863_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP863_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP863_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP863_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP863_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP863_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP863_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP863_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP863_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP863_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP863_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP863_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP863_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP863_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP863_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP863_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP863_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP863_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP863_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP863_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP863_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP863_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP863_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP863_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP863_LEFT_SQUARE_BRACKET 0x005B #define T_CP863_REVERSE_SOLIDUS 0x005C #define T_CP863_RIGHT_SQUARE_BRACKET 0x005D #define T_CP863_CIRCUMFLEX_ACCENT 0x005E #define T_CP863_LOW_LINE 0x005F #define T_CP863_GRAVE_ACCENT 0x0060 #define T_CP863_LATIN_SMALL_LETTER_A 0x0061 #define T_CP863_LATIN_SMALL_LETTER_B 0x0062 #define T_CP863_LATIN_SMALL_LETTER_C 0x0063 #define T_CP863_LATIN_SMALL_LETTER_D 0x0064 #define T_CP863_LATIN_SMALL_LETTER_E 0x0065 #define T_CP863_LATIN_SMALL_LETTER_F 0x0066 #define T_CP863_LATIN_SMALL_LETTER_G 0x0067 #define T_CP863_LATIN_SMALL_LETTER_H 0x0068 #define T_CP863_LATIN_SMALL_LETTER_I 0x0069 #define T_CP863_LATIN_SMALL_LETTER_J 0x006A #define T_CP863_LATIN_SMALL_LETTER_K 0x006B #define T_CP863_LATIN_SMALL_LETTER_L 0x006C #define T_CP863_LATIN_SMALL_LETTER_M 0x006D #define T_CP863_LATIN_SMALL_LETTER_N 0x006E #define T_CP863_LATIN_SMALL_LETTER_O 0x006F #define T_CP863_LATIN_SMALL_LETTER_P 0x0070 #define T_CP863_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP863_LATIN_SMALL_LETTER_R 0x0072 #define T_CP863_LATIN_SMALL_LETTER_S 0x0073 #define T_CP863_LATIN_SMALL_LETTER_T 0x0074 #define T_CP863_LATIN_SMALL_LETTER_U 0x0075 #define T_CP863_LATIN_SMALL_LETTER_V 0x0076 #define T_CP863_LATIN_SMALL_LETTER_W 0x0077 #define T_CP863_LATIN_SMALL_LETTER_X 0x0078 #define T_CP863_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP863_LATIN_SMALL_LETTER_Z 0x007A #define T_CP863_LEFT_CURLY_BRACKET 0x007B #define T_CP863_VERTICAL_LINE 0x007C #define T_CP863_RIGHT_CURLY_BRACKET 0x007D #define T_CP863_TILDE 0x007E #define T_CP863_CTRL_DELETE 0x007F #define T_CP863_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0080 #define T_CP863_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x0081 #define T_CP863_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x0082 #define T_CP863_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0083 #define T_CP863_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x0084 #define T_CP863_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0085 #define T_CP863_PILCROW_SIGN 0x0086 #define T_CP863_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x0087 #define T_CP863_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0088 #define T_CP863_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0089 #define T_CP863_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008A #define T_CP863_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x008B #define T_CP863_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x008C #define T_CP863_DOUBLE_LOW_LINE 0x008D #define T_CP863_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x008E #define T_CP863_SECTION_SIGN 0x008F #define T_CP863_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0090 #define T_CP863_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x0091 #define T_CP863_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x0092 #define T_CP863_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0093 #define T_CP863_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x0094 #define T_CP863_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_CP863_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x0096 #define T_CP863_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x0097 #define T_CP863_CURRENCY_SIGN 0x0098 #define T_CP863_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_CP863_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_CP863_CENT_SIGN 0x009B #define T_CP863_POUND_SIGN 0x009C #define T_CP863_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x009D #define T_CP863_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_CP863_LATIN_SMALL_LETTER_F_WITH_HOOK 0x009F #define T_CP863_BROKEN_BAR 0x00A0 #define T_CP863_ACUTE_ACCENT 0x00A1 #define T_CP863_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_CP863_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00A3 #define T_CP863_DIAERESIS 0x00A4 #define T_CP863_CEDILLA 0x00A5 #define T_CP863_SUPERSCRIPT_THREE 0x00A6 #define T_CP863_MACRON 0x00A7 #define T_CP863_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00A8 #define T_CP863_REVERSED_NOT_SIGN 0x00A9 #define T_CP863_NOT_SIGN 0x00AA #define T_CP863_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP863_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_CP863_VULGAR_FRACTION_THREE_QUARTERS 0x00AD #define T_CP863_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP863_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP863_LIGHT_SHADE 0x00B0 #define T_CP863_MEDIUM_SHADE 0x00B1 #define T_CP863_DARK_SHADE 0x00B2 #define T_CP863_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP863_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP863_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B5 #define T_CP863_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x00B6 #define T_CP863_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x00B7 #define T_CP863_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x00B8 #define T_CP863_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP863_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP863_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP863_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP863_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x00BD #define T_CP863_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00BE #define T_CP863_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP863_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP863_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP863_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP863_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP863_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP863_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP863_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00C6 #define T_CP863_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00C7 #define T_CP863_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP863_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP863_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP863_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP863_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP863_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP863_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP863_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00CF #define T_CP863_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D0 #define T_CP863_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D1 #define T_CP863_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D2 #define T_CP863_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00D3 #define T_CP863_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00D4 #define T_CP863_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00D5 #define T_CP863_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x00D6 #define T_CP863_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D7 #define T_CP863_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D8 #define T_CP863_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP863_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP863_FULL_BLOCK 0x00DB #define T_CP863_LOWER_HALF_BLOCK 0x00DC #define T_CP863_LEFT_HALF_BLOCK 0x00DD #define T_CP863_RIGHT_HALF_BLOCK 0x00DE #define T_CP863_UPPER_HALF_BLOCK 0x00DF #define T_CP863_GREEK_SMALL_LETTER_ALPHA 0x00E0 #define T_CP863_LATIN_SMALL_LETTER_SHARP_S 0x00E1 #define T_CP863_GREEK_CAPITAL_LETTER_GAMMA 0x00E2 #define T_CP863_GREEK_SMALL_LETTER_PI 0x00E3 #define T_CP863_GREEK_CAPITAL_LETTER_SIGMA 0x00E4 #define T_CP863_GREEK_SMALL_LETTER_SIGMA 0x00E5 #define T_CP863_MICRO_SIGN 0x00E6 #define T_CP863_GREEK_SMALL_LETTER_TAU 0x00E7 #define T_CP863_GREEK_CAPITAL_LETTER_PHI 0x00E8 #define T_CP863_GREEK_CAPITAL_LETTER_THETA 0x00E9 #define T_CP863_GREEK_CAPITAL_LETTER_OMEGA 0x00EA #define T_CP863_GREEK_SMALL_LETTER_DELTA 0x00EB #define T_CP863_INFINITY 0x00EC #define T_CP863_GREEK_SMALL_LETTER_PHI 0x00ED #define T_CP863_GREEK_SMALL_LETTER_EPSILON 0x00EE #define T_CP863_INTERSECTION 0x00EF #define T_CP863_IDENTICAL_TO 0x00F0 #define T_CP863_PLUS_MINUS_SIGN 0x00F1 #define T_CP863_GREATER_THAN_OR_EQUAL_TO 0x00F2 #define T_CP863_LESS_THAN_OR_EQUAL_TO 0x00F3 #define T_CP863_TOP_HALF_INTEGRAL 0x00F4 #define T_CP863_BOTTOM_HALF_INTEGRAL 0x00F5 #define T_CP863_DIVISION_SIGN 0x00F6 #define T_CP863_ALMOST_EQUAL_TO 0x00F7 #define T_CP863_DEGREE_SIGN 0x00F8 #define T_CP863_BULLET_OPERATOR 0x00F9 #define T_CP863_MIDDLE_DOT 0x00FA #define T_CP863_SQUARE_ROOT 0x00FB #define T_CP863_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0x00FC #define T_CP863_SUPERSCRIPT_TWO 0x00FD #define T_CP863_BLACK_SQUARE 0x00FE #define T_CP863_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP863(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_DOUBLE_LOW_LINE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_SECTION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_BROKEN_BAR) \ EL(_ACUTE_ACCENT) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_DIAERESIS) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_THREE) \ EL(_MACRON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP863(EL) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_DOUBLE_LOW_LINE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_SECTION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_BROKEN_BAR) \ EL(_ACUTE_ACCENT) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_DIAERESIS) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_THREE) \ EL(_MACRON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP863_H */ �����������������������������������������������������������twin-0.9.0/include/Tutf/cp864.h���������������������������������������������������������������������0000664�0000000�0000000�00000143504�13775351206�0016103�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP864_H #define TUTF_CP864_H #define T_CP864_CTRL_NULL 0x0000 #define T_CP864_CTRL_START_OF_HEADING 0x0001 #define T_CP864_CTRL_START_OF_TEXT 0x0002 #define T_CP864_CTRL_END_OF_TEXT 0x0003 #define T_CP864_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP864_CTRL_ENQUIRY 0x0005 #define T_CP864_CTRL_ACKNOWLEDGE 0x0006 #define T_CP864_CTRL_BELL 0x0007 #define T_CP864_CTRL_BACKSPACE 0x0008 #define T_CP864_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP864_CTRL_LINE_FEED 0x000A #define T_CP864_CTRL_LINE_TABULATION 0x000B #define T_CP864_CTRL_FORM_FEED 0x000C #define T_CP864_CTRL_CARRIAGE_RETURN 0x000D #define T_CP864_CTRL_SHIFT_OUT 0x000E #define T_CP864_CTRL_SHIFT_IN 0x000F #define T_CP864_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP864_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP864_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP864_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP864_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP864_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP864_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP864_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP864_CTRL_CANCEL 0x0018 #define T_CP864_CTRL_END_OF_MEDIUM 0x0019 #define T_CP864_CTRL_SUBSTITUTE 0x001A #define T_CP864_CTRL_ESCAPE 0x001B #define T_CP864_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP864_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP864_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP864_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP864_SPACE 0x0020 #define T_CP864_EXCLAMATION_MARK 0x0021 #define T_CP864_QUOTATION_MARK 0x0022 #define T_CP864_NUMBER_SIGN 0x0023 #define T_CP864_DOLLAR_SIGN 0x0024 #define T_CP864_ARABIC_PERCENT_SIGN 0x0025 #define T_CP864_AMPERSAND 0x0026 #define T_CP864_APOSTROPHE 0x0027 #define T_CP864_LEFT_PARENTHESIS 0x0028 #define T_CP864_RIGHT_PARENTHESIS 0x0029 #define T_CP864_ASTERISK 0x002A #define T_CP864_PLUS_SIGN 0x002B #define T_CP864_COMMA 0x002C #define T_CP864_HYPHEN_MINUS 0x002D #define T_CP864_FULL_STOP 0x002E #define T_CP864_SOLIDUS 0x002F #define T_CP864_DIGIT_ZERO 0x0030 #define T_CP864_DIGIT_ONE 0x0031 #define T_CP864_DIGIT_TWO 0x0032 #define T_CP864_DIGIT_THREE 0x0033 #define T_CP864_DIGIT_FOUR 0x0034 #define T_CP864_DIGIT_FIVE 0x0035 #define T_CP864_DIGIT_SIX 0x0036 #define T_CP864_DIGIT_SEVEN 0x0037 #define T_CP864_DIGIT_EIGHT 0x0038 #define T_CP864_DIGIT_NINE 0x0039 #define T_CP864_COLON 0x003A #define T_CP864_SEMICOLON 0x003B #define T_CP864_LESS_THAN_SIGN 0x003C #define T_CP864_EQUALS_SIGN 0x003D #define T_CP864_GREATER_THAN_SIGN 0x003E #define T_CP864_QUESTION_MARK 0x003F #define T_CP864_COMMERCIAL_AT 0x0040 #define T_CP864_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP864_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP864_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP864_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP864_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP864_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP864_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP864_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP864_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP864_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP864_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP864_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP864_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP864_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP864_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP864_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP864_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP864_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP864_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP864_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP864_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP864_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP864_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP864_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP864_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP864_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP864_LEFT_SQUARE_BRACKET 0x005B #define T_CP864_REVERSE_SOLIDUS 0x005C #define T_CP864_RIGHT_SQUARE_BRACKET 0x005D #define T_CP864_CIRCUMFLEX_ACCENT 0x005E #define T_CP864_LOW_LINE 0x005F #define T_CP864_GRAVE_ACCENT 0x0060 #define T_CP864_LATIN_SMALL_LETTER_A 0x0061 #define T_CP864_LATIN_SMALL_LETTER_B 0x0062 #define T_CP864_LATIN_SMALL_LETTER_C 0x0063 #define T_CP864_LATIN_SMALL_LETTER_D 0x0064 #define T_CP864_LATIN_SMALL_LETTER_E 0x0065 #define T_CP864_LATIN_SMALL_LETTER_F 0x0066 #define T_CP864_LATIN_SMALL_LETTER_G 0x0067 #define T_CP864_LATIN_SMALL_LETTER_H 0x0068 #define T_CP864_LATIN_SMALL_LETTER_I 0x0069 #define T_CP864_LATIN_SMALL_LETTER_J 0x006A #define T_CP864_LATIN_SMALL_LETTER_K 0x006B #define T_CP864_LATIN_SMALL_LETTER_L 0x006C #define T_CP864_LATIN_SMALL_LETTER_M 0x006D #define T_CP864_LATIN_SMALL_LETTER_N 0x006E #define T_CP864_LATIN_SMALL_LETTER_O 0x006F #define T_CP864_LATIN_SMALL_LETTER_P 0x0070 #define T_CP864_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP864_LATIN_SMALL_LETTER_R 0x0072 #define T_CP864_LATIN_SMALL_LETTER_S 0x0073 #define T_CP864_LATIN_SMALL_LETTER_T 0x0074 #define T_CP864_LATIN_SMALL_LETTER_U 0x0075 #define T_CP864_LATIN_SMALL_LETTER_V 0x0076 #define T_CP864_LATIN_SMALL_LETTER_W 0x0077 #define T_CP864_LATIN_SMALL_LETTER_X 0x0078 #define T_CP864_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP864_LATIN_SMALL_LETTER_Z 0x007A #define T_CP864_LEFT_CURLY_BRACKET 0x007B #define T_CP864_VERTICAL_LINE 0x007C #define T_CP864_RIGHT_CURLY_BRACKET 0x007D #define T_CP864_TILDE 0x007E #define T_CP864_CTRL_DELETE 0x007F #define T_CP864_DEGREE_SIGN 0x0080 #define T_CP864_MIDDLE_DOT 0x0081 #define T_CP864_BULLET_OPERATOR 0x0082 #define T_CP864_SQUARE_ROOT 0x0083 #define T_CP864_MEDIUM_SHADE 0x0084 #define T_CP864_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x0085 #define T_CP864_BOX_DRAWINGS_LIGHT_VERTICAL 0x0086 #define T_CP864_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x0087 #define T_CP864_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x0088 #define T_CP864_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x0089 #define T_CP864_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x008A #define T_CP864_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x008B #define T_CP864_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x008C #define T_CP864_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x008D #define T_CP864_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x008E #define T_CP864_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x008F #define T_CP864_GREEK_SMALL_LETTER_BETA 0x0090 #define T_CP864_INFINITY 0x0091 #define T_CP864_GREEK_SMALL_LETTER_PHI 0x0092 #define T_CP864_PLUS_MINUS_SIGN 0x0093 #define T_CP864_VULGAR_FRACTION_ONE_HALF 0x0094 #define T_CP864_VULGAR_FRACTION_ONE_QUARTER 0x0095 #define T_CP864_ALMOST_EQUAL_TO 0x0096 #define T_CP864_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x0097 #define T_CP864_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x0098 #define T_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_ABOVE_ISOLATED_FORM 0x0099 #define T_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_ABOVE_FINAL_FORM 0x009A #define T_CP864_UNDEFINED_009B 0x009B #define T_CP864_UNDEFINED_009C 0x009C #define T_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_ISOLATED_FORM 0x009D #define T_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_FINAL_FORM 0x009E #define T_CP864_UNDEFINED_009F 0x009F #define T_CP864_NO_BREAK_SPACE 0x00A0 #define T_CP864_SOFT_HYPHEN 0x00A1 #define T_CP864_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_FINAL_FORM 0x00A2 #define T_CP864_POUND_SIGN 0x00A3 #define T_CP864_CURRENCY_SIGN 0x00A4 #define T_CP864_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE_FINAL_FORM 0x00A5 #define T_CP864_UNDEFINED_00A6 0x00A6 #define T_CP864_UNDEFINED_00A7 0x00A7 #define T_CP864_ARABIC_LETTER_ALEF_FINAL_FORM 0x00A8 #define T_CP864_ARABIC_LETTER_BEH_ISOLATED_FORM 0x00A9 #define T_CP864_ARABIC_LETTER_TEH_ISOLATED_FORM 0x00AA #define T_CP864_ARABIC_LETTER_THEH_ISOLATED_FORM 0x00AB #define T_CP864_ARABIC_COMMA 0x00AC #define T_CP864_ARABIC_LETTER_JEEM_ISOLATED_FORM 0x00AD #define T_CP864_ARABIC_LETTER_HAH_ISOLATED_FORM 0x00AE #define T_CP864_ARABIC_LETTER_KHAH_ISOLATED_FORM 0x00AF #define T_CP864_ARABIC_INDIC_DIGIT_ZERO 0x00B0 #define T_CP864_ARABIC_INDIC_DIGIT_ONE 0x00B1 #define T_CP864_ARABIC_INDIC_DIGIT_TWO 0x00B2 #define T_CP864_ARABIC_INDIC_DIGIT_THREE 0x00B3 #define T_CP864_ARABIC_INDIC_DIGIT_FOUR 0x00B4 #define T_CP864_ARABIC_INDIC_DIGIT_FIVE 0x00B5 #define T_CP864_ARABIC_INDIC_DIGIT_SIX 0x00B6 #define T_CP864_ARABIC_INDIC_DIGIT_SEVEN 0x00B7 #define T_CP864_ARABIC_INDIC_DIGIT_EIGHT 0x00B8 #define T_CP864_ARABIC_INDIC_DIGIT_NINE 0x00B9 #define T_CP864_ARABIC_LETTER_FEH_ISOLATED_FORM 0x00BA #define T_CP864_ARABIC_SEMICOLON 0x00BB #define T_CP864_ARABIC_LETTER_SEEN_ISOLATED_FORM 0x00BC #define T_CP864_ARABIC_LETTER_SHEEN_ISOLATED_FORM 0x00BD #define T_CP864_ARABIC_LETTER_SAD_ISOLATED_FORM 0x00BE #define T_CP864_ARABIC_QUESTION_MARK 0x00BF #define T_CP864_CENT_SIGN 0x00C0 #define T_CP864_ARABIC_LETTER_HAMZA_ISOLATED_FORM 0x00C1 #define T_CP864_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM 0x00C2 #define T_CP864_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE_ISOLATED_FORM 0x00C3 #define T_CP864_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE_ISOLATED_FORM 0x00C4 #define T_CP864_ARABIC_LETTER_AIN_FINAL_FORM 0x00C5 #define T_CP864_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_INITIAL_FORM 0x00C6 #define T_CP864_ARABIC_LETTER_ALEF_ISOLATED_FORM 0x00C7 #define T_CP864_ARABIC_LETTER_BEH_INITIAL_FORM 0x00C8 #define T_CP864_ARABIC_LETTER_TEH_MARBUTA_ISOLATED_FORM 0x00C9 #define T_CP864_ARABIC_LETTER_TEH_INITIAL_FORM 0x00CA #define T_CP864_ARABIC_LETTER_THEH_INITIAL_FORM 0x00CB #define T_CP864_ARABIC_LETTER_JEEM_INITIAL_FORM 0x00CC #define T_CP864_ARABIC_LETTER_HAH_INITIAL_FORM 0x00CD #define T_CP864_ARABIC_LETTER_KHAH_INITIAL_FORM 0x00CE #define T_CP864_ARABIC_LETTER_DAL_ISOLATED_FORM 0x00CF #define T_CP864_ARABIC_LETTER_THAL_ISOLATED_FORM 0x00D0 #define T_CP864_ARABIC_LETTER_REH_ISOLATED_FORM 0x00D1 #define T_CP864_ARABIC_LETTER_ZAIN_ISOLATED_FORM 0x00D2 #define T_CP864_ARABIC_LETTER_SEEN_INITIAL_FORM 0x00D3 #define T_CP864_ARABIC_LETTER_SHEEN_INITIAL_FORM 0x00D4 #define T_CP864_ARABIC_LETTER_SAD_INITIAL_FORM 0x00D5 #define T_CP864_ARABIC_LETTER_DAD_INITIAL_FORM 0x00D6 #define T_CP864_ARABIC_LETTER_TAH_ISOLATED_FORM 0x00D7 #define T_CP864_ARABIC_LETTER_ZAH_ISOLATED_FORM 0x00D8 #define T_CP864_ARABIC_LETTER_AIN_INITIAL_FORM 0x00D9 #define T_CP864_ARABIC_LETTER_GHAIN_INITIAL_FORM 0x00DA #define T_CP864_BROKEN_BAR 0x00DB #define T_CP864_NOT_SIGN 0x00DC #define T_CP864_DIVISION_SIGN 0x00DD #define T_CP864_MULTIPLICATION_SIGN 0x00DE #define T_CP864_ARABIC_LETTER_AIN_ISOLATED_FORM 0x00DF #define T_CP864_ARABIC_TATWEEL 0x00E0 #define T_CP864_ARABIC_LETTER_FEH_INITIAL_FORM 0x00E1 #define T_CP864_ARABIC_LETTER_QAF_INITIAL_FORM 0x00E2 #define T_CP864_ARABIC_LETTER_KAF_INITIAL_FORM 0x00E3 #define T_CP864_ARABIC_LETTER_LAM_INITIAL_FORM 0x00E4 #define T_CP864_ARABIC_LETTER_MEEM_INITIAL_FORM 0x00E5 #define T_CP864_ARABIC_LETTER_NOON_INITIAL_FORM 0x00E6 #define T_CP864_ARABIC_LETTER_HEH_INITIAL_FORM 0x00E7 #define T_CP864_ARABIC_LETTER_WAW_ISOLATED_FORM 0x00E8 #define T_CP864_ARABIC_LETTER_ALEF_MAKSURA_ISOLATED_FORM 0x00E9 #define T_CP864_ARABIC_LETTER_YEH_INITIAL_FORM 0x00EA #define T_CP864_ARABIC_LETTER_DAD_ISOLATED_FORM 0x00EB #define T_CP864_ARABIC_LETTER_AIN_MEDIAL_FORM 0x00EC #define T_CP864_ARABIC_LETTER_GHAIN_FINAL_FORM 0x00ED #define T_CP864_ARABIC_LETTER_GHAIN_ISOLATED_FORM 0x00EE #define T_CP864_ARABIC_LETTER_MEEM_ISOLATED_FORM 0x00EF #define T_CP864_ARABIC_SHADDA_MEDIAL_FORM 0x00F0 #define T_CP864_ARABIC_SHADDA 0x00F1 #define T_CP864_ARABIC_LETTER_NOON_ISOLATED_FORM 0x00F2 #define T_CP864_ARABIC_LETTER_HEH_ISOLATED_FORM 0x00F3 #define T_CP864_ARABIC_LETTER_HEH_MEDIAL_FORM 0x00F4 #define T_CP864_ARABIC_LETTER_ALEF_MAKSURA_FINAL_FORM 0x00F5 #define T_CP864_ARABIC_LETTER_YEH_FINAL_FORM 0x00F6 #define T_CP864_ARABIC_LETTER_GHAIN_MEDIAL_FORM 0x00F7 #define T_CP864_ARABIC_LETTER_QAF_ISOLATED_FORM 0x00F8 #define T_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM 0x00F9 #define T_CP864_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_MADDA_ABOVE_FINAL_FORM 0x00FA #define T_CP864_ARABIC_LETTER_LAM_ISOLATED_FORM 0x00FB #define T_CP864_ARABIC_LETTER_KAF_ISOLATED_FORM 0x00FC #define T_CP864_ARABIC_LETTER_YEH_ISOLATED_FORM 0x00FD #define T_CP864_BLACK_SQUARE 0x00FE #define T_CP864_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_CP864(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_ARABIC_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_DEGREE_SIGN) \ EL(_MIDDLE_DOT) \ EL(_BULLET_OPERATOR) \ EL(_SQUARE_ROOT) \ EL(_MEDIUM_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_PLUS_MINUS_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_ALMOST_EQUAL_TO) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_ABOVE_FINAL_FORM) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_ISOLATED_FORM) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_FINAL_FORM) \ EL(_UNDEFINED_009F) \ EL(_NO_BREAK_SPACE) \ EL(_SOFT_HYPHEN) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_FINAL_FORM) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE_FINAL_FORM) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_ARABIC_LETTER_ALEF_FINAL_FORM) \ EL(_ARABIC_LETTER_BEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_THEH_ISOLATED_FORM) \ EL(_ARABIC_COMMA) \ EL(_ARABIC_LETTER_JEEM_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_KHAH_ISOLATED_FORM) \ EL(_ARABIC_INDIC_DIGIT_ZERO) \ EL(_ARABIC_INDIC_DIGIT_ONE) \ EL(_ARABIC_INDIC_DIGIT_TWO) \ EL(_ARABIC_INDIC_DIGIT_THREE) \ EL(_ARABIC_INDIC_DIGIT_FOUR) \ EL(_ARABIC_INDIC_DIGIT_FIVE) \ EL(_ARABIC_INDIC_DIGIT_SIX) \ EL(_ARABIC_INDIC_DIGIT_SEVEN) \ EL(_ARABIC_INDIC_DIGIT_EIGHT) \ EL(_ARABIC_INDIC_DIGIT_NINE) \ EL(_ARABIC_LETTER_FEH_ISOLATED_FORM) \ EL(_ARABIC_SEMICOLON) \ EL(_ARABIC_LETTER_SEEN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SHEEN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SAD_ISOLATED_FORM) \ EL(_ARABIC_QUESTION_MARK) \ EL(_CENT_SIGN) \ EL(_ARABIC_LETTER_HAMZA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_AIN_FINAL_FORM) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_INITIAL_FORM) \ EL(_ARABIC_LETTER_ALEF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_BEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_TEH_MARBUTA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_THEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_JEEM_INITIAL_FORM) \ EL(_ARABIC_LETTER_HAH_INITIAL_FORM) \ EL(_ARABIC_LETTER_KHAH_INITIAL_FORM) \ EL(_ARABIC_LETTER_DAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_THAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_REH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ZAIN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SEEN_INITIAL_FORM) \ EL(_ARABIC_LETTER_SHEEN_INITIAL_FORM) \ EL(_ARABIC_LETTER_SAD_INITIAL_FORM) \ EL(_ARABIC_LETTER_DAD_INITIAL_FORM) \ EL(_ARABIC_LETTER_TAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ZAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_AIN_INITIAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_INITIAL_FORM) \ EL(_BROKEN_BAR) \ EL(_NOT_SIGN) \ EL(_DIVISION_SIGN) \ EL(_MULTIPLICATION_SIGN) \ EL(_ARABIC_LETTER_AIN_ISOLATED_FORM) \ EL(_ARABIC_TATWEEL) \ EL(_ARABIC_LETTER_FEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_QAF_INITIAL_FORM) \ EL(_ARABIC_LETTER_KAF_INITIAL_FORM) \ EL(_ARABIC_LETTER_LAM_INITIAL_FORM) \ EL(_ARABIC_LETTER_MEEM_INITIAL_FORM) \ EL(_ARABIC_LETTER_NOON_INITIAL_FORM) \ EL(_ARABIC_LETTER_HEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_WAW_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ALEF_MAKSURA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_DAD_ISOLATED_FORM) \ EL(_ARABIC_LETTER_AIN_MEDIAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_FINAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_MEEM_ISOLATED_FORM) \ EL(_ARABIC_SHADDA_MEDIAL_FORM) \ EL(_ARABIC_SHADDA) \ EL(_ARABIC_LETTER_NOON_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HEH_MEDIAL_FORM) \ EL(_ARABIC_LETTER_ALEF_MAKSURA_FINAL_FORM) \ EL(_ARABIC_LETTER_YEH_FINAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_MEDIAL_FORM) \ EL(_ARABIC_LETTER_QAF_ISOLATED_FORM) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_MADDA_ABOVE_FINAL_FORM) \ EL(_ARABIC_LETTER_LAM_ISOLATED_FORM) \ EL(_ARABIC_LETTER_KAF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_ISOLATED_FORM) \ EL(_BLACK_SQUARE) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP864(EL) \ EL(_ARABIC_PERCENT_SIGN) \ EL(_DEGREE_SIGN) \ EL(_MIDDLE_DOT) \ EL(_BULLET_OPERATOR) \ EL(_SQUARE_ROOT) \ EL(_MEDIUM_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_PLUS_MINUS_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_ALMOST_EQUAL_TO) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_ABOVE_FINAL_FORM) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_ISOLATED_FORM) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_FINAL_FORM) \ EL(_UNDEFINED_009F) \ EL(_SOFT_HYPHEN) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_FINAL_FORM) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE_FINAL_FORM) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_ARABIC_LETTER_ALEF_FINAL_FORM) \ EL(_ARABIC_LETTER_BEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_THEH_ISOLATED_FORM) \ EL(_ARABIC_COMMA) \ EL(_ARABIC_LETTER_JEEM_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_KHAH_ISOLATED_FORM) \ EL(_ARABIC_INDIC_DIGIT_ZERO) \ EL(_ARABIC_INDIC_DIGIT_ONE) \ EL(_ARABIC_INDIC_DIGIT_TWO) \ EL(_ARABIC_INDIC_DIGIT_THREE) \ EL(_ARABIC_INDIC_DIGIT_FOUR) \ EL(_ARABIC_INDIC_DIGIT_FIVE) \ EL(_ARABIC_INDIC_DIGIT_SIX) \ EL(_ARABIC_INDIC_DIGIT_SEVEN) \ EL(_ARABIC_INDIC_DIGIT_EIGHT) \ EL(_ARABIC_INDIC_DIGIT_NINE) \ EL(_ARABIC_LETTER_FEH_ISOLATED_FORM) \ EL(_ARABIC_SEMICOLON) \ EL(_ARABIC_LETTER_SEEN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SHEEN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SAD_ISOLATED_FORM) \ EL(_ARABIC_QUESTION_MARK) \ EL(_CENT_SIGN) \ EL(_ARABIC_LETTER_HAMZA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LETTER_AIN_FINAL_FORM) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_INITIAL_FORM) \ EL(_ARABIC_LETTER_ALEF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_BEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_TEH_MARBUTA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_TEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_THEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_JEEM_INITIAL_FORM) \ EL(_ARABIC_LETTER_HAH_INITIAL_FORM) \ EL(_ARABIC_LETTER_KHAH_INITIAL_FORM) \ EL(_ARABIC_LETTER_DAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_THAL_ISOLATED_FORM) \ EL(_ARABIC_LETTER_REH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ZAIN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_SEEN_INITIAL_FORM) \ EL(_ARABIC_LETTER_SHEEN_INITIAL_FORM) \ EL(_ARABIC_LETTER_SAD_INITIAL_FORM) \ EL(_ARABIC_LETTER_DAD_INITIAL_FORM) \ EL(_ARABIC_LETTER_TAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ZAH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_AIN_INITIAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_INITIAL_FORM) \ EL(_BROKEN_BAR) \ EL(_NOT_SIGN) \ EL(_DIVISION_SIGN) \ EL(_MULTIPLICATION_SIGN) \ EL(_ARABIC_LETTER_AIN_ISOLATED_FORM) \ EL(_ARABIC_TATWEEL) \ EL(_ARABIC_LETTER_FEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_QAF_INITIAL_FORM) \ EL(_ARABIC_LETTER_KAF_INITIAL_FORM) \ EL(_ARABIC_LETTER_LAM_INITIAL_FORM) \ EL(_ARABIC_LETTER_MEEM_INITIAL_FORM) \ EL(_ARABIC_LETTER_NOON_INITIAL_FORM) \ EL(_ARABIC_LETTER_HEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_WAW_ISOLATED_FORM) \ EL(_ARABIC_LETTER_ALEF_MAKSURA_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_INITIAL_FORM) \ EL(_ARABIC_LETTER_DAD_ISOLATED_FORM) \ EL(_ARABIC_LETTER_AIN_MEDIAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_FINAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_ISOLATED_FORM) \ EL(_ARABIC_LETTER_MEEM_ISOLATED_FORM) \ EL(_ARABIC_SHADDA_MEDIAL_FORM) \ EL(_ARABIC_SHADDA) \ EL(_ARABIC_LETTER_NOON_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HEH_ISOLATED_FORM) \ EL(_ARABIC_LETTER_HEH_MEDIAL_FORM) \ EL(_ARABIC_LETTER_ALEF_MAKSURA_FINAL_FORM) \ EL(_ARABIC_LETTER_YEH_FINAL_FORM) \ EL(_ARABIC_LETTER_GHAIN_MEDIAL_FORM) \ EL(_ARABIC_LETTER_QAF_ISOLATED_FORM) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM) \ EL(_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_MADDA_ABOVE_FINAL_FORM) \ EL(_ARABIC_LETTER_LAM_ISOLATED_FORM) \ EL(_ARABIC_LETTER_KAF_ISOLATED_FORM) \ EL(_ARABIC_LETTER_YEH_ISOLATED_FORM) \ EL(_BLACK_SQUARE) \ EL(_UNDEFINED_00FF) #endif /* TUTF_CP864_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp865.h���������������������������������������������������������������������0000664�0000000�0000000�00000144073�13775351206�0016106�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP865_H #define TUTF_CP865_H #define T_CP865_CTRL_NULL 0x0000 #define T_CP865_CTRL_START_OF_HEADING 0x0001 #define T_CP865_CTRL_START_OF_TEXT 0x0002 #define T_CP865_CTRL_END_OF_TEXT 0x0003 #define T_CP865_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP865_CTRL_ENQUIRY 0x0005 #define T_CP865_CTRL_ACKNOWLEDGE 0x0006 #define T_CP865_CTRL_BELL 0x0007 #define T_CP865_CTRL_BACKSPACE 0x0008 #define T_CP865_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP865_CTRL_LINE_FEED 0x000A #define T_CP865_CTRL_LINE_TABULATION 0x000B #define T_CP865_CTRL_FORM_FEED 0x000C #define T_CP865_CTRL_CARRIAGE_RETURN 0x000D #define T_CP865_CTRL_SHIFT_OUT 0x000E #define T_CP865_CTRL_SHIFT_IN 0x000F #define T_CP865_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP865_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP865_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP865_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP865_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP865_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP865_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP865_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP865_CTRL_CANCEL 0x0018 #define T_CP865_CTRL_END_OF_MEDIUM 0x0019 #define T_CP865_CTRL_SUBSTITUTE 0x001A #define T_CP865_CTRL_ESCAPE 0x001B #define T_CP865_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP865_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP865_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP865_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP865_SPACE 0x0020 #define T_CP865_EXCLAMATION_MARK 0x0021 #define T_CP865_QUOTATION_MARK 0x0022 #define T_CP865_NUMBER_SIGN 0x0023 #define T_CP865_DOLLAR_SIGN 0x0024 #define T_CP865_PERCENT_SIGN 0x0025 #define T_CP865_AMPERSAND 0x0026 #define T_CP865_APOSTROPHE 0x0027 #define T_CP865_LEFT_PARENTHESIS 0x0028 #define T_CP865_RIGHT_PARENTHESIS 0x0029 #define T_CP865_ASTERISK 0x002A #define T_CP865_PLUS_SIGN 0x002B #define T_CP865_COMMA 0x002C #define T_CP865_HYPHEN_MINUS 0x002D #define T_CP865_FULL_STOP 0x002E #define T_CP865_SOLIDUS 0x002F #define T_CP865_DIGIT_ZERO 0x0030 #define T_CP865_DIGIT_ONE 0x0031 #define T_CP865_DIGIT_TWO 0x0032 #define T_CP865_DIGIT_THREE 0x0033 #define T_CP865_DIGIT_FOUR 0x0034 #define T_CP865_DIGIT_FIVE 0x0035 #define T_CP865_DIGIT_SIX 0x0036 #define T_CP865_DIGIT_SEVEN 0x0037 #define T_CP865_DIGIT_EIGHT 0x0038 #define T_CP865_DIGIT_NINE 0x0039 #define T_CP865_COLON 0x003A #define T_CP865_SEMICOLON 0x003B #define T_CP865_LESS_THAN_SIGN 0x003C #define T_CP865_EQUALS_SIGN 0x003D #define T_CP865_GREATER_THAN_SIGN 0x003E #define T_CP865_QUESTION_MARK 0x003F #define T_CP865_COMMERCIAL_AT 0x0040 #define T_CP865_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP865_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP865_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP865_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP865_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP865_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP865_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP865_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP865_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP865_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP865_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP865_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP865_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP865_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP865_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP865_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP865_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP865_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP865_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP865_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP865_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP865_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP865_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP865_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP865_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP865_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP865_LEFT_SQUARE_BRACKET 0x005B #define T_CP865_REVERSE_SOLIDUS 0x005C #define T_CP865_RIGHT_SQUARE_BRACKET 0x005D #define T_CP865_CIRCUMFLEX_ACCENT 0x005E #define T_CP865_LOW_LINE 0x005F #define T_CP865_GRAVE_ACCENT 0x0060 #define T_CP865_LATIN_SMALL_LETTER_A 0x0061 #define T_CP865_LATIN_SMALL_LETTER_B 0x0062 #define T_CP865_LATIN_SMALL_LETTER_C 0x0063 #define T_CP865_LATIN_SMALL_LETTER_D 0x0064 #define T_CP865_LATIN_SMALL_LETTER_E 0x0065 #define T_CP865_LATIN_SMALL_LETTER_F 0x0066 #define T_CP865_LATIN_SMALL_LETTER_G 0x0067 #define T_CP865_LATIN_SMALL_LETTER_H 0x0068 #define T_CP865_LATIN_SMALL_LETTER_I 0x0069 #define T_CP865_LATIN_SMALL_LETTER_J 0x006A #define T_CP865_LATIN_SMALL_LETTER_K 0x006B #define T_CP865_LATIN_SMALL_LETTER_L 0x006C #define T_CP865_LATIN_SMALL_LETTER_M 0x006D #define T_CP865_LATIN_SMALL_LETTER_N 0x006E #define T_CP865_LATIN_SMALL_LETTER_O 0x006F #define T_CP865_LATIN_SMALL_LETTER_P 0x0070 #define T_CP865_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP865_LATIN_SMALL_LETTER_R 0x0072 #define T_CP865_LATIN_SMALL_LETTER_S 0x0073 #define T_CP865_LATIN_SMALL_LETTER_T 0x0074 #define T_CP865_LATIN_SMALL_LETTER_U 0x0075 #define T_CP865_LATIN_SMALL_LETTER_V 0x0076 #define T_CP865_LATIN_SMALL_LETTER_W 0x0077 #define T_CP865_LATIN_SMALL_LETTER_X 0x0078 #define T_CP865_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP865_LATIN_SMALL_LETTER_Z 0x007A #define T_CP865_LEFT_CURLY_BRACKET 0x007B #define T_CP865_VERTICAL_LINE 0x007C #define T_CP865_RIGHT_CURLY_BRACKET 0x007D #define T_CP865_TILDE 0x007E #define T_CP865_CTRL_DELETE 0x007F #define T_CP865_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0080 #define T_CP865_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x0081 #define T_CP865_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x0082 #define T_CP865_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0083 #define T_CP865_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x0084 #define T_CP865_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0085 #define T_CP865_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x0086 #define T_CP865_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x0087 #define T_CP865_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0088 #define T_CP865_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0089 #define T_CP865_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008A #define T_CP865_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x008B #define T_CP865_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x008C #define T_CP865_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x008D #define T_CP865_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x008E #define T_CP865_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x008F #define T_CP865_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0090 #define T_CP865_LATIN_SMALL_LETTER_AE 0x0091 #define T_CP865_LATIN_CAPITAL_LETTER_AE 0x0092 #define T_CP865_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0093 #define T_CP865_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x0094 #define T_CP865_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0095 #define T_CP865_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x0096 #define T_CP865_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x0097 #define T_CP865_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x0098 #define T_CP865_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0099 #define T_CP865_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_CP865_LATIN_SMALL_LETTER_O_WITH_STROKE 0x009B #define T_CP865_POUND_SIGN 0x009C #define T_CP865_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x009D #define T_CP865_PESETA_SIGN 0x009E #define T_CP865_LATIN_SMALL_LETTER_F_WITH_HOOK 0x009F #define T_CP865_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00A0 #define T_CP865_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00A1 #define T_CP865_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00A2 #define T_CP865_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00A3 #define T_CP865_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00A4 #define T_CP865_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00A5 #define T_CP865_FEMININE_ORDINAL_INDICATOR 0x00A6 #define T_CP865_MASCULINE_ORDINAL_INDICATOR 0x00A7 #define T_CP865_INVERTED_QUESTION_MARK 0x00A8 #define T_CP865_REVERSED_NOT_SIGN 0x00A9 #define T_CP865_NOT_SIGN 0x00AA #define T_CP865_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP865_VULGAR_FRACTION_ONE_QUARTER 0x00AC #define T_CP865_INVERTED_EXCLAMATION_MARK 0x00AD #define T_CP865_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP865_CURRENCY_SIGN 0x00AF #define T_CP865_LIGHT_SHADE 0x00B0 #define T_CP865_MEDIUM_SHADE 0x00B1 #define T_CP865_DARK_SHADE 0x00B2 #define T_CP865_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP865_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP865_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B5 #define T_CP865_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x00B6 #define T_CP865_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x00B7 #define T_CP865_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x00B8 #define T_CP865_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP865_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP865_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP865_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP865_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x00BD #define T_CP865_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00BE #define T_CP865_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP865_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP865_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP865_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP865_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP865_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP865_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP865_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00C6 #define T_CP865_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00C7 #define T_CP865_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP865_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP865_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP865_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP865_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP865_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP865_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP865_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00CF #define T_CP865_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D0 #define T_CP865_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D1 #define T_CP865_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D2 #define T_CP865_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00D3 #define T_CP865_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00D4 #define T_CP865_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00D5 #define T_CP865_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x00D6 #define T_CP865_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D7 #define T_CP865_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D8 #define T_CP865_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP865_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP865_FULL_BLOCK 0x00DB #define T_CP865_LOWER_HALF_BLOCK 0x00DC #define T_CP865_LEFT_HALF_BLOCK 0x00DD #define T_CP865_RIGHT_HALF_BLOCK 0x00DE #define T_CP865_UPPER_HALF_BLOCK 0x00DF #define T_CP865_GREEK_SMALL_LETTER_ALPHA 0x00E0 #define T_CP865_LATIN_SMALL_LETTER_SHARP_S 0x00E1 #define T_CP865_GREEK_CAPITAL_LETTER_GAMMA 0x00E2 #define T_CP865_GREEK_SMALL_LETTER_PI 0x00E3 #define T_CP865_GREEK_CAPITAL_LETTER_SIGMA 0x00E4 #define T_CP865_GREEK_SMALL_LETTER_SIGMA 0x00E5 #define T_CP865_MICRO_SIGN 0x00E6 #define T_CP865_GREEK_SMALL_LETTER_TAU 0x00E7 #define T_CP865_GREEK_CAPITAL_LETTER_PHI 0x00E8 #define T_CP865_GREEK_CAPITAL_LETTER_THETA 0x00E9 #define T_CP865_GREEK_CAPITAL_LETTER_OMEGA 0x00EA #define T_CP865_GREEK_SMALL_LETTER_DELTA 0x00EB #define T_CP865_INFINITY 0x00EC #define T_CP865_GREEK_SMALL_LETTER_PHI 0x00ED #define T_CP865_GREEK_SMALL_LETTER_EPSILON 0x00EE #define T_CP865_INTERSECTION 0x00EF #define T_CP865_IDENTICAL_TO 0x00F0 #define T_CP865_PLUS_MINUS_SIGN 0x00F1 #define T_CP865_GREATER_THAN_OR_EQUAL_TO 0x00F2 #define T_CP865_LESS_THAN_OR_EQUAL_TO 0x00F3 #define T_CP865_TOP_HALF_INTEGRAL 0x00F4 #define T_CP865_BOTTOM_HALF_INTEGRAL 0x00F5 #define T_CP865_DIVISION_SIGN 0x00F6 #define T_CP865_ALMOST_EQUAL_TO 0x00F7 #define T_CP865_DEGREE_SIGN 0x00F8 #define T_CP865_BULLET_OPERATOR 0x00F9 #define T_CP865_MIDDLE_DOT 0x00FA #define T_CP865_SQUARE_ROOT 0x00FB #define T_CP865_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0x00FC #define T_CP865_SUPERSCRIPT_TWO 0x00FD #define T_CP865_BLACK_SQUARE 0x00FE #define T_CP865_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP865(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_PESETA_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_CURRENCY_SIGN) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP865(EL) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_PESETA_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_INVERTED_QUESTION_MARK) \ EL(_REVERSED_NOT_SIGN) \ EL(_NOT_SIGN) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_CURRENCY_SIGN) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_MICRO_SIGN) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_INFINITY) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_INTERSECTION) \ EL(_IDENTICAL_TO) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DIVISION_SIGN) \ EL(_ALMOST_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_SUPERSCRIPT_LATIN_SMALL_LETTER_N) \ EL(_SUPERSCRIPT_TWO) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP865_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp866.h���������������������������������������������������������������������0000664�0000000�0000000�00000143765�13775351206�0016116�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP866_H #define TUTF_CP866_H #define T_CP866_CTRL_NULL 0x0000 #define T_CP866_CTRL_START_OF_HEADING 0x0001 #define T_CP866_CTRL_START_OF_TEXT 0x0002 #define T_CP866_CTRL_END_OF_TEXT 0x0003 #define T_CP866_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP866_CTRL_ENQUIRY 0x0005 #define T_CP866_CTRL_ACKNOWLEDGE 0x0006 #define T_CP866_CTRL_BELL 0x0007 #define T_CP866_CTRL_BACKSPACE 0x0008 #define T_CP866_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP866_CTRL_LINE_FEED 0x000A #define T_CP866_CTRL_LINE_TABULATION 0x000B #define T_CP866_CTRL_FORM_FEED 0x000C #define T_CP866_CTRL_CARRIAGE_RETURN 0x000D #define T_CP866_CTRL_SHIFT_OUT 0x000E #define T_CP866_CTRL_SHIFT_IN 0x000F #define T_CP866_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP866_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP866_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP866_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP866_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP866_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP866_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP866_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP866_CTRL_CANCEL 0x0018 #define T_CP866_CTRL_END_OF_MEDIUM 0x0019 #define T_CP866_CTRL_SUBSTITUTE 0x001A #define T_CP866_CTRL_ESCAPE 0x001B #define T_CP866_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP866_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP866_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP866_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP866_SPACE 0x0020 #define T_CP866_EXCLAMATION_MARK 0x0021 #define T_CP866_QUOTATION_MARK 0x0022 #define T_CP866_NUMBER_SIGN 0x0023 #define T_CP866_DOLLAR_SIGN 0x0024 #define T_CP866_PERCENT_SIGN 0x0025 #define T_CP866_AMPERSAND 0x0026 #define T_CP866_APOSTROPHE 0x0027 #define T_CP866_LEFT_PARENTHESIS 0x0028 #define T_CP866_RIGHT_PARENTHESIS 0x0029 #define T_CP866_ASTERISK 0x002A #define T_CP866_PLUS_SIGN 0x002B #define T_CP866_COMMA 0x002C #define T_CP866_HYPHEN_MINUS 0x002D #define T_CP866_FULL_STOP 0x002E #define T_CP866_SOLIDUS 0x002F #define T_CP866_DIGIT_ZERO 0x0030 #define T_CP866_DIGIT_ONE 0x0031 #define T_CP866_DIGIT_TWO 0x0032 #define T_CP866_DIGIT_THREE 0x0033 #define T_CP866_DIGIT_FOUR 0x0034 #define T_CP866_DIGIT_FIVE 0x0035 #define T_CP866_DIGIT_SIX 0x0036 #define T_CP866_DIGIT_SEVEN 0x0037 #define T_CP866_DIGIT_EIGHT 0x0038 #define T_CP866_DIGIT_NINE 0x0039 #define T_CP866_COLON 0x003A #define T_CP866_SEMICOLON 0x003B #define T_CP866_LESS_THAN_SIGN 0x003C #define T_CP866_EQUALS_SIGN 0x003D #define T_CP866_GREATER_THAN_SIGN 0x003E #define T_CP866_QUESTION_MARK 0x003F #define T_CP866_COMMERCIAL_AT 0x0040 #define T_CP866_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP866_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP866_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP866_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP866_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP866_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP866_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP866_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP866_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP866_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP866_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP866_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP866_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP866_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP866_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP866_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP866_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP866_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP866_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP866_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP866_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP866_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP866_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP866_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP866_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP866_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP866_LEFT_SQUARE_BRACKET 0x005B #define T_CP866_REVERSE_SOLIDUS 0x005C #define T_CP866_RIGHT_SQUARE_BRACKET 0x005D #define T_CP866_CIRCUMFLEX_ACCENT 0x005E #define T_CP866_LOW_LINE 0x005F #define T_CP866_GRAVE_ACCENT 0x0060 #define T_CP866_LATIN_SMALL_LETTER_A 0x0061 #define T_CP866_LATIN_SMALL_LETTER_B 0x0062 #define T_CP866_LATIN_SMALL_LETTER_C 0x0063 #define T_CP866_LATIN_SMALL_LETTER_D 0x0064 #define T_CP866_LATIN_SMALL_LETTER_E 0x0065 #define T_CP866_LATIN_SMALL_LETTER_F 0x0066 #define T_CP866_LATIN_SMALL_LETTER_G 0x0067 #define T_CP866_LATIN_SMALL_LETTER_H 0x0068 #define T_CP866_LATIN_SMALL_LETTER_I 0x0069 #define T_CP866_LATIN_SMALL_LETTER_J 0x006A #define T_CP866_LATIN_SMALL_LETTER_K 0x006B #define T_CP866_LATIN_SMALL_LETTER_L 0x006C #define T_CP866_LATIN_SMALL_LETTER_M 0x006D #define T_CP866_LATIN_SMALL_LETTER_N 0x006E #define T_CP866_LATIN_SMALL_LETTER_O 0x006F #define T_CP866_LATIN_SMALL_LETTER_P 0x0070 #define T_CP866_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP866_LATIN_SMALL_LETTER_R 0x0072 #define T_CP866_LATIN_SMALL_LETTER_S 0x0073 #define T_CP866_LATIN_SMALL_LETTER_T 0x0074 #define T_CP866_LATIN_SMALL_LETTER_U 0x0075 #define T_CP866_LATIN_SMALL_LETTER_V 0x0076 #define T_CP866_LATIN_SMALL_LETTER_W 0x0077 #define T_CP866_LATIN_SMALL_LETTER_X 0x0078 #define T_CP866_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP866_LATIN_SMALL_LETTER_Z 0x007A #define T_CP866_LEFT_CURLY_BRACKET 0x007B #define T_CP866_VERTICAL_LINE 0x007C #define T_CP866_RIGHT_CURLY_BRACKET 0x007D #define T_CP866_TILDE 0x007E #define T_CP866_CTRL_DELETE 0x007F #define T_CP866_CYRILLIC_CAPITAL_LETTER_A 0x0080 #define T_CP866_CYRILLIC_CAPITAL_LETTER_BE 0x0081 #define T_CP866_CYRILLIC_CAPITAL_LETTER_VE 0x0082 #define T_CP866_CYRILLIC_CAPITAL_LETTER_GHE 0x0083 #define T_CP866_CYRILLIC_CAPITAL_LETTER_DE 0x0084 #define T_CP866_CYRILLIC_CAPITAL_LETTER_IE 0x0085 #define T_CP866_CYRILLIC_CAPITAL_LETTER_ZHE 0x0086 #define T_CP866_CYRILLIC_CAPITAL_LETTER_ZE 0x0087 #define T_CP866_CYRILLIC_CAPITAL_LETTER_I 0x0088 #define T_CP866_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x0089 #define T_CP866_CYRILLIC_CAPITAL_LETTER_KA 0x008A #define T_CP866_CYRILLIC_CAPITAL_LETTER_EL 0x008B #define T_CP866_CYRILLIC_CAPITAL_LETTER_EM 0x008C #define T_CP866_CYRILLIC_CAPITAL_LETTER_EN 0x008D #define T_CP866_CYRILLIC_CAPITAL_LETTER_O 0x008E #define T_CP866_CYRILLIC_CAPITAL_LETTER_PE 0x008F #define T_CP866_CYRILLIC_CAPITAL_LETTER_ER 0x0090 #define T_CP866_CYRILLIC_CAPITAL_LETTER_ES 0x0091 #define T_CP866_CYRILLIC_CAPITAL_LETTER_TE 0x0092 #define T_CP866_CYRILLIC_CAPITAL_LETTER_U 0x0093 #define T_CP866_CYRILLIC_CAPITAL_LETTER_EF 0x0094 #define T_CP866_CYRILLIC_CAPITAL_LETTER_HA 0x0095 #define T_CP866_CYRILLIC_CAPITAL_LETTER_TSE 0x0096 #define T_CP866_CYRILLIC_CAPITAL_LETTER_CHE 0x0097 #define T_CP866_CYRILLIC_CAPITAL_LETTER_SHA 0x0098 #define T_CP866_CYRILLIC_CAPITAL_LETTER_SHCHA 0x0099 #define T_CP866_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x009A #define T_CP866_CYRILLIC_CAPITAL_LETTER_YERU 0x009B #define T_CP866_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x009C #define T_CP866_CYRILLIC_CAPITAL_LETTER_E 0x009D #define T_CP866_CYRILLIC_CAPITAL_LETTER_YU 0x009E #define T_CP866_CYRILLIC_CAPITAL_LETTER_YA 0x009F #define T_CP866_CYRILLIC_SMALL_LETTER_A 0x00A0 #define T_CP866_CYRILLIC_SMALL_LETTER_BE 0x00A1 #define T_CP866_CYRILLIC_SMALL_LETTER_VE 0x00A2 #define T_CP866_CYRILLIC_SMALL_LETTER_GHE 0x00A3 #define T_CP866_CYRILLIC_SMALL_LETTER_DE 0x00A4 #define T_CP866_CYRILLIC_SMALL_LETTER_IE 0x00A5 #define T_CP866_CYRILLIC_SMALL_LETTER_ZHE 0x00A6 #define T_CP866_CYRILLIC_SMALL_LETTER_ZE 0x00A7 #define T_CP866_CYRILLIC_SMALL_LETTER_I 0x00A8 #define T_CP866_CYRILLIC_SMALL_LETTER_SHORT_I 0x00A9 #define T_CP866_CYRILLIC_SMALL_LETTER_KA 0x00AA #define T_CP866_CYRILLIC_SMALL_LETTER_EL 0x00AB #define T_CP866_CYRILLIC_SMALL_LETTER_EM 0x00AC #define T_CP866_CYRILLIC_SMALL_LETTER_EN 0x00AD #define T_CP866_CYRILLIC_SMALL_LETTER_O 0x00AE #define T_CP866_CYRILLIC_SMALL_LETTER_PE 0x00AF #define T_CP866_LIGHT_SHADE 0x00B0 #define T_CP866_MEDIUM_SHADE 0x00B1 #define T_CP866_DARK_SHADE 0x00B2 #define T_CP866_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP866_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP866_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B5 #define T_CP866_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x00B6 #define T_CP866_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x00B7 #define T_CP866_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x00B8 #define T_CP866_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP866_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP866_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP866_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP866_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x00BD #define T_CP866_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00BE #define T_CP866_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP866_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP866_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP866_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP866_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP866_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP866_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP866_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00C6 #define T_CP866_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00C7 #define T_CP866_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP866_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP866_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP866_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP866_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP866_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP866_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP866_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00CF #define T_CP866_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D0 #define T_CP866_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D1 #define T_CP866_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D2 #define T_CP866_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00D3 #define T_CP866_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00D4 #define T_CP866_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00D5 #define T_CP866_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x00D6 #define T_CP866_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x00D7 #define T_CP866_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00D8 #define T_CP866_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP866_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP866_FULL_BLOCK 0x00DB #define T_CP866_LOWER_HALF_BLOCK 0x00DC #define T_CP866_LEFT_HALF_BLOCK 0x00DD #define T_CP866_RIGHT_HALF_BLOCK 0x00DE #define T_CP866_UPPER_HALF_BLOCK 0x00DF #define T_CP866_CYRILLIC_SMALL_LETTER_ER 0x00E0 #define T_CP866_CYRILLIC_SMALL_LETTER_ES 0x00E1 #define T_CP866_CYRILLIC_SMALL_LETTER_TE 0x00E2 #define T_CP866_CYRILLIC_SMALL_LETTER_U 0x00E3 #define T_CP866_CYRILLIC_SMALL_LETTER_EF 0x00E4 #define T_CP866_CYRILLIC_SMALL_LETTER_HA 0x00E5 #define T_CP866_CYRILLIC_SMALL_LETTER_TSE 0x00E6 #define T_CP866_CYRILLIC_SMALL_LETTER_CHE 0x00E7 #define T_CP866_CYRILLIC_SMALL_LETTER_SHA 0x00E8 #define T_CP866_CYRILLIC_SMALL_LETTER_SHCHA 0x00E9 #define T_CP866_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x00EA #define T_CP866_CYRILLIC_SMALL_LETTER_YERU 0x00EB #define T_CP866_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0x00EC #define T_CP866_CYRILLIC_SMALL_LETTER_E 0x00ED #define T_CP866_CYRILLIC_SMALL_LETTER_YU 0x00EE #define T_CP866_CYRILLIC_SMALL_LETTER_YA 0x00EF #define T_CP866_CYRILLIC_CAPITAL_LETTER_IO 0x00F0 #define T_CP866_CYRILLIC_SMALL_LETTER_IO 0x00F1 #define T_CP866_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0x00F2 #define T_CP866_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0x00F3 #define T_CP866_CYRILLIC_CAPITAL_LETTER_YI 0x00F4 #define T_CP866_CYRILLIC_SMALL_LETTER_YI 0x00F5 #define T_CP866_CYRILLIC_CAPITAL_LETTER_SHORT_U 0x00F6 #define T_CP866_CYRILLIC_SMALL_LETTER_SHORT_U 0x00F7 #define T_CP866_DEGREE_SIGN 0x00F8 #define T_CP866_BULLET_OPERATOR 0x00F9 #define T_CP866_MIDDLE_DOT 0x00FA #define T_CP866_SQUARE_ROOT 0x00FB #define T_CP866_NUMERO_SIGN 0x00FC #define T_CP866_CURRENCY_SIGN 0x00FD #define T_CP866_BLACK_SQUARE 0x00FE #define T_CP866_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP866(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_NUMERO_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP866(EL) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_UPPER_HALF_BLOCK) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_DEGREE_SIGN) \ EL(_BULLET_OPERATOR) \ EL(_MIDDLE_DOT) \ EL(_SQUARE_ROOT) \ EL(_NUMERO_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP866_H */ �����������twin-0.9.0/include/Tutf/cp869.h���������������������������������������������������������������������0000664�0000000�0000000�00000143264�13775351206�0016113�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP869_H #define TUTF_CP869_H #define T_CP869_CTRL_NULL 0x0000 #define T_CP869_CTRL_START_OF_HEADING 0x0001 #define T_CP869_CTRL_START_OF_TEXT 0x0002 #define T_CP869_CTRL_END_OF_TEXT 0x0003 #define T_CP869_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP869_CTRL_ENQUIRY 0x0005 #define T_CP869_CTRL_ACKNOWLEDGE 0x0006 #define T_CP869_CTRL_BELL 0x0007 #define T_CP869_CTRL_BACKSPACE 0x0008 #define T_CP869_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP869_CTRL_LINE_FEED 0x000A #define T_CP869_CTRL_LINE_TABULATION 0x000B #define T_CP869_CTRL_FORM_FEED 0x000C #define T_CP869_CTRL_CARRIAGE_RETURN 0x000D #define T_CP869_CTRL_SHIFT_OUT 0x000E #define T_CP869_CTRL_SHIFT_IN 0x000F #define T_CP869_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP869_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP869_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP869_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP869_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP869_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP869_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP869_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP869_CTRL_CANCEL 0x0018 #define T_CP869_CTRL_END_OF_MEDIUM 0x0019 #define T_CP869_CTRL_SUBSTITUTE 0x001A #define T_CP869_CTRL_ESCAPE 0x001B #define T_CP869_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP869_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP869_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP869_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP869_SPACE 0x0020 #define T_CP869_EXCLAMATION_MARK 0x0021 #define T_CP869_QUOTATION_MARK 0x0022 #define T_CP869_NUMBER_SIGN 0x0023 #define T_CP869_DOLLAR_SIGN 0x0024 #define T_CP869_PERCENT_SIGN 0x0025 #define T_CP869_AMPERSAND 0x0026 #define T_CP869_APOSTROPHE 0x0027 #define T_CP869_LEFT_PARENTHESIS 0x0028 #define T_CP869_RIGHT_PARENTHESIS 0x0029 #define T_CP869_ASTERISK 0x002A #define T_CP869_PLUS_SIGN 0x002B #define T_CP869_COMMA 0x002C #define T_CP869_HYPHEN_MINUS 0x002D #define T_CP869_FULL_STOP 0x002E #define T_CP869_SOLIDUS 0x002F #define T_CP869_DIGIT_ZERO 0x0030 #define T_CP869_DIGIT_ONE 0x0031 #define T_CP869_DIGIT_TWO 0x0032 #define T_CP869_DIGIT_THREE 0x0033 #define T_CP869_DIGIT_FOUR 0x0034 #define T_CP869_DIGIT_FIVE 0x0035 #define T_CP869_DIGIT_SIX 0x0036 #define T_CP869_DIGIT_SEVEN 0x0037 #define T_CP869_DIGIT_EIGHT 0x0038 #define T_CP869_DIGIT_NINE 0x0039 #define T_CP869_COLON 0x003A #define T_CP869_SEMICOLON 0x003B #define T_CP869_LESS_THAN_SIGN 0x003C #define T_CP869_EQUALS_SIGN 0x003D #define T_CP869_GREATER_THAN_SIGN 0x003E #define T_CP869_QUESTION_MARK 0x003F #define T_CP869_COMMERCIAL_AT 0x0040 #define T_CP869_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP869_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP869_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP869_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP869_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP869_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP869_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP869_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP869_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP869_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP869_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP869_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP869_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP869_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP869_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP869_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP869_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP869_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP869_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP869_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP869_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP869_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP869_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP869_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP869_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP869_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP869_LEFT_SQUARE_BRACKET 0x005B #define T_CP869_REVERSE_SOLIDUS 0x005C #define T_CP869_RIGHT_SQUARE_BRACKET 0x005D #define T_CP869_CIRCUMFLEX_ACCENT 0x005E #define T_CP869_LOW_LINE 0x005F #define T_CP869_GRAVE_ACCENT 0x0060 #define T_CP869_LATIN_SMALL_LETTER_A 0x0061 #define T_CP869_LATIN_SMALL_LETTER_B 0x0062 #define T_CP869_LATIN_SMALL_LETTER_C 0x0063 #define T_CP869_LATIN_SMALL_LETTER_D 0x0064 #define T_CP869_LATIN_SMALL_LETTER_E 0x0065 #define T_CP869_LATIN_SMALL_LETTER_F 0x0066 #define T_CP869_LATIN_SMALL_LETTER_G 0x0067 #define T_CP869_LATIN_SMALL_LETTER_H 0x0068 #define T_CP869_LATIN_SMALL_LETTER_I 0x0069 #define T_CP869_LATIN_SMALL_LETTER_J 0x006A #define T_CP869_LATIN_SMALL_LETTER_K 0x006B #define T_CP869_LATIN_SMALL_LETTER_L 0x006C #define T_CP869_LATIN_SMALL_LETTER_M 0x006D #define T_CP869_LATIN_SMALL_LETTER_N 0x006E #define T_CP869_LATIN_SMALL_LETTER_O 0x006F #define T_CP869_LATIN_SMALL_LETTER_P 0x0070 #define T_CP869_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP869_LATIN_SMALL_LETTER_R 0x0072 #define T_CP869_LATIN_SMALL_LETTER_S 0x0073 #define T_CP869_LATIN_SMALL_LETTER_T 0x0074 #define T_CP869_LATIN_SMALL_LETTER_U 0x0075 #define T_CP869_LATIN_SMALL_LETTER_V 0x0076 #define T_CP869_LATIN_SMALL_LETTER_W 0x0077 #define T_CP869_LATIN_SMALL_LETTER_X 0x0078 #define T_CP869_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP869_LATIN_SMALL_LETTER_Z 0x007A #define T_CP869_LEFT_CURLY_BRACKET 0x007B #define T_CP869_VERTICAL_LINE 0x007C #define T_CP869_RIGHT_CURLY_BRACKET 0x007D #define T_CP869_TILDE 0x007E #define T_CP869_CTRL_DELETE 0x007F #define T_CP869_UNDEFINED_0080 0x0080 #define T_CP869_UNDEFINED_0081 0x0081 #define T_CP869_UNDEFINED_0082 0x0082 #define T_CP869_UNDEFINED_0083 0x0083 #define T_CP869_UNDEFINED_0084 0x0084 #define T_CP869_UNDEFINED_0085 0x0085 #define T_CP869_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0x0086 #define T_CP869_UNDEFINED_0087 0x0087 #define T_CP869_MIDDLE_DOT 0x0088 #define T_CP869_NOT_SIGN 0x0089 #define T_CP869_BROKEN_BAR 0x008A #define T_CP869_LEFT_SINGLE_QUOTATION_MARK 0x008B #define T_CP869_RIGHT_SINGLE_QUOTATION_MARK 0x008C #define T_CP869_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0x008D #define T_CP869_HORIZONTAL_BAR 0x008E #define T_CP869_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0x008F #define T_CP869_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0x0090 #define T_CP869_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0x0091 #define T_CP869_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0x0092 #define T_CP869_UNDEFINED_0093 0x0093 #define T_CP869_UNDEFINED_0094 0x0094 #define T_CP869_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0x0095 #define T_CP869_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0x0096 #define T_CP869_COPYRIGHT_SIGN 0x0097 #define T_CP869_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0x0098 #define T_CP869_SUPERSCRIPT_TWO 0x0099 #define T_CP869_SUPERSCRIPT_THREE 0x009A #define T_CP869_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0x009B #define T_CP869_POUND_SIGN 0x009C #define T_CP869_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0x009D #define T_CP869_GREEK_SMALL_LETTER_ETA_WITH_TONOS 0x009E #define T_CP869_GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0x009F #define T_CP869_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0x00A0 #define T_CP869_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS 0x00A1 #define T_CP869_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0x00A2 #define T_CP869_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0x00A3 #define T_CP869_GREEK_CAPITAL_LETTER_ALPHA 0x00A4 #define T_CP869_GREEK_CAPITAL_LETTER_BETA 0x00A5 #define T_CP869_GREEK_CAPITAL_LETTER_GAMMA 0x00A6 #define T_CP869_GREEK_CAPITAL_LETTER_DELTA 0x00A7 #define T_CP869_GREEK_CAPITAL_LETTER_EPSILON 0x00A8 #define T_CP869_GREEK_CAPITAL_LETTER_ZETA 0x00A9 #define T_CP869_GREEK_CAPITAL_LETTER_ETA 0x00AA #define T_CP869_VULGAR_FRACTION_ONE_HALF 0x00AB #define T_CP869_GREEK_CAPITAL_LETTER_THETA 0x00AC #define T_CP869_GREEK_CAPITAL_LETTER_IOTA 0x00AD #define T_CP869_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AE #define T_CP869_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AF #define T_CP869_LIGHT_SHADE 0x00B0 #define T_CP869_MEDIUM_SHADE 0x00B1 #define T_CP869_DARK_SHADE 0x00B2 #define T_CP869_BOX_DRAWINGS_LIGHT_VERTICAL 0x00B3 #define T_CP869_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x00B4 #define T_CP869_GREEK_CAPITAL_LETTER_KAPPA 0x00B5 #define T_CP869_GREEK_CAPITAL_LETTER_LAMDA 0x00B6 #define T_CP869_GREEK_CAPITAL_LETTER_MU 0x00B7 #define T_CP869_GREEK_CAPITAL_LETTER_NU 0x00B8 #define T_CP869_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B9 #define T_CP869_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00BA #define T_CP869_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00BB #define T_CP869_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00BC #define T_CP869_GREEK_CAPITAL_LETTER_XI 0x00BD #define T_CP869_GREEK_CAPITAL_LETTER_OMICRON 0x00BE #define T_CP869_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x00BF #define T_CP869_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x00C0 #define T_CP869_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x00C1 #define T_CP869_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x00C2 #define T_CP869_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x00C3 #define T_CP869_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x00C4 #define T_CP869_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x00C5 #define T_CP869_GREEK_CAPITAL_LETTER_PI 0x00C6 #define T_CP869_GREEK_CAPITAL_LETTER_RHO 0x00C7 #define T_CP869_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00C8 #define T_CP869_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00C9 #define T_CP869_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00CA #define T_CP869_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00CB #define T_CP869_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00CC #define T_CP869_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00CD #define T_CP869_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00CE #define T_CP869_GREEK_CAPITAL_LETTER_SIGMA 0x00CF #define T_CP869_GREEK_CAPITAL_LETTER_TAU 0x00D0 #define T_CP869_GREEK_CAPITAL_LETTER_UPSILON 0x00D1 #define T_CP869_GREEK_CAPITAL_LETTER_PHI 0x00D2 #define T_CP869_GREEK_CAPITAL_LETTER_CHI 0x00D3 #define T_CP869_GREEK_CAPITAL_LETTER_PSI 0x00D4 #define T_CP869_GREEK_CAPITAL_LETTER_OMEGA 0x00D5 #define T_CP869_GREEK_SMALL_LETTER_ALPHA 0x00D6 #define T_CP869_GREEK_SMALL_LETTER_BETA 0x00D7 #define T_CP869_GREEK_SMALL_LETTER_GAMMA 0x00D8 #define T_CP869_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x00D9 #define T_CP869_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x00DA #define T_CP869_FULL_BLOCK 0x00DB #define T_CP869_LOWER_HALF_BLOCK 0x00DC #define T_CP869_GREEK_SMALL_LETTER_DELTA 0x00DD #define T_CP869_GREEK_SMALL_LETTER_EPSILON 0x00DE #define T_CP869_UPPER_HALF_BLOCK 0x00DF #define T_CP869_GREEK_SMALL_LETTER_ZETA 0x00E0 #define T_CP869_GREEK_SMALL_LETTER_ETA 0x00E1 #define T_CP869_GREEK_SMALL_LETTER_THETA 0x00E2 #define T_CP869_GREEK_SMALL_LETTER_IOTA 0x00E3 #define T_CP869_GREEK_SMALL_LETTER_KAPPA 0x00E4 #define T_CP869_GREEK_SMALL_LETTER_LAMDA 0x00E5 #define T_CP869_GREEK_SMALL_LETTER_MU 0x00E6 #define T_CP869_GREEK_SMALL_LETTER_NU 0x00E7 #define T_CP869_GREEK_SMALL_LETTER_XI 0x00E8 #define T_CP869_GREEK_SMALL_LETTER_OMICRON 0x00E9 #define T_CP869_GREEK_SMALL_LETTER_PI 0x00EA #define T_CP869_GREEK_SMALL_LETTER_RHO 0x00EB #define T_CP869_GREEK_SMALL_LETTER_SIGMA 0x00EC #define T_CP869_GREEK_SMALL_LETTER_FINAL_SIGMA 0x00ED #define T_CP869_GREEK_SMALL_LETTER_TAU 0x00EE #define T_CP869_GREEK_TONOS 0x00EF #define T_CP869_SOFT_HYPHEN 0x00F0 #define T_CP869_PLUS_MINUS_SIGN 0x00F1 #define T_CP869_GREEK_SMALL_LETTER_UPSILON 0x00F2 #define T_CP869_GREEK_SMALL_LETTER_PHI 0x00F3 #define T_CP869_GREEK_SMALL_LETTER_CHI 0x00F4 #define T_CP869_SECTION_SIGN 0x00F5 #define T_CP869_GREEK_SMALL_LETTER_PSI 0x00F6 #define T_CP869_GREEK_DIALYTIKA_TONOS 0x00F7 #define T_CP869_DEGREE_SIGN 0x00F8 #define T_CP869_DIAERESIS 0x00F9 #define T_CP869_GREEK_SMALL_LETTER_OMEGA 0x00FA #define T_CP869_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0x00FB #define T_CP869_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS 0x00FC #define T_CP869_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0x00FD #define T_CP869_BLACK_SQUARE 0x00FE #define T_CP869_NO_BREAK_SPACE 0x00FF /* list of all characters */ #define T_LIST_CP869(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_UNDEFINED_0087) \ EL(_MIDDLE_DOT) \ EL(_NOT_SIGN) \ EL(_BROKEN_BAR) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_HORIZONTAL_BAR) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_COPYRIGHT_SIGN) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_POUND_SIGN) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_TONOS) \ EL(_SOFT_HYPHEN) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_SECTION_SIGN) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_GREEK_DIALYTIKA_TONOS) \ EL(_DEGREE_SIGN) \ EL(_DIAERESIS) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP869(EL) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_UNDEFINED_0087) \ EL(_MIDDLE_DOT) \ EL(_NOT_SIGN) \ EL(_BROKEN_BAR) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_HORIZONTAL_BAR) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_COPYRIGHT_SIGN) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_POUND_SIGN) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_FULL_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_UPPER_HALF_BLOCK) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_TONOS) \ EL(_SOFT_HYPHEN) \ EL(_PLUS_MINUS_SIGN) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_SECTION_SIGN) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_GREEK_DIALYTIKA_TONOS) \ EL(_DEGREE_SIGN) \ EL(_DIAERESIS) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) \ EL(_BLACK_SQUARE) \ EL(_NO_BREAK_SPACE) #endif /* TUTF_CP869_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp874.h���������������������������������������������������������������������0000664�0000000�0000000�00000141503�13775351206�0016101�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP874_H #define TUTF_CP874_H #define T_CP874_CTRL_NULL 0x0000 #define T_CP874_CTRL_START_OF_HEADING 0x0001 #define T_CP874_CTRL_START_OF_TEXT 0x0002 #define T_CP874_CTRL_END_OF_TEXT 0x0003 #define T_CP874_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP874_CTRL_ENQUIRY 0x0005 #define T_CP874_CTRL_ACKNOWLEDGE 0x0006 #define T_CP874_CTRL_BELL 0x0007 #define T_CP874_CTRL_BACKSPACE 0x0008 #define T_CP874_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP874_CTRL_LINE_FEED 0x000A #define T_CP874_CTRL_LINE_TABULATION 0x000B #define T_CP874_CTRL_FORM_FEED 0x000C #define T_CP874_CTRL_CARRIAGE_RETURN 0x000D #define T_CP874_CTRL_SHIFT_OUT 0x000E #define T_CP874_CTRL_SHIFT_IN 0x000F #define T_CP874_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP874_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP874_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP874_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP874_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP874_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP874_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP874_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP874_CTRL_CANCEL 0x0018 #define T_CP874_CTRL_END_OF_MEDIUM 0x0019 #define T_CP874_CTRL_SUBSTITUTE 0x001A #define T_CP874_CTRL_ESCAPE 0x001B #define T_CP874_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP874_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP874_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP874_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP874_SPACE 0x0020 #define T_CP874_EXCLAMATION_MARK 0x0021 #define T_CP874_QUOTATION_MARK 0x0022 #define T_CP874_NUMBER_SIGN 0x0023 #define T_CP874_DOLLAR_SIGN 0x0024 #define T_CP874_PERCENT_SIGN 0x0025 #define T_CP874_AMPERSAND 0x0026 #define T_CP874_APOSTROPHE 0x0027 #define T_CP874_LEFT_PARENTHESIS 0x0028 #define T_CP874_RIGHT_PARENTHESIS 0x0029 #define T_CP874_ASTERISK 0x002A #define T_CP874_PLUS_SIGN 0x002B #define T_CP874_COMMA 0x002C #define T_CP874_HYPHEN_MINUS 0x002D #define T_CP874_FULL_STOP 0x002E #define T_CP874_SOLIDUS 0x002F #define T_CP874_DIGIT_ZERO 0x0030 #define T_CP874_DIGIT_ONE 0x0031 #define T_CP874_DIGIT_TWO 0x0032 #define T_CP874_DIGIT_THREE 0x0033 #define T_CP874_DIGIT_FOUR 0x0034 #define T_CP874_DIGIT_FIVE 0x0035 #define T_CP874_DIGIT_SIX 0x0036 #define T_CP874_DIGIT_SEVEN 0x0037 #define T_CP874_DIGIT_EIGHT 0x0038 #define T_CP874_DIGIT_NINE 0x0039 #define T_CP874_COLON 0x003A #define T_CP874_SEMICOLON 0x003B #define T_CP874_LESS_THAN_SIGN 0x003C #define T_CP874_EQUALS_SIGN 0x003D #define T_CP874_GREATER_THAN_SIGN 0x003E #define T_CP874_QUESTION_MARK 0x003F #define T_CP874_COMMERCIAL_AT 0x0040 #define T_CP874_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP874_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP874_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP874_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP874_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP874_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP874_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP874_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP874_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP874_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP874_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP874_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP874_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP874_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP874_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP874_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP874_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP874_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP874_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP874_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP874_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP874_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP874_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP874_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP874_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP874_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP874_LEFT_SQUARE_BRACKET 0x005B #define T_CP874_REVERSE_SOLIDUS 0x005C #define T_CP874_RIGHT_SQUARE_BRACKET 0x005D #define T_CP874_CIRCUMFLEX_ACCENT 0x005E #define T_CP874_LOW_LINE 0x005F #define T_CP874_GRAVE_ACCENT 0x0060 #define T_CP874_LATIN_SMALL_LETTER_A 0x0061 #define T_CP874_LATIN_SMALL_LETTER_B 0x0062 #define T_CP874_LATIN_SMALL_LETTER_C 0x0063 #define T_CP874_LATIN_SMALL_LETTER_D 0x0064 #define T_CP874_LATIN_SMALL_LETTER_E 0x0065 #define T_CP874_LATIN_SMALL_LETTER_F 0x0066 #define T_CP874_LATIN_SMALL_LETTER_G 0x0067 #define T_CP874_LATIN_SMALL_LETTER_H 0x0068 #define T_CP874_LATIN_SMALL_LETTER_I 0x0069 #define T_CP874_LATIN_SMALL_LETTER_J 0x006A #define T_CP874_LATIN_SMALL_LETTER_K 0x006B #define T_CP874_LATIN_SMALL_LETTER_L 0x006C #define T_CP874_LATIN_SMALL_LETTER_M 0x006D #define T_CP874_LATIN_SMALL_LETTER_N 0x006E #define T_CP874_LATIN_SMALL_LETTER_O 0x006F #define T_CP874_LATIN_SMALL_LETTER_P 0x0070 #define T_CP874_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP874_LATIN_SMALL_LETTER_R 0x0072 #define T_CP874_LATIN_SMALL_LETTER_S 0x0073 #define T_CP874_LATIN_SMALL_LETTER_T 0x0074 #define T_CP874_LATIN_SMALL_LETTER_U 0x0075 #define T_CP874_LATIN_SMALL_LETTER_V 0x0076 #define T_CP874_LATIN_SMALL_LETTER_W 0x0077 #define T_CP874_LATIN_SMALL_LETTER_X 0x0078 #define T_CP874_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP874_LATIN_SMALL_LETTER_Z 0x007A #define T_CP874_LEFT_CURLY_BRACKET 0x007B #define T_CP874_VERTICAL_LINE 0x007C #define T_CP874_RIGHT_CURLY_BRACKET 0x007D #define T_CP874_TILDE 0x007E #define T_CP874_CTRL_DELETE 0x007F #define T_CP874_EURO_SIGN 0x0080 #define T_CP874_UNDEFINED_0081 0x0081 #define T_CP874_UNDEFINED_0082 0x0082 #define T_CP874_UNDEFINED_0083 0x0083 #define T_CP874_UNDEFINED_0084 0x0084 #define T_CP874_HORIZONTAL_ELLIPSIS 0x0085 #define T_CP874_UNDEFINED_0086 0x0086 #define T_CP874_UNDEFINED_0087 0x0087 #define T_CP874_UNDEFINED_0088 0x0088 #define T_CP874_UNDEFINED_0089 0x0089 #define T_CP874_UNDEFINED_008A 0x008A #define T_CP874_UNDEFINED_008B 0x008B #define T_CP874_UNDEFINED_008C 0x008C #define T_CP874_UNDEFINED_008D 0x008D #define T_CP874_UNDEFINED_008E 0x008E #define T_CP874_UNDEFINED_008F 0x008F #define T_CP874_UNDEFINED_0090 0x0090 #define T_CP874_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_CP874_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_CP874_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_CP874_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_CP874_BULLET 0x0095 #define T_CP874_EN_DASH 0x0096 #define T_CP874_EM_DASH 0x0097 #define T_CP874_UNDEFINED_0098 0x0098 #define T_CP874_UNDEFINED_0099 0x0099 #define T_CP874_UNDEFINED_009A 0x009A #define T_CP874_UNDEFINED_009B 0x009B #define T_CP874_UNDEFINED_009C 0x009C #define T_CP874_UNDEFINED_009D 0x009D #define T_CP874_UNDEFINED_009E 0x009E #define T_CP874_UNDEFINED_009F 0x009F #define T_CP874_NO_BREAK_SPACE 0x00A0 #define T_CP874_THAI_CHARACTER_KO_KAI 0x00A1 #define T_CP874_THAI_CHARACTER_KHO_KHAI 0x00A2 #define T_CP874_THAI_CHARACTER_KHO_KHUAT 0x00A3 #define T_CP874_THAI_CHARACTER_KHO_KHWAI 0x00A4 #define T_CP874_THAI_CHARACTER_KHO_KHON 0x00A5 #define T_CP874_THAI_CHARACTER_KHO_RAKHANG 0x00A6 #define T_CP874_THAI_CHARACTER_NGO_NGU 0x00A7 #define T_CP874_THAI_CHARACTER_CHO_CHAN 0x00A8 #define T_CP874_THAI_CHARACTER_CHO_CHING 0x00A9 #define T_CP874_THAI_CHARACTER_CHO_CHANG 0x00AA #define T_CP874_THAI_CHARACTER_SO_SO 0x00AB #define T_CP874_THAI_CHARACTER_CHO_CHOE 0x00AC #define T_CP874_THAI_CHARACTER_YO_YING 0x00AD #define T_CP874_THAI_CHARACTER_DO_CHADA 0x00AE #define T_CP874_THAI_CHARACTER_TO_PATAK 0x00AF #define T_CP874_THAI_CHARACTER_THO_THAN 0x00B0 #define T_CP874_THAI_CHARACTER_THO_NANGMONTHO 0x00B1 #define T_CP874_THAI_CHARACTER_THO_PHUTHAO 0x00B2 #define T_CP874_THAI_CHARACTER_NO_NEN 0x00B3 #define T_CP874_THAI_CHARACTER_DO_DEK 0x00B4 #define T_CP874_THAI_CHARACTER_TO_TAO 0x00B5 #define T_CP874_THAI_CHARACTER_THO_THUNG 0x00B6 #define T_CP874_THAI_CHARACTER_THO_THAHAN 0x00B7 #define T_CP874_THAI_CHARACTER_THO_THONG 0x00B8 #define T_CP874_THAI_CHARACTER_NO_NU 0x00B9 #define T_CP874_THAI_CHARACTER_BO_BAIMAI 0x00BA #define T_CP874_THAI_CHARACTER_PO_PLA 0x00BB #define T_CP874_THAI_CHARACTER_PHO_PHUNG 0x00BC #define T_CP874_THAI_CHARACTER_FO_FA 0x00BD #define T_CP874_THAI_CHARACTER_PHO_PHAN 0x00BE #define T_CP874_THAI_CHARACTER_FO_FAN 0x00BF #define T_CP874_THAI_CHARACTER_PHO_SAMPHAO 0x00C0 #define T_CP874_THAI_CHARACTER_MO_MA 0x00C1 #define T_CP874_THAI_CHARACTER_YO_YAK 0x00C2 #define T_CP874_THAI_CHARACTER_RO_RUA 0x00C3 #define T_CP874_THAI_CHARACTER_RU 0x00C4 #define T_CP874_THAI_CHARACTER_LO_LING 0x00C5 #define T_CP874_THAI_CHARACTER_LU 0x00C6 #define T_CP874_THAI_CHARACTER_WO_WAEN 0x00C7 #define T_CP874_THAI_CHARACTER_SO_SALA 0x00C8 #define T_CP874_THAI_CHARACTER_SO_RUSI 0x00C9 #define T_CP874_THAI_CHARACTER_SO_SUA 0x00CA #define T_CP874_THAI_CHARACTER_HO_HIP 0x00CB #define T_CP874_THAI_CHARACTER_LO_CHULA 0x00CC #define T_CP874_THAI_CHARACTER_O_ANG 0x00CD #define T_CP874_THAI_CHARACTER_HO_NOKHUK 0x00CE #define T_CP874_THAI_CHARACTER_PAIYANNOI 0x00CF #define T_CP874_THAI_CHARACTER_SARA_A 0x00D0 #define T_CP874_THAI_CHARACTER_MAI_HAN_AKAT 0x00D1 #define T_CP874_THAI_CHARACTER_SARA_AA 0x00D2 #define T_CP874_THAI_CHARACTER_SARA_AM 0x00D3 #define T_CP874_THAI_CHARACTER_SARA_I 0x00D4 #define T_CP874_THAI_CHARACTER_SARA_II 0x00D5 #define T_CP874_THAI_CHARACTER_SARA_UE 0x00D6 #define T_CP874_THAI_CHARACTER_SARA_UEE 0x00D7 #define T_CP874_THAI_CHARACTER_SARA_U 0x00D8 #define T_CP874_THAI_CHARACTER_SARA_UU 0x00D9 #define T_CP874_THAI_CHARACTER_PHINTHU 0x00DA #define T_CP874_UNDEFINED_00DB 0x00DB #define T_CP874_UNDEFINED_00DC 0x00DC #define T_CP874_UNDEFINED_00DD 0x00DD #define T_CP874_UNDEFINED_00DE 0x00DE #define T_CP874_THAI_CURRENCY_SYMBOL_BAHT 0x00DF #define T_CP874_THAI_CHARACTER_SARA_E 0x00E0 #define T_CP874_THAI_CHARACTER_SARA_AE 0x00E1 #define T_CP874_THAI_CHARACTER_SARA_O 0x00E2 #define T_CP874_THAI_CHARACTER_SARA_AI_MAIMUAN 0x00E3 #define T_CP874_THAI_CHARACTER_SARA_AI_MAIMALAI 0x00E4 #define T_CP874_THAI_CHARACTER_LAKKHANGYAO 0x00E5 #define T_CP874_THAI_CHARACTER_MAIYAMOK 0x00E6 #define T_CP874_THAI_CHARACTER_MAITAIKHU 0x00E7 #define T_CP874_THAI_CHARACTER_MAI_EK 0x00E8 #define T_CP874_THAI_CHARACTER_MAI_THO 0x00E9 #define T_CP874_THAI_CHARACTER_MAI_TRI 0x00EA #define T_CP874_THAI_CHARACTER_MAI_CHATTAWA 0x00EB #define T_CP874_THAI_CHARACTER_THANTHAKHAT 0x00EC #define T_CP874_THAI_CHARACTER_NIKHAHIT 0x00ED #define T_CP874_THAI_CHARACTER_YAMAKKAN 0x00EE #define T_CP874_THAI_CHARACTER_FONGMAN 0x00EF #define T_CP874_THAI_DIGIT_ZERO 0x00F0 #define T_CP874_THAI_DIGIT_ONE 0x00F1 #define T_CP874_THAI_DIGIT_TWO 0x00F2 #define T_CP874_THAI_DIGIT_THREE 0x00F3 #define T_CP874_THAI_DIGIT_FOUR 0x00F4 #define T_CP874_THAI_DIGIT_FIVE 0x00F5 #define T_CP874_THAI_DIGIT_SIX 0x00F6 #define T_CP874_THAI_DIGIT_SEVEN 0x00F7 #define T_CP874_THAI_DIGIT_EIGHT 0x00F8 #define T_CP874_THAI_DIGIT_NINE 0x00F9 #define T_CP874_THAI_CHARACTER_ANGKHANKHU 0x00FA #define T_CP874_THAI_CHARACTER_KHOMUT 0x00FB #define T_CP874_UNDEFINED_00FC 0x00FC #define T_CP874_UNDEFINED_00FD 0x00FD #define T_CP874_UNDEFINED_00FE 0x00FE #define T_CP874_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_CP874(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_NO_BREAK_SPACE) \ EL(_THAI_CHARACTER_KO_KAI) \ EL(_THAI_CHARACTER_KHO_KHAI) \ EL(_THAI_CHARACTER_KHO_KHUAT) \ EL(_THAI_CHARACTER_KHO_KHWAI) \ EL(_THAI_CHARACTER_KHO_KHON) \ EL(_THAI_CHARACTER_KHO_RAKHANG) \ EL(_THAI_CHARACTER_NGO_NGU) \ EL(_THAI_CHARACTER_CHO_CHAN) \ EL(_THAI_CHARACTER_CHO_CHING) \ EL(_THAI_CHARACTER_CHO_CHANG) \ EL(_THAI_CHARACTER_SO_SO) \ EL(_THAI_CHARACTER_CHO_CHOE) \ EL(_THAI_CHARACTER_YO_YING) \ EL(_THAI_CHARACTER_DO_CHADA) \ EL(_THAI_CHARACTER_TO_PATAK) \ EL(_THAI_CHARACTER_THO_THAN) \ EL(_THAI_CHARACTER_THO_NANGMONTHO) \ EL(_THAI_CHARACTER_THO_PHUTHAO) \ EL(_THAI_CHARACTER_NO_NEN) \ EL(_THAI_CHARACTER_DO_DEK) \ EL(_THAI_CHARACTER_TO_TAO) \ EL(_THAI_CHARACTER_THO_THUNG) \ EL(_THAI_CHARACTER_THO_THAHAN) \ EL(_THAI_CHARACTER_THO_THONG) \ EL(_THAI_CHARACTER_NO_NU) \ EL(_THAI_CHARACTER_BO_BAIMAI) \ EL(_THAI_CHARACTER_PO_PLA) \ EL(_THAI_CHARACTER_PHO_PHUNG) \ EL(_THAI_CHARACTER_FO_FA) \ EL(_THAI_CHARACTER_PHO_PHAN) \ EL(_THAI_CHARACTER_FO_FAN) \ EL(_THAI_CHARACTER_PHO_SAMPHAO) \ EL(_THAI_CHARACTER_MO_MA) \ EL(_THAI_CHARACTER_YO_YAK) \ EL(_THAI_CHARACTER_RO_RUA) \ EL(_THAI_CHARACTER_RU) \ EL(_THAI_CHARACTER_LO_LING) \ EL(_THAI_CHARACTER_LU) \ EL(_THAI_CHARACTER_WO_WAEN) \ EL(_THAI_CHARACTER_SO_SALA) \ EL(_THAI_CHARACTER_SO_RUSI) \ EL(_THAI_CHARACTER_SO_SUA) \ EL(_THAI_CHARACTER_HO_HIP) \ EL(_THAI_CHARACTER_LO_CHULA) \ EL(_THAI_CHARACTER_O_ANG) \ EL(_THAI_CHARACTER_HO_NOKHUK) \ EL(_THAI_CHARACTER_PAIYANNOI) \ EL(_THAI_CHARACTER_SARA_A) \ EL(_THAI_CHARACTER_MAI_HAN_AKAT) \ EL(_THAI_CHARACTER_SARA_AA) \ EL(_THAI_CHARACTER_SARA_AM) \ EL(_THAI_CHARACTER_SARA_I) \ EL(_THAI_CHARACTER_SARA_II) \ EL(_THAI_CHARACTER_SARA_UE) \ EL(_THAI_CHARACTER_SARA_UEE) \ EL(_THAI_CHARACTER_SARA_U) \ EL(_THAI_CHARACTER_SARA_UU) \ EL(_THAI_CHARACTER_PHINTHU) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_THAI_CURRENCY_SYMBOL_BAHT) \ EL(_THAI_CHARACTER_SARA_E) \ EL(_THAI_CHARACTER_SARA_AE) \ EL(_THAI_CHARACTER_SARA_O) \ EL(_THAI_CHARACTER_SARA_AI_MAIMUAN) \ EL(_THAI_CHARACTER_SARA_AI_MAIMALAI) \ EL(_THAI_CHARACTER_LAKKHANGYAO) \ EL(_THAI_CHARACTER_MAIYAMOK) \ EL(_THAI_CHARACTER_MAITAIKHU) \ EL(_THAI_CHARACTER_MAI_EK) \ EL(_THAI_CHARACTER_MAI_THO) \ EL(_THAI_CHARACTER_MAI_TRI) \ EL(_THAI_CHARACTER_MAI_CHATTAWA) \ EL(_THAI_CHARACTER_THANTHAKHAT) \ EL(_THAI_CHARACTER_NIKHAHIT) \ EL(_THAI_CHARACTER_YAMAKKAN) \ EL(_THAI_CHARACTER_FONGMAN) \ EL(_THAI_DIGIT_ZERO) \ EL(_THAI_DIGIT_ONE) \ EL(_THAI_DIGIT_TWO) \ EL(_THAI_DIGIT_THREE) \ EL(_THAI_DIGIT_FOUR) \ EL(_THAI_DIGIT_FIVE) \ EL(_THAI_DIGIT_SIX) \ EL(_THAI_DIGIT_SEVEN) \ EL(_THAI_DIGIT_EIGHT) \ EL(_THAI_DIGIT_NINE) \ EL(_THAI_CHARACTER_ANGKHANKHU) \ EL(_THAI_CHARACTER_KHOMUT) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP874(EL) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_THAI_CHARACTER_KO_KAI) \ EL(_THAI_CHARACTER_KHO_KHAI) \ EL(_THAI_CHARACTER_KHO_KHUAT) \ EL(_THAI_CHARACTER_KHO_KHWAI) \ EL(_THAI_CHARACTER_KHO_KHON) \ EL(_THAI_CHARACTER_KHO_RAKHANG) \ EL(_THAI_CHARACTER_NGO_NGU) \ EL(_THAI_CHARACTER_CHO_CHAN) \ EL(_THAI_CHARACTER_CHO_CHING) \ EL(_THAI_CHARACTER_CHO_CHANG) \ EL(_THAI_CHARACTER_SO_SO) \ EL(_THAI_CHARACTER_CHO_CHOE) \ EL(_THAI_CHARACTER_YO_YING) \ EL(_THAI_CHARACTER_DO_CHADA) \ EL(_THAI_CHARACTER_TO_PATAK) \ EL(_THAI_CHARACTER_THO_THAN) \ EL(_THAI_CHARACTER_THO_NANGMONTHO) \ EL(_THAI_CHARACTER_THO_PHUTHAO) \ EL(_THAI_CHARACTER_NO_NEN) \ EL(_THAI_CHARACTER_DO_DEK) \ EL(_THAI_CHARACTER_TO_TAO) \ EL(_THAI_CHARACTER_THO_THUNG) \ EL(_THAI_CHARACTER_THO_THAHAN) \ EL(_THAI_CHARACTER_THO_THONG) \ EL(_THAI_CHARACTER_NO_NU) \ EL(_THAI_CHARACTER_BO_BAIMAI) \ EL(_THAI_CHARACTER_PO_PLA) \ EL(_THAI_CHARACTER_PHO_PHUNG) \ EL(_THAI_CHARACTER_FO_FA) \ EL(_THAI_CHARACTER_PHO_PHAN) \ EL(_THAI_CHARACTER_FO_FAN) \ EL(_THAI_CHARACTER_PHO_SAMPHAO) \ EL(_THAI_CHARACTER_MO_MA) \ EL(_THAI_CHARACTER_YO_YAK) \ EL(_THAI_CHARACTER_RO_RUA) \ EL(_THAI_CHARACTER_RU) \ EL(_THAI_CHARACTER_LO_LING) \ EL(_THAI_CHARACTER_LU) \ EL(_THAI_CHARACTER_WO_WAEN) \ EL(_THAI_CHARACTER_SO_SALA) \ EL(_THAI_CHARACTER_SO_RUSI) \ EL(_THAI_CHARACTER_SO_SUA) \ EL(_THAI_CHARACTER_HO_HIP) \ EL(_THAI_CHARACTER_LO_CHULA) \ EL(_THAI_CHARACTER_O_ANG) \ EL(_THAI_CHARACTER_HO_NOKHUK) \ EL(_THAI_CHARACTER_PAIYANNOI) \ EL(_THAI_CHARACTER_SARA_A) \ EL(_THAI_CHARACTER_MAI_HAN_AKAT) \ EL(_THAI_CHARACTER_SARA_AA) \ EL(_THAI_CHARACTER_SARA_AM) \ EL(_THAI_CHARACTER_SARA_I) \ EL(_THAI_CHARACTER_SARA_II) \ EL(_THAI_CHARACTER_SARA_UE) \ EL(_THAI_CHARACTER_SARA_UEE) \ EL(_THAI_CHARACTER_SARA_U) \ EL(_THAI_CHARACTER_SARA_UU) \ EL(_THAI_CHARACTER_PHINTHU) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_THAI_CURRENCY_SYMBOL_BAHT) \ EL(_THAI_CHARACTER_SARA_E) \ EL(_THAI_CHARACTER_SARA_AE) \ EL(_THAI_CHARACTER_SARA_O) \ EL(_THAI_CHARACTER_SARA_AI_MAIMUAN) \ EL(_THAI_CHARACTER_SARA_AI_MAIMALAI) \ EL(_THAI_CHARACTER_LAKKHANGYAO) \ EL(_THAI_CHARACTER_MAIYAMOK) \ EL(_THAI_CHARACTER_MAITAIKHU) \ EL(_THAI_CHARACTER_MAI_EK) \ EL(_THAI_CHARACTER_MAI_THO) \ EL(_THAI_CHARACTER_MAI_TRI) \ EL(_THAI_CHARACTER_MAI_CHATTAWA) \ EL(_THAI_CHARACTER_THANTHAKHAT) \ EL(_THAI_CHARACTER_NIKHAHIT) \ EL(_THAI_CHARACTER_YAMAKKAN) \ EL(_THAI_CHARACTER_FONGMAN) \ EL(_THAI_DIGIT_ZERO) \ EL(_THAI_DIGIT_ONE) \ EL(_THAI_DIGIT_TWO) \ EL(_THAI_DIGIT_THREE) \ EL(_THAI_DIGIT_FOUR) \ EL(_THAI_DIGIT_FIVE) \ EL(_THAI_DIGIT_SIX) \ EL(_THAI_DIGIT_SEVEN) \ EL(_THAI_DIGIT_EIGHT) \ EL(_THAI_DIGIT_NINE) \ EL(_THAI_CHARACTER_ANGKHANKHU) \ EL(_THAI_CHARACTER_KHOMUT) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) #endif /* TUTF_CP874_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp932.h���������������������������������������������������������������������0000664�0000000�0000000�00000142251�13775351206�0016075�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP932_H #define TUTF_CP932_H #define T_CP932_CTRL_NULL 0x0000 #define T_CP932_CTRL_START_OF_HEADING 0x0001 #define T_CP932_CTRL_START_OF_TEXT 0x0002 #define T_CP932_CTRL_END_OF_TEXT 0x0003 #define T_CP932_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP932_CTRL_ENQUIRY 0x0005 #define T_CP932_CTRL_ACKNOWLEDGE 0x0006 #define T_CP932_CTRL_BELL 0x0007 #define T_CP932_CTRL_BACKSPACE 0x0008 #define T_CP932_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP932_CTRL_LINE_FEED 0x000A #define T_CP932_CTRL_LINE_TABULATION 0x000B #define T_CP932_CTRL_FORM_FEED 0x000C #define T_CP932_CTRL_CARRIAGE_RETURN 0x000D #define T_CP932_CTRL_SHIFT_OUT 0x000E #define T_CP932_CTRL_SHIFT_IN 0x000F #define T_CP932_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP932_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP932_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP932_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP932_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP932_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP932_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP932_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP932_CTRL_CANCEL 0x0018 #define T_CP932_CTRL_END_OF_MEDIUM 0x0019 #define T_CP932_CTRL_SUBSTITUTE 0x001A #define T_CP932_CTRL_ESCAPE 0x001B #define T_CP932_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP932_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP932_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP932_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP932_SPACE 0x0020 #define T_CP932_EXCLAMATION_MARK 0x0021 #define T_CP932_QUOTATION_MARK 0x0022 #define T_CP932_NUMBER_SIGN 0x0023 #define T_CP932_DOLLAR_SIGN 0x0024 #define T_CP932_PERCENT_SIGN 0x0025 #define T_CP932_AMPERSAND 0x0026 #define T_CP932_APOSTROPHE 0x0027 #define T_CP932_LEFT_PARENTHESIS 0x0028 #define T_CP932_RIGHT_PARENTHESIS 0x0029 #define T_CP932_ASTERISK 0x002A #define T_CP932_PLUS_SIGN 0x002B #define T_CP932_COMMA 0x002C #define T_CP932_HYPHEN_MINUS 0x002D #define T_CP932_FULL_STOP 0x002E #define T_CP932_SOLIDUS 0x002F #define T_CP932_DIGIT_ZERO 0x0030 #define T_CP932_DIGIT_ONE 0x0031 #define T_CP932_DIGIT_TWO 0x0032 #define T_CP932_DIGIT_THREE 0x0033 #define T_CP932_DIGIT_FOUR 0x0034 #define T_CP932_DIGIT_FIVE 0x0035 #define T_CP932_DIGIT_SIX 0x0036 #define T_CP932_DIGIT_SEVEN 0x0037 #define T_CP932_DIGIT_EIGHT 0x0038 #define T_CP932_DIGIT_NINE 0x0039 #define T_CP932_COLON 0x003A #define T_CP932_SEMICOLON 0x003B #define T_CP932_LESS_THAN_SIGN 0x003C #define T_CP932_EQUALS_SIGN 0x003D #define T_CP932_GREATER_THAN_SIGN 0x003E #define T_CP932_QUESTION_MARK 0x003F #define T_CP932_COMMERCIAL_AT 0x0040 #define T_CP932_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP932_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP932_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP932_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP932_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP932_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP932_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP932_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP932_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP932_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP932_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP932_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP932_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP932_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP932_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP932_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP932_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP932_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP932_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP932_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP932_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP932_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP932_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP932_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP932_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP932_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP932_LEFT_SQUARE_BRACKET 0x005B #define T_CP932_REVERSE_SOLIDUS 0x005C #define T_CP932_RIGHT_SQUARE_BRACKET 0x005D #define T_CP932_CIRCUMFLEX_ACCENT 0x005E #define T_CP932_LOW_LINE 0x005F #define T_CP932_GRAVE_ACCENT 0x0060 #define T_CP932_LATIN_SMALL_LETTER_A 0x0061 #define T_CP932_LATIN_SMALL_LETTER_B 0x0062 #define T_CP932_LATIN_SMALL_LETTER_C 0x0063 #define T_CP932_LATIN_SMALL_LETTER_D 0x0064 #define T_CP932_LATIN_SMALL_LETTER_E 0x0065 #define T_CP932_LATIN_SMALL_LETTER_F 0x0066 #define T_CP932_LATIN_SMALL_LETTER_G 0x0067 #define T_CP932_LATIN_SMALL_LETTER_H 0x0068 #define T_CP932_LATIN_SMALL_LETTER_I 0x0069 #define T_CP932_LATIN_SMALL_LETTER_J 0x006A #define T_CP932_LATIN_SMALL_LETTER_K 0x006B #define T_CP932_LATIN_SMALL_LETTER_L 0x006C #define T_CP932_LATIN_SMALL_LETTER_M 0x006D #define T_CP932_LATIN_SMALL_LETTER_N 0x006E #define T_CP932_LATIN_SMALL_LETTER_O 0x006F #define T_CP932_LATIN_SMALL_LETTER_P 0x0070 #define T_CP932_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP932_LATIN_SMALL_LETTER_R 0x0072 #define T_CP932_LATIN_SMALL_LETTER_S 0x0073 #define T_CP932_LATIN_SMALL_LETTER_T 0x0074 #define T_CP932_LATIN_SMALL_LETTER_U 0x0075 #define T_CP932_LATIN_SMALL_LETTER_V 0x0076 #define T_CP932_LATIN_SMALL_LETTER_W 0x0077 #define T_CP932_LATIN_SMALL_LETTER_X 0x0078 #define T_CP932_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP932_LATIN_SMALL_LETTER_Z 0x007A #define T_CP932_LEFT_CURLY_BRACKET 0x007B #define T_CP932_VERTICAL_LINE 0x007C #define T_CP932_RIGHT_CURLY_BRACKET 0x007D #define T_CP932_TILDE 0x007E #define T_CP932_CTRL_DELETE 0x007F #define T_CP932_UNDEFINED_0080 0x0080 #define T_CP932_UNDEFINED_0081 0x0081 #define T_CP932_UNDEFINED_0082 0x0082 #define T_CP932_UNDEFINED_0083 0x0083 #define T_CP932_UNDEFINED_0084 0x0084 #define T_CP932_UNDEFINED_0085 0x0085 #define T_CP932_UNDEFINED_0086 0x0086 #define T_CP932_UNDEFINED_0087 0x0087 #define T_CP932_UNDEFINED_0088 0x0088 #define T_CP932_UNDEFINED_0089 0x0089 #define T_CP932_UNDEFINED_008A 0x008A #define T_CP932_UNDEFINED_008B 0x008B #define T_CP932_UNDEFINED_008C 0x008C #define T_CP932_UNDEFINED_008D 0x008D #define T_CP932_UNDEFINED_008E 0x008E #define T_CP932_UNDEFINED_008F 0x008F #define T_CP932_UNDEFINED_0090 0x0090 #define T_CP932_UNDEFINED_0091 0x0091 #define T_CP932_UNDEFINED_0092 0x0092 #define T_CP932_UNDEFINED_0093 0x0093 #define T_CP932_UNDEFINED_0094 0x0094 #define T_CP932_UNDEFINED_0095 0x0095 #define T_CP932_UNDEFINED_0096 0x0096 #define T_CP932_UNDEFINED_0097 0x0097 #define T_CP932_UNDEFINED_0098 0x0098 #define T_CP932_UNDEFINED_0099 0x0099 #define T_CP932_UNDEFINED_009A 0x009A #define T_CP932_UNDEFINED_009B 0x009B #define T_CP932_UNDEFINED_009C 0x009C #define T_CP932_UNDEFINED_009D 0x009D #define T_CP932_UNDEFINED_009E 0x009E #define T_CP932_UNDEFINED_009F 0x009F #define T_CP932_UNDEFINED_00A0 0x00A0 #define T_CP932_HALFWIDTH_IDEOGRAPHIC_FULL_STOP 0x00A1 #define T_CP932_HALFWIDTH_LEFT_CORNER_BRACKET 0x00A2 #define T_CP932_HALFWIDTH_RIGHT_CORNER_BRACKET 0x00A3 #define T_CP932_HALFWIDTH_IDEOGRAPHIC_COMMA 0x00A4 #define T_CP932_HALFWIDTH_KATAKANA_MIDDLE_DOT 0x00A5 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_WO 0x00A6 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SMALL_A 0x00A7 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SMALL_I 0x00A8 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SMALL_U 0x00A9 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SMALL_E 0x00AA #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SMALL_O 0x00AB #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SMALL_YA 0x00AC #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SMALL_YU 0x00AD #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SMALL_YO 0x00AE #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SMALL_TU 0x00AF #define T_CP932_HALFWIDTH_KATAKANA_HIRAGANA_PROLONGED_SOUND_MARK 0x00B0 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_A 0x00B1 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_I 0x00B2 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_U 0x00B3 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_E 0x00B4 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_O 0x00B5 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_KA 0x00B6 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_KI 0x00B7 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_KU 0x00B8 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_KE 0x00B9 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_KO 0x00BA #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SA 0x00BB #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SI 0x00BC #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SU 0x00BD #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SE 0x00BE #define T_CP932_HALFWIDTH_KATAKANA_LETTER_SO 0x00BF #define T_CP932_HALFWIDTH_KATAKANA_LETTER_TA 0x00C0 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_TI 0x00C1 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_TU 0x00C2 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_TE 0x00C3 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_TO 0x00C4 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_NA 0x00C5 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_NI 0x00C6 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_NU 0x00C7 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_NE 0x00C8 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_NO 0x00C9 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_HA 0x00CA #define T_CP932_HALFWIDTH_KATAKANA_LETTER_HI 0x00CB #define T_CP932_HALFWIDTH_KATAKANA_LETTER_HU 0x00CC #define T_CP932_HALFWIDTH_KATAKANA_LETTER_HE 0x00CD #define T_CP932_HALFWIDTH_KATAKANA_LETTER_HO 0x00CE #define T_CP932_HALFWIDTH_KATAKANA_LETTER_MA 0x00CF #define T_CP932_HALFWIDTH_KATAKANA_LETTER_MI 0x00D0 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_MU 0x00D1 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_ME 0x00D2 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_MO 0x00D3 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_YA 0x00D4 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_YU 0x00D5 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_YO 0x00D6 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_RA 0x00D7 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_RI 0x00D8 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_RU 0x00D9 #define T_CP932_HALFWIDTH_KATAKANA_LETTER_RE 0x00DA #define T_CP932_HALFWIDTH_KATAKANA_LETTER_RO 0x00DB #define T_CP932_HALFWIDTH_KATAKANA_LETTER_WA 0x00DC #define T_CP932_HALFWIDTH_KATAKANA_LETTER_N 0x00DD #define T_CP932_HALFWIDTH_KATAKANA_VOICED_SOUND_MARK 0x00DE #define T_CP932_HALFWIDTH_KATAKANA_SEMI_VOICED_SOUND_MARK 0x00DF #define T_CP932_UNDEFINED_00E0 0x00E0 #define T_CP932_UNDEFINED_00E1 0x00E1 #define T_CP932_UNDEFINED_00E2 0x00E2 #define T_CP932_UNDEFINED_00E3 0x00E3 #define T_CP932_UNDEFINED_00E4 0x00E4 #define T_CP932_UNDEFINED_00E5 0x00E5 #define T_CP932_UNDEFINED_00E6 0x00E6 #define T_CP932_UNDEFINED_00E7 0x00E7 #define T_CP932_UNDEFINED_00E8 0x00E8 #define T_CP932_UNDEFINED_00E9 0x00E9 #define T_CP932_UNDEFINED_00EA 0x00EA #define T_CP932_UNDEFINED_00EB 0x00EB #define T_CP932_UNDEFINED_00EC 0x00EC #define T_CP932_UNDEFINED_00ED 0x00ED #define T_CP932_UNDEFINED_00EE 0x00EE #define T_CP932_UNDEFINED_00EF 0x00EF #define T_CP932_UNDEFINED_00F0 0x00F0 #define T_CP932_UNDEFINED_00F1 0x00F1 #define T_CP932_UNDEFINED_00F2 0x00F2 #define T_CP932_UNDEFINED_00F3 0x00F3 #define T_CP932_UNDEFINED_00F4 0x00F4 #define T_CP932_UNDEFINED_00F5 0x00F5 #define T_CP932_UNDEFINED_00F6 0x00F6 #define T_CP932_UNDEFINED_00F7 0x00F7 #define T_CP932_UNDEFINED_00F8 0x00F8 #define T_CP932_UNDEFINED_00F9 0x00F9 #define T_CP932_UNDEFINED_00FA 0x00FA #define T_CP932_UNDEFINED_00FB 0x00FB #define T_CP932_UNDEFINED_00FC 0x00FC #define T_CP932_UNDEFINED_00FD 0x00FD #define T_CP932_UNDEFINED_00FE 0x00FE #define T_CP932_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_CP932(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_UNDEFINED_0091) \ EL(_UNDEFINED_0092) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_UNDEFINED_0095) \ EL(_UNDEFINED_0096) \ EL(_UNDEFINED_0097) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_HALFWIDTH_IDEOGRAPHIC_FULL_STOP) \ EL(_HALFWIDTH_LEFT_CORNER_BRACKET) \ EL(_HALFWIDTH_RIGHT_CORNER_BRACKET) \ EL(_HALFWIDTH_IDEOGRAPHIC_COMMA) \ EL(_HALFWIDTH_KATAKANA_MIDDLE_DOT) \ EL(_HALFWIDTH_KATAKANA_LETTER_WO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_A) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_I) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_U) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_E) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_O) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YA) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YU) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_TU) \ EL(_HALFWIDTH_KATAKANA_HIRAGANA_PROLONGED_SOUND_MARK) \ EL(_HALFWIDTH_KATAKANA_LETTER_A) \ EL(_HALFWIDTH_KATAKANA_LETTER_I) \ EL(_HALFWIDTH_KATAKANA_LETTER_U) \ EL(_HALFWIDTH_KATAKANA_LETTER_E) \ EL(_HALFWIDTH_KATAKANA_LETTER_O) \ EL(_HALFWIDTH_KATAKANA_LETTER_KA) \ EL(_HALFWIDTH_KATAKANA_LETTER_KI) \ EL(_HALFWIDTH_KATAKANA_LETTER_KU) \ EL(_HALFWIDTH_KATAKANA_LETTER_KE) \ EL(_HALFWIDTH_KATAKANA_LETTER_KO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SA) \ EL(_HALFWIDTH_KATAKANA_LETTER_SI) \ EL(_HALFWIDTH_KATAKANA_LETTER_SU) \ EL(_HALFWIDTH_KATAKANA_LETTER_SE) \ EL(_HALFWIDTH_KATAKANA_LETTER_SO) \ EL(_HALFWIDTH_KATAKANA_LETTER_TA) \ EL(_HALFWIDTH_KATAKANA_LETTER_TI) \ EL(_HALFWIDTH_KATAKANA_LETTER_TU) \ EL(_HALFWIDTH_KATAKANA_LETTER_TE) \ EL(_HALFWIDTH_KATAKANA_LETTER_TO) \ EL(_HALFWIDTH_KATAKANA_LETTER_NA) \ EL(_HALFWIDTH_KATAKANA_LETTER_NI) \ EL(_HALFWIDTH_KATAKANA_LETTER_NU) \ EL(_HALFWIDTH_KATAKANA_LETTER_NE) \ EL(_HALFWIDTH_KATAKANA_LETTER_NO) \ EL(_HALFWIDTH_KATAKANA_LETTER_HA) \ EL(_HALFWIDTH_KATAKANA_LETTER_HI) \ EL(_HALFWIDTH_KATAKANA_LETTER_HU) \ EL(_HALFWIDTH_KATAKANA_LETTER_HE) \ EL(_HALFWIDTH_KATAKANA_LETTER_HO) \ EL(_HALFWIDTH_KATAKANA_LETTER_MA) \ EL(_HALFWIDTH_KATAKANA_LETTER_MI) \ EL(_HALFWIDTH_KATAKANA_LETTER_MU) \ EL(_HALFWIDTH_KATAKANA_LETTER_ME) \ EL(_HALFWIDTH_KATAKANA_LETTER_MO) \ EL(_HALFWIDTH_KATAKANA_LETTER_YA) \ EL(_HALFWIDTH_KATAKANA_LETTER_YU) \ EL(_HALFWIDTH_KATAKANA_LETTER_YO) \ EL(_HALFWIDTH_KATAKANA_LETTER_RA) \ EL(_HALFWIDTH_KATAKANA_LETTER_RI) \ EL(_HALFWIDTH_KATAKANA_LETTER_RU) \ EL(_HALFWIDTH_KATAKANA_LETTER_RE) \ EL(_HALFWIDTH_KATAKANA_LETTER_RO) \ EL(_HALFWIDTH_KATAKANA_LETTER_WA) \ EL(_HALFWIDTH_KATAKANA_LETTER_N) \ EL(_HALFWIDTH_KATAKANA_VOICED_SOUND_MARK) \ EL(_HALFWIDTH_KATAKANA_SEMI_VOICED_SOUND_MARK) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP932(EL) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_UNDEFINED_0091) \ EL(_UNDEFINED_0092) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_UNDEFINED_0095) \ EL(_UNDEFINED_0096) \ EL(_UNDEFINED_0097) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_HALFWIDTH_IDEOGRAPHIC_FULL_STOP) \ EL(_HALFWIDTH_LEFT_CORNER_BRACKET) \ EL(_HALFWIDTH_RIGHT_CORNER_BRACKET) \ EL(_HALFWIDTH_IDEOGRAPHIC_COMMA) \ EL(_HALFWIDTH_KATAKANA_MIDDLE_DOT) \ EL(_HALFWIDTH_KATAKANA_LETTER_WO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_A) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_I) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_U) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_E) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_O) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YA) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YU) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_TU) \ EL(_HALFWIDTH_KATAKANA_HIRAGANA_PROLONGED_SOUND_MARK) \ EL(_HALFWIDTH_KATAKANA_LETTER_A) \ EL(_HALFWIDTH_KATAKANA_LETTER_I) \ EL(_HALFWIDTH_KATAKANA_LETTER_U) \ EL(_HALFWIDTH_KATAKANA_LETTER_E) \ EL(_HALFWIDTH_KATAKANA_LETTER_O) \ EL(_HALFWIDTH_KATAKANA_LETTER_KA) \ EL(_HALFWIDTH_KATAKANA_LETTER_KI) \ EL(_HALFWIDTH_KATAKANA_LETTER_KU) \ EL(_HALFWIDTH_KATAKANA_LETTER_KE) \ EL(_HALFWIDTH_KATAKANA_LETTER_KO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SA) \ EL(_HALFWIDTH_KATAKANA_LETTER_SI) \ EL(_HALFWIDTH_KATAKANA_LETTER_SU) \ EL(_HALFWIDTH_KATAKANA_LETTER_SE) \ EL(_HALFWIDTH_KATAKANA_LETTER_SO) \ EL(_HALFWIDTH_KATAKANA_LETTER_TA) \ EL(_HALFWIDTH_KATAKANA_LETTER_TI) \ EL(_HALFWIDTH_KATAKANA_LETTER_TU) \ EL(_HALFWIDTH_KATAKANA_LETTER_TE) \ EL(_HALFWIDTH_KATAKANA_LETTER_TO) \ EL(_HALFWIDTH_KATAKANA_LETTER_NA) \ EL(_HALFWIDTH_KATAKANA_LETTER_NI) \ EL(_HALFWIDTH_KATAKANA_LETTER_NU) \ EL(_HALFWIDTH_KATAKANA_LETTER_NE) \ EL(_HALFWIDTH_KATAKANA_LETTER_NO) \ EL(_HALFWIDTH_KATAKANA_LETTER_HA) \ EL(_HALFWIDTH_KATAKANA_LETTER_HI) \ EL(_HALFWIDTH_KATAKANA_LETTER_HU) \ EL(_HALFWIDTH_KATAKANA_LETTER_HE) \ EL(_HALFWIDTH_KATAKANA_LETTER_HO) \ EL(_HALFWIDTH_KATAKANA_LETTER_MA) \ EL(_HALFWIDTH_KATAKANA_LETTER_MI) \ EL(_HALFWIDTH_KATAKANA_LETTER_MU) \ EL(_HALFWIDTH_KATAKANA_LETTER_ME) \ EL(_HALFWIDTH_KATAKANA_LETTER_MO) \ EL(_HALFWIDTH_KATAKANA_LETTER_YA) \ EL(_HALFWIDTH_KATAKANA_LETTER_YU) \ EL(_HALFWIDTH_KATAKANA_LETTER_YO) \ EL(_HALFWIDTH_KATAKANA_LETTER_RA) \ EL(_HALFWIDTH_KATAKANA_LETTER_RI) \ EL(_HALFWIDTH_KATAKANA_LETTER_RU) \ EL(_HALFWIDTH_KATAKANA_LETTER_RE) \ EL(_HALFWIDTH_KATAKANA_LETTER_RO) \ EL(_HALFWIDTH_KATAKANA_LETTER_WA) \ EL(_HALFWIDTH_KATAKANA_LETTER_N) \ EL(_HALFWIDTH_KATAKANA_VOICED_SOUND_MARK) \ EL(_HALFWIDTH_KATAKANA_SEMI_VOICED_SOUND_MARK) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) #endif /* TUTF_CP932_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp936.h���������������������������������������������������������������������0000664�0000000�0000000�00000140330�13775351206�0016075�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP936_H #define TUTF_CP936_H #define T_CP936_CTRL_NULL 0x0000 #define T_CP936_CTRL_START_OF_HEADING 0x0001 #define T_CP936_CTRL_START_OF_TEXT 0x0002 #define T_CP936_CTRL_END_OF_TEXT 0x0003 #define T_CP936_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP936_CTRL_ENQUIRY 0x0005 #define T_CP936_CTRL_ACKNOWLEDGE 0x0006 #define T_CP936_CTRL_BELL 0x0007 #define T_CP936_CTRL_BACKSPACE 0x0008 #define T_CP936_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP936_CTRL_LINE_FEED 0x000A #define T_CP936_CTRL_LINE_TABULATION 0x000B #define T_CP936_CTRL_FORM_FEED 0x000C #define T_CP936_CTRL_CARRIAGE_RETURN 0x000D #define T_CP936_CTRL_SHIFT_OUT 0x000E #define T_CP936_CTRL_SHIFT_IN 0x000F #define T_CP936_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP936_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP936_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP936_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP936_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP936_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP936_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP936_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP936_CTRL_CANCEL 0x0018 #define T_CP936_CTRL_END_OF_MEDIUM 0x0019 #define T_CP936_CTRL_SUBSTITUTE 0x001A #define T_CP936_CTRL_ESCAPE 0x001B #define T_CP936_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP936_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP936_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP936_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP936_SPACE 0x0020 #define T_CP936_EXCLAMATION_MARK 0x0021 #define T_CP936_QUOTATION_MARK 0x0022 #define T_CP936_NUMBER_SIGN 0x0023 #define T_CP936_DOLLAR_SIGN 0x0024 #define T_CP936_PERCENT_SIGN 0x0025 #define T_CP936_AMPERSAND 0x0026 #define T_CP936_APOSTROPHE 0x0027 #define T_CP936_LEFT_PARENTHESIS 0x0028 #define T_CP936_RIGHT_PARENTHESIS 0x0029 #define T_CP936_ASTERISK 0x002A #define T_CP936_PLUS_SIGN 0x002B #define T_CP936_COMMA 0x002C #define T_CP936_HYPHEN_MINUS 0x002D #define T_CP936_FULL_STOP 0x002E #define T_CP936_SOLIDUS 0x002F #define T_CP936_DIGIT_ZERO 0x0030 #define T_CP936_DIGIT_ONE 0x0031 #define T_CP936_DIGIT_TWO 0x0032 #define T_CP936_DIGIT_THREE 0x0033 #define T_CP936_DIGIT_FOUR 0x0034 #define T_CP936_DIGIT_FIVE 0x0035 #define T_CP936_DIGIT_SIX 0x0036 #define T_CP936_DIGIT_SEVEN 0x0037 #define T_CP936_DIGIT_EIGHT 0x0038 #define T_CP936_DIGIT_NINE 0x0039 #define T_CP936_COLON 0x003A #define T_CP936_SEMICOLON 0x003B #define T_CP936_LESS_THAN_SIGN 0x003C #define T_CP936_EQUALS_SIGN 0x003D #define T_CP936_GREATER_THAN_SIGN 0x003E #define T_CP936_QUESTION_MARK 0x003F #define T_CP936_COMMERCIAL_AT 0x0040 #define T_CP936_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP936_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP936_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP936_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP936_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP936_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP936_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP936_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP936_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP936_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP936_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP936_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP936_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP936_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP936_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP936_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP936_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP936_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP936_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP936_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP936_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP936_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP936_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP936_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP936_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP936_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP936_LEFT_SQUARE_BRACKET 0x005B #define T_CP936_REVERSE_SOLIDUS 0x005C #define T_CP936_RIGHT_SQUARE_BRACKET 0x005D #define T_CP936_CIRCUMFLEX_ACCENT 0x005E #define T_CP936_LOW_LINE 0x005F #define T_CP936_GRAVE_ACCENT 0x0060 #define T_CP936_LATIN_SMALL_LETTER_A 0x0061 #define T_CP936_LATIN_SMALL_LETTER_B 0x0062 #define T_CP936_LATIN_SMALL_LETTER_C 0x0063 #define T_CP936_LATIN_SMALL_LETTER_D 0x0064 #define T_CP936_LATIN_SMALL_LETTER_E 0x0065 #define T_CP936_LATIN_SMALL_LETTER_F 0x0066 #define T_CP936_LATIN_SMALL_LETTER_G 0x0067 #define T_CP936_LATIN_SMALL_LETTER_H 0x0068 #define T_CP936_LATIN_SMALL_LETTER_I 0x0069 #define T_CP936_LATIN_SMALL_LETTER_J 0x006A #define T_CP936_LATIN_SMALL_LETTER_K 0x006B #define T_CP936_LATIN_SMALL_LETTER_L 0x006C #define T_CP936_LATIN_SMALL_LETTER_M 0x006D #define T_CP936_LATIN_SMALL_LETTER_N 0x006E #define T_CP936_LATIN_SMALL_LETTER_O 0x006F #define T_CP936_LATIN_SMALL_LETTER_P 0x0070 #define T_CP936_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP936_LATIN_SMALL_LETTER_R 0x0072 #define T_CP936_LATIN_SMALL_LETTER_S 0x0073 #define T_CP936_LATIN_SMALL_LETTER_T 0x0074 #define T_CP936_LATIN_SMALL_LETTER_U 0x0075 #define T_CP936_LATIN_SMALL_LETTER_V 0x0076 #define T_CP936_LATIN_SMALL_LETTER_W 0x0077 #define T_CP936_LATIN_SMALL_LETTER_X 0x0078 #define T_CP936_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP936_LATIN_SMALL_LETTER_Z 0x007A #define T_CP936_LEFT_CURLY_BRACKET 0x007B #define T_CP936_VERTICAL_LINE 0x007C #define T_CP936_RIGHT_CURLY_BRACKET 0x007D #define T_CP936_TILDE 0x007E #define T_CP936_CTRL_DELETE 0x007F #define T_CP936_EURO_SIGN 0x0080 #define T_CP936_UNDEFINED_0081 0x0081 #define T_CP936_UNDEFINED_0082 0x0082 #define T_CP936_UNDEFINED_0083 0x0083 #define T_CP936_UNDEFINED_0084 0x0084 #define T_CP936_UNDEFINED_0085 0x0085 #define T_CP936_UNDEFINED_0086 0x0086 #define T_CP936_UNDEFINED_0087 0x0087 #define T_CP936_UNDEFINED_0088 0x0088 #define T_CP936_UNDEFINED_0089 0x0089 #define T_CP936_UNDEFINED_008A 0x008A #define T_CP936_UNDEFINED_008B 0x008B #define T_CP936_UNDEFINED_008C 0x008C #define T_CP936_UNDEFINED_008D 0x008D #define T_CP936_UNDEFINED_008E 0x008E #define T_CP936_UNDEFINED_008F 0x008F #define T_CP936_UNDEFINED_0090 0x0090 #define T_CP936_UNDEFINED_0091 0x0091 #define T_CP936_UNDEFINED_0092 0x0092 #define T_CP936_UNDEFINED_0093 0x0093 #define T_CP936_UNDEFINED_0094 0x0094 #define T_CP936_UNDEFINED_0095 0x0095 #define T_CP936_UNDEFINED_0096 0x0096 #define T_CP936_UNDEFINED_0097 0x0097 #define T_CP936_UNDEFINED_0098 0x0098 #define T_CP936_UNDEFINED_0099 0x0099 #define T_CP936_UNDEFINED_009A 0x009A #define T_CP936_UNDEFINED_009B 0x009B #define T_CP936_UNDEFINED_009C 0x009C #define T_CP936_UNDEFINED_009D 0x009D #define T_CP936_UNDEFINED_009E 0x009E #define T_CP936_UNDEFINED_009F 0x009F #define T_CP936_UNDEFINED_00A0 0x00A0 #define T_CP936_UNDEFINED_00A1 0x00A1 #define T_CP936_UNDEFINED_00A2 0x00A2 #define T_CP936_UNDEFINED_00A3 0x00A3 #define T_CP936_UNDEFINED_00A4 0x00A4 #define T_CP936_UNDEFINED_00A5 0x00A5 #define T_CP936_UNDEFINED_00A6 0x00A6 #define T_CP936_UNDEFINED_00A7 0x00A7 #define T_CP936_UNDEFINED_00A8 0x00A8 #define T_CP936_UNDEFINED_00A9 0x00A9 #define T_CP936_UNDEFINED_00AA 0x00AA #define T_CP936_UNDEFINED_00AB 0x00AB #define T_CP936_UNDEFINED_00AC 0x00AC #define T_CP936_UNDEFINED_00AD 0x00AD #define T_CP936_UNDEFINED_00AE 0x00AE #define T_CP936_UNDEFINED_00AF 0x00AF #define T_CP936_UNDEFINED_00B0 0x00B0 #define T_CP936_UNDEFINED_00B1 0x00B1 #define T_CP936_UNDEFINED_00B2 0x00B2 #define T_CP936_UNDEFINED_00B3 0x00B3 #define T_CP936_UNDEFINED_00B4 0x00B4 #define T_CP936_UNDEFINED_00B5 0x00B5 #define T_CP936_UNDEFINED_00B6 0x00B6 #define T_CP936_UNDEFINED_00B7 0x00B7 #define T_CP936_UNDEFINED_00B8 0x00B8 #define T_CP936_UNDEFINED_00B9 0x00B9 #define T_CP936_UNDEFINED_00BA 0x00BA #define T_CP936_UNDEFINED_00BB 0x00BB #define T_CP936_UNDEFINED_00BC 0x00BC #define T_CP936_UNDEFINED_00BD 0x00BD #define T_CP936_UNDEFINED_00BE 0x00BE #define T_CP936_UNDEFINED_00BF 0x00BF #define T_CP936_UNDEFINED_00C0 0x00C0 #define T_CP936_UNDEFINED_00C1 0x00C1 #define T_CP936_UNDEFINED_00C2 0x00C2 #define T_CP936_UNDEFINED_00C3 0x00C3 #define T_CP936_UNDEFINED_00C4 0x00C4 #define T_CP936_UNDEFINED_00C5 0x00C5 #define T_CP936_UNDEFINED_00C6 0x00C6 #define T_CP936_UNDEFINED_00C7 0x00C7 #define T_CP936_UNDEFINED_00C8 0x00C8 #define T_CP936_UNDEFINED_00C9 0x00C9 #define T_CP936_UNDEFINED_00CA 0x00CA #define T_CP936_UNDEFINED_00CB 0x00CB #define T_CP936_UNDEFINED_00CC 0x00CC #define T_CP936_UNDEFINED_00CD 0x00CD #define T_CP936_UNDEFINED_00CE 0x00CE #define T_CP936_UNDEFINED_00CF 0x00CF #define T_CP936_UNDEFINED_00D0 0x00D0 #define T_CP936_UNDEFINED_00D1 0x00D1 #define T_CP936_UNDEFINED_00D2 0x00D2 #define T_CP936_UNDEFINED_00D3 0x00D3 #define T_CP936_UNDEFINED_00D4 0x00D4 #define T_CP936_UNDEFINED_00D5 0x00D5 #define T_CP936_UNDEFINED_00D6 0x00D6 #define T_CP936_UNDEFINED_00D7 0x00D7 #define T_CP936_UNDEFINED_00D8 0x00D8 #define T_CP936_UNDEFINED_00D9 0x00D9 #define T_CP936_UNDEFINED_00DA 0x00DA #define T_CP936_UNDEFINED_00DB 0x00DB #define T_CP936_UNDEFINED_00DC 0x00DC #define T_CP936_UNDEFINED_00DD 0x00DD #define T_CP936_UNDEFINED_00DE 0x00DE #define T_CP936_UNDEFINED_00DF 0x00DF #define T_CP936_UNDEFINED_00E0 0x00E0 #define T_CP936_UNDEFINED_00E1 0x00E1 #define T_CP936_UNDEFINED_00E2 0x00E2 #define T_CP936_UNDEFINED_00E3 0x00E3 #define T_CP936_UNDEFINED_00E4 0x00E4 #define T_CP936_UNDEFINED_00E5 0x00E5 #define T_CP936_UNDEFINED_00E6 0x00E6 #define T_CP936_UNDEFINED_00E7 0x00E7 #define T_CP936_UNDEFINED_00E8 0x00E8 #define T_CP936_UNDEFINED_00E9 0x00E9 #define T_CP936_UNDEFINED_00EA 0x00EA #define T_CP936_UNDEFINED_00EB 0x00EB #define T_CP936_UNDEFINED_00EC 0x00EC #define T_CP936_UNDEFINED_00ED 0x00ED #define T_CP936_UNDEFINED_00EE 0x00EE #define T_CP936_UNDEFINED_00EF 0x00EF #define T_CP936_UNDEFINED_00F0 0x00F0 #define T_CP936_UNDEFINED_00F1 0x00F1 #define T_CP936_UNDEFINED_00F2 0x00F2 #define T_CP936_UNDEFINED_00F3 0x00F3 #define T_CP936_UNDEFINED_00F4 0x00F4 #define T_CP936_UNDEFINED_00F5 0x00F5 #define T_CP936_UNDEFINED_00F6 0x00F6 #define T_CP936_UNDEFINED_00F7 0x00F7 #define T_CP936_UNDEFINED_00F8 0x00F8 #define T_CP936_UNDEFINED_00F9 0x00F9 #define T_CP936_UNDEFINED_00FA 0x00FA #define T_CP936_UNDEFINED_00FB 0x00FB #define T_CP936_UNDEFINED_00FC 0x00FC #define T_CP936_UNDEFINED_00FD 0x00FD #define T_CP936_UNDEFINED_00FE 0x00FE #define T_CP936_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_CP936(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_UNDEFINED_0091) \ EL(_UNDEFINED_0092) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_UNDEFINED_0095) \ EL(_UNDEFINED_0096) \ EL(_UNDEFINED_0097) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_UNDEFINED_00B0) \ EL(_UNDEFINED_00B1) \ EL(_UNDEFINED_00B2) \ EL(_UNDEFINED_00B3) \ EL(_UNDEFINED_00B4) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_UNDEFINED_00B8) \ EL(_UNDEFINED_00B9) \ EL(_UNDEFINED_00BA) \ EL(_UNDEFINED_00BB) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_UNDEFINED_00BF) \ EL(_UNDEFINED_00C0) \ EL(_UNDEFINED_00C1) \ EL(_UNDEFINED_00C2) \ EL(_UNDEFINED_00C3) \ EL(_UNDEFINED_00C4) \ EL(_UNDEFINED_00C5) \ EL(_UNDEFINED_00C6) \ EL(_UNDEFINED_00C7) \ EL(_UNDEFINED_00C8) \ EL(_UNDEFINED_00C9) \ EL(_UNDEFINED_00CA) \ EL(_UNDEFINED_00CB) \ EL(_UNDEFINED_00CC) \ EL(_UNDEFINED_00CD) \ EL(_UNDEFINED_00CE) \ EL(_UNDEFINED_00CF) \ EL(_UNDEFINED_00D0) \ EL(_UNDEFINED_00D1) \ EL(_UNDEFINED_00D2) \ EL(_UNDEFINED_00D3) \ EL(_UNDEFINED_00D4) \ EL(_UNDEFINED_00D5) \ EL(_UNDEFINED_00D6) \ EL(_UNDEFINED_00D7) \ EL(_UNDEFINED_00D8) \ EL(_UNDEFINED_00D9) \ EL(_UNDEFINED_00DA) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP936(EL) \ EL(_EURO_SIGN) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_UNDEFINED_0091) \ EL(_UNDEFINED_0092) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_UNDEFINED_0095) \ EL(_UNDEFINED_0096) \ EL(_UNDEFINED_0097) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_UNDEFINED_00B0) \ EL(_UNDEFINED_00B1) \ EL(_UNDEFINED_00B2) \ EL(_UNDEFINED_00B3) \ EL(_UNDEFINED_00B4) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_UNDEFINED_00B8) \ EL(_UNDEFINED_00B9) \ EL(_UNDEFINED_00BA) \ EL(_UNDEFINED_00BB) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_UNDEFINED_00BF) \ EL(_UNDEFINED_00C0) \ EL(_UNDEFINED_00C1) \ EL(_UNDEFINED_00C2) \ EL(_UNDEFINED_00C3) \ EL(_UNDEFINED_00C4) \ EL(_UNDEFINED_00C5) \ EL(_UNDEFINED_00C6) \ EL(_UNDEFINED_00C7) \ EL(_UNDEFINED_00C8) \ EL(_UNDEFINED_00C9) \ EL(_UNDEFINED_00CA) \ EL(_UNDEFINED_00CB) \ EL(_UNDEFINED_00CC) \ EL(_UNDEFINED_00CD) \ EL(_UNDEFINED_00CE) \ EL(_UNDEFINED_00CF) \ EL(_UNDEFINED_00D0) \ EL(_UNDEFINED_00D1) \ EL(_UNDEFINED_00D2) \ EL(_UNDEFINED_00D3) \ EL(_UNDEFINED_00D4) \ EL(_UNDEFINED_00D5) \ EL(_UNDEFINED_00D6) \ EL(_UNDEFINED_00D7) \ EL(_UNDEFINED_00D8) \ EL(_UNDEFINED_00D9) \ EL(_UNDEFINED_00DA) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) #endif /* TUTF_CP936_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp949.h���������������������������������������������������������������������0000664�0000000�0000000�00000140335�13775351206�0016106�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP949_H #define TUTF_CP949_H #define T_CP949_CTRL_NULL 0x0000 #define T_CP949_CTRL_START_OF_HEADING 0x0001 #define T_CP949_CTRL_START_OF_TEXT 0x0002 #define T_CP949_CTRL_END_OF_TEXT 0x0003 #define T_CP949_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP949_CTRL_ENQUIRY 0x0005 #define T_CP949_CTRL_ACKNOWLEDGE 0x0006 #define T_CP949_CTRL_BELL 0x0007 #define T_CP949_CTRL_BACKSPACE 0x0008 #define T_CP949_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP949_CTRL_LINE_FEED 0x000A #define T_CP949_CTRL_LINE_TABULATION 0x000B #define T_CP949_CTRL_FORM_FEED 0x000C #define T_CP949_CTRL_CARRIAGE_RETURN 0x000D #define T_CP949_CTRL_SHIFT_OUT 0x000E #define T_CP949_CTRL_SHIFT_IN 0x000F #define T_CP949_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP949_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP949_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP949_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP949_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP949_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP949_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP949_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP949_CTRL_CANCEL 0x0018 #define T_CP949_CTRL_END_OF_MEDIUM 0x0019 #define T_CP949_CTRL_SUBSTITUTE 0x001A #define T_CP949_CTRL_ESCAPE 0x001B #define T_CP949_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP949_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP949_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP949_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP949_SPACE 0x0020 #define T_CP949_EXCLAMATION_MARK 0x0021 #define T_CP949_QUOTATION_MARK 0x0022 #define T_CP949_NUMBER_SIGN 0x0023 #define T_CP949_DOLLAR_SIGN 0x0024 #define T_CP949_PERCENT_SIGN 0x0025 #define T_CP949_AMPERSAND 0x0026 #define T_CP949_APOSTROPHE 0x0027 #define T_CP949_LEFT_PARENTHESIS 0x0028 #define T_CP949_RIGHT_PARENTHESIS 0x0029 #define T_CP949_ASTERISK 0x002A #define T_CP949_PLUS_SIGN 0x002B #define T_CP949_COMMA 0x002C #define T_CP949_HYPHEN_MINUS 0x002D #define T_CP949_FULL_STOP 0x002E #define T_CP949_SOLIDUS 0x002F #define T_CP949_DIGIT_ZERO 0x0030 #define T_CP949_DIGIT_ONE 0x0031 #define T_CP949_DIGIT_TWO 0x0032 #define T_CP949_DIGIT_THREE 0x0033 #define T_CP949_DIGIT_FOUR 0x0034 #define T_CP949_DIGIT_FIVE 0x0035 #define T_CP949_DIGIT_SIX 0x0036 #define T_CP949_DIGIT_SEVEN 0x0037 #define T_CP949_DIGIT_EIGHT 0x0038 #define T_CP949_DIGIT_NINE 0x0039 #define T_CP949_COLON 0x003A #define T_CP949_SEMICOLON 0x003B #define T_CP949_LESS_THAN_SIGN 0x003C #define T_CP949_EQUALS_SIGN 0x003D #define T_CP949_GREATER_THAN_SIGN 0x003E #define T_CP949_QUESTION_MARK 0x003F #define T_CP949_COMMERCIAL_AT 0x0040 #define T_CP949_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP949_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP949_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP949_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP949_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP949_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP949_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP949_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP949_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP949_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP949_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP949_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP949_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP949_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP949_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP949_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP949_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP949_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP949_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP949_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP949_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP949_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP949_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP949_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP949_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP949_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP949_LEFT_SQUARE_BRACKET 0x005B #define T_CP949_REVERSE_SOLIDUS 0x005C #define T_CP949_RIGHT_SQUARE_BRACKET 0x005D #define T_CP949_CIRCUMFLEX_ACCENT 0x005E #define T_CP949_LOW_LINE 0x005F #define T_CP949_GRAVE_ACCENT 0x0060 #define T_CP949_LATIN_SMALL_LETTER_A 0x0061 #define T_CP949_LATIN_SMALL_LETTER_B 0x0062 #define T_CP949_LATIN_SMALL_LETTER_C 0x0063 #define T_CP949_LATIN_SMALL_LETTER_D 0x0064 #define T_CP949_LATIN_SMALL_LETTER_E 0x0065 #define T_CP949_LATIN_SMALL_LETTER_F 0x0066 #define T_CP949_LATIN_SMALL_LETTER_G 0x0067 #define T_CP949_LATIN_SMALL_LETTER_H 0x0068 #define T_CP949_LATIN_SMALL_LETTER_I 0x0069 #define T_CP949_LATIN_SMALL_LETTER_J 0x006A #define T_CP949_LATIN_SMALL_LETTER_K 0x006B #define T_CP949_LATIN_SMALL_LETTER_L 0x006C #define T_CP949_LATIN_SMALL_LETTER_M 0x006D #define T_CP949_LATIN_SMALL_LETTER_N 0x006E #define T_CP949_LATIN_SMALL_LETTER_O 0x006F #define T_CP949_LATIN_SMALL_LETTER_P 0x0070 #define T_CP949_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP949_LATIN_SMALL_LETTER_R 0x0072 #define T_CP949_LATIN_SMALL_LETTER_S 0x0073 #define T_CP949_LATIN_SMALL_LETTER_T 0x0074 #define T_CP949_LATIN_SMALL_LETTER_U 0x0075 #define T_CP949_LATIN_SMALL_LETTER_V 0x0076 #define T_CP949_LATIN_SMALL_LETTER_W 0x0077 #define T_CP949_LATIN_SMALL_LETTER_X 0x0078 #define T_CP949_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP949_LATIN_SMALL_LETTER_Z 0x007A #define T_CP949_LEFT_CURLY_BRACKET 0x007B #define T_CP949_VERTICAL_LINE 0x007C #define T_CP949_RIGHT_CURLY_BRACKET 0x007D #define T_CP949_TILDE 0x007E #define T_CP949_CTRL_DELETE 0x007F #define T_CP949_UNDEFINED_0080 0x0080 #define T_CP949_UNDEFINED_0081 0x0081 #define T_CP949_UNDEFINED_0082 0x0082 #define T_CP949_UNDEFINED_0083 0x0083 #define T_CP949_UNDEFINED_0084 0x0084 #define T_CP949_UNDEFINED_0085 0x0085 #define T_CP949_UNDEFINED_0086 0x0086 #define T_CP949_UNDEFINED_0087 0x0087 #define T_CP949_UNDEFINED_0088 0x0088 #define T_CP949_UNDEFINED_0089 0x0089 #define T_CP949_UNDEFINED_008A 0x008A #define T_CP949_UNDEFINED_008B 0x008B #define T_CP949_UNDEFINED_008C 0x008C #define T_CP949_UNDEFINED_008D 0x008D #define T_CP949_UNDEFINED_008E 0x008E #define T_CP949_UNDEFINED_008F 0x008F #define T_CP949_UNDEFINED_0090 0x0090 #define T_CP949_UNDEFINED_0091 0x0091 #define T_CP949_UNDEFINED_0092 0x0092 #define T_CP949_UNDEFINED_0093 0x0093 #define T_CP949_UNDEFINED_0094 0x0094 #define T_CP949_UNDEFINED_0095 0x0095 #define T_CP949_UNDEFINED_0096 0x0096 #define T_CP949_UNDEFINED_0097 0x0097 #define T_CP949_UNDEFINED_0098 0x0098 #define T_CP949_UNDEFINED_0099 0x0099 #define T_CP949_UNDEFINED_009A 0x009A #define T_CP949_UNDEFINED_009B 0x009B #define T_CP949_UNDEFINED_009C 0x009C #define T_CP949_UNDEFINED_009D 0x009D #define T_CP949_UNDEFINED_009E 0x009E #define T_CP949_UNDEFINED_009F 0x009F #define T_CP949_UNDEFINED_00A0 0x00A0 #define T_CP949_UNDEFINED_00A1 0x00A1 #define T_CP949_UNDEFINED_00A2 0x00A2 #define T_CP949_UNDEFINED_00A3 0x00A3 #define T_CP949_UNDEFINED_00A4 0x00A4 #define T_CP949_UNDEFINED_00A5 0x00A5 #define T_CP949_UNDEFINED_00A6 0x00A6 #define T_CP949_UNDEFINED_00A7 0x00A7 #define T_CP949_UNDEFINED_00A8 0x00A8 #define T_CP949_UNDEFINED_00A9 0x00A9 #define T_CP949_UNDEFINED_00AA 0x00AA #define T_CP949_UNDEFINED_00AB 0x00AB #define T_CP949_UNDEFINED_00AC 0x00AC #define T_CP949_UNDEFINED_00AD 0x00AD #define T_CP949_UNDEFINED_00AE 0x00AE #define T_CP949_UNDEFINED_00AF 0x00AF #define T_CP949_UNDEFINED_00B0 0x00B0 #define T_CP949_UNDEFINED_00B1 0x00B1 #define T_CP949_UNDEFINED_00B2 0x00B2 #define T_CP949_UNDEFINED_00B3 0x00B3 #define T_CP949_UNDEFINED_00B4 0x00B4 #define T_CP949_UNDEFINED_00B5 0x00B5 #define T_CP949_UNDEFINED_00B6 0x00B6 #define T_CP949_UNDEFINED_00B7 0x00B7 #define T_CP949_UNDEFINED_00B8 0x00B8 #define T_CP949_UNDEFINED_00B9 0x00B9 #define T_CP949_UNDEFINED_00BA 0x00BA #define T_CP949_UNDEFINED_00BB 0x00BB #define T_CP949_UNDEFINED_00BC 0x00BC #define T_CP949_UNDEFINED_00BD 0x00BD #define T_CP949_UNDEFINED_00BE 0x00BE #define T_CP949_UNDEFINED_00BF 0x00BF #define T_CP949_UNDEFINED_00C0 0x00C0 #define T_CP949_UNDEFINED_00C1 0x00C1 #define T_CP949_UNDEFINED_00C2 0x00C2 #define T_CP949_UNDEFINED_00C3 0x00C3 #define T_CP949_UNDEFINED_00C4 0x00C4 #define T_CP949_UNDEFINED_00C5 0x00C5 #define T_CP949_UNDEFINED_00C6 0x00C6 #define T_CP949_UNDEFINED_00C7 0x00C7 #define T_CP949_UNDEFINED_00C8 0x00C8 #define T_CP949_UNDEFINED_00C9 0x00C9 #define T_CP949_UNDEFINED_00CA 0x00CA #define T_CP949_UNDEFINED_00CB 0x00CB #define T_CP949_UNDEFINED_00CC 0x00CC #define T_CP949_UNDEFINED_00CD 0x00CD #define T_CP949_UNDEFINED_00CE 0x00CE #define T_CP949_UNDEFINED_00CF 0x00CF #define T_CP949_UNDEFINED_00D0 0x00D0 #define T_CP949_UNDEFINED_00D1 0x00D1 #define T_CP949_UNDEFINED_00D2 0x00D2 #define T_CP949_UNDEFINED_00D3 0x00D3 #define T_CP949_UNDEFINED_00D4 0x00D4 #define T_CP949_UNDEFINED_00D5 0x00D5 #define T_CP949_UNDEFINED_00D6 0x00D6 #define T_CP949_UNDEFINED_00D7 0x00D7 #define T_CP949_UNDEFINED_00D8 0x00D8 #define T_CP949_UNDEFINED_00D9 0x00D9 #define T_CP949_UNDEFINED_00DA 0x00DA #define T_CP949_UNDEFINED_00DB 0x00DB #define T_CP949_UNDEFINED_00DC 0x00DC #define T_CP949_UNDEFINED_00DD 0x00DD #define T_CP949_UNDEFINED_00DE 0x00DE #define T_CP949_UNDEFINED_00DF 0x00DF #define T_CP949_UNDEFINED_00E0 0x00E0 #define T_CP949_UNDEFINED_00E1 0x00E1 #define T_CP949_UNDEFINED_00E2 0x00E2 #define T_CP949_UNDEFINED_00E3 0x00E3 #define T_CP949_UNDEFINED_00E4 0x00E4 #define T_CP949_UNDEFINED_00E5 0x00E5 #define T_CP949_UNDEFINED_00E6 0x00E6 #define T_CP949_UNDEFINED_00E7 0x00E7 #define T_CP949_UNDEFINED_00E8 0x00E8 #define T_CP949_UNDEFINED_00E9 0x00E9 #define T_CP949_UNDEFINED_00EA 0x00EA #define T_CP949_UNDEFINED_00EB 0x00EB #define T_CP949_UNDEFINED_00EC 0x00EC #define T_CP949_UNDEFINED_00ED 0x00ED #define T_CP949_UNDEFINED_00EE 0x00EE #define T_CP949_UNDEFINED_00EF 0x00EF #define T_CP949_UNDEFINED_00F0 0x00F0 #define T_CP949_UNDEFINED_00F1 0x00F1 #define T_CP949_UNDEFINED_00F2 0x00F2 #define T_CP949_UNDEFINED_00F3 0x00F3 #define T_CP949_UNDEFINED_00F4 0x00F4 #define T_CP949_UNDEFINED_00F5 0x00F5 #define T_CP949_UNDEFINED_00F6 0x00F6 #define T_CP949_UNDEFINED_00F7 0x00F7 #define T_CP949_UNDEFINED_00F8 0x00F8 #define T_CP949_UNDEFINED_00F9 0x00F9 #define T_CP949_UNDEFINED_00FA 0x00FA #define T_CP949_UNDEFINED_00FB 0x00FB #define T_CP949_UNDEFINED_00FC 0x00FC #define T_CP949_UNDEFINED_00FD 0x00FD #define T_CP949_UNDEFINED_00FE 0x00FE #define T_CP949_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_CP949(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_UNDEFINED_0091) \ EL(_UNDEFINED_0092) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_UNDEFINED_0095) \ EL(_UNDEFINED_0096) \ EL(_UNDEFINED_0097) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_UNDEFINED_00B0) \ EL(_UNDEFINED_00B1) \ EL(_UNDEFINED_00B2) \ EL(_UNDEFINED_00B3) \ EL(_UNDEFINED_00B4) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_UNDEFINED_00B8) \ EL(_UNDEFINED_00B9) \ EL(_UNDEFINED_00BA) \ EL(_UNDEFINED_00BB) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_UNDEFINED_00BF) \ EL(_UNDEFINED_00C0) \ EL(_UNDEFINED_00C1) \ EL(_UNDEFINED_00C2) \ EL(_UNDEFINED_00C3) \ EL(_UNDEFINED_00C4) \ EL(_UNDEFINED_00C5) \ EL(_UNDEFINED_00C6) \ EL(_UNDEFINED_00C7) \ EL(_UNDEFINED_00C8) \ EL(_UNDEFINED_00C9) \ EL(_UNDEFINED_00CA) \ EL(_UNDEFINED_00CB) \ EL(_UNDEFINED_00CC) \ EL(_UNDEFINED_00CD) \ EL(_UNDEFINED_00CE) \ EL(_UNDEFINED_00CF) \ EL(_UNDEFINED_00D0) \ EL(_UNDEFINED_00D1) \ EL(_UNDEFINED_00D2) \ EL(_UNDEFINED_00D3) \ EL(_UNDEFINED_00D4) \ EL(_UNDEFINED_00D5) \ EL(_UNDEFINED_00D6) \ EL(_UNDEFINED_00D7) \ EL(_UNDEFINED_00D8) \ EL(_UNDEFINED_00D9) \ EL(_UNDEFINED_00DA) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP949(EL) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_UNDEFINED_0091) \ EL(_UNDEFINED_0092) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_UNDEFINED_0095) \ EL(_UNDEFINED_0096) \ EL(_UNDEFINED_0097) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_UNDEFINED_00B0) \ EL(_UNDEFINED_00B1) \ EL(_UNDEFINED_00B2) \ EL(_UNDEFINED_00B3) \ EL(_UNDEFINED_00B4) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_UNDEFINED_00B8) \ EL(_UNDEFINED_00B9) \ EL(_UNDEFINED_00BA) \ EL(_UNDEFINED_00BB) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_UNDEFINED_00BF) \ EL(_UNDEFINED_00C0) \ EL(_UNDEFINED_00C1) \ EL(_UNDEFINED_00C2) \ EL(_UNDEFINED_00C3) \ EL(_UNDEFINED_00C4) \ EL(_UNDEFINED_00C5) \ EL(_UNDEFINED_00C6) \ EL(_UNDEFINED_00C7) \ EL(_UNDEFINED_00C8) \ EL(_UNDEFINED_00C9) \ EL(_UNDEFINED_00CA) \ EL(_UNDEFINED_00CB) \ EL(_UNDEFINED_00CC) \ EL(_UNDEFINED_00CD) \ EL(_UNDEFINED_00CE) \ EL(_UNDEFINED_00CF) \ EL(_UNDEFINED_00D0) \ EL(_UNDEFINED_00D1) \ EL(_UNDEFINED_00D2) \ EL(_UNDEFINED_00D3) \ EL(_UNDEFINED_00D4) \ EL(_UNDEFINED_00D5) \ EL(_UNDEFINED_00D6) \ EL(_UNDEFINED_00D7) \ EL(_UNDEFINED_00D8) \ EL(_UNDEFINED_00D9) \ EL(_UNDEFINED_00DA) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) #endif /* TUTF_CP949_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/cp950.h���������������������������������������������������������������������0000664�0000000�0000000�00000140335�13775351206�0016076�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_CP950_H #define TUTF_CP950_H #define T_CP950_CTRL_NULL 0x0000 #define T_CP950_CTRL_START_OF_HEADING 0x0001 #define T_CP950_CTRL_START_OF_TEXT 0x0002 #define T_CP950_CTRL_END_OF_TEXT 0x0003 #define T_CP950_CTRL_END_OF_TRANSMISSION 0x0004 #define T_CP950_CTRL_ENQUIRY 0x0005 #define T_CP950_CTRL_ACKNOWLEDGE 0x0006 #define T_CP950_CTRL_BELL 0x0007 #define T_CP950_CTRL_BACKSPACE 0x0008 #define T_CP950_CTRL_CHARACTER_TABULATION 0x0009 #define T_CP950_CTRL_LINE_FEED 0x000A #define T_CP950_CTRL_LINE_TABULATION 0x000B #define T_CP950_CTRL_FORM_FEED 0x000C #define T_CP950_CTRL_CARRIAGE_RETURN 0x000D #define T_CP950_CTRL_SHIFT_OUT 0x000E #define T_CP950_CTRL_SHIFT_IN 0x000F #define T_CP950_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_CP950_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_CP950_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_CP950_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_CP950_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_CP950_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_CP950_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_CP950_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_CP950_CTRL_CANCEL 0x0018 #define T_CP950_CTRL_END_OF_MEDIUM 0x0019 #define T_CP950_CTRL_SUBSTITUTE 0x001A #define T_CP950_CTRL_ESCAPE 0x001B #define T_CP950_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_CP950_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_CP950_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_CP950_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_CP950_SPACE 0x0020 #define T_CP950_EXCLAMATION_MARK 0x0021 #define T_CP950_QUOTATION_MARK 0x0022 #define T_CP950_NUMBER_SIGN 0x0023 #define T_CP950_DOLLAR_SIGN 0x0024 #define T_CP950_PERCENT_SIGN 0x0025 #define T_CP950_AMPERSAND 0x0026 #define T_CP950_APOSTROPHE 0x0027 #define T_CP950_LEFT_PARENTHESIS 0x0028 #define T_CP950_RIGHT_PARENTHESIS 0x0029 #define T_CP950_ASTERISK 0x002A #define T_CP950_PLUS_SIGN 0x002B #define T_CP950_COMMA 0x002C #define T_CP950_HYPHEN_MINUS 0x002D #define T_CP950_FULL_STOP 0x002E #define T_CP950_SOLIDUS 0x002F #define T_CP950_DIGIT_ZERO 0x0030 #define T_CP950_DIGIT_ONE 0x0031 #define T_CP950_DIGIT_TWO 0x0032 #define T_CP950_DIGIT_THREE 0x0033 #define T_CP950_DIGIT_FOUR 0x0034 #define T_CP950_DIGIT_FIVE 0x0035 #define T_CP950_DIGIT_SIX 0x0036 #define T_CP950_DIGIT_SEVEN 0x0037 #define T_CP950_DIGIT_EIGHT 0x0038 #define T_CP950_DIGIT_NINE 0x0039 #define T_CP950_COLON 0x003A #define T_CP950_SEMICOLON 0x003B #define T_CP950_LESS_THAN_SIGN 0x003C #define T_CP950_EQUALS_SIGN 0x003D #define T_CP950_GREATER_THAN_SIGN 0x003E #define T_CP950_QUESTION_MARK 0x003F #define T_CP950_COMMERCIAL_AT 0x0040 #define T_CP950_LATIN_CAPITAL_LETTER_A 0x0041 #define T_CP950_LATIN_CAPITAL_LETTER_B 0x0042 #define T_CP950_LATIN_CAPITAL_LETTER_C 0x0043 #define T_CP950_LATIN_CAPITAL_LETTER_D 0x0044 #define T_CP950_LATIN_CAPITAL_LETTER_E 0x0045 #define T_CP950_LATIN_CAPITAL_LETTER_F 0x0046 #define T_CP950_LATIN_CAPITAL_LETTER_G 0x0047 #define T_CP950_LATIN_CAPITAL_LETTER_H 0x0048 #define T_CP950_LATIN_CAPITAL_LETTER_I 0x0049 #define T_CP950_LATIN_CAPITAL_LETTER_J 0x004A #define T_CP950_LATIN_CAPITAL_LETTER_K 0x004B #define T_CP950_LATIN_CAPITAL_LETTER_L 0x004C #define T_CP950_LATIN_CAPITAL_LETTER_M 0x004D #define T_CP950_LATIN_CAPITAL_LETTER_N 0x004E #define T_CP950_LATIN_CAPITAL_LETTER_O 0x004F #define T_CP950_LATIN_CAPITAL_LETTER_P 0x0050 #define T_CP950_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_CP950_LATIN_CAPITAL_LETTER_R 0x0052 #define T_CP950_LATIN_CAPITAL_LETTER_S 0x0053 #define T_CP950_LATIN_CAPITAL_LETTER_T 0x0054 #define T_CP950_LATIN_CAPITAL_LETTER_U 0x0055 #define T_CP950_LATIN_CAPITAL_LETTER_V 0x0056 #define T_CP950_LATIN_CAPITAL_LETTER_W 0x0057 #define T_CP950_LATIN_CAPITAL_LETTER_X 0x0058 #define T_CP950_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_CP950_LATIN_CAPITAL_LETTER_Z 0x005A #define T_CP950_LEFT_SQUARE_BRACKET 0x005B #define T_CP950_REVERSE_SOLIDUS 0x005C #define T_CP950_RIGHT_SQUARE_BRACKET 0x005D #define T_CP950_CIRCUMFLEX_ACCENT 0x005E #define T_CP950_LOW_LINE 0x005F #define T_CP950_GRAVE_ACCENT 0x0060 #define T_CP950_LATIN_SMALL_LETTER_A 0x0061 #define T_CP950_LATIN_SMALL_LETTER_B 0x0062 #define T_CP950_LATIN_SMALL_LETTER_C 0x0063 #define T_CP950_LATIN_SMALL_LETTER_D 0x0064 #define T_CP950_LATIN_SMALL_LETTER_E 0x0065 #define T_CP950_LATIN_SMALL_LETTER_F 0x0066 #define T_CP950_LATIN_SMALL_LETTER_G 0x0067 #define T_CP950_LATIN_SMALL_LETTER_H 0x0068 #define T_CP950_LATIN_SMALL_LETTER_I 0x0069 #define T_CP950_LATIN_SMALL_LETTER_J 0x006A #define T_CP950_LATIN_SMALL_LETTER_K 0x006B #define T_CP950_LATIN_SMALL_LETTER_L 0x006C #define T_CP950_LATIN_SMALL_LETTER_M 0x006D #define T_CP950_LATIN_SMALL_LETTER_N 0x006E #define T_CP950_LATIN_SMALL_LETTER_O 0x006F #define T_CP950_LATIN_SMALL_LETTER_P 0x0070 #define T_CP950_LATIN_SMALL_LETTER_Q 0x0071 #define T_CP950_LATIN_SMALL_LETTER_R 0x0072 #define T_CP950_LATIN_SMALL_LETTER_S 0x0073 #define T_CP950_LATIN_SMALL_LETTER_T 0x0074 #define T_CP950_LATIN_SMALL_LETTER_U 0x0075 #define T_CP950_LATIN_SMALL_LETTER_V 0x0076 #define T_CP950_LATIN_SMALL_LETTER_W 0x0077 #define T_CP950_LATIN_SMALL_LETTER_X 0x0078 #define T_CP950_LATIN_SMALL_LETTER_Y 0x0079 #define T_CP950_LATIN_SMALL_LETTER_Z 0x007A #define T_CP950_LEFT_CURLY_BRACKET 0x007B #define T_CP950_VERTICAL_LINE 0x007C #define T_CP950_RIGHT_CURLY_BRACKET 0x007D #define T_CP950_TILDE 0x007E #define T_CP950_CTRL_DELETE 0x007F #define T_CP950_UNDEFINED_0080 0x0080 #define T_CP950_UNDEFINED_0081 0x0081 #define T_CP950_UNDEFINED_0082 0x0082 #define T_CP950_UNDEFINED_0083 0x0083 #define T_CP950_UNDEFINED_0084 0x0084 #define T_CP950_UNDEFINED_0085 0x0085 #define T_CP950_UNDEFINED_0086 0x0086 #define T_CP950_UNDEFINED_0087 0x0087 #define T_CP950_UNDEFINED_0088 0x0088 #define T_CP950_UNDEFINED_0089 0x0089 #define T_CP950_UNDEFINED_008A 0x008A #define T_CP950_UNDEFINED_008B 0x008B #define T_CP950_UNDEFINED_008C 0x008C #define T_CP950_UNDEFINED_008D 0x008D #define T_CP950_UNDEFINED_008E 0x008E #define T_CP950_UNDEFINED_008F 0x008F #define T_CP950_UNDEFINED_0090 0x0090 #define T_CP950_UNDEFINED_0091 0x0091 #define T_CP950_UNDEFINED_0092 0x0092 #define T_CP950_UNDEFINED_0093 0x0093 #define T_CP950_UNDEFINED_0094 0x0094 #define T_CP950_UNDEFINED_0095 0x0095 #define T_CP950_UNDEFINED_0096 0x0096 #define T_CP950_UNDEFINED_0097 0x0097 #define T_CP950_UNDEFINED_0098 0x0098 #define T_CP950_UNDEFINED_0099 0x0099 #define T_CP950_UNDEFINED_009A 0x009A #define T_CP950_UNDEFINED_009B 0x009B #define T_CP950_UNDEFINED_009C 0x009C #define T_CP950_UNDEFINED_009D 0x009D #define T_CP950_UNDEFINED_009E 0x009E #define T_CP950_UNDEFINED_009F 0x009F #define T_CP950_UNDEFINED_00A0 0x00A0 #define T_CP950_UNDEFINED_00A1 0x00A1 #define T_CP950_UNDEFINED_00A2 0x00A2 #define T_CP950_UNDEFINED_00A3 0x00A3 #define T_CP950_UNDEFINED_00A4 0x00A4 #define T_CP950_UNDEFINED_00A5 0x00A5 #define T_CP950_UNDEFINED_00A6 0x00A6 #define T_CP950_UNDEFINED_00A7 0x00A7 #define T_CP950_UNDEFINED_00A8 0x00A8 #define T_CP950_UNDEFINED_00A9 0x00A9 #define T_CP950_UNDEFINED_00AA 0x00AA #define T_CP950_UNDEFINED_00AB 0x00AB #define T_CP950_UNDEFINED_00AC 0x00AC #define T_CP950_UNDEFINED_00AD 0x00AD #define T_CP950_UNDEFINED_00AE 0x00AE #define T_CP950_UNDEFINED_00AF 0x00AF #define T_CP950_UNDEFINED_00B0 0x00B0 #define T_CP950_UNDEFINED_00B1 0x00B1 #define T_CP950_UNDEFINED_00B2 0x00B2 #define T_CP950_UNDEFINED_00B3 0x00B3 #define T_CP950_UNDEFINED_00B4 0x00B4 #define T_CP950_UNDEFINED_00B5 0x00B5 #define T_CP950_UNDEFINED_00B6 0x00B6 #define T_CP950_UNDEFINED_00B7 0x00B7 #define T_CP950_UNDEFINED_00B8 0x00B8 #define T_CP950_UNDEFINED_00B9 0x00B9 #define T_CP950_UNDEFINED_00BA 0x00BA #define T_CP950_UNDEFINED_00BB 0x00BB #define T_CP950_UNDEFINED_00BC 0x00BC #define T_CP950_UNDEFINED_00BD 0x00BD #define T_CP950_UNDEFINED_00BE 0x00BE #define T_CP950_UNDEFINED_00BF 0x00BF #define T_CP950_UNDEFINED_00C0 0x00C0 #define T_CP950_UNDEFINED_00C1 0x00C1 #define T_CP950_UNDEFINED_00C2 0x00C2 #define T_CP950_UNDEFINED_00C3 0x00C3 #define T_CP950_UNDEFINED_00C4 0x00C4 #define T_CP950_UNDEFINED_00C5 0x00C5 #define T_CP950_UNDEFINED_00C6 0x00C6 #define T_CP950_UNDEFINED_00C7 0x00C7 #define T_CP950_UNDEFINED_00C8 0x00C8 #define T_CP950_UNDEFINED_00C9 0x00C9 #define T_CP950_UNDEFINED_00CA 0x00CA #define T_CP950_UNDEFINED_00CB 0x00CB #define T_CP950_UNDEFINED_00CC 0x00CC #define T_CP950_UNDEFINED_00CD 0x00CD #define T_CP950_UNDEFINED_00CE 0x00CE #define T_CP950_UNDEFINED_00CF 0x00CF #define T_CP950_UNDEFINED_00D0 0x00D0 #define T_CP950_UNDEFINED_00D1 0x00D1 #define T_CP950_UNDEFINED_00D2 0x00D2 #define T_CP950_UNDEFINED_00D3 0x00D3 #define T_CP950_UNDEFINED_00D4 0x00D4 #define T_CP950_UNDEFINED_00D5 0x00D5 #define T_CP950_UNDEFINED_00D6 0x00D6 #define T_CP950_UNDEFINED_00D7 0x00D7 #define T_CP950_UNDEFINED_00D8 0x00D8 #define T_CP950_UNDEFINED_00D9 0x00D9 #define T_CP950_UNDEFINED_00DA 0x00DA #define T_CP950_UNDEFINED_00DB 0x00DB #define T_CP950_UNDEFINED_00DC 0x00DC #define T_CP950_UNDEFINED_00DD 0x00DD #define T_CP950_UNDEFINED_00DE 0x00DE #define T_CP950_UNDEFINED_00DF 0x00DF #define T_CP950_UNDEFINED_00E0 0x00E0 #define T_CP950_UNDEFINED_00E1 0x00E1 #define T_CP950_UNDEFINED_00E2 0x00E2 #define T_CP950_UNDEFINED_00E3 0x00E3 #define T_CP950_UNDEFINED_00E4 0x00E4 #define T_CP950_UNDEFINED_00E5 0x00E5 #define T_CP950_UNDEFINED_00E6 0x00E6 #define T_CP950_UNDEFINED_00E7 0x00E7 #define T_CP950_UNDEFINED_00E8 0x00E8 #define T_CP950_UNDEFINED_00E9 0x00E9 #define T_CP950_UNDEFINED_00EA 0x00EA #define T_CP950_UNDEFINED_00EB 0x00EB #define T_CP950_UNDEFINED_00EC 0x00EC #define T_CP950_UNDEFINED_00ED 0x00ED #define T_CP950_UNDEFINED_00EE 0x00EE #define T_CP950_UNDEFINED_00EF 0x00EF #define T_CP950_UNDEFINED_00F0 0x00F0 #define T_CP950_UNDEFINED_00F1 0x00F1 #define T_CP950_UNDEFINED_00F2 0x00F2 #define T_CP950_UNDEFINED_00F3 0x00F3 #define T_CP950_UNDEFINED_00F4 0x00F4 #define T_CP950_UNDEFINED_00F5 0x00F5 #define T_CP950_UNDEFINED_00F6 0x00F6 #define T_CP950_UNDEFINED_00F7 0x00F7 #define T_CP950_UNDEFINED_00F8 0x00F8 #define T_CP950_UNDEFINED_00F9 0x00F9 #define T_CP950_UNDEFINED_00FA 0x00FA #define T_CP950_UNDEFINED_00FB 0x00FB #define T_CP950_UNDEFINED_00FC 0x00FC #define T_CP950_UNDEFINED_00FD 0x00FD #define T_CP950_UNDEFINED_00FE 0x00FE #define T_CP950_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_CP950(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_UNDEFINED_0091) \ EL(_UNDEFINED_0092) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_UNDEFINED_0095) \ EL(_UNDEFINED_0096) \ EL(_UNDEFINED_0097) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_UNDEFINED_00B0) \ EL(_UNDEFINED_00B1) \ EL(_UNDEFINED_00B2) \ EL(_UNDEFINED_00B3) \ EL(_UNDEFINED_00B4) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_UNDEFINED_00B8) \ EL(_UNDEFINED_00B9) \ EL(_UNDEFINED_00BA) \ EL(_UNDEFINED_00BB) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_UNDEFINED_00BF) \ EL(_UNDEFINED_00C0) \ EL(_UNDEFINED_00C1) \ EL(_UNDEFINED_00C2) \ EL(_UNDEFINED_00C3) \ EL(_UNDEFINED_00C4) \ EL(_UNDEFINED_00C5) \ EL(_UNDEFINED_00C6) \ EL(_UNDEFINED_00C7) \ EL(_UNDEFINED_00C8) \ EL(_UNDEFINED_00C9) \ EL(_UNDEFINED_00CA) \ EL(_UNDEFINED_00CB) \ EL(_UNDEFINED_00CC) \ EL(_UNDEFINED_00CD) \ EL(_UNDEFINED_00CE) \ EL(_UNDEFINED_00CF) \ EL(_UNDEFINED_00D0) \ EL(_UNDEFINED_00D1) \ EL(_UNDEFINED_00D2) \ EL(_UNDEFINED_00D3) \ EL(_UNDEFINED_00D4) \ EL(_UNDEFINED_00D5) \ EL(_UNDEFINED_00D6) \ EL(_UNDEFINED_00D7) \ EL(_UNDEFINED_00D8) \ EL(_UNDEFINED_00D9) \ EL(_UNDEFINED_00DA) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_CP950(EL) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_UNDEFINED_0082) \ EL(_UNDEFINED_0083) \ EL(_UNDEFINED_0084) \ EL(_UNDEFINED_0085) \ EL(_UNDEFINED_0086) \ EL(_UNDEFINED_0087) \ EL(_UNDEFINED_0088) \ EL(_UNDEFINED_0089) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_UNDEFINED_008D) \ EL(_UNDEFINED_008E) \ EL(_UNDEFINED_008F) \ EL(_UNDEFINED_0090) \ EL(_UNDEFINED_0091) \ EL(_UNDEFINED_0092) \ EL(_UNDEFINED_0093) \ EL(_UNDEFINED_0094) \ EL(_UNDEFINED_0095) \ EL(_UNDEFINED_0096) \ EL(_UNDEFINED_0097) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_UNDEFINED_009D) \ EL(_UNDEFINED_009E) \ EL(_UNDEFINED_009F) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_UNDEFINED_00B0) \ EL(_UNDEFINED_00B1) \ EL(_UNDEFINED_00B2) \ EL(_UNDEFINED_00B3) \ EL(_UNDEFINED_00B4) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_UNDEFINED_00B8) \ EL(_UNDEFINED_00B9) \ EL(_UNDEFINED_00BA) \ EL(_UNDEFINED_00BB) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_UNDEFINED_00BF) \ EL(_UNDEFINED_00C0) \ EL(_UNDEFINED_00C1) \ EL(_UNDEFINED_00C2) \ EL(_UNDEFINED_00C3) \ EL(_UNDEFINED_00C4) \ EL(_UNDEFINED_00C5) \ EL(_UNDEFINED_00C6) \ EL(_UNDEFINED_00C7) \ EL(_UNDEFINED_00C8) \ EL(_UNDEFINED_00C9) \ EL(_UNDEFINED_00CA) \ EL(_UNDEFINED_00CB) \ EL(_UNDEFINED_00CC) \ EL(_UNDEFINED_00CD) \ EL(_UNDEFINED_00CE) \ EL(_UNDEFINED_00CF) \ EL(_UNDEFINED_00D0) \ EL(_UNDEFINED_00D1) \ EL(_UNDEFINED_00D2) \ EL(_UNDEFINED_00D3) \ EL(_UNDEFINED_00D4) \ EL(_UNDEFINED_00D5) \ EL(_UNDEFINED_00D6) \ EL(_UNDEFINED_00D7) \ EL(_UNDEFINED_00D8) \ EL(_UNDEFINED_00D9) \ EL(_UNDEFINED_00DA) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) #endif /* TUTF_CP950_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/hp_roman8.h�����������������������������������������������������������������0000664�0000000�0000000�00000136763�13775351206�0017143�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated * from clisp sources with "from-kernel.bash" * Do not edit! */ #ifndef TUTF_HP_ROMAN8_H #define TUTF_HP_ROMAN8_H #define T_HP_ROMAN8_CTRL_NULL 0x0000 #define T_HP_ROMAN8_CTRL_START_OF_HEADING 0x0001 #define T_HP_ROMAN8_CTRL_START_OF_TEXT 0x0002 #define T_HP_ROMAN8_CTRL_END_OF_TEXT 0x0003 #define T_HP_ROMAN8_CTRL_END_OF_TRANSMISSION 0x0004 #define T_HP_ROMAN8_CTRL_ENQUIRY 0x0005 #define T_HP_ROMAN8_CTRL_ACKNOWLEDGE 0x0006 #define T_HP_ROMAN8_CTRL_BELL 0x0007 #define T_HP_ROMAN8_CTRL_BACKSPACE 0x0008 #define T_HP_ROMAN8_CTRL_HORIZONTAL_TABULATION 0x0009 #define T_HP_ROMAN8_CTRL_LINE_FEED 0x000A #define T_HP_ROMAN8_CTRL_VERTICAL_TABULATION 0x000B #define T_HP_ROMAN8_CTRL_FORM_FEED 0x000C #define T_HP_ROMAN8_CTRL_CARRIAGE_RETURN 0x000D #define T_HP_ROMAN8_CTRL_SHIFT_OUT 0x000E #define T_HP_ROMAN8_CTRL_SHIFT_IN 0x000F #define T_HP_ROMAN8_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_HP_ROMAN8_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_HP_ROMAN8_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_HP_ROMAN8_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_HP_ROMAN8_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_HP_ROMAN8_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_HP_ROMAN8_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_HP_ROMAN8_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_HP_ROMAN8_CTRL_CANCEL 0x0018 #define T_HP_ROMAN8_CTRL_END_OF_MEDIUM 0x0019 #define T_HP_ROMAN8_CTRL_SUBSTITUTE 0x001A #define T_HP_ROMAN8_CTRL_ESCAPE 0x001B #define T_HP_ROMAN8_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_HP_ROMAN8_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_HP_ROMAN8_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_HP_ROMAN8_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_HP_ROMAN8_SPACE 0x0020 #define T_HP_ROMAN8_EXCLAMATION_MARK 0x0021 #define T_HP_ROMAN8_QUOTATION_MARK 0x0022 #define T_HP_ROMAN8_NUMBER_SIGN 0x0023 #define T_HP_ROMAN8_DOLLAR_SIGN 0x0024 #define T_HP_ROMAN8_PERCENT_SIGN 0x0025 #define T_HP_ROMAN8_AMPERSAND 0x0026 #define T_HP_ROMAN8_APOSTROPHE 0x0027 #define T_HP_ROMAN8_LEFT_PARENTHESIS 0x0028 #define T_HP_ROMAN8_RIGHT_PARENTHESIS 0x0029 #define T_HP_ROMAN8_ASTERISK 0x002A #define T_HP_ROMAN8_PLUS_SIGN 0x002B #define T_HP_ROMAN8_COMMA 0x002C #define T_HP_ROMAN8_HYPHEN_MINUS 0x002D #define T_HP_ROMAN8_FULL_STOP 0x002E #define T_HP_ROMAN8_SOLIDUS 0x002F #define T_HP_ROMAN8_DIGIT_ZERO 0x0030 #define T_HP_ROMAN8_DIGIT_ONE 0x0031 #define T_HP_ROMAN8_DIGIT_TWO 0x0032 #define T_HP_ROMAN8_DIGIT_THREE 0x0033 #define T_HP_ROMAN8_DIGIT_FOUR 0x0034 #define T_HP_ROMAN8_DIGIT_FIVE 0x0035 #define T_HP_ROMAN8_DIGIT_SIX 0x0036 #define T_HP_ROMAN8_DIGIT_SEVEN 0x0037 #define T_HP_ROMAN8_DIGIT_EIGHT 0x0038 #define T_HP_ROMAN8_DIGIT_NINE 0x0039 #define T_HP_ROMAN8_COLON 0x003A #define T_HP_ROMAN8_SEMICOLON 0x003B #define T_HP_ROMAN8_LESS_THAN_SIGN 0x003C #define T_HP_ROMAN8_EQUALS_SIGN 0x003D #define T_HP_ROMAN8_GREATER_THAN_SIGN 0x003E #define T_HP_ROMAN8_QUESTION_MARK 0x003F #define T_HP_ROMAN8_COMMERCIAL_AT 0x0040 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_A 0x0041 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_B 0x0042 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_C 0x0043 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_D 0x0044 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_E 0x0045 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_F 0x0046 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_G 0x0047 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_H 0x0048 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_I 0x0049 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_J 0x004A #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_K 0x004B #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_L 0x004C #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_M 0x004D #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_N 0x004E #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_O 0x004F #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_P 0x0050 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_R 0x0052 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_S 0x0053 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_T 0x0054 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_U 0x0055 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_V 0x0056 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_W 0x0057 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_X 0x0058 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_Z 0x005A #define T_HP_ROMAN8_LEFT_SQUARE_BRACKET 0x005B #define T_HP_ROMAN8_REVERSE_SOLIDUS 0x005C #define T_HP_ROMAN8_RIGHT_SQUARE_BRACKET 0x005D #define T_HP_ROMAN8_CIRCUMFLEX_ACCENT 0x005E #define T_HP_ROMAN8_LOW_LINE 0x005F #define T_HP_ROMAN8_GRAVE_ACCENT 0x0060 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_A 0x0061 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_B 0x0062 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_C 0x0063 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_D 0x0064 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_E 0x0065 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_F 0x0066 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_G 0x0067 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_H 0x0068 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_I 0x0069 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_J 0x006A #define T_HP_ROMAN8_LATIN_SMALL_LETTER_K 0x006B #define T_HP_ROMAN8_LATIN_SMALL_LETTER_L 0x006C #define T_HP_ROMAN8_LATIN_SMALL_LETTER_M 0x006D #define T_HP_ROMAN8_LATIN_SMALL_LETTER_N 0x006E #define T_HP_ROMAN8_LATIN_SMALL_LETTER_O 0x006F #define T_HP_ROMAN8_LATIN_SMALL_LETTER_P 0x0070 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_Q 0x0071 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_R 0x0072 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_S 0x0073 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_T 0x0074 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_U 0x0075 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_V 0x0076 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_W 0x0077 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_X 0x0078 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_Y 0x0079 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_Z 0x007A #define T_HP_ROMAN8_LEFT_CURLY_BRACKET 0x007B #define T_HP_ROMAN8_VERTICAL_LINE 0x007C #define T_HP_ROMAN8_RIGHT_CURLY_BRACKET 0x007D #define T_HP_ROMAN8_TILDE 0x007E #define T_HP_ROMAN8_CTRL_DELETE 0x007F #define T_HP_ROMAN8_UNDEFINED_0080 0x0080 #define T_HP_ROMAN8_UNDEFINED_0081 0x0081 #define T_HP_ROMAN8_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_HP_ROMAN8_CTRL_NO_BREAK_HERE 0x0083 #define T_HP_ROMAN8_UNDEFINED_0084 0x0084 #define T_HP_ROMAN8_CTRL_NEXT_LINE 0x0085 #define T_HP_ROMAN8_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_HP_ROMAN8_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_HP_ROMAN8_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_HP_ROMAN8_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_HP_ROMAN8_CTRL_LINE_TABULATION_SET 0x008A #define T_HP_ROMAN8_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_HP_ROMAN8_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_HP_ROMAN8_CTRL_REVERSE_LINE_FEED 0x008D #define T_HP_ROMAN8_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_HP_ROMAN8_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_HP_ROMAN8_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_HP_ROMAN8_CTRL_PRIVATE_USE_ONE 0x0091 #define T_HP_ROMAN8_CTRL_PRIVATE_USE_TWO 0x0092 #define T_HP_ROMAN8_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_HP_ROMAN8_CTRL_CANCEL_CHARACTER 0x0094 #define T_HP_ROMAN8_CTRL_MESSAGE_WAITING 0x0095 #define T_HP_ROMAN8_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_HP_ROMAN8_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_HP_ROMAN8_CTRL_START_OF_STRING 0x0098 #define T_HP_ROMAN8_UNDEFINED_0099 0x0099 #define T_HP_ROMAN8_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_HP_ROMAN8_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_HP_ROMAN8_CTRL_STRING_TERMINATOR 0x009C #define T_HP_ROMAN8_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_HP_ROMAN8_CTRL_PRIVACY_MESSAGE 0x009E #define T_HP_ROMAN8_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_HP_ROMAN8_NO_BREAK_SPACE 0x00A0 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00A1 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00A2 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00A3 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00A4 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00A5 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00A6 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00A7 #define T_HP_ROMAN8_ACUTE_ACCENT 0x00A8 #define T_HP_ROMAN8_MODIFIER_LETTER_GRAVE_ACCENT 0x00A9 #define T_HP_ROMAN8_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x00AA #define T_HP_ROMAN8_DIAERESIS 0x00AB #define T_HP_ROMAN8_SMALL_TILDE 0x00AC #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00AD #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00AE #define T_HP_ROMAN8_LIRA_SIGN 0x00AF #define T_HP_ROMAN8_MACRON 0x00B0 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00B1 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00B2 #define T_HP_ROMAN8_DEGREE_SIGN 0x00B3 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00B4 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00B5 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00B6 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00B7 #define T_HP_ROMAN8_INVERTED_EXCLAMATION_MARK 0x00B8 #define T_HP_ROMAN8_INVERTED_QUESTION_MARK 0x00B9 #define T_HP_ROMAN8_CURRENCY_SIGN 0x00BA #define T_HP_ROMAN8_POUND_SIGN 0x00BB #define T_HP_ROMAN8_YEN_SIGN 0x00BC #define T_HP_ROMAN8_SECTION_SIGN 0x00BD #define T_HP_ROMAN8_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00BE #define T_HP_ROMAN8_CENT_SIGN 0x00BF #define T_HP_ROMAN8_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00C0 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00C1 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00C2 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00C3 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00C4 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00C5 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00C6 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00C7 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00C8 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00C9 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00CA #define T_HP_ROMAN8_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00CB #define T_HP_ROMAN8_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00CC #define T_HP_ROMAN8_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00CD #define T_HP_ROMAN8_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00CE #define T_HP_ROMAN8_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00CF #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00D0 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00D1 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D2 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_AE 0x00D3 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00D4 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00D5 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00D6 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_AE 0x00D7 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00D8 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00D9 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00DA #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DB #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00DC #define T_HP_ROMAN8_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00DD #define T_HP_ROMAN8_LATIN_SMALL_LETTER_SHARP_S 0x00DE #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00DF #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E0 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00E1 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E2 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_ETH 0x00E3 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_ETH 0x00E4 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00E5 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00E6 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00E7 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00E8 #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00E9 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00EA #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00EB #define T_HP_ROMAN8_LATIN_SMALL_LETTER_S_WITH_CARON 0x00EC #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00ED #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00EE #define T_HP_ROMAN8_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00EF #define T_HP_ROMAN8_LATIN_CAPITAL_LETTER_THORN 0x00F0 #define T_HP_ROMAN8_LATIN_SMALL_LETTER_THORN 0x00F1 #define T_HP_ROMAN8_MIDDLE_DOT 0x00F2 #define T_HP_ROMAN8_MICRO_SIGN 0x00F3 #define T_HP_ROMAN8_PILCROW_SIGN 0x00F4 #define T_HP_ROMAN8_VULGAR_FRACTION_THREE_QUARTERS 0x00F5 #define T_HP_ROMAN8_EM_DASH 0x00F6 #define T_HP_ROMAN8_VULGAR_FRACTION_ONE_QUARTER 0x00F7 #define T_HP_ROMAN8_VULGAR_FRACTION_ONE_HALF 0x00F8 #define T_HP_ROMAN8_FEMININE_ORDINAL_INDICATOR 0x00F9 #define T_HP_ROMAN8_MASCULINE_ORDINAL_INDICATOR 0x00FA #define T_HP_ROMAN8_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00FB #define T_HP_ROMAN8_BLACK_SQUARE 0x00FC #define T_HP_ROMAN8_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00FD #define T_HP_ROMAN8_PLUS_MINUS_SIGN 0x00FE #define T_HP_ROMAN8_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_HP_ROMAN8(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_ACUTE_ACCENT) \ EL(_MODIFIER_LETTER_GRAVE_ACCENT) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_DIAERESIS) \ EL(_SMALL_TILDE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LIRA_SIGN) \ EL(_MACRON) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_DEGREE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_INVERTED_QUESTION_MARK) \ EL(_CURRENCY_SIGN) \ EL(_POUND_SIGN) \ EL(_YEN_SIGN) \ EL(_SECTION_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_CENT_SIGN) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_MIDDLE_DOT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_EM_DASH) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_BLACK_SQUARE) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_PLUS_MINUS_SIGN) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-16 */ #define T_NLIST_HP_ROMAN8(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_ACUTE_ACCENT) \ EL(_MODIFIER_LETTER_GRAVE_ACCENT) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_DIAERESIS) \ EL(_SMALL_TILDE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LIRA_SIGN) \ EL(_MACRON) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_DEGREE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_INVERTED_QUESTION_MARK) \ EL(_CURRENCY_SIGN) \ EL(_POUND_SIGN) \ EL(_YEN_SIGN) \ EL(_SECTION_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_CENT_SIGN) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_MIDDLE_DOT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_EM_DASH) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_BLACK_SQUARE) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_PLUS_MINUS_SIGN) \ EL(_UNDEFINED_00FF) #endif /* TUTF_HP_ROMAN8_H */ �������������twin-0.9.0/include/Tutf/inprogress.h����������������������������������������������������������������0000664�0000000�0000000�00000000121�13775351206�0017415�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #define T_MAP_IBM851 IBM851 #define T_MAP_851 IBM851 #define T_MAP_CP851 IBM851 �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_1.h�����������������������������������������������������������������0000664�0000000�0000000�00000114222�13775351206�0016602�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_1_H #define TUTF_ISO8859_1_H #define T_ISO8859_1_CTRL_NULL 0x0000 #define T_ISO8859_1_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_1_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_1_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_1_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_1_CTRL_ENQUIRY 0x0005 #define T_ISO8859_1_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_1_CTRL_BELL 0x0007 #define T_ISO8859_1_CTRL_BACKSPACE 0x0008 #define T_ISO8859_1_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_1_CTRL_LINE_FEED 0x000A #define T_ISO8859_1_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_1_CTRL_FORM_FEED 0x000C #define T_ISO8859_1_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_1_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_1_CTRL_SHIFT_IN 0x000F #define T_ISO8859_1_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_1_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_1_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_1_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_1_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_1_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_1_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_1_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_1_CTRL_CANCEL 0x0018 #define T_ISO8859_1_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_1_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_1_CTRL_ESCAPE 0x001B #define T_ISO8859_1_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_1_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_1_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_1_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_1_SPACE 0x0020 #define T_ISO8859_1_EXCLAMATION_MARK 0x0021 #define T_ISO8859_1_QUOTATION_MARK 0x0022 #define T_ISO8859_1_NUMBER_SIGN 0x0023 #define T_ISO8859_1_DOLLAR_SIGN 0x0024 #define T_ISO8859_1_PERCENT_SIGN 0x0025 #define T_ISO8859_1_AMPERSAND 0x0026 #define T_ISO8859_1_APOSTROPHE 0x0027 #define T_ISO8859_1_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_1_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_1_ASTERISK 0x002A #define T_ISO8859_1_PLUS_SIGN 0x002B #define T_ISO8859_1_COMMA 0x002C #define T_ISO8859_1_HYPHEN_MINUS 0x002D #define T_ISO8859_1_FULL_STOP 0x002E #define T_ISO8859_1_SOLIDUS 0x002F #define T_ISO8859_1_DIGIT_ZERO 0x0030 #define T_ISO8859_1_DIGIT_ONE 0x0031 #define T_ISO8859_1_DIGIT_TWO 0x0032 #define T_ISO8859_1_DIGIT_THREE 0x0033 #define T_ISO8859_1_DIGIT_FOUR 0x0034 #define T_ISO8859_1_DIGIT_FIVE 0x0035 #define T_ISO8859_1_DIGIT_SIX 0x0036 #define T_ISO8859_1_DIGIT_SEVEN 0x0037 #define T_ISO8859_1_DIGIT_EIGHT 0x0038 #define T_ISO8859_1_DIGIT_NINE 0x0039 #define T_ISO8859_1_COLON 0x003A #define T_ISO8859_1_SEMICOLON 0x003B #define T_ISO8859_1_LESS_THAN_SIGN 0x003C #define T_ISO8859_1_EQUALS_SIGN 0x003D #define T_ISO8859_1_GREATER_THAN_SIGN 0x003E #define T_ISO8859_1_QUESTION_MARK 0x003F #define T_ISO8859_1_COMMERCIAL_AT 0x0040 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_1_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_1_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_1_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_1_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_1_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_1_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_1_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_1_REVERSE_SOLIDUS 0x005C #define T_ISO8859_1_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_1_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_1_LOW_LINE 0x005F #define T_ISO8859_1_GRAVE_ACCENT 0x0060 #define T_ISO8859_1_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_1_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_1_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_1_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_1_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_1_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_1_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_1_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_1_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_1_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_1_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_1_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_1_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_1_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_1_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_1_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_1_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_1_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_1_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_1_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_1_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_1_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_1_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_1_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_1_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_1_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_1_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_1_VERTICAL_LINE 0x007C #define T_ISO8859_1_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_1_TILDE 0x007E #define T_ISO8859_1_CTRL_DELETE 0x007F #define T_ISO8859_1_UNDEFINED_0080 0x0080 #define T_ISO8859_1_UNDEFINED_0081 0x0081 #define T_ISO8859_1_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_1_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_1_UNDEFINED_0084 0x0084 #define T_ISO8859_1_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_1_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_1_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_1_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_1_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_1_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_1_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_1_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_1_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_1_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_1_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_1_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_1_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_1_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_1_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_1_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_1_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_1_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_1_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_1_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_1_UNDEFINED_0099 0x0099 #define T_ISO8859_1_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_1_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_1_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_1_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_1_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_1_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_1_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_1_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_ISO8859_1_CENT_SIGN 0x00A2 #define T_ISO8859_1_POUND_SIGN 0x00A3 #define T_ISO8859_1_CURRENCY_SIGN 0x00A4 #define T_ISO8859_1_YEN_SIGN 0x00A5 #define T_ISO8859_1_BROKEN_BAR 0x00A6 #define T_ISO8859_1_SECTION_SIGN 0x00A7 #define T_ISO8859_1_DIAERESIS 0x00A8 #define T_ISO8859_1_COPYRIGHT_SIGN 0x00A9 #define T_ISO8859_1_FEMININE_ORDINAL_INDICATOR 0x00AA #define T_ISO8859_1_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_ISO8859_1_NOT_SIGN 0x00AC #define T_ISO8859_1_SOFT_HYPHEN 0x00AD #define T_ISO8859_1_REGISTERED_SIGN 0x00AE #define T_ISO8859_1_MACRON 0x00AF #define T_ISO8859_1_DEGREE_SIGN 0x00B0 #define T_ISO8859_1_PLUS_MINUS_SIGN 0x00B1 #define T_ISO8859_1_SUPERSCRIPT_TWO 0x00B2 #define T_ISO8859_1_SUPERSCRIPT_THREE 0x00B3 #define T_ISO8859_1_ACUTE_ACCENT 0x00B4 #define T_ISO8859_1_MICRO_SIGN 0x00B5 #define T_ISO8859_1_PILCROW_SIGN 0x00B6 #define T_ISO8859_1_MIDDLE_DOT 0x00B7 #define T_ISO8859_1_CEDILLA 0x00B8 #define T_ISO8859_1_SUPERSCRIPT_ONE 0x00B9 #define T_ISO8859_1_MASCULINE_ORDINAL_INDICATOR 0x00BA #define T_ISO8859_1_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_ISO8859_1_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_ISO8859_1_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_ISO8859_1_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_ISO8859_1_INVERTED_QUESTION_MARK 0x00BF #define T_ISO8859_1_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_ISO8859_1_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_ISO8859_1_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC #define T_ISO8859_1_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_ISO8859_1_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_ISO8859_1_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_ISO8859_1_LATIN_CAPITAL_LETTER_ETH 0x00D0 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_ISO8859_1_MULTIPLICATION_SIGN 0x00D7 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_ISO8859_1_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_ISO8859_1_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_ISO8859_1_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_ISO8859_1_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD #define T_ISO8859_1_LATIN_CAPITAL_LETTER_THORN 0x00DE #define T_ISO8859_1_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_ISO8859_1_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_ISO8859_1_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_ISO8859_1_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_ISO8859_1_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 #define T_ISO8859_1_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_ISO8859_1_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_ISO8859_1_LATIN_SMALL_LETTER_AE 0x00E6 #define T_ISO8859_1_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_ISO8859_1_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_ISO8859_1_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_ISO8859_1_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_ISO8859_1_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_ISO8859_1_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_ISO8859_1_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_ISO8859_1_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_ISO8859_1_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_ISO8859_1_LATIN_SMALL_LETTER_ETH 0x00F0 #define T_ISO8859_1_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 #define T_ISO8859_1_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 #define T_ISO8859_1_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_ISO8859_1_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_ISO8859_1_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_ISO8859_1_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_ISO8859_1_DIVISION_SIGN 0x00F7 #define T_ISO8859_1_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_ISO8859_1_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_ISO8859_1_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_ISO8859_1_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_ISO8859_1_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_ISO8859_1_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD #define T_ISO8859_1_LATIN_SMALL_LETTER_THORN 0x00FE #define T_ISO8859_1_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF /* list of all characters */ #define T_LIST_ISO8859_1(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_YEN_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_MACRON) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_ONE) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_INVERTED_QUESTION_MARK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_1(EL) #endif /* TUTF_ISO8859_1_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_10.h����������������������������������������������������������������0000664�0000000�0000000�00000126510�13775351206�0016665�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_10_H #define TUTF_ISO8859_10_H #define T_ISO8859_10_CTRL_NULL 0x0000 #define T_ISO8859_10_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_10_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_10_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_10_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_10_CTRL_ENQUIRY 0x0005 #define T_ISO8859_10_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_10_CTRL_BELL 0x0007 #define T_ISO8859_10_CTRL_BACKSPACE 0x0008 #define T_ISO8859_10_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_10_CTRL_LINE_FEED 0x000A #define T_ISO8859_10_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_10_CTRL_FORM_FEED 0x000C #define T_ISO8859_10_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_10_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_10_CTRL_SHIFT_IN 0x000F #define T_ISO8859_10_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_10_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_10_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_10_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_10_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_10_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_10_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_10_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_10_CTRL_CANCEL 0x0018 #define T_ISO8859_10_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_10_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_10_CTRL_ESCAPE 0x001B #define T_ISO8859_10_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_10_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_10_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_10_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_10_SPACE 0x0020 #define T_ISO8859_10_EXCLAMATION_MARK 0x0021 #define T_ISO8859_10_QUOTATION_MARK 0x0022 #define T_ISO8859_10_NUMBER_SIGN 0x0023 #define T_ISO8859_10_DOLLAR_SIGN 0x0024 #define T_ISO8859_10_PERCENT_SIGN 0x0025 #define T_ISO8859_10_AMPERSAND 0x0026 #define T_ISO8859_10_APOSTROPHE 0x0027 #define T_ISO8859_10_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_10_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_10_ASTERISK 0x002A #define T_ISO8859_10_PLUS_SIGN 0x002B #define T_ISO8859_10_COMMA 0x002C #define T_ISO8859_10_HYPHEN_MINUS 0x002D #define T_ISO8859_10_FULL_STOP 0x002E #define T_ISO8859_10_SOLIDUS 0x002F #define T_ISO8859_10_DIGIT_ZERO 0x0030 #define T_ISO8859_10_DIGIT_ONE 0x0031 #define T_ISO8859_10_DIGIT_TWO 0x0032 #define T_ISO8859_10_DIGIT_THREE 0x0033 #define T_ISO8859_10_DIGIT_FOUR 0x0034 #define T_ISO8859_10_DIGIT_FIVE 0x0035 #define T_ISO8859_10_DIGIT_SIX 0x0036 #define T_ISO8859_10_DIGIT_SEVEN 0x0037 #define T_ISO8859_10_DIGIT_EIGHT 0x0038 #define T_ISO8859_10_DIGIT_NINE 0x0039 #define T_ISO8859_10_COLON 0x003A #define T_ISO8859_10_SEMICOLON 0x003B #define T_ISO8859_10_LESS_THAN_SIGN 0x003C #define T_ISO8859_10_EQUALS_SIGN 0x003D #define T_ISO8859_10_GREATER_THAN_SIGN 0x003E #define T_ISO8859_10_QUESTION_MARK 0x003F #define T_ISO8859_10_COMMERCIAL_AT 0x0040 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_10_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_10_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_10_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_10_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_10_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_10_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_10_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_10_REVERSE_SOLIDUS 0x005C #define T_ISO8859_10_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_10_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_10_LOW_LINE 0x005F #define T_ISO8859_10_GRAVE_ACCENT 0x0060 #define T_ISO8859_10_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_10_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_10_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_10_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_10_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_10_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_10_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_10_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_10_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_10_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_10_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_10_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_10_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_10_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_10_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_10_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_10_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_10_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_10_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_10_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_10_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_10_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_10_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_10_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_10_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_10_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_10_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_10_VERTICAL_LINE 0x007C #define T_ISO8859_10_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_10_TILDE 0x007E #define T_ISO8859_10_CTRL_DELETE 0x007F #define T_ISO8859_10_UNDEFINED_0080 0x0080 #define T_ISO8859_10_UNDEFINED_0081 0x0081 #define T_ISO8859_10_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_10_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_10_UNDEFINED_0084 0x0084 #define T_ISO8859_10_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_10_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_10_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_10_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_10_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_10_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_10_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_10_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_10_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_10_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_10_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_10_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_10_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_10_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_10_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_10_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_10_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_10_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_10_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_10_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_10_UNDEFINED_0099 0x0099 #define T_ISO8859_10_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_10_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_10_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_10_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_10_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_10_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_10_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x00A1 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_E_WITH_MACRON 0x00A2 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x00A3 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_I_WITH_MACRON 0x00A4 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_I_WITH_TILDE 0x00A5 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0x00A6 #define T_ISO8859_10_SECTION_SIGN 0x00A7 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0x00A8 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x00A9 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00AA #define T_ISO8859_10_LATIN_CAPITAL_LETTER_T_WITH_STROKE 0x00AB #define T_ISO8859_10_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00AC #define T_ISO8859_10_SOFT_HYPHEN 0x00AD #define T_ISO8859_10_LATIN_CAPITAL_LETTER_U_WITH_MACRON 0x00AE #define T_ISO8859_10_LATIN_CAPITAL_LETTER_ENG 0x00AF #define T_ISO8859_10_DEGREE_SIGN 0x00B0 #define T_ISO8859_10_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x00B1 #define T_ISO8859_10_LATIN_SMALL_LETTER_E_WITH_MACRON 0x00B2 #define T_ISO8859_10_LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x00B3 #define T_ISO8859_10_LATIN_SMALL_LETTER_I_WITH_MACRON 0x00B4 #define T_ISO8859_10_LATIN_SMALL_LETTER_I_WITH_TILDE 0x00B5 #define T_ISO8859_10_LATIN_SMALL_LETTER_K_WITH_CEDILLA 0x00B6 #define T_ISO8859_10_MIDDLE_DOT 0x00B7 #define T_ISO8859_10_LATIN_SMALL_LETTER_L_WITH_CEDILLA 0x00B8 #define T_ISO8859_10_LATIN_SMALL_LETTER_D_WITH_STROKE 0x00B9 #define T_ISO8859_10_LATIN_SMALL_LETTER_S_WITH_CARON 0x00BA #define T_ISO8859_10_LATIN_SMALL_LETTER_T_WITH_STROKE 0x00BB #define T_ISO8859_10_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00BC #define T_ISO8859_10_HORIZONTAL_BAR 0x00BD #define T_ISO8859_10_LATIN_SMALL_LETTER_U_WITH_MACRON 0x00BE #define T_ISO8859_10_LATIN_SMALL_LETTER_ENG 0x00BF #define T_ISO8859_10_LATIN_CAPITAL_LETTER_A_WITH_MACRON 0x00C0 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0x00C7 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x00C8 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00CA #define T_ISO8859_10_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_ISO8859_10_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0x00CC #define T_ISO8859_10_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_ISO8859_10_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_ISO8859_10_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_ISO8859_10_LATIN_CAPITAL_LETTER_ETH 0x00D0 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0x00D1 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_O_WITH_MACRON 0x00D2 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_U_WITH_TILDE 0x00D7 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0x00D9 #define T_ISO8859_10_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_ISO8859_10_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_ISO8859_10_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_ISO8859_10_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD #define T_ISO8859_10_LATIN_CAPITAL_LETTER_THORN 0x00DE #define T_ISO8859_10_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_ISO8859_10_LATIN_SMALL_LETTER_A_WITH_MACRON 0x00E0 #define T_ISO8859_10_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_ISO8859_10_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_ISO8859_10_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 #define T_ISO8859_10_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_ISO8859_10_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_ISO8859_10_LATIN_SMALL_LETTER_AE 0x00E6 #define T_ISO8859_10_LATIN_SMALL_LETTER_I_WITH_OGONEK 0x00E7 #define T_ISO8859_10_LATIN_SMALL_LETTER_C_WITH_CARON 0x00E8 #define T_ISO8859_10_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_ISO8859_10_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00EA #define T_ISO8859_10_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_ISO8859_10_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0x00EC #define T_ISO8859_10_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_ISO8859_10_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_ISO8859_10_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_ISO8859_10_LATIN_SMALL_LETTER_ETH 0x00F0 #define T_ISO8859_10_LATIN_SMALL_LETTER_N_WITH_CEDILLA 0x00F1 #define T_ISO8859_10_LATIN_SMALL_LETTER_O_WITH_MACRON 0x00F2 #define T_ISO8859_10_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_ISO8859_10_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_ISO8859_10_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_ISO8859_10_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_ISO8859_10_LATIN_SMALL_LETTER_U_WITH_TILDE 0x00F7 #define T_ISO8859_10_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_ISO8859_10_LATIN_SMALL_LETTER_U_WITH_OGONEK 0x00F9 #define T_ISO8859_10_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_ISO8859_10_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_ISO8859_10_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_ISO8859_10_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD #define T_ISO8859_10_LATIN_SMALL_LETTER_THORN 0x00FE #define T_ISO8859_10_LATIN_SMALL_LETTER_KRA 0x00FF /* list of all characters */ #define T_LIST_ISO8859_10(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_SECTION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_SOFT_HYPHEN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_ENG) \ EL(_DEGREE_SIGN) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_I_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_MIDDLE_DOT) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_T_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_HORIZONTAL_BAR) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_ENG) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_U_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_KRA) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_10(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_ENG) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_I_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_T_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_HORIZONTAL_BAR) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_ENG) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_U_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_KRA) #endif /* TUTF_ISO8859_10_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_11.h����������������������������������������������������������������0000664�0000000�0000000�00000133176�13775351206�0016674�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_11_H #define TUTF_ISO8859_11_H #define T_ISO8859_11_CTRL_NULL 0x0000 #define T_ISO8859_11_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_11_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_11_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_11_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_11_CTRL_ENQUIRY 0x0005 #define T_ISO8859_11_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_11_CTRL_BELL 0x0007 #define T_ISO8859_11_CTRL_BACKSPACE 0x0008 #define T_ISO8859_11_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_11_CTRL_LINE_FEED 0x000A #define T_ISO8859_11_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_11_CTRL_FORM_FEED 0x000C #define T_ISO8859_11_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_11_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_11_CTRL_SHIFT_IN 0x000F #define T_ISO8859_11_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_11_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_11_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_11_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_11_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_11_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_11_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_11_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_11_CTRL_CANCEL 0x0018 #define T_ISO8859_11_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_11_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_11_CTRL_ESCAPE 0x001B #define T_ISO8859_11_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_11_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_11_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_11_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_11_SPACE 0x0020 #define T_ISO8859_11_EXCLAMATION_MARK 0x0021 #define T_ISO8859_11_QUOTATION_MARK 0x0022 #define T_ISO8859_11_NUMBER_SIGN 0x0023 #define T_ISO8859_11_DOLLAR_SIGN 0x0024 #define T_ISO8859_11_PERCENT_SIGN 0x0025 #define T_ISO8859_11_AMPERSAND 0x0026 #define T_ISO8859_11_APOSTROPHE 0x0027 #define T_ISO8859_11_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_11_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_11_ASTERISK 0x002A #define T_ISO8859_11_PLUS_SIGN 0x002B #define T_ISO8859_11_COMMA 0x002C #define T_ISO8859_11_HYPHEN_MINUS 0x002D #define T_ISO8859_11_FULL_STOP 0x002E #define T_ISO8859_11_SOLIDUS 0x002F #define T_ISO8859_11_DIGIT_ZERO 0x0030 #define T_ISO8859_11_DIGIT_ONE 0x0031 #define T_ISO8859_11_DIGIT_TWO 0x0032 #define T_ISO8859_11_DIGIT_THREE 0x0033 #define T_ISO8859_11_DIGIT_FOUR 0x0034 #define T_ISO8859_11_DIGIT_FIVE 0x0035 #define T_ISO8859_11_DIGIT_SIX 0x0036 #define T_ISO8859_11_DIGIT_SEVEN 0x0037 #define T_ISO8859_11_DIGIT_EIGHT 0x0038 #define T_ISO8859_11_DIGIT_NINE 0x0039 #define T_ISO8859_11_COLON 0x003A #define T_ISO8859_11_SEMICOLON 0x003B #define T_ISO8859_11_LESS_THAN_SIGN 0x003C #define T_ISO8859_11_EQUALS_SIGN 0x003D #define T_ISO8859_11_GREATER_THAN_SIGN 0x003E #define T_ISO8859_11_QUESTION_MARK 0x003F #define T_ISO8859_11_COMMERCIAL_AT 0x0040 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_11_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_11_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_11_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_11_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_11_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_11_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_11_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_11_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_11_REVERSE_SOLIDUS 0x005C #define T_ISO8859_11_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_11_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_11_LOW_LINE 0x005F #define T_ISO8859_11_GRAVE_ACCENT 0x0060 #define T_ISO8859_11_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_11_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_11_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_11_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_11_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_11_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_11_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_11_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_11_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_11_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_11_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_11_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_11_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_11_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_11_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_11_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_11_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_11_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_11_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_11_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_11_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_11_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_11_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_11_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_11_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_11_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_11_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_11_VERTICAL_LINE 0x007C #define T_ISO8859_11_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_11_TILDE 0x007E #define T_ISO8859_11_CTRL_DELETE 0x007F #define T_ISO8859_11_UNDEFINED_0080 0x0080 #define T_ISO8859_11_UNDEFINED_0081 0x0081 #define T_ISO8859_11_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_11_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_11_UNDEFINED_0084 0x0084 #define T_ISO8859_11_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_11_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_11_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_11_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_11_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_11_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_11_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_11_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_11_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_11_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_11_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_11_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_11_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_11_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_11_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_11_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_11_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_11_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_11_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_11_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_11_UNDEFINED_0099 0x0099 #define T_ISO8859_11_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_11_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_11_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_11_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_11_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_11_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_11_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_11_THAI_CHARACTER_KO_KAI 0x00A1 #define T_ISO8859_11_THAI_CHARACTER_KHO_KHAI 0x00A2 #define T_ISO8859_11_THAI_CHARACTER_KHO_KHUAT 0x00A3 #define T_ISO8859_11_THAI_CHARACTER_KHO_KHWAI 0x00A4 #define T_ISO8859_11_THAI_CHARACTER_KHO_KHON 0x00A5 #define T_ISO8859_11_THAI_CHARACTER_KHO_RAKHANG 0x00A6 #define T_ISO8859_11_THAI_CHARACTER_NGO_NGU 0x00A7 #define T_ISO8859_11_THAI_CHARACTER_CHO_CHAN 0x00A8 #define T_ISO8859_11_THAI_CHARACTER_CHO_CHING 0x00A9 #define T_ISO8859_11_THAI_CHARACTER_CHO_CHANG 0x00AA #define T_ISO8859_11_THAI_CHARACTER_SO_SO 0x00AB #define T_ISO8859_11_THAI_CHARACTER_CHO_CHOE 0x00AC #define T_ISO8859_11_THAI_CHARACTER_YO_YING 0x00AD #define T_ISO8859_11_THAI_CHARACTER_DO_CHADA 0x00AE #define T_ISO8859_11_THAI_CHARACTER_TO_PATAK 0x00AF #define T_ISO8859_11_THAI_CHARACTER_THO_THAN 0x00B0 #define T_ISO8859_11_THAI_CHARACTER_THO_NANGMONTHO 0x00B1 #define T_ISO8859_11_THAI_CHARACTER_THO_PHUTHAO 0x00B2 #define T_ISO8859_11_THAI_CHARACTER_NO_NEN 0x00B3 #define T_ISO8859_11_THAI_CHARACTER_DO_DEK 0x00B4 #define T_ISO8859_11_THAI_CHARACTER_TO_TAO 0x00B5 #define T_ISO8859_11_THAI_CHARACTER_THO_THUNG 0x00B6 #define T_ISO8859_11_THAI_CHARACTER_THO_THAHAN 0x00B7 #define T_ISO8859_11_THAI_CHARACTER_THO_THONG 0x00B8 #define T_ISO8859_11_THAI_CHARACTER_NO_NU 0x00B9 #define T_ISO8859_11_THAI_CHARACTER_BO_BAIMAI 0x00BA #define T_ISO8859_11_THAI_CHARACTER_PO_PLA 0x00BB #define T_ISO8859_11_THAI_CHARACTER_PHO_PHUNG 0x00BC #define T_ISO8859_11_THAI_CHARACTER_FO_FA 0x00BD #define T_ISO8859_11_THAI_CHARACTER_PHO_PHAN 0x00BE #define T_ISO8859_11_THAI_CHARACTER_FO_FAN 0x00BF #define T_ISO8859_11_THAI_CHARACTER_PHO_SAMPHAO 0x00C0 #define T_ISO8859_11_THAI_CHARACTER_MO_MA 0x00C1 #define T_ISO8859_11_THAI_CHARACTER_YO_YAK 0x00C2 #define T_ISO8859_11_THAI_CHARACTER_RO_RUA 0x00C3 #define T_ISO8859_11_THAI_CHARACTER_RU 0x00C4 #define T_ISO8859_11_THAI_CHARACTER_LO_LING 0x00C5 #define T_ISO8859_11_THAI_CHARACTER_LU 0x00C6 #define T_ISO8859_11_THAI_CHARACTER_WO_WAEN 0x00C7 #define T_ISO8859_11_THAI_CHARACTER_SO_SALA 0x00C8 #define T_ISO8859_11_THAI_CHARACTER_SO_RUSI 0x00C9 #define T_ISO8859_11_THAI_CHARACTER_SO_SUA 0x00CA #define T_ISO8859_11_THAI_CHARACTER_HO_HIP 0x00CB #define T_ISO8859_11_THAI_CHARACTER_LO_CHULA 0x00CC #define T_ISO8859_11_THAI_CHARACTER_O_ANG 0x00CD #define T_ISO8859_11_THAI_CHARACTER_HO_NOKHUK 0x00CE #define T_ISO8859_11_THAI_CHARACTER_PAIYANNOI 0x00CF #define T_ISO8859_11_THAI_CHARACTER_SARA_A 0x00D0 #define T_ISO8859_11_THAI_CHARACTER_MAI_HAN_AKAT 0x00D1 #define T_ISO8859_11_THAI_CHARACTER_SARA_AA 0x00D2 #define T_ISO8859_11_THAI_CHARACTER_SARA_AM 0x00D3 #define T_ISO8859_11_THAI_CHARACTER_SARA_I 0x00D4 #define T_ISO8859_11_THAI_CHARACTER_SARA_II 0x00D5 #define T_ISO8859_11_THAI_CHARACTER_SARA_UE 0x00D6 #define T_ISO8859_11_THAI_CHARACTER_SARA_UEE 0x00D7 #define T_ISO8859_11_THAI_CHARACTER_SARA_U 0x00D8 #define T_ISO8859_11_THAI_CHARACTER_SARA_UU 0x00D9 #define T_ISO8859_11_THAI_CHARACTER_PHINTHU 0x00DA #define T_ISO8859_11_UNDEFINED_00DB 0x00DB #define T_ISO8859_11_UNDEFINED_00DC 0x00DC #define T_ISO8859_11_UNDEFINED_00DD 0x00DD #define T_ISO8859_11_UNDEFINED_00DE 0x00DE #define T_ISO8859_11_THAI_CURRENCY_SYMBOL_BAHT 0x00DF #define T_ISO8859_11_THAI_CHARACTER_SARA_E 0x00E0 #define T_ISO8859_11_THAI_CHARACTER_SARA_AE 0x00E1 #define T_ISO8859_11_THAI_CHARACTER_SARA_O 0x00E2 #define T_ISO8859_11_THAI_CHARACTER_SARA_AI_MAIMUAN 0x00E3 #define T_ISO8859_11_THAI_CHARACTER_SARA_AI_MAIMALAI 0x00E4 #define T_ISO8859_11_THAI_CHARACTER_LAKKHANGYAO 0x00E5 #define T_ISO8859_11_THAI_CHARACTER_MAIYAMOK 0x00E6 #define T_ISO8859_11_THAI_CHARACTER_MAITAIKHU 0x00E7 #define T_ISO8859_11_THAI_CHARACTER_MAI_EK 0x00E8 #define T_ISO8859_11_THAI_CHARACTER_MAI_THO 0x00E9 #define T_ISO8859_11_THAI_CHARACTER_MAI_TRI 0x00EA #define T_ISO8859_11_THAI_CHARACTER_MAI_CHATTAWA 0x00EB #define T_ISO8859_11_THAI_CHARACTER_THANTHAKHAT 0x00EC #define T_ISO8859_11_THAI_CHARACTER_NIKHAHIT 0x00ED #define T_ISO8859_11_THAI_CHARACTER_YAMAKKAN 0x00EE #define T_ISO8859_11_THAI_CHARACTER_FONGMAN 0x00EF #define T_ISO8859_11_THAI_DIGIT_ZERO 0x00F0 #define T_ISO8859_11_THAI_DIGIT_ONE 0x00F1 #define T_ISO8859_11_THAI_DIGIT_TWO 0x00F2 #define T_ISO8859_11_THAI_DIGIT_THREE 0x00F3 #define T_ISO8859_11_THAI_DIGIT_FOUR 0x00F4 #define T_ISO8859_11_THAI_DIGIT_FIVE 0x00F5 #define T_ISO8859_11_THAI_DIGIT_SIX 0x00F6 #define T_ISO8859_11_THAI_DIGIT_SEVEN 0x00F7 #define T_ISO8859_11_THAI_DIGIT_EIGHT 0x00F8 #define T_ISO8859_11_THAI_DIGIT_NINE 0x00F9 #define T_ISO8859_11_THAI_CHARACTER_ANGKHANKHU 0x00FA #define T_ISO8859_11_THAI_CHARACTER_KHOMUT 0x00FB #define T_ISO8859_11_UNDEFINED_00FC 0x00FC #define T_ISO8859_11_UNDEFINED_00FD 0x00FD #define T_ISO8859_11_UNDEFINED_00FE 0x00FE #define T_ISO8859_11_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_ISO8859_11(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_THAI_CHARACTER_KO_KAI) \ EL(_THAI_CHARACTER_KHO_KHAI) \ EL(_THAI_CHARACTER_KHO_KHUAT) \ EL(_THAI_CHARACTER_KHO_KHWAI) \ EL(_THAI_CHARACTER_KHO_KHON) \ EL(_THAI_CHARACTER_KHO_RAKHANG) \ EL(_THAI_CHARACTER_NGO_NGU) \ EL(_THAI_CHARACTER_CHO_CHAN) \ EL(_THAI_CHARACTER_CHO_CHING) \ EL(_THAI_CHARACTER_CHO_CHANG) \ EL(_THAI_CHARACTER_SO_SO) \ EL(_THAI_CHARACTER_CHO_CHOE) \ EL(_THAI_CHARACTER_YO_YING) \ EL(_THAI_CHARACTER_DO_CHADA) \ EL(_THAI_CHARACTER_TO_PATAK) \ EL(_THAI_CHARACTER_THO_THAN) \ EL(_THAI_CHARACTER_THO_NANGMONTHO) \ EL(_THAI_CHARACTER_THO_PHUTHAO) \ EL(_THAI_CHARACTER_NO_NEN) \ EL(_THAI_CHARACTER_DO_DEK) \ EL(_THAI_CHARACTER_TO_TAO) \ EL(_THAI_CHARACTER_THO_THUNG) \ EL(_THAI_CHARACTER_THO_THAHAN) \ EL(_THAI_CHARACTER_THO_THONG) \ EL(_THAI_CHARACTER_NO_NU) \ EL(_THAI_CHARACTER_BO_BAIMAI) \ EL(_THAI_CHARACTER_PO_PLA) \ EL(_THAI_CHARACTER_PHO_PHUNG) \ EL(_THAI_CHARACTER_FO_FA) \ EL(_THAI_CHARACTER_PHO_PHAN) \ EL(_THAI_CHARACTER_FO_FAN) \ EL(_THAI_CHARACTER_PHO_SAMPHAO) \ EL(_THAI_CHARACTER_MO_MA) \ EL(_THAI_CHARACTER_YO_YAK) \ EL(_THAI_CHARACTER_RO_RUA) \ EL(_THAI_CHARACTER_RU) \ EL(_THAI_CHARACTER_LO_LING) \ EL(_THAI_CHARACTER_LU) \ EL(_THAI_CHARACTER_WO_WAEN) \ EL(_THAI_CHARACTER_SO_SALA) \ EL(_THAI_CHARACTER_SO_RUSI) \ EL(_THAI_CHARACTER_SO_SUA) \ EL(_THAI_CHARACTER_HO_HIP) \ EL(_THAI_CHARACTER_LO_CHULA) \ EL(_THAI_CHARACTER_O_ANG) \ EL(_THAI_CHARACTER_HO_NOKHUK) \ EL(_THAI_CHARACTER_PAIYANNOI) \ EL(_THAI_CHARACTER_SARA_A) \ EL(_THAI_CHARACTER_MAI_HAN_AKAT) \ EL(_THAI_CHARACTER_SARA_AA) \ EL(_THAI_CHARACTER_SARA_AM) \ EL(_THAI_CHARACTER_SARA_I) \ EL(_THAI_CHARACTER_SARA_II) \ EL(_THAI_CHARACTER_SARA_UE) \ EL(_THAI_CHARACTER_SARA_UEE) \ EL(_THAI_CHARACTER_SARA_U) \ EL(_THAI_CHARACTER_SARA_UU) \ EL(_THAI_CHARACTER_PHINTHU) \ EL(_THAI_CURRENCY_SYMBOL_BAHT) \ EL(_THAI_CHARACTER_SARA_E) \ EL(_THAI_CHARACTER_SARA_AE) \ EL(_THAI_CHARACTER_SARA_O) \ EL(_THAI_CHARACTER_SARA_AI_MAIMUAN) \ EL(_THAI_CHARACTER_SARA_AI_MAIMALAI) \ EL(_THAI_CHARACTER_LAKKHANGYAO) \ EL(_THAI_CHARACTER_MAIYAMOK) \ EL(_THAI_CHARACTER_MAITAIKHU) \ EL(_THAI_CHARACTER_MAI_EK) \ EL(_THAI_CHARACTER_MAI_THO) \ EL(_THAI_CHARACTER_MAI_TRI) \ EL(_THAI_CHARACTER_MAI_CHATTAWA) \ EL(_THAI_CHARACTER_THANTHAKHAT) \ EL(_THAI_CHARACTER_NIKHAHIT) \ EL(_THAI_CHARACTER_YAMAKKAN) \ EL(_THAI_CHARACTER_FONGMAN) \ EL(_THAI_DIGIT_ZERO) \ EL(_THAI_DIGIT_ONE) \ EL(_THAI_DIGIT_TWO) \ EL(_THAI_DIGIT_THREE) \ EL(_THAI_DIGIT_FOUR) \ EL(_THAI_DIGIT_FIVE) \ EL(_THAI_DIGIT_SIX) \ EL(_THAI_DIGIT_SEVEN) \ EL(_THAI_DIGIT_EIGHT) \ EL(_THAI_DIGIT_NINE) \ EL(_THAI_CHARACTER_ANGKHANKHU) \ EL(_THAI_CHARACTER_KHOMUT) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_11(EL) \ EL(_THAI_CHARACTER_KO_KAI) \ EL(_THAI_CHARACTER_KHO_KHAI) \ EL(_THAI_CHARACTER_KHO_KHUAT) \ EL(_THAI_CHARACTER_KHO_KHWAI) \ EL(_THAI_CHARACTER_KHO_KHON) \ EL(_THAI_CHARACTER_KHO_RAKHANG) \ EL(_THAI_CHARACTER_NGO_NGU) \ EL(_THAI_CHARACTER_CHO_CHAN) \ EL(_THAI_CHARACTER_CHO_CHING) \ EL(_THAI_CHARACTER_CHO_CHANG) \ EL(_THAI_CHARACTER_SO_SO) \ EL(_THAI_CHARACTER_CHO_CHOE) \ EL(_THAI_CHARACTER_YO_YING) \ EL(_THAI_CHARACTER_DO_CHADA) \ EL(_THAI_CHARACTER_TO_PATAK) \ EL(_THAI_CHARACTER_THO_THAN) \ EL(_THAI_CHARACTER_THO_NANGMONTHO) \ EL(_THAI_CHARACTER_THO_PHUTHAO) \ EL(_THAI_CHARACTER_NO_NEN) \ EL(_THAI_CHARACTER_DO_DEK) \ EL(_THAI_CHARACTER_TO_TAO) \ EL(_THAI_CHARACTER_THO_THUNG) \ EL(_THAI_CHARACTER_THO_THAHAN) \ EL(_THAI_CHARACTER_THO_THONG) \ EL(_THAI_CHARACTER_NO_NU) \ EL(_THAI_CHARACTER_BO_BAIMAI) \ EL(_THAI_CHARACTER_PO_PLA) \ EL(_THAI_CHARACTER_PHO_PHUNG) \ EL(_THAI_CHARACTER_FO_FA) \ EL(_THAI_CHARACTER_PHO_PHAN) \ EL(_THAI_CHARACTER_FO_FAN) \ EL(_THAI_CHARACTER_PHO_SAMPHAO) \ EL(_THAI_CHARACTER_MO_MA) \ EL(_THAI_CHARACTER_YO_YAK) \ EL(_THAI_CHARACTER_RO_RUA) \ EL(_THAI_CHARACTER_RU) \ EL(_THAI_CHARACTER_LO_LING) \ EL(_THAI_CHARACTER_LU) \ EL(_THAI_CHARACTER_WO_WAEN) \ EL(_THAI_CHARACTER_SO_SALA) \ EL(_THAI_CHARACTER_SO_RUSI) \ EL(_THAI_CHARACTER_SO_SUA) \ EL(_THAI_CHARACTER_HO_HIP) \ EL(_THAI_CHARACTER_LO_CHULA) \ EL(_THAI_CHARACTER_O_ANG) \ EL(_THAI_CHARACTER_HO_NOKHUK) \ EL(_THAI_CHARACTER_PAIYANNOI) \ EL(_THAI_CHARACTER_SARA_A) \ EL(_THAI_CHARACTER_MAI_HAN_AKAT) \ EL(_THAI_CHARACTER_SARA_AA) \ EL(_THAI_CHARACTER_SARA_AM) \ EL(_THAI_CHARACTER_SARA_I) \ EL(_THAI_CHARACTER_SARA_II) \ EL(_THAI_CHARACTER_SARA_UE) \ EL(_THAI_CHARACTER_SARA_UEE) \ EL(_THAI_CHARACTER_SARA_U) \ EL(_THAI_CHARACTER_SARA_UU) \ EL(_THAI_CHARACTER_PHINTHU) \ EL(_THAI_CURRENCY_SYMBOL_BAHT) \ EL(_THAI_CHARACTER_SARA_E) \ EL(_THAI_CHARACTER_SARA_AE) \ EL(_THAI_CHARACTER_SARA_O) \ EL(_THAI_CHARACTER_SARA_AI_MAIMUAN) \ EL(_THAI_CHARACTER_SARA_AI_MAIMALAI) \ EL(_THAI_CHARACTER_LAKKHANGYAO) \ EL(_THAI_CHARACTER_MAIYAMOK) \ EL(_THAI_CHARACTER_MAITAIKHU) \ EL(_THAI_CHARACTER_MAI_EK) \ EL(_THAI_CHARACTER_MAI_THO) \ EL(_THAI_CHARACTER_MAI_TRI) \ EL(_THAI_CHARACTER_MAI_CHATTAWA) \ EL(_THAI_CHARACTER_THANTHAKHAT) \ EL(_THAI_CHARACTER_NIKHAHIT) \ EL(_THAI_CHARACTER_YAMAKKAN) \ EL(_THAI_CHARACTER_FONGMAN) \ EL(_THAI_DIGIT_ZERO) \ EL(_THAI_DIGIT_ONE) \ EL(_THAI_DIGIT_TWO) \ EL(_THAI_DIGIT_THREE) \ EL(_THAI_DIGIT_FOUR) \ EL(_THAI_DIGIT_FIVE) \ EL(_THAI_DIGIT_SIX) \ EL(_THAI_DIGIT_SEVEN) \ EL(_THAI_DIGIT_EIGHT) \ EL(_THAI_DIGIT_NINE) \ EL(_THAI_CHARACTER_ANGKHANKHU) \ EL(_THAI_CHARACTER_KHOMUT) #endif /* TUTF_ISO8859_11_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_13.h����������������������������������������������������������������0000664�0000000�0000000�00000130066�13775351206�0016671�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_13_H #define TUTF_ISO8859_13_H #define T_ISO8859_13_CTRL_NULL 0x0000 #define T_ISO8859_13_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_13_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_13_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_13_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_13_CTRL_ENQUIRY 0x0005 #define T_ISO8859_13_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_13_CTRL_BELL 0x0007 #define T_ISO8859_13_CTRL_BACKSPACE 0x0008 #define T_ISO8859_13_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_13_CTRL_LINE_FEED 0x000A #define T_ISO8859_13_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_13_CTRL_FORM_FEED 0x000C #define T_ISO8859_13_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_13_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_13_CTRL_SHIFT_IN 0x000F #define T_ISO8859_13_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_13_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_13_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_13_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_13_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_13_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_13_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_13_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_13_CTRL_CANCEL 0x0018 #define T_ISO8859_13_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_13_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_13_CTRL_ESCAPE 0x001B #define T_ISO8859_13_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_13_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_13_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_13_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_13_SPACE 0x0020 #define T_ISO8859_13_EXCLAMATION_MARK 0x0021 #define T_ISO8859_13_QUOTATION_MARK 0x0022 #define T_ISO8859_13_NUMBER_SIGN 0x0023 #define T_ISO8859_13_DOLLAR_SIGN 0x0024 #define T_ISO8859_13_PERCENT_SIGN 0x0025 #define T_ISO8859_13_AMPERSAND 0x0026 #define T_ISO8859_13_APOSTROPHE 0x0027 #define T_ISO8859_13_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_13_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_13_ASTERISK 0x002A #define T_ISO8859_13_PLUS_SIGN 0x002B #define T_ISO8859_13_COMMA 0x002C #define T_ISO8859_13_HYPHEN_MINUS 0x002D #define T_ISO8859_13_FULL_STOP 0x002E #define T_ISO8859_13_SOLIDUS 0x002F #define T_ISO8859_13_DIGIT_ZERO 0x0030 #define T_ISO8859_13_DIGIT_ONE 0x0031 #define T_ISO8859_13_DIGIT_TWO 0x0032 #define T_ISO8859_13_DIGIT_THREE 0x0033 #define T_ISO8859_13_DIGIT_FOUR 0x0034 #define T_ISO8859_13_DIGIT_FIVE 0x0035 #define T_ISO8859_13_DIGIT_SIX 0x0036 #define T_ISO8859_13_DIGIT_SEVEN 0x0037 #define T_ISO8859_13_DIGIT_EIGHT 0x0038 #define T_ISO8859_13_DIGIT_NINE 0x0039 #define T_ISO8859_13_COLON 0x003A #define T_ISO8859_13_SEMICOLON 0x003B #define T_ISO8859_13_LESS_THAN_SIGN 0x003C #define T_ISO8859_13_EQUALS_SIGN 0x003D #define T_ISO8859_13_GREATER_THAN_SIGN 0x003E #define T_ISO8859_13_QUESTION_MARK 0x003F #define T_ISO8859_13_COMMERCIAL_AT 0x0040 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_13_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_13_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_13_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_13_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_13_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_13_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_13_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_13_REVERSE_SOLIDUS 0x005C #define T_ISO8859_13_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_13_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_13_LOW_LINE 0x005F #define T_ISO8859_13_GRAVE_ACCENT 0x0060 #define T_ISO8859_13_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_13_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_13_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_13_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_13_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_13_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_13_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_13_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_13_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_13_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_13_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_13_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_13_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_13_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_13_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_13_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_13_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_13_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_13_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_13_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_13_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_13_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_13_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_13_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_13_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_13_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_13_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_13_VERTICAL_LINE 0x007C #define T_ISO8859_13_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_13_TILDE 0x007E #define T_ISO8859_13_CTRL_DELETE 0x007F #define T_ISO8859_13_UNDEFINED_0080 0x0080 #define T_ISO8859_13_UNDEFINED_0081 0x0081 #define T_ISO8859_13_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_13_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_13_UNDEFINED_0084 0x0084 #define T_ISO8859_13_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_13_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_13_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_13_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_13_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_13_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_13_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_13_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_13_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_13_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_13_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_13_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_13_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_13_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_13_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_13_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_13_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_13_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_13_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_13_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_13_UNDEFINED_0099 0x0099 #define T_ISO8859_13_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_13_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_13_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_13_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_13_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_13_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_13_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_13_RIGHT_DOUBLE_QUOTATION_MARK 0x00A1 #define T_ISO8859_13_CENT_SIGN 0x00A2 #define T_ISO8859_13_POUND_SIGN 0x00A3 #define T_ISO8859_13_CURRENCY_SIGN 0x00A4 #define T_ISO8859_13_DOUBLE_LOW_9_QUOTATION_MARK 0x00A5 #define T_ISO8859_13_BROKEN_BAR 0x00A6 #define T_ISO8859_13_SECTION_SIGN 0x00A7 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00A8 #define T_ISO8859_13_COPYRIGHT_SIGN 0x00A9 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA 0x00AA #define T_ISO8859_13_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_ISO8859_13_NOT_SIGN 0x00AC #define T_ISO8859_13_SOFT_HYPHEN 0x00AD #define T_ISO8859_13_REGISTERED_SIGN 0x00AE #define T_ISO8859_13_LATIN_CAPITAL_LETTER_AE 0x00AF #define T_ISO8859_13_DEGREE_SIGN 0x00B0 #define T_ISO8859_13_PLUS_MINUS_SIGN 0x00B1 #define T_ISO8859_13_SUPERSCRIPT_TWO 0x00B2 #define T_ISO8859_13_SUPERSCRIPT_THREE 0x00B3 #define T_ISO8859_13_LEFT_DOUBLE_QUOTATION_MARK 0x00B4 #define T_ISO8859_13_MICRO_SIGN 0x00B5 #define T_ISO8859_13_PILCROW_SIGN 0x00B6 #define T_ISO8859_13_MIDDLE_DOT 0x00B7 #define T_ISO8859_13_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00B8 #define T_ISO8859_13_SUPERSCRIPT_ONE 0x00B9 #define T_ISO8859_13_LATIN_SMALL_LETTER_R_WITH_CEDILLA 0x00BA #define T_ISO8859_13_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_ISO8859_13_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_ISO8859_13_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_ISO8859_13_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_ISO8859_13_LATIN_SMALL_LETTER_AE 0x00BF #define T_ISO8859_13_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x00C0 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0x00C1 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_A_WITH_MACRON 0x00C2 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x00C3 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00C6 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_E_WITH_MACRON 0x00C7 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x00C8 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x00CA #define T_ISO8859_13_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0x00CB #define T_ISO8859_13_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x00CC #define T_ISO8859_13_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0x00CD #define T_ISO8859_13_LATIN_CAPITAL_LETTER_I_WITH_MACRON 0x00CE #define T_ISO8859_13_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0x00CF #define T_ISO8859_13_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00D0 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x00D1 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0x00D2 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_O_WITH_MACRON 0x00D4 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_ISO8859_13_MULTIPLICATION_SIGN 0x00D7 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0x00D8 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x00D9 #define T_ISO8859_13_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x00DA #define T_ISO8859_13_LATIN_CAPITAL_LETTER_U_WITH_MACRON 0x00DB #define T_ISO8859_13_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_ISO8859_13_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x00DD #define T_ISO8859_13_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00DE #define T_ISO8859_13_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_ISO8859_13_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x00E0 #define T_ISO8859_13_LATIN_SMALL_LETTER_I_WITH_OGONEK 0x00E1 #define T_ISO8859_13_LATIN_SMALL_LETTER_A_WITH_MACRON 0x00E2 #define T_ISO8859_13_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x00E3 #define T_ISO8859_13_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_ISO8859_13_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_ISO8859_13_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00E6 #define T_ISO8859_13_LATIN_SMALL_LETTER_E_WITH_MACRON 0x00E7 #define T_ISO8859_13_LATIN_SMALL_LETTER_C_WITH_CARON 0x00E8 #define T_ISO8859_13_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_ISO8859_13_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x00EA #define T_ISO8859_13_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0x00EB #define T_ISO8859_13_LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x00EC #define T_ISO8859_13_LATIN_SMALL_LETTER_K_WITH_CEDILLA 0x00ED #define T_ISO8859_13_LATIN_SMALL_LETTER_I_WITH_MACRON 0x00EE #define T_ISO8859_13_LATIN_SMALL_LETTER_L_WITH_CEDILLA 0x00EF #define T_ISO8859_13_LATIN_SMALL_LETTER_S_WITH_CARON 0x00F0 #define T_ISO8859_13_LATIN_SMALL_LETTER_N_WITH_ACUTE 0x00F1 #define T_ISO8859_13_LATIN_SMALL_LETTER_N_WITH_CEDILLA 0x00F2 #define T_ISO8859_13_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_ISO8859_13_LATIN_SMALL_LETTER_O_WITH_MACRON 0x00F4 #define T_ISO8859_13_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_ISO8859_13_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_ISO8859_13_DIVISION_SIGN 0x00F7 #define T_ISO8859_13_LATIN_SMALL_LETTER_U_WITH_OGONEK 0x00F8 #define T_ISO8859_13_LATIN_SMALL_LETTER_L_WITH_STROKE 0x00F9 #define T_ISO8859_13_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x00FA #define T_ISO8859_13_LATIN_SMALL_LETTER_U_WITH_MACRON 0x00FB #define T_ISO8859_13_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_ISO8859_13_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x00FD #define T_ISO8859_13_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00FE #define T_ISO8859_13_RIGHT_SINGLE_QUOTATION_MARK 0x00FF /* list of all characters */ #define T_LIST_ISO8859_13(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_COPYRIGHT_SIGN) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_SUPERSCRIPT_ONE) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_13(EL) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) #endif /* TUTF_ISO8859_13_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_14.h����������������������������������������������������������������0000664�0000000�0000000�00000123760�13775351206�0016675�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_14_H #define TUTF_ISO8859_14_H #define T_ISO8859_14_CTRL_NULL 0x0000 #define T_ISO8859_14_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_14_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_14_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_14_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_14_CTRL_ENQUIRY 0x0005 #define T_ISO8859_14_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_14_CTRL_BELL 0x0007 #define T_ISO8859_14_CTRL_BACKSPACE 0x0008 #define T_ISO8859_14_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_14_CTRL_LINE_FEED 0x000A #define T_ISO8859_14_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_14_CTRL_FORM_FEED 0x000C #define T_ISO8859_14_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_14_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_14_CTRL_SHIFT_IN 0x000F #define T_ISO8859_14_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_14_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_14_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_14_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_14_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_14_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_14_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_14_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_14_CTRL_CANCEL 0x0018 #define T_ISO8859_14_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_14_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_14_CTRL_ESCAPE 0x001B #define T_ISO8859_14_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_14_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_14_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_14_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_14_SPACE 0x0020 #define T_ISO8859_14_EXCLAMATION_MARK 0x0021 #define T_ISO8859_14_QUOTATION_MARK 0x0022 #define T_ISO8859_14_NUMBER_SIGN 0x0023 #define T_ISO8859_14_DOLLAR_SIGN 0x0024 #define T_ISO8859_14_PERCENT_SIGN 0x0025 #define T_ISO8859_14_AMPERSAND 0x0026 #define T_ISO8859_14_APOSTROPHE 0x0027 #define T_ISO8859_14_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_14_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_14_ASTERISK 0x002A #define T_ISO8859_14_PLUS_SIGN 0x002B #define T_ISO8859_14_COMMA 0x002C #define T_ISO8859_14_HYPHEN_MINUS 0x002D #define T_ISO8859_14_FULL_STOP 0x002E #define T_ISO8859_14_SOLIDUS 0x002F #define T_ISO8859_14_DIGIT_ZERO 0x0030 #define T_ISO8859_14_DIGIT_ONE 0x0031 #define T_ISO8859_14_DIGIT_TWO 0x0032 #define T_ISO8859_14_DIGIT_THREE 0x0033 #define T_ISO8859_14_DIGIT_FOUR 0x0034 #define T_ISO8859_14_DIGIT_FIVE 0x0035 #define T_ISO8859_14_DIGIT_SIX 0x0036 #define T_ISO8859_14_DIGIT_SEVEN 0x0037 #define T_ISO8859_14_DIGIT_EIGHT 0x0038 #define T_ISO8859_14_DIGIT_NINE 0x0039 #define T_ISO8859_14_COLON 0x003A #define T_ISO8859_14_SEMICOLON 0x003B #define T_ISO8859_14_LESS_THAN_SIGN 0x003C #define T_ISO8859_14_EQUALS_SIGN 0x003D #define T_ISO8859_14_GREATER_THAN_SIGN 0x003E #define T_ISO8859_14_QUESTION_MARK 0x003F #define T_ISO8859_14_COMMERCIAL_AT 0x0040 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_14_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_14_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_14_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_14_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_14_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_14_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_14_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_14_REVERSE_SOLIDUS 0x005C #define T_ISO8859_14_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_14_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_14_LOW_LINE 0x005F #define T_ISO8859_14_GRAVE_ACCENT 0x0060 #define T_ISO8859_14_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_14_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_14_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_14_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_14_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_14_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_14_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_14_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_14_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_14_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_14_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_14_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_14_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_14_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_14_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_14_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_14_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_14_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_14_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_14_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_14_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_14_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_14_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_14_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_14_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_14_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_14_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_14_VERTICAL_LINE 0x007C #define T_ISO8859_14_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_14_TILDE 0x007E #define T_ISO8859_14_CTRL_DELETE 0x007F #define T_ISO8859_14_UNDEFINED_0080 0x0080 #define T_ISO8859_14_UNDEFINED_0081 0x0081 #define T_ISO8859_14_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_14_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_14_UNDEFINED_0084 0x0084 #define T_ISO8859_14_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_14_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_14_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_14_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_14_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_14_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_14_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_14_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_14_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_14_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_14_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_14_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_14_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_14_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_14_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_14_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_14_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_14_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_14_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_14_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_14_UNDEFINED_0099 0x0099 #define T_ISO8859_14_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_14_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_14_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_14_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_14_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_14_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_14_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_B_WITH_DOT_ABOVE 0x00A1 #define T_ISO8859_14_LATIN_SMALL_LETTER_B_WITH_DOT_ABOVE 0x00A2 #define T_ISO8859_14_POUND_SIGN 0x00A3 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE 0x00A4 #define T_ISO8859_14_LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE 0x00A5 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_D_WITH_DOT_ABOVE 0x00A6 #define T_ISO8859_14_SECTION_SIGN 0x00A7 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_W_WITH_GRAVE 0x00A8 #define T_ISO8859_14_COPYRIGHT_SIGN 0x00A9 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_W_WITH_ACUTE 0x00AA #define T_ISO8859_14_LATIN_SMALL_LETTER_D_WITH_DOT_ABOVE 0x00AB #define T_ISO8859_14_LATIN_CAPITAL_LETTER_Y_WITH_GRAVE 0x00AC #define T_ISO8859_14_SOFT_HYPHEN 0x00AD #define T_ISO8859_14_REGISTERED_SIGN 0x00AE #define T_ISO8859_14_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00AF #define T_ISO8859_14_LATIN_CAPITAL_LETTER_F_WITH_DOT_ABOVE 0x00B0 #define T_ISO8859_14_LATIN_SMALL_LETTER_F_WITH_DOT_ABOVE 0x00B1 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE 0x00B2 #define T_ISO8859_14_LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE 0x00B3 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_M_WITH_DOT_ABOVE 0x00B4 #define T_ISO8859_14_LATIN_SMALL_LETTER_M_WITH_DOT_ABOVE 0x00B5 #define T_ISO8859_14_PILCROW_SIGN 0x00B6 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_P_WITH_DOT_ABOVE 0x00B7 #define T_ISO8859_14_LATIN_SMALL_LETTER_W_WITH_GRAVE 0x00B8 #define T_ISO8859_14_LATIN_SMALL_LETTER_P_WITH_DOT_ABOVE 0x00B9 #define T_ISO8859_14_LATIN_SMALL_LETTER_W_WITH_ACUTE 0x00BA #define T_ISO8859_14_LATIN_CAPITAL_LETTER_S_WITH_DOT_ABOVE 0x00BB #define T_ISO8859_14_LATIN_SMALL_LETTER_Y_WITH_GRAVE 0x00BC #define T_ISO8859_14_LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS 0x00BD #define T_ISO8859_14_LATIN_SMALL_LETTER_W_WITH_DIAERESIS 0x00BE #define T_ISO8859_14_LATIN_SMALL_LETTER_S_WITH_DOT_ABOVE 0x00BF #define T_ISO8859_14_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_ISO8859_14_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_ISO8859_14_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC #define T_ISO8859_14_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_ISO8859_14_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_ISO8859_14_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_ISO8859_14_LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX 0x00D0 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_T_WITH_DOT_ABOVE 0x00D7 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_ISO8859_14_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_ISO8859_14_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_ISO8859_14_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_ISO8859_14_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD #define T_ISO8859_14_LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX 0x00DE #define T_ISO8859_14_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_ISO8859_14_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_ISO8859_14_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_ISO8859_14_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_ISO8859_14_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 #define T_ISO8859_14_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_ISO8859_14_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_ISO8859_14_LATIN_SMALL_LETTER_AE 0x00E6 #define T_ISO8859_14_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_ISO8859_14_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_ISO8859_14_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_ISO8859_14_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_ISO8859_14_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_ISO8859_14_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_ISO8859_14_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_ISO8859_14_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_ISO8859_14_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_ISO8859_14_LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX 0x00F0 #define T_ISO8859_14_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 #define T_ISO8859_14_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 #define T_ISO8859_14_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_ISO8859_14_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_ISO8859_14_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_ISO8859_14_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_ISO8859_14_LATIN_SMALL_LETTER_T_WITH_DOT_ABOVE 0x00F7 #define T_ISO8859_14_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_ISO8859_14_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_ISO8859_14_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_ISO8859_14_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_ISO8859_14_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_ISO8859_14_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD #define T_ISO8859_14_LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX 0x00FE #define T_ISO8859_14_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF /* list of all characters */ #define T_LIST_ISO8859_14(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_B_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_B_WITH_DOT_ABOVE) \ EL(_POUND_SIGN) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_DOT_ABOVE) \ EL(_SECTION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_GRAVE) \ EL(_COPYRIGHT_SIGN) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_D_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_GRAVE) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_F_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_F_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_M_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_M_WITH_DOT_ABOVE) \ EL(_PILCROW_SIGN) \ EL(_LATIN_CAPITAL_LETTER_P_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_P_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_W_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_S_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_T_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_14(EL) \ EL(_LATIN_CAPITAL_LETTER_B_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_B_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_D_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_F_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_F_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_M_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_M_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_P_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_P_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_W_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_S_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_T_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX) #endif /* TUTF_ISO8859_14_H */ ����������������twin-0.9.0/include/Tutf/iso8859_15.h����������������������������������������������������������������0000664�0000000�0000000�00000116446�13775351206�0016701�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_15_H #define TUTF_ISO8859_15_H #define T_ISO8859_15_CTRL_NULL 0x0000 #define T_ISO8859_15_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_15_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_15_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_15_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_15_CTRL_ENQUIRY 0x0005 #define T_ISO8859_15_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_15_CTRL_BELL 0x0007 #define T_ISO8859_15_CTRL_BACKSPACE 0x0008 #define T_ISO8859_15_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_15_CTRL_LINE_FEED 0x000A #define T_ISO8859_15_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_15_CTRL_FORM_FEED 0x000C #define T_ISO8859_15_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_15_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_15_CTRL_SHIFT_IN 0x000F #define T_ISO8859_15_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_15_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_15_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_15_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_15_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_15_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_15_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_15_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_15_CTRL_CANCEL 0x0018 #define T_ISO8859_15_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_15_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_15_CTRL_ESCAPE 0x001B #define T_ISO8859_15_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_15_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_15_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_15_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_15_SPACE 0x0020 #define T_ISO8859_15_EXCLAMATION_MARK 0x0021 #define T_ISO8859_15_QUOTATION_MARK 0x0022 #define T_ISO8859_15_NUMBER_SIGN 0x0023 #define T_ISO8859_15_DOLLAR_SIGN 0x0024 #define T_ISO8859_15_PERCENT_SIGN 0x0025 #define T_ISO8859_15_AMPERSAND 0x0026 #define T_ISO8859_15_APOSTROPHE 0x0027 #define T_ISO8859_15_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_15_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_15_ASTERISK 0x002A #define T_ISO8859_15_PLUS_SIGN 0x002B #define T_ISO8859_15_COMMA 0x002C #define T_ISO8859_15_HYPHEN_MINUS 0x002D #define T_ISO8859_15_FULL_STOP 0x002E #define T_ISO8859_15_SOLIDUS 0x002F #define T_ISO8859_15_DIGIT_ZERO 0x0030 #define T_ISO8859_15_DIGIT_ONE 0x0031 #define T_ISO8859_15_DIGIT_TWO 0x0032 #define T_ISO8859_15_DIGIT_THREE 0x0033 #define T_ISO8859_15_DIGIT_FOUR 0x0034 #define T_ISO8859_15_DIGIT_FIVE 0x0035 #define T_ISO8859_15_DIGIT_SIX 0x0036 #define T_ISO8859_15_DIGIT_SEVEN 0x0037 #define T_ISO8859_15_DIGIT_EIGHT 0x0038 #define T_ISO8859_15_DIGIT_NINE 0x0039 #define T_ISO8859_15_COLON 0x003A #define T_ISO8859_15_SEMICOLON 0x003B #define T_ISO8859_15_LESS_THAN_SIGN 0x003C #define T_ISO8859_15_EQUALS_SIGN 0x003D #define T_ISO8859_15_GREATER_THAN_SIGN 0x003E #define T_ISO8859_15_QUESTION_MARK 0x003F #define T_ISO8859_15_COMMERCIAL_AT 0x0040 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_15_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_15_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_15_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_15_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_15_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_15_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_15_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_15_REVERSE_SOLIDUS 0x005C #define T_ISO8859_15_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_15_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_15_LOW_LINE 0x005F #define T_ISO8859_15_GRAVE_ACCENT 0x0060 #define T_ISO8859_15_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_15_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_15_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_15_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_15_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_15_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_15_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_15_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_15_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_15_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_15_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_15_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_15_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_15_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_15_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_15_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_15_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_15_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_15_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_15_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_15_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_15_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_15_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_15_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_15_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_15_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_15_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_15_VERTICAL_LINE 0x007C #define T_ISO8859_15_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_15_TILDE 0x007E #define T_ISO8859_15_CTRL_DELETE 0x007F #define T_ISO8859_15_UNDEFINED_0080 0x0080 #define T_ISO8859_15_UNDEFINED_0081 0x0081 #define T_ISO8859_15_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_15_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_15_UNDEFINED_0084 0x0084 #define T_ISO8859_15_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_15_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_15_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_15_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_15_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_15_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_15_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_15_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_15_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_15_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_15_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_15_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_15_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_15_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_15_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_15_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_15_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_15_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_15_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_15_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_15_UNDEFINED_0099 0x0099 #define T_ISO8859_15_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_15_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_15_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_15_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_15_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_15_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_15_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_15_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_ISO8859_15_CENT_SIGN 0x00A2 #define T_ISO8859_15_POUND_SIGN 0x00A3 #define T_ISO8859_15_EURO_SIGN 0x00A4 #define T_ISO8859_15_YEN_SIGN 0x00A5 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00A6 #define T_ISO8859_15_SECTION_SIGN 0x00A7 #define T_ISO8859_15_LATIN_SMALL_LETTER_S_WITH_CARON 0x00A8 #define T_ISO8859_15_COPYRIGHT_SIGN 0x00A9 #define T_ISO8859_15_FEMININE_ORDINAL_INDICATOR 0x00AA #define T_ISO8859_15_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_ISO8859_15_NOT_SIGN 0x00AC #define T_ISO8859_15_SOFT_HYPHEN 0x00AD #define T_ISO8859_15_REGISTERED_SIGN 0x00AE #define T_ISO8859_15_MACRON 0x00AF #define T_ISO8859_15_DEGREE_SIGN 0x00B0 #define T_ISO8859_15_PLUS_MINUS_SIGN 0x00B1 #define T_ISO8859_15_SUPERSCRIPT_TWO 0x00B2 #define T_ISO8859_15_SUPERSCRIPT_THREE 0x00B3 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00B4 #define T_ISO8859_15_MICRO_SIGN 0x00B5 #define T_ISO8859_15_PILCROW_SIGN 0x00B6 #define T_ISO8859_15_MIDDLE_DOT 0x00B7 #define T_ISO8859_15_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00B8 #define T_ISO8859_15_SUPERSCRIPT_ONE 0x00B9 #define T_ISO8859_15_MASCULINE_ORDINAL_INDICATOR 0x00BA #define T_ISO8859_15_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_ISO8859_15_LATIN_CAPITAL_LIGATURE_OE 0x00BC #define T_ISO8859_15_LATIN_SMALL_LIGATURE_OE 0x00BD #define T_ISO8859_15_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00BE #define T_ISO8859_15_INVERTED_QUESTION_MARK 0x00BF #define T_ISO8859_15_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_ISO8859_15_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_ISO8859_15_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC #define T_ISO8859_15_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_ISO8859_15_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_ISO8859_15_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_ISO8859_15_LATIN_CAPITAL_LETTER_ETH 0x00D0 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_ISO8859_15_MULTIPLICATION_SIGN 0x00D7 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_ISO8859_15_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_ISO8859_15_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_ISO8859_15_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_ISO8859_15_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD #define T_ISO8859_15_LATIN_CAPITAL_LETTER_THORN 0x00DE #define T_ISO8859_15_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_ISO8859_15_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_ISO8859_15_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_ISO8859_15_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_ISO8859_15_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 #define T_ISO8859_15_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_ISO8859_15_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_ISO8859_15_LATIN_SMALL_LETTER_AE 0x00E6 #define T_ISO8859_15_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_ISO8859_15_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_ISO8859_15_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_ISO8859_15_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_ISO8859_15_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_ISO8859_15_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_ISO8859_15_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_ISO8859_15_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_ISO8859_15_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_ISO8859_15_LATIN_SMALL_LETTER_ETH 0x00F0 #define T_ISO8859_15_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 #define T_ISO8859_15_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 #define T_ISO8859_15_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_ISO8859_15_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_ISO8859_15_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_ISO8859_15_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_ISO8859_15_DIVISION_SIGN 0x00F7 #define T_ISO8859_15_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_ISO8859_15_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_ISO8859_15_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_ISO8859_15_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_ISO8859_15_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_ISO8859_15_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD #define T_ISO8859_15_LATIN_SMALL_LETTER_THORN 0x00FE #define T_ISO8859_15_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF /* list of all characters */ #define T_LIST_ISO8859_15(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_EURO_SIGN) \ EL(_YEN_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SECTION_SIGN) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_COPYRIGHT_SIGN) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_MACRON) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_SUPERSCRIPT_ONE) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_INVERTED_QUESTION_MARK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_15(EL) \ EL(_EURO_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) #endif /* TUTF_ISO8859_15_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_16.h����������������������������������������������������������������0000664�0000000�0000000�00000125437�13775351206�0016702�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_16_H #define TUTF_ISO8859_16_H #define T_ISO8859_16_CTRL_NULL 0x0000 #define T_ISO8859_16_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_16_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_16_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_16_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_16_CTRL_ENQUIRY 0x0005 #define T_ISO8859_16_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_16_CTRL_BELL 0x0007 #define T_ISO8859_16_CTRL_BACKSPACE 0x0008 #define T_ISO8859_16_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_16_CTRL_LINE_FEED 0x000A #define T_ISO8859_16_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_16_CTRL_FORM_FEED 0x000C #define T_ISO8859_16_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_16_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_16_CTRL_SHIFT_IN 0x000F #define T_ISO8859_16_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_16_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_16_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_16_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_16_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_16_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_16_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_16_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_16_CTRL_CANCEL 0x0018 #define T_ISO8859_16_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_16_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_16_CTRL_ESCAPE 0x001B #define T_ISO8859_16_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_16_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_16_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_16_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_16_SPACE 0x0020 #define T_ISO8859_16_EXCLAMATION_MARK 0x0021 #define T_ISO8859_16_QUOTATION_MARK 0x0022 #define T_ISO8859_16_NUMBER_SIGN 0x0023 #define T_ISO8859_16_DOLLAR_SIGN 0x0024 #define T_ISO8859_16_PERCENT_SIGN 0x0025 #define T_ISO8859_16_AMPERSAND 0x0026 #define T_ISO8859_16_APOSTROPHE 0x0027 #define T_ISO8859_16_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_16_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_16_ASTERISK 0x002A #define T_ISO8859_16_PLUS_SIGN 0x002B #define T_ISO8859_16_COMMA 0x002C #define T_ISO8859_16_HYPHEN_MINUS 0x002D #define T_ISO8859_16_FULL_STOP 0x002E #define T_ISO8859_16_SOLIDUS 0x002F #define T_ISO8859_16_DIGIT_ZERO 0x0030 #define T_ISO8859_16_DIGIT_ONE 0x0031 #define T_ISO8859_16_DIGIT_TWO 0x0032 #define T_ISO8859_16_DIGIT_THREE 0x0033 #define T_ISO8859_16_DIGIT_FOUR 0x0034 #define T_ISO8859_16_DIGIT_FIVE 0x0035 #define T_ISO8859_16_DIGIT_SIX 0x0036 #define T_ISO8859_16_DIGIT_SEVEN 0x0037 #define T_ISO8859_16_DIGIT_EIGHT 0x0038 #define T_ISO8859_16_DIGIT_NINE 0x0039 #define T_ISO8859_16_COLON 0x003A #define T_ISO8859_16_SEMICOLON 0x003B #define T_ISO8859_16_LESS_THAN_SIGN 0x003C #define T_ISO8859_16_EQUALS_SIGN 0x003D #define T_ISO8859_16_GREATER_THAN_SIGN 0x003E #define T_ISO8859_16_QUESTION_MARK 0x003F #define T_ISO8859_16_COMMERCIAL_AT 0x0040 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_16_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_16_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_16_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_16_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_16_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_16_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_16_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_16_REVERSE_SOLIDUS 0x005C #define T_ISO8859_16_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_16_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_16_LOW_LINE 0x005F #define T_ISO8859_16_GRAVE_ACCENT 0x0060 #define T_ISO8859_16_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_16_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_16_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_16_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_16_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_16_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_16_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_16_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_16_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_16_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_16_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_16_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_16_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_16_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_16_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_16_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_16_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_16_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_16_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_16_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_16_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_16_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_16_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_16_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_16_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_16_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_16_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_16_VERTICAL_LINE 0x007C #define T_ISO8859_16_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_16_TILDE 0x007E #define T_ISO8859_16_CTRL_DELETE 0x007F #define T_ISO8859_16_UNDEFINED_0080 0x0080 #define T_ISO8859_16_UNDEFINED_0081 0x0081 #define T_ISO8859_16_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_16_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_16_UNDEFINED_0084 0x0084 #define T_ISO8859_16_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_16_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_16_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_16_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_16_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_16_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_16_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_16_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_16_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_16_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_16_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_16_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_16_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_16_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_16_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_16_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_16_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_16_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_16_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_16_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_16_UNDEFINED_0099 0x0099 #define T_ISO8859_16_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_16_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_16_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_16_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_16_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_16_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_16_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x00A1 #define T_ISO8859_16_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x00A2 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x00A3 #define T_ISO8859_16_EURO_SIGN 0x00A4 #define T_ISO8859_16_DOUBLE_LOW_9_QUOTATION_MARK 0x00A5 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00A6 #define T_ISO8859_16_SECTION_SIGN 0x00A7 #define T_ISO8859_16_LATIN_SMALL_LETTER_S_WITH_CARON 0x00A8 #define T_ISO8859_16_COPYRIGHT_SIGN 0x00A9 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_S_WITH_COMMA_BELOW 0x00AA #define T_ISO8859_16_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_ISO8859_16_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x00AC #define T_ISO8859_16_SOFT_HYPHEN 0x00AD #define T_ISO8859_16_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x00AE #define T_ISO8859_16_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x00AF #define T_ISO8859_16_DEGREE_SIGN 0x00B0 #define T_ISO8859_16_PLUS_MINUS_SIGN 0x00B1 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x00B2 #define T_ISO8859_16_LATIN_SMALL_LETTER_L_WITH_STROKE 0x00B3 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00B4 #define T_ISO8859_16_RIGHT_DOUBLE_QUOTATION_MARK 0x00B5 #define T_ISO8859_16_PILCROW_SIGN 0x00B6 #define T_ISO8859_16_MIDDLE_DOT 0x00B7 #define T_ISO8859_16_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00B8 #define T_ISO8859_16_LATIN_SMALL_LETTER_C_WITH_CARON 0x00B9 #define T_ISO8859_16_LATIN_SMALL_LETTER_S_WITH_COMMA_BELOW 0x00BA #define T_ISO8859_16_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_ISO8859_16_LATIN_CAPITAL_LIGATURE_OE 0x00BC #define T_ISO8859_16_LATIN_SMALL_LIGATURE_OE 0x00BD #define T_ISO8859_16_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00BE #define T_ISO8859_16_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x00BF #define T_ISO8859_16_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_A_WITH_BREVE 0x00C3 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x00C5 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_ISO8859_16_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_ISO8859_16_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC #define T_ISO8859_16_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_ISO8859_16_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_ISO8859_16_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_ISO8859_16_LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x00D0 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x00D1 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE 0x00D5 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x00D7 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0x00D8 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_ISO8859_16_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_ISO8859_16_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_ISO8859_16_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_ISO8859_16_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00DD #define T_ISO8859_16_LATIN_CAPITAL_LETTER_T_WITH_COMMA_BELOW 0x00DE #define T_ISO8859_16_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_ISO8859_16_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_ISO8859_16_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_ISO8859_16_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_ISO8859_16_LATIN_SMALL_LETTER_A_WITH_BREVE 0x00E3 #define T_ISO8859_16_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_ISO8859_16_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x00E5 #define T_ISO8859_16_LATIN_SMALL_LETTER_AE 0x00E6 #define T_ISO8859_16_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_ISO8859_16_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_ISO8859_16_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_ISO8859_16_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_ISO8859_16_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_ISO8859_16_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_ISO8859_16_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_ISO8859_16_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_ISO8859_16_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_ISO8859_16_LATIN_SMALL_LETTER_D_WITH_STROKE 0x00F0 #define T_ISO8859_16_LATIN_SMALL_LETTER_N_WITH_ACUTE 0x00F1 #define T_ISO8859_16_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 #define T_ISO8859_16_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_ISO8859_16_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_ISO8859_16_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE 0x00F5 #define T_ISO8859_16_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_ISO8859_16_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x00F7 #define T_ISO8859_16_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0x00F8 #define T_ISO8859_16_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_ISO8859_16_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_ISO8859_16_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_ISO8859_16_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_ISO8859_16_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00FD #define T_ISO8859_16_LATIN_SMALL_LETTER_T_WITH_COMMA_BELOW 0x00FE #define T_ISO8859_16_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF /* list of all characters */ #define T_LIST_ISO8859_16(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_EURO_SIGN) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SECTION_SIGN) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_COPYRIGHT_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_COMMA_BELOW) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_SOFT_HYPHEN) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_COMMA_BELOW) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_COMMA_BELOW) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_T_WITH_COMMA_BELOW) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_16(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_EURO_SIGN) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_COMMA_BELOW) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_COMMA_BELOW) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_COMMA_BELOW) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_T_WITH_COMMA_BELOW) #endif /* TUTF_ISO8859_16_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_2.h�����������������������������������������������������������������0000664�0000000�0000000�00000130005�13775351206�0016600�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_2_H #define TUTF_ISO8859_2_H #define T_ISO8859_2_CTRL_NULL 0x0000 #define T_ISO8859_2_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_2_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_2_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_2_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_2_CTRL_ENQUIRY 0x0005 #define T_ISO8859_2_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_2_CTRL_BELL 0x0007 #define T_ISO8859_2_CTRL_BACKSPACE 0x0008 #define T_ISO8859_2_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_2_CTRL_LINE_FEED 0x000A #define T_ISO8859_2_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_2_CTRL_FORM_FEED 0x000C #define T_ISO8859_2_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_2_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_2_CTRL_SHIFT_IN 0x000F #define T_ISO8859_2_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_2_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_2_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_2_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_2_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_2_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_2_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_2_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_2_CTRL_CANCEL 0x0018 #define T_ISO8859_2_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_2_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_2_CTRL_ESCAPE 0x001B #define T_ISO8859_2_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_2_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_2_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_2_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_2_SPACE 0x0020 #define T_ISO8859_2_EXCLAMATION_MARK 0x0021 #define T_ISO8859_2_QUOTATION_MARK 0x0022 #define T_ISO8859_2_NUMBER_SIGN 0x0023 #define T_ISO8859_2_DOLLAR_SIGN 0x0024 #define T_ISO8859_2_PERCENT_SIGN 0x0025 #define T_ISO8859_2_AMPERSAND 0x0026 #define T_ISO8859_2_APOSTROPHE 0x0027 #define T_ISO8859_2_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_2_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_2_ASTERISK 0x002A #define T_ISO8859_2_PLUS_SIGN 0x002B #define T_ISO8859_2_COMMA 0x002C #define T_ISO8859_2_HYPHEN_MINUS 0x002D #define T_ISO8859_2_FULL_STOP 0x002E #define T_ISO8859_2_SOLIDUS 0x002F #define T_ISO8859_2_DIGIT_ZERO 0x0030 #define T_ISO8859_2_DIGIT_ONE 0x0031 #define T_ISO8859_2_DIGIT_TWO 0x0032 #define T_ISO8859_2_DIGIT_THREE 0x0033 #define T_ISO8859_2_DIGIT_FOUR 0x0034 #define T_ISO8859_2_DIGIT_FIVE 0x0035 #define T_ISO8859_2_DIGIT_SIX 0x0036 #define T_ISO8859_2_DIGIT_SEVEN 0x0037 #define T_ISO8859_2_DIGIT_EIGHT 0x0038 #define T_ISO8859_2_DIGIT_NINE 0x0039 #define T_ISO8859_2_COLON 0x003A #define T_ISO8859_2_SEMICOLON 0x003B #define T_ISO8859_2_LESS_THAN_SIGN 0x003C #define T_ISO8859_2_EQUALS_SIGN 0x003D #define T_ISO8859_2_GREATER_THAN_SIGN 0x003E #define T_ISO8859_2_QUESTION_MARK 0x003F #define T_ISO8859_2_COMMERCIAL_AT 0x0040 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_2_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_2_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_2_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_2_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_2_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_2_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_2_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_2_REVERSE_SOLIDUS 0x005C #define T_ISO8859_2_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_2_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_2_LOW_LINE 0x005F #define T_ISO8859_2_GRAVE_ACCENT 0x0060 #define T_ISO8859_2_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_2_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_2_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_2_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_2_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_2_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_2_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_2_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_2_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_2_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_2_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_2_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_2_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_2_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_2_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_2_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_2_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_2_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_2_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_2_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_2_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_2_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_2_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_2_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_2_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_2_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_2_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_2_VERTICAL_LINE 0x007C #define T_ISO8859_2_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_2_TILDE 0x007E #define T_ISO8859_2_CTRL_DELETE 0x007F #define T_ISO8859_2_UNDEFINED_0080 0x0080 #define T_ISO8859_2_UNDEFINED_0081 0x0081 #define T_ISO8859_2_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_2_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_2_UNDEFINED_0084 0x0084 #define T_ISO8859_2_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_2_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_2_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_2_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_2_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_2_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_2_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_2_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_2_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_2_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_2_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_2_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_2_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_2_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_2_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_2_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_2_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_2_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_2_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_2_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_2_UNDEFINED_0099 0x0099 #define T_ISO8859_2_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_2_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_2_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_2_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_2_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_2_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_2_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x00A1 #define T_ISO8859_2_BREVE 0x00A2 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x00A3 #define T_ISO8859_2_CURRENCY_SIGN 0x00A4 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_L_WITH_CARON 0x00A5 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x00A6 #define T_ISO8859_2_SECTION_SIGN 0x00A7 #define T_ISO8859_2_DIAERESIS 0x00A8 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00A9 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x00AA #define T_ISO8859_2_LATIN_CAPITAL_LETTER_T_WITH_CARON 0x00AB #define T_ISO8859_2_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x00AC #define T_ISO8859_2_SOFT_HYPHEN 0x00AD #define T_ISO8859_2_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00AE #define T_ISO8859_2_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x00AF #define T_ISO8859_2_DEGREE_SIGN 0x00B0 #define T_ISO8859_2_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x00B1 #define T_ISO8859_2_OGONEK 0x00B2 #define T_ISO8859_2_LATIN_SMALL_LETTER_L_WITH_STROKE 0x00B3 #define T_ISO8859_2_ACUTE_ACCENT 0x00B4 #define T_ISO8859_2_LATIN_SMALL_LETTER_L_WITH_CARON 0x00B5 #define T_ISO8859_2_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x00B6 #define T_ISO8859_2_CARON 0x00B7 #define T_ISO8859_2_CEDILLA 0x00B8 #define T_ISO8859_2_LATIN_SMALL_LETTER_S_WITH_CARON 0x00B9 #define T_ISO8859_2_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x00BA #define T_ISO8859_2_LATIN_SMALL_LETTER_T_WITH_CARON 0x00BB #define T_ISO8859_2_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x00BC #define T_ISO8859_2_DOUBLE_ACUTE_ACCENT 0x00BD #define T_ISO8859_2_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00BE #define T_ISO8859_2_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x00BF #define T_ISO8859_2_LATIN_CAPITAL_LETTER_R_WITH_ACUTE 0x00C0 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_A_WITH_BREVE 0x00C3 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_L_WITH_ACUTE 0x00C5 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x00C6 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x00C8 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00CA #define T_ISO8859_2_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_ISO8859_2_LATIN_CAPITAL_LETTER_E_WITH_CARON 0x00CC #define T_ISO8859_2_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_ISO8859_2_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_ISO8859_2_LATIN_CAPITAL_LETTER_D_WITH_CARON 0x00CF #define T_ISO8859_2_LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x00D0 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x00D1 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_N_WITH_CARON 0x00D2 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE 0x00D5 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_ISO8859_2_MULTIPLICATION_SIGN 0x00D7 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_R_WITH_CARON 0x00D8 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE 0x00D9 #define T_ISO8859_2_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_ISO8859_2_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0x00DB #define T_ISO8859_2_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_ISO8859_2_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD #define T_ISO8859_2_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA 0x00DE #define T_ISO8859_2_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_ISO8859_2_LATIN_SMALL_LETTER_R_WITH_ACUTE 0x00E0 #define T_ISO8859_2_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_ISO8859_2_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_ISO8859_2_LATIN_SMALL_LETTER_A_WITH_BREVE 0x00E3 #define T_ISO8859_2_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_ISO8859_2_LATIN_SMALL_LETTER_L_WITH_ACUTE 0x00E5 #define T_ISO8859_2_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x00E6 #define T_ISO8859_2_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_ISO8859_2_LATIN_SMALL_LETTER_C_WITH_CARON 0x00E8 #define T_ISO8859_2_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_ISO8859_2_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00EA #define T_ISO8859_2_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_ISO8859_2_LATIN_SMALL_LETTER_E_WITH_CARON 0x00EC #define T_ISO8859_2_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_ISO8859_2_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_ISO8859_2_LATIN_SMALL_LETTER_D_WITH_CARON 0x00EF #define T_ISO8859_2_LATIN_SMALL_LETTER_D_WITH_STROKE 0x00F0 #define T_ISO8859_2_LATIN_SMALL_LETTER_N_WITH_ACUTE 0x00F1 #define T_ISO8859_2_LATIN_SMALL_LETTER_N_WITH_CARON 0x00F2 #define T_ISO8859_2_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_ISO8859_2_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_ISO8859_2_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE 0x00F5 #define T_ISO8859_2_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_ISO8859_2_DIVISION_SIGN 0x00F7 #define T_ISO8859_2_LATIN_SMALL_LETTER_R_WITH_CARON 0x00F8 #define T_ISO8859_2_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE 0x00F9 #define T_ISO8859_2_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_ISO8859_2_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0x00FB #define T_ISO8859_2_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_ISO8859_2_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD #define T_ISO8859_2_LATIN_SMALL_LETTER_T_WITH_CEDILLA 0x00FE #define T_ISO8859_2_DOT_ABOVE 0x00FF /* list of all characters */ #define T_LIST_ISO8859_2(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_BREVE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_SOFT_HYPHEN) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_DEGREE_SIGN) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_OGONEK) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_ACUTE_ACCENT) \ EL(_LATIN_SMALL_LETTER_L_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_CARON) \ EL(_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_T_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_D_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_R_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_T_WITH_CEDILLA) \ EL(_DOT_ABOVE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_2(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_BREVE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_OGONEK) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_L_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_T_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_D_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_R_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_T_WITH_CEDILLA) \ EL(_DOT_ABOVE) #endif /* TUTF_ISO8859_2_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_3.h�����������������������������������������������������������������0000664�0000000�0000000�00000120532�13775351206�0016605�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_3_H #define TUTF_ISO8859_3_H #define T_ISO8859_3_CTRL_NULL 0x0000 #define T_ISO8859_3_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_3_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_3_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_3_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_3_CTRL_ENQUIRY 0x0005 #define T_ISO8859_3_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_3_CTRL_BELL 0x0007 #define T_ISO8859_3_CTRL_BACKSPACE 0x0008 #define T_ISO8859_3_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_3_CTRL_LINE_FEED 0x000A #define T_ISO8859_3_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_3_CTRL_FORM_FEED 0x000C #define T_ISO8859_3_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_3_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_3_CTRL_SHIFT_IN 0x000F #define T_ISO8859_3_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_3_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_3_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_3_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_3_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_3_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_3_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_3_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_3_CTRL_CANCEL 0x0018 #define T_ISO8859_3_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_3_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_3_CTRL_ESCAPE 0x001B #define T_ISO8859_3_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_3_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_3_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_3_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_3_SPACE 0x0020 #define T_ISO8859_3_EXCLAMATION_MARK 0x0021 #define T_ISO8859_3_QUOTATION_MARK 0x0022 #define T_ISO8859_3_NUMBER_SIGN 0x0023 #define T_ISO8859_3_DOLLAR_SIGN 0x0024 #define T_ISO8859_3_PERCENT_SIGN 0x0025 #define T_ISO8859_3_AMPERSAND 0x0026 #define T_ISO8859_3_APOSTROPHE 0x0027 #define T_ISO8859_3_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_3_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_3_ASTERISK 0x002A #define T_ISO8859_3_PLUS_SIGN 0x002B #define T_ISO8859_3_COMMA 0x002C #define T_ISO8859_3_HYPHEN_MINUS 0x002D #define T_ISO8859_3_FULL_STOP 0x002E #define T_ISO8859_3_SOLIDUS 0x002F #define T_ISO8859_3_DIGIT_ZERO 0x0030 #define T_ISO8859_3_DIGIT_ONE 0x0031 #define T_ISO8859_3_DIGIT_TWO 0x0032 #define T_ISO8859_3_DIGIT_THREE 0x0033 #define T_ISO8859_3_DIGIT_FOUR 0x0034 #define T_ISO8859_3_DIGIT_FIVE 0x0035 #define T_ISO8859_3_DIGIT_SIX 0x0036 #define T_ISO8859_3_DIGIT_SEVEN 0x0037 #define T_ISO8859_3_DIGIT_EIGHT 0x0038 #define T_ISO8859_3_DIGIT_NINE 0x0039 #define T_ISO8859_3_COLON 0x003A #define T_ISO8859_3_SEMICOLON 0x003B #define T_ISO8859_3_LESS_THAN_SIGN 0x003C #define T_ISO8859_3_EQUALS_SIGN 0x003D #define T_ISO8859_3_GREATER_THAN_SIGN 0x003E #define T_ISO8859_3_QUESTION_MARK 0x003F #define T_ISO8859_3_COMMERCIAL_AT 0x0040 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_3_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_3_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_3_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_3_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_3_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_3_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_3_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_3_REVERSE_SOLIDUS 0x005C #define T_ISO8859_3_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_3_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_3_LOW_LINE 0x005F #define T_ISO8859_3_GRAVE_ACCENT 0x0060 #define T_ISO8859_3_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_3_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_3_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_3_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_3_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_3_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_3_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_3_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_3_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_3_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_3_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_3_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_3_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_3_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_3_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_3_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_3_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_3_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_3_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_3_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_3_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_3_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_3_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_3_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_3_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_3_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_3_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_3_VERTICAL_LINE 0x007C #define T_ISO8859_3_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_3_TILDE 0x007E #define T_ISO8859_3_CTRL_DELETE 0x007F #define T_ISO8859_3_UNDEFINED_0080 0x0080 #define T_ISO8859_3_UNDEFINED_0081 0x0081 #define T_ISO8859_3_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_3_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_3_UNDEFINED_0084 0x0084 #define T_ISO8859_3_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_3_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_3_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_3_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_3_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_3_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_3_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_3_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_3_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_3_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_3_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_3_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_3_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_3_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_3_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_3_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_3_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_3_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_3_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_3_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_3_UNDEFINED_0099 0x0099 #define T_ISO8859_3_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_3_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_3_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_3_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_3_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_3_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_3_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_H_WITH_STROKE 0x00A1 #define T_ISO8859_3_BREVE 0x00A2 #define T_ISO8859_3_POUND_SIGN 0x00A3 #define T_ISO8859_3_CURRENCY_SIGN 0x00A4 #define T_ISO8859_3_UNDEFINED_00A5 0x00A5 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_H_WITH_CIRCUMFLEX 0x00A6 #define T_ISO8859_3_SECTION_SIGN 0x00A7 #define T_ISO8859_3_DIAERESIS 0x00A8 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE 0x00A9 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x00AA #define T_ISO8859_3_LATIN_CAPITAL_LETTER_G_WITH_BREVE 0x00AB #define T_ISO8859_3_LATIN_CAPITAL_LETTER_J_WITH_CIRCUMFLEX 0x00AC #define T_ISO8859_3_SOFT_HYPHEN 0x00AD #define T_ISO8859_3_UNDEFINED_00AE 0x00AE #define T_ISO8859_3_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x00AF #define T_ISO8859_3_DEGREE_SIGN 0x00B0 #define T_ISO8859_3_LATIN_SMALL_LETTER_H_WITH_STROKE 0x00B1 #define T_ISO8859_3_SUPERSCRIPT_TWO 0x00B2 #define T_ISO8859_3_SUPERSCRIPT_THREE 0x00B3 #define T_ISO8859_3_ACUTE_ACCENT 0x00B4 #define T_ISO8859_3_MICRO_SIGN 0x00B5 #define T_ISO8859_3_LATIN_SMALL_LETTER_H_WITH_CIRCUMFLEX 0x00B6 #define T_ISO8859_3_MIDDLE_DOT 0x00B7 #define T_ISO8859_3_CEDILLA 0x00B8 #define T_ISO8859_3_LATIN_SMALL_LETTER_DOTLESS_I 0x00B9 #define T_ISO8859_3_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x00BA #define T_ISO8859_3_LATIN_SMALL_LETTER_G_WITH_BREVE 0x00BB #define T_ISO8859_3_LATIN_SMALL_LETTER_J_WITH_CIRCUMFLEX 0x00BC #define T_ISO8859_3_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_ISO8859_3_UNDEFINED_00BE 0x00BE #define T_ISO8859_3_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x00BF #define T_ISO8859_3_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_ISO8859_3_UNDEFINED_00C3 0x00C3 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE 0x00C5 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_C_WITH_CIRCUMFLEX 0x00C6 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_ISO8859_3_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_ISO8859_3_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC #define T_ISO8859_3_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_ISO8859_3_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_ISO8859_3_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_ISO8859_3_UNDEFINED_00D0 0x00D0 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE 0x00D5 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_ISO8859_3_MULTIPLICATION_SIGN 0x00D7 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_G_WITH_CIRCUMFLEX 0x00D8 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_ISO8859_3_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_ISO8859_3_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_ISO8859_3_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_ISO8859_3_LATIN_CAPITAL_LETTER_U_WITH_BREVE 0x00DD #define T_ISO8859_3_LATIN_CAPITAL_LETTER_S_WITH_CIRCUMFLEX 0x00DE #define T_ISO8859_3_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_ISO8859_3_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_ISO8859_3_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_ISO8859_3_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_ISO8859_3_UNDEFINED_00E3 0x00E3 #define T_ISO8859_3_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_ISO8859_3_LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE 0x00E5 #define T_ISO8859_3_LATIN_SMALL_LETTER_C_WITH_CIRCUMFLEX 0x00E6 #define T_ISO8859_3_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_ISO8859_3_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_ISO8859_3_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_ISO8859_3_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_ISO8859_3_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_ISO8859_3_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_ISO8859_3_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_ISO8859_3_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_ISO8859_3_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_ISO8859_3_UNDEFINED_00F0 0x00F0 #define T_ISO8859_3_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 #define T_ISO8859_3_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 #define T_ISO8859_3_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_ISO8859_3_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_ISO8859_3_LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE 0x00F5 #define T_ISO8859_3_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_ISO8859_3_DIVISION_SIGN 0x00F7 #define T_ISO8859_3_LATIN_SMALL_LETTER_G_WITH_CIRCUMFLEX 0x00F8 #define T_ISO8859_3_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_ISO8859_3_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_ISO8859_3_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_ISO8859_3_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_ISO8859_3_LATIN_SMALL_LETTER_U_WITH_BREVE 0x00FD #define T_ISO8859_3_LATIN_SMALL_LETTER_S_WITH_CIRCUMFLEX 0x00FE #define T_ISO8859_3_DOT_ABOVE 0x00FF /* list of all characters */ #define T_LIST_ISO8859_3(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_H_WITH_STROKE) \ EL(_BREVE) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_CAPITAL_LETTER_H_WITH_CIRCUMFLEX) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_J_WITH_CIRCUMFLEX) \ EL(_SOFT_HYPHEN) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_DEGREE_SIGN) \ EL(_LATIN_SMALL_LETTER_H_WITH_STROKE) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_LATIN_SMALL_LETTER_H_WITH_CIRCUMFLEX) \ EL(_MIDDLE_DOT) \ EL(_CEDILLA) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_J_WITH_CIRCUMFLEX) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_G_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_U_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_S_WITH_CIRCUMFLEX) \ EL(_DOT_ABOVE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_3(EL) \ EL(_LATIN_CAPITAL_LETTER_H_WITH_STROKE) \ EL(_BREVE) \ EL(_LATIN_CAPITAL_LETTER_H_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_J_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_H_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_H_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_J_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_S_WITH_CIRCUMFLEX) \ EL(_DOT_ABOVE) #endif /* TUTF_ISO8859_3_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_4.h�����������������������������������������������������������������0000664�0000000�0000000�00000126446�13775351206�0016620�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_4_H #define TUTF_ISO8859_4_H #define T_ISO8859_4_CTRL_NULL 0x0000 #define T_ISO8859_4_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_4_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_4_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_4_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_4_CTRL_ENQUIRY 0x0005 #define T_ISO8859_4_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_4_CTRL_BELL 0x0007 #define T_ISO8859_4_CTRL_BACKSPACE 0x0008 #define T_ISO8859_4_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_4_CTRL_LINE_FEED 0x000A #define T_ISO8859_4_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_4_CTRL_FORM_FEED 0x000C #define T_ISO8859_4_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_4_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_4_CTRL_SHIFT_IN 0x000F #define T_ISO8859_4_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_4_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_4_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_4_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_4_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_4_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_4_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_4_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_4_CTRL_CANCEL 0x0018 #define T_ISO8859_4_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_4_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_4_CTRL_ESCAPE 0x001B #define T_ISO8859_4_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_4_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_4_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_4_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_4_SPACE 0x0020 #define T_ISO8859_4_EXCLAMATION_MARK 0x0021 #define T_ISO8859_4_QUOTATION_MARK 0x0022 #define T_ISO8859_4_NUMBER_SIGN 0x0023 #define T_ISO8859_4_DOLLAR_SIGN 0x0024 #define T_ISO8859_4_PERCENT_SIGN 0x0025 #define T_ISO8859_4_AMPERSAND 0x0026 #define T_ISO8859_4_APOSTROPHE 0x0027 #define T_ISO8859_4_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_4_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_4_ASTERISK 0x002A #define T_ISO8859_4_PLUS_SIGN 0x002B #define T_ISO8859_4_COMMA 0x002C #define T_ISO8859_4_HYPHEN_MINUS 0x002D #define T_ISO8859_4_FULL_STOP 0x002E #define T_ISO8859_4_SOLIDUS 0x002F #define T_ISO8859_4_DIGIT_ZERO 0x0030 #define T_ISO8859_4_DIGIT_ONE 0x0031 #define T_ISO8859_4_DIGIT_TWO 0x0032 #define T_ISO8859_4_DIGIT_THREE 0x0033 #define T_ISO8859_4_DIGIT_FOUR 0x0034 #define T_ISO8859_4_DIGIT_FIVE 0x0035 #define T_ISO8859_4_DIGIT_SIX 0x0036 #define T_ISO8859_4_DIGIT_SEVEN 0x0037 #define T_ISO8859_4_DIGIT_EIGHT 0x0038 #define T_ISO8859_4_DIGIT_NINE 0x0039 #define T_ISO8859_4_COLON 0x003A #define T_ISO8859_4_SEMICOLON 0x003B #define T_ISO8859_4_LESS_THAN_SIGN 0x003C #define T_ISO8859_4_EQUALS_SIGN 0x003D #define T_ISO8859_4_GREATER_THAN_SIGN 0x003E #define T_ISO8859_4_QUESTION_MARK 0x003F #define T_ISO8859_4_COMMERCIAL_AT 0x0040 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_4_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_4_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_4_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_4_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_4_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_4_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_4_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_4_REVERSE_SOLIDUS 0x005C #define T_ISO8859_4_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_4_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_4_LOW_LINE 0x005F #define T_ISO8859_4_GRAVE_ACCENT 0x0060 #define T_ISO8859_4_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_4_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_4_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_4_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_4_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_4_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_4_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_4_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_4_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_4_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_4_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_4_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_4_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_4_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_4_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_4_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_4_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_4_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_4_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_4_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_4_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_4_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_4_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_4_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_4_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_4_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_4_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_4_VERTICAL_LINE 0x007C #define T_ISO8859_4_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_4_TILDE 0x007E #define T_ISO8859_4_CTRL_DELETE 0x007F #define T_ISO8859_4_UNDEFINED_0080 0x0080 #define T_ISO8859_4_UNDEFINED_0081 0x0081 #define T_ISO8859_4_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_4_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_4_UNDEFINED_0084 0x0084 #define T_ISO8859_4_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_4_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_4_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_4_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_4_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_4_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_4_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_4_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_4_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_4_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_4_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_4_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_4_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_4_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_4_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_4_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_4_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_4_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_4_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_4_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_4_UNDEFINED_0099 0x0099 #define T_ISO8859_4_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_4_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_4_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_4_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_4_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_4_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_4_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x00A1 #define T_ISO8859_4_LATIN_SMALL_LETTER_KRA 0x00A2 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA 0x00A3 #define T_ISO8859_4_CURRENCY_SIGN 0x00A4 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_I_WITH_TILDE 0x00A5 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0x00A6 #define T_ISO8859_4_SECTION_SIGN 0x00A7 #define T_ISO8859_4_DIAERESIS 0x00A8 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00A9 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_E_WITH_MACRON 0x00AA #define T_ISO8859_4_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x00AB #define T_ISO8859_4_LATIN_CAPITAL_LETTER_T_WITH_STROKE 0x00AC #define T_ISO8859_4_SOFT_HYPHEN 0x00AD #define T_ISO8859_4_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00AE #define T_ISO8859_4_MACRON 0x00AF #define T_ISO8859_4_DEGREE_SIGN 0x00B0 #define T_ISO8859_4_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x00B1 #define T_ISO8859_4_OGONEK 0x00B2 #define T_ISO8859_4_LATIN_SMALL_LETTER_R_WITH_CEDILLA 0x00B3 #define T_ISO8859_4_ACUTE_ACCENT 0x00B4 #define T_ISO8859_4_LATIN_SMALL_LETTER_I_WITH_TILDE 0x00B5 #define T_ISO8859_4_LATIN_SMALL_LETTER_L_WITH_CEDILLA 0x00B6 #define T_ISO8859_4_CARON 0x00B7 #define T_ISO8859_4_CEDILLA 0x00B8 #define T_ISO8859_4_LATIN_SMALL_LETTER_S_WITH_CARON 0x00B9 #define T_ISO8859_4_LATIN_SMALL_LETTER_E_WITH_MACRON 0x00BA #define T_ISO8859_4_LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x00BB #define T_ISO8859_4_LATIN_SMALL_LETTER_T_WITH_STROKE 0x00BC #define T_ISO8859_4_LATIN_CAPITAL_LETTER_ENG 0x00BD #define T_ISO8859_4_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00BE #define T_ISO8859_4_LATIN_SMALL_LETTER_ENG 0x00BF #define T_ISO8859_4_LATIN_CAPITAL_LETTER_A_WITH_MACRON 0x00C0 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0x00C7 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x00C8 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00CA #define T_ISO8859_4_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_ISO8859_4_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0x00CC #define T_ISO8859_4_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_ISO8859_4_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_ISO8859_4_LATIN_CAPITAL_LETTER_I_WITH_MACRON 0x00CF #define T_ISO8859_4_LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x00D0 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0x00D1 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_O_WITH_MACRON 0x00D2 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0x00D3 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_ISO8859_4_MULTIPLICATION_SIGN 0x00D7 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0x00D9 #define T_ISO8859_4_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_ISO8859_4_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_ISO8859_4_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_ISO8859_4_LATIN_CAPITAL_LETTER_U_WITH_TILDE 0x00DD #define T_ISO8859_4_LATIN_CAPITAL_LETTER_U_WITH_MACRON 0x00DE #define T_ISO8859_4_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_ISO8859_4_LATIN_SMALL_LETTER_A_WITH_MACRON 0x00E0 #define T_ISO8859_4_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_ISO8859_4_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_ISO8859_4_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 #define T_ISO8859_4_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_ISO8859_4_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_ISO8859_4_LATIN_SMALL_LETTER_AE 0x00E6 #define T_ISO8859_4_LATIN_SMALL_LETTER_I_WITH_OGONEK 0x00E7 #define T_ISO8859_4_LATIN_SMALL_LETTER_C_WITH_CARON 0x00E8 #define T_ISO8859_4_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_ISO8859_4_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00EA #define T_ISO8859_4_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_ISO8859_4_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0x00EC #define T_ISO8859_4_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_ISO8859_4_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_ISO8859_4_LATIN_SMALL_LETTER_I_WITH_MACRON 0x00EF #define T_ISO8859_4_LATIN_SMALL_LETTER_D_WITH_STROKE 0x00F0 #define T_ISO8859_4_LATIN_SMALL_LETTER_N_WITH_CEDILLA 0x00F1 #define T_ISO8859_4_LATIN_SMALL_LETTER_O_WITH_MACRON 0x00F2 #define T_ISO8859_4_LATIN_SMALL_LETTER_K_WITH_CEDILLA 0x00F3 #define T_ISO8859_4_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_ISO8859_4_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_ISO8859_4_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_ISO8859_4_DIVISION_SIGN 0x00F7 #define T_ISO8859_4_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_ISO8859_4_LATIN_SMALL_LETTER_U_WITH_OGONEK 0x00F9 #define T_ISO8859_4_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_ISO8859_4_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_ISO8859_4_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_ISO8859_4_LATIN_SMALL_LETTER_U_WITH_TILDE 0x00FD #define T_ISO8859_4_LATIN_SMALL_LETTER_U_WITH_MACRON 0x00FE #define T_ISO8859_4_DOT_ABOVE 0x00FF /* list of all characters */ #define T_LIST_ISO8859_4(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_KRA) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_STROKE) \ EL(_SOFT_HYPHEN) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_MACRON) \ EL(_DEGREE_SIGN) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_OGONEK) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_ACUTE_ACCENT) \ EL(_LATIN_SMALL_LETTER_I_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_CARON) \ EL(_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_T_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_ENG) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_ENG) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_U_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_DOT_ABOVE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_4(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_KRA) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_OGONEK) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_I_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_CARON) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_T_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_ENG) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_ENG) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_U_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_DOT_ABOVE) #endif /* TUTF_ISO8859_4_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_5.h�����������������������������������������������������������������0000664�0000000�0000000�00000136473�13775351206�0016622�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_5_H #define TUTF_ISO8859_5_H #define T_ISO8859_5_CTRL_NULL 0x0000 #define T_ISO8859_5_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_5_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_5_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_5_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_5_CTRL_ENQUIRY 0x0005 #define T_ISO8859_5_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_5_CTRL_BELL 0x0007 #define T_ISO8859_5_CTRL_BACKSPACE 0x0008 #define T_ISO8859_5_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_5_CTRL_LINE_FEED 0x000A #define T_ISO8859_5_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_5_CTRL_FORM_FEED 0x000C #define T_ISO8859_5_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_5_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_5_CTRL_SHIFT_IN 0x000F #define T_ISO8859_5_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_5_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_5_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_5_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_5_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_5_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_5_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_5_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_5_CTRL_CANCEL 0x0018 #define T_ISO8859_5_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_5_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_5_CTRL_ESCAPE 0x001B #define T_ISO8859_5_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_5_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_5_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_5_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_5_SPACE 0x0020 #define T_ISO8859_5_EXCLAMATION_MARK 0x0021 #define T_ISO8859_5_QUOTATION_MARK 0x0022 #define T_ISO8859_5_NUMBER_SIGN 0x0023 #define T_ISO8859_5_DOLLAR_SIGN 0x0024 #define T_ISO8859_5_PERCENT_SIGN 0x0025 #define T_ISO8859_5_AMPERSAND 0x0026 #define T_ISO8859_5_APOSTROPHE 0x0027 #define T_ISO8859_5_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_5_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_5_ASTERISK 0x002A #define T_ISO8859_5_PLUS_SIGN 0x002B #define T_ISO8859_5_COMMA 0x002C #define T_ISO8859_5_HYPHEN_MINUS 0x002D #define T_ISO8859_5_FULL_STOP 0x002E #define T_ISO8859_5_SOLIDUS 0x002F #define T_ISO8859_5_DIGIT_ZERO 0x0030 #define T_ISO8859_5_DIGIT_ONE 0x0031 #define T_ISO8859_5_DIGIT_TWO 0x0032 #define T_ISO8859_5_DIGIT_THREE 0x0033 #define T_ISO8859_5_DIGIT_FOUR 0x0034 #define T_ISO8859_5_DIGIT_FIVE 0x0035 #define T_ISO8859_5_DIGIT_SIX 0x0036 #define T_ISO8859_5_DIGIT_SEVEN 0x0037 #define T_ISO8859_5_DIGIT_EIGHT 0x0038 #define T_ISO8859_5_DIGIT_NINE 0x0039 #define T_ISO8859_5_COLON 0x003A #define T_ISO8859_5_SEMICOLON 0x003B #define T_ISO8859_5_LESS_THAN_SIGN 0x003C #define T_ISO8859_5_EQUALS_SIGN 0x003D #define T_ISO8859_5_GREATER_THAN_SIGN 0x003E #define T_ISO8859_5_QUESTION_MARK 0x003F #define T_ISO8859_5_COMMERCIAL_AT 0x0040 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_5_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_5_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_5_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_5_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_5_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_5_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_5_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_5_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_5_REVERSE_SOLIDUS 0x005C #define T_ISO8859_5_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_5_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_5_LOW_LINE 0x005F #define T_ISO8859_5_GRAVE_ACCENT 0x0060 #define T_ISO8859_5_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_5_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_5_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_5_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_5_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_5_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_5_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_5_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_5_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_5_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_5_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_5_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_5_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_5_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_5_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_5_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_5_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_5_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_5_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_5_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_5_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_5_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_5_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_5_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_5_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_5_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_5_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_5_VERTICAL_LINE 0x007C #define T_ISO8859_5_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_5_TILDE 0x007E #define T_ISO8859_5_CTRL_DELETE 0x007F #define T_ISO8859_5_UNDEFINED_0080 0x0080 #define T_ISO8859_5_UNDEFINED_0081 0x0081 #define T_ISO8859_5_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_5_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_5_UNDEFINED_0084 0x0084 #define T_ISO8859_5_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_5_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_5_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_5_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_5_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_5_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_5_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_5_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_5_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_5_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_5_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_5_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_5_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_5_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_5_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_5_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_5_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_5_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_5_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_5_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_5_UNDEFINED_0099 0x0099 #define T_ISO8859_5_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_5_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_5_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_5_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_5_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_5_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_5_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_IO 0x00A1 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_DJE 0x00A2 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_GJE 0x00A3 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0x00A4 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_DZE 0x00A5 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00A6 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_YI 0x00A7 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_JE 0x00A8 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_LJE 0x00A9 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_NJE 0x00AA #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_TSHE 0x00AB #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_KJE 0x00AC #define T_ISO8859_5_SOFT_HYPHEN 0x00AD #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_SHORT_U 0x00AE #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_DZHE 0x00AF #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_A 0x00B0 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_BE 0x00B1 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_VE 0x00B2 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_GHE 0x00B3 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_DE 0x00B4 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_IE 0x00B5 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_ZHE 0x00B6 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_ZE 0x00B7 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_I 0x00B8 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x00B9 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_KA 0x00BA #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_EL 0x00BB #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_EM 0x00BC #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_EN 0x00BD #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_O 0x00BE #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_PE 0x00BF #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_ER 0x00C0 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_ES 0x00C1 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_TE 0x00C2 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_U 0x00C3 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_EF 0x00C4 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_HA 0x00C5 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_TSE 0x00C6 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_CHE 0x00C7 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_SHA 0x00C8 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_SHCHA 0x00C9 #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x00CA #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_YERU 0x00CB #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x00CC #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_E 0x00CD #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_YU 0x00CE #define T_ISO8859_5_CYRILLIC_CAPITAL_LETTER_YA 0x00CF #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_A 0x00D0 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_BE 0x00D1 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_VE 0x00D2 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_GHE 0x00D3 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_DE 0x00D4 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_IE 0x00D5 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_ZHE 0x00D6 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_ZE 0x00D7 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_I 0x00D8 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_SHORT_I 0x00D9 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_KA 0x00DA #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_EL 0x00DB #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_EM 0x00DC #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_EN 0x00DD #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_O 0x00DE #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_PE 0x00DF #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_ER 0x00E0 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_ES 0x00E1 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_TE 0x00E2 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_U 0x00E3 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_EF 0x00E4 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_HA 0x00E5 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_TSE 0x00E6 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_CHE 0x00E7 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_SHA 0x00E8 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_SHCHA 0x00E9 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x00EA #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_YERU 0x00EB #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0x00EC #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_E 0x00ED #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_YU 0x00EE #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_YA 0x00EF #define T_ISO8859_5_NUMERO_SIGN 0x00F0 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_IO 0x00F1 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_DJE 0x00F2 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_GJE 0x00F3 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0x00F4 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_DZE 0x00F5 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00F6 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_YI 0x00F7 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_JE 0x00F8 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_LJE 0x00F9 #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_NJE 0x00FA #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_TSHE 0x00FB #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_KJE 0x00FC #define T_ISO8859_5_SECTION_SIGN 0x00FD #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_SHORT_U 0x00FE #define T_ISO8859_5_CYRILLIC_SMALL_LETTER_DZHE 0x00FF /* list of all characters */ #define T_LIST_ISO8859_5(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZE) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSHE) \ EL(_CYRILLIC_CAPITAL_LETTER_KJE) \ EL(_SOFT_HYPHEN) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_NUMERO_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_DZE) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_SMALL_LETTER_JE) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_TSHE) \ EL(_CYRILLIC_SMALL_LETTER_KJE) \ EL(_SECTION_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_5(EL) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZE) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSHE) \ EL(_CYRILLIC_CAPITAL_LETTER_KJE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_NUMERO_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_DZE) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_SMALL_LETTER_JE) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_TSHE) \ EL(_CYRILLIC_SMALL_LETTER_KJE) \ EL(_SECTION_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) #endif /* TUTF_ISO8859_5_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_6.h�����������������������������������������������������������������0000664�0000000�0000000�00000112636�13775351206�0016616�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_6_H #define TUTF_ISO8859_6_H #define T_ISO8859_6_CTRL_NULL 0x0000 #define T_ISO8859_6_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_6_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_6_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_6_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_6_CTRL_ENQUIRY 0x0005 #define T_ISO8859_6_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_6_CTRL_BELL 0x0007 #define T_ISO8859_6_CTRL_BACKSPACE 0x0008 #define T_ISO8859_6_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_6_CTRL_LINE_FEED 0x000A #define T_ISO8859_6_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_6_CTRL_FORM_FEED 0x000C #define T_ISO8859_6_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_6_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_6_CTRL_SHIFT_IN 0x000F #define T_ISO8859_6_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_6_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_6_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_6_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_6_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_6_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_6_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_6_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_6_CTRL_CANCEL 0x0018 #define T_ISO8859_6_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_6_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_6_CTRL_ESCAPE 0x001B #define T_ISO8859_6_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_6_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_6_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_6_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_6_SPACE 0x0020 #define T_ISO8859_6_EXCLAMATION_MARK 0x0021 #define T_ISO8859_6_QUOTATION_MARK 0x0022 #define T_ISO8859_6_NUMBER_SIGN 0x0023 #define T_ISO8859_6_DOLLAR_SIGN 0x0024 #define T_ISO8859_6_PERCENT_SIGN 0x0025 #define T_ISO8859_6_AMPERSAND 0x0026 #define T_ISO8859_6_APOSTROPHE 0x0027 #define T_ISO8859_6_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_6_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_6_ASTERISK 0x002A #define T_ISO8859_6_PLUS_SIGN 0x002B #define T_ISO8859_6_COMMA 0x002C #define T_ISO8859_6_HYPHEN_MINUS 0x002D #define T_ISO8859_6_FULL_STOP 0x002E #define T_ISO8859_6_SOLIDUS 0x002F #define T_ISO8859_6_DIGIT_ZERO 0x0030 #define T_ISO8859_6_DIGIT_ONE 0x0031 #define T_ISO8859_6_DIGIT_TWO 0x0032 #define T_ISO8859_6_DIGIT_THREE 0x0033 #define T_ISO8859_6_DIGIT_FOUR 0x0034 #define T_ISO8859_6_DIGIT_FIVE 0x0035 #define T_ISO8859_6_DIGIT_SIX 0x0036 #define T_ISO8859_6_DIGIT_SEVEN 0x0037 #define T_ISO8859_6_DIGIT_EIGHT 0x0038 #define T_ISO8859_6_DIGIT_NINE 0x0039 #define T_ISO8859_6_COLON 0x003A #define T_ISO8859_6_SEMICOLON 0x003B #define T_ISO8859_6_LESS_THAN_SIGN 0x003C #define T_ISO8859_6_EQUALS_SIGN 0x003D #define T_ISO8859_6_GREATER_THAN_SIGN 0x003E #define T_ISO8859_6_QUESTION_MARK 0x003F #define T_ISO8859_6_COMMERCIAL_AT 0x0040 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_6_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_6_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_6_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_6_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_6_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_6_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_6_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_6_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_6_REVERSE_SOLIDUS 0x005C #define T_ISO8859_6_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_6_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_6_LOW_LINE 0x005F #define T_ISO8859_6_GRAVE_ACCENT 0x0060 #define T_ISO8859_6_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_6_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_6_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_6_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_6_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_6_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_6_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_6_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_6_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_6_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_6_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_6_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_6_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_6_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_6_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_6_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_6_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_6_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_6_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_6_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_6_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_6_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_6_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_6_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_6_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_6_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_6_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_6_VERTICAL_LINE 0x007C #define T_ISO8859_6_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_6_TILDE 0x007E #define T_ISO8859_6_CTRL_DELETE 0x007F #define T_ISO8859_6_UNDEFINED_0080 0x0080 #define T_ISO8859_6_UNDEFINED_0081 0x0081 #define T_ISO8859_6_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_6_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_6_UNDEFINED_0084 0x0084 #define T_ISO8859_6_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_6_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_6_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_6_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_6_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_6_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_6_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_6_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_6_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_6_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_6_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_6_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_6_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_6_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_6_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_6_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_6_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_6_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_6_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_6_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_6_UNDEFINED_0099 0x0099 #define T_ISO8859_6_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_6_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_6_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_6_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_6_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_6_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_6_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_6_UNDEFINED_00A1 0x00A1 #define T_ISO8859_6_UNDEFINED_00A2 0x00A2 #define T_ISO8859_6_UNDEFINED_00A3 0x00A3 #define T_ISO8859_6_CURRENCY_SIGN 0x00A4 #define T_ISO8859_6_UNDEFINED_00A5 0x00A5 #define T_ISO8859_6_UNDEFINED_00A6 0x00A6 #define T_ISO8859_6_UNDEFINED_00A7 0x00A7 #define T_ISO8859_6_UNDEFINED_00A8 0x00A8 #define T_ISO8859_6_UNDEFINED_00A9 0x00A9 #define T_ISO8859_6_UNDEFINED_00AA 0x00AA #define T_ISO8859_6_UNDEFINED_00AB 0x00AB #define T_ISO8859_6_ARABIC_COMMA 0x00AC #define T_ISO8859_6_SOFT_HYPHEN 0x00AD #define T_ISO8859_6_UNDEFINED_00AE 0x00AE #define T_ISO8859_6_UNDEFINED_00AF 0x00AF #define T_ISO8859_6_UNDEFINED_00B0 0x00B0 #define T_ISO8859_6_UNDEFINED_00B1 0x00B1 #define T_ISO8859_6_UNDEFINED_00B2 0x00B2 #define T_ISO8859_6_UNDEFINED_00B3 0x00B3 #define T_ISO8859_6_UNDEFINED_00B4 0x00B4 #define T_ISO8859_6_UNDEFINED_00B5 0x00B5 #define T_ISO8859_6_UNDEFINED_00B6 0x00B6 #define T_ISO8859_6_UNDEFINED_00B7 0x00B7 #define T_ISO8859_6_UNDEFINED_00B8 0x00B8 #define T_ISO8859_6_UNDEFINED_00B9 0x00B9 #define T_ISO8859_6_UNDEFINED_00BA 0x00BA #define T_ISO8859_6_ARABIC_SEMICOLON 0x00BB #define T_ISO8859_6_UNDEFINED_00BC 0x00BC #define T_ISO8859_6_UNDEFINED_00BD 0x00BD #define T_ISO8859_6_UNDEFINED_00BE 0x00BE #define T_ISO8859_6_ARABIC_QUESTION_MARK 0x00BF #define T_ISO8859_6_UNDEFINED_00C0 0x00C0 #define T_ISO8859_6_ARABIC_LETTER_HAMZA 0x00C1 #define T_ISO8859_6_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE 0x00C2 #define T_ISO8859_6_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE 0x00C3 #define T_ISO8859_6_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE 0x00C4 #define T_ISO8859_6_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW 0x00C5 #define T_ISO8859_6_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE 0x00C6 #define T_ISO8859_6_ARABIC_LETTER_ALEF 0x00C7 #define T_ISO8859_6_ARABIC_LETTER_BEH 0x00C8 #define T_ISO8859_6_ARABIC_LETTER_TEH_MARBUTA 0x00C9 #define T_ISO8859_6_ARABIC_LETTER_TEH 0x00CA #define T_ISO8859_6_ARABIC_LETTER_THEH 0x00CB #define T_ISO8859_6_ARABIC_LETTER_JEEM 0x00CC #define T_ISO8859_6_ARABIC_LETTER_HAH 0x00CD #define T_ISO8859_6_ARABIC_LETTER_KHAH 0x00CE #define T_ISO8859_6_ARABIC_LETTER_DAL 0x00CF #define T_ISO8859_6_ARABIC_LETTER_THAL 0x00D0 #define T_ISO8859_6_ARABIC_LETTER_REH 0x00D1 #define T_ISO8859_6_ARABIC_LETTER_ZAIN 0x00D2 #define T_ISO8859_6_ARABIC_LETTER_SEEN 0x00D3 #define T_ISO8859_6_ARABIC_LETTER_SHEEN 0x00D4 #define T_ISO8859_6_ARABIC_LETTER_SAD 0x00D5 #define T_ISO8859_6_ARABIC_LETTER_DAD 0x00D6 #define T_ISO8859_6_ARABIC_LETTER_TAH 0x00D7 #define T_ISO8859_6_ARABIC_LETTER_ZAH 0x00D8 #define T_ISO8859_6_ARABIC_LETTER_AIN 0x00D9 #define T_ISO8859_6_ARABIC_LETTER_GHAIN 0x00DA #define T_ISO8859_6_UNDEFINED_00DB 0x00DB #define T_ISO8859_6_UNDEFINED_00DC 0x00DC #define T_ISO8859_6_UNDEFINED_00DD 0x00DD #define T_ISO8859_6_UNDEFINED_00DE 0x00DE #define T_ISO8859_6_UNDEFINED_00DF 0x00DF #define T_ISO8859_6_ARABIC_TATWEEL 0x00E0 #define T_ISO8859_6_ARABIC_LETTER_FEH 0x00E1 #define T_ISO8859_6_ARABIC_LETTER_QAF 0x00E2 #define T_ISO8859_6_ARABIC_LETTER_KAF 0x00E3 #define T_ISO8859_6_ARABIC_LETTER_LAM 0x00E4 #define T_ISO8859_6_ARABIC_LETTER_MEEM 0x00E5 #define T_ISO8859_6_ARABIC_LETTER_NOON 0x00E6 #define T_ISO8859_6_ARABIC_LETTER_HEH 0x00E7 #define T_ISO8859_6_ARABIC_LETTER_WAW 0x00E8 #define T_ISO8859_6_ARABIC_LETTER_ALEF_MAKSURA 0x00E9 #define T_ISO8859_6_ARABIC_LETTER_YEH 0x00EA #define T_ISO8859_6_ARABIC_FATHATAN 0x00EB #define T_ISO8859_6_ARABIC_DAMMATAN 0x00EC #define T_ISO8859_6_ARABIC_KASRATAN 0x00ED #define T_ISO8859_6_ARABIC_FATHA 0x00EE #define T_ISO8859_6_ARABIC_DAMMA 0x00EF #define T_ISO8859_6_ARABIC_KASRA 0x00F0 #define T_ISO8859_6_ARABIC_SHADDA 0x00F1 #define T_ISO8859_6_ARABIC_SUKUN 0x00F2 #define T_ISO8859_6_UNDEFINED_00F3 0x00F3 #define T_ISO8859_6_UNDEFINED_00F4 0x00F4 #define T_ISO8859_6_UNDEFINED_00F5 0x00F5 #define T_ISO8859_6_UNDEFINED_00F6 0x00F6 #define T_ISO8859_6_UNDEFINED_00F7 0x00F7 #define T_ISO8859_6_UNDEFINED_00F8 0x00F8 #define T_ISO8859_6_UNDEFINED_00F9 0x00F9 #define T_ISO8859_6_UNDEFINED_00FA 0x00FA #define T_ISO8859_6_UNDEFINED_00FB 0x00FB #define T_ISO8859_6_UNDEFINED_00FC 0x00FC #define T_ISO8859_6_UNDEFINED_00FD 0x00FD #define T_ISO8859_6_UNDEFINED_00FE 0x00FE #define T_ISO8859_6_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_ISO8859_6(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_CURRENCY_SIGN) \ EL(_ARABIC_COMMA) \ EL(_SOFT_HYPHEN) \ EL(_ARABIC_SEMICOLON) \ EL(_ARABIC_QUESTION_MARK) \ EL(_ARABIC_LETTER_HAMZA) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF) \ EL(_ARABIC_LETTER_BEH) \ EL(_ARABIC_LETTER_TEH_MARBUTA) \ EL(_ARABIC_LETTER_TEH) \ EL(_ARABIC_LETTER_THEH) \ EL(_ARABIC_LETTER_JEEM) \ EL(_ARABIC_LETTER_HAH) \ EL(_ARABIC_LETTER_KHAH) \ EL(_ARABIC_LETTER_DAL) \ EL(_ARABIC_LETTER_THAL) \ EL(_ARABIC_LETTER_REH) \ EL(_ARABIC_LETTER_ZAIN) \ EL(_ARABIC_LETTER_SEEN) \ EL(_ARABIC_LETTER_SHEEN) \ EL(_ARABIC_LETTER_SAD) \ EL(_ARABIC_LETTER_DAD) \ EL(_ARABIC_LETTER_TAH) \ EL(_ARABIC_LETTER_ZAH) \ EL(_ARABIC_LETTER_AIN) \ EL(_ARABIC_LETTER_GHAIN) \ EL(_ARABIC_TATWEEL) \ EL(_ARABIC_LETTER_FEH) \ EL(_ARABIC_LETTER_QAF) \ EL(_ARABIC_LETTER_KAF) \ EL(_ARABIC_LETTER_LAM) \ EL(_ARABIC_LETTER_MEEM) \ EL(_ARABIC_LETTER_NOON) \ EL(_ARABIC_LETTER_HEH) \ EL(_ARABIC_LETTER_WAW) \ EL(_ARABIC_LETTER_ALEF_MAKSURA) \ EL(_ARABIC_LETTER_YEH) \ EL(_ARABIC_FATHATAN) \ EL(_ARABIC_DAMMATAN) \ EL(_ARABIC_KASRATAN) \ EL(_ARABIC_FATHA) \ EL(_ARABIC_DAMMA) \ EL(_ARABIC_KASRA) \ EL(_ARABIC_SHADDA) \ EL(_ARABIC_SUKUN) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_6(EL) \ EL(_ARABIC_COMMA) \ EL(_ARABIC_SEMICOLON) \ EL(_ARABIC_QUESTION_MARK) \ EL(_ARABIC_LETTER_HAMZA) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF) \ EL(_ARABIC_LETTER_BEH) \ EL(_ARABIC_LETTER_TEH_MARBUTA) \ EL(_ARABIC_LETTER_TEH) \ EL(_ARABIC_LETTER_THEH) \ EL(_ARABIC_LETTER_JEEM) \ EL(_ARABIC_LETTER_HAH) \ EL(_ARABIC_LETTER_KHAH) \ EL(_ARABIC_LETTER_DAL) \ EL(_ARABIC_LETTER_THAL) \ EL(_ARABIC_LETTER_REH) \ EL(_ARABIC_LETTER_ZAIN) \ EL(_ARABIC_LETTER_SEEN) \ EL(_ARABIC_LETTER_SHEEN) \ EL(_ARABIC_LETTER_SAD) \ EL(_ARABIC_LETTER_DAD) \ EL(_ARABIC_LETTER_TAH) \ EL(_ARABIC_LETTER_ZAH) \ EL(_ARABIC_LETTER_AIN) \ EL(_ARABIC_LETTER_GHAIN) \ EL(_ARABIC_TATWEEL) \ EL(_ARABIC_LETTER_FEH) \ EL(_ARABIC_LETTER_QAF) \ EL(_ARABIC_LETTER_KAF) \ EL(_ARABIC_LETTER_LAM) \ EL(_ARABIC_LETTER_MEEM) \ EL(_ARABIC_LETTER_NOON) \ EL(_ARABIC_LETTER_HEH) \ EL(_ARABIC_LETTER_WAW) \ EL(_ARABIC_LETTER_ALEF_MAKSURA) \ EL(_ARABIC_LETTER_YEH) \ EL(_ARABIC_FATHATAN) \ EL(_ARABIC_DAMMATAN) \ EL(_ARABIC_KASRATAN) \ EL(_ARABIC_FATHA) \ EL(_ARABIC_DAMMA) \ EL(_ARABIC_KASRA) \ EL(_ARABIC_SHADDA) \ EL(_ARABIC_SUKUN) #endif /* TUTF_ISO8859_6_H */ ��������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_7.h�����������������������������������������������������������������0000664�0000000�0000000�00000132422�13775351206�0016612�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_7_H #define TUTF_ISO8859_7_H #define T_ISO8859_7_CTRL_NULL 0x0000 #define T_ISO8859_7_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_7_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_7_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_7_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_7_CTRL_ENQUIRY 0x0005 #define T_ISO8859_7_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_7_CTRL_BELL 0x0007 #define T_ISO8859_7_CTRL_BACKSPACE 0x0008 #define T_ISO8859_7_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_7_CTRL_LINE_FEED 0x000A #define T_ISO8859_7_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_7_CTRL_FORM_FEED 0x000C #define T_ISO8859_7_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_7_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_7_CTRL_SHIFT_IN 0x000F #define T_ISO8859_7_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_7_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_7_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_7_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_7_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_7_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_7_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_7_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_7_CTRL_CANCEL 0x0018 #define T_ISO8859_7_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_7_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_7_CTRL_ESCAPE 0x001B #define T_ISO8859_7_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_7_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_7_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_7_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_7_SPACE 0x0020 #define T_ISO8859_7_EXCLAMATION_MARK 0x0021 #define T_ISO8859_7_QUOTATION_MARK 0x0022 #define T_ISO8859_7_NUMBER_SIGN 0x0023 #define T_ISO8859_7_DOLLAR_SIGN 0x0024 #define T_ISO8859_7_PERCENT_SIGN 0x0025 #define T_ISO8859_7_AMPERSAND 0x0026 #define T_ISO8859_7_APOSTROPHE 0x0027 #define T_ISO8859_7_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_7_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_7_ASTERISK 0x002A #define T_ISO8859_7_PLUS_SIGN 0x002B #define T_ISO8859_7_COMMA 0x002C #define T_ISO8859_7_HYPHEN_MINUS 0x002D #define T_ISO8859_7_FULL_STOP 0x002E #define T_ISO8859_7_SOLIDUS 0x002F #define T_ISO8859_7_DIGIT_ZERO 0x0030 #define T_ISO8859_7_DIGIT_ONE 0x0031 #define T_ISO8859_7_DIGIT_TWO 0x0032 #define T_ISO8859_7_DIGIT_THREE 0x0033 #define T_ISO8859_7_DIGIT_FOUR 0x0034 #define T_ISO8859_7_DIGIT_FIVE 0x0035 #define T_ISO8859_7_DIGIT_SIX 0x0036 #define T_ISO8859_7_DIGIT_SEVEN 0x0037 #define T_ISO8859_7_DIGIT_EIGHT 0x0038 #define T_ISO8859_7_DIGIT_NINE 0x0039 #define T_ISO8859_7_COLON 0x003A #define T_ISO8859_7_SEMICOLON 0x003B #define T_ISO8859_7_LESS_THAN_SIGN 0x003C #define T_ISO8859_7_EQUALS_SIGN 0x003D #define T_ISO8859_7_GREATER_THAN_SIGN 0x003E #define T_ISO8859_7_QUESTION_MARK 0x003F #define T_ISO8859_7_COMMERCIAL_AT 0x0040 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_7_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_7_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_7_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_7_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_7_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_7_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_7_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_7_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_7_REVERSE_SOLIDUS 0x005C #define T_ISO8859_7_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_7_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_7_LOW_LINE 0x005F #define T_ISO8859_7_GRAVE_ACCENT 0x0060 #define T_ISO8859_7_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_7_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_7_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_7_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_7_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_7_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_7_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_7_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_7_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_7_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_7_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_7_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_7_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_7_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_7_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_7_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_7_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_7_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_7_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_7_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_7_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_7_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_7_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_7_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_7_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_7_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_7_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_7_VERTICAL_LINE 0x007C #define T_ISO8859_7_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_7_TILDE 0x007E #define T_ISO8859_7_CTRL_DELETE 0x007F #define T_ISO8859_7_UNDEFINED_0080 0x0080 #define T_ISO8859_7_UNDEFINED_0081 0x0081 #define T_ISO8859_7_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_7_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_7_UNDEFINED_0084 0x0084 #define T_ISO8859_7_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_7_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_7_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_7_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_7_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_7_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_7_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_7_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_7_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_7_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_7_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_7_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_7_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_7_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_7_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_7_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_7_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_7_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_7_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_7_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_7_UNDEFINED_0099 0x0099 #define T_ISO8859_7_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_7_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_7_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_7_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_7_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_7_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_7_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_7_LEFT_SINGLE_QUOTATION_MARK 0x00A1 #define T_ISO8859_7_RIGHT_SINGLE_QUOTATION_MARK 0x00A2 #define T_ISO8859_7_POUND_SIGN 0x00A3 #define T_ISO8859_7_EURO_SIGN 0x00A4 #define T_ISO8859_7_DRACHMA_SIGN 0x00A5 #define T_ISO8859_7_BROKEN_BAR 0x00A6 #define T_ISO8859_7_SECTION_SIGN 0x00A7 #define T_ISO8859_7_DIAERESIS 0x00A8 #define T_ISO8859_7_COPYRIGHT_SIGN 0x00A9 #define T_ISO8859_7_GREEK_YPOGEGRAMMENI 0x00AA #define T_ISO8859_7_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_ISO8859_7_NOT_SIGN 0x00AC #define T_ISO8859_7_SOFT_HYPHEN 0x00AD #define T_ISO8859_7_UNDEFINED_00AE 0x00AE #define T_ISO8859_7_HORIZONTAL_BAR 0x00AF #define T_ISO8859_7_DEGREE_SIGN 0x00B0 #define T_ISO8859_7_PLUS_MINUS_SIGN 0x00B1 #define T_ISO8859_7_SUPERSCRIPT_TWO 0x00B2 #define T_ISO8859_7_SUPERSCRIPT_THREE 0x00B3 #define T_ISO8859_7_GREEK_TONOS 0x00B4 #define T_ISO8859_7_GREEK_DIALYTIKA_TONOS 0x00B5 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0x00B6 #define T_ISO8859_7_MIDDLE_DOT 0x00B7 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0x00B8 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0x00B9 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0x00BA #define T_ISO8859_7_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_ISO8859_7_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0x00BC #define T_ISO8859_7_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_ISO8859_7_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0x00BE #define T_ISO8859_7_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0x00BF #define T_ISO8859_7_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS 0x00C0 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_ALPHA 0x00C1 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_BETA 0x00C2 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_GAMMA 0x00C3 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_DELTA 0x00C4 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_EPSILON 0x00C5 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_ZETA 0x00C6 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_ETA 0x00C7 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_THETA 0x00C8 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_IOTA 0x00C9 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_KAPPA 0x00CA #define T_ISO8859_7_GREEK_CAPITAL_LETTER_LAMDA 0x00CB #define T_ISO8859_7_GREEK_CAPITAL_LETTER_MU 0x00CC #define T_ISO8859_7_GREEK_CAPITAL_LETTER_NU 0x00CD #define T_ISO8859_7_GREEK_CAPITAL_LETTER_XI 0x00CE #define T_ISO8859_7_GREEK_CAPITAL_LETTER_OMICRON 0x00CF #define T_ISO8859_7_GREEK_CAPITAL_LETTER_PI 0x00D0 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_RHO 0x00D1 #define T_ISO8859_7_UNDEFINED_00D2 0x00D2 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_SIGMA 0x00D3 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_TAU 0x00D4 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_UPSILON 0x00D5 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_PHI 0x00D6 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_CHI 0x00D7 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_PSI 0x00D8 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_OMEGA 0x00D9 #define T_ISO8859_7_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0x00DA #define T_ISO8859_7_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0x00DB #define T_ISO8859_7_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0x00DC #define T_ISO8859_7_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0x00DD #define T_ISO8859_7_GREEK_SMALL_LETTER_ETA_WITH_TONOS 0x00DE #define T_ISO8859_7_GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0x00DF #define T_ISO8859_7_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS 0x00E0 #define T_ISO8859_7_GREEK_SMALL_LETTER_ALPHA 0x00E1 #define T_ISO8859_7_GREEK_SMALL_LETTER_BETA 0x00E2 #define T_ISO8859_7_GREEK_SMALL_LETTER_GAMMA 0x00E3 #define T_ISO8859_7_GREEK_SMALL_LETTER_DELTA 0x00E4 #define T_ISO8859_7_GREEK_SMALL_LETTER_EPSILON 0x00E5 #define T_ISO8859_7_GREEK_SMALL_LETTER_ZETA 0x00E6 #define T_ISO8859_7_GREEK_SMALL_LETTER_ETA 0x00E7 #define T_ISO8859_7_GREEK_SMALL_LETTER_THETA 0x00E8 #define T_ISO8859_7_GREEK_SMALL_LETTER_IOTA 0x00E9 #define T_ISO8859_7_GREEK_SMALL_LETTER_KAPPA 0x00EA #define T_ISO8859_7_GREEK_SMALL_LETTER_LAMDA 0x00EB #define T_ISO8859_7_GREEK_SMALL_LETTER_MU 0x00EC #define T_ISO8859_7_GREEK_SMALL_LETTER_NU 0x00ED #define T_ISO8859_7_GREEK_SMALL_LETTER_XI 0x00EE #define T_ISO8859_7_GREEK_SMALL_LETTER_OMICRON 0x00EF #define T_ISO8859_7_GREEK_SMALL_LETTER_PI 0x00F0 #define T_ISO8859_7_GREEK_SMALL_LETTER_RHO 0x00F1 #define T_ISO8859_7_GREEK_SMALL_LETTER_FINAL_SIGMA 0x00F2 #define T_ISO8859_7_GREEK_SMALL_LETTER_SIGMA 0x00F3 #define T_ISO8859_7_GREEK_SMALL_LETTER_TAU 0x00F4 #define T_ISO8859_7_GREEK_SMALL_LETTER_UPSILON 0x00F5 #define T_ISO8859_7_GREEK_SMALL_LETTER_PHI 0x00F6 #define T_ISO8859_7_GREEK_SMALL_LETTER_CHI 0x00F7 #define T_ISO8859_7_GREEK_SMALL_LETTER_PSI 0x00F8 #define T_ISO8859_7_GREEK_SMALL_LETTER_OMEGA 0x00F9 #define T_ISO8859_7_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0x00FA #define T_ISO8859_7_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0x00FB #define T_ISO8859_7_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0x00FC #define T_ISO8859_7_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0x00FD #define T_ISO8859_7_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0x00FE #define T_ISO8859_7_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_ISO8859_7(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_POUND_SIGN) \ EL(_EURO_SIGN) \ EL(_DRACHMA_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_GREEK_YPOGEGRAMMENI) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_HORIZONTAL_BAR) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_GREEK_TONOS) \ EL(_GREEK_DIALYTIKA_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_MIDDLE_DOT) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_7(EL) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_EURO_SIGN) \ EL(_DRACHMA_SIGN) \ EL(_GREEK_YPOGEGRAMMENI) \ EL(_HORIZONTAL_BAR) \ EL(_GREEK_TONOS) \ EL(_GREEK_DIALYTIKA_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) #endif /* TUTF_ISO8859_7_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_8.h�����������������������������������������������������������������0000664�0000000�0000000�00000111266�13775351206�0016616�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_8_H #define TUTF_ISO8859_8_H #define T_ISO8859_8_CTRL_NULL 0x0000 #define T_ISO8859_8_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_8_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_8_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_8_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_8_CTRL_ENQUIRY 0x0005 #define T_ISO8859_8_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_8_CTRL_BELL 0x0007 #define T_ISO8859_8_CTRL_BACKSPACE 0x0008 #define T_ISO8859_8_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_8_CTRL_LINE_FEED 0x000A #define T_ISO8859_8_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_8_CTRL_FORM_FEED 0x000C #define T_ISO8859_8_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_8_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_8_CTRL_SHIFT_IN 0x000F #define T_ISO8859_8_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_8_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_8_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_8_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_8_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_8_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_8_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_8_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_8_CTRL_CANCEL 0x0018 #define T_ISO8859_8_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_8_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_8_CTRL_ESCAPE 0x001B #define T_ISO8859_8_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_8_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_8_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_8_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_8_SPACE 0x0020 #define T_ISO8859_8_EXCLAMATION_MARK 0x0021 #define T_ISO8859_8_QUOTATION_MARK 0x0022 #define T_ISO8859_8_NUMBER_SIGN 0x0023 #define T_ISO8859_8_DOLLAR_SIGN 0x0024 #define T_ISO8859_8_PERCENT_SIGN 0x0025 #define T_ISO8859_8_AMPERSAND 0x0026 #define T_ISO8859_8_APOSTROPHE 0x0027 #define T_ISO8859_8_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_8_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_8_ASTERISK 0x002A #define T_ISO8859_8_PLUS_SIGN 0x002B #define T_ISO8859_8_COMMA 0x002C #define T_ISO8859_8_HYPHEN_MINUS 0x002D #define T_ISO8859_8_FULL_STOP 0x002E #define T_ISO8859_8_SOLIDUS 0x002F #define T_ISO8859_8_DIGIT_ZERO 0x0030 #define T_ISO8859_8_DIGIT_ONE 0x0031 #define T_ISO8859_8_DIGIT_TWO 0x0032 #define T_ISO8859_8_DIGIT_THREE 0x0033 #define T_ISO8859_8_DIGIT_FOUR 0x0034 #define T_ISO8859_8_DIGIT_FIVE 0x0035 #define T_ISO8859_8_DIGIT_SIX 0x0036 #define T_ISO8859_8_DIGIT_SEVEN 0x0037 #define T_ISO8859_8_DIGIT_EIGHT 0x0038 #define T_ISO8859_8_DIGIT_NINE 0x0039 #define T_ISO8859_8_COLON 0x003A #define T_ISO8859_8_SEMICOLON 0x003B #define T_ISO8859_8_LESS_THAN_SIGN 0x003C #define T_ISO8859_8_EQUALS_SIGN 0x003D #define T_ISO8859_8_GREATER_THAN_SIGN 0x003E #define T_ISO8859_8_QUESTION_MARK 0x003F #define T_ISO8859_8_COMMERCIAL_AT 0x0040 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_8_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_8_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_8_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_8_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_8_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_8_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_8_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_8_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_8_REVERSE_SOLIDUS 0x005C #define T_ISO8859_8_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_8_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_8_LOW_LINE 0x005F #define T_ISO8859_8_GRAVE_ACCENT 0x0060 #define T_ISO8859_8_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_8_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_8_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_8_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_8_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_8_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_8_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_8_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_8_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_8_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_8_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_8_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_8_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_8_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_8_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_8_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_8_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_8_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_8_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_8_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_8_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_8_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_8_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_8_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_8_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_8_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_8_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_8_VERTICAL_LINE 0x007C #define T_ISO8859_8_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_8_TILDE 0x007E #define T_ISO8859_8_CTRL_DELETE 0x007F #define T_ISO8859_8_UNDEFINED_0080 0x0080 #define T_ISO8859_8_UNDEFINED_0081 0x0081 #define T_ISO8859_8_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_8_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_8_UNDEFINED_0084 0x0084 #define T_ISO8859_8_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_8_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_8_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_8_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_8_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_8_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_8_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_8_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_8_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_8_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_8_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_8_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_8_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_8_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_8_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_8_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_8_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_8_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_8_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_8_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_8_UNDEFINED_0099 0x0099 #define T_ISO8859_8_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_8_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_8_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_8_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_8_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_8_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_8_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_8_UNDEFINED_00A1 0x00A1 #define T_ISO8859_8_CENT_SIGN 0x00A2 #define T_ISO8859_8_POUND_SIGN 0x00A3 #define T_ISO8859_8_CURRENCY_SIGN 0x00A4 #define T_ISO8859_8_YEN_SIGN 0x00A5 #define T_ISO8859_8_BROKEN_BAR 0x00A6 #define T_ISO8859_8_SECTION_SIGN 0x00A7 #define T_ISO8859_8_DIAERESIS 0x00A8 #define T_ISO8859_8_COPYRIGHT_SIGN 0x00A9 #define T_ISO8859_8_MULTIPLICATION_SIGN 0x00AA #define T_ISO8859_8_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_ISO8859_8_NOT_SIGN 0x00AC #define T_ISO8859_8_SOFT_HYPHEN 0x00AD #define T_ISO8859_8_REGISTERED_SIGN 0x00AE #define T_ISO8859_8_MACRON 0x00AF #define T_ISO8859_8_DEGREE_SIGN 0x00B0 #define T_ISO8859_8_PLUS_MINUS_SIGN 0x00B1 #define T_ISO8859_8_SUPERSCRIPT_TWO 0x00B2 #define T_ISO8859_8_SUPERSCRIPT_THREE 0x00B3 #define T_ISO8859_8_ACUTE_ACCENT 0x00B4 #define T_ISO8859_8_MICRO_SIGN 0x00B5 #define T_ISO8859_8_PILCROW_SIGN 0x00B6 #define T_ISO8859_8_MIDDLE_DOT 0x00B7 #define T_ISO8859_8_CEDILLA 0x00B8 #define T_ISO8859_8_SUPERSCRIPT_ONE 0x00B9 #define T_ISO8859_8_DIVISION_SIGN 0x00BA #define T_ISO8859_8_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_ISO8859_8_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_ISO8859_8_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_ISO8859_8_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_ISO8859_8_UNDEFINED_00BF 0x00BF #define T_ISO8859_8_UNDEFINED_00C0 0x00C0 #define T_ISO8859_8_UNDEFINED_00C1 0x00C1 #define T_ISO8859_8_UNDEFINED_00C2 0x00C2 #define T_ISO8859_8_UNDEFINED_00C3 0x00C3 #define T_ISO8859_8_UNDEFINED_00C4 0x00C4 #define T_ISO8859_8_UNDEFINED_00C5 0x00C5 #define T_ISO8859_8_UNDEFINED_00C6 0x00C6 #define T_ISO8859_8_UNDEFINED_00C7 0x00C7 #define T_ISO8859_8_UNDEFINED_00C8 0x00C8 #define T_ISO8859_8_UNDEFINED_00C9 0x00C9 #define T_ISO8859_8_UNDEFINED_00CA 0x00CA #define T_ISO8859_8_UNDEFINED_00CB 0x00CB #define T_ISO8859_8_UNDEFINED_00CC 0x00CC #define T_ISO8859_8_UNDEFINED_00CD 0x00CD #define T_ISO8859_8_UNDEFINED_00CE 0x00CE #define T_ISO8859_8_UNDEFINED_00CF 0x00CF #define T_ISO8859_8_UNDEFINED_00D0 0x00D0 #define T_ISO8859_8_UNDEFINED_00D1 0x00D1 #define T_ISO8859_8_UNDEFINED_00D2 0x00D2 #define T_ISO8859_8_UNDEFINED_00D3 0x00D3 #define T_ISO8859_8_UNDEFINED_00D4 0x00D4 #define T_ISO8859_8_UNDEFINED_00D5 0x00D5 #define T_ISO8859_8_UNDEFINED_00D6 0x00D6 #define T_ISO8859_8_UNDEFINED_00D7 0x00D7 #define T_ISO8859_8_UNDEFINED_00D8 0x00D8 #define T_ISO8859_8_UNDEFINED_00D9 0x00D9 #define T_ISO8859_8_UNDEFINED_00DA 0x00DA #define T_ISO8859_8_UNDEFINED_00DB 0x00DB #define T_ISO8859_8_UNDEFINED_00DC 0x00DC #define T_ISO8859_8_UNDEFINED_00DD 0x00DD #define T_ISO8859_8_UNDEFINED_00DE 0x00DE #define T_ISO8859_8_DOUBLE_LOW_LINE 0x00DF #define T_ISO8859_8_HEBREW_LETTER_ALEF 0x00E0 #define T_ISO8859_8_HEBREW_LETTER_BET 0x00E1 #define T_ISO8859_8_HEBREW_LETTER_GIMEL 0x00E2 #define T_ISO8859_8_HEBREW_LETTER_DALET 0x00E3 #define T_ISO8859_8_HEBREW_LETTER_HE 0x00E4 #define T_ISO8859_8_HEBREW_LETTER_VAV 0x00E5 #define T_ISO8859_8_HEBREW_LETTER_ZAYIN 0x00E6 #define T_ISO8859_8_HEBREW_LETTER_HET 0x00E7 #define T_ISO8859_8_HEBREW_LETTER_TET 0x00E8 #define T_ISO8859_8_HEBREW_LETTER_YOD 0x00E9 #define T_ISO8859_8_HEBREW_LETTER_FINAL_KAF 0x00EA #define T_ISO8859_8_HEBREW_LETTER_KAF 0x00EB #define T_ISO8859_8_HEBREW_LETTER_LAMED 0x00EC #define T_ISO8859_8_HEBREW_LETTER_FINAL_MEM 0x00ED #define T_ISO8859_8_HEBREW_LETTER_MEM 0x00EE #define T_ISO8859_8_HEBREW_LETTER_FINAL_NUN 0x00EF #define T_ISO8859_8_HEBREW_LETTER_NUN 0x00F0 #define T_ISO8859_8_HEBREW_LETTER_SAMEKH 0x00F1 #define T_ISO8859_8_HEBREW_LETTER_AYIN 0x00F2 #define T_ISO8859_8_HEBREW_LETTER_FINAL_PE 0x00F3 #define T_ISO8859_8_HEBREW_LETTER_PE 0x00F4 #define T_ISO8859_8_HEBREW_LETTER_FINAL_TSADI 0x00F5 #define T_ISO8859_8_HEBREW_LETTER_TSADI 0x00F6 #define T_ISO8859_8_HEBREW_LETTER_QOF 0x00F7 #define T_ISO8859_8_HEBREW_LETTER_RESH 0x00F8 #define T_ISO8859_8_HEBREW_LETTER_SHIN 0x00F9 #define T_ISO8859_8_HEBREW_LETTER_TAV 0x00FA #define T_ISO8859_8_UNDEFINED_00FB 0x00FB #define T_ISO8859_8_UNDEFINED_00FC 0x00FC #define T_ISO8859_8_LEFT_TO_RIGHT_MARK 0x00FD #define T_ISO8859_8_RIGHT_TO_LEFT_MARK 0x00FE #define T_ISO8859_8_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_ISO8859_8(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_YEN_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_MULTIPLICATION_SIGN) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_MACRON) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_ONE) \ EL(_DIVISION_SIGN) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_DOUBLE_LOW_LINE) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_RIGHT_TO_LEFT_MARK) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_8(EL) \ EL(_MULTIPLICATION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_DOUBLE_LOW_LINE) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_RIGHT_TO_LEFT_MARK) #endif /* TUTF_ISO8859_8_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/iso8859_9.h�����������������������������������������������������������������0000664�0000000�0000000�00000115440�13775351206�0016615�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_ISO8859_9_H #define TUTF_ISO8859_9_H #define T_ISO8859_9_CTRL_NULL 0x0000 #define T_ISO8859_9_CTRL_START_OF_HEADING 0x0001 #define T_ISO8859_9_CTRL_START_OF_TEXT 0x0002 #define T_ISO8859_9_CTRL_END_OF_TEXT 0x0003 #define T_ISO8859_9_CTRL_END_OF_TRANSMISSION 0x0004 #define T_ISO8859_9_CTRL_ENQUIRY 0x0005 #define T_ISO8859_9_CTRL_ACKNOWLEDGE 0x0006 #define T_ISO8859_9_CTRL_BELL 0x0007 #define T_ISO8859_9_CTRL_BACKSPACE 0x0008 #define T_ISO8859_9_CTRL_CHARACTER_TABULATION 0x0009 #define T_ISO8859_9_CTRL_LINE_FEED 0x000A #define T_ISO8859_9_CTRL_LINE_TABULATION 0x000B #define T_ISO8859_9_CTRL_FORM_FEED 0x000C #define T_ISO8859_9_CTRL_CARRIAGE_RETURN 0x000D #define T_ISO8859_9_CTRL_SHIFT_OUT 0x000E #define T_ISO8859_9_CTRL_SHIFT_IN 0x000F #define T_ISO8859_9_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_ISO8859_9_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_ISO8859_9_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_ISO8859_9_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_ISO8859_9_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_ISO8859_9_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_ISO8859_9_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_ISO8859_9_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_ISO8859_9_CTRL_CANCEL 0x0018 #define T_ISO8859_9_CTRL_END_OF_MEDIUM 0x0019 #define T_ISO8859_9_CTRL_SUBSTITUTE 0x001A #define T_ISO8859_9_CTRL_ESCAPE 0x001B #define T_ISO8859_9_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_ISO8859_9_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_ISO8859_9_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_ISO8859_9_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_ISO8859_9_SPACE 0x0020 #define T_ISO8859_9_EXCLAMATION_MARK 0x0021 #define T_ISO8859_9_QUOTATION_MARK 0x0022 #define T_ISO8859_9_NUMBER_SIGN 0x0023 #define T_ISO8859_9_DOLLAR_SIGN 0x0024 #define T_ISO8859_9_PERCENT_SIGN 0x0025 #define T_ISO8859_9_AMPERSAND 0x0026 #define T_ISO8859_9_APOSTROPHE 0x0027 #define T_ISO8859_9_LEFT_PARENTHESIS 0x0028 #define T_ISO8859_9_RIGHT_PARENTHESIS 0x0029 #define T_ISO8859_9_ASTERISK 0x002A #define T_ISO8859_9_PLUS_SIGN 0x002B #define T_ISO8859_9_COMMA 0x002C #define T_ISO8859_9_HYPHEN_MINUS 0x002D #define T_ISO8859_9_FULL_STOP 0x002E #define T_ISO8859_9_SOLIDUS 0x002F #define T_ISO8859_9_DIGIT_ZERO 0x0030 #define T_ISO8859_9_DIGIT_ONE 0x0031 #define T_ISO8859_9_DIGIT_TWO 0x0032 #define T_ISO8859_9_DIGIT_THREE 0x0033 #define T_ISO8859_9_DIGIT_FOUR 0x0034 #define T_ISO8859_9_DIGIT_FIVE 0x0035 #define T_ISO8859_9_DIGIT_SIX 0x0036 #define T_ISO8859_9_DIGIT_SEVEN 0x0037 #define T_ISO8859_9_DIGIT_EIGHT 0x0038 #define T_ISO8859_9_DIGIT_NINE 0x0039 #define T_ISO8859_9_COLON 0x003A #define T_ISO8859_9_SEMICOLON 0x003B #define T_ISO8859_9_LESS_THAN_SIGN 0x003C #define T_ISO8859_9_EQUALS_SIGN 0x003D #define T_ISO8859_9_GREATER_THAN_SIGN 0x003E #define T_ISO8859_9_QUESTION_MARK 0x003F #define T_ISO8859_9_COMMERCIAL_AT 0x0040 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_A 0x0041 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_B 0x0042 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_C 0x0043 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_D 0x0044 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_E 0x0045 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_F 0x0046 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_G 0x0047 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_H 0x0048 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_I 0x0049 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_J 0x004A #define T_ISO8859_9_LATIN_CAPITAL_LETTER_K 0x004B #define T_ISO8859_9_LATIN_CAPITAL_LETTER_L 0x004C #define T_ISO8859_9_LATIN_CAPITAL_LETTER_M 0x004D #define T_ISO8859_9_LATIN_CAPITAL_LETTER_N 0x004E #define T_ISO8859_9_LATIN_CAPITAL_LETTER_O 0x004F #define T_ISO8859_9_LATIN_CAPITAL_LETTER_P 0x0050 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_R 0x0052 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_S 0x0053 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_T 0x0054 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_U 0x0055 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_V 0x0056 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_W 0x0057 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_X 0x0058 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_Z 0x005A #define T_ISO8859_9_LEFT_SQUARE_BRACKET 0x005B #define T_ISO8859_9_REVERSE_SOLIDUS 0x005C #define T_ISO8859_9_RIGHT_SQUARE_BRACKET 0x005D #define T_ISO8859_9_CIRCUMFLEX_ACCENT 0x005E #define T_ISO8859_9_LOW_LINE 0x005F #define T_ISO8859_9_GRAVE_ACCENT 0x0060 #define T_ISO8859_9_LATIN_SMALL_LETTER_A 0x0061 #define T_ISO8859_9_LATIN_SMALL_LETTER_B 0x0062 #define T_ISO8859_9_LATIN_SMALL_LETTER_C 0x0063 #define T_ISO8859_9_LATIN_SMALL_LETTER_D 0x0064 #define T_ISO8859_9_LATIN_SMALL_LETTER_E 0x0065 #define T_ISO8859_9_LATIN_SMALL_LETTER_F 0x0066 #define T_ISO8859_9_LATIN_SMALL_LETTER_G 0x0067 #define T_ISO8859_9_LATIN_SMALL_LETTER_H 0x0068 #define T_ISO8859_9_LATIN_SMALL_LETTER_I 0x0069 #define T_ISO8859_9_LATIN_SMALL_LETTER_J 0x006A #define T_ISO8859_9_LATIN_SMALL_LETTER_K 0x006B #define T_ISO8859_9_LATIN_SMALL_LETTER_L 0x006C #define T_ISO8859_9_LATIN_SMALL_LETTER_M 0x006D #define T_ISO8859_9_LATIN_SMALL_LETTER_N 0x006E #define T_ISO8859_9_LATIN_SMALL_LETTER_O 0x006F #define T_ISO8859_9_LATIN_SMALL_LETTER_P 0x0070 #define T_ISO8859_9_LATIN_SMALL_LETTER_Q 0x0071 #define T_ISO8859_9_LATIN_SMALL_LETTER_R 0x0072 #define T_ISO8859_9_LATIN_SMALL_LETTER_S 0x0073 #define T_ISO8859_9_LATIN_SMALL_LETTER_T 0x0074 #define T_ISO8859_9_LATIN_SMALL_LETTER_U 0x0075 #define T_ISO8859_9_LATIN_SMALL_LETTER_V 0x0076 #define T_ISO8859_9_LATIN_SMALL_LETTER_W 0x0077 #define T_ISO8859_9_LATIN_SMALL_LETTER_X 0x0078 #define T_ISO8859_9_LATIN_SMALL_LETTER_Y 0x0079 #define T_ISO8859_9_LATIN_SMALL_LETTER_Z 0x007A #define T_ISO8859_9_LEFT_CURLY_BRACKET 0x007B #define T_ISO8859_9_VERTICAL_LINE 0x007C #define T_ISO8859_9_RIGHT_CURLY_BRACKET 0x007D #define T_ISO8859_9_TILDE 0x007E #define T_ISO8859_9_CTRL_DELETE 0x007F #define T_ISO8859_9_UNDEFINED_0080 0x0080 #define T_ISO8859_9_UNDEFINED_0081 0x0081 #define T_ISO8859_9_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_ISO8859_9_CTRL_NO_BREAK_HERE 0x0083 #define T_ISO8859_9_UNDEFINED_0084 0x0084 #define T_ISO8859_9_CTRL_NEXT_LINE 0x0085 #define T_ISO8859_9_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_ISO8859_9_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_ISO8859_9_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_ISO8859_9_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_ISO8859_9_CTRL_LINE_TABULATION_SET 0x008A #define T_ISO8859_9_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_ISO8859_9_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_ISO8859_9_CTRL_REVERSE_LINE_FEED 0x008D #define T_ISO8859_9_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_ISO8859_9_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_ISO8859_9_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_ISO8859_9_CTRL_PRIVATE_USE_ONE 0x0091 #define T_ISO8859_9_CTRL_PRIVATE_USE_TWO 0x0092 #define T_ISO8859_9_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_ISO8859_9_CTRL_CANCEL_CHARACTER 0x0094 #define T_ISO8859_9_CTRL_MESSAGE_WAITING 0x0095 #define T_ISO8859_9_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_ISO8859_9_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_ISO8859_9_CTRL_START_OF_STRING 0x0098 #define T_ISO8859_9_UNDEFINED_0099 0x0099 #define T_ISO8859_9_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_ISO8859_9_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_ISO8859_9_CTRL_STRING_TERMINATOR 0x009C #define T_ISO8859_9_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_ISO8859_9_CTRL_PRIVACY_MESSAGE 0x009E #define T_ISO8859_9_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_ISO8859_9_NO_BREAK_SPACE 0x00A0 #define T_ISO8859_9_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_ISO8859_9_CENT_SIGN 0x00A2 #define T_ISO8859_9_POUND_SIGN 0x00A3 #define T_ISO8859_9_CURRENCY_SIGN 0x00A4 #define T_ISO8859_9_YEN_SIGN 0x00A5 #define T_ISO8859_9_BROKEN_BAR 0x00A6 #define T_ISO8859_9_SECTION_SIGN 0x00A7 #define T_ISO8859_9_DIAERESIS 0x00A8 #define T_ISO8859_9_COPYRIGHT_SIGN 0x00A9 #define T_ISO8859_9_FEMININE_ORDINAL_INDICATOR 0x00AA #define T_ISO8859_9_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_ISO8859_9_NOT_SIGN 0x00AC #define T_ISO8859_9_SOFT_HYPHEN 0x00AD #define T_ISO8859_9_REGISTERED_SIGN 0x00AE #define T_ISO8859_9_MACRON 0x00AF #define T_ISO8859_9_DEGREE_SIGN 0x00B0 #define T_ISO8859_9_PLUS_MINUS_SIGN 0x00B1 #define T_ISO8859_9_SUPERSCRIPT_TWO 0x00B2 #define T_ISO8859_9_SUPERSCRIPT_THREE 0x00B3 #define T_ISO8859_9_ACUTE_ACCENT 0x00B4 #define T_ISO8859_9_MICRO_SIGN 0x00B5 #define T_ISO8859_9_PILCROW_SIGN 0x00B6 #define T_ISO8859_9_MIDDLE_DOT 0x00B7 #define T_ISO8859_9_CEDILLA 0x00B8 #define T_ISO8859_9_SUPERSCRIPT_ONE 0x00B9 #define T_ISO8859_9_MASCULINE_ORDINAL_INDICATOR 0x00BA #define T_ISO8859_9_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_ISO8859_9_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_ISO8859_9_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_ISO8859_9_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_ISO8859_9_INVERTED_QUESTION_MARK 0x00BF #define T_ISO8859_9_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_ISO8859_9_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_ISO8859_9_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC #define T_ISO8859_9_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_ISO8859_9_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_ISO8859_9_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_ISO8859_9_LATIN_CAPITAL_LETTER_G_WITH_BREVE 0x00D0 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_ISO8859_9_MULTIPLICATION_SIGN 0x00D7 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_ISO8859_9_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_ISO8859_9_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_ISO8859_9_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_ISO8859_9_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE 0x00DD #define T_ISO8859_9_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x00DE #define T_ISO8859_9_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_ISO8859_9_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_ISO8859_9_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_ISO8859_9_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_ISO8859_9_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 #define T_ISO8859_9_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_ISO8859_9_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_ISO8859_9_LATIN_SMALL_LETTER_AE 0x00E6 #define T_ISO8859_9_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_ISO8859_9_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_ISO8859_9_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_ISO8859_9_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_ISO8859_9_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_ISO8859_9_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_ISO8859_9_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_ISO8859_9_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_ISO8859_9_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_ISO8859_9_LATIN_SMALL_LETTER_G_WITH_BREVE 0x00F0 #define T_ISO8859_9_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 #define T_ISO8859_9_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 #define T_ISO8859_9_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_ISO8859_9_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_ISO8859_9_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_ISO8859_9_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_ISO8859_9_DIVISION_SIGN 0x00F7 #define T_ISO8859_9_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_ISO8859_9_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_ISO8859_9_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_ISO8859_9_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_ISO8859_9_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_ISO8859_9_LATIN_SMALL_LETTER_DOTLESS_I 0x00FD #define T_ISO8859_9_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x00FE #define T_ISO8859_9_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF /* list of all characters */ #define T_LIST_ISO8859_9(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_NO_BREAK_SPACE) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_YEN_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_MACRON) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_ONE) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_INVERTED_QUESTION_MARK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_ISO8859_9(EL) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) #endif /* TUTF_ISO8859_9_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/jisx0201.h������������������������������������������������������������������0000664�0000000�0000000�00000136233�13775351206�0016520�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated * from clisp sources with "from-kernel.bash" * Do not edit! */ #ifndef TUTF_JISX0201_H #define TUTF_JISX0201_H #define T_JISX0201_CTRL_NULL 0x0000 #define T_JISX0201_CTRL_START_OF_HEADING 0x0001 #define T_JISX0201_CTRL_START_OF_TEXT 0x0002 #define T_JISX0201_CTRL_END_OF_TEXT 0x0003 #define T_JISX0201_CTRL_END_OF_TRANSMISSION 0x0004 #define T_JISX0201_CTRL_ENQUIRY 0x0005 #define T_JISX0201_CTRL_ACKNOWLEDGE 0x0006 #define T_JISX0201_CTRL_BELL 0x0007 #define T_JISX0201_CTRL_BACKSPACE 0x0008 #define T_JISX0201_CTRL_CHARACTER_TABULATION 0x0009 #define T_JISX0201_CTRL_LINE_FEED 0x000A #define T_JISX0201_CTRL_LINE_TABULATION 0x000B #define T_JISX0201_CTRL_FORM_FEED 0x000C #define T_JISX0201_CTRL_CARRIAGE_RETURN 0x000D #define T_JISX0201_CTRL_SHIFT_OUT 0x000E #define T_JISX0201_CTRL_SHIFT_IN 0x000F #define T_JISX0201_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_JISX0201_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_JISX0201_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_JISX0201_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_JISX0201_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_JISX0201_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_JISX0201_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_JISX0201_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_JISX0201_CTRL_CANCEL 0x0018 #define T_JISX0201_CTRL_END_OF_MEDIUM 0x0019 #define T_JISX0201_CTRL_SUBSTITUTE 0x001A #define T_JISX0201_CTRL_ESCAPE 0x001B #define T_JISX0201_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_JISX0201_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_JISX0201_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_JISX0201_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_JISX0201_SPACE 0x0020 #define T_JISX0201_EXCLAMATION_MARK 0x0021 #define T_JISX0201_QUOTATION_MARK 0x0022 #define T_JISX0201_NUMBER_SIGN 0x0023 #define T_JISX0201_DOLLAR_SIGN 0x0024 #define T_JISX0201_PERCENT_SIGN 0x0025 #define T_JISX0201_AMPERSAND 0x0026 #define T_JISX0201_APOSTROPHE 0x0027 #define T_JISX0201_LEFT_PARENTHESIS 0x0028 #define T_JISX0201_RIGHT_PARENTHESIS 0x0029 #define T_JISX0201_ASTERISK 0x002A #define T_JISX0201_PLUS_SIGN 0x002B #define T_JISX0201_COMMA 0x002C #define T_JISX0201_HYPHEN_MINUS 0x002D #define T_JISX0201_FULL_STOP 0x002E #define T_JISX0201_SOLIDUS 0x002F #define T_JISX0201_DIGIT_ZERO 0x0030 #define T_JISX0201_DIGIT_ONE 0x0031 #define T_JISX0201_DIGIT_TWO 0x0032 #define T_JISX0201_DIGIT_THREE 0x0033 #define T_JISX0201_DIGIT_FOUR 0x0034 #define T_JISX0201_DIGIT_FIVE 0x0035 #define T_JISX0201_DIGIT_SIX 0x0036 #define T_JISX0201_DIGIT_SEVEN 0x0037 #define T_JISX0201_DIGIT_EIGHT 0x0038 #define T_JISX0201_DIGIT_NINE 0x0039 #define T_JISX0201_COLON 0x003A #define T_JISX0201_SEMICOLON 0x003B #define T_JISX0201_LESS_THAN_SIGN 0x003C #define T_JISX0201_EQUALS_SIGN 0x003D #define T_JISX0201_GREATER_THAN_SIGN 0x003E #define T_JISX0201_QUESTION_MARK 0x003F #define T_JISX0201_COMMERCIAL_AT 0x0040 #define T_JISX0201_LATIN_CAPITAL_LETTER_A 0x0041 #define T_JISX0201_LATIN_CAPITAL_LETTER_B 0x0042 #define T_JISX0201_LATIN_CAPITAL_LETTER_C 0x0043 #define T_JISX0201_LATIN_CAPITAL_LETTER_D 0x0044 #define T_JISX0201_LATIN_CAPITAL_LETTER_E 0x0045 #define T_JISX0201_LATIN_CAPITAL_LETTER_F 0x0046 #define T_JISX0201_LATIN_CAPITAL_LETTER_G 0x0047 #define T_JISX0201_LATIN_CAPITAL_LETTER_H 0x0048 #define T_JISX0201_LATIN_CAPITAL_LETTER_I 0x0049 #define T_JISX0201_LATIN_CAPITAL_LETTER_J 0x004A #define T_JISX0201_LATIN_CAPITAL_LETTER_K 0x004B #define T_JISX0201_LATIN_CAPITAL_LETTER_L 0x004C #define T_JISX0201_LATIN_CAPITAL_LETTER_M 0x004D #define T_JISX0201_LATIN_CAPITAL_LETTER_N 0x004E #define T_JISX0201_LATIN_CAPITAL_LETTER_O 0x004F #define T_JISX0201_LATIN_CAPITAL_LETTER_P 0x0050 #define T_JISX0201_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_JISX0201_LATIN_CAPITAL_LETTER_R 0x0052 #define T_JISX0201_LATIN_CAPITAL_LETTER_S 0x0053 #define T_JISX0201_LATIN_CAPITAL_LETTER_T 0x0054 #define T_JISX0201_LATIN_CAPITAL_LETTER_U 0x0055 #define T_JISX0201_LATIN_CAPITAL_LETTER_V 0x0056 #define T_JISX0201_LATIN_CAPITAL_LETTER_W 0x0057 #define T_JISX0201_LATIN_CAPITAL_LETTER_X 0x0058 #define T_JISX0201_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_JISX0201_LATIN_CAPITAL_LETTER_Z 0x005A #define T_JISX0201_LEFT_SQUARE_BRACKET 0x005B #define T_JISX0201_YEN_SIGN 0x005C #define T_JISX0201_RIGHT_SQUARE_BRACKET 0x005D #define T_JISX0201_CIRCUMFLEX_ACCENT 0x005E #define T_JISX0201_LOW_LINE 0x005F #define T_JISX0201_GRAVE_ACCENT 0x0060 #define T_JISX0201_LATIN_SMALL_LETTER_A 0x0061 #define T_JISX0201_LATIN_SMALL_LETTER_B 0x0062 #define T_JISX0201_LATIN_SMALL_LETTER_C 0x0063 #define T_JISX0201_LATIN_SMALL_LETTER_D 0x0064 #define T_JISX0201_LATIN_SMALL_LETTER_E 0x0065 #define T_JISX0201_LATIN_SMALL_LETTER_F 0x0066 #define T_JISX0201_LATIN_SMALL_LETTER_G 0x0067 #define T_JISX0201_LATIN_SMALL_LETTER_H 0x0068 #define T_JISX0201_LATIN_SMALL_LETTER_I 0x0069 #define T_JISX0201_LATIN_SMALL_LETTER_J 0x006A #define T_JISX0201_LATIN_SMALL_LETTER_K 0x006B #define T_JISX0201_LATIN_SMALL_LETTER_L 0x006C #define T_JISX0201_LATIN_SMALL_LETTER_M 0x006D #define T_JISX0201_LATIN_SMALL_LETTER_N 0x006E #define T_JISX0201_LATIN_SMALL_LETTER_O 0x006F #define T_JISX0201_LATIN_SMALL_LETTER_P 0x0070 #define T_JISX0201_LATIN_SMALL_LETTER_Q 0x0071 #define T_JISX0201_LATIN_SMALL_LETTER_R 0x0072 #define T_JISX0201_LATIN_SMALL_LETTER_S 0x0073 #define T_JISX0201_LATIN_SMALL_LETTER_T 0x0074 #define T_JISX0201_LATIN_SMALL_LETTER_U 0x0075 #define T_JISX0201_LATIN_SMALL_LETTER_V 0x0076 #define T_JISX0201_LATIN_SMALL_LETTER_W 0x0077 #define T_JISX0201_LATIN_SMALL_LETTER_X 0x0078 #define T_JISX0201_LATIN_SMALL_LETTER_Y 0x0079 #define T_JISX0201_LATIN_SMALL_LETTER_Z 0x007A #define T_JISX0201_LEFT_CURLY_BRACKET 0x007B #define T_JISX0201_VERTICAL_LINE 0x007C #define T_JISX0201_RIGHT_CURLY_BRACKET 0x007D #define T_JISX0201_OVERLINE 0x007E #define T_JISX0201_CTRL_DELETE 0x007F #define T_JISX0201_UNDEFINED_0080 0x0080 #define T_JISX0201_UNDEFINED_0081 0x0081 #define T_JISX0201_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_JISX0201_CTRL_NO_BREAK_HERE 0x0083 #define T_JISX0201_UNDEFINED_0084 0x0084 #define T_JISX0201_CTRL_NEXT_LINE 0x0085 #define T_JISX0201_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_JISX0201_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_JISX0201_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_JISX0201_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_JISX0201_CTRL_LINE_TABULATION_SET 0x008A #define T_JISX0201_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_JISX0201_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_JISX0201_CTRL_REVERSE_LINE_FEED 0x008D #define T_JISX0201_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_JISX0201_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_JISX0201_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_JISX0201_CTRL_PRIVATE_USE_ONE 0x0091 #define T_JISX0201_CTRL_PRIVATE_USE_TWO 0x0092 #define T_JISX0201_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_JISX0201_CTRL_CANCEL_CHARACTER 0x0094 #define T_JISX0201_CTRL_MESSAGE_WAITING 0x0095 #define T_JISX0201_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_JISX0201_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_JISX0201_CTRL_START_OF_STRING 0x0098 #define T_JISX0201_UNDEFINED_0099 0x0099 #define T_JISX0201_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_JISX0201_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_JISX0201_CTRL_STRING_TERMINATOR 0x009C #define T_JISX0201_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_JISX0201_CTRL_PRIVACY_MESSAGE 0x009E #define T_JISX0201_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_JISX0201_UNDEFINED_00A0 0x00A0 #define T_JISX0201_HALFWIDTH_IDEOGRAPHIC_FULL_STOP 0x00A1 #define T_JISX0201_HALFWIDTH_LEFT_CORNER_BRACKET 0x00A2 #define T_JISX0201_HALFWIDTH_RIGHT_CORNER_BRACKET 0x00A3 #define T_JISX0201_HALFWIDTH_IDEOGRAPHIC_COMMA 0x00A4 #define T_JISX0201_HALFWIDTH_KATAKANA_MIDDLE_DOT 0x00A5 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_WO 0x00A6 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SMALL_A 0x00A7 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SMALL_I 0x00A8 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SMALL_U 0x00A9 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SMALL_E 0x00AA #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SMALL_O 0x00AB #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SMALL_YA 0x00AC #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SMALL_YU 0x00AD #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SMALL_YO 0x00AE #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SMALL_TU 0x00AF #define T_JISX0201_HALFWIDTH_KATAKANA_HIRAGANA_PROLONGED_SOUND_MARK 0x00B0 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_A 0x00B1 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_I 0x00B2 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_U 0x00B3 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_E 0x00B4 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_O 0x00B5 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_KA 0x00B6 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_KI 0x00B7 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_KU 0x00B8 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_KE 0x00B9 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_KO 0x00BA #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SA 0x00BB #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SI 0x00BC #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SU 0x00BD #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SE 0x00BE #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_SO 0x00BF #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_TA 0x00C0 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_TI 0x00C1 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_TU 0x00C2 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_TE 0x00C3 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_TO 0x00C4 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_NA 0x00C5 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_NI 0x00C6 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_NU 0x00C7 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_NE 0x00C8 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_NO 0x00C9 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_HA 0x00CA #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_HI 0x00CB #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_HU 0x00CC #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_HE 0x00CD #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_HO 0x00CE #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_MA 0x00CF #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_MI 0x00D0 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_MU 0x00D1 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_ME 0x00D2 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_MO 0x00D3 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_YA 0x00D4 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_YU 0x00D5 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_YO 0x00D6 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_RA 0x00D7 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_RI 0x00D8 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_RU 0x00D9 #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_RE 0x00DA #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_RO 0x00DB #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_WA 0x00DC #define T_JISX0201_HALFWIDTH_KATAKANA_LETTER_N 0x00DD #define T_JISX0201_HALFWIDTH_KATAKANA_VOICED_SOUND_MARK 0x00DE #define T_JISX0201_HALFWIDTH_KATAKANA_SEMI_VOICED_SOUND_MARK 0x00DF #define T_JISX0201_UNDEFINED_00E0 0x00E0 #define T_JISX0201_UNDEFINED_00E1 0x00E1 #define T_JISX0201_UNDEFINED_00E2 0x00E2 #define T_JISX0201_UNDEFINED_00E3 0x00E3 #define T_JISX0201_UNDEFINED_00E4 0x00E4 #define T_JISX0201_UNDEFINED_00E5 0x00E5 #define T_JISX0201_UNDEFINED_00E6 0x00E6 #define T_JISX0201_UNDEFINED_00E7 0x00E7 #define T_JISX0201_UNDEFINED_00E8 0x00E8 #define T_JISX0201_UNDEFINED_00E9 0x00E9 #define T_JISX0201_UNDEFINED_00EA 0x00EA #define T_JISX0201_UNDEFINED_00EB 0x00EB #define T_JISX0201_UNDEFINED_00EC 0x00EC #define T_JISX0201_UNDEFINED_00ED 0x00ED #define T_JISX0201_UNDEFINED_00EE 0x00EE #define T_JISX0201_UNDEFINED_00EF 0x00EF #define T_JISX0201_UNDEFINED_00F0 0x00F0 #define T_JISX0201_UNDEFINED_00F1 0x00F1 #define T_JISX0201_UNDEFINED_00F2 0x00F2 #define T_JISX0201_UNDEFINED_00F3 0x00F3 #define T_JISX0201_UNDEFINED_00F4 0x00F4 #define T_JISX0201_UNDEFINED_00F5 0x00F5 #define T_JISX0201_UNDEFINED_00F6 0x00F6 #define T_JISX0201_UNDEFINED_00F7 0x00F7 #define T_JISX0201_UNDEFINED_00F8 0x00F8 #define T_JISX0201_UNDEFINED_00F9 0x00F9 #define T_JISX0201_UNDEFINED_00FA 0x00FA #define T_JISX0201_UNDEFINED_00FB 0x00FB #define T_JISX0201_UNDEFINED_00FC 0x00FC #define T_JISX0201_UNDEFINED_00FD 0x00FD #define T_JISX0201_UNDEFINED_00FE 0x00FE #define T_JISX0201_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_JISX0201(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_YEN_SIGN) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_OVERLINE) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_UNDEFINED_00A0) \ EL(_HALFWIDTH_IDEOGRAPHIC_FULL_STOP) \ EL(_HALFWIDTH_LEFT_CORNER_BRACKET) \ EL(_HALFWIDTH_RIGHT_CORNER_BRACKET) \ EL(_HALFWIDTH_IDEOGRAPHIC_COMMA) \ EL(_HALFWIDTH_KATAKANA_MIDDLE_DOT) \ EL(_HALFWIDTH_KATAKANA_LETTER_WO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_A) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_I) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_U) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_E) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_O) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YA) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YU) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_TU) \ EL(_HALFWIDTH_KATAKANA_HIRAGANA_PROLONGED_SOUND_MARK) \ EL(_HALFWIDTH_KATAKANA_LETTER_A) \ EL(_HALFWIDTH_KATAKANA_LETTER_I) \ EL(_HALFWIDTH_KATAKANA_LETTER_U) \ EL(_HALFWIDTH_KATAKANA_LETTER_E) \ EL(_HALFWIDTH_KATAKANA_LETTER_O) \ EL(_HALFWIDTH_KATAKANA_LETTER_KA) \ EL(_HALFWIDTH_KATAKANA_LETTER_KI) \ EL(_HALFWIDTH_KATAKANA_LETTER_KU) \ EL(_HALFWIDTH_KATAKANA_LETTER_KE) \ EL(_HALFWIDTH_KATAKANA_LETTER_KO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SA) \ EL(_HALFWIDTH_KATAKANA_LETTER_SI) \ EL(_HALFWIDTH_KATAKANA_LETTER_SU) \ EL(_HALFWIDTH_KATAKANA_LETTER_SE) \ EL(_HALFWIDTH_KATAKANA_LETTER_SO) \ EL(_HALFWIDTH_KATAKANA_LETTER_TA) \ EL(_HALFWIDTH_KATAKANA_LETTER_TI) \ EL(_HALFWIDTH_KATAKANA_LETTER_TU) \ EL(_HALFWIDTH_KATAKANA_LETTER_TE) \ EL(_HALFWIDTH_KATAKANA_LETTER_TO) \ EL(_HALFWIDTH_KATAKANA_LETTER_NA) \ EL(_HALFWIDTH_KATAKANA_LETTER_NI) \ EL(_HALFWIDTH_KATAKANA_LETTER_NU) \ EL(_HALFWIDTH_KATAKANA_LETTER_NE) \ EL(_HALFWIDTH_KATAKANA_LETTER_NO) \ EL(_HALFWIDTH_KATAKANA_LETTER_HA) \ EL(_HALFWIDTH_KATAKANA_LETTER_HI) \ EL(_HALFWIDTH_KATAKANA_LETTER_HU) \ EL(_HALFWIDTH_KATAKANA_LETTER_HE) \ EL(_HALFWIDTH_KATAKANA_LETTER_HO) \ EL(_HALFWIDTH_KATAKANA_LETTER_MA) \ EL(_HALFWIDTH_KATAKANA_LETTER_MI) \ EL(_HALFWIDTH_KATAKANA_LETTER_MU) \ EL(_HALFWIDTH_KATAKANA_LETTER_ME) \ EL(_HALFWIDTH_KATAKANA_LETTER_MO) \ EL(_HALFWIDTH_KATAKANA_LETTER_YA) \ EL(_HALFWIDTH_KATAKANA_LETTER_YU) \ EL(_HALFWIDTH_KATAKANA_LETTER_YO) \ EL(_HALFWIDTH_KATAKANA_LETTER_RA) \ EL(_HALFWIDTH_KATAKANA_LETTER_RI) \ EL(_HALFWIDTH_KATAKANA_LETTER_RU) \ EL(_HALFWIDTH_KATAKANA_LETTER_RE) \ EL(_HALFWIDTH_KATAKANA_LETTER_RO) \ EL(_HALFWIDTH_KATAKANA_LETTER_WA) \ EL(_HALFWIDTH_KATAKANA_LETTER_N) \ EL(_HALFWIDTH_KATAKANA_VOICED_SOUND_MARK) \ EL(_HALFWIDTH_KATAKANA_SEMI_VOICED_SOUND_MARK) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-16 */ #define T_NLIST_JISX0201(EL) \ EL(_YEN_SIGN) \ EL(_OVERLINE) \ EL(_UNDEFINED_00A0) \ EL(_HALFWIDTH_IDEOGRAPHIC_FULL_STOP) \ EL(_HALFWIDTH_LEFT_CORNER_BRACKET) \ EL(_HALFWIDTH_RIGHT_CORNER_BRACKET) \ EL(_HALFWIDTH_IDEOGRAPHIC_COMMA) \ EL(_HALFWIDTH_KATAKANA_MIDDLE_DOT) \ EL(_HALFWIDTH_KATAKANA_LETTER_WO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_A) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_I) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_U) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_E) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_O) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YA) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YU) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_YO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SMALL_TU) \ EL(_HALFWIDTH_KATAKANA_HIRAGANA_PROLONGED_SOUND_MARK) \ EL(_HALFWIDTH_KATAKANA_LETTER_A) \ EL(_HALFWIDTH_KATAKANA_LETTER_I) \ EL(_HALFWIDTH_KATAKANA_LETTER_U) \ EL(_HALFWIDTH_KATAKANA_LETTER_E) \ EL(_HALFWIDTH_KATAKANA_LETTER_O) \ EL(_HALFWIDTH_KATAKANA_LETTER_KA) \ EL(_HALFWIDTH_KATAKANA_LETTER_KI) \ EL(_HALFWIDTH_KATAKANA_LETTER_KU) \ EL(_HALFWIDTH_KATAKANA_LETTER_KE) \ EL(_HALFWIDTH_KATAKANA_LETTER_KO) \ EL(_HALFWIDTH_KATAKANA_LETTER_SA) \ EL(_HALFWIDTH_KATAKANA_LETTER_SI) \ EL(_HALFWIDTH_KATAKANA_LETTER_SU) \ EL(_HALFWIDTH_KATAKANA_LETTER_SE) \ EL(_HALFWIDTH_KATAKANA_LETTER_SO) \ EL(_HALFWIDTH_KATAKANA_LETTER_TA) \ EL(_HALFWIDTH_KATAKANA_LETTER_TI) \ EL(_HALFWIDTH_KATAKANA_LETTER_TU) \ EL(_HALFWIDTH_KATAKANA_LETTER_TE) \ EL(_HALFWIDTH_KATAKANA_LETTER_TO) \ EL(_HALFWIDTH_KATAKANA_LETTER_NA) \ EL(_HALFWIDTH_KATAKANA_LETTER_NI) \ EL(_HALFWIDTH_KATAKANA_LETTER_NU) \ EL(_HALFWIDTH_KATAKANA_LETTER_NE) \ EL(_HALFWIDTH_KATAKANA_LETTER_NO) \ EL(_HALFWIDTH_KATAKANA_LETTER_HA) \ EL(_HALFWIDTH_KATAKANA_LETTER_HI) \ EL(_HALFWIDTH_KATAKANA_LETTER_HU) \ EL(_HALFWIDTH_KATAKANA_LETTER_HE) \ EL(_HALFWIDTH_KATAKANA_LETTER_HO) \ EL(_HALFWIDTH_KATAKANA_LETTER_MA) \ EL(_HALFWIDTH_KATAKANA_LETTER_MI) \ EL(_HALFWIDTH_KATAKANA_LETTER_MU) \ EL(_HALFWIDTH_KATAKANA_LETTER_ME) \ EL(_HALFWIDTH_KATAKANA_LETTER_MO) \ EL(_HALFWIDTH_KATAKANA_LETTER_YA) \ EL(_HALFWIDTH_KATAKANA_LETTER_YU) \ EL(_HALFWIDTH_KATAKANA_LETTER_YO) \ EL(_HALFWIDTH_KATAKANA_LETTER_RA) \ EL(_HALFWIDTH_KATAKANA_LETTER_RI) \ EL(_HALFWIDTH_KATAKANA_LETTER_RU) \ EL(_HALFWIDTH_KATAKANA_LETTER_RE) \ EL(_HALFWIDTH_KATAKANA_LETTER_RO) \ EL(_HALFWIDTH_KATAKANA_LETTER_WA) \ EL(_HALFWIDTH_KATAKANA_LETTER_N) \ EL(_HALFWIDTH_KATAKANA_VOICED_SOUND_MARK) \ EL(_HALFWIDTH_KATAKANA_SEMI_VOICED_SOUND_MARK) \ EL(_UNDEFINED_00E0) \ EL(_UNDEFINED_00E1) \ EL(_UNDEFINED_00E2) \ EL(_UNDEFINED_00E3) \ EL(_UNDEFINED_00E4) \ EL(_UNDEFINED_00E5) \ EL(_UNDEFINED_00E6) \ EL(_UNDEFINED_00E7) \ EL(_UNDEFINED_00E8) \ EL(_UNDEFINED_00E9) \ EL(_UNDEFINED_00EA) \ EL(_UNDEFINED_00EB) \ EL(_UNDEFINED_00EC) \ EL(_UNDEFINED_00ED) \ EL(_UNDEFINED_00EE) \ EL(_UNDEFINED_00EF) \ EL(_UNDEFINED_00F0) \ EL(_UNDEFINED_00F1) \ EL(_UNDEFINED_00F2) \ EL(_UNDEFINED_00F3) \ EL(_UNDEFINED_00F4) \ EL(_UNDEFINED_00F5) \ EL(_UNDEFINED_00F6) \ EL(_UNDEFINED_00F7) \ EL(_UNDEFINED_00F8) \ EL(_UNDEFINED_00F9) \ EL(_UNDEFINED_00FA) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) #endif /* TUTF_JISX0201_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/koi8_r.h��������������������������������������������������������������������0000664�0000000�0000000�00000144335�13775351206�0016435�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_KOI8_R_H #define TUTF_KOI8_R_H #define T_KOI8_R_CTRL_NULL 0x0000 #define T_KOI8_R_CTRL_START_OF_HEADING 0x0001 #define T_KOI8_R_CTRL_START_OF_TEXT 0x0002 #define T_KOI8_R_CTRL_END_OF_TEXT 0x0003 #define T_KOI8_R_CTRL_END_OF_TRANSMISSION 0x0004 #define T_KOI8_R_CTRL_ENQUIRY 0x0005 #define T_KOI8_R_CTRL_ACKNOWLEDGE 0x0006 #define T_KOI8_R_CTRL_BELL 0x0007 #define T_KOI8_R_CTRL_BACKSPACE 0x0008 #define T_KOI8_R_CTRL_CHARACTER_TABULATION 0x0009 #define T_KOI8_R_CTRL_LINE_FEED 0x000A #define T_KOI8_R_CTRL_LINE_TABULATION 0x000B #define T_KOI8_R_CTRL_FORM_FEED 0x000C #define T_KOI8_R_CTRL_CARRIAGE_RETURN 0x000D #define T_KOI8_R_CTRL_SHIFT_OUT 0x000E #define T_KOI8_R_CTRL_SHIFT_IN 0x000F #define T_KOI8_R_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_KOI8_R_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_KOI8_R_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_KOI8_R_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_KOI8_R_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_KOI8_R_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_KOI8_R_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_KOI8_R_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_KOI8_R_CTRL_CANCEL 0x0018 #define T_KOI8_R_CTRL_END_OF_MEDIUM 0x0019 #define T_KOI8_R_CTRL_SUBSTITUTE 0x001A #define T_KOI8_R_CTRL_ESCAPE 0x001B #define T_KOI8_R_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_KOI8_R_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_KOI8_R_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_KOI8_R_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_KOI8_R_SPACE 0x0020 #define T_KOI8_R_EXCLAMATION_MARK 0x0021 #define T_KOI8_R_QUOTATION_MARK 0x0022 #define T_KOI8_R_NUMBER_SIGN 0x0023 #define T_KOI8_R_DOLLAR_SIGN 0x0024 #define T_KOI8_R_PERCENT_SIGN 0x0025 #define T_KOI8_R_AMPERSAND 0x0026 #define T_KOI8_R_APOSTROPHE 0x0027 #define T_KOI8_R_LEFT_PARENTHESIS 0x0028 #define T_KOI8_R_RIGHT_PARENTHESIS 0x0029 #define T_KOI8_R_ASTERISK 0x002A #define T_KOI8_R_PLUS_SIGN 0x002B #define T_KOI8_R_COMMA 0x002C #define T_KOI8_R_HYPHEN_MINUS 0x002D #define T_KOI8_R_FULL_STOP 0x002E #define T_KOI8_R_SOLIDUS 0x002F #define T_KOI8_R_DIGIT_ZERO 0x0030 #define T_KOI8_R_DIGIT_ONE 0x0031 #define T_KOI8_R_DIGIT_TWO 0x0032 #define T_KOI8_R_DIGIT_THREE 0x0033 #define T_KOI8_R_DIGIT_FOUR 0x0034 #define T_KOI8_R_DIGIT_FIVE 0x0035 #define T_KOI8_R_DIGIT_SIX 0x0036 #define T_KOI8_R_DIGIT_SEVEN 0x0037 #define T_KOI8_R_DIGIT_EIGHT 0x0038 #define T_KOI8_R_DIGIT_NINE 0x0039 #define T_KOI8_R_COLON 0x003A #define T_KOI8_R_SEMICOLON 0x003B #define T_KOI8_R_LESS_THAN_SIGN 0x003C #define T_KOI8_R_EQUALS_SIGN 0x003D #define T_KOI8_R_GREATER_THAN_SIGN 0x003E #define T_KOI8_R_QUESTION_MARK 0x003F #define T_KOI8_R_COMMERCIAL_AT 0x0040 #define T_KOI8_R_LATIN_CAPITAL_LETTER_A 0x0041 #define T_KOI8_R_LATIN_CAPITAL_LETTER_B 0x0042 #define T_KOI8_R_LATIN_CAPITAL_LETTER_C 0x0043 #define T_KOI8_R_LATIN_CAPITAL_LETTER_D 0x0044 #define T_KOI8_R_LATIN_CAPITAL_LETTER_E 0x0045 #define T_KOI8_R_LATIN_CAPITAL_LETTER_F 0x0046 #define T_KOI8_R_LATIN_CAPITAL_LETTER_G 0x0047 #define T_KOI8_R_LATIN_CAPITAL_LETTER_H 0x0048 #define T_KOI8_R_LATIN_CAPITAL_LETTER_I 0x0049 #define T_KOI8_R_LATIN_CAPITAL_LETTER_J 0x004A #define T_KOI8_R_LATIN_CAPITAL_LETTER_K 0x004B #define T_KOI8_R_LATIN_CAPITAL_LETTER_L 0x004C #define T_KOI8_R_LATIN_CAPITAL_LETTER_M 0x004D #define T_KOI8_R_LATIN_CAPITAL_LETTER_N 0x004E #define T_KOI8_R_LATIN_CAPITAL_LETTER_O 0x004F #define T_KOI8_R_LATIN_CAPITAL_LETTER_P 0x0050 #define T_KOI8_R_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_KOI8_R_LATIN_CAPITAL_LETTER_R 0x0052 #define T_KOI8_R_LATIN_CAPITAL_LETTER_S 0x0053 #define T_KOI8_R_LATIN_CAPITAL_LETTER_T 0x0054 #define T_KOI8_R_LATIN_CAPITAL_LETTER_U 0x0055 #define T_KOI8_R_LATIN_CAPITAL_LETTER_V 0x0056 #define T_KOI8_R_LATIN_CAPITAL_LETTER_W 0x0057 #define T_KOI8_R_LATIN_CAPITAL_LETTER_X 0x0058 #define T_KOI8_R_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_KOI8_R_LATIN_CAPITAL_LETTER_Z 0x005A #define T_KOI8_R_LEFT_SQUARE_BRACKET 0x005B #define T_KOI8_R_REVERSE_SOLIDUS 0x005C #define T_KOI8_R_RIGHT_SQUARE_BRACKET 0x005D #define T_KOI8_R_CIRCUMFLEX_ACCENT 0x005E #define T_KOI8_R_LOW_LINE 0x005F #define T_KOI8_R_GRAVE_ACCENT 0x0060 #define T_KOI8_R_LATIN_SMALL_LETTER_A 0x0061 #define T_KOI8_R_LATIN_SMALL_LETTER_B 0x0062 #define T_KOI8_R_LATIN_SMALL_LETTER_C 0x0063 #define T_KOI8_R_LATIN_SMALL_LETTER_D 0x0064 #define T_KOI8_R_LATIN_SMALL_LETTER_E 0x0065 #define T_KOI8_R_LATIN_SMALL_LETTER_F 0x0066 #define T_KOI8_R_LATIN_SMALL_LETTER_G 0x0067 #define T_KOI8_R_LATIN_SMALL_LETTER_H 0x0068 #define T_KOI8_R_LATIN_SMALL_LETTER_I 0x0069 #define T_KOI8_R_LATIN_SMALL_LETTER_J 0x006A #define T_KOI8_R_LATIN_SMALL_LETTER_K 0x006B #define T_KOI8_R_LATIN_SMALL_LETTER_L 0x006C #define T_KOI8_R_LATIN_SMALL_LETTER_M 0x006D #define T_KOI8_R_LATIN_SMALL_LETTER_N 0x006E #define T_KOI8_R_LATIN_SMALL_LETTER_O 0x006F #define T_KOI8_R_LATIN_SMALL_LETTER_P 0x0070 #define T_KOI8_R_LATIN_SMALL_LETTER_Q 0x0071 #define T_KOI8_R_LATIN_SMALL_LETTER_R 0x0072 #define T_KOI8_R_LATIN_SMALL_LETTER_S 0x0073 #define T_KOI8_R_LATIN_SMALL_LETTER_T 0x0074 #define T_KOI8_R_LATIN_SMALL_LETTER_U 0x0075 #define T_KOI8_R_LATIN_SMALL_LETTER_V 0x0076 #define T_KOI8_R_LATIN_SMALL_LETTER_W 0x0077 #define T_KOI8_R_LATIN_SMALL_LETTER_X 0x0078 #define T_KOI8_R_LATIN_SMALL_LETTER_Y 0x0079 #define T_KOI8_R_LATIN_SMALL_LETTER_Z 0x007A #define T_KOI8_R_LEFT_CURLY_BRACKET 0x007B #define T_KOI8_R_VERTICAL_LINE 0x007C #define T_KOI8_R_RIGHT_CURLY_BRACKET 0x007D #define T_KOI8_R_TILDE 0x007E #define T_KOI8_R_CTRL_DELETE 0x007F #define T_KOI8_R_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x0080 #define T_KOI8_R_BOX_DRAWINGS_LIGHT_VERTICAL 0x0081 #define T_KOI8_R_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x0082 #define T_KOI8_R_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x0083 #define T_KOI8_R_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x0084 #define T_KOI8_R_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x0085 #define T_KOI8_R_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x0086 #define T_KOI8_R_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x0087 #define T_KOI8_R_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x0088 #define T_KOI8_R_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x0089 #define T_KOI8_R_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x008A #define T_KOI8_R_UPPER_HALF_BLOCK 0x008B #define T_KOI8_R_LOWER_HALF_BLOCK 0x008C #define T_KOI8_R_FULL_BLOCK 0x008D #define T_KOI8_R_LEFT_HALF_BLOCK 0x008E #define T_KOI8_R_RIGHT_HALF_BLOCK 0x008F #define T_KOI8_R_LIGHT_SHADE 0x0090 #define T_KOI8_R_MEDIUM_SHADE 0x0091 #define T_KOI8_R_DARK_SHADE 0x0092 #define T_KOI8_R_TOP_HALF_INTEGRAL 0x0093 #define T_KOI8_R_BLACK_SQUARE 0x0094 #define T_KOI8_R_BULLET_OPERATOR 0x0095 #define T_KOI8_R_SQUARE_ROOT 0x0096 #define T_KOI8_R_ALMOST_EQUAL_TO 0x0097 #define T_KOI8_R_LESS_THAN_OR_EQUAL_TO 0x0098 #define T_KOI8_R_GREATER_THAN_OR_EQUAL_TO 0x0099 #define T_KOI8_R_NO_BREAK_SPACE 0x009A #define T_KOI8_R_BOTTOM_HALF_INTEGRAL 0x009B #define T_KOI8_R_DEGREE_SIGN 0x009C #define T_KOI8_R_SUPERSCRIPT_TWO 0x009D #define T_KOI8_R_MIDDLE_DOT 0x009E #define T_KOI8_R_DIVISION_SIGN 0x009F #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00A0 #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00A1 #define T_KOI8_R_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00A2 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_IO 0x00A3 #define T_KOI8_R_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x00A4 #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00A5 #define T_KOI8_R_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x00A6 #define T_KOI8_R_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x00A7 #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00A8 #define T_KOI8_R_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00A9 #define T_KOI8_R_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00AA #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00AB #define T_KOI8_R_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00AC #define T_KOI8_R_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x00AD #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00AE #define T_KOI8_R_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00AF #define T_KOI8_R_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00B0 #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00B1 #define T_KOI8_R_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B2 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_IO 0x00B3 #define T_KOI8_R_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x00B4 #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B5 #define T_KOI8_R_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x00B6 #define T_KOI8_R_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x00B7 #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00B8 #define T_KOI8_R_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00B9 #define T_KOI8_R_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00BA #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00BB #define T_KOI8_R_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00BC #define T_KOI8_R_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x00BD #define T_KOI8_R_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00BE #define T_KOI8_R_COPYRIGHT_SIGN 0x00BF #define T_KOI8_R_CYRILLIC_SMALL_LETTER_YU 0x00C0 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_A 0x00C1 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_BE 0x00C2 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_TSE 0x00C3 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_DE 0x00C4 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_IE 0x00C5 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_EF 0x00C6 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_GHE 0x00C7 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_HA 0x00C8 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_I 0x00C9 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_SHORT_I 0x00CA #define T_KOI8_R_CYRILLIC_SMALL_LETTER_KA 0x00CB #define T_KOI8_R_CYRILLIC_SMALL_LETTER_EL 0x00CC #define T_KOI8_R_CYRILLIC_SMALL_LETTER_EM 0x00CD #define T_KOI8_R_CYRILLIC_SMALL_LETTER_EN 0x00CE #define T_KOI8_R_CYRILLIC_SMALL_LETTER_O 0x00CF #define T_KOI8_R_CYRILLIC_SMALL_LETTER_PE 0x00D0 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_YA 0x00D1 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_ER 0x00D2 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_ES 0x00D3 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_TE 0x00D4 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_U 0x00D5 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_ZHE 0x00D6 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_VE 0x00D7 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0x00D8 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_YERU 0x00D9 #define T_KOI8_R_CYRILLIC_SMALL_LETTER_ZE 0x00DA #define T_KOI8_R_CYRILLIC_SMALL_LETTER_SHA 0x00DB #define T_KOI8_R_CYRILLIC_SMALL_LETTER_E 0x00DC #define T_KOI8_R_CYRILLIC_SMALL_LETTER_SHCHA 0x00DD #define T_KOI8_R_CYRILLIC_SMALL_LETTER_CHE 0x00DE #define T_KOI8_R_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x00DF #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_YU 0x00E0 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_A 0x00E1 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_BE 0x00E2 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_TSE 0x00E3 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_DE 0x00E4 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_IE 0x00E5 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_EF 0x00E6 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_GHE 0x00E7 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_HA 0x00E8 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_I 0x00E9 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x00EA #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_KA 0x00EB #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_EL 0x00EC #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_EM 0x00ED #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_EN 0x00EE #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_O 0x00EF #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_PE 0x00F0 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_YA 0x00F1 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_ER 0x00F2 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_ES 0x00F3 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_TE 0x00F4 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_U 0x00F5 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_ZHE 0x00F6 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_VE 0x00F7 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x00F8 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_YERU 0x00F9 #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_ZE 0x00FA #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_SHA 0x00FB #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_E 0x00FC #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_SHCHA 0x00FD #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_CHE 0x00FE #define T_KOI8_R_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x00FF /* list of all characters */ #define T_LIST_KOI8_R(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_UPPER_HALF_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_FULL_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BLACK_SQUARE) \ EL(_BULLET_OPERATOR) \ EL(_SQUARE_ROOT) \ EL(_ALMOST_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_NO_BREAK_SPACE) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DEGREE_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_MIDDLE_DOT) \ EL(_DIVISION_SIGN) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_COPYRIGHT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_KOI8_R(EL) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_UPPER_HALF_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_FULL_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BLACK_SQUARE) \ EL(_BULLET_OPERATOR) \ EL(_SQUARE_ROOT) \ EL(_ALMOST_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_NO_BREAK_SPACE) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DEGREE_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_MIDDLE_DOT) \ EL(_DIVISION_SIGN) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_COPYRIGHT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) #endif /* TUTF_KOI8_R_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/koi8_u.h��������������������������������������������������������������������0000664�0000000�0000000�00000144246�13775351206�0016441�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_KOI8_U_H #define TUTF_KOI8_U_H #define T_KOI8_U_CTRL_NULL 0x0000 #define T_KOI8_U_CTRL_START_OF_HEADING 0x0001 #define T_KOI8_U_CTRL_START_OF_TEXT 0x0002 #define T_KOI8_U_CTRL_END_OF_TEXT 0x0003 #define T_KOI8_U_CTRL_END_OF_TRANSMISSION 0x0004 #define T_KOI8_U_CTRL_ENQUIRY 0x0005 #define T_KOI8_U_CTRL_ACKNOWLEDGE 0x0006 #define T_KOI8_U_CTRL_BELL 0x0007 #define T_KOI8_U_CTRL_BACKSPACE 0x0008 #define T_KOI8_U_CTRL_CHARACTER_TABULATION 0x0009 #define T_KOI8_U_CTRL_LINE_FEED 0x000A #define T_KOI8_U_CTRL_LINE_TABULATION 0x000B #define T_KOI8_U_CTRL_FORM_FEED 0x000C #define T_KOI8_U_CTRL_CARRIAGE_RETURN 0x000D #define T_KOI8_U_CTRL_SHIFT_OUT 0x000E #define T_KOI8_U_CTRL_SHIFT_IN 0x000F #define T_KOI8_U_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_KOI8_U_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_KOI8_U_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_KOI8_U_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_KOI8_U_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_KOI8_U_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_KOI8_U_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_KOI8_U_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_KOI8_U_CTRL_CANCEL 0x0018 #define T_KOI8_U_CTRL_END_OF_MEDIUM 0x0019 #define T_KOI8_U_CTRL_SUBSTITUTE 0x001A #define T_KOI8_U_CTRL_ESCAPE 0x001B #define T_KOI8_U_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_KOI8_U_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_KOI8_U_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_KOI8_U_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_KOI8_U_SPACE 0x0020 #define T_KOI8_U_EXCLAMATION_MARK 0x0021 #define T_KOI8_U_QUOTATION_MARK 0x0022 #define T_KOI8_U_NUMBER_SIGN 0x0023 #define T_KOI8_U_DOLLAR_SIGN 0x0024 #define T_KOI8_U_PERCENT_SIGN 0x0025 #define T_KOI8_U_AMPERSAND 0x0026 #define T_KOI8_U_APOSTROPHE 0x0027 #define T_KOI8_U_LEFT_PARENTHESIS 0x0028 #define T_KOI8_U_RIGHT_PARENTHESIS 0x0029 #define T_KOI8_U_ASTERISK 0x002A #define T_KOI8_U_PLUS_SIGN 0x002B #define T_KOI8_U_COMMA 0x002C #define T_KOI8_U_HYPHEN_MINUS 0x002D #define T_KOI8_U_FULL_STOP 0x002E #define T_KOI8_U_SOLIDUS 0x002F #define T_KOI8_U_DIGIT_ZERO 0x0030 #define T_KOI8_U_DIGIT_ONE 0x0031 #define T_KOI8_U_DIGIT_TWO 0x0032 #define T_KOI8_U_DIGIT_THREE 0x0033 #define T_KOI8_U_DIGIT_FOUR 0x0034 #define T_KOI8_U_DIGIT_FIVE 0x0035 #define T_KOI8_U_DIGIT_SIX 0x0036 #define T_KOI8_U_DIGIT_SEVEN 0x0037 #define T_KOI8_U_DIGIT_EIGHT 0x0038 #define T_KOI8_U_DIGIT_NINE 0x0039 #define T_KOI8_U_COLON 0x003A #define T_KOI8_U_SEMICOLON 0x003B #define T_KOI8_U_LESS_THAN_SIGN 0x003C #define T_KOI8_U_EQUALS_SIGN 0x003D #define T_KOI8_U_GREATER_THAN_SIGN 0x003E #define T_KOI8_U_QUESTION_MARK 0x003F #define T_KOI8_U_COMMERCIAL_AT 0x0040 #define T_KOI8_U_LATIN_CAPITAL_LETTER_A 0x0041 #define T_KOI8_U_LATIN_CAPITAL_LETTER_B 0x0042 #define T_KOI8_U_LATIN_CAPITAL_LETTER_C 0x0043 #define T_KOI8_U_LATIN_CAPITAL_LETTER_D 0x0044 #define T_KOI8_U_LATIN_CAPITAL_LETTER_E 0x0045 #define T_KOI8_U_LATIN_CAPITAL_LETTER_F 0x0046 #define T_KOI8_U_LATIN_CAPITAL_LETTER_G 0x0047 #define T_KOI8_U_LATIN_CAPITAL_LETTER_H 0x0048 #define T_KOI8_U_LATIN_CAPITAL_LETTER_I 0x0049 #define T_KOI8_U_LATIN_CAPITAL_LETTER_J 0x004A #define T_KOI8_U_LATIN_CAPITAL_LETTER_K 0x004B #define T_KOI8_U_LATIN_CAPITAL_LETTER_L 0x004C #define T_KOI8_U_LATIN_CAPITAL_LETTER_M 0x004D #define T_KOI8_U_LATIN_CAPITAL_LETTER_N 0x004E #define T_KOI8_U_LATIN_CAPITAL_LETTER_O 0x004F #define T_KOI8_U_LATIN_CAPITAL_LETTER_P 0x0050 #define T_KOI8_U_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_KOI8_U_LATIN_CAPITAL_LETTER_R 0x0052 #define T_KOI8_U_LATIN_CAPITAL_LETTER_S 0x0053 #define T_KOI8_U_LATIN_CAPITAL_LETTER_T 0x0054 #define T_KOI8_U_LATIN_CAPITAL_LETTER_U 0x0055 #define T_KOI8_U_LATIN_CAPITAL_LETTER_V 0x0056 #define T_KOI8_U_LATIN_CAPITAL_LETTER_W 0x0057 #define T_KOI8_U_LATIN_CAPITAL_LETTER_X 0x0058 #define T_KOI8_U_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_KOI8_U_LATIN_CAPITAL_LETTER_Z 0x005A #define T_KOI8_U_LEFT_SQUARE_BRACKET 0x005B #define T_KOI8_U_REVERSE_SOLIDUS 0x005C #define T_KOI8_U_RIGHT_SQUARE_BRACKET 0x005D #define T_KOI8_U_CIRCUMFLEX_ACCENT 0x005E #define T_KOI8_U_LOW_LINE 0x005F #define T_KOI8_U_GRAVE_ACCENT 0x0060 #define T_KOI8_U_LATIN_SMALL_LETTER_A 0x0061 #define T_KOI8_U_LATIN_SMALL_LETTER_B 0x0062 #define T_KOI8_U_LATIN_SMALL_LETTER_C 0x0063 #define T_KOI8_U_LATIN_SMALL_LETTER_D 0x0064 #define T_KOI8_U_LATIN_SMALL_LETTER_E 0x0065 #define T_KOI8_U_LATIN_SMALL_LETTER_F 0x0066 #define T_KOI8_U_LATIN_SMALL_LETTER_G 0x0067 #define T_KOI8_U_LATIN_SMALL_LETTER_H 0x0068 #define T_KOI8_U_LATIN_SMALL_LETTER_I 0x0069 #define T_KOI8_U_LATIN_SMALL_LETTER_J 0x006A #define T_KOI8_U_LATIN_SMALL_LETTER_K 0x006B #define T_KOI8_U_LATIN_SMALL_LETTER_L 0x006C #define T_KOI8_U_LATIN_SMALL_LETTER_M 0x006D #define T_KOI8_U_LATIN_SMALL_LETTER_N 0x006E #define T_KOI8_U_LATIN_SMALL_LETTER_O 0x006F #define T_KOI8_U_LATIN_SMALL_LETTER_P 0x0070 #define T_KOI8_U_LATIN_SMALL_LETTER_Q 0x0071 #define T_KOI8_U_LATIN_SMALL_LETTER_R 0x0072 #define T_KOI8_U_LATIN_SMALL_LETTER_S 0x0073 #define T_KOI8_U_LATIN_SMALL_LETTER_T 0x0074 #define T_KOI8_U_LATIN_SMALL_LETTER_U 0x0075 #define T_KOI8_U_LATIN_SMALL_LETTER_V 0x0076 #define T_KOI8_U_LATIN_SMALL_LETTER_W 0x0077 #define T_KOI8_U_LATIN_SMALL_LETTER_X 0x0078 #define T_KOI8_U_LATIN_SMALL_LETTER_Y 0x0079 #define T_KOI8_U_LATIN_SMALL_LETTER_Z 0x007A #define T_KOI8_U_LEFT_CURLY_BRACKET 0x007B #define T_KOI8_U_VERTICAL_LINE 0x007C #define T_KOI8_U_RIGHT_CURLY_BRACKET 0x007D #define T_KOI8_U_TILDE 0x007E #define T_KOI8_U_CTRL_DELETE 0x007F #define T_KOI8_U_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x0080 #define T_KOI8_U_BOX_DRAWINGS_LIGHT_VERTICAL 0x0081 #define T_KOI8_U_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x0082 #define T_KOI8_U_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x0083 #define T_KOI8_U_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x0084 #define T_KOI8_U_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x0085 #define T_KOI8_U_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x0086 #define T_KOI8_U_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x0087 #define T_KOI8_U_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x0088 #define T_KOI8_U_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x0089 #define T_KOI8_U_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x008A #define T_KOI8_U_UPPER_HALF_BLOCK 0x008B #define T_KOI8_U_LOWER_HALF_BLOCK 0x008C #define T_KOI8_U_FULL_BLOCK 0x008D #define T_KOI8_U_LEFT_HALF_BLOCK 0x008E #define T_KOI8_U_RIGHT_HALF_BLOCK 0x008F #define T_KOI8_U_LIGHT_SHADE 0x0090 #define T_KOI8_U_MEDIUM_SHADE 0x0091 #define T_KOI8_U_DARK_SHADE 0x0092 #define T_KOI8_U_TOP_HALF_INTEGRAL 0x0093 #define T_KOI8_U_BLACK_SQUARE 0x0094 #define T_KOI8_U_BULLET_OPERATOR 0x0095 #define T_KOI8_U_SQUARE_ROOT 0x0096 #define T_KOI8_U_ALMOST_EQUAL_TO 0x0097 #define T_KOI8_U_LESS_THAN_OR_EQUAL_TO 0x0098 #define T_KOI8_U_GREATER_THAN_OR_EQUAL_TO 0x0099 #define T_KOI8_U_NO_BREAK_SPACE 0x009A #define T_KOI8_U_BOTTOM_HALF_INTEGRAL 0x009B #define T_KOI8_U_DEGREE_SIGN 0x009C #define T_KOI8_U_SUPERSCRIPT_TWO 0x009D #define T_KOI8_U_MIDDLE_DOT 0x009E #define T_KOI8_U_DIVISION_SIGN 0x009F #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x00A0 #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_VERTICAL 0x00A1 #define T_KOI8_U_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x00A2 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_IO 0x00A3 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0x00A4 #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x00A5 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00A6 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_YI 0x00A7 #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x00A8 #define T_KOI8_U_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x00A9 #define T_KOI8_U_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x00AA #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x00AB #define T_KOI8_U_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x00AC #define T_KOI8_U_CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN 0x00AD #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x00AE #define T_KOI8_U_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x00AF #define T_KOI8_U_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x00B0 #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x00B1 #define T_KOI8_U_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x00B2 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_IO 0x00B3 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0x00B4 #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x00B5 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00B6 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_YI 0x00B7 #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x00B8 #define T_KOI8_U_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x00B9 #define T_KOI8_U_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x00BA #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x00BB #define T_KOI8_U_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x00BC #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN 0x00BD #define T_KOI8_U_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x00BE #define T_KOI8_U_COPYRIGHT_SIGN 0x00BF #define T_KOI8_U_CYRILLIC_SMALL_LETTER_YU 0x00C0 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_A 0x00C1 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_BE 0x00C2 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_TSE 0x00C3 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_DE 0x00C4 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_IE 0x00C5 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_EF 0x00C6 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_GHE 0x00C7 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_HA 0x00C8 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_I 0x00C9 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_SHORT_I 0x00CA #define T_KOI8_U_CYRILLIC_SMALL_LETTER_KA 0x00CB #define T_KOI8_U_CYRILLIC_SMALL_LETTER_EL 0x00CC #define T_KOI8_U_CYRILLIC_SMALL_LETTER_EM 0x00CD #define T_KOI8_U_CYRILLIC_SMALL_LETTER_EN 0x00CE #define T_KOI8_U_CYRILLIC_SMALL_LETTER_O 0x00CF #define T_KOI8_U_CYRILLIC_SMALL_LETTER_PE 0x00D0 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_YA 0x00D1 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_ER 0x00D2 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_ES 0x00D3 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_TE 0x00D4 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_U 0x00D5 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_ZHE 0x00D6 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_VE 0x00D7 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0x00D8 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_YERU 0x00D9 #define T_KOI8_U_CYRILLIC_SMALL_LETTER_ZE 0x00DA #define T_KOI8_U_CYRILLIC_SMALL_LETTER_SHA 0x00DB #define T_KOI8_U_CYRILLIC_SMALL_LETTER_E 0x00DC #define T_KOI8_U_CYRILLIC_SMALL_LETTER_SHCHA 0x00DD #define T_KOI8_U_CYRILLIC_SMALL_LETTER_CHE 0x00DE #define T_KOI8_U_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x00DF #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_YU 0x00E0 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_A 0x00E1 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_BE 0x00E2 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_TSE 0x00E3 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_DE 0x00E4 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_IE 0x00E5 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_EF 0x00E6 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_GHE 0x00E7 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_HA 0x00E8 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_I 0x00E9 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x00EA #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_KA 0x00EB #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_EL 0x00EC #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_EM 0x00ED #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_EN 0x00EE #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_O 0x00EF #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_PE 0x00F0 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_YA 0x00F1 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_ER 0x00F2 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_ES 0x00F3 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_TE 0x00F4 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_U 0x00F5 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_ZHE 0x00F6 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_VE 0x00F7 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x00F8 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_YERU 0x00F9 #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_ZE 0x00FA #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_SHA 0x00FB #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_E 0x00FC #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_SHCHA 0x00FD #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_CHE 0x00FE #define T_KOI8_U_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x00FF /* list of all characters */ #define T_LIST_KOI8_U(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_UPPER_HALF_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_FULL_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BLACK_SQUARE) \ EL(_BULLET_OPERATOR) \ EL(_SQUARE_ROOT) \ EL(_ALMOST_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_NO_BREAK_SPACE) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DEGREE_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_MIDDLE_DOT) \ EL(_DIVISION_SIGN) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_COPYRIGHT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_KOI8_U(EL) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_UPPER_HALF_BLOCK) \ EL(_LOWER_HALF_BLOCK) \ EL(_FULL_BLOCK) \ EL(_LEFT_HALF_BLOCK) \ EL(_RIGHT_HALF_BLOCK) \ EL(_LIGHT_SHADE) \ EL(_MEDIUM_SHADE) \ EL(_DARK_SHADE) \ EL(_TOP_HALF_INTEGRAL) \ EL(_BLACK_SQUARE) \ EL(_BULLET_OPERATOR) \ EL(_SQUARE_ROOT) \ EL(_ALMOST_EQUAL_TO) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_NO_BREAK_SPACE) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_DEGREE_SIGN) \ EL(_SUPERSCRIPT_TWO) \ EL(_MIDDLE_DOT) \ EL(_DIVISION_SIGN) \ EL(_BOX_DRAWINGS_DOUBLE_HORIZONTAL) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL) \ EL(_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE) \ EL(_CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE) \ EL(_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE) \ EL(_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN) \ EL(_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL) \ EL(_COPYRIGHT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) #endif /* TUTF_KOI8_U_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/kz1048.h��������������������������������������������������������������������0000664�0000000�0000000�00000140635�13775351206�0016202�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_KZ1048_H #define TUTF_KZ1048_H #define T_KZ1048_CTRL_NULL 0x0000 #define T_KZ1048_CTRL_START_OF_HEADING 0x0001 #define T_KZ1048_CTRL_START_OF_TEXT 0x0002 #define T_KZ1048_CTRL_END_OF_TEXT 0x0003 #define T_KZ1048_CTRL_END_OF_TRANSMISSION 0x0004 #define T_KZ1048_CTRL_ENQUIRY 0x0005 #define T_KZ1048_CTRL_ACKNOWLEDGE 0x0006 #define T_KZ1048_CTRL_BELL 0x0007 #define T_KZ1048_CTRL_BACKSPACE 0x0008 #define T_KZ1048_CTRL_CHARACTER_TABULATION 0x0009 #define T_KZ1048_CTRL_LINE_FEED 0x000A #define T_KZ1048_CTRL_LINE_TABULATION 0x000B #define T_KZ1048_CTRL_FORM_FEED 0x000C #define T_KZ1048_CTRL_CARRIAGE_RETURN 0x000D #define T_KZ1048_CTRL_SHIFT_OUT 0x000E #define T_KZ1048_CTRL_SHIFT_IN 0x000F #define T_KZ1048_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_KZ1048_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_KZ1048_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_KZ1048_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_KZ1048_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_KZ1048_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_KZ1048_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_KZ1048_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_KZ1048_CTRL_CANCEL 0x0018 #define T_KZ1048_CTRL_END_OF_MEDIUM 0x0019 #define T_KZ1048_CTRL_SUBSTITUTE 0x001A #define T_KZ1048_CTRL_ESCAPE 0x001B #define T_KZ1048_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_KZ1048_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_KZ1048_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_KZ1048_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_KZ1048_SPACE 0x0020 #define T_KZ1048_EXCLAMATION_MARK 0x0021 #define T_KZ1048_QUOTATION_MARK 0x0022 #define T_KZ1048_NUMBER_SIGN 0x0023 #define T_KZ1048_DOLLAR_SIGN 0x0024 #define T_KZ1048_PERCENT_SIGN 0x0025 #define T_KZ1048_AMPERSAND 0x0026 #define T_KZ1048_APOSTROPHE 0x0027 #define T_KZ1048_LEFT_PARENTHESIS 0x0028 #define T_KZ1048_RIGHT_PARENTHESIS 0x0029 #define T_KZ1048_ASTERISK 0x002A #define T_KZ1048_PLUS_SIGN 0x002B #define T_KZ1048_COMMA 0x002C #define T_KZ1048_HYPHEN_MINUS 0x002D #define T_KZ1048_FULL_STOP 0x002E #define T_KZ1048_SOLIDUS 0x002F #define T_KZ1048_DIGIT_ZERO 0x0030 #define T_KZ1048_DIGIT_ONE 0x0031 #define T_KZ1048_DIGIT_TWO 0x0032 #define T_KZ1048_DIGIT_THREE 0x0033 #define T_KZ1048_DIGIT_FOUR 0x0034 #define T_KZ1048_DIGIT_FIVE 0x0035 #define T_KZ1048_DIGIT_SIX 0x0036 #define T_KZ1048_DIGIT_SEVEN 0x0037 #define T_KZ1048_DIGIT_EIGHT 0x0038 #define T_KZ1048_DIGIT_NINE 0x0039 #define T_KZ1048_COLON 0x003A #define T_KZ1048_SEMICOLON 0x003B #define T_KZ1048_LESS_THAN_SIGN 0x003C #define T_KZ1048_EQUALS_SIGN 0x003D #define T_KZ1048_GREATER_THAN_SIGN 0x003E #define T_KZ1048_QUESTION_MARK 0x003F #define T_KZ1048_COMMERCIAL_AT 0x0040 #define T_KZ1048_LATIN_CAPITAL_LETTER_A 0x0041 #define T_KZ1048_LATIN_CAPITAL_LETTER_B 0x0042 #define T_KZ1048_LATIN_CAPITAL_LETTER_C 0x0043 #define T_KZ1048_LATIN_CAPITAL_LETTER_D 0x0044 #define T_KZ1048_LATIN_CAPITAL_LETTER_E 0x0045 #define T_KZ1048_LATIN_CAPITAL_LETTER_F 0x0046 #define T_KZ1048_LATIN_CAPITAL_LETTER_G 0x0047 #define T_KZ1048_LATIN_CAPITAL_LETTER_H 0x0048 #define T_KZ1048_LATIN_CAPITAL_LETTER_I 0x0049 #define T_KZ1048_LATIN_CAPITAL_LETTER_J 0x004A #define T_KZ1048_LATIN_CAPITAL_LETTER_K 0x004B #define T_KZ1048_LATIN_CAPITAL_LETTER_L 0x004C #define T_KZ1048_LATIN_CAPITAL_LETTER_M 0x004D #define T_KZ1048_LATIN_CAPITAL_LETTER_N 0x004E #define T_KZ1048_LATIN_CAPITAL_LETTER_O 0x004F #define T_KZ1048_LATIN_CAPITAL_LETTER_P 0x0050 #define T_KZ1048_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_KZ1048_LATIN_CAPITAL_LETTER_R 0x0052 #define T_KZ1048_LATIN_CAPITAL_LETTER_S 0x0053 #define T_KZ1048_LATIN_CAPITAL_LETTER_T 0x0054 #define T_KZ1048_LATIN_CAPITAL_LETTER_U 0x0055 #define T_KZ1048_LATIN_CAPITAL_LETTER_V 0x0056 #define T_KZ1048_LATIN_CAPITAL_LETTER_W 0x0057 #define T_KZ1048_LATIN_CAPITAL_LETTER_X 0x0058 #define T_KZ1048_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_KZ1048_LATIN_CAPITAL_LETTER_Z 0x005A #define T_KZ1048_LEFT_SQUARE_BRACKET 0x005B #define T_KZ1048_REVERSE_SOLIDUS 0x005C #define T_KZ1048_RIGHT_SQUARE_BRACKET 0x005D #define T_KZ1048_CIRCUMFLEX_ACCENT 0x005E #define T_KZ1048_LOW_LINE 0x005F #define T_KZ1048_GRAVE_ACCENT 0x0060 #define T_KZ1048_LATIN_SMALL_LETTER_A 0x0061 #define T_KZ1048_LATIN_SMALL_LETTER_B 0x0062 #define T_KZ1048_LATIN_SMALL_LETTER_C 0x0063 #define T_KZ1048_LATIN_SMALL_LETTER_D 0x0064 #define T_KZ1048_LATIN_SMALL_LETTER_E 0x0065 #define T_KZ1048_LATIN_SMALL_LETTER_F 0x0066 #define T_KZ1048_LATIN_SMALL_LETTER_G 0x0067 #define T_KZ1048_LATIN_SMALL_LETTER_H 0x0068 #define T_KZ1048_LATIN_SMALL_LETTER_I 0x0069 #define T_KZ1048_LATIN_SMALL_LETTER_J 0x006A #define T_KZ1048_LATIN_SMALL_LETTER_K 0x006B #define T_KZ1048_LATIN_SMALL_LETTER_L 0x006C #define T_KZ1048_LATIN_SMALL_LETTER_M 0x006D #define T_KZ1048_LATIN_SMALL_LETTER_N 0x006E #define T_KZ1048_LATIN_SMALL_LETTER_O 0x006F #define T_KZ1048_LATIN_SMALL_LETTER_P 0x0070 #define T_KZ1048_LATIN_SMALL_LETTER_Q 0x0071 #define T_KZ1048_LATIN_SMALL_LETTER_R 0x0072 #define T_KZ1048_LATIN_SMALL_LETTER_S 0x0073 #define T_KZ1048_LATIN_SMALL_LETTER_T 0x0074 #define T_KZ1048_LATIN_SMALL_LETTER_U 0x0075 #define T_KZ1048_LATIN_SMALL_LETTER_V 0x0076 #define T_KZ1048_LATIN_SMALL_LETTER_W 0x0077 #define T_KZ1048_LATIN_SMALL_LETTER_X 0x0078 #define T_KZ1048_LATIN_SMALL_LETTER_Y 0x0079 #define T_KZ1048_LATIN_SMALL_LETTER_Z 0x007A #define T_KZ1048_LEFT_CURLY_BRACKET 0x007B #define T_KZ1048_VERTICAL_LINE 0x007C #define T_KZ1048_RIGHT_CURLY_BRACKET 0x007D #define T_KZ1048_TILDE 0x007E #define T_KZ1048_CTRL_DELETE 0x007F #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_DJE 0x0080 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_GJE 0x0081 #define T_KZ1048_SINGLE_LOW_9_QUOTATION_MARK 0x0082 #define T_KZ1048_CYRILLIC_SMALL_LETTER_GJE 0x0083 #define T_KZ1048_DOUBLE_LOW_9_QUOTATION_MARK 0x0084 #define T_KZ1048_HORIZONTAL_ELLIPSIS 0x0085 #define T_KZ1048_DAGGER 0x0086 #define T_KZ1048_DOUBLE_DAGGER 0x0087 #define T_KZ1048_EURO_SIGN 0x0088 #define T_KZ1048_PER_MILLE_SIGN 0x0089 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_LJE 0x008A #define T_KZ1048_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x008B #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_NJE 0x008C #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_KA_WITH_DESCENDER 0x008D #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_SHHA 0x008E #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_DZHE 0x008F #define T_KZ1048_CYRILLIC_SMALL_LETTER_DJE 0x0090 #define T_KZ1048_LEFT_SINGLE_QUOTATION_MARK 0x0091 #define T_KZ1048_RIGHT_SINGLE_QUOTATION_MARK 0x0092 #define T_KZ1048_LEFT_DOUBLE_QUOTATION_MARK 0x0093 #define T_KZ1048_RIGHT_DOUBLE_QUOTATION_MARK 0x0094 #define T_KZ1048_BULLET 0x0095 #define T_KZ1048_EN_DASH 0x0096 #define T_KZ1048_EM_DASH 0x0097 #define T_KZ1048_UNDEFINED_0098 0x0098 #define T_KZ1048_TRADE_MARK_SIGN 0x0099 #define T_KZ1048_CYRILLIC_SMALL_LETTER_LJE 0x009A #define T_KZ1048_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x009B #define T_KZ1048_CYRILLIC_SMALL_LETTER_NJE 0x009C #define T_KZ1048_CYRILLIC_SMALL_LETTER_KA_WITH_DESCENDER 0x009D #define T_KZ1048_CYRILLIC_SMALL_LETTER_SHHA 0x009E #define T_KZ1048_CYRILLIC_SMALL_LETTER_DZHE 0x009F #define T_KZ1048_NO_BREAK_SPACE 0x00A0 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_STRAIGHT_U_WITH_STROKE 0x00A1 #define T_KZ1048_CYRILLIC_SMALL_LETTER_STRAIGHT_U_WITH_STROKE 0x00A2 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_SCHWA 0x00A3 #define T_KZ1048_CURRENCY_SIGN 0x00A4 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_BARRED_O 0x00A5 #define T_KZ1048_BROKEN_BAR 0x00A6 #define T_KZ1048_SECTION_SIGN 0x00A7 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_IO 0x00A8 #define T_KZ1048_COPYRIGHT_SIGN 0x00A9 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_GHE_WITH_STROKE 0x00AA #define T_KZ1048_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_KZ1048_NOT_SIGN 0x00AC #define T_KZ1048_SOFT_HYPHEN 0x00AD #define T_KZ1048_REGISTERED_SIGN 0x00AE #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_STRAIGHT_U 0x00AF #define T_KZ1048_DEGREE_SIGN 0x00B0 #define T_KZ1048_PLUS_MINUS_SIGN 0x00B1 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00B2 #define T_KZ1048_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00B3 #define T_KZ1048_CYRILLIC_SMALL_LETTER_BARRED_O 0x00B4 #define T_KZ1048_MICRO_SIGN 0x00B5 #define T_KZ1048_PILCROW_SIGN 0x00B6 #define T_KZ1048_MIDDLE_DOT 0x00B7 #define T_KZ1048_CYRILLIC_SMALL_LETTER_IO 0x00B8 #define T_KZ1048_NUMERO_SIGN 0x00B9 #define T_KZ1048_CYRILLIC_SMALL_LETTER_GHE_WITH_STROKE 0x00BA #define T_KZ1048_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_KZ1048_CYRILLIC_SMALL_LETTER_SCHWA 0x00BC #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_EN_WITH_DESCENDER 0x00BD #define T_KZ1048_CYRILLIC_SMALL_LETTER_EN_WITH_DESCENDER 0x00BE #define T_KZ1048_CYRILLIC_SMALL_LETTER_STRAIGHT_U 0x00BF #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_A 0x00C0 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_BE 0x00C1 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_VE 0x00C2 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_GHE 0x00C3 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_DE 0x00C4 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_IE 0x00C5 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_ZHE 0x00C6 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_ZE 0x00C7 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_I 0x00C8 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x00C9 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_KA 0x00CA #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_EL 0x00CB #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_EM 0x00CC #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_EN 0x00CD #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_O 0x00CE #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_PE 0x00CF #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_ER 0x00D0 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_ES 0x00D1 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_TE 0x00D2 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_U 0x00D3 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_EF 0x00D4 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_HA 0x00D5 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_TSE 0x00D6 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_CHE 0x00D7 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_SHA 0x00D8 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_SHCHA 0x00D9 #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x00DA #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_YERU 0x00DB #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x00DC #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_E 0x00DD #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_YU 0x00DE #define T_KZ1048_CYRILLIC_CAPITAL_LETTER_YA 0x00DF #define T_KZ1048_CYRILLIC_SMALL_LETTER_A 0x00E0 #define T_KZ1048_CYRILLIC_SMALL_LETTER_BE 0x00E1 #define T_KZ1048_CYRILLIC_SMALL_LETTER_VE 0x00E2 #define T_KZ1048_CYRILLIC_SMALL_LETTER_GHE 0x00E3 #define T_KZ1048_CYRILLIC_SMALL_LETTER_DE 0x00E4 #define T_KZ1048_CYRILLIC_SMALL_LETTER_IE 0x00E5 #define T_KZ1048_CYRILLIC_SMALL_LETTER_ZHE 0x00E6 #define T_KZ1048_CYRILLIC_SMALL_LETTER_ZE 0x00E7 #define T_KZ1048_CYRILLIC_SMALL_LETTER_I 0x00E8 #define T_KZ1048_CYRILLIC_SMALL_LETTER_SHORT_I 0x00E9 #define T_KZ1048_CYRILLIC_SMALL_LETTER_KA 0x00EA #define T_KZ1048_CYRILLIC_SMALL_LETTER_EL 0x00EB #define T_KZ1048_CYRILLIC_SMALL_LETTER_EM 0x00EC #define T_KZ1048_CYRILLIC_SMALL_LETTER_EN 0x00ED #define T_KZ1048_CYRILLIC_SMALL_LETTER_O 0x00EE #define T_KZ1048_CYRILLIC_SMALL_LETTER_PE 0x00EF #define T_KZ1048_CYRILLIC_SMALL_LETTER_ER 0x00F0 #define T_KZ1048_CYRILLIC_SMALL_LETTER_ES 0x00F1 #define T_KZ1048_CYRILLIC_SMALL_LETTER_TE 0x00F2 #define T_KZ1048_CYRILLIC_SMALL_LETTER_U 0x00F3 #define T_KZ1048_CYRILLIC_SMALL_LETTER_EF 0x00F4 #define T_KZ1048_CYRILLIC_SMALL_LETTER_HA 0x00F5 #define T_KZ1048_CYRILLIC_SMALL_LETTER_TSE 0x00F6 #define T_KZ1048_CYRILLIC_SMALL_LETTER_CHE 0x00F7 #define T_KZ1048_CYRILLIC_SMALL_LETTER_SHA 0x00F8 #define T_KZ1048_CYRILLIC_SMALL_LETTER_SHCHA 0x00F9 #define T_KZ1048_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x00FA #define T_KZ1048_CYRILLIC_SMALL_LETTER_YERU 0x00FB #define T_KZ1048_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0x00FC #define T_KZ1048_CYRILLIC_SMALL_LETTER_E 0x00FD #define T_KZ1048_CYRILLIC_SMALL_LETTER_YU 0x00FE #define T_KZ1048_CYRILLIC_SMALL_LETTER_YA 0x00FF /* list of all characters */ #define T_LIST_KZ1048(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_EURO_SIGN) \ EL(_PER_MILLE_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_CAPITAL_LETTER_KA_WITH_DESCENDER) \ EL(_CYRILLIC_CAPITAL_LETTER_SHHA) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_TRADE_MARK_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_KA_WITH_DESCENDER) \ EL(_CYRILLIC_SMALL_LETTER_SHHA) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) \ EL(_NO_BREAK_SPACE) \ EL(_CYRILLIC_CAPITAL_LETTER_STRAIGHT_U_WITH_STROKE) \ EL(_CYRILLIC_SMALL_LETTER_STRAIGHT_U_WITH_STROKE) \ EL(_CYRILLIC_CAPITAL_LETTER_SCHWA) \ EL(_CURRENCY_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_BARRED_O) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_COPYRIGHT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE_WITH_STROKE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_STRAIGHT_U) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_BARRED_O) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_NUMERO_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_GHE_WITH_STROKE) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_CYRILLIC_SMALL_LETTER_SCHWA) \ EL(_CYRILLIC_CAPITAL_LETTER_EN_WITH_DESCENDER) \ EL(_CYRILLIC_SMALL_LETTER_EN_WITH_DESCENDER) \ EL(_CYRILLIC_SMALL_LETTER_STRAIGHT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_YA) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_KZ1048(EL) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_EURO_SIGN) \ EL(_PER_MILLE_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_CAPITAL_LETTER_KA_WITH_DESCENDER) \ EL(_CYRILLIC_CAPITAL_LETTER_SHHA) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_BULLET) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_UNDEFINED_0098) \ EL(_TRADE_MARK_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_KA_WITH_DESCENDER) \ EL(_CYRILLIC_SMALL_LETTER_SHHA) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_STRAIGHT_U_WITH_STROKE) \ EL(_CYRILLIC_SMALL_LETTER_STRAIGHT_U_WITH_STROKE) \ EL(_CYRILLIC_CAPITAL_LETTER_SCHWA) \ EL(_CYRILLIC_CAPITAL_LETTER_BARRED_O) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE_WITH_STROKE) \ EL(_CYRILLIC_CAPITAL_LETTER_STRAIGHT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_BARRED_O) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_NUMERO_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_GHE_WITH_STROKE) \ EL(_CYRILLIC_SMALL_LETTER_SCHWA) \ EL(_CYRILLIC_CAPITAL_LETTER_EN_WITH_DESCENDER) \ EL(_CYRILLIC_SMALL_LETTER_EN_WITH_DESCENDER) \ EL(_CYRILLIC_SMALL_LETTER_STRAIGHT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CYRILLIC_SMALL_LETTER_YA) #endif /* TUTF_KZ1048_H */ ���������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_arabic.h����������������������������������������������������������������0000664�0000000�0000000�00000144717�13775351206�0017307�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_ARABIC_H #define TUTF_MAC_ARABIC_H #define T_MAC_ARABIC_CTRL_NULL 0x0000 #define T_MAC_ARABIC_CTRL_START_OF_HEADING 0x0001 #define T_MAC_ARABIC_CTRL_START_OF_TEXT 0x0002 #define T_MAC_ARABIC_CTRL_END_OF_TEXT 0x0003 #define T_MAC_ARABIC_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_ARABIC_CTRL_ENQUIRY 0x0005 #define T_MAC_ARABIC_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_ARABIC_CTRL_BELL 0x0007 #define T_MAC_ARABIC_CTRL_BACKSPACE 0x0008 #define T_MAC_ARABIC_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_ARABIC_CTRL_LINE_FEED 0x000A #define T_MAC_ARABIC_CTRL_LINE_TABULATION 0x000B #define T_MAC_ARABIC_CTRL_FORM_FEED 0x000C #define T_MAC_ARABIC_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_ARABIC_CTRL_SHIFT_OUT 0x000E #define T_MAC_ARABIC_CTRL_SHIFT_IN 0x000F #define T_MAC_ARABIC_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_ARABIC_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_ARABIC_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_ARABIC_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_ARABIC_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_ARABIC_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_ARABIC_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_ARABIC_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_ARABIC_CTRL_CANCEL 0x0018 #define T_MAC_ARABIC_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_ARABIC_CTRL_SUBSTITUTE 0x001A #define T_MAC_ARABIC_CTRL_ESCAPE 0x001B #define T_MAC_ARABIC_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_ARABIC_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_ARABIC_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_ARABIC_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_ARABIC_SPACE 0x0020 #define T_MAC_ARABIC_EXCLAMATION_MARK 0x0021 #define T_MAC_ARABIC_QUOTATION_MARK 0x0022 #define T_MAC_ARABIC_NUMBER_SIGN 0x0023 #define T_MAC_ARABIC_DOLLAR_SIGN 0x0024 #define T_MAC_ARABIC_PERCENT_SIGN 0x0025 #define T_MAC_ARABIC_AMPERSAND 0x0026 #define T_MAC_ARABIC_APOSTROPHE 0x0027 #define T_MAC_ARABIC_LEFT_PARENTHESIS 0x0028 #define T_MAC_ARABIC_RIGHT_PARENTHESIS 0x0029 #define T_MAC_ARABIC_ASTERISK 0x002A #define T_MAC_ARABIC_PLUS_SIGN 0x002B #define T_MAC_ARABIC_COMMA 0x002C #define T_MAC_ARABIC_HYPHEN_MINUS 0x002D #define T_MAC_ARABIC_FULL_STOP 0x002E #define T_MAC_ARABIC_SOLIDUS 0x002F #define T_MAC_ARABIC_DIGIT_ZERO 0x0030 #define T_MAC_ARABIC_DIGIT_ONE 0x0031 #define T_MAC_ARABIC_DIGIT_TWO 0x0032 #define T_MAC_ARABIC_DIGIT_THREE 0x0033 #define T_MAC_ARABIC_DIGIT_FOUR 0x0034 #define T_MAC_ARABIC_DIGIT_FIVE 0x0035 #define T_MAC_ARABIC_DIGIT_SIX 0x0036 #define T_MAC_ARABIC_DIGIT_SEVEN 0x0037 #define T_MAC_ARABIC_DIGIT_EIGHT 0x0038 #define T_MAC_ARABIC_DIGIT_NINE 0x0039 #define T_MAC_ARABIC_COLON 0x003A #define T_MAC_ARABIC_SEMICOLON 0x003B #define T_MAC_ARABIC_LESS_THAN_SIGN 0x003C #define T_MAC_ARABIC_EQUALS_SIGN 0x003D #define T_MAC_ARABIC_GREATER_THAN_SIGN 0x003E #define T_MAC_ARABIC_QUESTION_MARK 0x003F #define T_MAC_ARABIC_COMMERCIAL_AT 0x0040 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_ARABIC_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_ARABIC_REVERSE_SOLIDUS 0x005C #define T_MAC_ARABIC_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_ARABIC_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_ARABIC_LOW_LINE 0x005F #define T_MAC_ARABIC_GRAVE_ACCENT 0x0060 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_ARABIC_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_ARABIC_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_ARABIC_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_ARABIC_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_ARABIC_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_ARABIC_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_ARABIC_LEFT_CURLY_BRACKET 0x007B #define T_MAC_ARABIC_VERTICAL_LINE 0x007C #define T_MAC_ARABIC_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_ARABIC_TILDE 0x007E #define T_MAC_ARABIC_CTRL_DELETE 0x007F #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_ARABIC_NO_BREAK_SPACE 0x0081 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_ARABIC_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_ARABIC_ARABIC_LETTER_NOON_GHUNNA 0x008B #define T_MAC_ARABIC_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x008C #define T_MAC_ARABIC_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_ARABIC_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_ARABIC_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_ARABIC_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_ARABIC_HORIZONTAL_ELLIPSIS 0x0093 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_ARABIC_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x0098 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_ARABIC_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_ARABIC_DIVISION_SIGN 0x009B #define T_MAC_ARABIC_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_ARABIC_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_ARABIC_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_ARABIC_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_ARABIC_UNDEFINED_00A0 0x00A0 #define T_MAC_ARABIC_UNDEFINED_00A1 0x00A1 #define T_MAC_ARABIC_UNDEFINED_00A2 0x00A2 #define T_MAC_ARABIC_UNDEFINED_00A3 0x00A3 #define T_MAC_ARABIC_UNDEFINED_00A4 0x00A4 #define T_MAC_ARABIC_ARABIC_PERCENT_SIGN 0x00A5 #define T_MAC_ARABIC_UNDEFINED_00A6 0x00A6 #define T_MAC_ARABIC_UNDEFINED_00A7 0x00A7 #define T_MAC_ARABIC_UNDEFINED_00A8 0x00A8 #define T_MAC_ARABIC_UNDEFINED_00A9 0x00A9 #define T_MAC_ARABIC_UNDEFINED_00AA 0x00AA #define T_MAC_ARABIC_UNDEFINED_00AB 0x00AB #define T_MAC_ARABIC_ARABIC_COMMA 0x00AC #define T_MAC_ARABIC_UNDEFINED_00AD 0x00AD #define T_MAC_ARABIC_UNDEFINED_00AE 0x00AE #define T_MAC_ARABIC_UNDEFINED_00AF 0x00AF #define T_MAC_ARABIC_ARABIC_INDIC_DIGIT_ZERO 0x00B0 #define T_MAC_ARABIC_ARABIC_INDIC_DIGIT_ONE 0x00B1 #define T_MAC_ARABIC_ARABIC_INDIC_DIGIT_TWO 0x00B2 #define T_MAC_ARABIC_ARABIC_INDIC_DIGIT_THREE 0x00B3 #define T_MAC_ARABIC_ARABIC_INDIC_DIGIT_FOUR 0x00B4 #define T_MAC_ARABIC_ARABIC_INDIC_DIGIT_FIVE 0x00B5 #define T_MAC_ARABIC_ARABIC_INDIC_DIGIT_SIX 0x00B6 #define T_MAC_ARABIC_ARABIC_INDIC_DIGIT_SEVEN 0x00B7 #define T_MAC_ARABIC_ARABIC_INDIC_DIGIT_EIGHT 0x00B8 #define T_MAC_ARABIC_ARABIC_INDIC_DIGIT_NINE 0x00B9 #define T_MAC_ARABIC_UNDEFINED_00BA 0x00BA #define T_MAC_ARABIC_ARABIC_SEMICOLON 0x00BB #define T_MAC_ARABIC_UNDEFINED_00BC 0x00BC #define T_MAC_ARABIC_UNDEFINED_00BD 0x00BD #define T_MAC_ARABIC_UNDEFINED_00BE 0x00BE #define T_MAC_ARABIC_ARABIC_QUESTION_MARK 0x00BF #define T_MAC_ARABIC_EIGHT_TEARDROP_SPOKED_PROPELLER_ASTERISK 0x00C0 #define T_MAC_ARABIC_ARABIC_LETTER_HAMZA 0x00C1 #define T_MAC_ARABIC_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE 0x00C2 #define T_MAC_ARABIC_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE 0x00C3 #define T_MAC_ARABIC_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE 0x00C4 #define T_MAC_ARABIC_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW 0x00C5 #define T_MAC_ARABIC_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE 0x00C6 #define T_MAC_ARABIC_ARABIC_LETTER_ALEF 0x00C7 #define T_MAC_ARABIC_ARABIC_LETTER_BEH 0x00C8 #define T_MAC_ARABIC_ARABIC_LETTER_TEH_MARBUTA 0x00C9 #define T_MAC_ARABIC_ARABIC_LETTER_TEH 0x00CA #define T_MAC_ARABIC_ARABIC_LETTER_THEH 0x00CB #define T_MAC_ARABIC_ARABIC_LETTER_JEEM 0x00CC #define T_MAC_ARABIC_ARABIC_LETTER_HAH 0x00CD #define T_MAC_ARABIC_ARABIC_LETTER_KHAH 0x00CE #define T_MAC_ARABIC_ARABIC_LETTER_DAL 0x00CF #define T_MAC_ARABIC_ARABIC_LETTER_THAL 0x00D0 #define T_MAC_ARABIC_ARABIC_LETTER_REH 0x00D1 #define T_MAC_ARABIC_ARABIC_LETTER_ZAIN 0x00D2 #define T_MAC_ARABIC_ARABIC_LETTER_SEEN 0x00D3 #define T_MAC_ARABIC_ARABIC_LETTER_SHEEN 0x00D4 #define T_MAC_ARABIC_ARABIC_LETTER_SAD 0x00D5 #define T_MAC_ARABIC_ARABIC_LETTER_DAD 0x00D6 #define T_MAC_ARABIC_ARABIC_LETTER_TAH 0x00D7 #define T_MAC_ARABIC_ARABIC_LETTER_ZAH 0x00D8 #define T_MAC_ARABIC_ARABIC_LETTER_AIN 0x00D9 #define T_MAC_ARABIC_ARABIC_LETTER_GHAIN 0x00DA #define T_MAC_ARABIC_UNDEFINED_00DB 0x00DB #define T_MAC_ARABIC_UNDEFINED_00DC 0x00DC #define T_MAC_ARABIC_UNDEFINED_00DD 0x00DD #define T_MAC_ARABIC_UNDEFINED_00DE 0x00DE #define T_MAC_ARABIC_UNDEFINED_00DF 0x00DF #define T_MAC_ARABIC_ARABIC_TATWEEL 0x00E0 #define T_MAC_ARABIC_ARABIC_LETTER_FEH 0x00E1 #define T_MAC_ARABIC_ARABIC_LETTER_QAF 0x00E2 #define T_MAC_ARABIC_ARABIC_LETTER_KAF 0x00E3 #define T_MAC_ARABIC_ARABIC_LETTER_LAM 0x00E4 #define T_MAC_ARABIC_ARABIC_LETTER_MEEM 0x00E5 #define T_MAC_ARABIC_ARABIC_LETTER_NOON 0x00E6 #define T_MAC_ARABIC_ARABIC_LETTER_HEH 0x00E7 #define T_MAC_ARABIC_ARABIC_LETTER_WAW 0x00E8 #define T_MAC_ARABIC_ARABIC_LETTER_ALEF_MAKSURA 0x00E9 #define T_MAC_ARABIC_ARABIC_LETTER_YEH 0x00EA #define T_MAC_ARABIC_ARABIC_FATHATAN 0x00EB #define T_MAC_ARABIC_ARABIC_DAMMATAN 0x00EC #define T_MAC_ARABIC_ARABIC_KASRATAN 0x00ED #define T_MAC_ARABIC_ARABIC_FATHA 0x00EE #define T_MAC_ARABIC_ARABIC_DAMMA 0x00EF #define T_MAC_ARABIC_ARABIC_KASRA 0x00F0 #define T_MAC_ARABIC_ARABIC_SHADDA 0x00F1 #define T_MAC_ARABIC_ARABIC_SUKUN 0x00F2 #define T_MAC_ARABIC_ARABIC_LETTER_PEH 0x00F3 #define T_MAC_ARABIC_ARABIC_LETTER_TTEH 0x00F4 #define T_MAC_ARABIC_ARABIC_LETTER_TCHEH 0x00F5 #define T_MAC_ARABIC_ARABIC_LETTER_AE 0x00F6 #define T_MAC_ARABIC_ARABIC_LETTER_VEH 0x00F7 #define T_MAC_ARABIC_ARABIC_LETTER_GAF 0x00F8 #define T_MAC_ARABIC_ARABIC_LETTER_DDAL 0x00F9 #define T_MAC_ARABIC_ARABIC_LETTER_RREH 0x00FA #define T_MAC_ARABIC_UNDEFINED_00FB 0x00FB #define T_MAC_ARABIC_UNDEFINED_00FC 0x00FC #define T_MAC_ARABIC_UNDEFINED_00FD 0x00FD #define T_MAC_ARABIC_ARABIC_LETTER_JEH 0x00FE #define T_MAC_ARABIC_ARABIC_LETTER_YEH_BARREE 0x00FF /* list of all characters */ #define T_LIST_MAC_ARABIC(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_ARABIC_LETTER_NOON_GHUNNA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_ARABIC_PERCENT_SIGN) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_ARABIC_COMMA) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_ARABIC_INDIC_DIGIT_ZERO) \ EL(_ARABIC_INDIC_DIGIT_ONE) \ EL(_ARABIC_INDIC_DIGIT_TWO) \ EL(_ARABIC_INDIC_DIGIT_THREE) \ EL(_ARABIC_INDIC_DIGIT_FOUR) \ EL(_ARABIC_INDIC_DIGIT_FIVE) \ EL(_ARABIC_INDIC_DIGIT_SIX) \ EL(_ARABIC_INDIC_DIGIT_SEVEN) \ EL(_ARABIC_INDIC_DIGIT_EIGHT) \ EL(_ARABIC_INDIC_DIGIT_NINE) \ EL(_UNDEFINED_00BA) \ EL(_ARABIC_SEMICOLON) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_ARABIC_QUESTION_MARK) \ EL(_EIGHT_TEARDROP_SPOKED_PROPELLER_ASTERISK) \ EL(_ARABIC_LETTER_HAMZA) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF) \ EL(_ARABIC_LETTER_BEH) \ EL(_ARABIC_LETTER_TEH_MARBUTA) \ EL(_ARABIC_LETTER_TEH) \ EL(_ARABIC_LETTER_THEH) \ EL(_ARABIC_LETTER_JEEM) \ EL(_ARABIC_LETTER_HAH) \ EL(_ARABIC_LETTER_KHAH) \ EL(_ARABIC_LETTER_DAL) \ EL(_ARABIC_LETTER_THAL) \ EL(_ARABIC_LETTER_REH) \ EL(_ARABIC_LETTER_ZAIN) \ EL(_ARABIC_LETTER_SEEN) \ EL(_ARABIC_LETTER_SHEEN) \ EL(_ARABIC_LETTER_SAD) \ EL(_ARABIC_LETTER_DAD) \ EL(_ARABIC_LETTER_TAH) \ EL(_ARABIC_LETTER_ZAH) \ EL(_ARABIC_LETTER_AIN) \ EL(_ARABIC_LETTER_GHAIN) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_ARABIC_TATWEEL) \ EL(_ARABIC_LETTER_FEH) \ EL(_ARABIC_LETTER_QAF) \ EL(_ARABIC_LETTER_KAF) \ EL(_ARABIC_LETTER_LAM) \ EL(_ARABIC_LETTER_MEEM) \ EL(_ARABIC_LETTER_NOON) \ EL(_ARABIC_LETTER_HEH) \ EL(_ARABIC_LETTER_WAW) \ EL(_ARABIC_LETTER_ALEF_MAKSURA) \ EL(_ARABIC_LETTER_YEH) \ EL(_ARABIC_FATHATAN) \ EL(_ARABIC_DAMMATAN) \ EL(_ARABIC_KASRATAN) \ EL(_ARABIC_FATHA) \ EL(_ARABIC_DAMMA) \ EL(_ARABIC_KASRA) \ EL(_ARABIC_SHADDA) \ EL(_ARABIC_SUKUN) \ EL(_ARABIC_LETTER_PEH) \ EL(_ARABIC_LETTER_TTEH) \ EL(_ARABIC_LETTER_TCHEH) \ EL(_ARABIC_LETTER_AE) \ EL(_ARABIC_LETTER_VEH) \ EL(_ARABIC_LETTER_GAF) \ EL(_ARABIC_LETTER_DDAL) \ EL(_ARABIC_LETTER_RREH) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_ARABIC_LETTER_JEH) \ EL(_ARABIC_LETTER_YEH_BARREE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_ARABIC(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_ARABIC_LETTER_NOON_GHUNNA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_ARABIC_PERCENT_SIGN) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_ARABIC_COMMA) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_ARABIC_INDIC_DIGIT_ZERO) \ EL(_ARABIC_INDIC_DIGIT_ONE) \ EL(_ARABIC_INDIC_DIGIT_TWO) \ EL(_ARABIC_INDIC_DIGIT_THREE) \ EL(_ARABIC_INDIC_DIGIT_FOUR) \ EL(_ARABIC_INDIC_DIGIT_FIVE) \ EL(_ARABIC_INDIC_DIGIT_SIX) \ EL(_ARABIC_INDIC_DIGIT_SEVEN) \ EL(_ARABIC_INDIC_DIGIT_EIGHT) \ EL(_ARABIC_INDIC_DIGIT_NINE) \ EL(_UNDEFINED_00BA) \ EL(_ARABIC_SEMICOLON) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_ARABIC_QUESTION_MARK) \ EL(_EIGHT_TEARDROP_SPOKED_PROPELLER_ASTERISK) \ EL(_ARABIC_LETTER_HAMZA) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF) \ EL(_ARABIC_LETTER_BEH) \ EL(_ARABIC_LETTER_TEH_MARBUTA) \ EL(_ARABIC_LETTER_TEH) \ EL(_ARABIC_LETTER_THEH) \ EL(_ARABIC_LETTER_JEEM) \ EL(_ARABIC_LETTER_HAH) \ EL(_ARABIC_LETTER_KHAH) \ EL(_ARABIC_LETTER_DAL) \ EL(_ARABIC_LETTER_THAL) \ EL(_ARABIC_LETTER_REH) \ EL(_ARABIC_LETTER_ZAIN) \ EL(_ARABIC_LETTER_SEEN) \ EL(_ARABIC_LETTER_SHEEN) \ EL(_ARABIC_LETTER_SAD) \ EL(_ARABIC_LETTER_DAD) \ EL(_ARABIC_LETTER_TAH) \ EL(_ARABIC_LETTER_ZAH) \ EL(_ARABIC_LETTER_AIN) \ EL(_ARABIC_LETTER_GHAIN) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_ARABIC_TATWEEL) \ EL(_ARABIC_LETTER_FEH) \ EL(_ARABIC_LETTER_QAF) \ EL(_ARABIC_LETTER_KAF) \ EL(_ARABIC_LETTER_LAM) \ EL(_ARABIC_LETTER_MEEM) \ EL(_ARABIC_LETTER_NOON) \ EL(_ARABIC_LETTER_HEH) \ EL(_ARABIC_LETTER_WAW) \ EL(_ARABIC_LETTER_ALEF_MAKSURA) \ EL(_ARABIC_LETTER_YEH) \ EL(_ARABIC_FATHATAN) \ EL(_ARABIC_DAMMATAN) \ EL(_ARABIC_KASRATAN) \ EL(_ARABIC_FATHA) \ EL(_ARABIC_DAMMA) \ EL(_ARABIC_KASRA) \ EL(_ARABIC_SHADDA) \ EL(_ARABIC_SUKUN) \ EL(_ARABIC_LETTER_PEH) \ EL(_ARABIC_LETTER_TTEH) \ EL(_ARABIC_LETTER_TCHEH) \ EL(_ARABIC_LETTER_AE) \ EL(_ARABIC_LETTER_VEH) \ EL(_ARABIC_LETTER_GAF) \ EL(_ARABIC_LETTER_DDAL) \ EL(_ARABIC_LETTER_RREH) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_ARABIC_LETTER_JEH) \ EL(_ARABIC_LETTER_YEH_BARREE) #endif /* TUTF_MAC_ARABIC_H */ �������������������������������������������������twin-0.9.0/include/Tutf/mac_celtic.h����������������������������������������������������������������0000664�0000000�0000000�00000145114�13775351206�0017321�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_CELTIC_H #define TUTF_MAC_CELTIC_H #define T_MAC_CELTIC_CTRL_NULL 0x0000 #define T_MAC_CELTIC_CTRL_START_OF_HEADING 0x0001 #define T_MAC_CELTIC_CTRL_START_OF_TEXT 0x0002 #define T_MAC_CELTIC_CTRL_END_OF_TEXT 0x0003 #define T_MAC_CELTIC_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_CELTIC_CTRL_ENQUIRY 0x0005 #define T_MAC_CELTIC_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_CELTIC_CTRL_BELL 0x0007 #define T_MAC_CELTIC_CTRL_BACKSPACE 0x0008 #define T_MAC_CELTIC_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_CELTIC_CTRL_LINE_FEED 0x000A #define T_MAC_CELTIC_CTRL_LINE_TABULATION 0x000B #define T_MAC_CELTIC_CTRL_FORM_FEED 0x000C #define T_MAC_CELTIC_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_CELTIC_CTRL_SHIFT_OUT 0x000E #define T_MAC_CELTIC_CTRL_SHIFT_IN 0x000F #define T_MAC_CELTIC_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_CELTIC_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_CELTIC_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_CELTIC_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_CELTIC_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_CELTIC_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_CELTIC_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_CELTIC_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_CELTIC_CTRL_CANCEL 0x0018 #define T_MAC_CELTIC_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_CELTIC_CTRL_SUBSTITUTE 0x001A #define T_MAC_CELTIC_CTRL_ESCAPE 0x001B #define T_MAC_CELTIC_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_CELTIC_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_CELTIC_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_CELTIC_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_CELTIC_SPACE 0x0020 #define T_MAC_CELTIC_EXCLAMATION_MARK 0x0021 #define T_MAC_CELTIC_QUOTATION_MARK 0x0022 #define T_MAC_CELTIC_NUMBER_SIGN 0x0023 #define T_MAC_CELTIC_DOLLAR_SIGN 0x0024 #define T_MAC_CELTIC_PERCENT_SIGN 0x0025 #define T_MAC_CELTIC_AMPERSAND 0x0026 #define T_MAC_CELTIC_APOSTROPHE 0x0027 #define T_MAC_CELTIC_LEFT_PARENTHESIS 0x0028 #define T_MAC_CELTIC_RIGHT_PARENTHESIS 0x0029 #define T_MAC_CELTIC_ASTERISK 0x002A #define T_MAC_CELTIC_PLUS_SIGN 0x002B #define T_MAC_CELTIC_COMMA 0x002C #define T_MAC_CELTIC_HYPHEN_MINUS 0x002D #define T_MAC_CELTIC_FULL_STOP 0x002E #define T_MAC_CELTIC_SOLIDUS 0x002F #define T_MAC_CELTIC_DIGIT_ZERO 0x0030 #define T_MAC_CELTIC_DIGIT_ONE 0x0031 #define T_MAC_CELTIC_DIGIT_TWO 0x0032 #define T_MAC_CELTIC_DIGIT_THREE 0x0033 #define T_MAC_CELTIC_DIGIT_FOUR 0x0034 #define T_MAC_CELTIC_DIGIT_FIVE 0x0035 #define T_MAC_CELTIC_DIGIT_SIX 0x0036 #define T_MAC_CELTIC_DIGIT_SEVEN 0x0037 #define T_MAC_CELTIC_DIGIT_EIGHT 0x0038 #define T_MAC_CELTIC_DIGIT_NINE 0x0039 #define T_MAC_CELTIC_COLON 0x003A #define T_MAC_CELTIC_SEMICOLON 0x003B #define T_MAC_CELTIC_LESS_THAN_SIGN 0x003C #define T_MAC_CELTIC_EQUALS_SIGN 0x003D #define T_MAC_CELTIC_GREATER_THAN_SIGN 0x003E #define T_MAC_CELTIC_QUESTION_MARK 0x003F #define T_MAC_CELTIC_COMMERCIAL_AT 0x0040 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_CELTIC_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_CELTIC_REVERSE_SOLIDUS 0x005C #define T_MAC_CELTIC_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_CELTIC_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_CELTIC_LOW_LINE 0x005F #define T_MAC_CELTIC_GRAVE_ACCENT 0x0060 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_CELTIC_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_CELTIC_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_CELTIC_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_CELTIC_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_CELTIC_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_CELTIC_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_CELTIC_LEFT_CURLY_BRACKET 0x007B #define T_MAC_CELTIC_VERTICAL_LINE 0x007C #define T_MAC_CELTIC_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_CELTIC_TILDE 0x007E #define T_MAC_CELTIC_CTRL_DELETE 0x007F #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0081 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_CELTIC_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MAC_CELTIC_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MAC_CELTIC_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_CELTIC_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_CELTIC_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_CELTIC_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_CELTIC_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MAC_CELTIC_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_CELTIC_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_CELTIC_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_CELTIC_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_CELTIC_DAGGER 0x00A0 #define T_MAC_CELTIC_DEGREE_SIGN 0x00A1 #define T_MAC_CELTIC_CENT_SIGN 0x00A2 #define T_MAC_CELTIC_POUND_SIGN 0x00A3 #define T_MAC_CELTIC_SECTION_SIGN 0x00A4 #define T_MAC_CELTIC_BULLET 0x00A5 #define T_MAC_CELTIC_PILCROW_SIGN 0x00A6 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MAC_CELTIC_REGISTERED_SIGN 0x00A8 #define T_MAC_CELTIC_COPYRIGHT_SIGN 0x00A9 #define T_MAC_CELTIC_TRADE_MARK_SIGN 0x00AA #define T_MAC_CELTIC_ACUTE_ACCENT 0x00AB #define T_MAC_CELTIC_DIAERESIS 0x00AC #define T_MAC_CELTIC_NOT_EQUAL_TO 0x00AD #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_AE 0x00AE #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00AF #define T_MAC_CELTIC_INFINITY 0x00B0 #define T_MAC_CELTIC_PLUS_MINUS_SIGN 0x00B1 #define T_MAC_CELTIC_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MAC_CELTIC_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_CELTIC_YEN_SIGN 0x00B4 #define T_MAC_CELTIC_MICRO_SIGN 0x00B5 #define T_MAC_CELTIC_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MAC_CELTIC_N_ARY_SUMMATION 0x00B7 #define T_MAC_CELTIC_N_ARY_PRODUCT 0x00B8 #define T_MAC_CELTIC_GREEK_SMALL_LETTER_PI 0x00B9 #define T_MAC_CELTIC_INTEGRAL 0x00BA #define T_MAC_CELTIC_FEMININE_ORDINAL_INDICATOR 0x00BB #define T_MAC_CELTIC_MASCULINE_ORDINAL_INDICATOR 0x00BC #define T_MAC_CELTIC_GREEK_CAPITAL_LETTER_OMEGA 0x00BD #define T_MAC_CELTIC_LATIN_SMALL_LETTER_AE 0x00BE #define T_MAC_CELTIC_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00BF #define T_MAC_CELTIC_INVERTED_QUESTION_MARK 0x00C0 #define T_MAC_CELTIC_INVERTED_EXCLAMATION_MARK 0x00C1 #define T_MAC_CELTIC_NOT_SIGN 0x00C2 #define T_MAC_CELTIC_SQUARE_ROOT 0x00C3 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MAC_CELTIC_ALMOST_EQUAL_TO 0x00C5 #define T_MAC_CELTIC_INCREMENT 0x00C6 #define T_MAC_CELTIC_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MAC_CELTIC_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MAC_CELTIC_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_CELTIC_NO_BREAK_SPACE 0x00CA #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00CB #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00CC #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MAC_CELTIC_LATIN_CAPITAL_LIGATURE_OE 0x00CE #define T_MAC_CELTIC_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MAC_CELTIC_EN_DASH 0x00D0 #define T_MAC_CELTIC_EM_DASH 0x00D1 #define T_MAC_CELTIC_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_CELTIC_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_CELTIC_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_CELTIC_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_CELTIC_DIVISION_SIGN 0x00D6 #define T_MAC_CELTIC_LOZENGE 0x00D7 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00D8 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00D9 #define T_MAC_CELTIC_FRACTION_SLASH 0x00DA #define T_MAC_CELTIC_EURO_SIGN 0x00DB #define T_MAC_CELTIC_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x00DC #define T_MAC_CELTIC_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x00DD #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX 0x00DE #define T_MAC_CELTIC_LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX 0x00DF #define T_MAC_CELTIC_DOUBLE_DAGGER 0x00E0 #define T_MAC_CELTIC_MIDDLE_DOT 0x00E1 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_Y_WITH_GRAVE 0x00E2 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_Y_WITH_GRAVE 0x00E3 #define T_MAC_CELTIC_PER_MILLE_SIGN 0x00E4 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00E5 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00E6 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00E8 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00E9 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00EB #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00EC #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00ED #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MAC_CELTIC_BLACK_CLUB_SUIT 0x00F0 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00F1 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00F3 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00F4 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_DOTLESS_I 0x00F5 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00F6 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00F7 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX 0x00F8 #define T_MAC_CELTIC_LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX 0x00F9 #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS 0x00FA #define T_MAC_CELTIC_LATIN_SMALL_LETTER_W_WITH_DIAERESIS 0x00FB #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_W_WITH_GRAVE 0x00FC #define T_MAC_CELTIC_LATIN_SMALL_LETTER_W_WITH_GRAVE 0x00FD #define T_MAC_CELTIC_LATIN_CAPITAL_LETTER_W_WITH_ACUTE 0x00FE #define T_MAC_CELTIC_LATIN_SMALL_LETTER_W_WITH_ACUTE 0x00FF /* list of all characters */ #define T_LIST_MAC_CELTIC(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_MICRO_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_EURO_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_GRAVE) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_BLACK_CLUB_SUIT) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_W_WITH_ACUTE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_CELTIC(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_EURO_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_GRAVE) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_BLACK_CLUB_SUIT) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_W_WITH_ACUTE) #endif /* TUTF_MAC_CELTIC_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_centraleurope.h���������������������������������������������������������0000664�0000000�0000000�00000151663�13775351206�0020734�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_CENTRALEUROPE_H #define TUTF_MAC_CENTRALEUROPE_H #define T_MAC_CENTRALEUROPE_CTRL_NULL 0x0000 #define T_MAC_CENTRALEUROPE_CTRL_START_OF_HEADING 0x0001 #define T_MAC_CENTRALEUROPE_CTRL_START_OF_TEXT 0x0002 #define T_MAC_CENTRALEUROPE_CTRL_END_OF_TEXT 0x0003 #define T_MAC_CENTRALEUROPE_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_CENTRALEUROPE_CTRL_ENQUIRY 0x0005 #define T_MAC_CENTRALEUROPE_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_CENTRALEUROPE_CTRL_BELL 0x0007 #define T_MAC_CENTRALEUROPE_CTRL_BACKSPACE 0x0008 #define T_MAC_CENTRALEUROPE_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_CENTRALEUROPE_CTRL_LINE_FEED 0x000A #define T_MAC_CENTRALEUROPE_CTRL_LINE_TABULATION 0x000B #define T_MAC_CENTRALEUROPE_CTRL_FORM_FEED 0x000C #define T_MAC_CENTRALEUROPE_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_CENTRALEUROPE_CTRL_SHIFT_OUT 0x000E #define T_MAC_CENTRALEUROPE_CTRL_SHIFT_IN 0x000F #define T_MAC_CENTRALEUROPE_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_CENTRALEUROPE_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_CENTRALEUROPE_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_CENTRALEUROPE_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_CENTRALEUROPE_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_CENTRALEUROPE_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_CENTRALEUROPE_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_CENTRALEUROPE_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_CENTRALEUROPE_CTRL_CANCEL 0x0018 #define T_MAC_CENTRALEUROPE_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_CENTRALEUROPE_CTRL_SUBSTITUTE 0x001A #define T_MAC_CENTRALEUROPE_CTRL_ESCAPE 0x001B #define T_MAC_CENTRALEUROPE_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_CENTRALEUROPE_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_CENTRALEUROPE_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_CENTRALEUROPE_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_CENTRALEUROPE_SPACE 0x0020 #define T_MAC_CENTRALEUROPE_EXCLAMATION_MARK 0x0021 #define T_MAC_CENTRALEUROPE_QUOTATION_MARK 0x0022 #define T_MAC_CENTRALEUROPE_NUMBER_SIGN 0x0023 #define T_MAC_CENTRALEUROPE_DOLLAR_SIGN 0x0024 #define T_MAC_CENTRALEUROPE_PERCENT_SIGN 0x0025 #define T_MAC_CENTRALEUROPE_AMPERSAND 0x0026 #define T_MAC_CENTRALEUROPE_APOSTROPHE 0x0027 #define T_MAC_CENTRALEUROPE_LEFT_PARENTHESIS 0x0028 #define T_MAC_CENTRALEUROPE_RIGHT_PARENTHESIS 0x0029 #define T_MAC_CENTRALEUROPE_ASTERISK 0x002A #define T_MAC_CENTRALEUROPE_PLUS_SIGN 0x002B #define T_MAC_CENTRALEUROPE_COMMA 0x002C #define T_MAC_CENTRALEUROPE_HYPHEN_MINUS 0x002D #define T_MAC_CENTRALEUROPE_FULL_STOP 0x002E #define T_MAC_CENTRALEUROPE_SOLIDUS 0x002F #define T_MAC_CENTRALEUROPE_DIGIT_ZERO 0x0030 #define T_MAC_CENTRALEUROPE_DIGIT_ONE 0x0031 #define T_MAC_CENTRALEUROPE_DIGIT_TWO 0x0032 #define T_MAC_CENTRALEUROPE_DIGIT_THREE 0x0033 #define T_MAC_CENTRALEUROPE_DIGIT_FOUR 0x0034 #define T_MAC_CENTRALEUROPE_DIGIT_FIVE 0x0035 #define T_MAC_CENTRALEUROPE_DIGIT_SIX 0x0036 #define T_MAC_CENTRALEUROPE_DIGIT_SEVEN 0x0037 #define T_MAC_CENTRALEUROPE_DIGIT_EIGHT 0x0038 #define T_MAC_CENTRALEUROPE_DIGIT_NINE 0x0039 #define T_MAC_CENTRALEUROPE_COLON 0x003A #define T_MAC_CENTRALEUROPE_SEMICOLON 0x003B #define T_MAC_CENTRALEUROPE_LESS_THAN_SIGN 0x003C #define T_MAC_CENTRALEUROPE_EQUALS_SIGN 0x003D #define T_MAC_CENTRALEUROPE_GREATER_THAN_SIGN 0x003E #define T_MAC_CENTRALEUROPE_QUESTION_MARK 0x003F #define T_MAC_CENTRALEUROPE_COMMERCIAL_AT 0x0040 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_CENTRALEUROPE_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_CENTRALEUROPE_REVERSE_SOLIDUS 0x005C #define T_MAC_CENTRALEUROPE_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_CENTRALEUROPE_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_CENTRALEUROPE_LOW_LINE 0x005F #define T_MAC_CENTRALEUROPE_GRAVE_ACCENT 0x0060 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_CENTRALEUROPE_LEFT_CURLY_BRACKET 0x007B #define T_MAC_CENTRALEUROPE_VERTICAL_LINE 0x007C #define T_MAC_CENTRALEUROPE_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_CENTRALEUROPE_TILDE 0x007E #define T_MAC_CENTRALEUROPE_CTRL_DELETE 0x007F #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_A_WITH_MACRON 0x0081 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_A_WITH_MACRON 0x0082 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x0084 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x0088 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x0089 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_C_WITH_CARON 0x008B #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x008C #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x008D #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x008F #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x0090 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_D_WITH_CARON 0x0091 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_D_WITH_CARON 0x0093 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_E_WITH_MACRON 0x0094 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_E_WITH_MACRON 0x0095 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0x0096 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0x0098 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_E_WITH_CARON 0x009D #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_E_WITH_CARON 0x009E #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_CENTRALEUROPE_DAGGER 0x00A0 #define T_MAC_CENTRALEUROPE_DEGREE_SIGN 0x00A1 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00A2 #define T_MAC_CENTRALEUROPE_POUND_SIGN 0x00A3 #define T_MAC_CENTRALEUROPE_SECTION_SIGN 0x00A4 #define T_MAC_CENTRALEUROPE_BULLET 0x00A5 #define T_MAC_CENTRALEUROPE_PILCROW_SIGN 0x00A6 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MAC_CENTRALEUROPE_REGISTERED_SIGN 0x00A8 #define T_MAC_CENTRALEUROPE_COPYRIGHT_SIGN 0x00A9 #define T_MAC_CENTRALEUROPE_TRADE_MARK_SIGN 0x00AA #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00AB #define T_MAC_CENTRALEUROPE_DIAERESIS 0x00AC #define T_MAC_CENTRALEUROPE_NOT_EQUAL_TO 0x00AD #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x00AE #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0x00AF #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_I_WITH_OGONEK 0x00B0 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_I_WITH_MACRON 0x00B1 #define T_MAC_CENTRALEUROPE_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MAC_CENTRALEUROPE_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_I_WITH_MACRON 0x00B4 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0x00B5 #define T_MAC_CENTRALEUROPE_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MAC_CENTRALEUROPE_N_ARY_SUMMATION 0x00B7 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_L_WITH_STROKE 0x00B8 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0x00B9 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_L_WITH_CEDILLA 0x00BA #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_L_WITH_CARON 0x00BB #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_L_WITH_CARON 0x00BC #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_L_WITH_ACUTE 0x00BD #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_L_WITH_ACUTE 0x00BE #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0x00BF #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_N_WITH_CEDILLA 0x00C0 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x00C1 #define T_MAC_CENTRALEUROPE_NOT_SIGN 0x00C2 #define T_MAC_CENTRALEUROPE_SQUARE_ROOT 0x00C3 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_N_WITH_ACUTE 0x00C4 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_N_WITH_CARON 0x00C5 #define T_MAC_CENTRALEUROPE_INCREMENT 0x00C6 #define T_MAC_CENTRALEUROPE_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MAC_CENTRALEUROPE_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MAC_CENTRALEUROPE_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_CENTRALEUROPE_NO_BREAK_SPACE 0x00CA #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_N_WITH_CARON 0x00CB #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE 0x00CC #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE 0x00CE #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_O_WITH_MACRON 0x00CF #define T_MAC_CENTRALEUROPE_EN_DASH 0x00D0 #define T_MAC_CENTRALEUROPE_EM_DASH 0x00D1 #define T_MAC_CENTRALEUROPE_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_CENTRALEUROPE_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_CENTRALEUROPE_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_CENTRALEUROPE_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_CENTRALEUROPE_DIVISION_SIGN 0x00D6 #define T_MAC_CENTRALEUROPE_LOZENGE 0x00D7 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_O_WITH_MACRON 0x00D8 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_R_WITH_ACUTE 0x00D9 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_R_WITH_ACUTE 0x00DA #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_R_WITH_CARON 0x00DB #define T_MAC_CENTRALEUROPE_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x00DC #define T_MAC_CENTRALEUROPE_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x00DD #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_R_WITH_CARON 0x00DE #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA 0x00DF #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_R_WITH_CEDILLA 0x00E0 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00E1 #define T_MAC_CENTRALEUROPE_SINGLE_LOW_9_QUOTATION_MARK 0x00E2 #define T_MAC_CENTRALEUROPE_DOUBLE_LOW_9_QUOTATION_MARK 0x00E3 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_S_WITH_CARON 0x00E4 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x00E5 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x00E6 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_T_WITH_CARON 0x00E8 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_T_WITH_CARON 0x00E9 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00EB #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00EC #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_U_WITH_MACRON 0x00ED #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_U_WITH_MACRON 0x00F0 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE 0x00F1 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE 0x00F3 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0x00F4 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0x00F5 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0x00F6 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_U_WITH_OGONEK 0x00F7 #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00F8 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00F9 #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_K_WITH_CEDILLA 0x00FA #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x00FB #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x00FC #define T_MAC_CENTRALEUROPE_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x00FD #define T_MAC_CENTRALEUROPE_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x00FE #define T_MAC_CENTRALEUROPE_CARON 0x00FF /* list of all characters */ #define T_LIST_MAC_CENTRALEUROPE(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_L_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CARON) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CARON) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_R_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_T_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_CARON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_CENTRALEUROPE(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_L_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CARON) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CARON) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_R_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_T_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_CARON) #endif /* TUTF_MAC_CENTRALEUROPE_H */ �����������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_croatian.h��������������������������������������������������������������0000664�0000000�0000000�00000146011�13775351206�0017653�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_CROATIAN_H #define TUTF_MAC_CROATIAN_H #define T_MAC_CROATIAN_CTRL_NULL 0x0000 #define T_MAC_CROATIAN_CTRL_START_OF_HEADING 0x0001 #define T_MAC_CROATIAN_CTRL_START_OF_TEXT 0x0002 #define T_MAC_CROATIAN_CTRL_END_OF_TEXT 0x0003 #define T_MAC_CROATIAN_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_CROATIAN_CTRL_ENQUIRY 0x0005 #define T_MAC_CROATIAN_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_CROATIAN_CTRL_BELL 0x0007 #define T_MAC_CROATIAN_CTRL_BACKSPACE 0x0008 #define T_MAC_CROATIAN_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_CROATIAN_CTRL_LINE_FEED 0x000A #define T_MAC_CROATIAN_CTRL_LINE_TABULATION 0x000B #define T_MAC_CROATIAN_CTRL_FORM_FEED 0x000C #define T_MAC_CROATIAN_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_CROATIAN_CTRL_SHIFT_OUT 0x000E #define T_MAC_CROATIAN_CTRL_SHIFT_IN 0x000F #define T_MAC_CROATIAN_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_CROATIAN_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_CROATIAN_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_CROATIAN_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_CROATIAN_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_CROATIAN_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_CROATIAN_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_CROATIAN_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_CROATIAN_CTRL_CANCEL 0x0018 #define T_MAC_CROATIAN_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_CROATIAN_CTRL_SUBSTITUTE 0x001A #define T_MAC_CROATIAN_CTRL_ESCAPE 0x001B #define T_MAC_CROATIAN_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_CROATIAN_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_CROATIAN_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_CROATIAN_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_CROATIAN_SPACE 0x0020 #define T_MAC_CROATIAN_EXCLAMATION_MARK 0x0021 #define T_MAC_CROATIAN_QUOTATION_MARK 0x0022 #define T_MAC_CROATIAN_NUMBER_SIGN 0x0023 #define T_MAC_CROATIAN_DOLLAR_SIGN 0x0024 #define T_MAC_CROATIAN_PERCENT_SIGN 0x0025 #define T_MAC_CROATIAN_AMPERSAND 0x0026 #define T_MAC_CROATIAN_APOSTROPHE 0x0027 #define T_MAC_CROATIAN_LEFT_PARENTHESIS 0x0028 #define T_MAC_CROATIAN_RIGHT_PARENTHESIS 0x0029 #define T_MAC_CROATIAN_ASTERISK 0x002A #define T_MAC_CROATIAN_PLUS_SIGN 0x002B #define T_MAC_CROATIAN_COMMA 0x002C #define T_MAC_CROATIAN_HYPHEN_MINUS 0x002D #define T_MAC_CROATIAN_FULL_STOP 0x002E #define T_MAC_CROATIAN_SOLIDUS 0x002F #define T_MAC_CROATIAN_DIGIT_ZERO 0x0030 #define T_MAC_CROATIAN_DIGIT_ONE 0x0031 #define T_MAC_CROATIAN_DIGIT_TWO 0x0032 #define T_MAC_CROATIAN_DIGIT_THREE 0x0033 #define T_MAC_CROATIAN_DIGIT_FOUR 0x0034 #define T_MAC_CROATIAN_DIGIT_FIVE 0x0035 #define T_MAC_CROATIAN_DIGIT_SIX 0x0036 #define T_MAC_CROATIAN_DIGIT_SEVEN 0x0037 #define T_MAC_CROATIAN_DIGIT_EIGHT 0x0038 #define T_MAC_CROATIAN_DIGIT_NINE 0x0039 #define T_MAC_CROATIAN_COLON 0x003A #define T_MAC_CROATIAN_SEMICOLON 0x003B #define T_MAC_CROATIAN_LESS_THAN_SIGN 0x003C #define T_MAC_CROATIAN_EQUALS_SIGN 0x003D #define T_MAC_CROATIAN_GREATER_THAN_SIGN 0x003E #define T_MAC_CROATIAN_QUESTION_MARK 0x003F #define T_MAC_CROATIAN_COMMERCIAL_AT 0x0040 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_CROATIAN_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_CROATIAN_REVERSE_SOLIDUS 0x005C #define T_MAC_CROATIAN_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_CROATIAN_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_CROATIAN_LOW_LINE 0x005F #define T_MAC_CROATIAN_GRAVE_ACCENT 0x0060 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_CROATIAN_LEFT_CURLY_BRACKET 0x007B #define T_MAC_CROATIAN_VERTICAL_LINE 0x007C #define T_MAC_CROATIAN_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_CROATIAN_TILDE 0x007E #define T_MAC_CROATIAN_CTRL_DELETE 0x007F #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0081 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_CROATIAN_DAGGER 0x00A0 #define T_MAC_CROATIAN_DEGREE_SIGN 0x00A1 #define T_MAC_CROATIAN_CENT_SIGN 0x00A2 #define T_MAC_CROATIAN_POUND_SIGN 0x00A3 #define T_MAC_CROATIAN_SECTION_SIGN 0x00A4 #define T_MAC_CROATIAN_BULLET 0x00A5 #define T_MAC_CROATIAN_PILCROW_SIGN 0x00A6 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MAC_CROATIAN_REGISTERED_SIGN 0x00A8 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00A9 #define T_MAC_CROATIAN_TRADE_MARK_SIGN 0x00AA #define T_MAC_CROATIAN_ACUTE_ACCENT 0x00AB #define T_MAC_CROATIAN_DIAERESIS 0x00AC #define T_MAC_CROATIAN_NOT_EQUAL_TO 0x00AD #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00AE #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00AF #define T_MAC_CROATIAN_INFINITY 0x00B0 #define T_MAC_CROATIAN_PLUS_MINUS_SIGN 0x00B1 #define T_MAC_CROATIAN_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MAC_CROATIAN_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_CROATIAN_INCREMENT 0x00B4 #define T_MAC_CROATIAN_MICRO_SIGN 0x00B5 #define T_MAC_CROATIAN_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MAC_CROATIAN_N_ARY_SUMMATION 0x00B7 #define T_MAC_CROATIAN_N_ARY_PRODUCT 0x00B8 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_S_WITH_CARON 0x00B9 #define T_MAC_CROATIAN_INTEGRAL 0x00BA #define T_MAC_CROATIAN_FEMININE_ORDINAL_INDICATOR 0x00BB #define T_MAC_CROATIAN_MASCULINE_ORDINAL_INDICATOR 0x00BC #define T_MAC_CROATIAN_GREEK_CAPITAL_LETTER_OMEGA 0x00BD #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00BE #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00BF #define T_MAC_CROATIAN_INVERTED_QUESTION_MARK 0x00C0 #define T_MAC_CROATIAN_INVERTED_EXCLAMATION_MARK 0x00C1 #define T_MAC_CROATIAN_NOT_SIGN 0x00C2 #define T_MAC_CROATIAN_SQUARE_ROOT 0x00C3 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MAC_CROATIAN_ALMOST_EQUAL_TO 0x00C5 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x00C6 #define T_MAC_CROATIAN_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x00C8 #define T_MAC_CROATIAN_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_CROATIAN_NO_BREAK_SPACE 0x00CA #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00CB #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00CC #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MAC_CROATIAN_LATIN_CAPITAL_LIGATURE_OE 0x00CE #define T_MAC_CROATIAN_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x00D0 #define T_MAC_CROATIAN_EM_DASH 0x00D1 #define T_MAC_CROATIAN_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_CROATIAN_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_CROATIAN_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_CROATIAN_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_CROATIAN_DIVISION_SIGN 0x00D6 #define T_MAC_CROATIAN_LOZENGE 0x00D7 #define T_MAC_CROATIAN_UNDEFINED_00D8 0x00D8 #define T_MAC_CROATIAN_COPYRIGHT_SIGN 0x00D9 #define T_MAC_CROATIAN_FRACTION_SLASH 0x00DA #define T_MAC_CROATIAN_EURO_SIGN 0x00DB #define T_MAC_CROATIAN_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x00DC #define T_MAC_CROATIAN_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x00DD #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_AE 0x00DE #define T_MAC_CROATIAN_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00DF #define T_MAC_CROATIAN_EN_DASH 0x00E0 #define T_MAC_CROATIAN_MIDDLE_DOT 0x00E1 #define T_MAC_CROATIAN_SINGLE_LOW_9_QUOTATION_MARK 0x00E2 #define T_MAC_CROATIAN_DOUBLE_LOW_9_QUOTATION_MARK 0x00E3 #define T_MAC_CROATIAN_PER_MILLE_SIGN 0x00E4 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00E5 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x00E6 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_C_WITH_CARON 0x00E8 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00E9 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00EB #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00EC #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00ED #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_D_WITH_STROKE 0x00F0 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00F1 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00F3 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00F4 #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_DOTLESS_I 0x00F5 #define T_MAC_CROATIAN_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x00F6 #define T_MAC_CROATIAN_SMALL_TILDE 0x00F7 #define T_MAC_CROATIAN_MACRON 0x00F8 #define T_MAC_CROATIAN_GREEK_SMALL_LETTER_PI 0x00F9 #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00FA #define T_MAC_CROATIAN_RING_ABOVE 0x00FB #define T_MAC_CROATIAN_CEDILLA 0x00FC #define T_MAC_CROATIAN_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00FD #define T_MAC_CROATIAN_LATIN_SMALL_LETTER_AE 0x00FE #define T_MAC_CROATIAN_CARON 0x00FF /* list of all characters */ #define T_LIST_MAC_CROATIAN(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_INCREMENT) \ EL(_MICRO_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_UNDEFINED_00D8) \ EL(_COPYRIGHT_SIGN) \ EL(_FRACTION_SLASH) \ EL(_EURO_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_EN_DASH) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_CARON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_CROATIAN(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_INCREMENT) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_STROKE) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_UNDEFINED_00D8) \ EL(_COPYRIGHT_SIGN) \ EL(_FRACTION_SLASH) \ EL(_EURO_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_EN_DASH) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_D_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_CARON) #endif /* TUTF_MAC_CROATIAN_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_cyrillic.h��������������������������������������������������������������0000664�0000000�0000000�00000145532�13775351206�0017674�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_CYRILLIC_H #define TUTF_MAC_CYRILLIC_H #define T_MAC_CYRILLIC_CTRL_NULL 0x0000 #define T_MAC_CYRILLIC_CTRL_START_OF_HEADING 0x0001 #define T_MAC_CYRILLIC_CTRL_START_OF_TEXT 0x0002 #define T_MAC_CYRILLIC_CTRL_END_OF_TEXT 0x0003 #define T_MAC_CYRILLIC_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_CYRILLIC_CTRL_ENQUIRY 0x0005 #define T_MAC_CYRILLIC_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_CYRILLIC_CTRL_BELL 0x0007 #define T_MAC_CYRILLIC_CTRL_BACKSPACE 0x0008 #define T_MAC_CYRILLIC_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_CYRILLIC_CTRL_LINE_FEED 0x000A #define T_MAC_CYRILLIC_CTRL_LINE_TABULATION 0x000B #define T_MAC_CYRILLIC_CTRL_FORM_FEED 0x000C #define T_MAC_CYRILLIC_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_CYRILLIC_CTRL_SHIFT_OUT 0x000E #define T_MAC_CYRILLIC_CTRL_SHIFT_IN 0x000F #define T_MAC_CYRILLIC_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_CYRILLIC_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_CYRILLIC_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_CYRILLIC_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_CYRILLIC_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_CYRILLIC_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_CYRILLIC_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_CYRILLIC_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_CYRILLIC_CTRL_CANCEL 0x0018 #define T_MAC_CYRILLIC_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_CYRILLIC_CTRL_SUBSTITUTE 0x001A #define T_MAC_CYRILLIC_CTRL_ESCAPE 0x001B #define T_MAC_CYRILLIC_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_CYRILLIC_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_CYRILLIC_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_CYRILLIC_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_CYRILLIC_SPACE 0x0020 #define T_MAC_CYRILLIC_EXCLAMATION_MARK 0x0021 #define T_MAC_CYRILLIC_QUOTATION_MARK 0x0022 #define T_MAC_CYRILLIC_NUMBER_SIGN 0x0023 #define T_MAC_CYRILLIC_DOLLAR_SIGN 0x0024 #define T_MAC_CYRILLIC_PERCENT_SIGN 0x0025 #define T_MAC_CYRILLIC_AMPERSAND 0x0026 #define T_MAC_CYRILLIC_APOSTROPHE 0x0027 #define T_MAC_CYRILLIC_LEFT_PARENTHESIS 0x0028 #define T_MAC_CYRILLIC_RIGHT_PARENTHESIS 0x0029 #define T_MAC_CYRILLIC_ASTERISK 0x002A #define T_MAC_CYRILLIC_PLUS_SIGN 0x002B #define T_MAC_CYRILLIC_COMMA 0x002C #define T_MAC_CYRILLIC_HYPHEN_MINUS 0x002D #define T_MAC_CYRILLIC_FULL_STOP 0x002E #define T_MAC_CYRILLIC_SOLIDUS 0x002F #define T_MAC_CYRILLIC_DIGIT_ZERO 0x0030 #define T_MAC_CYRILLIC_DIGIT_ONE 0x0031 #define T_MAC_CYRILLIC_DIGIT_TWO 0x0032 #define T_MAC_CYRILLIC_DIGIT_THREE 0x0033 #define T_MAC_CYRILLIC_DIGIT_FOUR 0x0034 #define T_MAC_CYRILLIC_DIGIT_FIVE 0x0035 #define T_MAC_CYRILLIC_DIGIT_SIX 0x0036 #define T_MAC_CYRILLIC_DIGIT_SEVEN 0x0037 #define T_MAC_CYRILLIC_DIGIT_EIGHT 0x0038 #define T_MAC_CYRILLIC_DIGIT_NINE 0x0039 #define T_MAC_CYRILLIC_COLON 0x003A #define T_MAC_CYRILLIC_SEMICOLON 0x003B #define T_MAC_CYRILLIC_LESS_THAN_SIGN 0x003C #define T_MAC_CYRILLIC_EQUALS_SIGN 0x003D #define T_MAC_CYRILLIC_GREATER_THAN_SIGN 0x003E #define T_MAC_CYRILLIC_QUESTION_MARK 0x003F #define T_MAC_CYRILLIC_COMMERCIAL_AT 0x0040 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_CYRILLIC_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_CYRILLIC_REVERSE_SOLIDUS 0x005C #define T_MAC_CYRILLIC_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_CYRILLIC_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_CYRILLIC_LOW_LINE 0x005F #define T_MAC_CYRILLIC_GRAVE_ACCENT 0x0060 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_CYRILLIC_LEFT_CURLY_BRACKET 0x007B #define T_MAC_CYRILLIC_VERTICAL_LINE 0x007C #define T_MAC_CYRILLIC_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_CYRILLIC_TILDE 0x007E #define T_MAC_CYRILLIC_CTRL_DELETE 0x007F #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_A 0x0080 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_BE 0x0081 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_VE 0x0082 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_GHE 0x0083 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_DE 0x0084 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_IE 0x0085 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_ZHE 0x0086 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_ZE 0x0087 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_I 0x0088 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x0089 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_KA 0x008A #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_EL 0x008B #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_EM 0x008C #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_EN 0x008D #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_O 0x008E #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_PE 0x008F #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_ER 0x0090 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_ES 0x0091 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_TE 0x0092 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_U 0x0093 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_EF 0x0094 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_HA 0x0095 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_TSE 0x0096 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_CHE 0x0097 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_SHA 0x0098 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_SHCHA 0x0099 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x009A #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_YERU 0x009B #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x009C #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_E 0x009D #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_YU 0x009E #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_YA 0x009F #define T_MAC_CYRILLIC_DAGGER 0x00A0 #define T_MAC_CYRILLIC_DEGREE_SIGN 0x00A1 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN 0x00A2 #define T_MAC_CYRILLIC_POUND_SIGN 0x00A3 #define T_MAC_CYRILLIC_SECTION_SIGN 0x00A4 #define T_MAC_CYRILLIC_BULLET 0x00A5 #define T_MAC_CYRILLIC_PILCROW_SIGN 0x00A6 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00A7 #define T_MAC_CYRILLIC_REGISTERED_SIGN 0x00A8 #define T_MAC_CYRILLIC_COPYRIGHT_SIGN 0x00A9 #define T_MAC_CYRILLIC_TRADE_MARK_SIGN 0x00AA #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_DJE 0x00AB #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_DJE 0x00AC #define T_MAC_CYRILLIC_NOT_EQUAL_TO 0x00AD #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_GJE 0x00AE #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_GJE 0x00AF #define T_MAC_CYRILLIC_INFINITY 0x00B0 #define T_MAC_CYRILLIC_PLUS_MINUS_SIGN 0x00B1 #define T_MAC_CYRILLIC_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MAC_CYRILLIC_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00B4 #define T_MAC_CYRILLIC_MICRO_SIGN 0x00B5 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN 0x00B6 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_JE 0x00B7 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0x00B8 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0x00B9 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_YI 0x00BA #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_YI 0x00BB #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_LJE 0x00BC #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_LJE 0x00BD #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_NJE 0x00BE #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_NJE 0x00BF #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_JE 0x00C0 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_DZE 0x00C1 #define T_MAC_CYRILLIC_NOT_SIGN 0x00C2 #define T_MAC_CYRILLIC_SQUARE_ROOT 0x00C3 #define T_MAC_CYRILLIC_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MAC_CYRILLIC_ALMOST_EQUAL_TO 0x00C5 #define T_MAC_CYRILLIC_INCREMENT 0x00C6 #define T_MAC_CYRILLIC_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MAC_CYRILLIC_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MAC_CYRILLIC_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_CYRILLIC_NO_BREAK_SPACE 0x00CA #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_TSHE 0x00CB #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_TSHE 0x00CC #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_KJE 0x00CD #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_KJE 0x00CE #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_DZE 0x00CF #define T_MAC_CYRILLIC_EN_DASH 0x00D0 #define T_MAC_CYRILLIC_EM_DASH 0x00D1 #define T_MAC_CYRILLIC_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_CYRILLIC_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_CYRILLIC_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_CYRILLIC_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_CYRILLIC_DIVISION_SIGN 0x00D6 #define T_MAC_CYRILLIC_DOUBLE_LOW_9_QUOTATION_MARK 0x00D7 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_SHORT_U 0x00D8 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_SHORT_U 0x00D9 #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_DZHE 0x00DA #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_DZHE 0x00DB #define T_MAC_CYRILLIC_NUMERO_SIGN 0x00DC #define T_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_IO 0x00DD #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_IO 0x00DE #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_YA 0x00DF #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_A 0x00E0 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_BE 0x00E1 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_VE 0x00E2 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_GHE 0x00E3 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_DE 0x00E4 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_IE 0x00E5 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_ZHE 0x00E6 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_ZE 0x00E7 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_I 0x00E8 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_SHORT_I 0x00E9 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_KA 0x00EA #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_EL 0x00EB #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_EM 0x00EC #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_EN 0x00ED #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_O 0x00EE #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_PE 0x00EF #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_ER 0x00F0 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_ES 0x00F1 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_TE 0x00F2 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_U 0x00F3 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_EF 0x00F4 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_HA 0x00F5 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_TSE 0x00F6 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_CHE 0x00F7 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_SHA 0x00F8 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_SHCHA 0x00F9 #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x00FA #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_YERU 0x00FB #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0x00FC #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_E 0x00FD #define T_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_YU 0x00FE #define T_MAC_CYRILLIC_EURO_SIGN 0x00FF /* list of all characters */ #define T_LIST_MAC_CYRILLIC(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_NOT_EQUAL_TO) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_MICRO_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN) \ EL(_CYRILLIC_CAPITAL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZE) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSHE) \ EL(_CYRILLIC_SMALL_LETTER_TSHE) \ EL(_CYRILLIC_CAPITAL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_DZE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) \ EL(_NUMERO_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_EURO_SIGN) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_CYRILLIC(EL) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_NOT_EQUAL_TO) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN) \ EL(_CYRILLIC_CAPITAL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZE) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSHE) \ EL(_CYRILLIC_SMALL_LETTER_TSHE) \ EL(_CYRILLIC_CAPITAL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_DZE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) \ EL(_NUMERO_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_EURO_SIGN) #endif /* TUTF_MAC_CYRILLIC_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_devanagari.h������������������������������������������������������������0000664�0000000�0000000�00000132102�13775351206�0020150�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_DEVANAGARI_H #define TUTF_MAC_DEVANAGARI_H #define T_MAC_DEVANAGARI_CTRL_NULL 0x0000 #define T_MAC_DEVANAGARI_CTRL_START_OF_HEADING 0x0001 #define T_MAC_DEVANAGARI_CTRL_START_OF_TEXT 0x0002 #define T_MAC_DEVANAGARI_CTRL_END_OF_TEXT 0x0003 #define T_MAC_DEVANAGARI_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_DEVANAGARI_CTRL_ENQUIRY 0x0005 #define T_MAC_DEVANAGARI_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_DEVANAGARI_CTRL_BELL 0x0007 #define T_MAC_DEVANAGARI_CTRL_BACKSPACE 0x0008 #define T_MAC_DEVANAGARI_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_DEVANAGARI_CTRL_LINE_FEED 0x000A #define T_MAC_DEVANAGARI_CTRL_LINE_TABULATION 0x000B #define T_MAC_DEVANAGARI_CTRL_FORM_FEED 0x000C #define T_MAC_DEVANAGARI_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_DEVANAGARI_CTRL_SHIFT_OUT 0x000E #define T_MAC_DEVANAGARI_CTRL_SHIFT_IN 0x000F #define T_MAC_DEVANAGARI_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_DEVANAGARI_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_DEVANAGARI_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_DEVANAGARI_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_DEVANAGARI_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_DEVANAGARI_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_DEVANAGARI_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_DEVANAGARI_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_DEVANAGARI_CTRL_CANCEL 0x0018 #define T_MAC_DEVANAGARI_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_DEVANAGARI_CTRL_SUBSTITUTE 0x001A #define T_MAC_DEVANAGARI_CTRL_ESCAPE 0x001B #define T_MAC_DEVANAGARI_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_DEVANAGARI_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_DEVANAGARI_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_DEVANAGARI_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_DEVANAGARI_SPACE 0x0020 #define T_MAC_DEVANAGARI_EXCLAMATION_MARK 0x0021 #define T_MAC_DEVANAGARI_QUOTATION_MARK 0x0022 #define T_MAC_DEVANAGARI_NUMBER_SIGN 0x0023 #define T_MAC_DEVANAGARI_DOLLAR_SIGN 0x0024 #define T_MAC_DEVANAGARI_PERCENT_SIGN 0x0025 #define T_MAC_DEVANAGARI_AMPERSAND 0x0026 #define T_MAC_DEVANAGARI_APOSTROPHE 0x0027 #define T_MAC_DEVANAGARI_LEFT_PARENTHESIS 0x0028 #define T_MAC_DEVANAGARI_RIGHT_PARENTHESIS 0x0029 #define T_MAC_DEVANAGARI_ASTERISK 0x002A #define T_MAC_DEVANAGARI_PLUS_SIGN 0x002B #define T_MAC_DEVANAGARI_COMMA 0x002C #define T_MAC_DEVANAGARI_HYPHEN_MINUS 0x002D #define T_MAC_DEVANAGARI_FULL_STOP 0x002E #define T_MAC_DEVANAGARI_SOLIDUS 0x002F #define T_MAC_DEVANAGARI_DIGIT_ZERO 0x0030 #define T_MAC_DEVANAGARI_DIGIT_ONE 0x0031 #define T_MAC_DEVANAGARI_DIGIT_TWO 0x0032 #define T_MAC_DEVANAGARI_DIGIT_THREE 0x0033 #define T_MAC_DEVANAGARI_DIGIT_FOUR 0x0034 #define T_MAC_DEVANAGARI_DIGIT_FIVE 0x0035 #define T_MAC_DEVANAGARI_DIGIT_SIX 0x0036 #define T_MAC_DEVANAGARI_DIGIT_SEVEN 0x0037 #define T_MAC_DEVANAGARI_DIGIT_EIGHT 0x0038 #define T_MAC_DEVANAGARI_DIGIT_NINE 0x0039 #define T_MAC_DEVANAGARI_COLON 0x003A #define T_MAC_DEVANAGARI_SEMICOLON 0x003B #define T_MAC_DEVANAGARI_LESS_THAN_SIGN 0x003C #define T_MAC_DEVANAGARI_EQUALS_SIGN 0x003D #define T_MAC_DEVANAGARI_GREATER_THAN_SIGN 0x003E #define T_MAC_DEVANAGARI_QUESTION_MARK 0x003F #define T_MAC_DEVANAGARI_COMMERCIAL_AT 0x0040 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_DEVANAGARI_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_DEVANAGARI_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_DEVANAGARI_REVERSE_SOLIDUS 0x005C #define T_MAC_DEVANAGARI_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_DEVANAGARI_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_DEVANAGARI_LOW_LINE 0x005F #define T_MAC_DEVANAGARI_GRAVE_ACCENT 0x0060 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_DEVANAGARI_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_DEVANAGARI_LEFT_CURLY_BRACKET 0x007B #define T_MAC_DEVANAGARI_VERTICAL_LINE 0x007C #define T_MAC_DEVANAGARI_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_DEVANAGARI_TILDE 0x007E #define T_MAC_DEVANAGARI_CTRL_DELETE 0x007F #define T_MAC_DEVANAGARI_MULTIPLICATION_SIGN 0x0080 #define T_MAC_DEVANAGARI_MINUS_SIGN 0x0081 #define T_MAC_DEVANAGARI_EN_DASH 0x0082 #define T_MAC_DEVANAGARI_EM_DASH 0x0083 #define T_MAC_DEVANAGARI_LEFT_SINGLE_QUOTATION_MARK 0x0084 #define T_MAC_DEVANAGARI_RIGHT_SINGLE_QUOTATION_MARK 0x0085 #define T_MAC_DEVANAGARI_HORIZONTAL_ELLIPSIS 0x0086 #define T_MAC_DEVANAGARI_BULLET 0x0087 #define T_MAC_DEVANAGARI_COPYRIGHT_SIGN 0x0088 #define T_MAC_DEVANAGARI_REGISTERED_SIGN 0x0089 #define T_MAC_DEVANAGARI_TRADE_MARK_SIGN 0x008A #define T_MAC_DEVANAGARI_UNDEFINED_008B 0x008B #define T_MAC_DEVANAGARI_UNDEFINED_008C 0x008C #define T_MAC_DEVANAGARI_UNDEFINED_008D 0x008D #define T_MAC_DEVANAGARI_UNDEFINED_008E 0x008E #define T_MAC_DEVANAGARI_UNDEFINED_008F 0x008F #define T_MAC_DEVANAGARI_DEVANAGARI_DOUBLE_DANDA 0x0090 #define T_MAC_DEVANAGARI_DEVANAGARI_ABBREVIATION_SIGN 0x0091 #define T_MAC_DEVANAGARI_UNDEFINED_0092 0x0092 #define T_MAC_DEVANAGARI_UNDEFINED_0093 0x0093 #define T_MAC_DEVANAGARI_UNDEFINED_0094 0x0094 #define T_MAC_DEVANAGARI_UNDEFINED_0095 0x0095 #define T_MAC_DEVANAGARI_UNDEFINED_0096 0x0096 #define T_MAC_DEVANAGARI_UNDEFINED_0097 0x0097 #define T_MAC_DEVANAGARI_UNDEFINED_0098 0x0098 #define T_MAC_DEVANAGARI_UNDEFINED_0099 0x0099 #define T_MAC_DEVANAGARI_UNDEFINED_009A 0x009A #define T_MAC_DEVANAGARI_UNDEFINED_009B 0x009B #define T_MAC_DEVANAGARI_UNDEFINED_009C 0x009C #define T_MAC_DEVANAGARI_UNDEFINED_009D 0x009D #define T_MAC_DEVANAGARI_UNDEFINED_009E 0x009E #define T_MAC_DEVANAGARI_UNDEFINED_009F 0x009F #define T_MAC_DEVANAGARI_UNDEFINED_00A0 0x00A0 #define T_MAC_DEVANAGARI_DEVANAGARI_SIGN_CANDRABINDU 0x00A1 #define T_MAC_DEVANAGARI_DEVANAGARI_SIGN_ANUSVARA 0x00A2 #define T_MAC_DEVANAGARI_DEVANAGARI_SIGN_VISARGA 0x00A3 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_A 0x00A4 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_AA 0x00A5 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_I 0x00A6 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_II 0x00A7 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_U 0x00A8 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_UU 0x00A9 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_VOCALIC_R 0x00AA #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_SHORT_E 0x00AB #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_E 0x00AC #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_AI 0x00AD #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_CANDRA_E 0x00AE #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_SHORT_O 0x00AF #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_O 0x00B0 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_AU 0x00B1 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_CANDRA_O 0x00B2 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_KA 0x00B3 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_KHA 0x00B4 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_GA 0x00B5 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_GHA 0x00B6 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_NGA 0x00B7 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_CA 0x00B8 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_CHA 0x00B9 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_JA 0x00BA #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_JHA 0x00BB #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_NYA 0x00BC #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_TTA 0x00BD #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_TTHA 0x00BE #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_DDA 0x00BF #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_DDHA 0x00C0 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_NNA 0x00C1 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_TA 0x00C2 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_THA 0x00C3 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_DA 0x00C4 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_DHA 0x00C5 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_NA 0x00C6 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_NNNA 0x00C7 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_PA 0x00C8 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_PHA 0x00C9 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_BA 0x00CA #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_BHA 0x00CB #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_MA 0x00CC #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_YA 0x00CD #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_YYA 0x00CE #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_RA 0x00CF #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_RRA 0x00D0 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_LA 0x00D1 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_LLA 0x00D2 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_LLLA 0x00D3 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_VA 0x00D4 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_SHA 0x00D5 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_SSA 0x00D6 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_SA 0x00D7 #define T_MAC_DEVANAGARI_DEVANAGARI_LETTER_HA 0x00D8 #define T_MAC_DEVANAGARI_LEFT_TO_RIGHT_MARK 0x00D9 #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_AA 0x00DA #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_I 0x00DB #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_II 0x00DC #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_U 0x00DD #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_UU 0x00DE #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_VOCALIC_R 0x00DF #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_SHORT_E 0x00E0 #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_E 0x00E1 #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_AI 0x00E2 #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_CANDRA_E 0x00E3 #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_SHORT_O 0x00E4 #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_O 0x00E5 #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_AU 0x00E6 #define T_MAC_DEVANAGARI_DEVANAGARI_VOWEL_SIGN_CANDRA_O 0x00E7 #define T_MAC_DEVANAGARI_DEVANAGARI_SIGN_VIRAMA 0x00E8 #define T_MAC_DEVANAGARI_DEVANAGARI_SIGN_NUKTA 0x00E9 #define T_MAC_DEVANAGARI_DEVANAGARI_DANDA 0x00EA #define T_MAC_DEVANAGARI_UNDEFINED_00EB 0x00EB #define T_MAC_DEVANAGARI_UNDEFINED_00EC 0x00EC #define T_MAC_DEVANAGARI_UNDEFINED_00ED 0x00ED #define T_MAC_DEVANAGARI_UNDEFINED_00EE 0x00EE #define T_MAC_DEVANAGARI_UNDEFINED_00EF 0x00EF #define T_MAC_DEVANAGARI_UNDEFINED_00F0 0x00F0 #define T_MAC_DEVANAGARI_DEVANAGARI_DIGIT_ZERO 0x00F1 #define T_MAC_DEVANAGARI_DEVANAGARI_DIGIT_ONE 0x00F2 #define T_MAC_DEVANAGARI_DEVANAGARI_DIGIT_TWO 0x00F3 #define T_MAC_DEVANAGARI_DEVANAGARI_DIGIT_THREE 0x00F4 #define T_MAC_DEVANAGARI_DEVANAGARI_DIGIT_FOUR 0x00F5 #define T_MAC_DEVANAGARI_DEVANAGARI_DIGIT_FIVE 0x00F6 #define T_MAC_DEVANAGARI_DEVANAGARI_DIGIT_SIX 0x00F7 #define T_MAC_DEVANAGARI_DEVANAGARI_DIGIT_SEVEN 0x00F8 #define T_MAC_DEVANAGARI_DEVANAGARI_DIGIT_EIGHT 0x00F9 #define T_MAC_DEVANAGARI_DEVANAGARI_DIGIT_NINE 0x00FA #define T_MAC_DEVANAGARI_UNDEFINED_00FB 0x00FB #define T_MAC_DEVANAGARI_UNDEFINED_00FC 0x00FC #define T_MAC_DEVANAGARI_UNDEFINED_00FD 0x00FD #define T_MAC_DEVANAGARI_UNDEFINED_00FE 0x00FE #define T_MAC_DEVANAGARI_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_MAC_DEVANAGARI(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_MULTIPLICATION_SIGN) \ EL(_MINUS_SIGN) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_BULLET) \ EL(_COPYRIGHT_SIGN) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_DEVANAGARI_DOUBLE_DANDA) \ EL(_DEVANAGARI_ABBREVIATION_SIGN) \ EL(_DEVANAGARI_SIGN_CANDRABINDU) \ EL(_DEVANAGARI_SIGN_ANUSVARA) \ EL(_DEVANAGARI_SIGN_VISARGA) \ EL(_DEVANAGARI_LETTER_A) \ EL(_DEVANAGARI_LETTER_AA) \ EL(_DEVANAGARI_LETTER_I) \ EL(_DEVANAGARI_LETTER_II) \ EL(_DEVANAGARI_LETTER_U) \ EL(_DEVANAGARI_LETTER_UU) \ EL(_DEVANAGARI_LETTER_VOCALIC_R) \ EL(_DEVANAGARI_LETTER_SHORT_E) \ EL(_DEVANAGARI_LETTER_E) \ EL(_DEVANAGARI_LETTER_AI) \ EL(_DEVANAGARI_LETTER_CANDRA_E) \ EL(_DEVANAGARI_LETTER_SHORT_O) \ EL(_DEVANAGARI_LETTER_O) \ EL(_DEVANAGARI_LETTER_AU) \ EL(_DEVANAGARI_LETTER_CANDRA_O) \ EL(_DEVANAGARI_LETTER_KA) \ EL(_DEVANAGARI_LETTER_KHA) \ EL(_DEVANAGARI_LETTER_GA) \ EL(_DEVANAGARI_LETTER_GHA) \ EL(_DEVANAGARI_LETTER_NGA) \ EL(_DEVANAGARI_LETTER_CA) \ EL(_DEVANAGARI_LETTER_CHA) \ EL(_DEVANAGARI_LETTER_JA) \ EL(_DEVANAGARI_LETTER_JHA) \ EL(_DEVANAGARI_LETTER_NYA) \ EL(_DEVANAGARI_LETTER_TTA) \ EL(_DEVANAGARI_LETTER_TTHA) \ EL(_DEVANAGARI_LETTER_DDA) \ EL(_DEVANAGARI_LETTER_DDHA) \ EL(_DEVANAGARI_LETTER_NNA) \ EL(_DEVANAGARI_LETTER_TA) \ EL(_DEVANAGARI_LETTER_THA) \ EL(_DEVANAGARI_LETTER_DA) \ EL(_DEVANAGARI_LETTER_DHA) \ EL(_DEVANAGARI_LETTER_NA) \ EL(_DEVANAGARI_LETTER_NNNA) \ EL(_DEVANAGARI_LETTER_PA) \ EL(_DEVANAGARI_LETTER_PHA) \ EL(_DEVANAGARI_LETTER_BA) \ EL(_DEVANAGARI_LETTER_BHA) \ EL(_DEVANAGARI_LETTER_MA) \ EL(_DEVANAGARI_LETTER_YA) \ EL(_DEVANAGARI_LETTER_YYA) \ EL(_DEVANAGARI_LETTER_RA) \ EL(_DEVANAGARI_LETTER_RRA) \ EL(_DEVANAGARI_LETTER_LA) \ EL(_DEVANAGARI_LETTER_LLA) \ EL(_DEVANAGARI_LETTER_LLLA) \ EL(_DEVANAGARI_LETTER_VA) \ EL(_DEVANAGARI_LETTER_SHA) \ EL(_DEVANAGARI_LETTER_SSA) \ EL(_DEVANAGARI_LETTER_SA) \ EL(_DEVANAGARI_LETTER_HA) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_DEVANAGARI_VOWEL_SIGN_AA) \ EL(_DEVANAGARI_VOWEL_SIGN_I) \ EL(_DEVANAGARI_VOWEL_SIGN_II) \ EL(_DEVANAGARI_VOWEL_SIGN_U) \ EL(_DEVANAGARI_VOWEL_SIGN_UU) \ EL(_DEVANAGARI_VOWEL_SIGN_VOCALIC_R) \ EL(_DEVANAGARI_VOWEL_SIGN_SHORT_E) \ EL(_DEVANAGARI_VOWEL_SIGN_E) \ EL(_DEVANAGARI_VOWEL_SIGN_AI) \ EL(_DEVANAGARI_VOWEL_SIGN_CANDRA_E) \ EL(_DEVANAGARI_VOWEL_SIGN_SHORT_O) \ EL(_DEVANAGARI_VOWEL_SIGN_O) \ EL(_DEVANAGARI_VOWEL_SIGN_AU) \ EL(_DEVANAGARI_VOWEL_SIGN_CANDRA_O) \ EL(_DEVANAGARI_SIGN_VIRAMA) \ EL(_DEVANAGARI_SIGN_NUKTA) \ EL(_DEVANAGARI_DANDA) \ EL(_DEVANAGARI_DIGIT_ZERO) \ EL(_DEVANAGARI_DIGIT_ONE) \ EL(_DEVANAGARI_DIGIT_TWO) \ EL(_DEVANAGARI_DIGIT_THREE) \ EL(_DEVANAGARI_DIGIT_FOUR) \ EL(_DEVANAGARI_DIGIT_FIVE) \ EL(_DEVANAGARI_DIGIT_SIX) \ EL(_DEVANAGARI_DIGIT_SEVEN) \ EL(_DEVANAGARI_DIGIT_EIGHT) \ EL(_DEVANAGARI_DIGIT_NINE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_DEVANAGARI(EL) \ EL(_MULTIPLICATION_SIGN) \ EL(_MINUS_SIGN) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_BULLET) \ EL(_COPYRIGHT_SIGN) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_DEVANAGARI_DOUBLE_DANDA) \ EL(_DEVANAGARI_ABBREVIATION_SIGN) \ EL(_DEVANAGARI_SIGN_CANDRABINDU) \ EL(_DEVANAGARI_SIGN_ANUSVARA) \ EL(_DEVANAGARI_SIGN_VISARGA) \ EL(_DEVANAGARI_LETTER_A) \ EL(_DEVANAGARI_LETTER_AA) \ EL(_DEVANAGARI_LETTER_I) \ EL(_DEVANAGARI_LETTER_II) \ EL(_DEVANAGARI_LETTER_U) \ EL(_DEVANAGARI_LETTER_UU) \ EL(_DEVANAGARI_LETTER_VOCALIC_R) \ EL(_DEVANAGARI_LETTER_SHORT_E) \ EL(_DEVANAGARI_LETTER_E) \ EL(_DEVANAGARI_LETTER_AI) \ EL(_DEVANAGARI_LETTER_CANDRA_E) \ EL(_DEVANAGARI_LETTER_SHORT_O) \ EL(_DEVANAGARI_LETTER_O) \ EL(_DEVANAGARI_LETTER_AU) \ EL(_DEVANAGARI_LETTER_CANDRA_O) \ EL(_DEVANAGARI_LETTER_KA) \ EL(_DEVANAGARI_LETTER_KHA) \ EL(_DEVANAGARI_LETTER_GA) \ EL(_DEVANAGARI_LETTER_GHA) \ EL(_DEVANAGARI_LETTER_NGA) \ EL(_DEVANAGARI_LETTER_CA) \ EL(_DEVANAGARI_LETTER_CHA) \ EL(_DEVANAGARI_LETTER_JA) \ EL(_DEVANAGARI_LETTER_JHA) \ EL(_DEVANAGARI_LETTER_NYA) \ EL(_DEVANAGARI_LETTER_TTA) \ EL(_DEVANAGARI_LETTER_TTHA) \ EL(_DEVANAGARI_LETTER_DDA) \ EL(_DEVANAGARI_LETTER_DDHA) \ EL(_DEVANAGARI_LETTER_NNA) \ EL(_DEVANAGARI_LETTER_TA) \ EL(_DEVANAGARI_LETTER_THA) \ EL(_DEVANAGARI_LETTER_DA) \ EL(_DEVANAGARI_LETTER_DHA) \ EL(_DEVANAGARI_LETTER_NA) \ EL(_DEVANAGARI_LETTER_NNNA) \ EL(_DEVANAGARI_LETTER_PA) \ EL(_DEVANAGARI_LETTER_PHA) \ EL(_DEVANAGARI_LETTER_BA) \ EL(_DEVANAGARI_LETTER_BHA) \ EL(_DEVANAGARI_LETTER_MA) \ EL(_DEVANAGARI_LETTER_YA) \ EL(_DEVANAGARI_LETTER_YYA) \ EL(_DEVANAGARI_LETTER_RA) \ EL(_DEVANAGARI_LETTER_RRA) \ EL(_DEVANAGARI_LETTER_LA) \ EL(_DEVANAGARI_LETTER_LLA) \ EL(_DEVANAGARI_LETTER_LLLA) \ EL(_DEVANAGARI_LETTER_VA) \ EL(_DEVANAGARI_LETTER_SHA) \ EL(_DEVANAGARI_LETTER_SSA) \ EL(_DEVANAGARI_LETTER_SA) \ EL(_DEVANAGARI_LETTER_HA) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_DEVANAGARI_VOWEL_SIGN_AA) \ EL(_DEVANAGARI_VOWEL_SIGN_I) \ EL(_DEVANAGARI_VOWEL_SIGN_II) \ EL(_DEVANAGARI_VOWEL_SIGN_U) \ EL(_DEVANAGARI_VOWEL_SIGN_UU) \ EL(_DEVANAGARI_VOWEL_SIGN_VOCALIC_R) \ EL(_DEVANAGARI_VOWEL_SIGN_SHORT_E) \ EL(_DEVANAGARI_VOWEL_SIGN_E) \ EL(_DEVANAGARI_VOWEL_SIGN_AI) \ EL(_DEVANAGARI_VOWEL_SIGN_CANDRA_E) \ EL(_DEVANAGARI_VOWEL_SIGN_SHORT_O) \ EL(_DEVANAGARI_VOWEL_SIGN_O) \ EL(_DEVANAGARI_VOWEL_SIGN_AU) \ EL(_DEVANAGARI_VOWEL_SIGN_CANDRA_O) \ EL(_DEVANAGARI_SIGN_VIRAMA) \ EL(_DEVANAGARI_SIGN_NUKTA) \ EL(_DEVANAGARI_DANDA) \ EL(_DEVANAGARI_DIGIT_ZERO) \ EL(_DEVANAGARI_DIGIT_ONE) \ EL(_DEVANAGARI_DIGIT_TWO) \ EL(_DEVANAGARI_DIGIT_THREE) \ EL(_DEVANAGARI_DIGIT_FOUR) \ EL(_DEVANAGARI_DIGIT_FIVE) \ EL(_DEVANAGARI_DIGIT_SIX) \ EL(_DEVANAGARI_DIGIT_SEVEN) \ EL(_DEVANAGARI_DIGIT_EIGHT) \ EL(_DEVANAGARI_DIGIT_NINE) #endif /* TUTF_MAC_DEVANAGARI_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_dingbats.h��������������������������������������������������������������0000664�0000000�0000000�00000137754�13775351206�0017664�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_DINGBATS_H #define TUTF_MAC_DINGBATS_H #define T_MAC_DINGBATS_CTRL_NULL 0x0000 #define T_MAC_DINGBATS_CTRL_START_OF_HEADING 0x0001 #define T_MAC_DINGBATS_CTRL_START_OF_TEXT 0x0002 #define T_MAC_DINGBATS_CTRL_END_OF_TEXT 0x0003 #define T_MAC_DINGBATS_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_DINGBATS_CTRL_ENQUIRY 0x0005 #define T_MAC_DINGBATS_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_DINGBATS_CTRL_BELL 0x0007 #define T_MAC_DINGBATS_CTRL_BACKSPACE 0x0008 #define T_MAC_DINGBATS_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_DINGBATS_CTRL_LINE_FEED 0x000A #define T_MAC_DINGBATS_CTRL_LINE_TABULATION 0x000B #define T_MAC_DINGBATS_CTRL_FORM_FEED 0x000C #define T_MAC_DINGBATS_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_DINGBATS_CTRL_SHIFT_OUT 0x000E #define T_MAC_DINGBATS_CTRL_SHIFT_IN 0x000F #define T_MAC_DINGBATS_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_DINGBATS_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_DINGBATS_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_DINGBATS_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_DINGBATS_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_DINGBATS_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_DINGBATS_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_DINGBATS_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_DINGBATS_CTRL_CANCEL 0x0018 #define T_MAC_DINGBATS_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_DINGBATS_CTRL_SUBSTITUTE 0x001A #define T_MAC_DINGBATS_CTRL_ESCAPE 0x001B #define T_MAC_DINGBATS_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_DINGBATS_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_DINGBATS_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_DINGBATS_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_DINGBATS_SPACE 0x0020 #define T_MAC_DINGBATS_EXCLAMATION_MARK 0x0021 #define T_MAC_DINGBATS_QUOTATION_MARK 0x0022 #define T_MAC_DINGBATS_NUMBER_SIGN 0x0023 #define T_MAC_DINGBATS_DOLLAR_SIGN 0x0024 #define T_MAC_DINGBATS_PERCENT_SIGN 0x0025 #define T_MAC_DINGBATS_AMPERSAND 0x0026 #define T_MAC_DINGBATS_APOSTROPHE 0x0027 #define T_MAC_DINGBATS_LEFT_PARENTHESIS 0x0028 #define T_MAC_DINGBATS_RIGHT_PARENTHESIS 0x0029 #define T_MAC_DINGBATS_ASTERISK 0x002A #define T_MAC_DINGBATS_PLUS_SIGN 0x002B #define T_MAC_DINGBATS_COMMA 0x002C #define T_MAC_DINGBATS_HYPHEN_MINUS 0x002D #define T_MAC_DINGBATS_FULL_STOP 0x002E #define T_MAC_DINGBATS_SOLIDUS 0x002F #define T_MAC_DINGBATS_DIGIT_ZERO 0x0030 #define T_MAC_DINGBATS_DIGIT_ONE 0x0031 #define T_MAC_DINGBATS_DIGIT_TWO 0x0032 #define T_MAC_DINGBATS_DIGIT_THREE 0x0033 #define T_MAC_DINGBATS_DIGIT_FOUR 0x0034 #define T_MAC_DINGBATS_DIGIT_FIVE 0x0035 #define T_MAC_DINGBATS_DIGIT_SIX 0x0036 #define T_MAC_DINGBATS_DIGIT_SEVEN 0x0037 #define T_MAC_DINGBATS_DIGIT_EIGHT 0x0038 #define T_MAC_DINGBATS_DIGIT_NINE 0x0039 #define T_MAC_DINGBATS_COLON 0x003A #define T_MAC_DINGBATS_SEMICOLON 0x003B #define T_MAC_DINGBATS_LESS_THAN_SIGN 0x003C #define T_MAC_DINGBATS_EQUALS_SIGN 0x003D #define T_MAC_DINGBATS_GREATER_THAN_SIGN 0x003E #define T_MAC_DINGBATS_QUESTION_MARK 0x003F #define T_MAC_DINGBATS_COMMERCIAL_AT 0x0040 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_DINGBATS_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_DINGBATS_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_DINGBATS_REVERSE_SOLIDUS 0x005C #define T_MAC_DINGBATS_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_DINGBATS_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_DINGBATS_LOW_LINE 0x005F #define T_MAC_DINGBATS_GRAVE_ACCENT 0x0060 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_DINGBATS_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_DINGBATS_LEFT_CURLY_BRACKET 0x007B #define T_MAC_DINGBATS_VERTICAL_LINE 0x007C #define T_MAC_DINGBATS_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_DINGBATS_TILDE 0x007E #define T_MAC_DINGBATS_CTRL_DELETE 0x007F #define T_MAC_DINGBATS_MEDIUM_LEFT_PARENTHESIS_ORNAMENT 0x0080 #define T_MAC_DINGBATS_MEDIUM_RIGHT_PARENTHESIS_ORNAMENT 0x0081 #define T_MAC_DINGBATS_MEDIUM_FLATTENED_LEFT_PARENTHESIS_ORNAMENT 0x0082 #define T_MAC_DINGBATS_MEDIUM_FLATTENED_RIGHT_PARENTHESIS_ORNAMENT 0x0083 #define T_MAC_DINGBATS_MEDIUM_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT 0x0084 #define T_MAC_DINGBATS_MEDIUM_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT 0x0085 #define T_MAC_DINGBATS_HEAVY_LEFT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT 0x0086 #define T_MAC_DINGBATS_HEAVY_RIGHT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT 0x0087 #define T_MAC_DINGBATS_HEAVY_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT 0x0088 #define T_MAC_DINGBATS_HEAVY_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT 0x0089 #define T_MAC_DINGBATS_LIGHT_LEFT_TORTOISE_SHELL_BRACKET_ORNAMENT 0x008A #define T_MAC_DINGBATS_LIGHT_RIGHT_TORTOISE_SHELL_BRACKET_ORNAMENT 0x008B #define T_MAC_DINGBATS_MEDIUM_LEFT_CURLY_BRACKET_ORNAMENT 0x008C #define T_MAC_DINGBATS_MEDIUM_RIGHT_CURLY_BRACKET_ORNAMENT 0x008D #define T_MAC_DINGBATS_UNDEFINED_008E 0x008E #define T_MAC_DINGBATS_UNDEFINED_008F 0x008F #define T_MAC_DINGBATS_UNDEFINED_0090 0x0090 #define T_MAC_DINGBATS_UNDEFINED_0091 0x0091 #define T_MAC_DINGBATS_UNDEFINED_0092 0x0092 #define T_MAC_DINGBATS_UNDEFINED_0093 0x0093 #define T_MAC_DINGBATS_UNDEFINED_0094 0x0094 #define T_MAC_DINGBATS_UNDEFINED_0095 0x0095 #define T_MAC_DINGBATS_UNDEFINED_0096 0x0096 #define T_MAC_DINGBATS_UNDEFINED_0097 0x0097 #define T_MAC_DINGBATS_UNDEFINED_0098 0x0098 #define T_MAC_DINGBATS_UNDEFINED_0099 0x0099 #define T_MAC_DINGBATS_UNDEFINED_009A 0x009A #define T_MAC_DINGBATS_UNDEFINED_009B 0x009B #define T_MAC_DINGBATS_UNDEFINED_009C 0x009C #define T_MAC_DINGBATS_UNDEFINED_009D 0x009D #define T_MAC_DINGBATS_UNDEFINED_009E 0x009E #define T_MAC_DINGBATS_UNDEFINED_009F 0x009F #define T_MAC_DINGBATS_UNDEFINED_00A0 0x00A0 #define T_MAC_DINGBATS_CURVED_STEM_PARAGRAPH_SIGN_ORNAMENT 0x00A1 #define T_MAC_DINGBATS_HEAVY_EXCLAMATION_MARK_ORNAMENT 0x00A2 #define T_MAC_DINGBATS_HEAVY_HEART_EXCLAMATION_MARK_ORNAMENT 0x00A3 #define T_MAC_DINGBATS_HEAVY_BLACK_HEART 0x00A4 #define T_MAC_DINGBATS_ROTATED_HEAVY_BLACK_HEART_BULLET 0x00A5 #define T_MAC_DINGBATS_FLORAL_HEART 0x00A6 #define T_MAC_DINGBATS_ROTATED_FLORAL_HEART_BULLET 0x00A7 #define T_MAC_DINGBATS_BLACK_CLUB_SUIT 0x00A8 #define T_MAC_DINGBATS_BLACK_DIAMOND_SUIT 0x00A9 #define T_MAC_DINGBATS_BLACK_HEART_SUIT 0x00AA #define T_MAC_DINGBATS_BLACK_SPADE_SUIT 0x00AB #define T_MAC_DINGBATS_CIRCLED_DIGIT_ONE 0x00AC #define T_MAC_DINGBATS_CIRCLED_DIGIT_TWO 0x00AD #define T_MAC_DINGBATS_CIRCLED_DIGIT_THREE 0x00AE #define T_MAC_DINGBATS_CIRCLED_DIGIT_FOUR 0x00AF #define T_MAC_DINGBATS_CIRCLED_DIGIT_FIVE 0x00B0 #define T_MAC_DINGBATS_CIRCLED_DIGIT_SIX 0x00B1 #define T_MAC_DINGBATS_CIRCLED_DIGIT_SEVEN 0x00B2 #define T_MAC_DINGBATS_CIRCLED_DIGIT_EIGHT 0x00B3 #define T_MAC_DINGBATS_CIRCLED_DIGIT_NINE 0x00B4 #define T_MAC_DINGBATS_CIRCLED_NUMBER_TEN 0x00B5 #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_DIGIT_ONE 0x00B6 #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_DIGIT_TWO 0x00B7 #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_DIGIT_THREE 0x00B8 #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_DIGIT_FOUR 0x00B9 #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_DIGIT_FIVE 0x00BA #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_DIGIT_SIX 0x00BB #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_DIGIT_SEVEN 0x00BC #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_DIGIT_EIGHT 0x00BD #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_DIGIT_NINE 0x00BE #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_NUMBER_TEN 0x00BF #define T_MAC_DINGBATS_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_ONE 0x00C0 #define T_MAC_DINGBATS_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_TWO 0x00C1 #define T_MAC_DINGBATS_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_THREE 0x00C2 #define T_MAC_DINGBATS_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_FOUR 0x00C3 #define T_MAC_DINGBATS_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_FIVE 0x00C4 #define T_MAC_DINGBATS_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_SIX 0x00C5 #define T_MAC_DINGBATS_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_SEVEN 0x00C6 #define T_MAC_DINGBATS_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_EIGHT 0x00C7 #define T_MAC_DINGBATS_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_NINE 0x00C8 #define T_MAC_DINGBATS_DINGBAT_CIRCLED_SANS_SERIF_NUMBER_TEN 0x00C9 #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_ONE 0x00CA #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_TWO 0x00CB #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_THREE 0x00CC #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_FOUR 0x00CD #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_FIVE 0x00CE #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_SIX 0x00CF #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_SEVEN 0x00D0 #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_EIGHT 0x00D1 #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_NINE 0x00D2 #define T_MAC_DINGBATS_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_NUMBER_TEN 0x00D3 #define T_MAC_DINGBATS_HEAVY_WIDE_HEADED_RIGHTWARDS_ARROW 0x00D4 #define T_MAC_DINGBATS_RIGHTWARDS_ARROW 0x00D5 #define T_MAC_DINGBATS_LEFT_RIGHT_ARROW 0x00D6 #define T_MAC_DINGBATS_UP_DOWN_ARROW 0x00D7 #define T_MAC_DINGBATS_HEAVY_SOUTH_EAST_ARROW 0x00D8 #define T_MAC_DINGBATS_HEAVY_RIGHTWARDS_ARROW 0x00D9 #define T_MAC_DINGBATS_HEAVY_NORTH_EAST_ARROW 0x00DA #define T_MAC_DINGBATS_DRAFTING_POINT_RIGHTWARDS_ARROW 0x00DB #define T_MAC_DINGBATS_HEAVY_ROUND_TIPPED_RIGHTWARDS_ARROW 0x00DC #define T_MAC_DINGBATS_TRIANGLE_HEADED_RIGHTWARDS_ARROW 0x00DD #define T_MAC_DINGBATS_HEAVY_TRIANGLE_HEADED_RIGHTWARDS_ARROW 0x00DE #define T_MAC_DINGBATS_DASHED_TRIANGLE_HEADED_RIGHTWARDS_ARROW 0x00DF #define T_MAC_DINGBATS_HEAVY_DASHED_TRIANGLE_HEADED_RIGHTWARDS_ARROW 0x00E0 #define T_MAC_DINGBATS_BLACK_RIGHTWARDS_ARROW 0x00E1 #define T_MAC_DINGBATS_THREE_D_TOP_LIGHTED_RIGHTWARDS_ARROWHEAD 0x00E2 #define T_MAC_DINGBATS_THREE_D_BOTTOM_LIGHTED_RIGHTWARDS_ARROWHEAD 0x00E3 #define T_MAC_DINGBATS_BLACK_RIGHTWARDS_ARROWHEAD 0x00E4 #define T_MAC_DINGBATS_HEAVY_BLACK_CURVED_DOWNWARDS_AND_RIGHTWARDS_ARROW 0x00E5 #define T_MAC_DINGBATS_HEAVY_BLACK_CURVED_UPWARDS_AND_RIGHTWARDS_ARROW 0x00E6 #define T_MAC_DINGBATS_SQUAT_BLACK_RIGHTWARDS_ARROW 0x00E7 #define T_MAC_DINGBATS_HEAVY_CONCAVE_POINTED_BLACK_RIGHTWARDS_ARROW 0x00E8 #define T_MAC_DINGBATS_RIGHT_SHADED_WHITE_RIGHTWARDS_ARROW 0x00E9 #define T_MAC_DINGBATS_LEFT_SHADED_WHITE_RIGHTWARDS_ARROW 0x00EA #define T_MAC_DINGBATS_BACK_TILTED_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x00EB #define T_MAC_DINGBATS_FRONT_TILTED_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x00EC #define T_MAC_DINGBATS_HEAVY_LOWER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x00ED #define T_MAC_DINGBATS_HEAVY_UPPER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x00EE #define T_MAC_DINGBATS_NOTCHED_LOWER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x00EF #define T_MAC_DINGBATS_UNDEFINED_00F0 0x00F0 #define T_MAC_DINGBATS_NOTCHED_UPPER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x00F1 #define T_MAC_DINGBATS_CIRCLED_HEAVY_WHITE_RIGHTWARDS_ARROW 0x00F2 #define T_MAC_DINGBATS_WHITE_FEATHERED_RIGHTWARDS_ARROW 0x00F3 #define T_MAC_DINGBATS_BLACK_FEATHERED_SOUTH_EAST_ARROW 0x00F4 #define T_MAC_DINGBATS_BLACK_FEATHERED_RIGHTWARDS_ARROW 0x00F5 #define T_MAC_DINGBATS_BLACK_FEATHERED_NORTH_EAST_ARROW 0x00F6 #define T_MAC_DINGBATS_HEAVY_BLACK_FEATHERED_SOUTH_EAST_ARROW 0x00F7 #define T_MAC_DINGBATS_HEAVY_BLACK_FEATHERED_RIGHTWARDS_ARROW 0x00F8 #define T_MAC_DINGBATS_HEAVY_BLACK_FEATHERED_NORTH_EAST_ARROW 0x00F9 #define T_MAC_DINGBATS_TEARDROP_BARBED_RIGHTWARDS_ARROW 0x00FA #define T_MAC_DINGBATS_HEAVY_TEARDROP_SHANKED_RIGHTWARDS_ARROW 0x00FB #define T_MAC_DINGBATS_WEDGE_TAILED_RIGHTWARDS_ARROW 0x00FC #define T_MAC_DINGBATS_HEAVY_WEDGE_TAILED_RIGHTWARDS_ARROW 0x00FD #define T_MAC_DINGBATS_OPEN_OUTLINED_RIGHTWARDS_ARROW 0x00FE #define T_MAC_DINGBATS_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_MAC_DINGBATS(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_MEDIUM_LEFT_PARENTHESIS_ORNAMENT) \ EL(_MEDIUM_RIGHT_PARENTHESIS_ORNAMENT) \ EL(_MEDIUM_FLATTENED_LEFT_PARENTHESIS_ORNAMENT) \ EL(_MEDIUM_FLATTENED_RIGHT_PARENTHESIS_ORNAMENT) \ EL(_MEDIUM_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT) \ EL(_MEDIUM_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT) \ EL(_HEAVY_LEFT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT) \ EL(_HEAVY_RIGHT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT) \ EL(_HEAVY_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT) \ EL(_HEAVY_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT) \ EL(_LIGHT_LEFT_TORTOISE_SHELL_BRACKET_ORNAMENT) \ EL(_LIGHT_RIGHT_TORTOISE_SHELL_BRACKET_ORNAMENT) \ EL(_MEDIUM_LEFT_CURLY_BRACKET_ORNAMENT) \ EL(_MEDIUM_RIGHT_CURLY_BRACKET_ORNAMENT) \ EL(_CURVED_STEM_PARAGRAPH_SIGN_ORNAMENT) \ EL(_HEAVY_EXCLAMATION_MARK_ORNAMENT) \ EL(_HEAVY_HEART_EXCLAMATION_MARK_ORNAMENT) \ EL(_HEAVY_BLACK_HEART) \ EL(_ROTATED_HEAVY_BLACK_HEART_BULLET) \ EL(_FLORAL_HEART) \ EL(_ROTATED_FLORAL_HEART_BULLET) \ EL(_BLACK_CLUB_SUIT) \ EL(_BLACK_DIAMOND_SUIT) \ EL(_BLACK_HEART_SUIT) \ EL(_BLACK_SPADE_SUIT) \ EL(_CIRCLED_DIGIT_ONE) \ EL(_CIRCLED_DIGIT_TWO) \ EL(_CIRCLED_DIGIT_THREE) \ EL(_CIRCLED_DIGIT_FOUR) \ EL(_CIRCLED_DIGIT_FIVE) \ EL(_CIRCLED_DIGIT_SIX) \ EL(_CIRCLED_DIGIT_SEVEN) \ EL(_CIRCLED_DIGIT_EIGHT) \ EL(_CIRCLED_DIGIT_NINE) \ EL(_CIRCLED_NUMBER_TEN) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_ONE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_TWO) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_THREE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_FOUR) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_FIVE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_SIX) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_SEVEN) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_EIGHT) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_NINE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_NUMBER_TEN) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_ONE) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_TWO) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_THREE) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_FOUR) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_FIVE) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_SIX) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_SEVEN) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_EIGHT) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_NINE) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_NUMBER_TEN) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_ONE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_TWO) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_THREE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_FOUR) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_FIVE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_SIX) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_SEVEN) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_EIGHT) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_NINE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_NUMBER_TEN) \ EL(_HEAVY_WIDE_HEADED_RIGHTWARDS_ARROW) \ EL(_RIGHTWARDS_ARROW) \ EL(_LEFT_RIGHT_ARROW) \ EL(_UP_DOWN_ARROW) \ EL(_HEAVY_SOUTH_EAST_ARROW) \ EL(_HEAVY_RIGHTWARDS_ARROW) \ EL(_HEAVY_NORTH_EAST_ARROW) \ EL(_DRAFTING_POINT_RIGHTWARDS_ARROW) \ EL(_HEAVY_ROUND_TIPPED_RIGHTWARDS_ARROW) \ EL(_TRIANGLE_HEADED_RIGHTWARDS_ARROW) \ EL(_HEAVY_TRIANGLE_HEADED_RIGHTWARDS_ARROW) \ EL(_DASHED_TRIANGLE_HEADED_RIGHTWARDS_ARROW) \ EL(_HEAVY_DASHED_TRIANGLE_HEADED_RIGHTWARDS_ARROW) \ EL(_BLACK_RIGHTWARDS_ARROW) \ EL(_THREE_D_TOP_LIGHTED_RIGHTWARDS_ARROWHEAD) \ EL(_THREE_D_BOTTOM_LIGHTED_RIGHTWARDS_ARROWHEAD) \ EL(_BLACK_RIGHTWARDS_ARROWHEAD) \ EL(_HEAVY_BLACK_CURVED_DOWNWARDS_AND_RIGHTWARDS_ARROW) \ EL(_HEAVY_BLACK_CURVED_UPWARDS_AND_RIGHTWARDS_ARROW) \ EL(_SQUAT_BLACK_RIGHTWARDS_ARROW) \ EL(_HEAVY_CONCAVE_POINTED_BLACK_RIGHTWARDS_ARROW) \ EL(_RIGHT_SHADED_WHITE_RIGHTWARDS_ARROW) \ EL(_LEFT_SHADED_WHITE_RIGHTWARDS_ARROW) \ EL(_BACK_TILTED_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_FRONT_TILTED_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_HEAVY_LOWER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_HEAVY_UPPER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_NOTCHED_LOWER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_NOTCHED_UPPER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_CIRCLED_HEAVY_WHITE_RIGHTWARDS_ARROW) \ EL(_WHITE_FEATHERED_RIGHTWARDS_ARROW) \ EL(_BLACK_FEATHERED_SOUTH_EAST_ARROW) \ EL(_BLACK_FEATHERED_RIGHTWARDS_ARROW) \ EL(_BLACK_FEATHERED_NORTH_EAST_ARROW) \ EL(_HEAVY_BLACK_FEATHERED_SOUTH_EAST_ARROW) \ EL(_HEAVY_BLACK_FEATHERED_RIGHTWARDS_ARROW) \ EL(_HEAVY_BLACK_FEATHERED_NORTH_EAST_ARROW) \ EL(_TEARDROP_BARBED_RIGHTWARDS_ARROW) \ EL(_HEAVY_TEARDROP_SHANKED_RIGHTWARDS_ARROW) \ EL(_WEDGE_TAILED_RIGHTWARDS_ARROW) \ EL(_HEAVY_WEDGE_TAILED_RIGHTWARDS_ARROW) \ EL(_OPEN_OUTLINED_RIGHTWARDS_ARROW) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_DINGBATS(EL) \ EL(_MEDIUM_LEFT_PARENTHESIS_ORNAMENT) \ EL(_MEDIUM_RIGHT_PARENTHESIS_ORNAMENT) \ EL(_MEDIUM_FLATTENED_LEFT_PARENTHESIS_ORNAMENT) \ EL(_MEDIUM_FLATTENED_RIGHT_PARENTHESIS_ORNAMENT) \ EL(_MEDIUM_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT) \ EL(_MEDIUM_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT) \ EL(_HEAVY_LEFT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT) \ EL(_HEAVY_RIGHT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT) \ EL(_HEAVY_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT) \ EL(_HEAVY_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT) \ EL(_LIGHT_LEFT_TORTOISE_SHELL_BRACKET_ORNAMENT) \ EL(_LIGHT_RIGHT_TORTOISE_SHELL_BRACKET_ORNAMENT) \ EL(_MEDIUM_LEFT_CURLY_BRACKET_ORNAMENT) \ EL(_MEDIUM_RIGHT_CURLY_BRACKET_ORNAMENT) \ EL(_CURVED_STEM_PARAGRAPH_SIGN_ORNAMENT) \ EL(_HEAVY_EXCLAMATION_MARK_ORNAMENT) \ EL(_HEAVY_HEART_EXCLAMATION_MARK_ORNAMENT) \ EL(_HEAVY_BLACK_HEART) \ EL(_ROTATED_HEAVY_BLACK_HEART_BULLET) \ EL(_FLORAL_HEART) \ EL(_ROTATED_FLORAL_HEART_BULLET) \ EL(_BLACK_CLUB_SUIT) \ EL(_BLACK_DIAMOND_SUIT) \ EL(_BLACK_HEART_SUIT) \ EL(_BLACK_SPADE_SUIT) \ EL(_CIRCLED_DIGIT_ONE) \ EL(_CIRCLED_DIGIT_TWO) \ EL(_CIRCLED_DIGIT_THREE) \ EL(_CIRCLED_DIGIT_FOUR) \ EL(_CIRCLED_DIGIT_FIVE) \ EL(_CIRCLED_DIGIT_SIX) \ EL(_CIRCLED_DIGIT_SEVEN) \ EL(_CIRCLED_DIGIT_EIGHT) \ EL(_CIRCLED_DIGIT_NINE) \ EL(_CIRCLED_NUMBER_TEN) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_ONE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_TWO) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_THREE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_FOUR) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_FIVE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_SIX) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_SEVEN) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_EIGHT) \ EL(_DINGBAT_NEGATIVE_CIRCLED_DIGIT_NINE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_NUMBER_TEN) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_ONE) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_TWO) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_THREE) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_FOUR) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_FIVE) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_SIX) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_SEVEN) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_EIGHT) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_NINE) \ EL(_DINGBAT_CIRCLED_SANS_SERIF_NUMBER_TEN) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_ONE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_TWO) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_THREE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_FOUR) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_FIVE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_SIX) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_SEVEN) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_EIGHT) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_NINE) \ EL(_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_NUMBER_TEN) \ EL(_HEAVY_WIDE_HEADED_RIGHTWARDS_ARROW) \ EL(_RIGHTWARDS_ARROW) \ EL(_LEFT_RIGHT_ARROW) \ EL(_UP_DOWN_ARROW) \ EL(_HEAVY_SOUTH_EAST_ARROW) \ EL(_HEAVY_RIGHTWARDS_ARROW) \ EL(_HEAVY_NORTH_EAST_ARROW) \ EL(_DRAFTING_POINT_RIGHTWARDS_ARROW) \ EL(_HEAVY_ROUND_TIPPED_RIGHTWARDS_ARROW) \ EL(_TRIANGLE_HEADED_RIGHTWARDS_ARROW) \ EL(_HEAVY_TRIANGLE_HEADED_RIGHTWARDS_ARROW) \ EL(_DASHED_TRIANGLE_HEADED_RIGHTWARDS_ARROW) \ EL(_HEAVY_DASHED_TRIANGLE_HEADED_RIGHTWARDS_ARROW) \ EL(_BLACK_RIGHTWARDS_ARROW) \ EL(_THREE_D_TOP_LIGHTED_RIGHTWARDS_ARROWHEAD) \ EL(_THREE_D_BOTTOM_LIGHTED_RIGHTWARDS_ARROWHEAD) \ EL(_BLACK_RIGHTWARDS_ARROWHEAD) \ EL(_HEAVY_BLACK_CURVED_DOWNWARDS_AND_RIGHTWARDS_ARROW) \ EL(_HEAVY_BLACK_CURVED_UPWARDS_AND_RIGHTWARDS_ARROW) \ EL(_SQUAT_BLACK_RIGHTWARDS_ARROW) \ EL(_HEAVY_CONCAVE_POINTED_BLACK_RIGHTWARDS_ARROW) \ EL(_RIGHT_SHADED_WHITE_RIGHTWARDS_ARROW) \ EL(_LEFT_SHADED_WHITE_RIGHTWARDS_ARROW) \ EL(_BACK_TILTED_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_FRONT_TILTED_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_HEAVY_LOWER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_HEAVY_UPPER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_NOTCHED_LOWER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_NOTCHED_UPPER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW) \ EL(_CIRCLED_HEAVY_WHITE_RIGHTWARDS_ARROW) \ EL(_WHITE_FEATHERED_RIGHTWARDS_ARROW) \ EL(_BLACK_FEATHERED_SOUTH_EAST_ARROW) \ EL(_BLACK_FEATHERED_RIGHTWARDS_ARROW) \ EL(_BLACK_FEATHERED_NORTH_EAST_ARROW) \ EL(_HEAVY_BLACK_FEATHERED_SOUTH_EAST_ARROW) \ EL(_HEAVY_BLACK_FEATHERED_RIGHTWARDS_ARROW) \ EL(_HEAVY_BLACK_FEATHERED_NORTH_EAST_ARROW) \ EL(_TEARDROP_BARBED_RIGHTWARDS_ARROW) \ EL(_HEAVY_TEARDROP_SHANKED_RIGHTWARDS_ARROW) \ EL(_WEDGE_TAILED_RIGHTWARDS_ARROW) \ EL(_HEAVY_WEDGE_TAILED_RIGHTWARDS_ARROW) \ EL(_OPEN_OUTLINED_RIGHTWARDS_ARROW) #endif /* TUTF_MAC_DINGBATS_H */ ��������������������twin-0.9.0/include/Tutf/mac_farsi.h�����������������������������������������������������������������0000664�0000000�0000000�00000144446�13775351206�0017171�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_FARSI_H #define TUTF_MAC_FARSI_H #define T_MAC_FARSI_CTRL_NULL 0x0000 #define T_MAC_FARSI_CTRL_START_OF_HEADING 0x0001 #define T_MAC_FARSI_CTRL_START_OF_TEXT 0x0002 #define T_MAC_FARSI_CTRL_END_OF_TEXT 0x0003 #define T_MAC_FARSI_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_FARSI_CTRL_ENQUIRY 0x0005 #define T_MAC_FARSI_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_FARSI_CTRL_BELL 0x0007 #define T_MAC_FARSI_CTRL_BACKSPACE 0x0008 #define T_MAC_FARSI_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_FARSI_CTRL_LINE_FEED 0x000A #define T_MAC_FARSI_CTRL_LINE_TABULATION 0x000B #define T_MAC_FARSI_CTRL_FORM_FEED 0x000C #define T_MAC_FARSI_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_FARSI_CTRL_SHIFT_OUT 0x000E #define T_MAC_FARSI_CTRL_SHIFT_IN 0x000F #define T_MAC_FARSI_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_FARSI_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_FARSI_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_FARSI_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_FARSI_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_FARSI_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_FARSI_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_FARSI_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_FARSI_CTRL_CANCEL 0x0018 #define T_MAC_FARSI_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_FARSI_CTRL_SUBSTITUTE 0x001A #define T_MAC_FARSI_CTRL_ESCAPE 0x001B #define T_MAC_FARSI_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_FARSI_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_FARSI_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_FARSI_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_FARSI_SPACE 0x0020 #define T_MAC_FARSI_EXCLAMATION_MARK 0x0021 #define T_MAC_FARSI_QUOTATION_MARK 0x0022 #define T_MAC_FARSI_NUMBER_SIGN 0x0023 #define T_MAC_FARSI_DOLLAR_SIGN 0x0024 #define T_MAC_FARSI_PERCENT_SIGN 0x0025 #define T_MAC_FARSI_AMPERSAND 0x0026 #define T_MAC_FARSI_APOSTROPHE 0x0027 #define T_MAC_FARSI_LEFT_PARENTHESIS 0x0028 #define T_MAC_FARSI_RIGHT_PARENTHESIS 0x0029 #define T_MAC_FARSI_ASTERISK 0x002A #define T_MAC_FARSI_PLUS_SIGN 0x002B #define T_MAC_FARSI_COMMA 0x002C #define T_MAC_FARSI_HYPHEN_MINUS 0x002D #define T_MAC_FARSI_FULL_STOP 0x002E #define T_MAC_FARSI_SOLIDUS 0x002F #define T_MAC_FARSI_DIGIT_ZERO 0x0030 #define T_MAC_FARSI_DIGIT_ONE 0x0031 #define T_MAC_FARSI_DIGIT_TWO 0x0032 #define T_MAC_FARSI_DIGIT_THREE 0x0033 #define T_MAC_FARSI_DIGIT_FOUR 0x0034 #define T_MAC_FARSI_DIGIT_FIVE 0x0035 #define T_MAC_FARSI_DIGIT_SIX 0x0036 #define T_MAC_FARSI_DIGIT_SEVEN 0x0037 #define T_MAC_FARSI_DIGIT_EIGHT 0x0038 #define T_MAC_FARSI_DIGIT_NINE 0x0039 #define T_MAC_FARSI_COLON 0x003A #define T_MAC_FARSI_SEMICOLON 0x003B #define T_MAC_FARSI_LESS_THAN_SIGN 0x003C #define T_MAC_FARSI_EQUALS_SIGN 0x003D #define T_MAC_FARSI_GREATER_THAN_SIGN 0x003E #define T_MAC_FARSI_QUESTION_MARK 0x003F #define T_MAC_FARSI_COMMERCIAL_AT 0x0040 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_FARSI_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_FARSI_REVERSE_SOLIDUS 0x005C #define T_MAC_FARSI_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_FARSI_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_FARSI_LOW_LINE 0x005F #define T_MAC_FARSI_GRAVE_ACCENT 0x0060 #define T_MAC_FARSI_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_FARSI_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_FARSI_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_FARSI_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_FARSI_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_FARSI_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_FARSI_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_FARSI_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_FARSI_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_FARSI_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_FARSI_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_FARSI_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_FARSI_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_FARSI_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_FARSI_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_FARSI_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_FARSI_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_FARSI_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_FARSI_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_FARSI_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_FARSI_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_FARSI_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_FARSI_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_FARSI_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_FARSI_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_FARSI_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_FARSI_LEFT_CURLY_BRACKET 0x007B #define T_MAC_FARSI_VERTICAL_LINE 0x007C #define T_MAC_FARSI_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_FARSI_TILDE 0x007E #define T_MAC_FARSI_CTRL_DELETE 0x007F #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_FARSI_NO_BREAK_SPACE 0x0081 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_FARSI_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_FARSI_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_FARSI_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_FARSI_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_FARSI_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_FARSI_ARABIC_LETTER_NOON_GHUNNA 0x008B #define T_MAC_FARSI_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x008C #define T_MAC_FARSI_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_FARSI_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_FARSI_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_FARSI_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_FARSI_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_FARSI_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_FARSI_HORIZONTAL_ELLIPSIS 0x0093 #define T_MAC_FARSI_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_FARSI_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_FARSI_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MAC_FARSI_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_FARSI_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x0098 #define T_MAC_FARSI_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_FARSI_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_FARSI_DIVISION_SIGN 0x009B #define T_MAC_FARSI_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_FARSI_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_FARSI_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_FARSI_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_FARSI_UNDEFINED_00A0 0x00A0 #define T_MAC_FARSI_UNDEFINED_00A1 0x00A1 #define T_MAC_FARSI_UNDEFINED_00A2 0x00A2 #define T_MAC_FARSI_UNDEFINED_00A3 0x00A3 #define T_MAC_FARSI_UNDEFINED_00A4 0x00A4 #define T_MAC_FARSI_ARABIC_PERCENT_SIGN 0x00A5 #define T_MAC_FARSI_UNDEFINED_00A6 0x00A6 #define T_MAC_FARSI_UNDEFINED_00A7 0x00A7 #define T_MAC_FARSI_UNDEFINED_00A8 0x00A8 #define T_MAC_FARSI_UNDEFINED_00A9 0x00A9 #define T_MAC_FARSI_UNDEFINED_00AA 0x00AA #define T_MAC_FARSI_UNDEFINED_00AB 0x00AB #define T_MAC_FARSI_ARABIC_COMMA 0x00AC #define T_MAC_FARSI_UNDEFINED_00AD 0x00AD #define T_MAC_FARSI_UNDEFINED_00AE 0x00AE #define T_MAC_FARSI_UNDEFINED_00AF 0x00AF #define T_MAC_FARSI_EXTENDED_ARABIC_INDIC_DIGIT_ZERO 0x00B0 #define T_MAC_FARSI_EXTENDED_ARABIC_INDIC_DIGIT_ONE 0x00B1 #define T_MAC_FARSI_EXTENDED_ARABIC_INDIC_DIGIT_TWO 0x00B2 #define T_MAC_FARSI_EXTENDED_ARABIC_INDIC_DIGIT_THREE 0x00B3 #define T_MAC_FARSI_EXTENDED_ARABIC_INDIC_DIGIT_FOUR 0x00B4 #define T_MAC_FARSI_EXTENDED_ARABIC_INDIC_DIGIT_FIVE 0x00B5 #define T_MAC_FARSI_EXTENDED_ARABIC_INDIC_DIGIT_SIX 0x00B6 #define T_MAC_FARSI_EXTENDED_ARABIC_INDIC_DIGIT_SEVEN 0x00B7 #define T_MAC_FARSI_EXTENDED_ARABIC_INDIC_DIGIT_EIGHT 0x00B8 #define T_MAC_FARSI_EXTENDED_ARABIC_INDIC_DIGIT_NINE 0x00B9 #define T_MAC_FARSI_UNDEFINED_00BA 0x00BA #define T_MAC_FARSI_ARABIC_SEMICOLON 0x00BB #define T_MAC_FARSI_UNDEFINED_00BC 0x00BC #define T_MAC_FARSI_UNDEFINED_00BD 0x00BD #define T_MAC_FARSI_UNDEFINED_00BE 0x00BE #define T_MAC_FARSI_ARABIC_QUESTION_MARK 0x00BF #define T_MAC_FARSI_EIGHT_TEARDROP_SPOKED_PROPELLER_ASTERISK 0x00C0 #define T_MAC_FARSI_ARABIC_LETTER_HAMZA 0x00C1 #define T_MAC_FARSI_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE 0x00C2 #define T_MAC_FARSI_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE 0x00C3 #define T_MAC_FARSI_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE 0x00C4 #define T_MAC_FARSI_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW 0x00C5 #define T_MAC_FARSI_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE 0x00C6 #define T_MAC_FARSI_ARABIC_LETTER_ALEF 0x00C7 #define T_MAC_FARSI_ARABIC_LETTER_BEH 0x00C8 #define T_MAC_FARSI_ARABIC_LETTER_TEH_MARBUTA 0x00C9 #define T_MAC_FARSI_ARABIC_LETTER_TEH 0x00CA #define T_MAC_FARSI_ARABIC_LETTER_THEH 0x00CB #define T_MAC_FARSI_ARABIC_LETTER_JEEM 0x00CC #define T_MAC_FARSI_ARABIC_LETTER_HAH 0x00CD #define T_MAC_FARSI_ARABIC_LETTER_KHAH 0x00CE #define T_MAC_FARSI_ARABIC_LETTER_DAL 0x00CF #define T_MAC_FARSI_ARABIC_LETTER_THAL 0x00D0 #define T_MAC_FARSI_ARABIC_LETTER_REH 0x00D1 #define T_MAC_FARSI_ARABIC_LETTER_ZAIN 0x00D2 #define T_MAC_FARSI_ARABIC_LETTER_SEEN 0x00D3 #define T_MAC_FARSI_ARABIC_LETTER_SHEEN 0x00D4 #define T_MAC_FARSI_ARABIC_LETTER_SAD 0x00D5 #define T_MAC_FARSI_ARABIC_LETTER_DAD 0x00D6 #define T_MAC_FARSI_ARABIC_LETTER_TAH 0x00D7 #define T_MAC_FARSI_ARABIC_LETTER_ZAH 0x00D8 #define T_MAC_FARSI_ARABIC_LETTER_AIN 0x00D9 #define T_MAC_FARSI_ARABIC_LETTER_GHAIN 0x00DA #define T_MAC_FARSI_UNDEFINED_00DB 0x00DB #define T_MAC_FARSI_UNDEFINED_00DC 0x00DC #define T_MAC_FARSI_UNDEFINED_00DD 0x00DD #define T_MAC_FARSI_UNDEFINED_00DE 0x00DE #define T_MAC_FARSI_UNDEFINED_00DF 0x00DF #define T_MAC_FARSI_ARABIC_TATWEEL 0x00E0 #define T_MAC_FARSI_ARABIC_LETTER_FEH 0x00E1 #define T_MAC_FARSI_ARABIC_LETTER_QAF 0x00E2 #define T_MAC_FARSI_ARABIC_LETTER_KAF 0x00E3 #define T_MAC_FARSI_ARABIC_LETTER_LAM 0x00E4 #define T_MAC_FARSI_ARABIC_LETTER_MEEM 0x00E5 #define T_MAC_FARSI_ARABIC_LETTER_NOON 0x00E6 #define T_MAC_FARSI_ARABIC_LETTER_HEH 0x00E7 #define T_MAC_FARSI_ARABIC_LETTER_WAW 0x00E8 #define T_MAC_FARSI_ARABIC_LETTER_ALEF_MAKSURA 0x00E9 #define T_MAC_FARSI_ARABIC_LETTER_YEH 0x00EA #define T_MAC_FARSI_ARABIC_FATHATAN 0x00EB #define T_MAC_FARSI_ARABIC_DAMMATAN 0x00EC #define T_MAC_FARSI_ARABIC_KASRATAN 0x00ED #define T_MAC_FARSI_ARABIC_FATHA 0x00EE #define T_MAC_FARSI_ARABIC_DAMMA 0x00EF #define T_MAC_FARSI_ARABIC_KASRA 0x00F0 #define T_MAC_FARSI_ARABIC_SHADDA 0x00F1 #define T_MAC_FARSI_ARABIC_SUKUN 0x00F2 #define T_MAC_FARSI_ARABIC_LETTER_PEH 0x00F3 #define T_MAC_FARSI_ARABIC_LETTER_TTEH 0x00F4 #define T_MAC_FARSI_ARABIC_LETTER_TCHEH 0x00F5 #define T_MAC_FARSI_ARABIC_LETTER_AE 0x00F6 #define T_MAC_FARSI_ARABIC_LETTER_VEH 0x00F7 #define T_MAC_FARSI_ARABIC_LETTER_GAF 0x00F8 #define T_MAC_FARSI_ARABIC_LETTER_DDAL 0x00F9 #define T_MAC_FARSI_ARABIC_LETTER_RREH 0x00FA #define T_MAC_FARSI_UNDEFINED_00FB 0x00FB #define T_MAC_FARSI_UNDEFINED_00FC 0x00FC #define T_MAC_FARSI_UNDEFINED_00FD 0x00FD #define T_MAC_FARSI_ARABIC_LETTER_JEH 0x00FE #define T_MAC_FARSI_ARABIC_LETTER_YEH_BARREE 0x00FF /* list of all characters */ #define T_LIST_MAC_FARSI(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_ARABIC_LETTER_NOON_GHUNNA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_ARABIC_PERCENT_SIGN) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_ARABIC_COMMA) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_ZERO) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_ONE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_TWO) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_THREE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_FOUR) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_FIVE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_SIX) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_SEVEN) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_EIGHT) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_NINE) \ EL(_UNDEFINED_00BA) \ EL(_ARABIC_SEMICOLON) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_ARABIC_QUESTION_MARK) \ EL(_EIGHT_TEARDROP_SPOKED_PROPELLER_ASTERISK) \ EL(_ARABIC_LETTER_HAMZA) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF) \ EL(_ARABIC_LETTER_BEH) \ EL(_ARABIC_LETTER_TEH_MARBUTA) \ EL(_ARABIC_LETTER_TEH) \ EL(_ARABIC_LETTER_THEH) \ EL(_ARABIC_LETTER_JEEM) \ EL(_ARABIC_LETTER_HAH) \ EL(_ARABIC_LETTER_KHAH) \ EL(_ARABIC_LETTER_DAL) \ EL(_ARABIC_LETTER_THAL) \ EL(_ARABIC_LETTER_REH) \ EL(_ARABIC_LETTER_ZAIN) \ EL(_ARABIC_LETTER_SEEN) \ EL(_ARABIC_LETTER_SHEEN) \ EL(_ARABIC_LETTER_SAD) \ EL(_ARABIC_LETTER_DAD) \ EL(_ARABIC_LETTER_TAH) \ EL(_ARABIC_LETTER_ZAH) \ EL(_ARABIC_LETTER_AIN) \ EL(_ARABIC_LETTER_GHAIN) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_ARABIC_TATWEEL) \ EL(_ARABIC_LETTER_FEH) \ EL(_ARABIC_LETTER_QAF) \ EL(_ARABIC_LETTER_KAF) \ EL(_ARABIC_LETTER_LAM) \ EL(_ARABIC_LETTER_MEEM) \ EL(_ARABIC_LETTER_NOON) \ EL(_ARABIC_LETTER_HEH) \ EL(_ARABIC_LETTER_WAW) \ EL(_ARABIC_LETTER_ALEF_MAKSURA) \ EL(_ARABIC_LETTER_YEH) \ EL(_ARABIC_FATHATAN) \ EL(_ARABIC_DAMMATAN) \ EL(_ARABIC_KASRATAN) \ EL(_ARABIC_FATHA) \ EL(_ARABIC_DAMMA) \ EL(_ARABIC_KASRA) \ EL(_ARABIC_SHADDA) \ EL(_ARABIC_SUKUN) \ EL(_ARABIC_LETTER_PEH) \ EL(_ARABIC_LETTER_TTEH) \ EL(_ARABIC_LETTER_TCHEH) \ EL(_ARABIC_LETTER_AE) \ EL(_ARABIC_LETTER_VEH) \ EL(_ARABIC_LETTER_GAF) \ EL(_ARABIC_LETTER_DDAL) \ EL(_ARABIC_LETTER_RREH) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_ARABIC_LETTER_JEH) \ EL(_ARABIC_LETTER_YEH_BARREE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_FARSI(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_ARABIC_LETTER_NOON_GHUNNA) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_ARABIC_PERCENT_SIGN) \ EL(_UNDEFINED_00A6) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_ARABIC_COMMA) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_ZERO) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_ONE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_TWO) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_THREE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_FOUR) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_FIVE) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_SIX) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_SEVEN) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_EIGHT) \ EL(_EXTENDED_ARABIC_INDIC_DIGIT_NINE) \ EL(_UNDEFINED_00BA) \ EL(_ARABIC_SEMICOLON) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_ARABIC_QUESTION_MARK) \ EL(_EIGHT_TEARDROP_SPOKED_PROPELLER_ASTERISK) \ EL(_ARABIC_LETTER_HAMZA) \ EL(_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW) \ EL(_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE) \ EL(_ARABIC_LETTER_ALEF) \ EL(_ARABIC_LETTER_BEH) \ EL(_ARABIC_LETTER_TEH_MARBUTA) \ EL(_ARABIC_LETTER_TEH) \ EL(_ARABIC_LETTER_THEH) \ EL(_ARABIC_LETTER_JEEM) \ EL(_ARABIC_LETTER_HAH) \ EL(_ARABIC_LETTER_KHAH) \ EL(_ARABIC_LETTER_DAL) \ EL(_ARABIC_LETTER_THAL) \ EL(_ARABIC_LETTER_REH) \ EL(_ARABIC_LETTER_ZAIN) \ EL(_ARABIC_LETTER_SEEN) \ EL(_ARABIC_LETTER_SHEEN) \ EL(_ARABIC_LETTER_SAD) \ EL(_ARABIC_LETTER_DAD) \ EL(_ARABIC_LETTER_TAH) \ EL(_ARABIC_LETTER_ZAH) \ EL(_ARABIC_LETTER_AIN) \ EL(_ARABIC_LETTER_GHAIN) \ EL(_UNDEFINED_00DB) \ EL(_UNDEFINED_00DC) \ EL(_UNDEFINED_00DD) \ EL(_UNDEFINED_00DE) \ EL(_UNDEFINED_00DF) \ EL(_ARABIC_TATWEEL) \ EL(_ARABIC_LETTER_FEH) \ EL(_ARABIC_LETTER_QAF) \ EL(_ARABIC_LETTER_KAF) \ EL(_ARABIC_LETTER_LAM) \ EL(_ARABIC_LETTER_MEEM) \ EL(_ARABIC_LETTER_NOON) \ EL(_ARABIC_LETTER_HEH) \ EL(_ARABIC_LETTER_WAW) \ EL(_ARABIC_LETTER_ALEF_MAKSURA) \ EL(_ARABIC_LETTER_YEH) \ EL(_ARABIC_FATHATAN) \ EL(_ARABIC_DAMMATAN) \ EL(_ARABIC_KASRATAN) \ EL(_ARABIC_FATHA) \ EL(_ARABIC_DAMMA) \ EL(_ARABIC_KASRA) \ EL(_ARABIC_SHADDA) \ EL(_ARABIC_SUKUN) \ EL(_ARABIC_LETTER_PEH) \ EL(_ARABIC_LETTER_TTEH) \ EL(_ARABIC_LETTER_TCHEH) \ EL(_ARABIC_LETTER_AE) \ EL(_ARABIC_LETTER_VEH) \ EL(_ARABIC_LETTER_GAF) \ EL(_ARABIC_LETTER_DDAL) \ EL(_ARABIC_LETTER_RREH) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_ARABIC_LETTER_JEH) \ EL(_ARABIC_LETTER_YEH_BARREE) #endif /* TUTF_MAC_FARSI_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_gaelic.h����������������������������������������������������������������0000664�0000000�0000000�00000146137�13775351206�0017310�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_GAELIC_H #define TUTF_MAC_GAELIC_H #define T_MAC_GAELIC_CTRL_NULL 0x0000 #define T_MAC_GAELIC_CTRL_START_OF_HEADING 0x0001 #define T_MAC_GAELIC_CTRL_START_OF_TEXT 0x0002 #define T_MAC_GAELIC_CTRL_END_OF_TEXT 0x0003 #define T_MAC_GAELIC_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_GAELIC_CTRL_ENQUIRY 0x0005 #define T_MAC_GAELIC_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_GAELIC_CTRL_BELL 0x0007 #define T_MAC_GAELIC_CTRL_BACKSPACE 0x0008 #define T_MAC_GAELIC_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_GAELIC_CTRL_LINE_FEED 0x000A #define T_MAC_GAELIC_CTRL_LINE_TABULATION 0x000B #define T_MAC_GAELIC_CTRL_FORM_FEED 0x000C #define T_MAC_GAELIC_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_GAELIC_CTRL_SHIFT_OUT 0x000E #define T_MAC_GAELIC_CTRL_SHIFT_IN 0x000F #define T_MAC_GAELIC_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_GAELIC_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_GAELIC_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_GAELIC_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_GAELIC_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_GAELIC_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_GAELIC_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_GAELIC_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_GAELIC_CTRL_CANCEL 0x0018 #define T_MAC_GAELIC_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_GAELIC_CTRL_SUBSTITUTE 0x001A #define T_MAC_GAELIC_CTRL_ESCAPE 0x001B #define T_MAC_GAELIC_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_GAELIC_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_GAELIC_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_GAELIC_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_GAELIC_SPACE 0x0020 #define T_MAC_GAELIC_EXCLAMATION_MARK 0x0021 #define T_MAC_GAELIC_QUOTATION_MARK 0x0022 #define T_MAC_GAELIC_NUMBER_SIGN 0x0023 #define T_MAC_GAELIC_DOLLAR_SIGN 0x0024 #define T_MAC_GAELIC_PERCENT_SIGN 0x0025 #define T_MAC_GAELIC_AMPERSAND 0x0026 #define T_MAC_GAELIC_APOSTROPHE 0x0027 #define T_MAC_GAELIC_LEFT_PARENTHESIS 0x0028 #define T_MAC_GAELIC_RIGHT_PARENTHESIS 0x0029 #define T_MAC_GAELIC_ASTERISK 0x002A #define T_MAC_GAELIC_PLUS_SIGN 0x002B #define T_MAC_GAELIC_COMMA 0x002C #define T_MAC_GAELIC_HYPHEN_MINUS 0x002D #define T_MAC_GAELIC_FULL_STOP 0x002E #define T_MAC_GAELIC_SOLIDUS 0x002F #define T_MAC_GAELIC_DIGIT_ZERO 0x0030 #define T_MAC_GAELIC_DIGIT_ONE 0x0031 #define T_MAC_GAELIC_DIGIT_TWO 0x0032 #define T_MAC_GAELIC_DIGIT_THREE 0x0033 #define T_MAC_GAELIC_DIGIT_FOUR 0x0034 #define T_MAC_GAELIC_DIGIT_FIVE 0x0035 #define T_MAC_GAELIC_DIGIT_SIX 0x0036 #define T_MAC_GAELIC_DIGIT_SEVEN 0x0037 #define T_MAC_GAELIC_DIGIT_EIGHT 0x0038 #define T_MAC_GAELIC_DIGIT_NINE 0x0039 #define T_MAC_GAELIC_COLON 0x003A #define T_MAC_GAELIC_SEMICOLON 0x003B #define T_MAC_GAELIC_LESS_THAN_SIGN 0x003C #define T_MAC_GAELIC_EQUALS_SIGN 0x003D #define T_MAC_GAELIC_GREATER_THAN_SIGN 0x003E #define T_MAC_GAELIC_QUESTION_MARK 0x003F #define T_MAC_GAELIC_COMMERCIAL_AT 0x0040 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_GAELIC_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_GAELIC_REVERSE_SOLIDUS 0x005C #define T_MAC_GAELIC_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_GAELIC_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_GAELIC_LOW_LINE 0x005F #define T_MAC_GAELIC_GRAVE_ACCENT 0x0060 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_GAELIC_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_GAELIC_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_GAELIC_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_GAELIC_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_GAELIC_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_GAELIC_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_GAELIC_LEFT_CURLY_BRACKET 0x007B #define T_MAC_GAELIC_VERTICAL_LINE 0x007C #define T_MAC_GAELIC_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_GAELIC_TILDE 0x007E #define T_MAC_GAELIC_CTRL_DELETE 0x007F #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0081 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_GAELIC_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MAC_GAELIC_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MAC_GAELIC_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_GAELIC_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_GAELIC_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_GAELIC_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_GAELIC_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MAC_GAELIC_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_GAELIC_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_GAELIC_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_GAELIC_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_GAELIC_DAGGER 0x00A0 #define T_MAC_GAELIC_DEGREE_SIGN 0x00A1 #define T_MAC_GAELIC_CENT_SIGN 0x00A2 #define T_MAC_GAELIC_POUND_SIGN 0x00A3 #define T_MAC_GAELIC_SECTION_SIGN 0x00A4 #define T_MAC_GAELIC_BULLET 0x00A5 #define T_MAC_GAELIC_PILCROW_SIGN 0x00A6 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MAC_GAELIC_REGISTERED_SIGN 0x00A8 #define T_MAC_GAELIC_COPYRIGHT_SIGN 0x00A9 #define T_MAC_GAELIC_TRADE_MARK_SIGN 0x00AA #define T_MAC_GAELIC_ACUTE_ACCENT 0x00AB #define T_MAC_GAELIC_DIAERESIS 0x00AC #define T_MAC_GAELIC_NOT_EQUAL_TO 0x00AD #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_AE 0x00AE #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00AF #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_B_WITH_DOT_ABOVE 0x00B0 #define T_MAC_GAELIC_PLUS_MINUS_SIGN 0x00B1 #define T_MAC_GAELIC_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MAC_GAELIC_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_B_WITH_DOT_ABOVE 0x00B4 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE 0x00B5 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE 0x00B6 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_D_WITH_DOT_ABOVE 0x00B7 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_D_WITH_DOT_ABOVE 0x00B8 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_F_WITH_DOT_ABOVE 0x00B9 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_F_WITH_DOT_ABOVE 0x00BA #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE 0x00BB #define T_MAC_GAELIC_LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE 0x00BC #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_M_WITH_DOT_ABOVE 0x00BD #define T_MAC_GAELIC_LATIN_SMALL_LETTER_AE 0x00BE #define T_MAC_GAELIC_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00BF #define T_MAC_GAELIC_LATIN_SMALL_LETTER_M_WITH_DOT_ABOVE 0x00C0 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_P_WITH_DOT_ABOVE 0x00C1 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_P_WITH_DOT_ABOVE 0x00C2 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_R_WITH_LONG_LEG 0x00C3 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_LONG_S 0x00C5 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_S_WITH_DOT_ABOVE 0x00C6 #define T_MAC_GAELIC_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MAC_GAELIC_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MAC_GAELIC_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_GAELIC_NO_BREAK_SPACE 0x00CA #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00CB #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00CC #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MAC_GAELIC_LATIN_CAPITAL_LIGATURE_OE 0x00CE #define T_MAC_GAELIC_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MAC_GAELIC_EN_DASH 0x00D0 #define T_MAC_GAELIC_EM_DASH 0x00D1 #define T_MAC_GAELIC_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_GAELIC_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_GAELIC_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_GAELIC_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_S_WITH_DOT_ABOVE 0x00D6 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_LONG_S_WITH_DOT_ABOVE 0x00D7 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00D8 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00D9 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_T_WITH_DOT_ABOVE 0x00DA #define T_MAC_GAELIC_EURO_SIGN 0x00DB #define T_MAC_GAELIC_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x00DC #define T_MAC_GAELIC_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x00DD #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX 0x00DE #define T_MAC_GAELIC_LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX 0x00DF #define T_MAC_GAELIC_LATIN_SMALL_LETTER_T_WITH_DOT_ABOVE 0x00E0 #define T_MAC_GAELIC_MIDDLE_DOT 0x00E1 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_Y_WITH_GRAVE 0x00E2 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_Y_WITH_GRAVE 0x00E3 #define T_MAC_GAELIC_TIRONIAN_SIGN_ET 0x00E4 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00E5 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00E6 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00E8 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00E9 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00EB #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00EC #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00ED #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MAC_GAELIC_BLACK_CLUB_SUIT 0x00F0 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00F1 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00F3 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00F4 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_DOTLESS_I 0x00F5 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00F6 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00F7 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX 0x00F8 #define T_MAC_GAELIC_LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX 0x00F9 #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS 0x00FA #define T_MAC_GAELIC_LATIN_SMALL_LETTER_W_WITH_DIAERESIS 0x00FB #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_W_WITH_GRAVE 0x00FC #define T_MAC_GAELIC_LATIN_SMALL_LETTER_W_WITH_GRAVE 0x00FD #define T_MAC_GAELIC_LATIN_CAPITAL_LETTER_W_WITH_ACUTE 0x00FE #define T_MAC_GAELIC_LATIN_SMALL_LETTER_W_WITH_ACUTE 0x00FF /* list of all characters */ #define T_LIST_MAC_GAELIC(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_B_WITH_DOT_ABOVE) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LATIN_SMALL_LETTER_B_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_D_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_F_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_F_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_M_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_M_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_P_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_P_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_R_WITH_LONG_LEG) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_LONG_S) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_DOT_ABOVE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_S_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_LONG_S_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_DOT_ABOVE) \ EL(_EURO_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_T_WITH_DOT_ABOVE) \ EL(_MIDDLE_DOT) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_GRAVE) \ EL(_TIRONIAN_SIGN_ET) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_BLACK_CLUB_SUIT) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_W_WITH_ACUTE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_GAELIC(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_B_WITH_DOT_ABOVE) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LATIN_SMALL_LETTER_B_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_D_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_F_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_F_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_M_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_M_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_P_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_P_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_R_WITH_LONG_LEG) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_LATIN_SMALL_LETTER_LONG_S) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_DOT_ABOVE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_S_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_LONG_S_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_DOT_ABOVE) \ EL(_EURO_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_T_WITH_DOT_ABOVE) \ EL(_MIDDLE_DOT) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_GRAVE) \ EL(_TIRONIAN_SIGN_ET) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_BLACK_CLUB_SUIT) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_W_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_W_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_W_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_W_WITH_ACUTE) #endif /* TUTF_MAC_GAELIC_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_greek.h�����������������������������������������������������������������0000664�0000000�0000000�00000144747�13775351206�0017166�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_GREEK_H #define TUTF_MAC_GREEK_H #define T_MAC_GREEK_CTRL_NULL 0x0000 #define T_MAC_GREEK_CTRL_START_OF_HEADING 0x0001 #define T_MAC_GREEK_CTRL_START_OF_TEXT 0x0002 #define T_MAC_GREEK_CTRL_END_OF_TEXT 0x0003 #define T_MAC_GREEK_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_GREEK_CTRL_ENQUIRY 0x0005 #define T_MAC_GREEK_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_GREEK_CTRL_BELL 0x0007 #define T_MAC_GREEK_CTRL_BACKSPACE 0x0008 #define T_MAC_GREEK_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_GREEK_CTRL_LINE_FEED 0x000A #define T_MAC_GREEK_CTRL_LINE_TABULATION 0x000B #define T_MAC_GREEK_CTRL_FORM_FEED 0x000C #define T_MAC_GREEK_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_GREEK_CTRL_SHIFT_OUT 0x000E #define T_MAC_GREEK_CTRL_SHIFT_IN 0x000F #define T_MAC_GREEK_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_GREEK_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_GREEK_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_GREEK_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_GREEK_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_GREEK_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_GREEK_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_GREEK_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_GREEK_CTRL_CANCEL 0x0018 #define T_MAC_GREEK_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_GREEK_CTRL_SUBSTITUTE 0x001A #define T_MAC_GREEK_CTRL_ESCAPE 0x001B #define T_MAC_GREEK_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_GREEK_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_GREEK_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_GREEK_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_GREEK_SPACE 0x0020 #define T_MAC_GREEK_EXCLAMATION_MARK 0x0021 #define T_MAC_GREEK_QUOTATION_MARK 0x0022 #define T_MAC_GREEK_NUMBER_SIGN 0x0023 #define T_MAC_GREEK_DOLLAR_SIGN 0x0024 #define T_MAC_GREEK_PERCENT_SIGN 0x0025 #define T_MAC_GREEK_AMPERSAND 0x0026 #define T_MAC_GREEK_APOSTROPHE 0x0027 #define T_MAC_GREEK_LEFT_PARENTHESIS 0x0028 #define T_MAC_GREEK_RIGHT_PARENTHESIS 0x0029 #define T_MAC_GREEK_ASTERISK 0x002A #define T_MAC_GREEK_PLUS_SIGN 0x002B #define T_MAC_GREEK_COMMA 0x002C #define T_MAC_GREEK_HYPHEN_MINUS 0x002D #define T_MAC_GREEK_FULL_STOP 0x002E #define T_MAC_GREEK_SOLIDUS 0x002F #define T_MAC_GREEK_DIGIT_ZERO 0x0030 #define T_MAC_GREEK_DIGIT_ONE 0x0031 #define T_MAC_GREEK_DIGIT_TWO 0x0032 #define T_MAC_GREEK_DIGIT_THREE 0x0033 #define T_MAC_GREEK_DIGIT_FOUR 0x0034 #define T_MAC_GREEK_DIGIT_FIVE 0x0035 #define T_MAC_GREEK_DIGIT_SIX 0x0036 #define T_MAC_GREEK_DIGIT_SEVEN 0x0037 #define T_MAC_GREEK_DIGIT_EIGHT 0x0038 #define T_MAC_GREEK_DIGIT_NINE 0x0039 #define T_MAC_GREEK_COLON 0x003A #define T_MAC_GREEK_SEMICOLON 0x003B #define T_MAC_GREEK_LESS_THAN_SIGN 0x003C #define T_MAC_GREEK_EQUALS_SIGN 0x003D #define T_MAC_GREEK_GREATER_THAN_SIGN 0x003E #define T_MAC_GREEK_QUESTION_MARK 0x003F #define T_MAC_GREEK_COMMERCIAL_AT 0x0040 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_GREEK_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_GREEK_REVERSE_SOLIDUS 0x005C #define T_MAC_GREEK_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_GREEK_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_GREEK_LOW_LINE 0x005F #define T_MAC_GREEK_GRAVE_ACCENT 0x0060 #define T_MAC_GREEK_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_GREEK_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_GREEK_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_GREEK_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_GREEK_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_GREEK_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_GREEK_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_GREEK_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_GREEK_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_GREEK_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_GREEK_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_GREEK_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_GREEK_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_GREEK_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_GREEK_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_GREEK_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_GREEK_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_GREEK_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_GREEK_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_GREEK_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_GREEK_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_GREEK_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_GREEK_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_GREEK_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_GREEK_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_GREEK_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_GREEK_LEFT_CURLY_BRACKET 0x007B #define T_MAC_GREEK_VERTICAL_LINE 0x007C #define T_MAC_GREEK_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_GREEK_TILDE 0x007E #define T_MAC_GREEK_CTRL_DELETE 0x007F #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_GREEK_SUPERSCRIPT_ONE 0x0081 #define T_MAC_GREEK_SUPERSCRIPT_TWO 0x0082 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_GREEK_SUPERSCRIPT_THREE 0x0084 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_GREEK_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_GREEK_GREEK_DIALYTIKA_TONOS 0x0087 #define T_MAC_GREEK_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_GREEK_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_GREEK_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_GREEK_GREEK_TONOS 0x008B #define T_MAC_GREEK_DIAERESIS 0x008C #define T_MAC_GREEK_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_GREEK_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_GREEK_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_GREEK_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_GREEK_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_GREEK_POUND_SIGN 0x0092 #define T_MAC_GREEK_TRADE_MARK_SIGN 0x0093 #define T_MAC_GREEK_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_GREEK_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_GREEK_BULLET 0x0096 #define T_MAC_GREEK_VULGAR_FRACTION_ONE_HALF 0x0097 #define T_MAC_GREEK_PER_MILLE_SIGN 0x0098 #define T_MAC_GREEK_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_GREEK_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_GREEK_BROKEN_BAR 0x009B #define T_MAC_GREEK_EURO_SIGN 0x009C #define T_MAC_GREEK_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_GREEK_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_GREEK_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_GREEK_DAGGER 0x00A0 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_GAMMA 0x00A1 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_DELTA 0x00A2 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_THETA 0x00A3 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_LAMDA 0x00A4 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_XI 0x00A5 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_PI 0x00A6 #define T_MAC_GREEK_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MAC_GREEK_REGISTERED_SIGN 0x00A8 #define T_MAC_GREEK_COPYRIGHT_SIGN 0x00A9 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_SIGMA 0x00AA #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0x00AB #define T_MAC_GREEK_SECTION_SIGN 0x00AC #define T_MAC_GREEK_NOT_EQUAL_TO 0x00AD #define T_MAC_GREEK_DEGREE_SIGN 0x00AE #define T_MAC_GREEK_MIDDLE_DOT 0x00AF #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_ALPHA 0x00B0 #define T_MAC_GREEK_PLUS_MINUS_SIGN 0x00B1 #define T_MAC_GREEK_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MAC_GREEK_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_GREEK_YEN_SIGN 0x00B4 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_BETA 0x00B5 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_EPSILON 0x00B6 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_ZETA 0x00B7 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_ETA 0x00B8 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_IOTA 0x00B9 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_KAPPA 0x00BA #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_MU 0x00BB #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_PHI 0x00BC #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0x00BD #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_PSI 0x00BE #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_OMEGA 0x00BF #define T_MAC_GREEK_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0x00C0 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_NU 0x00C1 #define T_MAC_GREEK_NOT_SIGN 0x00C2 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_OMICRON 0x00C3 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_RHO 0x00C4 #define T_MAC_GREEK_ALMOST_EQUAL_TO 0x00C5 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_TAU 0x00C6 #define T_MAC_GREEK_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MAC_GREEK_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MAC_GREEK_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_GREEK_NO_BREAK_SPACE 0x00CA #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_UPSILON 0x00CB #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_CHI 0x00CC #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0x00CD #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0x00CE #define T_MAC_GREEK_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MAC_GREEK_EN_DASH 0x00D0 #define T_MAC_GREEK_HORIZONTAL_BAR 0x00D1 #define T_MAC_GREEK_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_GREEK_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_GREEK_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_GREEK_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_GREEK_DIVISION_SIGN 0x00D6 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0x00D7 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0x00D8 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0x00D9 #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0x00DA #define T_MAC_GREEK_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0x00DB #define T_MAC_GREEK_GREEK_SMALL_LETTER_ETA_WITH_TONOS 0x00DC #define T_MAC_GREEK_GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0x00DD #define T_MAC_GREEK_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0x00DE #define T_MAC_GREEK_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0x00DF #define T_MAC_GREEK_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0x00E0 #define T_MAC_GREEK_GREEK_SMALL_LETTER_ALPHA 0x00E1 #define T_MAC_GREEK_GREEK_SMALL_LETTER_BETA 0x00E2 #define T_MAC_GREEK_GREEK_SMALL_LETTER_PSI 0x00E3 #define T_MAC_GREEK_GREEK_SMALL_LETTER_DELTA 0x00E4 #define T_MAC_GREEK_GREEK_SMALL_LETTER_EPSILON 0x00E5 #define T_MAC_GREEK_GREEK_SMALL_LETTER_PHI 0x00E6 #define T_MAC_GREEK_GREEK_SMALL_LETTER_GAMMA 0x00E7 #define T_MAC_GREEK_GREEK_SMALL_LETTER_ETA 0x00E8 #define T_MAC_GREEK_GREEK_SMALL_LETTER_IOTA 0x00E9 #define T_MAC_GREEK_GREEK_SMALL_LETTER_XI 0x00EA #define T_MAC_GREEK_GREEK_SMALL_LETTER_KAPPA 0x00EB #define T_MAC_GREEK_GREEK_SMALL_LETTER_LAMDA 0x00EC #define T_MAC_GREEK_GREEK_SMALL_LETTER_MU 0x00ED #define T_MAC_GREEK_GREEK_SMALL_LETTER_NU 0x00EE #define T_MAC_GREEK_GREEK_SMALL_LETTER_OMICRON 0x00EF #define T_MAC_GREEK_GREEK_SMALL_LETTER_PI 0x00F0 #define T_MAC_GREEK_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0x00F1 #define T_MAC_GREEK_GREEK_SMALL_LETTER_RHO 0x00F2 #define T_MAC_GREEK_GREEK_SMALL_LETTER_SIGMA 0x00F3 #define T_MAC_GREEK_GREEK_SMALL_LETTER_TAU 0x00F4 #define T_MAC_GREEK_GREEK_SMALL_LETTER_THETA 0x00F5 #define T_MAC_GREEK_GREEK_SMALL_LETTER_OMEGA 0x00F6 #define T_MAC_GREEK_GREEK_SMALL_LETTER_FINAL_SIGMA 0x00F7 #define T_MAC_GREEK_GREEK_SMALL_LETTER_CHI 0x00F8 #define T_MAC_GREEK_GREEK_SMALL_LETTER_UPSILON 0x00F9 #define T_MAC_GREEK_GREEK_SMALL_LETTER_ZETA 0x00FA #define T_MAC_GREEK_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0x00FB #define T_MAC_GREEK_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0x00FC #define T_MAC_GREEK_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS 0x00FD #define T_MAC_GREEK_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS 0x00FE #define T_MAC_GREEK_SOFT_HYPHEN 0x00FF /* list of all characters */ #define T_LIST_MAC_GREEK(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_TWO) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_SUPERSCRIPT_THREE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_GREEK_DIALYTIKA_TONOS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_GREEK_TONOS) \ EL(_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_POUND_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_BULLET) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_BROKEN_BAR) \ EL(_EURO_SIGN) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_SECTION_SIGN) \ EL(_NOT_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_MIDDLE_DOT) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_NOT_SIGN) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_ALMOST_EQUAL_TO) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_HORIZONTAL_BAR) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS) \ EL(_SOFT_HYPHEN) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_GREEK(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_TWO) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_SUPERSCRIPT_THREE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_GREEK_DIALYTIKA_TONOS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_GREEK_TONOS) \ EL(_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_POUND_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_BULLET) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_BROKEN_BAR) \ EL(_EURO_SIGN) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_SECTION_SIGN) \ EL(_NOT_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_MIDDLE_DOT) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_NOT_SIGN) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_ALMOST_EQUAL_TO) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_HORIZONTAL_BAR) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS) \ EL(_SOFT_HYPHEN) #endif /* TUTF_MAC_GREEK_H */ �������������������������twin-0.9.0/include/Tutf/mac_gujarati.h��������������������������������������������������������������0000664�0000000�0000000�00000125050�13775351206�0017661�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_GUJARATI_H #define TUTF_MAC_GUJARATI_H #define T_MAC_GUJARATI_CTRL_NULL 0x0000 #define T_MAC_GUJARATI_CTRL_START_OF_HEADING 0x0001 #define T_MAC_GUJARATI_CTRL_START_OF_TEXT 0x0002 #define T_MAC_GUJARATI_CTRL_END_OF_TEXT 0x0003 #define T_MAC_GUJARATI_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_GUJARATI_CTRL_ENQUIRY 0x0005 #define T_MAC_GUJARATI_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_GUJARATI_CTRL_BELL 0x0007 #define T_MAC_GUJARATI_CTRL_BACKSPACE 0x0008 #define T_MAC_GUJARATI_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_GUJARATI_CTRL_LINE_FEED 0x000A #define T_MAC_GUJARATI_CTRL_LINE_TABULATION 0x000B #define T_MAC_GUJARATI_CTRL_FORM_FEED 0x000C #define T_MAC_GUJARATI_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_GUJARATI_CTRL_SHIFT_OUT 0x000E #define T_MAC_GUJARATI_CTRL_SHIFT_IN 0x000F #define T_MAC_GUJARATI_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_GUJARATI_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_GUJARATI_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_GUJARATI_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_GUJARATI_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_GUJARATI_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_GUJARATI_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_GUJARATI_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_GUJARATI_CTRL_CANCEL 0x0018 #define T_MAC_GUJARATI_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_GUJARATI_CTRL_SUBSTITUTE 0x001A #define T_MAC_GUJARATI_CTRL_ESCAPE 0x001B #define T_MAC_GUJARATI_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_GUJARATI_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_GUJARATI_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_GUJARATI_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_GUJARATI_SPACE 0x0020 #define T_MAC_GUJARATI_EXCLAMATION_MARK 0x0021 #define T_MAC_GUJARATI_QUOTATION_MARK 0x0022 #define T_MAC_GUJARATI_NUMBER_SIGN 0x0023 #define T_MAC_GUJARATI_DOLLAR_SIGN 0x0024 #define T_MAC_GUJARATI_PERCENT_SIGN 0x0025 #define T_MAC_GUJARATI_AMPERSAND 0x0026 #define T_MAC_GUJARATI_APOSTROPHE 0x0027 #define T_MAC_GUJARATI_LEFT_PARENTHESIS 0x0028 #define T_MAC_GUJARATI_RIGHT_PARENTHESIS 0x0029 #define T_MAC_GUJARATI_ASTERISK 0x002A #define T_MAC_GUJARATI_PLUS_SIGN 0x002B #define T_MAC_GUJARATI_COMMA 0x002C #define T_MAC_GUJARATI_HYPHEN_MINUS 0x002D #define T_MAC_GUJARATI_FULL_STOP 0x002E #define T_MAC_GUJARATI_SOLIDUS 0x002F #define T_MAC_GUJARATI_DIGIT_ZERO 0x0030 #define T_MAC_GUJARATI_DIGIT_ONE 0x0031 #define T_MAC_GUJARATI_DIGIT_TWO 0x0032 #define T_MAC_GUJARATI_DIGIT_THREE 0x0033 #define T_MAC_GUJARATI_DIGIT_FOUR 0x0034 #define T_MAC_GUJARATI_DIGIT_FIVE 0x0035 #define T_MAC_GUJARATI_DIGIT_SIX 0x0036 #define T_MAC_GUJARATI_DIGIT_SEVEN 0x0037 #define T_MAC_GUJARATI_DIGIT_EIGHT 0x0038 #define T_MAC_GUJARATI_DIGIT_NINE 0x0039 #define T_MAC_GUJARATI_COLON 0x003A #define T_MAC_GUJARATI_SEMICOLON 0x003B #define T_MAC_GUJARATI_LESS_THAN_SIGN 0x003C #define T_MAC_GUJARATI_EQUALS_SIGN 0x003D #define T_MAC_GUJARATI_GREATER_THAN_SIGN 0x003E #define T_MAC_GUJARATI_QUESTION_MARK 0x003F #define T_MAC_GUJARATI_COMMERCIAL_AT 0x0040 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_GUJARATI_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_GUJARATI_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_GUJARATI_REVERSE_SOLIDUS 0x005C #define T_MAC_GUJARATI_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_GUJARATI_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_GUJARATI_LOW_LINE 0x005F #define T_MAC_GUJARATI_GRAVE_ACCENT 0x0060 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_GUJARATI_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_GUJARATI_LEFT_CURLY_BRACKET 0x007B #define T_MAC_GUJARATI_VERTICAL_LINE 0x007C #define T_MAC_GUJARATI_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_GUJARATI_TILDE 0x007E #define T_MAC_GUJARATI_CTRL_DELETE 0x007F #define T_MAC_GUJARATI_MULTIPLICATION_SIGN 0x0080 #define T_MAC_GUJARATI_MINUS_SIGN 0x0081 #define T_MAC_GUJARATI_EN_DASH 0x0082 #define T_MAC_GUJARATI_EM_DASH 0x0083 #define T_MAC_GUJARATI_LEFT_SINGLE_QUOTATION_MARK 0x0084 #define T_MAC_GUJARATI_RIGHT_SINGLE_QUOTATION_MARK 0x0085 #define T_MAC_GUJARATI_HORIZONTAL_ELLIPSIS 0x0086 #define T_MAC_GUJARATI_BULLET 0x0087 #define T_MAC_GUJARATI_COPYRIGHT_SIGN 0x0088 #define T_MAC_GUJARATI_REGISTERED_SIGN 0x0089 #define T_MAC_GUJARATI_TRADE_MARK_SIGN 0x008A #define T_MAC_GUJARATI_UNDEFINED_008B 0x008B #define T_MAC_GUJARATI_UNDEFINED_008C 0x008C #define T_MAC_GUJARATI_UNDEFINED_008D 0x008D #define T_MAC_GUJARATI_UNDEFINED_008E 0x008E #define T_MAC_GUJARATI_UNDEFINED_008F 0x008F #define T_MAC_GUJARATI_DEVANAGARI_DOUBLE_DANDA 0x0090 #define T_MAC_GUJARATI_UNDEFINED_0091 0x0091 #define T_MAC_GUJARATI_UNDEFINED_0092 0x0092 #define T_MAC_GUJARATI_UNDEFINED_0093 0x0093 #define T_MAC_GUJARATI_UNDEFINED_0094 0x0094 #define T_MAC_GUJARATI_UNDEFINED_0095 0x0095 #define T_MAC_GUJARATI_UNDEFINED_0096 0x0096 #define T_MAC_GUJARATI_UNDEFINED_0097 0x0097 #define T_MAC_GUJARATI_UNDEFINED_0098 0x0098 #define T_MAC_GUJARATI_UNDEFINED_0099 0x0099 #define T_MAC_GUJARATI_UNDEFINED_009A 0x009A #define T_MAC_GUJARATI_UNDEFINED_009B 0x009B #define T_MAC_GUJARATI_UNDEFINED_009C 0x009C #define T_MAC_GUJARATI_UNDEFINED_009D 0x009D #define T_MAC_GUJARATI_UNDEFINED_009E 0x009E #define T_MAC_GUJARATI_UNDEFINED_009F 0x009F #define T_MAC_GUJARATI_UNDEFINED_00A0 0x00A0 #define T_MAC_GUJARATI_GUJARATI_SIGN_CANDRABINDU 0x00A1 #define T_MAC_GUJARATI_GUJARATI_SIGN_ANUSVARA 0x00A2 #define T_MAC_GUJARATI_GUJARATI_SIGN_VISARGA 0x00A3 #define T_MAC_GUJARATI_GUJARATI_LETTER_A 0x00A4 #define T_MAC_GUJARATI_GUJARATI_LETTER_AA 0x00A5 #define T_MAC_GUJARATI_GUJARATI_LETTER_I 0x00A6 #define T_MAC_GUJARATI_GUJARATI_LETTER_II 0x00A7 #define T_MAC_GUJARATI_GUJARATI_LETTER_U 0x00A8 #define T_MAC_GUJARATI_GUJARATI_LETTER_UU 0x00A9 #define T_MAC_GUJARATI_GUJARATI_LETTER_VOCALIC_R 0x00AA #define T_MAC_GUJARATI_UNDEFINED_00AB 0x00AB #define T_MAC_GUJARATI_GUJARATI_LETTER_E 0x00AC #define T_MAC_GUJARATI_GUJARATI_LETTER_AI 0x00AD #define T_MAC_GUJARATI_GUJARATI_VOWEL_CANDRA_E 0x00AE #define T_MAC_GUJARATI_UNDEFINED_00AF 0x00AF #define T_MAC_GUJARATI_GUJARATI_LETTER_O 0x00B0 #define T_MAC_GUJARATI_GUJARATI_LETTER_AU 0x00B1 #define T_MAC_GUJARATI_GUJARATI_VOWEL_CANDRA_O 0x00B2 #define T_MAC_GUJARATI_GUJARATI_LETTER_KA 0x00B3 #define T_MAC_GUJARATI_GUJARATI_LETTER_KHA 0x00B4 #define T_MAC_GUJARATI_GUJARATI_LETTER_GA 0x00B5 #define T_MAC_GUJARATI_GUJARATI_LETTER_GHA 0x00B6 #define T_MAC_GUJARATI_GUJARATI_LETTER_NGA 0x00B7 #define T_MAC_GUJARATI_GUJARATI_LETTER_CA 0x00B8 #define T_MAC_GUJARATI_GUJARATI_LETTER_CHA 0x00B9 #define T_MAC_GUJARATI_GUJARATI_LETTER_JA 0x00BA #define T_MAC_GUJARATI_GUJARATI_LETTER_JHA 0x00BB #define T_MAC_GUJARATI_GUJARATI_LETTER_NYA 0x00BC #define T_MAC_GUJARATI_GUJARATI_LETTER_TTA 0x00BD #define T_MAC_GUJARATI_GUJARATI_LETTER_TTHA 0x00BE #define T_MAC_GUJARATI_GUJARATI_LETTER_DDA 0x00BF #define T_MAC_GUJARATI_GUJARATI_LETTER_DDHA 0x00C0 #define T_MAC_GUJARATI_GUJARATI_LETTER_NNA 0x00C1 #define T_MAC_GUJARATI_GUJARATI_LETTER_TA 0x00C2 #define T_MAC_GUJARATI_GUJARATI_LETTER_THA 0x00C3 #define T_MAC_GUJARATI_GUJARATI_LETTER_DA 0x00C4 #define T_MAC_GUJARATI_GUJARATI_LETTER_DHA 0x00C5 #define T_MAC_GUJARATI_GUJARATI_LETTER_NA 0x00C6 #define T_MAC_GUJARATI_UNDEFINED_00C7 0x00C7 #define T_MAC_GUJARATI_GUJARATI_LETTER_PA 0x00C8 #define T_MAC_GUJARATI_GUJARATI_LETTER_PHA 0x00C9 #define T_MAC_GUJARATI_GUJARATI_LETTER_BA 0x00CA #define T_MAC_GUJARATI_GUJARATI_LETTER_BHA 0x00CB #define T_MAC_GUJARATI_GUJARATI_LETTER_MA 0x00CC #define T_MAC_GUJARATI_GUJARATI_LETTER_YA 0x00CD #define T_MAC_GUJARATI_UNDEFINED_00CE 0x00CE #define T_MAC_GUJARATI_GUJARATI_LETTER_RA 0x00CF #define T_MAC_GUJARATI_UNDEFINED_00D0 0x00D0 #define T_MAC_GUJARATI_GUJARATI_LETTER_LA 0x00D1 #define T_MAC_GUJARATI_GUJARATI_LETTER_LLA 0x00D2 #define T_MAC_GUJARATI_UNDEFINED_00D3 0x00D3 #define T_MAC_GUJARATI_GUJARATI_LETTER_VA 0x00D4 #define T_MAC_GUJARATI_GUJARATI_LETTER_SHA 0x00D5 #define T_MAC_GUJARATI_GUJARATI_LETTER_SSA 0x00D6 #define T_MAC_GUJARATI_GUJARATI_LETTER_SA 0x00D7 #define T_MAC_GUJARATI_GUJARATI_LETTER_HA 0x00D8 #define T_MAC_GUJARATI_LEFT_TO_RIGHT_MARK 0x00D9 #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_AA 0x00DA #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_I 0x00DB #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_II 0x00DC #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_U 0x00DD #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_UU 0x00DE #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_VOCALIC_R 0x00DF #define T_MAC_GUJARATI_UNDEFINED_00E0 0x00E0 #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_E 0x00E1 #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_AI 0x00E2 #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_CANDRA_E 0x00E3 #define T_MAC_GUJARATI_UNDEFINED_00E4 0x00E4 #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_O 0x00E5 #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_AU 0x00E6 #define T_MAC_GUJARATI_GUJARATI_VOWEL_SIGN_CANDRA_O 0x00E7 #define T_MAC_GUJARATI_GUJARATI_SIGN_VIRAMA 0x00E8 #define T_MAC_GUJARATI_GUJARATI_SIGN_NUKTA 0x00E9 #define T_MAC_GUJARATI_DEVANAGARI_DANDA 0x00EA #define T_MAC_GUJARATI_UNDEFINED_00EB 0x00EB #define T_MAC_GUJARATI_UNDEFINED_00EC 0x00EC #define T_MAC_GUJARATI_UNDEFINED_00ED 0x00ED #define T_MAC_GUJARATI_UNDEFINED_00EE 0x00EE #define T_MAC_GUJARATI_UNDEFINED_00EF 0x00EF #define T_MAC_GUJARATI_UNDEFINED_00F0 0x00F0 #define T_MAC_GUJARATI_GUJARATI_DIGIT_ZERO 0x00F1 #define T_MAC_GUJARATI_GUJARATI_DIGIT_ONE 0x00F2 #define T_MAC_GUJARATI_GUJARATI_DIGIT_TWO 0x00F3 #define T_MAC_GUJARATI_GUJARATI_DIGIT_THREE 0x00F4 #define T_MAC_GUJARATI_GUJARATI_DIGIT_FOUR 0x00F5 #define T_MAC_GUJARATI_GUJARATI_DIGIT_FIVE 0x00F6 #define T_MAC_GUJARATI_GUJARATI_DIGIT_SIX 0x00F7 #define T_MAC_GUJARATI_GUJARATI_DIGIT_SEVEN 0x00F8 #define T_MAC_GUJARATI_GUJARATI_DIGIT_EIGHT 0x00F9 #define T_MAC_GUJARATI_GUJARATI_DIGIT_NINE 0x00FA #define T_MAC_GUJARATI_UNDEFINED_00FB 0x00FB #define T_MAC_GUJARATI_UNDEFINED_00FC 0x00FC #define T_MAC_GUJARATI_UNDEFINED_00FD 0x00FD #define T_MAC_GUJARATI_UNDEFINED_00FE 0x00FE #define T_MAC_GUJARATI_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_MAC_GUJARATI(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_MULTIPLICATION_SIGN) \ EL(_MINUS_SIGN) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_BULLET) \ EL(_COPYRIGHT_SIGN) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_DEVANAGARI_DOUBLE_DANDA) \ EL(_GUJARATI_SIGN_CANDRABINDU) \ EL(_GUJARATI_SIGN_ANUSVARA) \ EL(_GUJARATI_SIGN_VISARGA) \ EL(_GUJARATI_LETTER_A) \ EL(_GUJARATI_LETTER_AA) \ EL(_GUJARATI_LETTER_I) \ EL(_GUJARATI_LETTER_II) \ EL(_GUJARATI_LETTER_U) \ EL(_GUJARATI_LETTER_UU) \ EL(_GUJARATI_LETTER_VOCALIC_R) \ EL(_GUJARATI_LETTER_E) \ EL(_GUJARATI_LETTER_AI) \ EL(_GUJARATI_VOWEL_CANDRA_E) \ EL(_GUJARATI_LETTER_O) \ EL(_GUJARATI_LETTER_AU) \ EL(_GUJARATI_VOWEL_CANDRA_O) \ EL(_GUJARATI_LETTER_KA) \ EL(_GUJARATI_LETTER_KHA) \ EL(_GUJARATI_LETTER_GA) \ EL(_GUJARATI_LETTER_GHA) \ EL(_GUJARATI_LETTER_NGA) \ EL(_GUJARATI_LETTER_CA) \ EL(_GUJARATI_LETTER_CHA) \ EL(_GUJARATI_LETTER_JA) \ EL(_GUJARATI_LETTER_JHA) \ EL(_GUJARATI_LETTER_NYA) \ EL(_GUJARATI_LETTER_TTA) \ EL(_GUJARATI_LETTER_TTHA) \ EL(_GUJARATI_LETTER_DDA) \ EL(_GUJARATI_LETTER_DDHA) \ EL(_GUJARATI_LETTER_NNA) \ EL(_GUJARATI_LETTER_TA) \ EL(_GUJARATI_LETTER_THA) \ EL(_GUJARATI_LETTER_DA) \ EL(_GUJARATI_LETTER_DHA) \ EL(_GUJARATI_LETTER_NA) \ EL(_GUJARATI_LETTER_PA) \ EL(_GUJARATI_LETTER_PHA) \ EL(_GUJARATI_LETTER_BA) \ EL(_GUJARATI_LETTER_BHA) \ EL(_GUJARATI_LETTER_MA) \ EL(_GUJARATI_LETTER_YA) \ EL(_GUJARATI_LETTER_RA) \ EL(_GUJARATI_LETTER_LA) \ EL(_GUJARATI_LETTER_LLA) \ EL(_GUJARATI_LETTER_VA) \ EL(_GUJARATI_LETTER_SHA) \ EL(_GUJARATI_LETTER_SSA) \ EL(_GUJARATI_LETTER_SA) \ EL(_GUJARATI_LETTER_HA) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_GUJARATI_VOWEL_SIGN_AA) \ EL(_GUJARATI_VOWEL_SIGN_I) \ EL(_GUJARATI_VOWEL_SIGN_II) \ EL(_GUJARATI_VOWEL_SIGN_U) \ EL(_GUJARATI_VOWEL_SIGN_UU) \ EL(_GUJARATI_VOWEL_SIGN_VOCALIC_R) \ EL(_GUJARATI_VOWEL_SIGN_E) \ EL(_GUJARATI_VOWEL_SIGN_AI) \ EL(_GUJARATI_VOWEL_SIGN_CANDRA_E) \ EL(_GUJARATI_VOWEL_SIGN_O) \ EL(_GUJARATI_VOWEL_SIGN_AU) \ EL(_GUJARATI_VOWEL_SIGN_CANDRA_O) \ EL(_GUJARATI_SIGN_VIRAMA) \ EL(_GUJARATI_SIGN_NUKTA) \ EL(_DEVANAGARI_DANDA) \ EL(_GUJARATI_DIGIT_ZERO) \ EL(_GUJARATI_DIGIT_ONE) \ EL(_GUJARATI_DIGIT_TWO) \ EL(_GUJARATI_DIGIT_THREE) \ EL(_GUJARATI_DIGIT_FOUR) \ EL(_GUJARATI_DIGIT_FIVE) \ EL(_GUJARATI_DIGIT_SIX) \ EL(_GUJARATI_DIGIT_SEVEN) \ EL(_GUJARATI_DIGIT_EIGHT) \ EL(_GUJARATI_DIGIT_NINE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_GUJARATI(EL) \ EL(_MULTIPLICATION_SIGN) \ EL(_MINUS_SIGN) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_BULLET) \ EL(_COPYRIGHT_SIGN) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_DEVANAGARI_DOUBLE_DANDA) \ EL(_GUJARATI_SIGN_CANDRABINDU) \ EL(_GUJARATI_SIGN_ANUSVARA) \ EL(_GUJARATI_SIGN_VISARGA) \ EL(_GUJARATI_LETTER_A) \ EL(_GUJARATI_LETTER_AA) \ EL(_GUJARATI_LETTER_I) \ EL(_GUJARATI_LETTER_II) \ EL(_GUJARATI_LETTER_U) \ EL(_GUJARATI_LETTER_UU) \ EL(_GUJARATI_LETTER_VOCALIC_R) \ EL(_GUJARATI_LETTER_E) \ EL(_GUJARATI_LETTER_AI) \ EL(_GUJARATI_VOWEL_CANDRA_E) \ EL(_GUJARATI_LETTER_O) \ EL(_GUJARATI_LETTER_AU) \ EL(_GUJARATI_VOWEL_CANDRA_O) \ EL(_GUJARATI_LETTER_KA) \ EL(_GUJARATI_LETTER_KHA) \ EL(_GUJARATI_LETTER_GA) \ EL(_GUJARATI_LETTER_GHA) \ EL(_GUJARATI_LETTER_NGA) \ EL(_GUJARATI_LETTER_CA) \ EL(_GUJARATI_LETTER_CHA) \ EL(_GUJARATI_LETTER_JA) \ EL(_GUJARATI_LETTER_JHA) \ EL(_GUJARATI_LETTER_NYA) \ EL(_GUJARATI_LETTER_TTA) \ EL(_GUJARATI_LETTER_TTHA) \ EL(_GUJARATI_LETTER_DDA) \ EL(_GUJARATI_LETTER_DDHA) \ EL(_GUJARATI_LETTER_NNA) \ EL(_GUJARATI_LETTER_TA) \ EL(_GUJARATI_LETTER_THA) \ EL(_GUJARATI_LETTER_DA) \ EL(_GUJARATI_LETTER_DHA) \ EL(_GUJARATI_LETTER_NA) \ EL(_GUJARATI_LETTER_PA) \ EL(_GUJARATI_LETTER_PHA) \ EL(_GUJARATI_LETTER_BA) \ EL(_GUJARATI_LETTER_BHA) \ EL(_GUJARATI_LETTER_MA) \ EL(_GUJARATI_LETTER_YA) \ EL(_GUJARATI_LETTER_RA) \ EL(_GUJARATI_LETTER_LA) \ EL(_GUJARATI_LETTER_LLA) \ EL(_GUJARATI_LETTER_VA) \ EL(_GUJARATI_LETTER_SHA) \ EL(_GUJARATI_LETTER_SSA) \ EL(_GUJARATI_LETTER_SA) \ EL(_GUJARATI_LETTER_HA) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_GUJARATI_VOWEL_SIGN_AA) \ EL(_GUJARATI_VOWEL_SIGN_I) \ EL(_GUJARATI_VOWEL_SIGN_II) \ EL(_GUJARATI_VOWEL_SIGN_U) \ EL(_GUJARATI_VOWEL_SIGN_UU) \ EL(_GUJARATI_VOWEL_SIGN_VOCALIC_R) \ EL(_GUJARATI_VOWEL_SIGN_E) \ EL(_GUJARATI_VOWEL_SIGN_AI) \ EL(_GUJARATI_VOWEL_SIGN_CANDRA_E) \ EL(_GUJARATI_VOWEL_SIGN_O) \ EL(_GUJARATI_VOWEL_SIGN_AU) \ EL(_GUJARATI_VOWEL_SIGN_CANDRA_O) \ EL(_GUJARATI_SIGN_VIRAMA) \ EL(_GUJARATI_SIGN_NUKTA) \ EL(_DEVANAGARI_DANDA) \ EL(_GUJARATI_DIGIT_ZERO) \ EL(_GUJARATI_DIGIT_ONE) \ EL(_GUJARATI_DIGIT_TWO) \ EL(_GUJARATI_DIGIT_THREE) \ EL(_GUJARATI_DIGIT_FOUR) \ EL(_GUJARATI_DIGIT_FIVE) \ EL(_GUJARATI_DIGIT_SIX) \ EL(_GUJARATI_DIGIT_SEVEN) \ EL(_GUJARATI_DIGIT_EIGHT) \ EL(_GUJARATI_DIGIT_NINE) #endif /* TUTF_MAC_GUJARATI_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_gurmukhi.h��������������������������������������������������������������0000664�0000000�0000000�00000122416�13775351206�0017711�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_GURMUKHI_H #define TUTF_MAC_GURMUKHI_H #define T_MAC_GURMUKHI_CTRL_NULL 0x0000 #define T_MAC_GURMUKHI_CTRL_START_OF_HEADING 0x0001 #define T_MAC_GURMUKHI_CTRL_START_OF_TEXT 0x0002 #define T_MAC_GURMUKHI_CTRL_END_OF_TEXT 0x0003 #define T_MAC_GURMUKHI_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_GURMUKHI_CTRL_ENQUIRY 0x0005 #define T_MAC_GURMUKHI_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_GURMUKHI_CTRL_BELL 0x0007 #define T_MAC_GURMUKHI_CTRL_BACKSPACE 0x0008 #define T_MAC_GURMUKHI_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_GURMUKHI_CTRL_LINE_FEED 0x000A #define T_MAC_GURMUKHI_CTRL_LINE_TABULATION 0x000B #define T_MAC_GURMUKHI_CTRL_FORM_FEED 0x000C #define T_MAC_GURMUKHI_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_GURMUKHI_CTRL_SHIFT_OUT 0x000E #define T_MAC_GURMUKHI_CTRL_SHIFT_IN 0x000F #define T_MAC_GURMUKHI_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_GURMUKHI_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_GURMUKHI_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_GURMUKHI_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_GURMUKHI_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_GURMUKHI_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_GURMUKHI_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_GURMUKHI_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_GURMUKHI_CTRL_CANCEL 0x0018 #define T_MAC_GURMUKHI_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_GURMUKHI_CTRL_SUBSTITUTE 0x001A #define T_MAC_GURMUKHI_CTRL_ESCAPE 0x001B #define T_MAC_GURMUKHI_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_GURMUKHI_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_GURMUKHI_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_GURMUKHI_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_GURMUKHI_SPACE 0x0020 #define T_MAC_GURMUKHI_EXCLAMATION_MARK 0x0021 #define T_MAC_GURMUKHI_QUOTATION_MARK 0x0022 #define T_MAC_GURMUKHI_NUMBER_SIGN 0x0023 #define T_MAC_GURMUKHI_DOLLAR_SIGN 0x0024 #define T_MAC_GURMUKHI_PERCENT_SIGN 0x0025 #define T_MAC_GURMUKHI_AMPERSAND 0x0026 #define T_MAC_GURMUKHI_APOSTROPHE 0x0027 #define T_MAC_GURMUKHI_LEFT_PARENTHESIS 0x0028 #define T_MAC_GURMUKHI_RIGHT_PARENTHESIS 0x0029 #define T_MAC_GURMUKHI_ASTERISK 0x002A #define T_MAC_GURMUKHI_PLUS_SIGN 0x002B #define T_MAC_GURMUKHI_COMMA 0x002C #define T_MAC_GURMUKHI_HYPHEN_MINUS 0x002D #define T_MAC_GURMUKHI_FULL_STOP 0x002E #define T_MAC_GURMUKHI_SOLIDUS 0x002F #define T_MAC_GURMUKHI_DIGIT_ZERO 0x0030 #define T_MAC_GURMUKHI_DIGIT_ONE 0x0031 #define T_MAC_GURMUKHI_DIGIT_TWO 0x0032 #define T_MAC_GURMUKHI_DIGIT_THREE 0x0033 #define T_MAC_GURMUKHI_DIGIT_FOUR 0x0034 #define T_MAC_GURMUKHI_DIGIT_FIVE 0x0035 #define T_MAC_GURMUKHI_DIGIT_SIX 0x0036 #define T_MAC_GURMUKHI_DIGIT_SEVEN 0x0037 #define T_MAC_GURMUKHI_DIGIT_EIGHT 0x0038 #define T_MAC_GURMUKHI_DIGIT_NINE 0x0039 #define T_MAC_GURMUKHI_COLON 0x003A #define T_MAC_GURMUKHI_SEMICOLON 0x003B #define T_MAC_GURMUKHI_LESS_THAN_SIGN 0x003C #define T_MAC_GURMUKHI_EQUALS_SIGN 0x003D #define T_MAC_GURMUKHI_GREATER_THAN_SIGN 0x003E #define T_MAC_GURMUKHI_QUESTION_MARK 0x003F #define T_MAC_GURMUKHI_COMMERCIAL_AT 0x0040 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_GURMUKHI_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_GURMUKHI_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_GURMUKHI_REVERSE_SOLIDUS 0x005C #define T_MAC_GURMUKHI_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_GURMUKHI_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_GURMUKHI_LOW_LINE 0x005F #define T_MAC_GURMUKHI_GRAVE_ACCENT 0x0060 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_GURMUKHI_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_GURMUKHI_LEFT_CURLY_BRACKET 0x007B #define T_MAC_GURMUKHI_VERTICAL_LINE 0x007C #define T_MAC_GURMUKHI_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_GURMUKHI_TILDE 0x007E #define T_MAC_GURMUKHI_CTRL_DELETE 0x007F #define T_MAC_GURMUKHI_MULTIPLICATION_SIGN 0x0080 #define T_MAC_GURMUKHI_MINUS_SIGN 0x0081 #define T_MAC_GURMUKHI_EN_DASH 0x0082 #define T_MAC_GURMUKHI_EM_DASH 0x0083 #define T_MAC_GURMUKHI_LEFT_SINGLE_QUOTATION_MARK 0x0084 #define T_MAC_GURMUKHI_RIGHT_SINGLE_QUOTATION_MARK 0x0085 #define T_MAC_GURMUKHI_HORIZONTAL_ELLIPSIS 0x0086 #define T_MAC_GURMUKHI_BULLET 0x0087 #define T_MAC_GURMUKHI_COPYRIGHT_SIGN 0x0088 #define T_MAC_GURMUKHI_REGISTERED_SIGN 0x0089 #define T_MAC_GURMUKHI_TRADE_MARK_SIGN 0x008A #define T_MAC_GURMUKHI_UNDEFINED_008B 0x008B #define T_MAC_GURMUKHI_UNDEFINED_008C 0x008C #define T_MAC_GURMUKHI_UNDEFINED_008D 0x008D #define T_MAC_GURMUKHI_UNDEFINED_008E 0x008E #define T_MAC_GURMUKHI_UNDEFINED_008F 0x008F #define T_MAC_GURMUKHI_GURMUKHI_ADDAK 0x0090 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_RRA 0x0091 #define T_MAC_GURMUKHI_GURMUKHI_URA 0x0092 #define T_MAC_GURMUKHI_GURMUKHI_IRI 0x0093 #define T_MAC_GURMUKHI_GURMUKHI_EK_ONKAR 0x0094 #define T_MAC_GURMUKHI_UNDEFINED_0095 0x0095 #define T_MAC_GURMUKHI_UNDEFINED_0096 0x0096 #define T_MAC_GURMUKHI_UNDEFINED_0097 0x0097 #define T_MAC_GURMUKHI_UNDEFINED_0098 0x0098 #define T_MAC_GURMUKHI_UNDEFINED_0099 0x0099 #define T_MAC_GURMUKHI_UNDEFINED_009A 0x009A #define T_MAC_GURMUKHI_UNDEFINED_009B 0x009B #define T_MAC_GURMUKHI_UNDEFINED_009C 0x009C #define T_MAC_GURMUKHI_UNDEFINED_009D 0x009D #define T_MAC_GURMUKHI_UNDEFINED_009E 0x009E #define T_MAC_GURMUKHI_UNDEFINED_009F 0x009F #define T_MAC_GURMUKHI_UNDEFINED_00A0 0x00A0 #define T_MAC_GURMUKHI_UNDEFINED_00A1 0x00A1 #define T_MAC_GURMUKHI_GURMUKHI_SIGN_BINDI 0x00A2 #define T_MAC_GURMUKHI_UNDEFINED_00A3 0x00A3 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_A 0x00A4 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_AA 0x00A5 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_I 0x00A6 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_II 0x00A7 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_U 0x00A8 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_UU 0x00A9 #define T_MAC_GURMUKHI_UNDEFINED_00AA 0x00AA #define T_MAC_GURMUKHI_UNDEFINED_00AB 0x00AB #define T_MAC_GURMUKHI_GURMUKHI_LETTER_EE 0x00AC #define T_MAC_GURMUKHI_GURMUKHI_LETTER_AI 0x00AD #define T_MAC_GURMUKHI_UNDEFINED_00AE 0x00AE #define T_MAC_GURMUKHI_UNDEFINED_00AF 0x00AF #define T_MAC_GURMUKHI_GURMUKHI_LETTER_OO 0x00B0 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_AU 0x00B1 #define T_MAC_GURMUKHI_UNDEFINED_00B2 0x00B2 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_KA 0x00B3 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_KHA 0x00B4 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_GA 0x00B5 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_GHA 0x00B6 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_NGA 0x00B7 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_CA 0x00B8 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_CHA 0x00B9 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_JA 0x00BA #define T_MAC_GURMUKHI_GURMUKHI_LETTER_JHA 0x00BB #define T_MAC_GURMUKHI_GURMUKHI_LETTER_NYA 0x00BC #define T_MAC_GURMUKHI_GURMUKHI_LETTER_TTA 0x00BD #define T_MAC_GURMUKHI_GURMUKHI_LETTER_TTHA 0x00BE #define T_MAC_GURMUKHI_GURMUKHI_LETTER_DDA 0x00BF #define T_MAC_GURMUKHI_GURMUKHI_LETTER_DDHA 0x00C0 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_NNA 0x00C1 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_TA 0x00C2 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_THA 0x00C3 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_DA 0x00C4 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_DHA 0x00C5 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_NA 0x00C6 #define T_MAC_GURMUKHI_UNDEFINED_00C7 0x00C7 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_PA 0x00C8 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_PHA 0x00C9 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_BA 0x00CA #define T_MAC_GURMUKHI_GURMUKHI_LETTER_BHA 0x00CB #define T_MAC_GURMUKHI_GURMUKHI_LETTER_MA 0x00CC #define T_MAC_GURMUKHI_GURMUKHI_LETTER_YA 0x00CD #define T_MAC_GURMUKHI_UNDEFINED_00CE 0x00CE #define T_MAC_GURMUKHI_GURMUKHI_LETTER_RA 0x00CF #define T_MAC_GURMUKHI_UNDEFINED_00D0 0x00D0 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_LA 0x00D1 #define T_MAC_GURMUKHI_UNDEFINED_00D2 0x00D2 #define T_MAC_GURMUKHI_UNDEFINED_00D3 0x00D3 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_VA 0x00D4 #define T_MAC_GURMUKHI_OLD_HUNGARIAN_SMALL_LETTER_AK 0x00D5 #define T_MAC_GURMUKHI_UNDEFINED_00D6 0x00D6 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_SA 0x00D7 #define T_MAC_GURMUKHI_GURMUKHI_LETTER_HA 0x00D8 #define T_MAC_GURMUKHI_LEFT_TO_RIGHT_MARK 0x00D9 #define T_MAC_GURMUKHI_GURMUKHI_VOWEL_SIGN_AA 0x00DA #define T_MAC_GURMUKHI_GURMUKHI_VOWEL_SIGN_I 0x00DB #define T_MAC_GURMUKHI_GURMUKHI_VOWEL_SIGN_II 0x00DC #define T_MAC_GURMUKHI_GURMUKHI_VOWEL_SIGN_U 0x00DD #define T_MAC_GURMUKHI_GURMUKHI_VOWEL_SIGN_UU 0x00DE #define T_MAC_GURMUKHI_UNDEFINED_00DF 0x00DF #define T_MAC_GURMUKHI_UNDEFINED_00E0 0x00E0 #define T_MAC_GURMUKHI_GURMUKHI_VOWEL_SIGN_EE 0x00E1 #define T_MAC_GURMUKHI_GURMUKHI_VOWEL_SIGN_AI 0x00E2 #define T_MAC_GURMUKHI_UNDEFINED_00E3 0x00E3 #define T_MAC_GURMUKHI_UNDEFINED_00E4 0x00E4 #define T_MAC_GURMUKHI_GURMUKHI_VOWEL_SIGN_OO 0x00E5 #define T_MAC_GURMUKHI_GURMUKHI_VOWEL_SIGN_AU 0x00E6 #define T_MAC_GURMUKHI_UNDEFINED_00E7 0x00E7 #define T_MAC_GURMUKHI_GURMUKHI_SIGN_VIRAMA 0x00E8 #define T_MAC_GURMUKHI_GURMUKHI_SIGN_NUKTA 0x00E9 #define T_MAC_GURMUKHI_DEVANAGARI_DANDA 0x00EA #define T_MAC_GURMUKHI_UNDEFINED_00EB 0x00EB #define T_MAC_GURMUKHI_UNDEFINED_00EC 0x00EC #define T_MAC_GURMUKHI_UNDEFINED_00ED 0x00ED #define T_MAC_GURMUKHI_UNDEFINED_00EE 0x00EE #define T_MAC_GURMUKHI_UNDEFINED_00EF 0x00EF #define T_MAC_GURMUKHI_UNDEFINED_00F0 0x00F0 #define T_MAC_GURMUKHI_GURMUKHI_DIGIT_ZERO 0x00F1 #define T_MAC_GURMUKHI_GURMUKHI_DIGIT_ONE 0x00F2 #define T_MAC_GURMUKHI_GURMUKHI_DIGIT_TWO 0x00F3 #define T_MAC_GURMUKHI_GURMUKHI_DIGIT_THREE 0x00F4 #define T_MAC_GURMUKHI_GURMUKHI_DIGIT_FOUR 0x00F5 #define T_MAC_GURMUKHI_GURMUKHI_DIGIT_FIVE 0x00F6 #define T_MAC_GURMUKHI_GURMUKHI_DIGIT_SIX 0x00F7 #define T_MAC_GURMUKHI_GURMUKHI_DIGIT_SEVEN 0x00F8 #define T_MAC_GURMUKHI_GURMUKHI_DIGIT_EIGHT 0x00F9 #define T_MAC_GURMUKHI_GURMUKHI_DIGIT_NINE 0x00FA #define T_MAC_GURMUKHI_UNDEFINED_00FB 0x00FB #define T_MAC_GURMUKHI_UNDEFINED_00FC 0x00FC #define T_MAC_GURMUKHI_UNDEFINED_00FD 0x00FD #define T_MAC_GURMUKHI_UNDEFINED_00FE 0x00FE #define T_MAC_GURMUKHI_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_MAC_GURMUKHI(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_MULTIPLICATION_SIGN) \ EL(_MINUS_SIGN) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_BULLET) \ EL(_COPYRIGHT_SIGN) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_GURMUKHI_ADDAK) \ EL(_GURMUKHI_LETTER_RRA) \ EL(_GURMUKHI_URA) \ EL(_GURMUKHI_IRI) \ EL(_GURMUKHI_EK_ONKAR) \ EL(_GURMUKHI_SIGN_BINDI) \ EL(_GURMUKHI_LETTER_A) \ EL(_GURMUKHI_LETTER_AA) \ EL(_GURMUKHI_LETTER_I) \ EL(_GURMUKHI_LETTER_II) \ EL(_GURMUKHI_LETTER_U) \ EL(_GURMUKHI_LETTER_UU) \ EL(_GURMUKHI_LETTER_EE) \ EL(_GURMUKHI_LETTER_AI) \ EL(_GURMUKHI_LETTER_OO) \ EL(_GURMUKHI_LETTER_AU) \ EL(_GURMUKHI_LETTER_KA) \ EL(_GURMUKHI_LETTER_KHA) \ EL(_GURMUKHI_LETTER_GA) \ EL(_GURMUKHI_LETTER_GHA) \ EL(_GURMUKHI_LETTER_NGA) \ EL(_GURMUKHI_LETTER_CA) \ EL(_GURMUKHI_LETTER_CHA) \ EL(_GURMUKHI_LETTER_JA) \ EL(_GURMUKHI_LETTER_JHA) \ EL(_GURMUKHI_LETTER_NYA) \ EL(_GURMUKHI_LETTER_TTA) \ EL(_GURMUKHI_LETTER_TTHA) \ EL(_GURMUKHI_LETTER_DDA) \ EL(_GURMUKHI_LETTER_DDHA) \ EL(_GURMUKHI_LETTER_NNA) \ EL(_GURMUKHI_LETTER_TA) \ EL(_GURMUKHI_LETTER_THA) \ EL(_GURMUKHI_LETTER_DA) \ EL(_GURMUKHI_LETTER_DHA) \ EL(_GURMUKHI_LETTER_NA) \ EL(_GURMUKHI_LETTER_PA) \ EL(_GURMUKHI_LETTER_PHA) \ EL(_GURMUKHI_LETTER_BA) \ EL(_GURMUKHI_LETTER_BHA) \ EL(_GURMUKHI_LETTER_MA) \ EL(_GURMUKHI_LETTER_YA) \ EL(_GURMUKHI_LETTER_RA) \ EL(_GURMUKHI_LETTER_LA) \ EL(_GURMUKHI_LETTER_VA) \ EL(_OLD_HUNGARIAN_SMALL_LETTER_AK) \ EL(_GURMUKHI_LETTER_SA) \ EL(_GURMUKHI_LETTER_HA) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_GURMUKHI_VOWEL_SIGN_AA) \ EL(_GURMUKHI_VOWEL_SIGN_I) \ EL(_GURMUKHI_VOWEL_SIGN_II) \ EL(_GURMUKHI_VOWEL_SIGN_U) \ EL(_GURMUKHI_VOWEL_SIGN_UU) \ EL(_GURMUKHI_VOWEL_SIGN_EE) \ EL(_GURMUKHI_VOWEL_SIGN_AI) \ EL(_GURMUKHI_VOWEL_SIGN_OO) \ EL(_GURMUKHI_VOWEL_SIGN_AU) \ EL(_GURMUKHI_SIGN_VIRAMA) \ EL(_GURMUKHI_SIGN_NUKTA) \ EL(_DEVANAGARI_DANDA) \ EL(_GURMUKHI_DIGIT_ZERO) \ EL(_GURMUKHI_DIGIT_ONE) \ EL(_GURMUKHI_DIGIT_TWO) \ EL(_GURMUKHI_DIGIT_THREE) \ EL(_GURMUKHI_DIGIT_FOUR) \ EL(_GURMUKHI_DIGIT_FIVE) \ EL(_GURMUKHI_DIGIT_SIX) \ EL(_GURMUKHI_DIGIT_SEVEN) \ EL(_GURMUKHI_DIGIT_EIGHT) \ EL(_GURMUKHI_DIGIT_NINE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_GURMUKHI(EL) \ EL(_MULTIPLICATION_SIGN) \ EL(_MINUS_SIGN) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_BULLET) \ EL(_COPYRIGHT_SIGN) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_GURMUKHI_ADDAK) \ EL(_GURMUKHI_LETTER_RRA) \ EL(_GURMUKHI_URA) \ EL(_GURMUKHI_IRI) \ EL(_GURMUKHI_EK_ONKAR) \ EL(_GURMUKHI_SIGN_BINDI) \ EL(_GURMUKHI_LETTER_A) \ EL(_GURMUKHI_LETTER_AA) \ EL(_GURMUKHI_LETTER_I) \ EL(_GURMUKHI_LETTER_II) \ EL(_GURMUKHI_LETTER_U) \ EL(_GURMUKHI_LETTER_UU) \ EL(_GURMUKHI_LETTER_EE) \ EL(_GURMUKHI_LETTER_AI) \ EL(_GURMUKHI_LETTER_OO) \ EL(_GURMUKHI_LETTER_AU) \ EL(_GURMUKHI_LETTER_KA) \ EL(_GURMUKHI_LETTER_KHA) \ EL(_GURMUKHI_LETTER_GA) \ EL(_GURMUKHI_LETTER_GHA) \ EL(_GURMUKHI_LETTER_NGA) \ EL(_GURMUKHI_LETTER_CA) \ EL(_GURMUKHI_LETTER_CHA) \ EL(_GURMUKHI_LETTER_JA) \ EL(_GURMUKHI_LETTER_JHA) \ EL(_GURMUKHI_LETTER_NYA) \ EL(_GURMUKHI_LETTER_TTA) \ EL(_GURMUKHI_LETTER_TTHA) \ EL(_GURMUKHI_LETTER_DDA) \ EL(_GURMUKHI_LETTER_DDHA) \ EL(_GURMUKHI_LETTER_NNA) \ EL(_GURMUKHI_LETTER_TA) \ EL(_GURMUKHI_LETTER_THA) \ EL(_GURMUKHI_LETTER_DA) \ EL(_GURMUKHI_LETTER_DHA) \ EL(_GURMUKHI_LETTER_NA) \ EL(_GURMUKHI_LETTER_PA) \ EL(_GURMUKHI_LETTER_PHA) \ EL(_GURMUKHI_LETTER_BA) \ EL(_GURMUKHI_LETTER_BHA) \ EL(_GURMUKHI_LETTER_MA) \ EL(_GURMUKHI_LETTER_YA) \ EL(_GURMUKHI_LETTER_RA) \ EL(_GURMUKHI_LETTER_LA) \ EL(_GURMUKHI_LETTER_VA) \ EL(_OLD_HUNGARIAN_SMALL_LETTER_AK) \ EL(_GURMUKHI_LETTER_SA) \ EL(_GURMUKHI_LETTER_HA) \ EL(_LEFT_TO_RIGHT_MARK) \ EL(_GURMUKHI_VOWEL_SIGN_AA) \ EL(_GURMUKHI_VOWEL_SIGN_I) \ EL(_GURMUKHI_VOWEL_SIGN_II) \ EL(_GURMUKHI_VOWEL_SIGN_U) \ EL(_GURMUKHI_VOWEL_SIGN_UU) \ EL(_GURMUKHI_VOWEL_SIGN_EE) \ EL(_GURMUKHI_VOWEL_SIGN_AI) \ EL(_GURMUKHI_VOWEL_SIGN_OO) \ EL(_GURMUKHI_VOWEL_SIGN_AU) \ EL(_GURMUKHI_SIGN_VIRAMA) \ EL(_GURMUKHI_SIGN_NUKTA) \ EL(_DEVANAGARI_DANDA) \ EL(_GURMUKHI_DIGIT_ZERO) \ EL(_GURMUKHI_DIGIT_ONE) \ EL(_GURMUKHI_DIGIT_TWO) \ EL(_GURMUKHI_DIGIT_THREE) \ EL(_GURMUKHI_DIGIT_FOUR) \ EL(_GURMUKHI_DIGIT_FIVE) \ EL(_GURMUKHI_DIGIT_SIX) \ EL(_GURMUKHI_DIGIT_SEVEN) \ EL(_GURMUKHI_DIGIT_EIGHT) \ EL(_GURMUKHI_DIGIT_NINE) #endif /* TUTF_MAC_GURMUKHI_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_hebrew.h����������������������������������������������������������������0000664�0000000�0000000�00000144667�13775351206�0017346�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_HEBREW_H #define TUTF_MAC_HEBREW_H #define T_MAC_HEBREW_CTRL_NULL 0x0000 #define T_MAC_HEBREW_CTRL_START_OF_HEADING 0x0001 #define T_MAC_HEBREW_CTRL_START_OF_TEXT 0x0002 #define T_MAC_HEBREW_CTRL_END_OF_TEXT 0x0003 #define T_MAC_HEBREW_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_HEBREW_CTRL_ENQUIRY 0x0005 #define T_MAC_HEBREW_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_HEBREW_CTRL_BELL 0x0007 #define T_MAC_HEBREW_CTRL_BACKSPACE 0x0008 #define T_MAC_HEBREW_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_HEBREW_CTRL_LINE_FEED 0x000A #define T_MAC_HEBREW_CTRL_LINE_TABULATION 0x000B #define T_MAC_HEBREW_CTRL_FORM_FEED 0x000C #define T_MAC_HEBREW_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_HEBREW_CTRL_SHIFT_OUT 0x000E #define T_MAC_HEBREW_CTRL_SHIFT_IN 0x000F #define T_MAC_HEBREW_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_HEBREW_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_HEBREW_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_HEBREW_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_HEBREW_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_HEBREW_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_HEBREW_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_HEBREW_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_HEBREW_CTRL_CANCEL 0x0018 #define T_MAC_HEBREW_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_HEBREW_CTRL_SUBSTITUTE 0x001A #define T_MAC_HEBREW_CTRL_ESCAPE 0x001B #define T_MAC_HEBREW_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_HEBREW_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_HEBREW_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_HEBREW_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_HEBREW_SPACE 0x0020 #define T_MAC_HEBREW_EXCLAMATION_MARK 0x0021 #define T_MAC_HEBREW_QUOTATION_MARK 0x0022 #define T_MAC_HEBREW_NUMBER_SIGN 0x0023 #define T_MAC_HEBREW_DOLLAR_SIGN 0x0024 #define T_MAC_HEBREW_PERCENT_SIGN 0x0025 #define T_MAC_HEBREW_AMPERSAND 0x0026 #define T_MAC_HEBREW_APOSTROPHE 0x0027 #define T_MAC_HEBREW_LEFT_PARENTHESIS 0x0028 #define T_MAC_HEBREW_RIGHT_PARENTHESIS 0x0029 #define T_MAC_HEBREW_ASTERISK 0x002A #define T_MAC_HEBREW_PLUS_SIGN 0x002B #define T_MAC_HEBREW_COMMA 0x002C #define T_MAC_HEBREW_HYPHEN_MINUS 0x002D #define T_MAC_HEBREW_FULL_STOP 0x002E #define T_MAC_HEBREW_SOLIDUS 0x002F #define T_MAC_HEBREW_DIGIT_ZERO 0x0030 #define T_MAC_HEBREW_DIGIT_ONE 0x0031 #define T_MAC_HEBREW_DIGIT_TWO 0x0032 #define T_MAC_HEBREW_DIGIT_THREE 0x0033 #define T_MAC_HEBREW_DIGIT_FOUR 0x0034 #define T_MAC_HEBREW_DIGIT_FIVE 0x0035 #define T_MAC_HEBREW_DIGIT_SIX 0x0036 #define T_MAC_HEBREW_DIGIT_SEVEN 0x0037 #define T_MAC_HEBREW_DIGIT_EIGHT 0x0038 #define T_MAC_HEBREW_DIGIT_NINE 0x0039 #define T_MAC_HEBREW_COLON 0x003A #define T_MAC_HEBREW_SEMICOLON 0x003B #define T_MAC_HEBREW_LESS_THAN_SIGN 0x003C #define T_MAC_HEBREW_EQUALS_SIGN 0x003D #define T_MAC_HEBREW_GREATER_THAN_SIGN 0x003E #define T_MAC_HEBREW_QUESTION_MARK 0x003F #define T_MAC_HEBREW_COMMERCIAL_AT 0x0040 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_HEBREW_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_HEBREW_REVERSE_SOLIDUS 0x005C #define T_MAC_HEBREW_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_HEBREW_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_HEBREW_LOW_LINE 0x005F #define T_MAC_HEBREW_GRAVE_ACCENT 0x0060 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_HEBREW_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_HEBREW_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_HEBREW_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_HEBREW_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_HEBREW_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_HEBREW_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_HEBREW_LEFT_CURLY_BRACKET 0x007B #define T_MAC_HEBREW_VERTICAL_LINE 0x007C #define T_MAC_HEBREW_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_HEBREW_TILDE 0x007E #define T_MAC_HEBREW_CTRL_DELETE 0x007F #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_HEBREW_TAMIL_LETTER_NNNA 0x0081 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_HEBREW_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_HEBREW_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MAC_HEBREW_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MAC_HEBREW_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_HEBREW_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_HEBREW_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_HEBREW_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_HEBREW_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_HEBREW_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MAC_HEBREW_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_HEBREW_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_HEBREW_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_HEBREW_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_HEBREW_UNDEFINED_00A0 0x00A0 #define T_MAC_HEBREW_UNDEFINED_00A1 0x00A1 #define T_MAC_HEBREW_UNDEFINED_00A2 0x00A2 #define T_MAC_HEBREW_UNDEFINED_00A3 0x00A3 #define T_MAC_HEBREW_UNDEFINED_00A4 0x00A4 #define T_MAC_HEBREW_UNDEFINED_00A5 0x00A5 #define T_MAC_HEBREW_NEW_SHEQEL_SIGN 0x00A6 #define T_MAC_HEBREW_UNDEFINED_00A7 0x00A7 #define T_MAC_HEBREW_UNDEFINED_00A8 0x00A8 #define T_MAC_HEBREW_UNDEFINED_00A9 0x00A9 #define T_MAC_HEBREW_UNDEFINED_00AA 0x00AA #define T_MAC_HEBREW_UNDEFINED_00AB 0x00AB #define T_MAC_HEBREW_UNDEFINED_00AC 0x00AC #define T_MAC_HEBREW_UNDEFINED_00AD 0x00AD #define T_MAC_HEBREW_UNDEFINED_00AE 0x00AE #define T_MAC_HEBREW_UNDEFINED_00AF 0x00AF #define T_MAC_HEBREW_UNDEFINED_00B0 0x00B0 #define T_MAC_HEBREW_UNDEFINED_00B1 0x00B1 #define T_MAC_HEBREW_UNDEFINED_00B2 0x00B2 #define T_MAC_HEBREW_UNDEFINED_00B3 0x00B3 #define T_MAC_HEBREW_UNDEFINED_00B4 0x00B4 #define T_MAC_HEBREW_UNDEFINED_00B5 0x00B5 #define T_MAC_HEBREW_UNDEFINED_00B6 0x00B6 #define T_MAC_HEBREW_UNDEFINED_00B7 0x00B7 #define T_MAC_HEBREW_UNDEFINED_00B8 0x00B8 #define T_MAC_HEBREW_UNDEFINED_00B9 0x00B9 #define T_MAC_HEBREW_UNDEFINED_00BA 0x00BA #define T_MAC_HEBREW_UNDEFINED_00BB 0x00BB #define T_MAC_HEBREW_UNDEFINED_00BC 0x00BC #define T_MAC_HEBREW_UNDEFINED_00BD 0x00BD #define T_MAC_HEBREW_UNDEFINED_00BE 0x00BE #define T_MAC_HEBREW_UNDEFINED_00BF 0x00BF #define T_MAC_HEBREW_UNDEFINED_00C0 0x00C0 #define T_MAC_HEBREW_DOUBLE_LOW_9_QUOTATION_MARK 0x00C1 #define T_MAC_HEBREW_UNDEFINED_00C2 0x00C2 #define T_MAC_HEBREW_UNDEFINED_00C3 0x00C3 #define T_MAC_HEBREW_UNDEFINED_00C4 0x00C4 #define T_MAC_HEBREW_UNDEFINED_00C5 0x00C5 #define T_MAC_HEBREW_HEBREW_POINT_DAGESH_OR_MAPIQ 0x00C6 #define T_MAC_HEBREW_HEBREW_LETTER_VAV_WITH_HOLAM 0x00C7 #define T_MAC_HEBREW_HEBREW_LETTER_VAV_WITH_DAGESH 0x00C8 #define T_MAC_HEBREW_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_HEBREW_NO_BREAK_SPACE 0x00CA #define T_MAC_HEBREW_HEBREW_POINT_QAMATS 0x00CB #define T_MAC_HEBREW_HEBREW_POINT_PATAH 0x00CC #define T_MAC_HEBREW_HEBREW_POINT_TSERE 0x00CD #define T_MAC_HEBREW_HEBREW_POINT_SEGOL 0x00CE #define T_MAC_HEBREW_HEBREW_POINT_HIRIQ 0x00CF #define T_MAC_HEBREW_EN_DASH 0x00D0 #define T_MAC_HEBREW_EM_DASH 0x00D1 #define T_MAC_HEBREW_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_HEBREW_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_HEBREW_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_HEBREW_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_HEBREW_HEBREW_LETTER_SHIN_WITH_SHIN_DOT 0x00D6 #define T_MAC_HEBREW_HEBREW_LETTER_SHIN_WITH_SIN_DOT 0x00D7 #define T_MAC_HEBREW_HEBREW_POINT_RAFE 0x00D8 #define T_MAC_HEBREW_HEBREW_POINT_SHEVA 0x00D9 #define T_MAC_HEBREW_HEBREW_POINT_HATAF_PATAH 0x00DA #define T_MAC_HEBREW_HEBREW_POINT_HATAF_SEGOL 0x00DB #define T_MAC_HEBREW_HEBREW_POINT_QUBUTS 0x00DC #define T_MAC_HEBREW_HEBREW_POINT_HOLAM 0x00DD #define T_MAC_HEBREW_PRESENTATION_FORM_FOR_VERTICAL_LEFT_CURLY_BRACKET 0x00DE #define T_MAC_HEBREW_HEBREW_POINT_HATAF_QAMATS 0x00DF #define T_MAC_HEBREW_HEBREW_LETTER_ALEF 0x00E0 #define T_MAC_HEBREW_HEBREW_LETTER_BET 0x00E1 #define T_MAC_HEBREW_HEBREW_LETTER_GIMEL 0x00E2 #define T_MAC_HEBREW_HEBREW_LETTER_DALET 0x00E3 #define T_MAC_HEBREW_HEBREW_LETTER_HE 0x00E4 #define T_MAC_HEBREW_HEBREW_LETTER_VAV 0x00E5 #define T_MAC_HEBREW_HEBREW_LETTER_ZAYIN 0x00E6 #define T_MAC_HEBREW_HEBREW_LETTER_HET 0x00E7 #define T_MAC_HEBREW_HEBREW_LETTER_TET 0x00E8 #define T_MAC_HEBREW_HEBREW_LETTER_YOD 0x00E9 #define T_MAC_HEBREW_HEBREW_LETTER_FINAL_KAF 0x00EA #define T_MAC_HEBREW_HEBREW_LETTER_KAF 0x00EB #define T_MAC_HEBREW_HEBREW_LETTER_LAMED 0x00EC #define T_MAC_HEBREW_HEBREW_LETTER_FINAL_MEM 0x00ED #define T_MAC_HEBREW_HEBREW_LETTER_MEM 0x00EE #define T_MAC_HEBREW_HEBREW_LETTER_FINAL_NUN 0x00EF #define T_MAC_HEBREW_HEBREW_LETTER_NUN 0x00F0 #define T_MAC_HEBREW_HEBREW_LETTER_SAMEKH 0x00F1 #define T_MAC_HEBREW_HEBREW_LETTER_AYIN 0x00F2 #define T_MAC_HEBREW_HEBREW_LETTER_FINAL_PE 0x00F3 #define T_MAC_HEBREW_HEBREW_LETTER_PE 0x00F4 #define T_MAC_HEBREW_HEBREW_LETTER_FINAL_TSADI 0x00F5 #define T_MAC_HEBREW_HEBREW_LETTER_TSADI 0x00F6 #define T_MAC_HEBREW_HEBREW_LETTER_QOF 0x00F7 #define T_MAC_HEBREW_HEBREW_LETTER_RESH 0x00F8 #define T_MAC_HEBREW_HEBREW_LETTER_SHIN 0x00F9 #define T_MAC_HEBREW_HEBREW_LETTER_TAV 0x00FA #define T_MAC_HEBREW_UNDEFINED_00FB 0x00FB #define T_MAC_HEBREW_UNDEFINED_00FC 0x00FC #define T_MAC_HEBREW_UNDEFINED_00FD 0x00FD #define T_MAC_HEBREW_UNDEFINED_00FE 0x00FE #define T_MAC_HEBREW_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_MAC_HEBREW(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_TAMIL_LETTER_NNNA) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_NEW_SHEQEL_SIGN) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_UNDEFINED_00B0) \ EL(_UNDEFINED_00B1) \ EL(_UNDEFINED_00B2) \ EL(_UNDEFINED_00B3) \ EL(_UNDEFINED_00B4) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_UNDEFINED_00B8) \ EL(_UNDEFINED_00B9) \ EL(_UNDEFINED_00BA) \ EL(_UNDEFINED_00BB) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_UNDEFINED_00BF) \ EL(_UNDEFINED_00C0) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_UNDEFINED_00C2) \ EL(_UNDEFINED_00C3) \ EL(_UNDEFINED_00C4) \ EL(_UNDEFINED_00C5) \ EL(_HEBREW_POINT_DAGESH_OR_MAPIQ) \ EL(_HEBREW_LETTER_VAV_WITH_HOLAM) \ EL(_HEBREW_LETTER_VAV_WITH_DAGESH) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_HEBREW_POINT_QAMATS) \ EL(_HEBREW_POINT_PATAH) \ EL(_HEBREW_POINT_TSERE) \ EL(_HEBREW_POINT_SEGOL) \ EL(_HEBREW_POINT_HIRIQ) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_HEBREW_LETTER_SHIN_WITH_SHIN_DOT) \ EL(_HEBREW_LETTER_SHIN_WITH_SIN_DOT) \ EL(_HEBREW_POINT_RAFE) \ EL(_HEBREW_POINT_SHEVA) \ EL(_HEBREW_POINT_HATAF_PATAH) \ EL(_HEBREW_POINT_HATAF_SEGOL) \ EL(_HEBREW_POINT_QUBUTS) \ EL(_HEBREW_POINT_HOLAM) \ EL(_PRESENTATION_FORM_FOR_VERTICAL_LEFT_CURLY_BRACKET) \ EL(_HEBREW_POINT_HATAF_QAMATS) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_HEBREW(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_TAMIL_LETTER_NNNA) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_UNDEFINED_00A0) \ EL(_UNDEFINED_00A1) \ EL(_UNDEFINED_00A2) \ EL(_UNDEFINED_00A3) \ EL(_UNDEFINED_00A4) \ EL(_UNDEFINED_00A5) \ EL(_NEW_SHEQEL_SIGN) \ EL(_UNDEFINED_00A7) \ EL(_UNDEFINED_00A8) \ EL(_UNDEFINED_00A9) \ EL(_UNDEFINED_00AA) \ EL(_UNDEFINED_00AB) \ EL(_UNDEFINED_00AC) \ EL(_UNDEFINED_00AD) \ EL(_UNDEFINED_00AE) \ EL(_UNDEFINED_00AF) \ EL(_UNDEFINED_00B0) \ EL(_UNDEFINED_00B1) \ EL(_UNDEFINED_00B2) \ EL(_UNDEFINED_00B3) \ EL(_UNDEFINED_00B4) \ EL(_UNDEFINED_00B5) \ EL(_UNDEFINED_00B6) \ EL(_UNDEFINED_00B7) \ EL(_UNDEFINED_00B8) \ EL(_UNDEFINED_00B9) \ EL(_UNDEFINED_00BA) \ EL(_UNDEFINED_00BB) \ EL(_UNDEFINED_00BC) \ EL(_UNDEFINED_00BD) \ EL(_UNDEFINED_00BE) \ EL(_UNDEFINED_00BF) \ EL(_UNDEFINED_00C0) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_UNDEFINED_00C2) \ EL(_UNDEFINED_00C3) \ EL(_UNDEFINED_00C4) \ EL(_UNDEFINED_00C5) \ EL(_HEBREW_POINT_DAGESH_OR_MAPIQ) \ EL(_HEBREW_LETTER_VAV_WITH_HOLAM) \ EL(_HEBREW_LETTER_VAV_WITH_DAGESH) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_HEBREW_POINT_QAMATS) \ EL(_HEBREW_POINT_PATAH) \ EL(_HEBREW_POINT_TSERE) \ EL(_HEBREW_POINT_SEGOL) \ EL(_HEBREW_POINT_HIRIQ) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_HEBREW_LETTER_SHIN_WITH_SHIN_DOT) \ EL(_HEBREW_LETTER_SHIN_WITH_SIN_DOT) \ EL(_HEBREW_POINT_RAFE) \ EL(_HEBREW_POINT_SHEVA) \ EL(_HEBREW_POINT_HATAF_PATAH) \ EL(_HEBREW_POINT_HATAF_SEGOL) \ EL(_HEBREW_POINT_QUBUTS) \ EL(_HEBREW_POINT_HOLAM) \ EL(_PRESENTATION_FORM_FOR_VERTICAL_LEFT_CURLY_BRACKET) \ EL(_HEBREW_POINT_HATAF_QAMATS) \ EL(_HEBREW_LETTER_ALEF) \ EL(_HEBREW_LETTER_BET) \ EL(_HEBREW_LETTER_GIMEL) \ EL(_HEBREW_LETTER_DALET) \ EL(_HEBREW_LETTER_HE) \ EL(_HEBREW_LETTER_VAV) \ EL(_HEBREW_LETTER_ZAYIN) \ EL(_HEBREW_LETTER_HET) \ EL(_HEBREW_LETTER_TET) \ EL(_HEBREW_LETTER_YOD) \ EL(_HEBREW_LETTER_FINAL_KAF) \ EL(_HEBREW_LETTER_KAF) \ EL(_HEBREW_LETTER_LAMED) \ EL(_HEBREW_LETTER_FINAL_MEM) \ EL(_HEBREW_LETTER_MEM) \ EL(_HEBREW_LETTER_FINAL_NUN) \ EL(_HEBREW_LETTER_NUN) \ EL(_HEBREW_LETTER_SAMEKH) \ EL(_HEBREW_LETTER_AYIN) \ EL(_HEBREW_LETTER_FINAL_PE) \ EL(_HEBREW_LETTER_PE) \ EL(_HEBREW_LETTER_FINAL_TSADI) \ EL(_HEBREW_LETTER_TSADI) \ EL(_HEBREW_LETTER_QOF) \ EL(_HEBREW_LETTER_RESH) \ EL(_HEBREW_LETTER_SHIN) \ EL(_HEBREW_LETTER_TAV) \ EL(_UNDEFINED_00FB) \ EL(_UNDEFINED_00FC) \ EL(_UNDEFINED_00FD) \ EL(_UNDEFINED_00FE) \ EL(_UNDEFINED_00FF) #endif /* TUTF_MAC_HEBREW_H */ �������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_icelandic.h�������������������������������������������������������������0000664�0000000�0000000�00000145676�13775351206�0020006�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_ICELANDIC_H #define TUTF_MAC_ICELANDIC_H #define T_MAC_ICELANDIC_CTRL_NULL 0x0000 #define T_MAC_ICELANDIC_CTRL_START_OF_HEADING 0x0001 #define T_MAC_ICELANDIC_CTRL_START_OF_TEXT 0x0002 #define T_MAC_ICELANDIC_CTRL_END_OF_TEXT 0x0003 #define T_MAC_ICELANDIC_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_ICELANDIC_CTRL_ENQUIRY 0x0005 #define T_MAC_ICELANDIC_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_ICELANDIC_CTRL_BELL 0x0007 #define T_MAC_ICELANDIC_CTRL_BACKSPACE 0x0008 #define T_MAC_ICELANDIC_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_ICELANDIC_CTRL_LINE_FEED 0x000A #define T_MAC_ICELANDIC_CTRL_LINE_TABULATION 0x000B #define T_MAC_ICELANDIC_CTRL_FORM_FEED 0x000C #define T_MAC_ICELANDIC_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_ICELANDIC_CTRL_SHIFT_OUT 0x000E #define T_MAC_ICELANDIC_CTRL_SHIFT_IN 0x000F #define T_MAC_ICELANDIC_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_ICELANDIC_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_ICELANDIC_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_ICELANDIC_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_ICELANDIC_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_ICELANDIC_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_ICELANDIC_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_ICELANDIC_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_ICELANDIC_CTRL_CANCEL 0x0018 #define T_MAC_ICELANDIC_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_ICELANDIC_CTRL_SUBSTITUTE 0x001A #define T_MAC_ICELANDIC_CTRL_ESCAPE 0x001B #define T_MAC_ICELANDIC_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_ICELANDIC_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_ICELANDIC_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_ICELANDIC_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_ICELANDIC_SPACE 0x0020 #define T_MAC_ICELANDIC_EXCLAMATION_MARK 0x0021 #define T_MAC_ICELANDIC_QUOTATION_MARK 0x0022 #define T_MAC_ICELANDIC_NUMBER_SIGN 0x0023 #define T_MAC_ICELANDIC_DOLLAR_SIGN 0x0024 #define T_MAC_ICELANDIC_PERCENT_SIGN 0x0025 #define T_MAC_ICELANDIC_AMPERSAND 0x0026 #define T_MAC_ICELANDIC_APOSTROPHE 0x0027 #define T_MAC_ICELANDIC_LEFT_PARENTHESIS 0x0028 #define T_MAC_ICELANDIC_RIGHT_PARENTHESIS 0x0029 #define T_MAC_ICELANDIC_ASTERISK 0x002A #define T_MAC_ICELANDIC_PLUS_SIGN 0x002B #define T_MAC_ICELANDIC_COMMA 0x002C #define T_MAC_ICELANDIC_HYPHEN_MINUS 0x002D #define T_MAC_ICELANDIC_FULL_STOP 0x002E #define T_MAC_ICELANDIC_SOLIDUS 0x002F #define T_MAC_ICELANDIC_DIGIT_ZERO 0x0030 #define T_MAC_ICELANDIC_DIGIT_ONE 0x0031 #define T_MAC_ICELANDIC_DIGIT_TWO 0x0032 #define T_MAC_ICELANDIC_DIGIT_THREE 0x0033 #define T_MAC_ICELANDIC_DIGIT_FOUR 0x0034 #define T_MAC_ICELANDIC_DIGIT_FIVE 0x0035 #define T_MAC_ICELANDIC_DIGIT_SIX 0x0036 #define T_MAC_ICELANDIC_DIGIT_SEVEN 0x0037 #define T_MAC_ICELANDIC_DIGIT_EIGHT 0x0038 #define T_MAC_ICELANDIC_DIGIT_NINE 0x0039 #define T_MAC_ICELANDIC_COLON 0x003A #define T_MAC_ICELANDIC_SEMICOLON 0x003B #define T_MAC_ICELANDIC_LESS_THAN_SIGN 0x003C #define T_MAC_ICELANDIC_EQUALS_SIGN 0x003D #define T_MAC_ICELANDIC_GREATER_THAN_SIGN 0x003E #define T_MAC_ICELANDIC_QUESTION_MARK 0x003F #define T_MAC_ICELANDIC_COMMERCIAL_AT 0x0040 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_ICELANDIC_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_ICELANDIC_REVERSE_SOLIDUS 0x005C #define T_MAC_ICELANDIC_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_ICELANDIC_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_ICELANDIC_LOW_LINE 0x005F #define T_MAC_ICELANDIC_GRAVE_ACCENT 0x0060 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_ICELANDIC_LEFT_CURLY_BRACKET 0x007B #define T_MAC_ICELANDIC_VERTICAL_LINE 0x007C #define T_MAC_ICELANDIC_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_ICELANDIC_TILDE 0x007E #define T_MAC_ICELANDIC_CTRL_DELETE 0x007F #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0081 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00A0 #define T_MAC_ICELANDIC_DEGREE_SIGN 0x00A1 #define T_MAC_ICELANDIC_CENT_SIGN 0x00A2 #define T_MAC_ICELANDIC_POUND_SIGN 0x00A3 #define T_MAC_ICELANDIC_SECTION_SIGN 0x00A4 #define T_MAC_ICELANDIC_BULLET 0x00A5 #define T_MAC_ICELANDIC_PILCROW_SIGN 0x00A6 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MAC_ICELANDIC_REGISTERED_SIGN 0x00A8 #define T_MAC_ICELANDIC_COPYRIGHT_SIGN 0x00A9 #define T_MAC_ICELANDIC_TRADE_MARK_SIGN 0x00AA #define T_MAC_ICELANDIC_ACUTE_ACCENT 0x00AB #define T_MAC_ICELANDIC_DIAERESIS 0x00AC #define T_MAC_ICELANDIC_NOT_EQUAL_TO 0x00AD #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_AE 0x00AE #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00AF #define T_MAC_ICELANDIC_INFINITY 0x00B0 #define T_MAC_ICELANDIC_PLUS_MINUS_SIGN 0x00B1 #define T_MAC_ICELANDIC_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MAC_ICELANDIC_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_ICELANDIC_YEN_SIGN 0x00B4 #define T_MAC_ICELANDIC_MICRO_SIGN 0x00B5 #define T_MAC_ICELANDIC_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MAC_ICELANDIC_N_ARY_SUMMATION 0x00B7 #define T_MAC_ICELANDIC_N_ARY_PRODUCT 0x00B8 #define T_MAC_ICELANDIC_GREEK_SMALL_LETTER_PI 0x00B9 #define T_MAC_ICELANDIC_INTEGRAL 0x00BA #define T_MAC_ICELANDIC_FEMININE_ORDINAL_INDICATOR 0x00BB #define T_MAC_ICELANDIC_MASCULINE_ORDINAL_INDICATOR 0x00BC #define T_MAC_ICELANDIC_GREEK_CAPITAL_LETTER_OMEGA 0x00BD #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_AE 0x00BE #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00BF #define T_MAC_ICELANDIC_INVERTED_QUESTION_MARK 0x00C0 #define T_MAC_ICELANDIC_INVERTED_EXCLAMATION_MARK 0x00C1 #define T_MAC_ICELANDIC_NOT_SIGN 0x00C2 #define T_MAC_ICELANDIC_SQUARE_ROOT 0x00C3 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MAC_ICELANDIC_ALMOST_EQUAL_TO 0x00C5 #define T_MAC_ICELANDIC_INCREMENT 0x00C6 #define T_MAC_ICELANDIC_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MAC_ICELANDIC_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MAC_ICELANDIC_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_ICELANDIC_NO_BREAK_SPACE 0x00CA #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00CB #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00CC #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MAC_ICELANDIC_LATIN_CAPITAL_LIGATURE_OE 0x00CE #define T_MAC_ICELANDIC_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MAC_ICELANDIC_EN_DASH 0x00D0 #define T_MAC_ICELANDIC_EM_DASH 0x00D1 #define T_MAC_ICELANDIC_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_ICELANDIC_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_ICELANDIC_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_ICELANDIC_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_ICELANDIC_DIVISION_SIGN 0x00D6 #define T_MAC_ICELANDIC_LOZENGE 0x00D7 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00D8 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00D9 #define T_MAC_ICELANDIC_FRACTION_SLASH 0x00DA #define T_MAC_ICELANDIC_EURO_SIGN 0x00DB #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_ETH 0x00DC #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_ETH 0x00DD #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_THORN 0x00DE #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_THORN 0x00DF #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00E0 #define T_MAC_ICELANDIC_MIDDLE_DOT 0x00E1 #define T_MAC_ICELANDIC_SINGLE_LOW_9_QUOTATION_MARK 0x00E2 #define T_MAC_ICELANDIC_DOUBLE_LOW_9_QUOTATION_MARK 0x00E3 #define T_MAC_ICELANDIC_PER_MILLE_SIGN 0x00E4 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00E5 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00E6 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00E8 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00E9 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00EB #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00EC #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00ED #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MAC_ICELANDIC_UNDEFINED_00F0 0x00F0 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00F1 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00F3 #define T_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00F4 #define T_MAC_ICELANDIC_LATIN_SMALL_LETTER_DOTLESS_I 0x00F5 #define T_MAC_ICELANDIC_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x00F6 #define T_MAC_ICELANDIC_SMALL_TILDE 0x00F7 #define T_MAC_ICELANDIC_MACRON 0x00F8 #define T_MAC_ICELANDIC_BREVE 0x00F9 #define T_MAC_ICELANDIC_DOT_ABOVE 0x00FA #define T_MAC_ICELANDIC_RING_ABOVE 0x00FB #define T_MAC_ICELANDIC_CEDILLA 0x00FC #define T_MAC_ICELANDIC_DOUBLE_ACUTE_ACCENT 0x00FD #define T_MAC_ICELANDIC_OGONEK 0x00FE #define T_MAC_ICELANDIC_CARON 0x00FF /* list of all characters */ #define T_LIST_MAC_ICELANDIC(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_MICRO_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_EURO_SIGN) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_ICELANDIC(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_EURO_SIGN) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) #endif /* TUTF_MAC_ICELANDIC_H */ ������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_inuit.h�����������������������������������������������������������������0000664�0000000�0000000�00000144072�13775351206�0017210�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_INUIT_H #define TUTF_MAC_INUIT_H #define T_MAC_INUIT_CTRL_NULL 0x0000 #define T_MAC_INUIT_CTRL_START_OF_HEADING 0x0001 #define T_MAC_INUIT_CTRL_START_OF_TEXT 0x0002 #define T_MAC_INUIT_CTRL_END_OF_TEXT 0x0003 #define T_MAC_INUIT_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_INUIT_CTRL_ENQUIRY 0x0005 #define T_MAC_INUIT_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_INUIT_CTRL_BELL 0x0007 #define T_MAC_INUIT_CTRL_BACKSPACE 0x0008 #define T_MAC_INUIT_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_INUIT_CTRL_LINE_FEED 0x000A #define T_MAC_INUIT_CTRL_LINE_TABULATION 0x000B #define T_MAC_INUIT_CTRL_FORM_FEED 0x000C #define T_MAC_INUIT_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_INUIT_CTRL_SHIFT_OUT 0x000E #define T_MAC_INUIT_CTRL_SHIFT_IN 0x000F #define T_MAC_INUIT_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_INUIT_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_INUIT_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_INUIT_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_INUIT_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_INUIT_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_INUIT_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_INUIT_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_INUIT_CTRL_CANCEL 0x0018 #define T_MAC_INUIT_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_INUIT_CTRL_SUBSTITUTE 0x001A #define T_MAC_INUIT_CTRL_ESCAPE 0x001B #define T_MAC_INUIT_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_INUIT_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_INUIT_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_INUIT_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_INUIT_SPACE 0x0020 #define T_MAC_INUIT_EXCLAMATION_MARK 0x0021 #define T_MAC_INUIT_QUOTATION_MARK 0x0022 #define T_MAC_INUIT_NUMBER_SIGN 0x0023 #define T_MAC_INUIT_DOLLAR_SIGN 0x0024 #define T_MAC_INUIT_PERCENT_SIGN 0x0025 #define T_MAC_INUIT_AMPERSAND 0x0026 #define T_MAC_INUIT_APOSTROPHE 0x0027 #define T_MAC_INUIT_LEFT_PARENTHESIS 0x0028 #define T_MAC_INUIT_RIGHT_PARENTHESIS 0x0029 #define T_MAC_INUIT_ASTERISK 0x002A #define T_MAC_INUIT_PLUS_SIGN 0x002B #define T_MAC_INUIT_COMMA 0x002C #define T_MAC_INUIT_HYPHEN_MINUS 0x002D #define T_MAC_INUIT_FULL_STOP 0x002E #define T_MAC_INUIT_SOLIDUS 0x002F #define T_MAC_INUIT_DIGIT_ZERO 0x0030 #define T_MAC_INUIT_DIGIT_ONE 0x0031 #define T_MAC_INUIT_DIGIT_TWO 0x0032 #define T_MAC_INUIT_DIGIT_THREE 0x0033 #define T_MAC_INUIT_DIGIT_FOUR 0x0034 #define T_MAC_INUIT_DIGIT_FIVE 0x0035 #define T_MAC_INUIT_DIGIT_SIX 0x0036 #define T_MAC_INUIT_DIGIT_SEVEN 0x0037 #define T_MAC_INUIT_DIGIT_EIGHT 0x0038 #define T_MAC_INUIT_DIGIT_NINE 0x0039 #define T_MAC_INUIT_COLON 0x003A #define T_MAC_INUIT_SEMICOLON 0x003B #define T_MAC_INUIT_LESS_THAN_SIGN 0x003C #define T_MAC_INUIT_EQUALS_SIGN 0x003D #define T_MAC_INUIT_GREATER_THAN_SIGN 0x003E #define T_MAC_INUIT_QUESTION_MARK 0x003F #define T_MAC_INUIT_COMMERCIAL_AT 0x0040 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_INUIT_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_INUIT_REVERSE_SOLIDUS 0x005C #define T_MAC_INUIT_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_INUIT_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_INUIT_LOW_LINE 0x005F #define T_MAC_INUIT_GRAVE_ACCENT 0x0060 #define T_MAC_INUIT_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_INUIT_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_INUIT_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_INUIT_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_INUIT_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_INUIT_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_INUIT_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_INUIT_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_INUIT_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_INUIT_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_INUIT_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_INUIT_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_INUIT_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_INUIT_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_INUIT_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_INUIT_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_INUIT_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_INUIT_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_INUIT_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_INUIT_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_INUIT_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_INUIT_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_INUIT_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_INUIT_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_INUIT_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_INUIT_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_INUIT_LEFT_CURLY_BRACKET 0x007B #define T_MAC_INUIT_VERTICAL_LINE 0x007C #define T_MAC_INUIT_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_INUIT_TILDE 0x007E #define T_MAC_INUIT_CTRL_DELETE 0x007F #define T_MAC_INUIT_CANADIAN_SYLLABICS_I 0x0080 #define T_MAC_INUIT_CANADIAN_SYLLABICS_II 0x0081 #define T_MAC_INUIT_CANADIAN_SYLLABICS_O 0x0082 #define T_MAC_INUIT_CANADIAN_SYLLABICS_OO 0x0083 #define T_MAC_INUIT_CANADIAN_SYLLABICS_A 0x0084 #define T_MAC_INUIT_CANADIAN_SYLLABICS_AA 0x0085 #define T_MAC_INUIT_CANADIAN_SYLLABICS_PI 0x0086 #define T_MAC_INUIT_CANADIAN_SYLLABICS_PII 0x0087 #define T_MAC_INUIT_CANADIAN_SYLLABICS_PO 0x0088 #define T_MAC_INUIT_CANADIAN_SYLLABICS_POO 0x0089 #define T_MAC_INUIT_CANADIAN_SYLLABICS_PA 0x008A #define T_MAC_INUIT_CANADIAN_SYLLABICS_PAA 0x008B #define T_MAC_INUIT_CANADIAN_SYLLABICS_P 0x008C #define T_MAC_INUIT_CANADIAN_SYLLABICS_TI 0x008D #define T_MAC_INUIT_CANADIAN_SYLLABICS_TII 0x008E #define T_MAC_INUIT_CANADIAN_SYLLABICS_TO 0x008F #define T_MAC_INUIT_CANADIAN_SYLLABICS_TOO 0x0090 #define T_MAC_INUIT_CANADIAN_SYLLABICS_TA 0x0091 #define T_MAC_INUIT_CANADIAN_SYLLABICS_TAA 0x0092 #define T_MAC_INUIT_CANADIAN_SYLLABICS_T 0x0093 #define T_MAC_INUIT_CANADIAN_SYLLABICS_KI 0x0094 #define T_MAC_INUIT_CANADIAN_SYLLABICS_KII 0x0095 #define T_MAC_INUIT_CANADIAN_SYLLABICS_KO 0x0096 #define T_MAC_INUIT_CANADIAN_SYLLABICS_KOO 0x0097 #define T_MAC_INUIT_CANADIAN_SYLLABICS_KA 0x0098 #define T_MAC_INUIT_CANADIAN_SYLLABICS_KAA 0x0099 #define T_MAC_INUIT_CANADIAN_SYLLABICS_K 0x009A #define T_MAC_INUIT_CANADIAN_SYLLABICS_CI 0x009B #define T_MAC_INUIT_CANADIAN_SYLLABICS_CII 0x009C #define T_MAC_INUIT_CANADIAN_SYLLABICS_CO 0x009D #define T_MAC_INUIT_CANADIAN_SYLLABICS_COO 0x009E #define T_MAC_INUIT_CANADIAN_SYLLABICS_CA 0x009F #define T_MAC_INUIT_CANADIAN_SYLLABICS_CAA 0x00A0 #define T_MAC_INUIT_DEGREE_SIGN 0x00A1 #define T_MAC_INUIT_CANADIAN_SYLLABICS_C 0x00A2 #define T_MAC_INUIT_CANADIAN_SYLLABICS_MI 0x00A3 #define T_MAC_INUIT_CANADIAN_SYLLABICS_MII 0x00A4 #define T_MAC_INUIT_BULLET 0x00A5 #define T_MAC_INUIT_PILCROW_SIGN 0x00A6 #define T_MAC_INUIT_CANADIAN_SYLLABICS_MO 0x00A7 #define T_MAC_INUIT_REGISTERED_SIGN 0x00A8 #define T_MAC_INUIT_COPYRIGHT_SIGN 0x00A9 #define T_MAC_INUIT_TRADE_MARK_SIGN 0x00AA #define T_MAC_INUIT_CANADIAN_SYLLABICS_MOO 0x00AB #define T_MAC_INUIT_CANADIAN_SYLLABICS_MA 0x00AC #define T_MAC_INUIT_CANADIAN_SYLLABICS_MAA 0x00AD #define T_MAC_INUIT_CANADIAN_SYLLABICS_M 0x00AE #define T_MAC_INUIT_CANADIAN_SYLLABICS_NI 0x00AF #define T_MAC_INUIT_CANADIAN_SYLLABICS_NII 0x00B0 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NO 0x00B1 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NOO 0x00B2 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NA 0x00B3 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NAA 0x00B4 #define T_MAC_INUIT_CANADIAN_SYLLABICS_N 0x00B5 #define T_MAC_INUIT_CANADIAN_SYLLABICS_SI 0x00B6 #define T_MAC_INUIT_CANADIAN_SYLLABICS_SII 0x00B7 #define T_MAC_INUIT_CANADIAN_SYLLABICS_SO 0x00B8 #define T_MAC_INUIT_CANADIAN_SYLLABICS_SOO 0x00B9 #define T_MAC_INUIT_CANADIAN_SYLLABICS_SA 0x00BA #define T_MAC_INUIT_CANADIAN_SYLLABICS_SAA 0x00BB #define T_MAC_INUIT_CANADIAN_SYLLABICS_S 0x00BC #define T_MAC_INUIT_CANADIAN_SYLLABICS_LI 0x00BD #define T_MAC_INUIT_CANADIAN_SYLLABICS_LII 0x00BE #define T_MAC_INUIT_CANADIAN_SYLLABICS_LO 0x00BF #define T_MAC_INUIT_CANADIAN_SYLLABICS_LOO 0x00C0 #define T_MAC_INUIT_CANADIAN_SYLLABICS_LA 0x00C1 #define T_MAC_INUIT_CANADIAN_SYLLABICS_LAA 0x00C2 #define T_MAC_INUIT_CANADIAN_SYLLABICS_L 0x00C3 #define T_MAC_INUIT_CANADIAN_SYLLABICS_YI 0x00C4 #define T_MAC_INUIT_CANADIAN_SYLLABICS_YII 0x00C5 #define T_MAC_INUIT_CANADIAN_SYLLABICS_YO 0x00C6 #define T_MAC_INUIT_CANADIAN_SYLLABICS_YOO 0x00C7 #define T_MAC_INUIT_CANADIAN_SYLLABICS_YA 0x00C8 #define T_MAC_INUIT_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_INUIT_NO_BREAK_SPACE 0x00CA #define T_MAC_INUIT_CANADIAN_SYLLABICS_YAA 0x00CB #define T_MAC_INUIT_CANADIAN_SYLLABICS_Y 0x00CC #define T_MAC_INUIT_CANADIAN_SYLLABICS_FI 0x00CD #define T_MAC_INUIT_CANADIAN_SYLLABICS_FII 0x00CE #define T_MAC_INUIT_CANADIAN_SYLLABICS_FO 0x00CF #define T_MAC_INUIT_EN_DASH 0x00D0 #define T_MAC_INUIT_EM_DASH 0x00D1 #define T_MAC_INUIT_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_INUIT_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_INUIT_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_INUIT_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_INUIT_CANADIAN_SYLLABICS_FOO 0x00D6 #define T_MAC_INUIT_CANADIAN_SYLLABICS_FA 0x00D7 #define T_MAC_INUIT_CANADIAN_SYLLABICS_FAA 0x00D8 #define T_MAC_INUIT_CANADIAN_SYLLABICS_F 0x00D9 #define T_MAC_INUIT_CANADIAN_SYLLABICS_RI 0x00DA #define T_MAC_INUIT_CANADIAN_SYLLABICS_RII 0x00DB #define T_MAC_INUIT_CANADIAN_SYLLABICS_RO 0x00DC #define T_MAC_INUIT_CANADIAN_SYLLABICS_ROO 0x00DD #define T_MAC_INUIT_CANADIAN_SYLLABICS_RA 0x00DE #define T_MAC_INUIT_CANADIAN_SYLLABICS_RAA 0x00DF #define T_MAC_INUIT_CANADIAN_SYLLABICS_R 0x00E0 #define T_MAC_INUIT_CANADIAN_SYLLABICS_QI 0x00E1 #define T_MAC_INUIT_CANADIAN_SYLLABICS_QII 0x00E2 #define T_MAC_INUIT_CANADIAN_SYLLABICS_QO 0x00E3 #define T_MAC_INUIT_CANADIAN_SYLLABICS_QOO 0x00E4 #define T_MAC_INUIT_CANADIAN_SYLLABICS_QA 0x00E5 #define T_MAC_INUIT_CANADIAN_SYLLABICS_QAA 0x00E6 #define T_MAC_INUIT_CANADIAN_SYLLABICS_Q 0x00E7 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NGI 0x00E8 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NGII 0x00E9 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NGO 0x00EA #define T_MAC_INUIT_CANADIAN_SYLLABICS_NGOO 0x00EB #define T_MAC_INUIT_CANADIAN_SYLLABICS_NGA 0x00EC #define T_MAC_INUIT_CANADIAN_SYLLABICS_NGAA 0x00ED #define T_MAC_INUIT_CANADIAN_SYLLABICS_NG 0x00EE #define T_MAC_INUIT_CANADIAN_SYLLABICS_NNGI 0x00EF #define T_MAC_INUIT_CANADIAN_SYLLABICS_NNGII 0x00F0 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NNGO 0x00F1 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NNGOO 0x00F2 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NNGA 0x00F3 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NNGAA 0x00F4 #define T_MAC_INUIT_CANADIAN_SYLLABICS_NNG 0x00F5 #define T_MAC_INUIT_CANADIAN_SYLLABICS_LHI 0x00F6 #define T_MAC_INUIT_CANADIAN_SYLLABICS_LHII 0x00F7 #define T_MAC_INUIT_CANADIAN_SYLLABICS_LHO 0x00F8 #define T_MAC_INUIT_CANADIAN_SYLLABICS_LHOO 0x00F9 #define T_MAC_INUIT_CANADIAN_SYLLABICS_LHA 0x00FA #define T_MAC_INUIT_CANADIAN_SYLLABICS_LHAA 0x00FB #define T_MAC_INUIT_CANADIAN_SYLLABICS_LH 0x00FC #define T_MAC_INUIT_CANADIAN_SYLLABICS_NUNAVUT_H 0x00FD #define T_MAC_INUIT_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x00FE #define T_MAC_INUIT_LATIN_SMALL_LETTER_L_WITH_STROKE 0x00FF /* list of all characters */ #define T_LIST_MAC_INUIT(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_CANADIAN_SYLLABICS_I) \ EL(_CANADIAN_SYLLABICS_II) \ EL(_CANADIAN_SYLLABICS_O) \ EL(_CANADIAN_SYLLABICS_OO) \ EL(_CANADIAN_SYLLABICS_A) \ EL(_CANADIAN_SYLLABICS_AA) \ EL(_CANADIAN_SYLLABICS_PI) \ EL(_CANADIAN_SYLLABICS_PII) \ EL(_CANADIAN_SYLLABICS_PO) \ EL(_CANADIAN_SYLLABICS_POO) \ EL(_CANADIAN_SYLLABICS_PA) \ EL(_CANADIAN_SYLLABICS_PAA) \ EL(_CANADIAN_SYLLABICS_P) \ EL(_CANADIAN_SYLLABICS_TI) \ EL(_CANADIAN_SYLLABICS_TII) \ EL(_CANADIAN_SYLLABICS_TO) \ EL(_CANADIAN_SYLLABICS_TOO) \ EL(_CANADIAN_SYLLABICS_TA) \ EL(_CANADIAN_SYLLABICS_TAA) \ EL(_CANADIAN_SYLLABICS_T) \ EL(_CANADIAN_SYLLABICS_KI) \ EL(_CANADIAN_SYLLABICS_KII) \ EL(_CANADIAN_SYLLABICS_KO) \ EL(_CANADIAN_SYLLABICS_KOO) \ EL(_CANADIAN_SYLLABICS_KA) \ EL(_CANADIAN_SYLLABICS_KAA) \ EL(_CANADIAN_SYLLABICS_K) \ EL(_CANADIAN_SYLLABICS_CI) \ EL(_CANADIAN_SYLLABICS_CII) \ EL(_CANADIAN_SYLLABICS_CO) \ EL(_CANADIAN_SYLLABICS_COO) \ EL(_CANADIAN_SYLLABICS_CA) \ EL(_CANADIAN_SYLLABICS_CAA) \ EL(_DEGREE_SIGN) \ EL(_CANADIAN_SYLLABICS_C) \ EL(_CANADIAN_SYLLABICS_MI) \ EL(_CANADIAN_SYLLABICS_MII) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_CANADIAN_SYLLABICS_MO) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_CANADIAN_SYLLABICS_MOO) \ EL(_CANADIAN_SYLLABICS_MA) \ EL(_CANADIAN_SYLLABICS_MAA) \ EL(_CANADIAN_SYLLABICS_M) \ EL(_CANADIAN_SYLLABICS_NI) \ EL(_CANADIAN_SYLLABICS_NII) \ EL(_CANADIAN_SYLLABICS_NO) \ EL(_CANADIAN_SYLLABICS_NOO) \ EL(_CANADIAN_SYLLABICS_NA) \ EL(_CANADIAN_SYLLABICS_NAA) \ EL(_CANADIAN_SYLLABICS_N) \ EL(_CANADIAN_SYLLABICS_SI) \ EL(_CANADIAN_SYLLABICS_SII) \ EL(_CANADIAN_SYLLABICS_SO) \ EL(_CANADIAN_SYLLABICS_SOO) \ EL(_CANADIAN_SYLLABICS_SA) \ EL(_CANADIAN_SYLLABICS_SAA) \ EL(_CANADIAN_SYLLABICS_S) \ EL(_CANADIAN_SYLLABICS_LI) \ EL(_CANADIAN_SYLLABICS_LII) \ EL(_CANADIAN_SYLLABICS_LO) \ EL(_CANADIAN_SYLLABICS_LOO) \ EL(_CANADIAN_SYLLABICS_LA) \ EL(_CANADIAN_SYLLABICS_LAA) \ EL(_CANADIAN_SYLLABICS_L) \ EL(_CANADIAN_SYLLABICS_YI) \ EL(_CANADIAN_SYLLABICS_YII) \ EL(_CANADIAN_SYLLABICS_YO) \ EL(_CANADIAN_SYLLABICS_YOO) \ EL(_CANADIAN_SYLLABICS_YA) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_CANADIAN_SYLLABICS_YAA) \ EL(_CANADIAN_SYLLABICS_Y) \ EL(_CANADIAN_SYLLABICS_FI) \ EL(_CANADIAN_SYLLABICS_FII) \ EL(_CANADIAN_SYLLABICS_FO) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_CANADIAN_SYLLABICS_FOO) \ EL(_CANADIAN_SYLLABICS_FA) \ EL(_CANADIAN_SYLLABICS_FAA) \ EL(_CANADIAN_SYLLABICS_F) \ EL(_CANADIAN_SYLLABICS_RI) \ EL(_CANADIAN_SYLLABICS_RII) \ EL(_CANADIAN_SYLLABICS_RO) \ EL(_CANADIAN_SYLLABICS_ROO) \ EL(_CANADIAN_SYLLABICS_RA) \ EL(_CANADIAN_SYLLABICS_RAA) \ EL(_CANADIAN_SYLLABICS_R) \ EL(_CANADIAN_SYLLABICS_QI) \ EL(_CANADIAN_SYLLABICS_QII) \ EL(_CANADIAN_SYLLABICS_QO) \ EL(_CANADIAN_SYLLABICS_QOO) \ EL(_CANADIAN_SYLLABICS_QA) \ EL(_CANADIAN_SYLLABICS_QAA) \ EL(_CANADIAN_SYLLABICS_Q) \ EL(_CANADIAN_SYLLABICS_NGI) \ EL(_CANADIAN_SYLLABICS_NGII) \ EL(_CANADIAN_SYLLABICS_NGO) \ EL(_CANADIAN_SYLLABICS_NGOO) \ EL(_CANADIAN_SYLLABICS_NGA) \ EL(_CANADIAN_SYLLABICS_NGAA) \ EL(_CANADIAN_SYLLABICS_NG) \ EL(_CANADIAN_SYLLABICS_NNGI) \ EL(_CANADIAN_SYLLABICS_NNGII) \ EL(_CANADIAN_SYLLABICS_NNGO) \ EL(_CANADIAN_SYLLABICS_NNGOO) \ EL(_CANADIAN_SYLLABICS_NNGA) \ EL(_CANADIAN_SYLLABICS_NNGAA) \ EL(_CANADIAN_SYLLABICS_NNG) \ EL(_CANADIAN_SYLLABICS_LHI) \ EL(_CANADIAN_SYLLABICS_LHII) \ EL(_CANADIAN_SYLLABICS_LHO) \ EL(_CANADIAN_SYLLABICS_LHOO) \ EL(_CANADIAN_SYLLABICS_LHA) \ EL(_CANADIAN_SYLLABICS_LHAA) \ EL(_CANADIAN_SYLLABICS_LH) \ EL(_CANADIAN_SYLLABICS_NUNAVUT_H) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_INUIT(EL) \ EL(_CANADIAN_SYLLABICS_I) \ EL(_CANADIAN_SYLLABICS_II) \ EL(_CANADIAN_SYLLABICS_O) \ EL(_CANADIAN_SYLLABICS_OO) \ EL(_CANADIAN_SYLLABICS_A) \ EL(_CANADIAN_SYLLABICS_AA) \ EL(_CANADIAN_SYLLABICS_PI) \ EL(_CANADIAN_SYLLABICS_PII) \ EL(_CANADIAN_SYLLABICS_PO) \ EL(_CANADIAN_SYLLABICS_POO) \ EL(_CANADIAN_SYLLABICS_PA) \ EL(_CANADIAN_SYLLABICS_PAA) \ EL(_CANADIAN_SYLLABICS_P) \ EL(_CANADIAN_SYLLABICS_TI) \ EL(_CANADIAN_SYLLABICS_TII) \ EL(_CANADIAN_SYLLABICS_TO) \ EL(_CANADIAN_SYLLABICS_TOO) \ EL(_CANADIAN_SYLLABICS_TA) \ EL(_CANADIAN_SYLLABICS_TAA) \ EL(_CANADIAN_SYLLABICS_T) \ EL(_CANADIAN_SYLLABICS_KI) \ EL(_CANADIAN_SYLLABICS_KII) \ EL(_CANADIAN_SYLLABICS_KO) \ EL(_CANADIAN_SYLLABICS_KOO) \ EL(_CANADIAN_SYLLABICS_KA) \ EL(_CANADIAN_SYLLABICS_KAA) \ EL(_CANADIAN_SYLLABICS_K) \ EL(_CANADIAN_SYLLABICS_CI) \ EL(_CANADIAN_SYLLABICS_CII) \ EL(_CANADIAN_SYLLABICS_CO) \ EL(_CANADIAN_SYLLABICS_COO) \ EL(_CANADIAN_SYLLABICS_CA) \ EL(_CANADIAN_SYLLABICS_CAA) \ EL(_DEGREE_SIGN) \ EL(_CANADIAN_SYLLABICS_C) \ EL(_CANADIAN_SYLLABICS_MI) \ EL(_CANADIAN_SYLLABICS_MII) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_CANADIAN_SYLLABICS_MO) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_CANADIAN_SYLLABICS_MOO) \ EL(_CANADIAN_SYLLABICS_MA) \ EL(_CANADIAN_SYLLABICS_MAA) \ EL(_CANADIAN_SYLLABICS_M) \ EL(_CANADIAN_SYLLABICS_NI) \ EL(_CANADIAN_SYLLABICS_NII) \ EL(_CANADIAN_SYLLABICS_NO) \ EL(_CANADIAN_SYLLABICS_NOO) \ EL(_CANADIAN_SYLLABICS_NA) \ EL(_CANADIAN_SYLLABICS_NAA) \ EL(_CANADIAN_SYLLABICS_N) \ EL(_CANADIAN_SYLLABICS_SI) \ EL(_CANADIAN_SYLLABICS_SII) \ EL(_CANADIAN_SYLLABICS_SO) \ EL(_CANADIAN_SYLLABICS_SOO) \ EL(_CANADIAN_SYLLABICS_SA) \ EL(_CANADIAN_SYLLABICS_SAA) \ EL(_CANADIAN_SYLLABICS_S) \ EL(_CANADIAN_SYLLABICS_LI) \ EL(_CANADIAN_SYLLABICS_LII) \ EL(_CANADIAN_SYLLABICS_LO) \ EL(_CANADIAN_SYLLABICS_LOO) \ EL(_CANADIAN_SYLLABICS_LA) \ EL(_CANADIAN_SYLLABICS_LAA) \ EL(_CANADIAN_SYLLABICS_L) \ EL(_CANADIAN_SYLLABICS_YI) \ EL(_CANADIAN_SYLLABICS_YII) \ EL(_CANADIAN_SYLLABICS_YO) \ EL(_CANADIAN_SYLLABICS_YOO) \ EL(_CANADIAN_SYLLABICS_YA) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_CANADIAN_SYLLABICS_YAA) \ EL(_CANADIAN_SYLLABICS_Y) \ EL(_CANADIAN_SYLLABICS_FI) \ EL(_CANADIAN_SYLLABICS_FII) \ EL(_CANADIAN_SYLLABICS_FO) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_CANADIAN_SYLLABICS_FOO) \ EL(_CANADIAN_SYLLABICS_FA) \ EL(_CANADIAN_SYLLABICS_FAA) \ EL(_CANADIAN_SYLLABICS_F) \ EL(_CANADIAN_SYLLABICS_RI) \ EL(_CANADIAN_SYLLABICS_RII) \ EL(_CANADIAN_SYLLABICS_RO) \ EL(_CANADIAN_SYLLABICS_ROO) \ EL(_CANADIAN_SYLLABICS_RA) \ EL(_CANADIAN_SYLLABICS_RAA) \ EL(_CANADIAN_SYLLABICS_R) \ EL(_CANADIAN_SYLLABICS_QI) \ EL(_CANADIAN_SYLLABICS_QII) \ EL(_CANADIAN_SYLLABICS_QO) \ EL(_CANADIAN_SYLLABICS_QOO) \ EL(_CANADIAN_SYLLABICS_QA) \ EL(_CANADIAN_SYLLABICS_QAA) \ EL(_CANADIAN_SYLLABICS_Q) \ EL(_CANADIAN_SYLLABICS_NGI) \ EL(_CANADIAN_SYLLABICS_NGII) \ EL(_CANADIAN_SYLLABICS_NGO) \ EL(_CANADIAN_SYLLABICS_NGOO) \ EL(_CANADIAN_SYLLABICS_NGA) \ EL(_CANADIAN_SYLLABICS_NGAA) \ EL(_CANADIAN_SYLLABICS_NG) \ EL(_CANADIAN_SYLLABICS_NNGI) \ EL(_CANADIAN_SYLLABICS_NNGII) \ EL(_CANADIAN_SYLLABICS_NNGO) \ EL(_CANADIAN_SYLLABICS_NNGOO) \ EL(_CANADIAN_SYLLABICS_NNGA) \ EL(_CANADIAN_SYLLABICS_NNGAA) \ EL(_CANADIAN_SYLLABICS_NNG) \ EL(_CANADIAN_SYLLABICS_LHI) \ EL(_CANADIAN_SYLLABICS_LHII) \ EL(_CANADIAN_SYLLABICS_LHO) \ EL(_CANADIAN_SYLLABICS_LHOO) \ EL(_CANADIAN_SYLLABICS_LHA) \ EL(_CANADIAN_SYLLABICS_LHAA) \ EL(_CANADIAN_SYLLABICS_LH) \ EL(_CANADIAN_SYLLABICS_NUNAVUT_H) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) #endif /* TUTF_MAC_INUIT_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_roman.h�����������������������������������������������������������������0000664�0000000�0000000�00000144013�13775351206�0017167�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_ROMAN_H #define TUTF_MAC_ROMAN_H #define T_MAC_ROMAN_CTRL_NULL 0x0000 #define T_MAC_ROMAN_CTRL_START_OF_HEADING 0x0001 #define T_MAC_ROMAN_CTRL_START_OF_TEXT 0x0002 #define T_MAC_ROMAN_CTRL_END_OF_TEXT 0x0003 #define T_MAC_ROMAN_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_ROMAN_CTRL_ENQUIRY 0x0005 #define T_MAC_ROMAN_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_ROMAN_CTRL_BELL 0x0007 #define T_MAC_ROMAN_CTRL_BACKSPACE 0x0008 #define T_MAC_ROMAN_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_ROMAN_CTRL_LINE_FEED 0x000A #define T_MAC_ROMAN_CTRL_LINE_TABULATION 0x000B #define T_MAC_ROMAN_CTRL_FORM_FEED 0x000C #define T_MAC_ROMAN_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_ROMAN_CTRL_SHIFT_OUT 0x000E #define T_MAC_ROMAN_CTRL_SHIFT_IN 0x000F #define T_MAC_ROMAN_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_ROMAN_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_ROMAN_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_ROMAN_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_ROMAN_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_ROMAN_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_ROMAN_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_ROMAN_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_ROMAN_CTRL_CANCEL 0x0018 #define T_MAC_ROMAN_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_ROMAN_CTRL_SUBSTITUTE 0x001A #define T_MAC_ROMAN_CTRL_ESCAPE 0x001B #define T_MAC_ROMAN_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_ROMAN_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_ROMAN_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_ROMAN_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_ROMAN_SPACE 0x0020 #define T_MAC_ROMAN_EXCLAMATION_MARK 0x0021 #define T_MAC_ROMAN_QUOTATION_MARK 0x0022 #define T_MAC_ROMAN_NUMBER_SIGN 0x0023 #define T_MAC_ROMAN_DOLLAR_SIGN 0x0024 #define T_MAC_ROMAN_PERCENT_SIGN 0x0025 #define T_MAC_ROMAN_AMPERSAND 0x0026 #define T_MAC_ROMAN_APOSTROPHE 0x0027 #define T_MAC_ROMAN_LEFT_PARENTHESIS 0x0028 #define T_MAC_ROMAN_RIGHT_PARENTHESIS 0x0029 #define T_MAC_ROMAN_ASTERISK 0x002A #define T_MAC_ROMAN_PLUS_SIGN 0x002B #define T_MAC_ROMAN_COMMA 0x002C #define T_MAC_ROMAN_HYPHEN_MINUS 0x002D #define T_MAC_ROMAN_FULL_STOP 0x002E #define T_MAC_ROMAN_SOLIDUS 0x002F #define T_MAC_ROMAN_DIGIT_ZERO 0x0030 #define T_MAC_ROMAN_DIGIT_ONE 0x0031 #define T_MAC_ROMAN_DIGIT_TWO 0x0032 #define T_MAC_ROMAN_DIGIT_THREE 0x0033 #define T_MAC_ROMAN_DIGIT_FOUR 0x0034 #define T_MAC_ROMAN_DIGIT_FIVE 0x0035 #define T_MAC_ROMAN_DIGIT_SIX 0x0036 #define T_MAC_ROMAN_DIGIT_SEVEN 0x0037 #define T_MAC_ROMAN_DIGIT_EIGHT 0x0038 #define T_MAC_ROMAN_DIGIT_NINE 0x0039 #define T_MAC_ROMAN_COLON 0x003A #define T_MAC_ROMAN_SEMICOLON 0x003B #define T_MAC_ROMAN_LESS_THAN_SIGN 0x003C #define T_MAC_ROMAN_EQUALS_SIGN 0x003D #define T_MAC_ROMAN_GREATER_THAN_SIGN 0x003E #define T_MAC_ROMAN_QUESTION_MARK 0x003F #define T_MAC_ROMAN_COMMERCIAL_AT 0x0040 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_ROMAN_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_ROMAN_REVERSE_SOLIDUS 0x005C #define T_MAC_ROMAN_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_ROMAN_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_ROMAN_LOW_LINE 0x005F #define T_MAC_ROMAN_GRAVE_ACCENT 0x0060 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_ROMAN_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_ROMAN_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_ROMAN_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_ROMAN_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_ROMAN_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_ROMAN_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_ROMAN_LEFT_CURLY_BRACKET 0x007B #define T_MAC_ROMAN_VERTICAL_LINE 0x007C #define T_MAC_ROMAN_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_ROMAN_TILDE 0x007E #define T_MAC_ROMAN_CTRL_DELETE 0x007F #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0081 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MAC_ROMAN_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_ROMAN_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_ROMAN_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_ROMAN_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MAC_ROMAN_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_ROMAN_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_ROMAN_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_ROMAN_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_ROMAN_DAGGER 0x00A0 #define T_MAC_ROMAN_DEGREE_SIGN 0x00A1 #define T_MAC_ROMAN_CENT_SIGN 0x00A2 #define T_MAC_ROMAN_POUND_SIGN 0x00A3 #define T_MAC_ROMAN_SECTION_SIGN 0x00A4 #define T_MAC_ROMAN_BULLET 0x00A5 #define T_MAC_ROMAN_PILCROW_SIGN 0x00A6 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MAC_ROMAN_REGISTERED_SIGN 0x00A8 #define T_MAC_ROMAN_COPYRIGHT_SIGN 0x00A9 #define T_MAC_ROMAN_TRADE_MARK_SIGN 0x00AA #define T_MAC_ROMAN_ACUTE_ACCENT 0x00AB #define T_MAC_ROMAN_DIAERESIS 0x00AC #define T_MAC_ROMAN_NOT_EQUAL_TO 0x00AD #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_AE 0x00AE #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00AF #define T_MAC_ROMAN_INFINITY 0x00B0 #define T_MAC_ROMAN_PLUS_MINUS_SIGN 0x00B1 #define T_MAC_ROMAN_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MAC_ROMAN_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_ROMAN_YEN_SIGN 0x00B4 #define T_MAC_ROMAN_MICRO_SIGN 0x00B5 #define T_MAC_ROMAN_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MAC_ROMAN_N_ARY_SUMMATION 0x00B7 #define T_MAC_ROMAN_N_ARY_PRODUCT 0x00B8 #define T_MAC_ROMAN_GREEK_SMALL_LETTER_PI 0x00B9 #define T_MAC_ROMAN_INTEGRAL 0x00BA #define T_MAC_ROMAN_FEMININE_ORDINAL_INDICATOR 0x00BB #define T_MAC_ROMAN_MASCULINE_ORDINAL_INDICATOR 0x00BC #define T_MAC_ROMAN_GREEK_CAPITAL_LETTER_OMEGA 0x00BD #define T_MAC_ROMAN_LATIN_SMALL_LETTER_AE 0x00BE #define T_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00BF #define T_MAC_ROMAN_INVERTED_QUESTION_MARK 0x00C0 #define T_MAC_ROMAN_INVERTED_EXCLAMATION_MARK 0x00C1 #define T_MAC_ROMAN_NOT_SIGN 0x00C2 #define T_MAC_ROMAN_SQUARE_ROOT 0x00C3 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MAC_ROMAN_ALMOST_EQUAL_TO 0x00C5 #define T_MAC_ROMAN_INCREMENT 0x00C6 #define T_MAC_ROMAN_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MAC_ROMAN_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MAC_ROMAN_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_ROMAN_NO_BREAK_SPACE 0x00CA #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00CB #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00CC #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MAC_ROMAN_LATIN_CAPITAL_LIGATURE_OE 0x00CE #define T_MAC_ROMAN_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MAC_ROMAN_EN_DASH 0x00D0 #define T_MAC_ROMAN_EM_DASH 0x00D1 #define T_MAC_ROMAN_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_ROMAN_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_ROMAN_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_ROMAN_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_ROMAN_DIVISION_SIGN 0x00D6 #define T_MAC_ROMAN_LOZENGE 0x00D7 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00D8 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00D9 #define T_MAC_ROMAN_FRACTION_SLASH 0x00DA #define T_MAC_ROMAN_EURO_SIGN 0x00DB #define T_MAC_ROMAN_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x00DC #define T_MAC_ROMAN_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x00DD #define T_MAC_ROMAN_LATIN_SMALL_LIGATURE_FI 0x00DE #define T_MAC_ROMAN_LATIN_SMALL_LIGATURE_FL 0x00DF #define T_MAC_ROMAN_DOUBLE_DAGGER 0x00E0 #define T_MAC_ROMAN_MIDDLE_DOT 0x00E1 #define T_MAC_ROMAN_SINGLE_LOW_9_QUOTATION_MARK 0x00E2 #define T_MAC_ROMAN_DOUBLE_LOW_9_QUOTATION_MARK 0x00E3 #define T_MAC_ROMAN_PER_MILLE_SIGN 0x00E4 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00E5 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00E6 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00E8 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00E9 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00EB #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00EC #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00ED #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MAC_ROMAN_UNDEFINED_00F0 0x00F0 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00F1 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00F3 #define T_MAC_ROMAN_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00F4 #define T_MAC_ROMAN_LATIN_SMALL_LETTER_DOTLESS_I 0x00F5 #define T_MAC_ROMAN_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x00F6 #define T_MAC_ROMAN_SMALL_TILDE 0x00F7 #define T_MAC_ROMAN_MACRON 0x00F8 #define T_MAC_ROMAN_BREVE 0x00F9 #define T_MAC_ROMAN_DOT_ABOVE 0x00FA #define T_MAC_ROMAN_RING_ABOVE 0x00FB #define T_MAC_ROMAN_CEDILLA 0x00FC #define T_MAC_ROMAN_DOUBLE_ACUTE_ACCENT 0x00FD #define T_MAC_ROMAN_OGONEK 0x00FE #define T_MAC_ROMAN_CARON 0x00FF /* list of all characters */ #define T_LIST_MAC_ROMAN(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_MICRO_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_EURO_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_FI) \ EL(_LATIN_SMALL_LIGATURE_FL) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_ROMAN(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_EURO_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_FI) \ EL(_LATIN_SMALL_LIGATURE_FL) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) #endif /* TUTF_MAC_ROMAN_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_romanian.h��������������������������������������������������������������0000664�0000000�0000000�00000145520�13775351206�0017663�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_ROMANIAN_H #define TUTF_MAC_ROMANIAN_H #define T_MAC_ROMANIAN_CTRL_NULL 0x0000 #define T_MAC_ROMANIAN_CTRL_START_OF_HEADING 0x0001 #define T_MAC_ROMANIAN_CTRL_START_OF_TEXT 0x0002 #define T_MAC_ROMANIAN_CTRL_END_OF_TEXT 0x0003 #define T_MAC_ROMANIAN_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_ROMANIAN_CTRL_ENQUIRY 0x0005 #define T_MAC_ROMANIAN_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_ROMANIAN_CTRL_BELL 0x0007 #define T_MAC_ROMANIAN_CTRL_BACKSPACE 0x0008 #define T_MAC_ROMANIAN_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_ROMANIAN_CTRL_LINE_FEED 0x000A #define T_MAC_ROMANIAN_CTRL_LINE_TABULATION 0x000B #define T_MAC_ROMANIAN_CTRL_FORM_FEED 0x000C #define T_MAC_ROMANIAN_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_ROMANIAN_CTRL_SHIFT_OUT 0x000E #define T_MAC_ROMANIAN_CTRL_SHIFT_IN 0x000F #define T_MAC_ROMANIAN_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_ROMANIAN_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_ROMANIAN_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_ROMANIAN_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_ROMANIAN_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_ROMANIAN_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_ROMANIAN_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_ROMANIAN_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_ROMANIAN_CTRL_CANCEL 0x0018 #define T_MAC_ROMANIAN_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_ROMANIAN_CTRL_SUBSTITUTE 0x001A #define T_MAC_ROMANIAN_CTRL_ESCAPE 0x001B #define T_MAC_ROMANIAN_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_ROMANIAN_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_ROMANIAN_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_ROMANIAN_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_ROMANIAN_SPACE 0x0020 #define T_MAC_ROMANIAN_EXCLAMATION_MARK 0x0021 #define T_MAC_ROMANIAN_QUOTATION_MARK 0x0022 #define T_MAC_ROMANIAN_NUMBER_SIGN 0x0023 #define T_MAC_ROMANIAN_DOLLAR_SIGN 0x0024 #define T_MAC_ROMANIAN_PERCENT_SIGN 0x0025 #define T_MAC_ROMANIAN_AMPERSAND 0x0026 #define T_MAC_ROMANIAN_APOSTROPHE 0x0027 #define T_MAC_ROMANIAN_LEFT_PARENTHESIS 0x0028 #define T_MAC_ROMANIAN_RIGHT_PARENTHESIS 0x0029 #define T_MAC_ROMANIAN_ASTERISK 0x002A #define T_MAC_ROMANIAN_PLUS_SIGN 0x002B #define T_MAC_ROMANIAN_COMMA 0x002C #define T_MAC_ROMANIAN_HYPHEN_MINUS 0x002D #define T_MAC_ROMANIAN_FULL_STOP 0x002E #define T_MAC_ROMANIAN_SOLIDUS 0x002F #define T_MAC_ROMANIAN_DIGIT_ZERO 0x0030 #define T_MAC_ROMANIAN_DIGIT_ONE 0x0031 #define T_MAC_ROMANIAN_DIGIT_TWO 0x0032 #define T_MAC_ROMANIAN_DIGIT_THREE 0x0033 #define T_MAC_ROMANIAN_DIGIT_FOUR 0x0034 #define T_MAC_ROMANIAN_DIGIT_FIVE 0x0035 #define T_MAC_ROMANIAN_DIGIT_SIX 0x0036 #define T_MAC_ROMANIAN_DIGIT_SEVEN 0x0037 #define T_MAC_ROMANIAN_DIGIT_EIGHT 0x0038 #define T_MAC_ROMANIAN_DIGIT_NINE 0x0039 #define T_MAC_ROMANIAN_COLON 0x003A #define T_MAC_ROMANIAN_SEMICOLON 0x003B #define T_MAC_ROMANIAN_LESS_THAN_SIGN 0x003C #define T_MAC_ROMANIAN_EQUALS_SIGN 0x003D #define T_MAC_ROMANIAN_GREATER_THAN_SIGN 0x003E #define T_MAC_ROMANIAN_QUESTION_MARK 0x003F #define T_MAC_ROMANIAN_COMMERCIAL_AT 0x0040 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_ROMANIAN_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_ROMANIAN_REVERSE_SOLIDUS 0x005C #define T_MAC_ROMANIAN_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_ROMANIAN_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_ROMANIAN_LOW_LINE 0x005F #define T_MAC_ROMANIAN_GRAVE_ACCENT 0x0060 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_ROMANIAN_LEFT_CURLY_BRACKET 0x007B #define T_MAC_ROMANIAN_VERTICAL_LINE 0x007C #define T_MAC_ROMANIAN_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_ROMANIAN_TILDE 0x007E #define T_MAC_ROMANIAN_CTRL_DELETE 0x007F #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0081 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_ROMANIAN_DAGGER 0x00A0 #define T_MAC_ROMANIAN_DEGREE_SIGN 0x00A1 #define T_MAC_ROMANIAN_CENT_SIGN 0x00A2 #define T_MAC_ROMANIAN_POUND_SIGN 0x00A3 #define T_MAC_ROMANIAN_SECTION_SIGN 0x00A4 #define T_MAC_ROMANIAN_BULLET 0x00A5 #define T_MAC_ROMANIAN_PILCROW_SIGN 0x00A6 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MAC_ROMANIAN_REGISTERED_SIGN 0x00A8 #define T_MAC_ROMANIAN_COPYRIGHT_SIGN 0x00A9 #define T_MAC_ROMANIAN_TRADE_MARK_SIGN 0x00AA #define T_MAC_ROMANIAN_ACUTE_ACCENT 0x00AB #define T_MAC_ROMANIAN_DIAERESIS 0x00AC #define T_MAC_ROMANIAN_NOT_EQUAL_TO 0x00AD #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_A_WITH_BREVE 0x00AE #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_S_WITH_COMMA_BELOW 0x00AF #define T_MAC_ROMANIAN_INFINITY 0x00B0 #define T_MAC_ROMANIAN_PLUS_MINUS_SIGN 0x00B1 #define T_MAC_ROMANIAN_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MAC_ROMANIAN_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_ROMANIAN_YEN_SIGN 0x00B4 #define T_MAC_ROMANIAN_MICRO_SIGN 0x00B5 #define T_MAC_ROMANIAN_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MAC_ROMANIAN_N_ARY_SUMMATION 0x00B7 #define T_MAC_ROMANIAN_N_ARY_PRODUCT 0x00B8 #define T_MAC_ROMANIAN_GREEK_SMALL_LETTER_PI 0x00B9 #define T_MAC_ROMANIAN_INTEGRAL 0x00BA #define T_MAC_ROMANIAN_FEMININE_ORDINAL_INDICATOR 0x00BB #define T_MAC_ROMANIAN_MASCULINE_ORDINAL_INDICATOR 0x00BC #define T_MAC_ROMANIAN_GREEK_CAPITAL_LETTER_OMEGA 0x00BD #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_A_WITH_BREVE 0x00BE #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_S_WITH_COMMA_BELOW 0x00BF #define T_MAC_ROMANIAN_INVERTED_QUESTION_MARK 0x00C0 #define T_MAC_ROMANIAN_INVERTED_EXCLAMATION_MARK 0x00C1 #define T_MAC_ROMANIAN_NOT_SIGN 0x00C2 #define T_MAC_ROMANIAN_SQUARE_ROOT 0x00C3 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MAC_ROMANIAN_ALMOST_EQUAL_TO 0x00C5 #define T_MAC_ROMANIAN_INCREMENT 0x00C6 #define T_MAC_ROMANIAN_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MAC_ROMANIAN_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MAC_ROMANIAN_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_ROMANIAN_NO_BREAK_SPACE 0x00CA #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00CB #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00CC #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MAC_ROMANIAN_LATIN_CAPITAL_LIGATURE_OE 0x00CE #define T_MAC_ROMANIAN_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MAC_ROMANIAN_EN_DASH 0x00D0 #define T_MAC_ROMANIAN_EM_DASH 0x00D1 #define T_MAC_ROMANIAN_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_ROMANIAN_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_ROMANIAN_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_ROMANIAN_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_ROMANIAN_DIVISION_SIGN 0x00D6 #define T_MAC_ROMANIAN_LOZENGE 0x00D7 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00D8 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00D9 #define T_MAC_ROMANIAN_FRACTION_SLASH 0x00DA #define T_MAC_ROMANIAN_EURO_SIGN 0x00DB #define T_MAC_ROMANIAN_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x00DC #define T_MAC_ROMANIAN_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x00DD #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_T_WITH_COMMA_BELOW 0x00DE #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_T_WITH_COMMA_BELOW 0x00DF #define T_MAC_ROMANIAN_DOUBLE_DAGGER 0x00E0 #define T_MAC_ROMANIAN_MIDDLE_DOT 0x00E1 #define T_MAC_ROMANIAN_SINGLE_LOW_9_QUOTATION_MARK 0x00E2 #define T_MAC_ROMANIAN_DOUBLE_LOW_9_QUOTATION_MARK 0x00E3 #define T_MAC_ROMANIAN_PER_MILLE_SIGN 0x00E4 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00E5 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00E6 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00E8 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00E9 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00EB #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00EC #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00ED #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MAC_ROMANIAN_UNDEFINED_00F0 0x00F0 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00F1 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00F3 #define T_MAC_ROMANIAN_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00F4 #define T_MAC_ROMANIAN_LATIN_SMALL_LETTER_DOTLESS_I 0x00F5 #define T_MAC_ROMANIAN_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x00F6 #define T_MAC_ROMANIAN_SMALL_TILDE 0x00F7 #define T_MAC_ROMANIAN_MACRON 0x00F8 #define T_MAC_ROMANIAN_BREVE 0x00F9 #define T_MAC_ROMANIAN_DOT_ABOVE 0x00FA #define T_MAC_ROMANIAN_RING_ABOVE 0x00FB #define T_MAC_ROMANIAN_CEDILLA 0x00FC #define T_MAC_ROMANIAN_DOUBLE_ACUTE_ACCENT 0x00FD #define T_MAC_ROMANIAN_OGONEK 0x00FE #define T_MAC_ROMANIAN_CARON 0x00FF /* list of all characters */ #define T_LIST_MAC_ROMANIAN(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_COMMA_BELOW) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_MICRO_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_S_WITH_COMMA_BELOW) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_EURO_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_COMMA_BELOW) \ EL(_LATIN_SMALL_LETTER_T_WITH_COMMA_BELOW) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_ROMANIAN(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_COMMA_BELOW) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_A_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_S_WITH_COMMA_BELOW) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_EURO_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_COMMA_BELOW) \ EL(_LATIN_SMALL_LETTER_T_WITH_COMMA_BELOW) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) #endif /* TUTF_MAC_ROMANIAN_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_symbol.h����������������������������������������������������������������0000664�0000000�0000000�00000126350�13775351206�0017364�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_SYMBOL_H #define TUTF_MAC_SYMBOL_H #define T_MAC_SYMBOL_CTRL_NULL 0x0000 #define T_MAC_SYMBOL_CTRL_START_OF_HEADING 0x0001 #define T_MAC_SYMBOL_CTRL_START_OF_TEXT 0x0002 #define T_MAC_SYMBOL_CTRL_END_OF_TEXT 0x0003 #define T_MAC_SYMBOL_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_SYMBOL_CTRL_ENQUIRY 0x0005 #define T_MAC_SYMBOL_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_SYMBOL_CTRL_BELL 0x0007 #define T_MAC_SYMBOL_CTRL_BACKSPACE 0x0008 #define T_MAC_SYMBOL_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_SYMBOL_CTRL_LINE_FEED 0x000A #define T_MAC_SYMBOL_CTRL_LINE_TABULATION 0x000B #define T_MAC_SYMBOL_CTRL_FORM_FEED 0x000C #define T_MAC_SYMBOL_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_SYMBOL_CTRL_SHIFT_OUT 0x000E #define T_MAC_SYMBOL_CTRL_SHIFT_IN 0x000F #define T_MAC_SYMBOL_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_SYMBOL_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_SYMBOL_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_SYMBOL_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_SYMBOL_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_SYMBOL_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_SYMBOL_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_SYMBOL_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_SYMBOL_CTRL_CANCEL 0x0018 #define T_MAC_SYMBOL_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_SYMBOL_CTRL_SUBSTITUTE 0x001A #define T_MAC_SYMBOL_CTRL_ESCAPE 0x001B #define T_MAC_SYMBOL_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_SYMBOL_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_SYMBOL_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_SYMBOL_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_SYMBOL_SPACE 0x0020 #define T_MAC_SYMBOL_EXCLAMATION_MARK 0x0021 #define T_MAC_SYMBOL_QUOTATION_MARK 0x0022 #define T_MAC_SYMBOL_NUMBER_SIGN 0x0023 #define T_MAC_SYMBOL_DOLLAR_SIGN 0x0024 #define T_MAC_SYMBOL_PERCENT_SIGN 0x0025 #define T_MAC_SYMBOL_AMPERSAND 0x0026 #define T_MAC_SYMBOL_APOSTROPHE 0x0027 #define T_MAC_SYMBOL_LEFT_PARENTHESIS 0x0028 #define T_MAC_SYMBOL_RIGHT_PARENTHESIS 0x0029 #define T_MAC_SYMBOL_ASTERISK 0x002A #define T_MAC_SYMBOL_PLUS_SIGN 0x002B #define T_MAC_SYMBOL_COMMA 0x002C #define T_MAC_SYMBOL_HYPHEN_MINUS 0x002D #define T_MAC_SYMBOL_FULL_STOP 0x002E #define T_MAC_SYMBOL_SOLIDUS 0x002F #define T_MAC_SYMBOL_DIGIT_ZERO 0x0030 #define T_MAC_SYMBOL_DIGIT_ONE 0x0031 #define T_MAC_SYMBOL_DIGIT_TWO 0x0032 #define T_MAC_SYMBOL_DIGIT_THREE 0x0033 #define T_MAC_SYMBOL_DIGIT_FOUR 0x0034 #define T_MAC_SYMBOL_DIGIT_FIVE 0x0035 #define T_MAC_SYMBOL_DIGIT_SIX 0x0036 #define T_MAC_SYMBOL_DIGIT_SEVEN 0x0037 #define T_MAC_SYMBOL_DIGIT_EIGHT 0x0038 #define T_MAC_SYMBOL_DIGIT_NINE 0x0039 #define T_MAC_SYMBOL_COLON 0x003A #define T_MAC_SYMBOL_SEMICOLON 0x003B #define T_MAC_SYMBOL_LESS_THAN_SIGN 0x003C #define T_MAC_SYMBOL_EQUALS_SIGN 0x003D #define T_MAC_SYMBOL_GREATER_THAN_SIGN 0x003E #define T_MAC_SYMBOL_QUESTION_MARK 0x003F #define T_MAC_SYMBOL_COMMERCIAL_AT 0x0040 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_SYMBOL_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_SYMBOL_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_SYMBOL_REVERSE_SOLIDUS 0x005C #define T_MAC_SYMBOL_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_SYMBOL_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_SYMBOL_LOW_LINE 0x005F #define T_MAC_SYMBOL_GRAVE_ACCENT 0x0060 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_SYMBOL_LEFT_CURLY_BRACKET 0x007B #define T_MAC_SYMBOL_VERTICAL_LINE 0x007C #define T_MAC_SYMBOL_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_SYMBOL_TILDE 0x007E #define T_MAC_SYMBOL_CTRL_DELETE 0x007F #define T_MAC_SYMBOL_UNDEFINED_0080 0x0080 #define T_MAC_SYMBOL_UNDEFINED_0081 0x0081 #define T_MAC_SYMBOL_UNDEFINED_0082 0x0082 #define T_MAC_SYMBOL_UNDEFINED_0083 0x0083 #define T_MAC_SYMBOL_UNDEFINED_0084 0x0084 #define T_MAC_SYMBOL_UNDEFINED_0085 0x0085 #define T_MAC_SYMBOL_UNDEFINED_0086 0x0086 #define T_MAC_SYMBOL_UNDEFINED_0087 0x0087 #define T_MAC_SYMBOL_UNDEFINED_0088 0x0088 #define T_MAC_SYMBOL_UNDEFINED_0089 0x0089 #define T_MAC_SYMBOL_UNDEFINED_008A 0x008A #define T_MAC_SYMBOL_UNDEFINED_008B 0x008B #define T_MAC_SYMBOL_UNDEFINED_008C 0x008C #define T_MAC_SYMBOL_UNDEFINED_008D 0x008D #define T_MAC_SYMBOL_UNDEFINED_008E 0x008E #define T_MAC_SYMBOL_UNDEFINED_008F 0x008F #define T_MAC_SYMBOL_UNDEFINED_0090 0x0090 #define T_MAC_SYMBOL_UNDEFINED_0091 0x0091 #define T_MAC_SYMBOL_UNDEFINED_0092 0x0092 #define T_MAC_SYMBOL_UNDEFINED_0093 0x0093 #define T_MAC_SYMBOL_UNDEFINED_0094 0x0094 #define T_MAC_SYMBOL_UNDEFINED_0095 0x0095 #define T_MAC_SYMBOL_UNDEFINED_0096 0x0096 #define T_MAC_SYMBOL_UNDEFINED_0097 0x0097 #define T_MAC_SYMBOL_UNDEFINED_0098 0x0098 #define T_MAC_SYMBOL_UNDEFINED_0099 0x0099 #define T_MAC_SYMBOL_UNDEFINED_009A 0x009A #define T_MAC_SYMBOL_UNDEFINED_009B 0x009B #define T_MAC_SYMBOL_UNDEFINED_009C 0x009C #define T_MAC_SYMBOL_UNDEFINED_009D 0x009D #define T_MAC_SYMBOL_UNDEFINED_009E 0x009E #define T_MAC_SYMBOL_UNDEFINED_009F 0x009F #define T_MAC_SYMBOL_EURO_SIGN 0x00A0 #define T_MAC_SYMBOL_GREEK_UPSILON_WITH_HOOK_SYMBOL 0x00A1 #define T_MAC_SYMBOL_PRIME 0x00A2 #define T_MAC_SYMBOL_LESS_THAN_OR_EQUAL_TO 0x00A3 #define T_MAC_SYMBOL_FRACTION_SLASH 0x00A4 #define T_MAC_SYMBOL_INFINITY 0x00A5 #define T_MAC_SYMBOL_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00A6 #define T_MAC_SYMBOL_BLACK_CLUB_SUIT 0x00A7 #define T_MAC_SYMBOL_BLACK_DIAMOND_SUIT 0x00A8 #define T_MAC_SYMBOL_BLACK_HEART_SUIT 0x00A9 #define T_MAC_SYMBOL_BLACK_SPADE_SUIT 0x00AA #define T_MAC_SYMBOL_LEFT_RIGHT_ARROW 0x00AB #define T_MAC_SYMBOL_LEFTWARDS_ARROW 0x00AC #define T_MAC_SYMBOL_UPWARDS_ARROW 0x00AD #define T_MAC_SYMBOL_RIGHTWARDS_ARROW 0x00AE #define T_MAC_SYMBOL_DOWNWARDS_ARROW 0x00AF #define T_MAC_SYMBOL_DEGREE_SIGN 0x00B0 #define T_MAC_SYMBOL_PLUS_MINUS_SIGN 0x00B1 #define T_MAC_SYMBOL_DOUBLE_PRIME 0x00B2 #define T_MAC_SYMBOL_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_SYMBOL_MULTIPLICATION_SIGN 0x00B4 #define T_MAC_SYMBOL_PROPORTIONAL_TO 0x00B5 #define T_MAC_SYMBOL_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MAC_SYMBOL_BULLET 0x00B7 #define T_MAC_SYMBOL_DIVISION_SIGN 0x00B8 #define T_MAC_SYMBOL_NOT_EQUAL_TO 0x00B9 #define T_MAC_SYMBOL_IDENTICAL_TO 0x00BA #define T_MAC_SYMBOL_ALMOST_EQUAL_TO 0x00BB #define T_MAC_SYMBOL_HORIZONTAL_ELLIPSIS 0x00BC #define T_MAC_SYMBOL_VERTICAL_LINE_EXTENSION 0x00BD #define T_MAC_SYMBOL_HORIZONTAL_LINE_EXTENSION 0x00BE #define T_MAC_SYMBOL_DOWNWARDS_ARROW_WITH_CORNER_LEFTWARDS 0x00BF #define T_MAC_SYMBOL_ALEF_SYMBOL 0x00C0 #define T_MAC_SYMBOL_BLACK_LETTER_CAPITAL_I 0x00C1 #define T_MAC_SYMBOL_BLACK_LETTER_CAPITAL_R 0x00C2 #define T_MAC_SYMBOL_SCRIPT_CAPITAL_P 0x00C3 #define T_MAC_SYMBOL_CIRCLED_TIMES 0x00C4 #define T_MAC_SYMBOL_CIRCLED_PLUS 0x00C5 #define T_MAC_SYMBOL_EMPTY_SET 0x00C6 #define T_MAC_SYMBOL_INTERSECTION 0x00C7 #define T_MAC_SYMBOL_UNION 0x00C8 #define T_MAC_SYMBOL_SUPERSET_OF 0x00C9 #define T_MAC_SYMBOL_SUPERSET_OF_OR_EQUAL_TO 0x00CA #define T_MAC_SYMBOL_NOT_A_SUBSET_OF 0x00CB #define T_MAC_SYMBOL_SUBSET_OF 0x00CC #define T_MAC_SYMBOL_SUBSET_OF_OR_EQUAL_TO 0x00CD #define T_MAC_SYMBOL_ELEMENT_OF 0x00CE #define T_MAC_SYMBOL_NOT_AN_ELEMENT_OF 0x00CF #define T_MAC_SYMBOL_ANGLE 0x00D0 #define T_MAC_SYMBOL_NABLA 0x00D1 #define T_MAC_SYMBOL_REGISTERED_SIGN 0x00D2 #define T_MAC_SYMBOL_COPYRIGHT_SIGN 0x00D3 #define T_MAC_SYMBOL_TRADE_MARK_SIGN 0x00D4 #define T_MAC_SYMBOL_N_ARY_PRODUCT 0x00D5 #define T_MAC_SYMBOL_SQUARE_ROOT 0x00D6 #define T_MAC_SYMBOL_DOT_OPERATOR 0x00D7 #define T_MAC_SYMBOL_NOT_SIGN 0x00D8 #define T_MAC_SYMBOL_LOGICAL_AND 0x00D9 #define T_MAC_SYMBOL_LOGICAL_OR 0x00DA #define T_MAC_SYMBOL_LEFT_RIGHT_DOUBLE_ARROW 0x00DB #define T_MAC_SYMBOL_LEFTWARDS_DOUBLE_ARROW 0x00DC #define T_MAC_SYMBOL_UPWARDS_DOUBLE_ARROW 0x00DD #define T_MAC_SYMBOL_RIGHTWARDS_DOUBLE_ARROW 0x00DE #define T_MAC_SYMBOL_DOWNWARDS_DOUBLE_ARROW 0x00DF #define T_MAC_SYMBOL_LOZENGE 0x00E0 #define T_MAC_SYMBOL_LEFT_ANGLE_BRACKET 0x00E1 #define T_MAC_SYMBOL_CJK_COMPATIBILITY_IDEOGRAPH_F92D 0x00E2 #define T_MAC_SYMBOL_CJK_COMPATIBILITY_IDEOGRAPH_F928 0x00E3 #define T_MAC_SYMBOL_UNDEFINED_00E4 0x00E4 #define T_MAC_SYMBOL_N_ARY_SUMMATION 0x00E5 #define T_MAC_SYMBOL_LEFT_PARENTHESIS_UPPER_HOOK 0x00E6 #define T_MAC_SYMBOL_LEFT_PARENTHESIS_EXTENSION 0x00E7 #define T_MAC_SYMBOL_LEFT_PARENTHESIS_LOWER_HOOK 0x00E8 #define T_MAC_SYMBOL_LEFT_SQUARE_BRACKET_UPPER_CORNER 0x00E9 #define T_MAC_SYMBOL_LEFT_SQUARE_BRACKET_EXTENSION 0x00EA #define T_MAC_SYMBOL_LEFT_SQUARE_BRACKET_LOWER_CORNER 0x00EB #define T_MAC_SYMBOL_LEFT_CURLY_BRACKET_UPPER_HOOK 0x00EC #define T_MAC_SYMBOL_LEFT_CURLY_BRACKET_MIDDLE_PIECE 0x00ED #define T_MAC_SYMBOL_LEFT_CURLY_BRACKET_LOWER_HOOK 0x00EE #define T_MAC_SYMBOL_CURLY_BRACKET_EXTENSION 0x00EF #define T_MAC_SYMBOL_UNDEFINED_00F0 0x00F0 #define T_MAC_SYMBOL_RIGHT_ANGLE_BRACKET 0x00F1 #define T_MAC_SYMBOL_INTEGRAL 0x00F2 #define T_MAC_SYMBOL_TOP_HALF_INTEGRAL 0x00F3 #define T_MAC_SYMBOL_INTEGRAL_EXTENSION 0x00F4 #define T_MAC_SYMBOL_BOTTOM_HALF_INTEGRAL 0x00F5 #define T_MAC_SYMBOL_RIGHT_PARENTHESIS_UPPER_HOOK 0x00F6 #define T_MAC_SYMBOL_RIGHT_PARENTHESIS_EXTENSION 0x00F7 #define T_MAC_SYMBOL_RIGHT_PARENTHESIS_LOWER_HOOK 0x00F8 #define T_MAC_SYMBOL_RIGHT_SQUARE_BRACKET_UPPER_CORNER 0x00F9 #define T_MAC_SYMBOL_RIGHT_SQUARE_BRACKET_EXTENSION 0x00FA #define T_MAC_SYMBOL_RIGHT_SQUARE_BRACKET_LOWER_CORNER 0x00FB #define T_MAC_SYMBOL_RIGHT_CURLY_BRACKET_UPPER_HOOK 0x00FC #define T_MAC_SYMBOL_RIGHT_CURLY_BRACKET_MIDDLE_PIECE 0x00FD #define T_MAC_SYMBOL_RIGHT_CURLY_BRACKET_LOWER_HOOK 0x00FE #define T_MAC_SYMBOL_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_MAC_SYMBOL(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_EURO_SIGN) \ EL(_GREEK_UPSILON_WITH_HOOK_SYMBOL) \ EL(_PRIME) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_FRACTION_SLASH) \ EL(_INFINITY) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_BLACK_CLUB_SUIT) \ EL(_BLACK_DIAMOND_SUIT) \ EL(_BLACK_HEART_SUIT) \ EL(_BLACK_SPADE_SUIT) \ EL(_LEFT_RIGHT_ARROW) \ EL(_LEFTWARDS_ARROW) \ EL(_UPWARDS_ARROW) \ EL(_RIGHTWARDS_ARROW) \ EL(_DOWNWARDS_ARROW) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_DOUBLE_PRIME) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_MULTIPLICATION_SIGN) \ EL(_PROPORTIONAL_TO) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_BULLET) \ EL(_DIVISION_SIGN) \ EL(_NOT_EQUAL_TO) \ EL(_IDENTICAL_TO) \ EL(_ALMOST_EQUAL_TO) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_VERTICAL_LINE_EXTENSION) \ EL(_HORIZONTAL_LINE_EXTENSION) \ EL(_DOWNWARDS_ARROW_WITH_CORNER_LEFTWARDS) \ EL(_ALEF_SYMBOL) \ EL(_BLACK_LETTER_CAPITAL_I) \ EL(_BLACK_LETTER_CAPITAL_R) \ EL(_SCRIPT_CAPITAL_P) \ EL(_CIRCLED_TIMES) \ EL(_CIRCLED_PLUS) \ EL(_EMPTY_SET) \ EL(_INTERSECTION) \ EL(_UNION) \ EL(_SUPERSET_OF) \ EL(_SUPERSET_OF_OR_EQUAL_TO) \ EL(_NOT_A_SUBSET_OF) \ EL(_SUBSET_OF) \ EL(_SUBSET_OF_OR_EQUAL_TO) \ EL(_ELEMENT_OF) \ EL(_NOT_AN_ELEMENT_OF) \ EL(_ANGLE) \ EL(_NABLA) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_N_ARY_PRODUCT) \ EL(_SQUARE_ROOT) \ EL(_DOT_OPERATOR) \ EL(_NOT_SIGN) \ EL(_LOGICAL_AND) \ EL(_LOGICAL_OR) \ EL(_LEFT_RIGHT_DOUBLE_ARROW) \ EL(_LEFTWARDS_DOUBLE_ARROW) \ EL(_UPWARDS_DOUBLE_ARROW) \ EL(_RIGHTWARDS_DOUBLE_ARROW) \ EL(_DOWNWARDS_DOUBLE_ARROW) \ EL(_LOZENGE) \ EL(_LEFT_ANGLE_BRACKET) \ EL(_CJK_COMPATIBILITY_IDEOGRAPH_F92D) \ EL(_CJK_COMPATIBILITY_IDEOGRAPH_F928) \ EL(_UNDEFINED_00E4) \ EL(_N_ARY_SUMMATION) \ EL(_LEFT_PARENTHESIS_UPPER_HOOK) \ EL(_LEFT_PARENTHESIS_EXTENSION) \ EL(_LEFT_PARENTHESIS_LOWER_HOOK) \ EL(_LEFT_SQUARE_BRACKET_UPPER_CORNER) \ EL(_LEFT_SQUARE_BRACKET_EXTENSION) \ EL(_LEFT_SQUARE_BRACKET_LOWER_CORNER) \ EL(_LEFT_CURLY_BRACKET_UPPER_HOOK) \ EL(_LEFT_CURLY_BRACKET_MIDDLE_PIECE) \ EL(_LEFT_CURLY_BRACKET_LOWER_HOOK) \ EL(_CURLY_BRACKET_EXTENSION) \ EL(_UNDEFINED_00F0) \ EL(_RIGHT_ANGLE_BRACKET) \ EL(_INTEGRAL) \ EL(_TOP_HALF_INTEGRAL) \ EL(_INTEGRAL_EXTENSION) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_RIGHT_PARENTHESIS_UPPER_HOOK) \ EL(_RIGHT_PARENTHESIS_EXTENSION) \ EL(_RIGHT_PARENTHESIS_LOWER_HOOK) \ EL(_RIGHT_SQUARE_BRACKET_UPPER_CORNER) \ EL(_RIGHT_SQUARE_BRACKET_EXTENSION) \ EL(_RIGHT_SQUARE_BRACKET_LOWER_CORNER) \ EL(_RIGHT_CURLY_BRACKET_UPPER_HOOK) \ EL(_RIGHT_CURLY_BRACKET_MIDDLE_PIECE) \ EL(_RIGHT_CURLY_BRACKET_LOWER_HOOK) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_SYMBOL(EL) \ EL(_EURO_SIGN) \ EL(_GREEK_UPSILON_WITH_HOOK_SYMBOL) \ EL(_PRIME) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_FRACTION_SLASH) \ EL(_INFINITY) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_BLACK_CLUB_SUIT) \ EL(_BLACK_DIAMOND_SUIT) \ EL(_BLACK_HEART_SUIT) \ EL(_BLACK_SPADE_SUIT) \ EL(_LEFT_RIGHT_ARROW) \ EL(_LEFTWARDS_ARROW) \ EL(_UPWARDS_ARROW) \ EL(_RIGHTWARDS_ARROW) \ EL(_DOWNWARDS_ARROW) \ EL(_DOUBLE_PRIME) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_MULTIPLICATION_SIGN) \ EL(_PROPORTIONAL_TO) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_BULLET) \ EL(_DIVISION_SIGN) \ EL(_NOT_EQUAL_TO) \ EL(_IDENTICAL_TO) \ EL(_ALMOST_EQUAL_TO) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_VERTICAL_LINE_EXTENSION) \ EL(_HORIZONTAL_LINE_EXTENSION) \ EL(_DOWNWARDS_ARROW_WITH_CORNER_LEFTWARDS) \ EL(_ALEF_SYMBOL) \ EL(_BLACK_LETTER_CAPITAL_I) \ EL(_BLACK_LETTER_CAPITAL_R) \ EL(_SCRIPT_CAPITAL_P) \ EL(_CIRCLED_TIMES) \ EL(_CIRCLED_PLUS) \ EL(_EMPTY_SET) \ EL(_INTERSECTION) \ EL(_UNION) \ EL(_SUPERSET_OF) \ EL(_SUPERSET_OF_OR_EQUAL_TO) \ EL(_NOT_A_SUBSET_OF) \ EL(_SUBSET_OF) \ EL(_SUBSET_OF_OR_EQUAL_TO) \ EL(_ELEMENT_OF) \ EL(_NOT_AN_ELEMENT_OF) \ EL(_ANGLE) \ EL(_NABLA) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_N_ARY_PRODUCT) \ EL(_SQUARE_ROOT) \ EL(_DOT_OPERATOR) \ EL(_NOT_SIGN) \ EL(_LOGICAL_AND) \ EL(_LOGICAL_OR) \ EL(_LEFT_RIGHT_DOUBLE_ARROW) \ EL(_LEFTWARDS_DOUBLE_ARROW) \ EL(_UPWARDS_DOUBLE_ARROW) \ EL(_RIGHTWARDS_DOUBLE_ARROW) \ EL(_DOWNWARDS_DOUBLE_ARROW) \ EL(_LOZENGE) \ EL(_LEFT_ANGLE_BRACKET) \ EL(_CJK_COMPATIBILITY_IDEOGRAPH_F92D) \ EL(_CJK_COMPATIBILITY_IDEOGRAPH_F928) \ EL(_UNDEFINED_00E4) \ EL(_N_ARY_SUMMATION) \ EL(_LEFT_PARENTHESIS_UPPER_HOOK) \ EL(_LEFT_PARENTHESIS_EXTENSION) \ EL(_LEFT_PARENTHESIS_LOWER_HOOK) \ EL(_LEFT_SQUARE_BRACKET_UPPER_CORNER) \ EL(_LEFT_SQUARE_BRACKET_EXTENSION) \ EL(_LEFT_SQUARE_BRACKET_LOWER_CORNER) \ EL(_LEFT_CURLY_BRACKET_UPPER_HOOK) \ EL(_LEFT_CURLY_BRACKET_MIDDLE_PIECE) \ EL(_LEFT_CURLY_BRACKET_LOWER_HOOK) \ EL(_CURLY_BRACKET_EXTENSION) \ EL(_UNDEFINED_00F0) \ EL(_RIGHT_ANGLE_BRACKET) \ EL(_INTEGRAL) \ EL(_TOP_HALF_INTEGRAL) \ EL(_INTEGRAL_EXTENSION) \ EL(_BOTTOM_HALF_INTEGRAL) \ EL(_RIGHT_PARENTHESIS_UPPER_HOOK) \ EL(_RIGHT_PARENTHESIS_EXTENSION) \ EL(_RIGHT_PARENTHESIS_LOWER_HOOK) \ EL(_RIGHT_SQUARE_BRACKET_UPPER_CORNER) \ EL(_RIGHT_SQUARE_BRACKET_EXTENSION) \ EL(_RIGHT_SQUARE_BRACKET_LOWER_CORNER) \ EL(_RIGHT_CURLY_BRACKET_UPPER_HOOK) \ EL(_RIGHT_CURLY_BRACKET_MIDDLE_PIECE) \ EL(_RIGHT_CURLY_BRACKET_LOWER_HOOK) #endif /* TUTF_MAC_SYMBOL_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/mac_thai.h������������������������������������������������������������������0000664�0000000�0000000�00000140766�13775351206�0017013�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_THAI_H #define TUTF_MAC_THAI_H #define T_MAC_THAI_CTRL_NULL 0x0000 #define T_MAC_THAI_CTRL_START_OF_HEADING 0x0001 #define T_MAC_THAI_CTRL_START_OF_TEXT 0x0002 #define T_MAC_THAI_CTRL_END_OF_TEXT 0x0003 #define T_MAC_THAI_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_THAI_CTRL_ENQUIRY 0x0005 #define T_MAC_THAI_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_THAI_CTRL_BELL 0x0007 #define T_MAC_THAI_CTRL_BACKSPACE 0x0008 #define T_MAC_THAI_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_THAI_CTRL_LINE_FEED 0x000A #define T_MAC_THAI_CTRL_LINE_TABULATION 0x000B #define T_MAC_THAI_CTRL_FORM_FEED 0x000C #define T_MAC_THAI_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_THAI_CTRL_SHIFT_OUT 0x000E #define T_MAC_THAI_CTRL_SHIFT_IN 0x000F #define T_MAC_THAI_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_THAI_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_THAI_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_THAI_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_THAI_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_THAI_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_THAI_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_THAI_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_THAI_CTRL_CANCEL 0x0018 #define T_MAC_THAI_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_THAI_CTRL_SUBSTITUTE 0x001A #define T_MAC_THAI_CTRL_ESCAPE 0x001B #define T_MAC_THAI_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_THAI_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_THAI_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_THAI_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_THAI_SPACE 0x0020 #define T_MAC_THAI_EXCLAMATION_MARK 0x0021 #define T_MAC_THAI_QUOTATION_MARK 0x0022 #define T_MAC_THAI_NUMBER_SIGN 0x0023 #define T_MAC_THAI_DOLLAR_SIGN 0x0024 #define T_MAC_THAI_PERCENT_SIGN 0x0025 #define T_MAC_THAI_AMPERSAND 0x0026 #define T_MAC_THAI_APOSTROPHE 0x0027 #define T_MAC_THAI_LEFT_PARENTHESIS 0x0028 #define T_MAC_THAI_RIGHT_PARENTHESIS 0x0029 #define T_MAC_THAI_ASTERISK 0x002A #define T_MAC_THAI_PLUS_SIGN 0x002B #define T_MAC_THAI_COMMA 0x002C #define T_MAC_THAI_HYPHEN_MINUS 0x002D #define T_MAC_THAI_FULL_STOP 0x002E #define T_MAC_THAI_SOLIDUS 0x002F #define T_MAC_THAI_DIGIT_ZERO 0x0030 #define T_MAC_THAI_DIGIT_ONE 0x0031 #define T_MAC_THAI_DIGIT_TWO 0x0032 #define T_MAC_THAI_DIGIT_THREE 0x0033 #define T_MAC_THAI_DIGIT_FOUR 0x0034 #define T_MAC_THAI_DIGIT_FIVE 0x0035 #define T_MAC_THAI_DIGIT_SIX 0x0036 #define T_MAC_THAI_DIGIT_SEVEN 0x0037 #define T_MAC_THAI_DIGIT_EIGHT 0x0038 #define T_MAC_THAI_DIGIT_NINE 0x0039 #define T_MAC_THAI_COLON 0x003A #define T_MAC_THAI_SEMICOLON 0x003B #define T_MAC_THAI_LESS_THAN_SIGN 0x003C #define T_MAC_THAI_EQUALS_SIGN 0x003D #define T_MAC_THAI_GREATER_THAN_SIGN 0x003E #define T_MAC_THAI_QUESTION_MARK 0x003F #define T_MAC_THAI_COMMERCIAL_AT 0x0040 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_THAI_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_THAI_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_THAI_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_THAI_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_THAI_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_THAI_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_THAI_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_THAI_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_THAI_REVERSE_SOLIDUS 0x005C #define T_MAC_THAI_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_THAI_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_THAI_LOW_LINE 0x005F #define T_MAC_THAI_GRAVE_ACCENT 0x0060 #define T_MAC_THAI_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_THAI_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_THAI_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_THAI_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_THAI_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_THAI_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_THAI_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_THAI_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_THAI_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_THAI_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_THAI_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_THAI_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_THAI_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_THAI_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_THAI_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_THAI_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_THAI_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_THAI_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_THAI_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_THAI_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_THAI_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_THAI_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_THAI_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_THAI_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_THAI_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_THAI_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_THAI_LEFT_CURLY_BRACKET 0x007B #define T_MAC_THAI_VERTICAL_LINE 0x007C #define T_MAC_THAI_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_THAI_TILDE 0x007E #define T_MAC_THAI_CTRL_DELETE 0x007F #define T_MAC_THAI_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x0080 #define T_MAC_THAI_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x0081 #define T_MAC_THAI_HORIZONTAL_ELLIPSIS 0x0082 #define T_MAC_THAI_LINEAR_A_SIGN_A512 0x0083 #define T_MAC_THAI_LINEAR_A_SIGN_A513 0x0084 #define T_MAC_THAI_LINEAR_A_SIGN_A515 0x0085 #define T_MAC_THAI_LINEAR_A_SIGN_A516 0x0086 #define T_MAC_THAI_LINEAR_A_SIGN_A520 0x0087 #define T_MAC_THAI_LINEAR_A_SIGN_A510 0x0088 #define T_MAC_THAI_LINEAR_A_SIGN_A511 0x0089 #define T_MAC_THAI_UNDEFINED_008A 0x008A #define T_MAC_THAI_UNDEFINED_008B 0x008B #define T_MAC_THAI_UNDEFINED_008C 0x008C #define T_MAC_THAI_LEFT_DOUBLE_QUOTATION_MARK 0x008D #define T_MAC_THAI_RIGHT_DOUBLE_QUOTATION_MARK 0x008E #define T_MAC_THAI_UNDEFINED_008F 0x008F #define T_MAC_THAI_UNDEFINED_0090 0x0090 #define T_MAC_THAI_BULLET 0x0091 #define T_MAC_THAI_LINEAR_A_SIGN_A405_VAS 0x0092 #define T_MAC_THAI_UNDEFINED_0093 0x0093 #define T_MAC_THAI_LINEAR_A_SIGN_A408_VAS 0x0094 #define T_MAC_THAI_LINEAR_A_SIGN_A409_VAS 0x0095 #define T_MAC_THAI_LINEAR_A_SIGN_A410_VAS 0x0096 #define T_MAC_THAI_LINEAR_A_SIGN_A411_VAS 0x0097 #define T_MAC_THAI_UNDEFINED_0098 0x0098 #define T_MAC_THAI_UNDEFINED_0099 0x0099 #define T_MAC_THAI_UNDEFINED_009A 0x009A #define T_MAC_THAI_UNDEFINED_009B 0x009B #define T_MAC_THAI_UNDEFINED_009C 0x009C #define T_MAC_THAI_LEFT_SINGLE_QUOTATION_MARK 0x009D #define T_MAC_THAI_RIGHT_SINGLE_QUOTATION_MARK 0x009E #define T_MAC_THAI_UNDEFINED_009F 0x009F #define T_MAC_THAI_NO_BREAK_SPACE 0x00A0 #define T_MAC_THAI_THAI_CHARACTER_KO_KAI 0x00A1 #define T_MAC_THAI_THAI_CHARACTER_KHO_KHAI 0x00A2 #define T_MAC_THAI_THAI_CHARACTER_KHO_KHUAT 0x00A3 #define T_MAC_THAI_THAI_CHARACTER_KHO_KHWAI 0x00A4 #define T_MAC_THAI_THAI_CHARACTER_KHO_KHON 0x00A5 #define T_MAC_THAI_THAI_CHARACTER_KHO_RAKHANG 0x00A6 #define T_MAC_THAI_THAI_CHARACTER_NGO_NGU 0x00A7 #define T_MAC_THAI_THAI_CHARACTER_CHO_CHAN 0x00A8 #define T_MAC_THAI_THAI_CHARACTER_CHO_CHING 0x00A9 #define T_MAC_THAI_THAI_CHARACTER_CHO_CHANG 0x00AA #define T_MAC_THAI_THAI_CHARACTER_SO_SO 0x00AB #define T_MAC_THAI_THAI_CHARACTER_CHO_CHOE 0x00AC #define T_MAC_THAI_THAI_CHARACTER_YO_YING 0x00AD #define T_MAC_THAI_THAI_CHARACTER_DO_CHADA 0x00AE #define T_MAC_THAI_THAI_CHARACTER_TO_PATAK 0x00AF #define T_MAC_THAI_THAI_CHARACTER_THO_THAN 0x00B0 #define T_MAC_THAI_THAI_CHARACTER_THO_NANGMONTHO 0x00B1 #define T_MAC_THAI_THAI_CHARACTER_THO_PHUTHAO 0x00B2 #define T_MAC_THAI_THAI_CHARACTER_NO_NEN 0x00B3 #define T_MAC_THAI_THAI_CHARACTER_DO_DEK 0x00B4 #define T_MAC_THAI_THAI_CHARACTER_TO_TAO 0x00B5 #define T_MAC_THAI_THAI_CHARACTER_THO_THUNG 0x00B6 #define T_MAC_THAI_THAI_CHARACTER_THO_THAHAN 0x00B7 #define T_MAC_THAI_THAI_CHARACTER_THO_THONG 0x00B8 #define T_MAC_THAI_THAI_CHARACTER_NO_NU 0x00B9 #define T_MAC_THAI_THAI_CHARACTER_BO_BAIMAI 0x00BA #define T_MAC_THAI_THAI_CHARACTER_PO_PLA 0x00BB #define T_MAC_THAI_THAI_CHARACTER_PHO_PHUNG 0x00BC #define T_MAC_THAI_THAI_CHARACTER_FO_FA 0x00BD #define T_MAC_THAI_THAI_CHARACTER_PHO_PHAN 0x00BE #define T_MAC_THAI_THAI_CHARACTER_FO_FAN 0x00BF #define T_MAC_THAI_THAI_CHARACTER_PHO_SAMPHAO 0x00C0 #define T_MAC_THAI_THAI_CHARACTER_MO_MA 0x00C1 #define T_MAC_THAI_THAI_CHARACTER_YO_YAK 0x00C2 #define T_MAC_THAI_THAI_CHARACTER_RO_RUA 0x00C3 #define T_MAC_THAI_THAI_CHARACTER_RU 0x00C4 #define T_MAC_THAI_THAI_CHARACTER_LO_LING 0x00C5 #define T_MAC_THAI_THAI_CHARACTER_LU 0x00C6 #define T_MAC_THAI_THAI_CHARACTER_WO_WAEN 0x00C7 #define T_MAC_THAI_THAI_CHARACTER_SO_SALA 0x00C8 #define T_MAC_THAI_THAI_CHARACTER_SO_RUSI 0x00C9 #define T_MAC_THAI_THAI_CHARACTER_SO_SUA 0x00CA #define T_MAC_THAI_THAI_CHARACTER_HO_HIP 0x00CB #define T_MAC_THAI_THAI_CHARACTER_LO_CHULA 0x00CC #define T_MAC_THAI_THAI_CHARACTER_O_ANG 0x00CD #define T_MAC_THAI_THAI_CHARACTER_HO_NOKHUK 0x00CE #define T_MAC_THAI_THAI_CHARACTER_PAIYANNOI 0x00CF #define T_MAC_THAI_THAI_CHARACTER_SARA_A 0x00D0 #define T_MAC_THAI_THAI_CHARACTER_MAI_HAN_AKAT 0x00D1 #define T_MAC_THAI_THAI_CHARACTER_SARA_AA 0x00D2 #define T_MAC_THAI_THAI_CHARACTER_SARA_AM 0x00D3 #define T_MAC_THAI_THAI_CHARACTER_SARA_I 0x00D4 #define T_MAC_THAI_THAI_CHARACTER_SARA_II 0x00D5 #define T_MAC_THAI_THAI_CHARACTER_SARA_UE 0x00D6 #define T_MAC_THAI_THAI_CHARACTER_SARA_UEE 0x00D7 #define T_MAC_THAI_THAI_CHARACTER_SARA_U 0x00D8 #define T_MAC_THAI_THAI_CHARACTER_SARA_UU 0x00D9 #define T_MAC_THAI_THAI_CHARACTER_PHINTHU 0x00DA #define T_MAC_THAI_WORD_JOINER 0x00DB #define T_MAC_THAI_ZERO_WIDTH_SPACE 0x00DC #define T_MAC_THAI_EN_DASH 0x00DD #define T_MAC_THAI_EM_DASH 0x00DE #define T_MAC_THAI_THAI_CURRENCY_SYMBOL_BAHT 0x00DF #define T_MAC_THAI_THAI_CHARACTER_SARA_E 0x00E0 #define T_MAC_THAI_THAI_CHARACTER_SARA_AE 0x00E1 #define T_MAC_THAI_THAI_CHARACTER_SARA_O 0x00E2 #define T_MAC_THAI_THAI_CHARACTER_SARA_AI_MAIMUAN 0x00E3 #define T_MAC_THAI_THAI_CHARACTER_SARA_AI_MAIMALAI 0x00E4 #define T_MAC_THAI_THAI_CHARACTER_LAKKHANGYAO 0x00E5 #define T_MAC_THAI_THAI_CHARACTER_MAIYAMOK 0x00E6 #define T_MAC_THAI_THAI_CHARACTER_MAITAIKHU 0x00E7 #define T_MAC_THAI_THAI_CHARACTER_MAI_EK 0x00E8 #define T_MAC_THAI_THAI_CHARACTER_MAI_THO 0x00E9 #define T_MAC_THAI_THAI_CHARACTER_MAI_TRI 0x00EA #define T_MAC_THAI_THAI_CHARACTER_MAI_CHATTAWA 0x00EB #define T_MAC_THAI_THAI_CHARACTER_THANTHAKHAT 0x00EC #define T_MAC_THAI_THAI_CHARACTER_NIKHAHIT 0x00ED #define T_MAC_THAI_TRADE_MARK_SIGN 0x00EE #define T_MAC_THAI_THAI_CHARACTER_FONGMAN 0x00EF #define T_MAC_THAI_THAI_DIGIT_ZERO 0x00F0 #define T_MAC_THAI_THAI_DIGIT_ONE 0x00F1 #define T_MAC_THAI_THAI_DIGIT_TWO 0x00F2 #define T_MAC_THAI_THAI_DIGIT_THREE 0x00F3 #define T_MAC_THAI_THAI_DIGIT_FOUR 0x00F4 #define T_MAC_THAI_THAI_DIGIT_FIVE 0x00F5 #define T_MAC_THAI_THAI_DIGIT_SIX 0x00F6 #define T_MAC_THAI_THAI_DIGIT_SEVEN 0x00F7 #define T_MAC_THAI_THAI_DIGIT_EIGHT 0x00F8 #define T_MAC_THAI_THAI_DIGIT_NINE 0x00F9 #define T_MAC_THAI_REGISTERED_SIGN 0x00FA #define T_MAC_THAI_COPYRIGHT_SIGN 0x00FB #define T_MAC_THAI_UNDEFINED_00FC 0x00FC #define T_MAC_THAI_UNDEFINED_00FD 0x00FD #define T_MAC_THAI_UNDEFINED_00FE 0x00FE #define T_MAC_THAI_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_MAC_THAI(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_LINEAR_A_SIGN_A512) \ EL(_LINEAR_A_SIGN_A513) \ EL(_LINEAR_A_SIGN_A515) \ EL(_LINEAR_A_SIGN_A516) \ EL(_LINEAR_A_SIGN_A520) \ EL(_LINEAR_A_SIGN_A510) \ EL(_LINEAR_A_SIGN_A511) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_UNDEFINED_008F) \ EL(_BULLET) \ EL(_LINEAR_A_SIGN_A405_VAS) \ EL(_UNDEFINED_0093) \ EL(_LINEAR_A_SIGN_A408_VAS) \ EL(_LINEAR_A_SIGN_A409_VAS) \ EL(_LINEAR_A_SIGN_A410_VAS) \ EL(_LINEAR_A_SIGN_A411_VAS) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_NO_BREAK_SPACE) \ EL(_THAI_CHARACTER_KO_KAI) \ EL(_THAI_CHARACTER_KHO_KHAI) \ EL(_THAI_CHARACTER_KHO_KHUAT) \ EL(_THAI_CHARACTER_KHO_KHWAI) \ EL(_THAI_CHARACTER_KHO_KHON) \ EL(_THAI_CHARACTER_KHO_RAKHANG) \ EL(_THAI_CHARACTER_NGO_NGU) \ EL(_THAI_CHARACTER_CHO_CHAN) \ EL(_THAI_CHARACTER_CHO_CHING) \ EL(_THAI_CHARACTER_CHO_CHANG) \ EL(_THAI_CHARACTER_SO_SO) \ EL(_THAI_CHARACTER_CHO_CHOE) \ EL(_THAI_CHARACTER_YO_YING) \ EL(_THAI_CHARACTER_DO_CHADA) \ EL(_THAI_CHARACTER_TO_PATAK) \ EL(_THAI_CHARACTER_THO_THAN) \ EL(_THAI_CHARACTER_THO_NANGMONTHO) \ EL(_THAI_CHARACTER_THO_PHUTHAO) \ EL(_THAI_CHARACTER_NO_NEN) \ EL(_THAI_CHARACTER_DO_DEK) \ EL(_THAI_CHARACTER_TO_TAO) \ EL(_THAI_CHARACTER_THO_THUNG) \ EL(_THAI_CHARACTER_THO_THAHAN) \ EL(_THAI_CHARACTER_THO_THONG) \ EL(_THAI_CHARACTER_NO_NU) \ EL(_THAI_CHARACTER_BO_BAIMAI) \ EL(_THAI_CHARACTER_PO_PLA) \ EL(_THAI_CHARACTER_PHO_PHUNG) \ EL(_THAI_CHARACTER_FO_FA) \ EL(_THAI_CHARACTER_PHO_PHAN) \ EL(_THAI_CHARACTER_FO_FAN) \ EL(_THAI_CHARACTER_PHO_SAMPHAO) \ EL(_THAI_CHARACTER_MO_MA) \ EL(_THAI_CHARACTER_YO_YAK) \ EL(_THAI_CHARACTER_RO_RUA) \ EL(_THAI_CHARACTER_RU) \ EL(_THAI_CHARACTER_LO_LING) \ EL(_THAI_CHARACTER_LU) \ EL(_THAI_CHARACTER_WO_WAEN) \ EL(_THAI_CHARACTER_SO_SALA) \ EL(_THAI_CHARACTER_SO_RUSI) \ EL(_THAI_CHARACTER_SO_SUA) \ EL(_THAI_CHARACTER_HO_HIP) \ EL(_THAI_CHARACTER_LO_CHULA) \ EL(_THAI_CHARACTER_O_ANG) \ EL(_THAI_CHARACTER_HO_NOKHUK) \ EL(_THAI_CHARACTER_PAIYANNOI) \ EL(_THAI_CHARACTER_SARA_A) \ EL(_THAI_CHARACTER_MAI_HAN_AKAT) \ EL(_THAI_CHARACTER_SARA_AA) \ EL(_THAI_CHARACTER_SARA_AM) \ EL(_THAI_CHARACTER_SARA_I) \ EL(_THAI_CHARACTER_SARA_II) \ EL(_THAI_CHARACTER_SARA_UE) \ EL(_THAI_CHARACTER_SARA_UEE) \ EL(_THAI_CHARACTER_SARA_U) \ EL(_THAI_CHARACTER_SARA_UU) \ EL(_THAI_CHARACTER_PHINTHU) \ EL(_WORD_JOINER) \ EL(_ZERO_WIDTH_SPACE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_THAI_CURRENCY_SYMBOL_BAHT) \ EL(_THAI_CHARACTER_SARA_E) \ EL(_THAI_CHARACTER_SARA_AE) \ EL(_THAI_CHARACTER_SARA_O) \ EL(_THAI_CHARACTER_SARA_AI_MAIMUAN) \ EL(_THAI_CHARACTER_SARA_AI_MAIMALAI) \ EL(_THAI_CHARACTER_LAKKHANGYAO) \ EL(_THAI_CHARACTER_MAIYAMOK) \ EL(_THAI_CHARACTER_MAITAIKHU) \ EL(_THAI_CHARACTER_MAI_EK) \ EL(_THAI_CHARACTER_MAI_THO) \ EL(_THAI_CHARACTER_MAI_TRI) \ EL(_THAI_CHARACTER_MAI_CHATTAWA) \ EL(_THAI_CHARACTER_THANTHAKHAT) \ EL(_THAI_CHARACTER_NIKHAHIT) \ EL(_TRADE_MARK_SIGN) \ EL(_THAI_CHARACTER_FONGMAN) \ EL(_THAI_DIGIT_ZERO) \ EL(_THAI_DIGIT_ONE) \ EL(_THAI_DIGIT_TWO) \ EL(_THAI_DIGIT_THREE) \ EL(_THAI_DIGIT_FOUR) \ EL(_THAI_DIGIT_FIVE) \ EL(_THAI_DIGIT_SIX) \ EL(_THAI_DIGIT_SEVEN) \ EL(_THAI_DIGIT_EIGHT) \ EL(_THAI_DIGIT_NINE) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_THAI(EL) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_LINEAR_A_SIGN_A512) \ EL(_LINEAR_A_SIGN_A513) \ EL(_LINEAR_A_SIGN_A515) \ EL(_LINEAR_A_SIGN_A516) \ EL(_LINEAR_A_SIGN_A520) \ EL(_LINEAR_A_SIGN_A510) \ EL(_LINEAR_A_SIGN_A511) \ EL(_UNDEFINED_008A) \ EL(_UNDEFINED_008B) \ EL(_UNDEFINED_008C) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_UNDEFINED_008F) \ EL(_BULLET) \ EL(_LINEAR_A_SIGN_A405_VAS) \ EL(_UNDEFINED_0093) \ EL(_LINEAR_A_SIGN_A408_VAS) \ EL(_LINEAR_A_SIGN_A409_VAS) \ EL(_LINEAR_A_SIGN_A410_VAS) \ EL(_LINEAR_A_SIGN_A411_VAS) \ EL(_UNDEFINED_0098) \ EL(_UNDEFINED_0099) \ EL(_UNDEFINED_009A) \ EL(_UNDEFINED_009B) \ EL(_UNDEFINED_009C) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_THAI_CHARACTER_KO_KAI) \ EL(_THAI_CHARACTER_KHO_KHAI) \ EL(_THAI_CHARACTER_KHO_KHUAT) \ EL(_THAI_CHARACTER_KHO_KHWAI) \ EL(_THAI_CHARACTER_KHO_KHON) \ EL(_THAI_CHARACTER_KHO_RAKHANG) \ EL(_THAI_CHARACTER_NGO_NGU) \ EL(_THAI_CHARACTER_CHO_CHAN) \ EL(_THAI_CHARACTER_CHO_CHING) \ EL(_THAI_CHARACTER_CHO_CHANG) \ EL(_THAI_CHARACTER_SO_SO) \ EL(_THAI_CHARACTER_CHO_CHOE) \ EL(_THAI_CHARACTER_YO_YING) \ EL(_THAI_CHARACTER_DO_CHADA) \ EL(_THAI_CHARACTER_TO_PATAK) \ EL(_THAI_CHARACTER_THO_THAN) \ EL(_THAI_CHARACTER_THO_NANGMONTHO) \ EL(_THAI_CHARACTER_THO_PHUTHAO) \ EL(_THAI_CHARACTER_NO_NEN) \ EL(_THAI_CHARACTER_DO_DEK) \ EL(_THAI_CHARACTER_TO_TAO) \ EL(_THAI_CHARACTER_THO_THUNG) \ EL(_THAI_CHARACTER_THO_THAHAN) \ EL(_THAI_CHARACTER_THO_THONG) \ EL(_THAI_CHARACTER_NO_NU) \ EL(_THAI_CHARACTER_BO_BAIMAI) \ EL(_THAI_CHARACTER_PO_PLA) \ EL(_THAI_CHARACTER_PHO_PHUNG) \ EL(_THAI_CHARACTER_FO_FA) \ EL(_THAI_CHARACTER_PHO_PHAN) \ EL(_THAI_CHARACTER_FO_FAN) \ EL(_THAI_CHARACTER_PHO_SAMPHAO) \ EL(_THAI_CHARACTER_MO_MA) \ EL(_THAI_CHARACTER_YO_YAK) \ EL(_THAI_CHARACTER_RO_RUA) \ EL(_THAI_CHARACTER_RU) \ EL(_THAI_CHARACTER_LO_LING) \ EL(_THAI_CHARACTER_LU) \ EL(_THAI_CHARACTER_WO_WAEN) \ EL(_THAI_CHARACTER_SO_SALA) \ EL(_THAI_CHARACTER_SO_RUSI) \ EL(_THAI_CHARACTER_SO_SUA) \ EL(_THAI_CHARACTER_HO_HIP) \ EL(_THAI_CHARACTER_LO_CHULA) \ EL(_THAI_CHARACTER_O_ANG) \ EL(_THAI_CHARACTER_HO_NOKHUK) \ EL(_THAI_CHARACTER_PAIYANNOI) \ EL(_THAI_CHARACTER_SARA_A) \ EL(_THAI_CHARACTER_MAI_HAN_AKAT) \ EL(_THAI_CHARACTER_SARA_AA) \ EL(_THAI_CHARACTER_SARA_AM) \ EL(_THAI_CHARACTER_SARA_I) \ EL(_THAI_CHARACTER_SARA_II) \ EL(_THAI_CHARACTER_SARA_UE) \ EL(_THAI_CHARACTER_SARA_UEE) \ EL(_THAI_CHARACTER_SARA_U) \ EL(_THAI_CHARACTER_SARA_UU) \ EL(_THAI_CHARACTER_PHINTHU) \ EL(_WORD_JOINER) \ EL(_ZERO_WIDTH_SPACE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_THAI_CURRENCY_SYMBOL_BAHT) \ EL(_THAI_CHARACTER_SARA_E) \ EL(_THAI_CHARACTER_SARA_AE) \ EL(_THAI_CHARACTER_SARA_O) \ EL(_THAI_CHARACTER_SARA_AI_MAIMUAN) \ EL(_THAI_CHARACTER_SARA_AI_MAIMALAI) \ EL(_THAI_CHARACTER_LAKKHANGYAO) \ EL(_THAI_CHARACTER_MAIYAMOK) \ EL(_THAI_CHARACTER_MAITAIKHU) \ EL(_THAI_CHARACTER_MAI_EK) \ EL(_THAI_CHARACTER_MAI_THO) \ EL(_THAI_CHARACTER_MAI_TRI) \ EL(_THAI_CHARACTER_MAI_CHATTAWA) \ EL(_THAI_CHARACTER_THANTHAKHAT) \ EL(_THAI_CHARACTER_NIKHAHIT) \ EL(_TRADE_MARK_SIGN) \ EL(_THAI_CHARACTER_FONGMAN) \ EL(_THAI_DIGIT_ZERO) \ EL(_THAI_DIGIT_ONE) \ EL(_THAI_DIGIT_TWO) \ EL(_THAI_DIGIT_THREE) \ EL(_THAI_DIGIT_FOUR) \ EL(_THAI_DIGIT_FIVE) \ EL(_THAI_DIGIT_SIX) \ EL(_THAI_DIGIT_SEVEN) \ EL(_THAI_DIGIT_EIGHT) \ EL(_THAI_DIGIT_NINE) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) #endif /* TUTF_MAC_THAI_H */ ����������twin-0.9.0/include/Tutf/mac_turkish.h���������������������������������������������������������������0000664�0000000�0000000�00000145060�13775351206�0017547�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MAC_TURKISH_H #define TUTF_MAC_TURKISH_H #define T_MAC_TURKISH_CTRL_NULL 0x0000 #define T_MAC_TURKISH_CTRL_START_OF_HEADING 0x0001 #define T_MAC_TURKISH_CTRL_START_OF_TEXT 0x0002 #define T_MAC_TURKISH_CTRL_END_OF_TEXT 0x0003 #define T_MAC_TURKISH_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MAC_TURKISH_CTRL_ENQUIRY 0x0005 #define T_MAC_TURKISH_CTRL_ACKNOWLEDGE 0x0006 #define T_MAC_TURKISH_CTRL_BELL 0x0007 #define T_MAC_TURKISH_CTRL_BACKSPACE 0x0008 #define T_MAC_TURKISH_CTRL_CHARACTER_TABULATION 0x0009 #define T_MAC_TURKISH_CTRL_LINE_FEED 0x000A #define T_MAC_TURKISH_CTRL_LINE_TABULATION 0x000B #define T_MAC_TURKISH_CTRL_FORM_FEED 0x000C #define T_MAC_TURKISH_CTRL_CARRIAGE_RETURN 0x000D #define T_MAC_TURKISH_CTRL_SHIFT_OUT 0x000E #define T_MAC_TURKISH_CTRL_SHIFT_IN 0x000F #define T_MAC_TURKISH_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MAC_TURKISH_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MAC_TURKISH_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MAC_TURKISH_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MAC_TURKISH_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MAC_TURKISH_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MAC_TURKISH_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MAC_TURKISH_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MAC_TURKISH_CTRL_CANCEL 0x0018 #define T_MAC_TURKISH_CTRL_END_OF_MEDIUM 0x0019 #define T_MAC_TURKISH_CTRL_SUBSTITUTE 0x001A #define T_MAC_TURKISH_CTRL_ESCAPE 0x001B #define T_MAC_TURKISH_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MAC_TURKISH_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MAC_TURKISH_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MAC_TURKISH_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MAC_TURKISH_SPACE 0x0020 #define T_MAC_TURKISH_EXCLAMATION_MARK 0x0021 #define T_MAC_TURKISH_QUOTATION_MARK 0x0022 #define T_MAC_TURKISH_NUMBER_SIGN 0x0023 #define T_MAC_TURKISH_DOLLAR_SIGN 0x0024 #define T_MAC_TURKISH_PERCENT_SIGN 0x0025 #define T_MAC_TURKISH_AMPERSAND 0x0026 #define T_MAC_TURKISH_APOSTROPHE 0x0027 #define T_MAC_TURKISH_LEFT_PARENTHESIS 0x0028 #define T_MAC_TURKISH_RIGHT_PARENTHESIS 0x0029 #define T_MAC_TURKISH_ASTERISK 0x002A #define T_MAC_TURKISH_PLUS_SIGN 0x002B #define T_MAC_TURKISH_COMMA 0x002C #define T_MAC_TURKISH_HYPHEN_MINUS 0x002D #define T_MAC_TURKISH_FULL_STOP 0x002E #define T_MAC_TURKISH_SOLIDUS 0x002F #define T_MAC_TURKISH_DIGIT_ZERO 0x0030 #define T_MAC_TURKISH_DIGIT_ONE 0x0031 #define T_MAC_TURKISH_DIGIT_TWO 0x0032 #define T_MAC_TURKISH_DIGIT_THREE 0x0033 #define T_MAC_TURKISH_DIGIT_FOUR 0x0034 #define T_MAC_TURKISH_DIGIT_FIVE 0x0035 #define T_MAC_TURKISH_DIGIT_SIX 0x0036 #define T_MAC_TURKISH_DIGIT_SEVEN 0x0037 #define T_MAC_TURKISH_DIGIT_EIGHT 0x0038 #define T_MAC_TURKISH_DIGIT_NINE 0x0039 #define T_MAC_TURKISH_COLON 0x003A #define T_MAC_TURKISH_SEMICOLON 0x003B #define T_MAC_TURKISH_LESS_THAN_SIGN 0x003C #define T_MAC_TURKISH_EQUALS_SIGN 0x003D #define T_MAC_TURKISH_GREATER_THAN_SIGN 0x003E #define T_MAC_TURKISH_QUESTION_MARK 0x003F #define T_MAC_TURKISH_COMMERCIAL_AT 0x0040 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_J 0x004A #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_K 0x004B #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_L 0x004C #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_M 0x004D #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_N 0x004E #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_O 0x004F #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MAC_TURKISH_LEFT_SQUARE_BRACKET 0x005B #define T_MAC_TURKISH_REVERSE_SOLIDUS 0x005C #define T_MAC_TURKISH_RIGHT_SQUARE_BRACKET 0x005D #define T_MAC_TURKISH_CIRCUMFLEX_ACCENT 0x005E #define T_MAC_TURKISH_LOW_LINE 0x005F #define T_MAC_TURKISH_GRAVE_ACCENT 0x0060 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_A 0x0061 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_B 0x0062 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_C 0x0063 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_D 0x0064 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_E 0x0065 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_F 0x0066 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_G 0x0067 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_H 0x0068 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_I 0x0069 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_J 0x006A #define T_MAC_TURKISH_LATIN_SMALL_LETTER_K 0x006B #define T_MAC_TURKISH_LATIN_SMALL_LETTER_L 0x006C #define T_MAC_TURKISH_LATIN_SMALL_LETTER_M 0x006D #define T_MAC_TURKISH_LATIN_SMALL_LETTER_N 0x006E #define T_MAC_TURKISH_LATIN_SMALL_LETTER_O 0x006F #define T_MAC_TURKISH_LATIN_SMALL_LETTER_P 0x0070 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_Q 0x0071 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_R 0x0072 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_S 0x0073 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_T 0x0074 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_U 0x0075 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_V 0x0076 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_W 0x0077 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_X 0x0078 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_Y 0x0079 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_Z 0x007A #define T_MAC_TURKISH_LEFT_CURLY_BRACKET 0x007B #define T_MAC_TURKISH_VERTICAL_LINE 0x007C #define T_MAC_TURKISH_RIGHT_CURLY_BRACKET 0x007D #define T_MAC_TURKISH_TILDE 0x007E #define T_MAC_TURKISH_CTRL_DELETE 0x007F #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0081 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MAC_TURKISH_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MAC_TURKISH_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MAC_TURKISH_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MAC_TURKISH_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MAC_TURKISH_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MAC_TURKISH_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MAC_TURKISH_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MAC_TURKISH_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MAC_TURKISH_DAGGER 0x00A0 #define T_MAC_TURKISH_DEGREE_SIGN 0x00A1 #define T_MAC_TURKISH_CENT_SIGN 0x00A2 #define T_MAC_TURKISH_POUND_SIGN 0x00A3 #define T_MAC_TURKISH_SECTION_SIGN 0x00A4 #define T_MAC_TURKISH_BULLET 0x00A5 #define T_MAC_TURKISH_PILCROW_SIGN 0x00A6 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MAC_TURKISH_REGISTERED_SIGN 0x00A8 #define T_MAC_TURKISH_COPYRIGHT_SIGN 0x00A9 #define T_MAC_TURKISH_TRADE_MARK_SIGN 0x00AA #define T_MAC_TURKISH_ACUTE_ACCENT 0x00AB #define T_MAC_TURKISH_DIAERESIS 0x00AC #define T_MAC_TURKISH_NOT_EQUAL_TO 0x00AD #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_AE 0x00AE #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00AF #define T_MAC_TURKISH_INFINITY 0x00B0 #define T_MAC_TURKISH_PLUS_MINUS_SIGN 0x00B1 #define T_MAC_TURKISH_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MAC_TURKISH_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MAC_TURKISH_YEN_SIGN 0x00B4 #define T_MAC_TURKISH_MICRO_SIGN 0x00B5 #define T_MAC_TURKISH_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MAC_TURKISH_N_ARY_SUMMATION 0x00B7 #define T_MAC_TURKISH_N_ARY_PRODUCT 0x00B8 #define T_MAC_TURKISH_GREEK_SMALL_LETTER_PI 0x00B9 #define T_MAC_TURKISH_INTEGRAL 0x00BA #define T_MAC_TURKISH_FEMININE_ORDINAL_INDICATOR 0x00BB #define T_MAC_TURKISH_MASCULINE_ORDINAL_INDICATOR 0x00BC #define T_MAC_TURKISH_GREEK_CAPITAL_LETTER_OMEGA 0x00BD #define T_MAC_TURKISH_LATIN_SMALL_LETTER_AE 0x00BE #define T_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00BF #define T_MAC_TURKISH_INVERTED_QUESTION_MARK 0x00C0 #define T_MAC_TURKISH_INVERTED_EXCLAMATION_MARK 0x00C1 #define T_MAC_TURKISH_NOT_SIGN 0x00C2 #define T_MAC_TURKISH_SQUARE_ROOT 0x00C3 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MAC_TURKISH_ALMOST_EQUAL_TO 0x00C5 #define T_MAC_TURKISH_INCREMENT 0x00C6 #define T_MAC_TURKISH_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MAC_TURKISH_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MAC_TURKISH_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MAC_TURKISH_NO_BREAK_SPACE 0x00CA #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00CB #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00CC #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MAC_TURKISH_LATIN_CAPITAL_LIGATURE_OE 0x00CE #define T_MAC_TURKISH_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MAC_TURKISH_EN_DASH 0x00D0 #define T_MAC_TURKISH_EM_DASH 0x00D1 #define T_MAC_TURKISH_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MAC_TURKISH_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MAC_TURKISH_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MAC_TURKISH_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MAC_TURKISH_DIVISION_SIGN 0x00D6 #define T_MAC_TURKISH_LOZENGE 0x00D7 #define T_MAC_TURKISH_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00D8 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00D9 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_G_WITH_BREVE 0x00DA #define T_MAC_TURKISH_LATIN_SMALL_LETTER_G_WITH_BREVE 0x00DB #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE 0x00DC #define T_MAC_TURKISH_LATIN_SMALL_LETTER_DOTLESS_I 0x00DD #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x00DE #define T_MAC_TURKISH_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x00DF #define T_MAC_TURKISH_DOUBLE_DAGGER 0x00E0 #define T_MAC_TURKISH_MIDDLE_DOT 0x00E1 #define T_MAC_TURKISH_SINGLE_LOW_9_QUOTATION_MARK 0x00E2 #define T_MAC_TURKISH_DOUBLE_LOW_9_QUOTATION_MARK 0x00E3 #define T_MAC_TURKISH_PER_MILLE_SIGN 0x00E4 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00E5 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00E6 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00E8 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00E9 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00EB #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00EC #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00ED #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MAC_TURKISH_UNDEFINED_00F0 0x00F0 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00F1 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00F3 #define T_MAC_TURKISH_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00F4 #define T_MAC_TURKISH_UNDEFINED_00F5 0x00F5 #define T_MAC_TURKISH_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x00F6 #define T_MAC_TURKISH_SMALL_TILDE 0x00F7 #define T_MAC_TURKISH_MACRON 0x00F8 #define T_MAC_TURKISH_BREVE 0x00F9 #define T_MAC_TURKISH_DOT_ABOVE 0x00FA #define T_MAC_TURKISH_RING_ABOVE 0x00FB #define T_MAC_TURKISH_CEDILLA 0x00FC #define T_MAC_TURKISH_DOUBLE_ACUTE_ACCENT 0x00FD #define T_MAC_TURKISH_OGONEK 0x00FE #define T_MAC_TURKISH_CARON 0x00FF /* list of all characters */ #define T_LIST_MAC_TURKISH(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_MICRO_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_UNDEFINED_00F5) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MAC_TURKISH(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_UNDEFINED_00F5) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) #endif /* TUTF_MAC_TURKISH_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/ms_mac_cyrillic.h�����������������������������������������������������������0000664�0000000�0000000�00000146733�13775351206�0020377�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MS_MAC_CYRILLIC_H #define TUTF_MS_MAC_CYRILLIC_H #define T_MS_MAC_CYRILLIC_CTRL_NULL 0x0000 #define T_MS_MAC_CYRILLIC_CTRL_START_OF_HEADING 0x0001 #define T_MS_MAC_CYRILLIC_CTRL_START_OF_TEXT 0x0002 #define T_MS_MAC_CYRILLIC_CTRL_END_OF_TEXT 0x0003 #define T_MS_MAC_CYRILLIC_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MS_MAC_CYRILLIC_CTRL_ENQUIRY 0x0005 #define T_MS_MAC_CYRILLIC_CTRL_ACKNOWLEDGE 0x0006 #define T_MS_MAC_CYRILLIC_CTRL_BELL 0x0007 #define T_MS_MAC_CYRILLIC_CTRL_BACKSPACE 0x0008 #define T_MS_MAC_CYRILLIC_CTRL_CHARACTER_TABULATION 0x0009 #define T_MS_MAC_CYRILLIC_CTRL_LINE_FEED 0x000A #define T_MS_MAC_CYRILLIC_CTRL_LINE_TABULATION 0x000B #define T_MS_MAC_CYRILLIC_CTRL_FORM_FEED 0x000C #define T_MS_MAC_CYRILLIC_CTRL_CARRIAGE_RETURN 0x000D #define T_MS_MAC_CYRILLIC_CTRL_SHIFT_OUT 0x000E #define T_MS_MAC_CYRILLIC_CTRL_SHIFT_IN 0x000F #define T_MS_MAC_CYRILLIC_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MS_MAC_CYRILLIC_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MS_MAC_CYRILLIC_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MS_MAC_CYRILLIC_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MS_MAC_CYRILLIC_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MS_MAC_CYRILLIC_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MS_MAC_CYRILLIC_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MS_MAC_CYRILLIC_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MS_MAC_CYRILLIC_CTRL_CANCEL 0x0018 #define T_MS_MAC_CYRILLIC_CTRL_END_OF_MEDIUM 0x0019 #define T_MS_MAC_CYRILLIC_CTRL_SUBSTITUTE 0x001A #define T_MS_MAC_CYRILLIC_CTRL_ESCAPE 0x001B #define T_MS_MAC_CYRILLIC_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MS_MAC_CYRILLIC_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MS_MAC_CYRILLIC_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MS_MAC_CYRILLIC_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MS_MAC_CYRILLIC_SPACE 0x0020 #define T_MS_MAC_CYRILLIC_EXCLAMATION_MARK 0x0021 #define T_MS_MAC_CYRILLIC_QUOTATION_MARK 0x0022 #define T_MS_MAC_CYRILLIC_NUMBER_SIGN 0x0023 #define T_MS_MAC_CYRILLIC_DOLLAR_SIGN 0x0024 #define T_MS_MAC_CYRILLIC_PERCENT_SIGN 0x0025 #define T_MS_MAC_CYRILLIC_AMPERSAND 0x0026 #define T_MS_MAC_CYRILLIC_APOSTROPHE 0x0027 #define T_MS_MAC_CYRILLIC_LEFT_PARENTHESIS 0x0028 #define T_MS_MAC_CYRILLIC_RIGHT_PARENTHESIS 0x0029 #define T_MS_MAC_CYRILLIC_ASTERISK 0x002A #define T_MS_MAC_CYRILLIC_PLUS_SIGN 0x002B #define T_MS_MAC_CYRILLIC_COMMA 0x002C #define T_MS_MAC_CYRILLIC_HYPHEN_MINUS 0x002D #define T_MS_MAC_CYRILLIC_FULL_STOP 0x002E #define T_MS_MAC_CYRILLIC_SOLIDUS 0x002F #define T_MS_MAC_CYRILLIC_DIGIT_ZERO 0x0030 #define T_MS_MAC_CYRILLIC_DIGIT_ONE 0x0031 #define T_MS_MAC_CYRILLIC_DIGIT_TWO 0x0032 #define T_MS_MAC_CYRILLIC_DIGIT_THREE 0x0033 #define T_MS_MAC_CYRILLIC_DIGIT_FOUR 0x0034 #define T_MS_MAC_CYRILLIC_DIGIT_FIVE 0x0035 #define T_MS_MAC_CYRILLIC_DIGIT_SIX 0x0036 #define T_MS_MAC_CYRILLIC_DIGIT_SEVEN 0x0037 #define T_MS_MAC_CYRILLIC_DIGIT_EIGHT 0x0038 #define T_MS_MAC_CYRILLIC_DIGIT_NINE 0x0039 #define T_MS_MAC_CYRILLIC_COLON 0x003A #define T_MS_MAC_CYRILLIC_SEMICOLON 0x003B #define T_MS_MAC_CYRILLIC_LESS_THAN_SIGN 0x003C #define T_MS_MAC_CYRILLIC_EQUALS_SIGN 0x003D #define T_MS_MAC_CYRILLIC_GREATER_THAN_SIGN 0x003E #define T_MS_MAC_CYRILLIC_QUESTION_MARK 0x003F #define T_MS_MAC_CYRILLIC_COMMERCIAL_AT 0x0040 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_J 0x004A #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_K 0x004B #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_L 0x004C #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_M 0x004D #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_N 0x004E #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_O 0x004F #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MS_MAC_CYRILLIC_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MS_MAC_CYRILLIC_LEFT_SQUARE_BRACKET 0x005B #define T_MS_MAC_CYRILLIC_REVERSE_SOLIDUS 0x005C #define T_MS_MAC_CYRILLIC_RIGHT_SQUARE_BRACKET 0x005D #define T_MS_MAC_CYRILLIC_CIRCUMFLEX_ACCENT 0x005E #define T_MS_MAC_CYRILLIC_LOW_LINE 0x005F #define T_MS_MAC_CYRILLIC_GRAVE_ACCENT 0x0060 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_A 0x0061 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_B 0x0062 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_C 0x0063 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_D 0x0064 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_E 0x0065 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_F 0x0066 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_G 0x0067 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_H 0x0068 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_I 0x0069 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_J 0x006A #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_K 0x006B #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_L 0x006C #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_M 0x006D #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_N 0x006E #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_O 0x006F #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_P 0x0070 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_Q 0x0071 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_R 0x0072 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_S 0x0073 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_T 0x0074 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_U 0x0075 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_V 0x0076 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_W 0x0077 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_X 0x0078 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_Y 0x0079 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_Z 0x007A #define T_MS_MAC_CYRILLIC_LEFT_CURLY_BRACKET 0x007B #define T_MS_MAC_CYRILLIC_VERTICAL_LINE 0x007C #define T_MS_MAC_CYRILLIC_RIGHT_CURLY_BRACKET 0x007D #define T_MS_MAC_CYRILLIC_TILDE 0x007E #define T_MS_MAC_CYRILLIC_CTRL_DELETE 0x007F #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_A 0x0080 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_BE 0x0081 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_VE 0x0082 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_GHE 0x0083 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_DE 0x0084 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_IE 0x0085 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_ZHE 0x0086 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_ZE 0x0087 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_I 0x0088 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x0089 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_KA 0x008A #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_EL 0x008B #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_EM 0x008C #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_EN 0x008D #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_O 0x008E #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_PE 0x008F #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_ER 0x0090 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_ES 0x0091 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_TE 0x0092 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_U 0x0093 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_EF 0x0094 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_HA 0x0095 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_TSE 0x0096 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_CHE 0x0097 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_SHA 0x0098 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_SHCHA 0x0099 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x009A #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_YERU 0x009B #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x009C #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_E 0x009D #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_YU 0x009E #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_YA 0x009F #define T_MS_MAC_CYRILLIC_DAGGER 0x00A0 #define T_MS_MAC_CYRILLIC_DEGREE_SIGN 0x00A1 #define T_MS_MAC_CYRILLIC_CENT_SIGN 0x00A2 #define T_MS_MAC_CYRILLIC_POUND_SIGN 0x00A3 #define T_MS_MAC_CYRILLIC_SECTION_SIGN 0x00A4 #define T_MS_MAC_CYRILLIC_BULLET 0x00A5 #define T_MS_MAC_CYRILLIC_PILCROW_SIGN 0x00A6 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00A7 #define T_MS_MAC_CYRILLIC_REGISTERED_SIGN 0x00A8 #define T_MS_MAC_CYRILLIC_COPYRIGHT_SIGN 0x00A9 #define T_MS_MAC_CYRILLIC_TRADE_MARK_SIGN 0x00AA #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_DJE 0x00AB #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_DJE 0x00AC #define T_MS_MAC_CYRILLIC_NOT_EQUAL_TO 0x00AD #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_GJE 0x00AE #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_GJE 0x00AF #define T_MS_MAC_CYRILLIC_INFINITY 0x00B0 #define T_MS_MAC_CYRILLIC_PLUS_MINUS_SIGN 0x00B1 #define T_MS_MAC_CYRILLIC_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MS_MAC_CYRILLIC_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x00B4 #define T_MS_MAC_CYRILLIC_MICRO_SIGN 0x00B5 #define T_MS_MAC_CYRILLIC_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_JE 0x00B7 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0x00B8 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0x00B9 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_YI 0x00BA #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_YI 0x00BB #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_LJE 0x00BC #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_LJE 0x00BD #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_NJE 0x00BE #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_NJE 0x00BF #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_JE 0x00C0 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_DZE 0x00C1 #define T_MS_MAC_CYRILLIC_NOT_SIGN 0x00C2 #define T_MS_MAC_CYRILLIC_SQUARE_ROOT 0x00C3 #define T_MS_MAC_CYRILLIC_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MS_MAC_CYRILLIC_ALMOST_EQUAL_TO 0x00C5 #define T_MS_MAC_CYRILLIC_INCREMENT 0x00C6 #define T_MS_MAC_CYRILLIC_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MS_MAC_CYRILLIC_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MS_MAC_CYRILLIC_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MS_MAC_CYRILLIC_NO_BREAK_SPACE 0x00CA #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_TSHE 0x00CB #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_TSHE 0x00CC #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_KJE 0x00CD #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_KJE 0x00CE #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_DZE 0x00CF #define T_MS_MAC_CYRILLIC_EN_DASH 0x00D0 #define T_MS_MAC_CYRILLIC_EM_DASH 0x00D1 #define T_MS_MAC_CYRILLIC_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MS_MAC_CYRILLIC_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MS_MAC_CYRILLIC_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MS_MAC_CYRILLIC_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MS_MAC_CYRILLIC_DIVISION_SIGN 0x00D6 #define T_MS_MAC_CYRILLIC_DOUBLE_LOW_9_QUOTATION_MARK 0x00D7 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_SHORT_U 0x00D8 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_SHORT_U 0x00D9 #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_DZHE 0x00DA #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_DZHE 0x00DB #define T_MS_MAC_CYRILLIC_NUMERO_SIGN 0x00DC #define T_MS_MAC_CYRILLIC_CYRILLIC_CAPITAL_LETTER_IO 0x00DD #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_IO 0x00DE #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_YA 0x00DF #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_A 0x00E0 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_BE 0x00E1 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_VE 0x00E2 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_GHE 0x00E3 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_DE 0x00E4 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_IE 0x00E5 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_ZHE 0x00E6 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_ZE 0x00E7 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_I 0x00E8 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_SHORT_I 0x00E9 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_KA 0x00EA #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_EL 0x00EB #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_EM 0x00EC #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_EN 0x00ED #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_O 0x00EE #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_PE 0x00EF #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_ER 0x00F0 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_ES 0x00F1 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_TE 0x00F2 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_U 0x00F3 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_EF 0x00F4 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_HA 0x00F5 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_TSE 0x00F6 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_CHE 0x00F7 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_SHA 0x00F8 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_SHCHA 0x00F9 #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x00FA #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_YERU 0x00FB #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0x00FC #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_E 0x00FD #define T_MS_MAC_CYRILLIC_CYRILLIC_SMALL_LETTER_YU 0x00FE #define T_MS_MAC_CYRILLIC_CURRENCY_SIGN 0x00FF /* list of all characters */ #define T_LIST_MS_MAC_CYRILLIC(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_NOT_EQUAL_TO) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_MICRO_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_CYRILLIC_CAPITAL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZE) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSHE) \ EL(_CYRILLIC_SMALL_LETTER_TSHE) \ EL(_CYRILLIC_CAPITAL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_DZE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) \ EL(_NUMERO_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CURRENCY_SIGN) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MS_MAC_CYRILLIC(EL) \ EL(_CYRILLIC_CAPITAL_LETTER_A) \ EL(_CYRILLIC_CAPITAL_LETTER_BE) \ EL(_CYRILLIC_CAPITAL_LETTER_VE) \ EL(_CYRILLIC_CAPITAL_LETTER_GHE) \ EL(_CYRILLIC_CAPITAL_LETTER_DE) \ EL(_CYRILLIC_CAPITAL_LETTER_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZHE) \ EL(_CYRILLIC_CAPITAL_LETTER_ZE) \ EL(_CYRILLIC_CAPITAL_LETTER_I) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_I) \ EL(_CYRILLIC_CAPITAL_LETTER_KA) \ EL(_CYRILLIC_CAPITAL_LETTER_EL) \ EL(_CYRILLIC_CAPITAL_LETTER_EM) \ EL(_CYRILLIC_CAPITAL_LETTER_EN) \ EL(_CYRILLIC_CAPITAL_LETTER_O) \ EL(_CYRILLIC_CAPITAL_LETTER_PE) \ EL(_CYRILLIC_CAPITAL_LETTER_ER) \ EL(_CYRILLIC_CAPITAL_LETTER_ES) \ EL(_CYRILLIC_CAPITAL_LETTER_TE) \ EL(_CYRILLIC_CAPITAL_LETTER_U) \ EL(_CYRILLIC_CAPITAL_LETTER_EF) \ EL(_CYRILLIC_CAPITAL_LETTER_HA) \ EL(_CYRILLIC_CAPITAL_LETTER_TSE) \ EL(_CYRILLIC_CAPITAL_LETTER_CHE) \ EL(_CYRILLIC_CAPITAL_LETTER_SHA) \ EL(_CYRILLIC_CAPITAL_LETTER_SHCHA) \ EL(_CYRILLIC_CAPITAL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_YERU) \ EL(_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_E) \ EL(_CYRILLIC_CAPITAL_LETTER_YU) \ EL(_CYRILLIC_CAPITAL_LETTER_YA) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_DJE) \ EL(_CYRILLIC_SMALL_LETTER_DJE) \ EL(_NOT_EQUAL_TO) \ EL(_CYRILLIC_CAPITAL_LETTER_GJE) \ EL(_CYRILLIC_SMALL_LETTER_GJE) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_CYRILLIC_CAPITAL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE) \ EL(_CYRILLIC_CAPITAL_LETTER_YI) \ EL(_CYRILLIC_SMALL_LETTER_YI) \ EL(_CYRILLIC_CAPITAL_LETTER_LJE) \ EL(_CYRILLIC_SMALL_LETTER_LJE) \ EL(_CYRILLIC_CAPITAL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_NJE) \ EL(_CYRILLIC_SMALL_LETTER_JE) \ EL(_CYRILLIC_CAPITAL_LETTER_DZE) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_CYRILLIC_CAPITAL_LETTER_TSHE) \ EL(_CYRILLIC_SMALL_LETTER_TSHE) \ EL(_CYRILLIC_CAPITAL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_KJE) \ EL(_CYRILLIC_SMALL_LETTER_DZE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_CYRILLIC_CAPITAL_LETTER_SHORT_U) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_U) \ EL(_CYRILLIC_CAPITAL_LETTER_DZHE) \ EL(_CYRILLIC_SMALL_LETTER_DZHE) \ EL(_NUMERO_SIGN) \ EL(_CYRILLIC_CAPITAL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_IO) \ EL(_CYRILLIC_SMALL_LETTER_YA) \ EL(_CYRILLIC_SMALL_LETTER_A) \ EL(_CYRILLIC_SMALL_LETTER_BE) \ EL(_CYRILLIC_SMALL_LETTER_VE) \ EL(_CYRILLIC_SMALL_LETTER_GHE) \ EL(_CYRILLIC_SMALL_LETTER_DE) \ EL(_CYRILLIC_SMALL_LETTER_IE) \ EL(_CYRILLIC_SMALL_LETTER_ZHE) \ EL(_CYRILLIC_SMALL_LETTER_ZE) \ EL(_CYRILLIC_SMALL_LETTER_I) \ EL(_CYRILLIC_SMALL_LETTER_SHORT_I) \ EL(_CYRILLIC_SMALL_LETTER_KA) \ EL(_CYRILLIC_SMALL_LETTER_EL) \ EL(_CYRILLIC_SMALL_LETTER_EM) \ EL(_CYRILLIC_SMALL_LETTER_EN) \ EL(_CYRILLIC_SMALL_LETTER_O) \ EL(_CYRILLIC_SMALL_LETTER_PE) \ EL(_CYRILLIC_SMALL_LETTER_ER) \ EL(_CYRILLIC_SMALL_LETTER_ES) \ EL(_CYRILLIC_SMALL_LETTER_TE) \ EL(_CYRILLIC_SMALL_LETTER_U) \ EL(_CYRILLIC_SMALL_LETTER_EF) \ EL(_CYRILLIC_SMALL_LETTER_HA) \ EL(_CYRILLIC_SMALL_LETTER_TSE) \ EL(_CYRILLIC_SMALL_LETTER_CHE) \ EL(_CYRILLIC_SMALL_LETTER_SHA) \ EL(_CYRILLIC_SMALL_LETTER_SHCHA) \ EL(_CYRILLIC_SMALL_LETTER_HARD_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_YERU) \ EL(_CYRILLIC_SMALL_LETTER_SOFT_SIGN) \ EL(_CYRILLIC_SMALL_LETTER_E) \ EL(_CYRILLIC_SMALL_LETTER_YU) \ EL(_CURRENCY_SIGN) #endif /* TUTF_MS_MAC_CYRILLIC_H */ �������������������������������������twin-0.9.0/include/Tutf/ms_mac_greek.h��������������������������������������������������������������0000664�0000000�0000000�00000146401�13775351206�0017652�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MS_MAC_GREEK_H #define TUTF_MS_MAC_GREEK_H #define T_MS_MAC_GREEK_CTRL_NULL 0x0000 #define T_MS_MAC_GREEK_CTRL_START_OF_HEADING 0x0001 #define T_MS_MAC_GREEK_CTRL_START_OF_TEXT 0x0002 #define T_MS_MAC_GREEK_CTRL_END_OF_TEXT 0x0003 #define T_MS_MAC_GREEK_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MS_MAC_GREEK_CTRL_ENQUIRY 0x0005 #define T_MS_MAC_GREEK_CTRL_ACKNOWLEDGE 0x0006 #define T_MS_MAC_GREEK_CTRL_BELL 0x0007 #define T_MS_MAC_GREEK_CTRL_BACKSPACE 0x0008 #define T_MS_MAC_GREEK_CTRL_CHARACTER_TABULATION 0x0009 #define T_MS_MAC_GREEK_CTRL_LINE_FEED 0x000A #define T_MS_MAC_GREEK_CTRL_LINE_TABULATION 0x000B #define T_MS_MAC_GREEK_CTRL_FORM_FEED 0x000C #define T_MS_MAC_GREEK_CTRL_CARRIAGE_RETURN 0x000D #define T_MS_MAC_GREEK_CTRL_SHIFT_OUT 0x000E #define T_MS_MAC_GREEK_CTRL_SHIFT_IN 0x000F #define T_MS_MAC_GREEK_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MS_MAC_GREEK_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MS_MAC_GREEK_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MS_MAC_GREEK_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MS_MAC_GREEK_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MS_MAC_GREEK_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MS_MAC_GREEK_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MS_MAC_GREEK_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MS_MAC_GREEK_CTRL_CANCEL 0x0018 #define T_MS_MAC_GREEK_CTRL_END_OF_MEDIUM 0x0019 #define T_MS_MAC_GREEK_CTRL_SUBSTITUTE 0x001A #define T_MS_MAC_GREEK_CTRL_ESCAPE 0x001B #define T_MS_MAC_GREEK_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MS_MAC_GREEK_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MS_MAC_GREEK_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MS_MAC_GREEK_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MS_MAC_GREEK_SPACE 0x0020 #define T_MS_MAC_GREEK_EXCLAMATION_MARK 0x0021 #define T_MS_MAC_GREEK_QUOTATION_MARK 0x0022 #define T_MS_MAC_GREEK_NUMBER_SIGN 0x0023 #define T_MS_MAC_GREEK_DOLLAR_SIGN 0x0024 #define T_MS_MAC_GREEK_PERCENT_SIGN 0x0025 #define T_MS_MAC_GREEK_AMPERSAND 0x0026 #define T_MS_MAC_GREEK_APOSTROPHE 0x0027 #define T_MS_MAC_GREEK_LEFT_PARENTHESIS 0x0028 #define T_MS_MAC_GREEK_RIGHT_PARENTHESIS 0x0029 #define T_MS_MAC_GREEK_ASTERISK 0x002A #define T_MS_MAC_GREEK_PLUS_SIGN 0x002B #define T_MS_MAC_GREEK_COMMA 0x002C #define T_MS_MAC_GREEK_HYPHEN_MINUS 0x002D #define T_MS_MAC_GREEK_FULL_STOP 0x002E #define T_MS_MAC_GREEK_SOLIDUS 0x002F #define T_MS_MAC_GREEK_DIGIT_ZERO 0x0030 #define T_MS_MAC_GREEK_DIGIT_ONE 0x0031 #define T_MS_MAC_GREEK_DIGIT_TWO 0x0032 #define T_MS_MAC_GREEK_DIGIT_THREE 0x0033 #define T_MS_MAC_GREEK_DIGIT_FOUR 0x0034 #define T_MS_MAC_GREEK_DIGIT_FIVE 0x0035 #define T_MS_MAC_GREEK_DIGIT_SIX 0x0036 #define T_MS_MAC_GREEK_DIGIT_SEVEN 0x0037 #define T_MS_MAC_GREEK_DIGIT_EIGHT 0x0038 #define T_MS_MAC_GREEK_DIGIT_NINE 0x0039 #define T_MS_MAC_GREEK_COLON 0x003A #define T_MS_MAC_GREEK_SEMICOLON 0x003B #define T_MS_MAC_GREEK_LESS_THAN_SIGN 0x003C #define T_MS_MAC_GREEK_EQUALS_SIGN 0x003D #define T_MS_MAC_GREEK_GREATER_THAN_SIGN 0x003E #define T_MS_MAC_GREEK_QUESTION_MARK 0x003F #define T_MS_MAC_GREEK_COMMERCIAL_AT 0x0040 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_J 0x004A #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_K 0x004B #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_L 0x004C #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_M 0x004D #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_N 0x004E #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_O 0x004F #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MS_MAC_GREEK_LEFT_SQUARE_BRACKET 0x005B #define T_MS_MAC_GREEK_REVERSE_SOLIDUS 0x005C #define T_MS_MAC_GREEK_RIGHT_SQUARE_BRACKET 0x005D #define T_MS_MAC_GREEK_CIRCUMFLEX_ACCENT 0x005E #define T_MS_MAC_GREEK_LOW_LINE 0x005F #define T_MS_MAC_GREEK_GRAVE_ACCENT 0x0060 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_A 0x0061 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_B 0x0062 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_C 0x0063 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_D 0x0064 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_E 0x0065 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_F 0x0066 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_G 0x0067 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_H 0x0068 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_I 0x0069 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_J 0x006A #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_K 0x006B #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_L 0x006C #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_M 0x006D #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_N 0x006E #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_O 0x006F #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_P 0x0070 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_Q 0x0071 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_R 0x0072 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_S 0x0073 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_T 0x0074 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_U 0x0075 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_V 0x0076 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_W 0x0077 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_X 0x0078 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_Y 0x0079 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_Z 0x007A #define T_MS_MAC_GREEK_LEFT_CURLY_BRACKET 0x007B #define T_MS_MAC_GREEK_VERTICAL_LINE 0x007C #define T_MS_MAC_GREEK_RIGHT_CURLY_BRACKET 0x007D #define T_MS_MAC_GREEK_TILDE 0x007E #define T_MS_MAC_GREEK_CTRL_DELETE 0x007F #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MS_MAC_GREEK_SUPERSCRIPT_ONE 0x0081 #define T_MS_MAC_GREEK_SUPERSCRIPT_TWO 0x0082 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MS_MAC_GREEK_SUPERSCRIPT_THREE 0x0084 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MS_MAC_GREEK_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MS_MAC_GREEK_GREEK_DIALYTIKA_TONOS 0x0087 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MS_MAC_GREEK_GREEK_TONOS 0x008B #define T_MS_MAC_GREEK_DIAERESIS 0x008C #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MS_MAC_GREEK_POUND_SIGN 0x0092 #define T_MS_MAC_GREEK_TRADE_MARK_SIGN 0x0093 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MS_MAC_GREEK_BULLET 0x0096 #define T_MS_MAC_GREEK_VULGAR_FRACTION_ONE_HALF 0x0097 #define T_MS_MAC_GREEK_PER_MILLE_SIGN 0x0098 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MS_MAC_GREEK_BROKEN_BAR 0x009B #define T_MS_MAC_GREEK_SOFT_HYPHEN 0x009C #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MS_MAC_GREEK_DAGGER 0x00A0 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_GAMMA 0x00A1 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_DELTA 0x00A2 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_THETA 0x00A3 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_LAMDA 0x00A4 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_XI 0x00A5 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_PI 0x00A6 #define T_MS_MAC_GREEK_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MS_MAC_GREEK_REGISTERED_SIGN 0x00A8 #define T_MS_MAC_GREEK_COPYRIGHT_SIGN 0x00A9 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_SIGMA 0x00AA #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0x00AB #define T_MS_MAC_GREEK_SECTION_SIGN 0x00AC #define T_MS_MAC_GREEK_NOT_EQUAL_TO 0x00AD #define T_MS_MAC_GREEK_DEGREE_SIGN 0x00AE #define T_MS_MAC_GREEK_GREEK_ANO_TELEIA 0x00AF #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_ALPHA 0x00B0 #define T_MS_MAC_GREEK_PLUS_MINUS_SIGN 0x00B1 #define T_MS_MAC_GREEK_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MS_MAC_GREEK_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MS_MAC_GREEK_YEN_SIGN 0x00B4 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_BETA 0x00B5 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_EPSILON 0x00B6 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_ZETA 0x00B7 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_ETA 0x00B8 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_IOTA 0x00B9 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_KAPPA 0x00BA #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_MU 0x00BB #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_PHI 0x00BC #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0x00BD #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_PSI 0x00BE #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_OMEGA 0x00BF #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0x00C0 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_NU 0x00C1 #define T_MS_MAC_GREEK_NOT_SIGN 0x00C2 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_OMICRON 0x00C3 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_RHO 0x00C4 #define T_MS_MAC_GREEK_ALMOST_EQUAL_TO 0x00C5 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_TAU 0x00C6 #define T_MS_MAC_GREEK_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MS_MAC_GREEK_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MS_MAC_GREEK_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MS_MAC_GREEK_NO_BREAK_SPACE 0x00CA #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_UPSILON 0x00CB #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_CHI 0x00CC #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0x00CD #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0x00CE #define T_MS_MAC_GREEK_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MS_MAC_GREEK_EN_DASH 0x00D0 #define T_MS_MAC_GREEK_HORIZONTAL_BAR 0x00D1 #define T_MS_MAC_GREEK_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MS_MAC_GREEK_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MS_MAC_GREEK_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MS_MAC_GREEK_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MS_MAC_GREEK_DIVISION_SIGN 0x00D6 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0x00D7 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0x00D8 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0x00D9 #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0x00DA #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0x00DB #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_ETA_WITH_TONOS 0x00DC #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0x00DD #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0x00DE #define T_MS_MAC_GREEK_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0x00DF #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0x00E0 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_ALPHA 0x00E1 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_BETA 0x00E2 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_PSI 0x00E3 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_DELTA 0x00E4 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_EPSILON 0x00E5 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_PHI 0x00E6 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_GAMMA 0x00E7 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_ETA 0x00E8 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_IOTA 0x00E9 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_XI 0x00EA #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_KAPPA 0x00EB #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_LAMDA 0x00EC #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_MU 0x00ED #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_NU 0x00EE #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_OMICRON 0x00EF #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_PI 0x00F0 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0x00F1 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_RHO 0x00F2 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_SIGMA 0x00F3 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_TAU 0x00F4 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_THETA 0x00F5 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_OMEGA 0x00F6 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_FINAL_SIGMA 0x00F7 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_CHI 0x00F8 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_UPSILON 0x00F9 #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_ZETA 0x00FA #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0x00FB #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0x00FC #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS 0x00FD #define T_MS_MAC_GREEK_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS 0x00FE #define T_MS_MAC_GREEK_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_MS_MAC_GREEK(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_TWO) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_SUPERSCRIPT_THREE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_GREEK_DIALYTIKA_TONOS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_GREEK_TONOS) \ EL(_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_POUND_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_BULLET) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_BROKEN_BAR) \ EL(_SOFT_HYPHEN) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_SECTION_SIGN) \ EL(_NOT_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_GREEK_ANO_TELEIA) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_NOT_SIGN) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_ALMOST_EQUAL_TO) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_HORIZONTAL_BAR) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS) \ EL(_UNDEFINED_00FF) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MS_MAC_GREEK(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_SUPERSCRIPT_ONE) \ EL(_SUPERSCRIPT_TWO) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_SUPERSCRIPT_THREE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_GREEK_DIALYTIKA_TONOS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_GREEK_TONOS) \ EL(_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_POUND_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_BULLET) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_BROKEN_BAR) \ EL(_SOFT_HYPHEN) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_GREEK_CAPITAL_LETTER_GAMMA) \ EL(_GREEK_CAPITAL_LETTER_DELTA) \ EL(_GREEK_CAPITAL_LETTER_THETA) \ EL(_GREEK_CAPITAL_LETTER_LAMDA) \ EL(_GREEK_CAPITAL_LETTER_XI) \ EL(_GREEK_CAPITAL_LETTER_PI) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_GREEK_CAPITAL_LETTER_SIGMA) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_SECTION_SIGN) \ EL(_NOT_EQUAL_TO) \ EL(_DEGREE_SIGN) \ EL(_GREEK_ANO_TELEIA) \ EL(_GREEK_CAPITAL_LETTER_ALPHA) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_GREEK_CAPITAL_LETTER_BETA) \ EL(_GREEK_CAPITAL_LETTER_EPSILON) \ EL(_GREEK_CAPITAL_LETTER_ZETA) \ EL(_GREEK_CAPITAL_LETTER_ETA) \ EL(_GREEK_CAPITAL_LETTER_IOTA) \ EL(_GREEK_CAPITAL_LETTER_KAPPA) \ EL(_GREEK_CAPITAL_LETTER_MU) \ EL(_GREEK_CAPITAL_LETTER_PHI) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_CAPITAL_LETTER_PSI) \ EL(_GREEK_CAPITAL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_NU) \ EL(_NOT_SIGN) \ EL(_GREEK_CAPITAL_LETTER_OMICRON) \ EL(_GREEK_CAPITAL_LETTER_RHO) \ EL(_ALMOST_EQUAL_TO) \ EL(_GREEK_CAPITAL_LETTER_TAU) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_GREEK_CAPITAL_LETTER_UPSILON) \ EL(_GREEK_CAPITAL_LETTER_CHI) \ EL(_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_HORIZONTAL_BAR) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ETA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS) \ EL(_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_ALPHA) \ EL(_GREEK_SMALL_LETTER_BETA) \ EL(_GREEK_SMALL_LETTER_PSI) \ EL(_GREEK_SMALL_LETTER_DELTA) \ EL(_GREEK_SMALL_LETTER_EPSILON) \ EL(_GREEK_SMALL_LETTER_PHI) \ EL(_GREEK_SMALL_LETTER_GAMMA) \ EL(_GREEK_SMALL_LETTER_ETA) \ EL(_GREEK_SMALL_LETTER_IOTA) \ EL(_GREEK_SMALL_LETTER_XI) \ EL(_GREEK_SMALL_LETTER_KAPPA) \ EL(_GREEK_SMALL_LETTER_LAMDA) \ EL(_GREEK_SMALL_LETTER_MU) \ EL(_GREEK_SMALL_LETTER_NU) \ EL(_GREEK_SMALL_LETTER_OMICRON) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS) \ EL(_GREEK_SMALL_LETTER_RHO) \ EL(_GREEK_SMALL_LETTER_SIGMA) \ EL(_GREEK_SMALL_LETTER_TAU) \ EL(_GREEK_SMALL_LETTER_THETA) \ EL(_GREEK_SMALL_LETTER_OMEGA) \ EL(_GREEK_SMALL_LETTER_FINAL_SIGMA) \ EL(_GREEK_SMALL_LETTER_CHI) \ EL(_GREEK_SMALL_LETTER_UPSILON) \ EL(_GREEK_SMALL_LETTER_ZETA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA) \ EL(_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS) \ EL(_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS) \ EL(_UNDEFINED_00FF) #endif /* TUTF_MS_MAC_GREEK_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/ms_mac_icelandic.h����������������������������������������������������������0000664�0000000�0000000�00000147271�13775351206�0020476�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MS_MAC_ICELANDIC_H #define TUTF_MS_MAC_ICELANDIC_H #define T_MS_MAC_ICELANDIC_CTRL_NULL 0x0000 #define T_MS_MAC_ICELANDIC_CTRL_START_OF_HEADING 0x0001 #define T_MS_MAC_ICELANDIC_CTRL_START_OF_TEXT 0x0002 #define T_MS_MAC_ICELANDIC_CTRL_END_OF_TEXT 0x0003 #define T_MS_MAC_ICELANDIC_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MS_MAC_ICELANDIC_CTRL_ENQUIRY 0x0005 #define T_MS_MAC_ICELANDIC_CTRL_ACKNOWLEDGE 0x0006 #define T_MS_MAC_ICELANDIC_CTRL_BELL 0x0007 #define T_MS_MAC_ICELANDIC_CTRL_BACKSPACE 0x0008 #define T_MS_MAC_ICELANDIC_CTRL_CHARACTER_TABULATION 0x0009 #define T_MS_MAC_ICELANDIC_CTRL_LINE_FEED 0x000A #define T_MS_MAC_ICELANDIC_CTRL_LINE_TABULATION 0x000B #define T_MS_MAC_ICELANDIC_CTRL_FORM_FEED 0x000C #define T_MS_MAC_ICELANDIC_CTRL_CARRIAGE_RETURN 0x000D #define T_MS_MAC_ICELANDIC_CTRL_SHIFT_OUT 0x000E #define T_MS_MAC_ICELANDIC_CTRL_SHIFT_IN 0x000F #define T_MS_MAC_ICELANDIC_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MS_MAC_ICELANDIC_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MS_MAC_ICELANDIC_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MS_MAC_ICELANDIC_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MS_MAC_ICELANDIC_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MS_MAC_ICELANDIC_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MS_MAC_ICELANDIC_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MS_MAC_ICELANDIC_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MS_MAC_ICELANDIC_CTRL_CANCEL 0x0018 #define T_MS_MAC_ICELANDIC_CTRL_END_OF_MEDIUM 0x0019 #define T_MS_MAC_ICELANDIC_CTRL_SUBSTITUTE 0x001A #define T_MS_MAC_ICELANDIC_CTRL_ESCAPE 0x001B #define T_MS_MAC_ICELANDIC_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MS_MAC_ICELANDIC_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MS_MAC_ICELANDIC_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MS_MAC_ICELANDIC_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MS_MAC_ICELANDIC_SPACE 0x0020 #define T_MS_MAC_ICELANDIC_EXCLAMATION_MARK 0x0021 #define T_MS_MAC_ICELANDIC_QUOTATION_MARK 0x0022 #define T_MS_MAC_ICELANDIC_NUMBER_SIGN 0x0023 #define T_MS_MAC_ICELANDIC_DOLLAR_SIGN 0x0024 #define T_MS_MAC_ICELANDIC_PERCENT_SIGN 0x0025 #define T_MS_MAC_ICELANDIC_AMPERSAND 0x0026 #define T_MS_MAC_ICELANDIC_APOSTROPHE 0x0027 #define T_MS_MAC_ICELANDIC_LEFT_PARENTHESIS 0x0028 #define T_MS_MAC_ICELANDIC_RIGHT_PARENTHESIS 0x0029 #define T_MS_MAC_ICELANDIC_ASTERISK 0x002A #define T_MS_MAC_ICELANDIC_PLUS_SIGN 0x002B #define T_MS_MAC_ICELANDIC_COMMA 0x002C #define T_MS_MAC_ICELANDIC_HYPHEN_MINUS 0x002D #define T_MS_MAC_ICELANDIC_FULL_STOP 0x002E #define T_MS_MAC_ICELANDIC_SOLIDUS 0x002F #define T_MS_MAC_ICELANDIC_DIGIT_ZERO 0x0030 #define T_MS_MAC_ICELANDIC_DIGIT_ONE 0x0031 #define T_MS_MAC_ICELANDIC_DIGIT_TWO 0x0032 #define T_MS_MAC_ICELANDIC_DIGIT_THREE 0x0033 #define T_MS_MAC_ICELANDIC_DIGIT_FOUR 0x0034 #define T_MS_MAC_ICELANDIC_DIGIT_FIVE 0x0035 #define T_MS_MAC_ICELANDIC_DIGIT_SIX 0x0036 #define T_MS_MAC_ICELANDIC_DIGIT_SEVEN 0x0037 #define T_MS_MAC_ICELANDIC_DIGIT_EIGHT 0x0038 #define T_MS_MAC_ICELANDIC_DIGIT_NINE 0x0039 #define T_MS_MAC_ICELANDIC_COLON 0x003A #define T_MS_MAC_ICELANDIC_SEMICOLON 0x003B #define T_MS_MAC_ICELANDIC_LESS_THAN_SIGN 0x003C #define T_MS_MAC_ICELANDIC_EQUALS_SIGN 0x003D #define T_MS_MAC_ICELANDIC_GREATER_THAN_SIGN 0x003E #define T_MS_MAC_ICELANDIC_QUESTION_MARK 0x003F #define T_MS_MAC_ICELANDIC_COMMERCIAL_AT 0x0040 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_J 0x004A #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_K 0x004B #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_L 0x004C #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_M 0x004D #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_N 0x004E #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O 0x004F #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MS_MAC_ICELANDIC_LEFT_SQUARE_BRACKET 0x005B #define T_MS_MAC_ICELANDIC_REVERSE_SOLIDUS 0x005C #define T_MS_MAC_ICELANDIC_RIGHT_SQUARE_BRACKET 0x005D #define T_MS_MAC_ICELANDIC_CIRCUMFLEX_ACCENT 0x005E #define T_MS_MAC_ICELANDIC_LOW_LINE 0x005F #define T_MS_MAC_ICELANDIC_GRAVE_ACCENT 0x0060 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_A 0x0061 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_B 0x0062 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_C 0x0063 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_D 0x0064 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_E 0x0065 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_F 0x0066 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_G 0x0067 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_H 0x0068 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_I 0x0069 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_J 0x006A #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_K 0x006B #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_L 0x006C #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_M 0x006D #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_N 0x006E #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_O 0x006F #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_P 0x0070 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_Q 0x0071 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_R 0x0072 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_S 0x0073 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_T 0x0074 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_U 0x0075 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_V 0x0076 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_W 0x0077 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_X 0x0078 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_Y 0x0079 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_Z 0x007A #define T_MS_MAC_ICELANDIC_LEFT_CURLY_BRACKET 0x007B #define T_MS_MAC_ICELANDIC_VERTICAL_LINE 0x007C #define T_MS_MAC_ICELANDIC_RIGHT_CURLY_BRACKET 0x007D #define T_MS_MAC_ICELANDIC_TILDE 0x007E #define T_MS_MAC_ICELANDIC_CTRL_DELETE 0x007F #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0081 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00A0 #define T_MS_MAC_ICELANDIC_DEGREE_SIGN 0x00A1 #define T_MS_MAC_ICELANDIC_CENT_SIGN 0x00A2 #define T_MS_MAC_ICELANDIC_POUND_SIGN 0x00A3 #define T_MS_MAC_ICELANDIC_SECTION_SIGN 0x00A4 #define T_MS_MAC_ICELANDIC_BULLET 0x00A5 #define T_MS_MAC_ICELANDIC_PILCROW_SIGN 0x00A6 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MS_MAC_ICELANDIC_REGISTERED_SIGN 0x00A8 #define T_MS_MAC_ICELANDIC_COPYRIGHT_SIGN 0x00A9 #define T_MS_MAC_ICELANDIC_TRADE_MARK_SIGN 0x00AA #define T_MS_MAC_ICELANDIC_ACUTE_ACCENT 0x00AB #define T_MS_MAC_ICELANDIC_DIAERESIS 0x00AC #define T_MS_MAC_ICELANDIC_NOT_EQUAL_TO 0x00AD #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_AE 0x00AE #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00AF #define T_MS_MAC_ICELANDIC_INFINITY 0x00B0 #define T_MS_MAC_ICELANDIC_PLUS_MINUS_SIGN 0x00B1 #define T_MS_MAC_ICELANDIC_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MS_MAC_ICELANDIC_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MS_MAC_ICELANDIC_YEN_SIGN 0x00B4 #define T_MS_MAC_ICELANDIC_MICRO_SIGN 0x00B5 #define T_MS_MAC_ICELANDIC_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MS_MAC_ICELANDIC_N_ARY_SUMMATION 0x00B7 #define T_MS_MAC_ICELANDIC_N_ARY_PRODUCT 0x00B8 #define T_MS_MAC_ICELANDIC_GREEK_SMALL_LETTER_PI 0x00B9 #define T_MS_MAC_ICELANDIC_INTEGRAL 0x00BA #define T_MS_MAC_ICELANDIC_FEMININE_ORDINAL_INDICATOR 0x00BB #define T_MS_MAC_ICELANDIC_MASCULINE_ORDINAL_INDICATOR 0x00BC #define T_MS_MAC_ICELANDIC_OHM_SIGN 0x00BD #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_AE 0x00BE #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00BF #define T_MS_MAC_ICELANDIC_INVERTED_QUESTION_MARK 0x00C0 #define T_MS_MAC_ICELANDIC_INVERTED_EXCLAMATION_MARK 0x00C1 #define T_MS_MAC_ICELANDIC_NOT_SIGN 0x00C2 #define T_MS_MAC_ICELANDIC_SQUARE_ROOT 0x00C3 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MS_MAC_ICELANDIC_ALMOST_EQUAL_TO 0x00C5 #define T_MS_MAC_ICELANDIC_INCREMENT 0x00C6 #define T_MS_MAC_ICELANDIC_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MS_MAC_ICELANDIC_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MS_MAC_ICELANDIC_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MS_MAC_ICELANDIC_NO_BREAK_SPACE 0x00CA #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00CB #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00CC #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LIGATURE_OE 0x00CE #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MS_MAC_ICELANDIC_EN_DASH 0x00D0 #define T_MS_MAC_ICELANDIC_EM_DASH 0x00D1 #define T_MS_MAC_ICELANDIC_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MS_MAC_ICELANDIC_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MS_MAC_ICELANDIC_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MS_MAC_ICELANDIC_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MS_MAC_ICELANDIC_DIVISION_SIGN 0x00D6 #define T_MS_MAC_ICELANDIC_LOZENGE 0x00D7 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00D8 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00D9 #define T_MS_MAC_ICELANDIC_FRACTION_SLASH 0x00DA #define T_MS_MAC_ICELANDIC_CURRENCY_SIGN 0x00DB #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_ETH 0x00DC #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_ETH 0x00DD #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_THORN 0x00DE #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_THORN 0x00DF #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00E0 #define T_MS_MAC_ICELANDIC_MIDDLE_DOT 0x00E1 #define T_MS_MAC_ICELANDIC_SINGLE_LOW_9_QUOTATION_MARK 0x00E2 #define T_MS_MAC_ICELANDIC_DOUBLE_LOW_9_QUOTATION_MARK 0x00E3 #define T_MS_MAC_ICELANDIC_PER_MILLE_SIGN 0x00E4 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00E5 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00E6 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00E8 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00E9 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00EB #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00EC #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00ED #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MS_MAC_ICELANDIC_UNDEFINED_00F0 0x00F0 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00F1 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00F3 #define T_MS_MAC_ICELANDIC_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00F4 #define T_MS_MAC_ICELANDIC_LATIN_SMALL_LETTER_DOTLESS_I 0x00F5 #define T_MS_MAC_ICELANDIC_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x00F6 #define T_MS_MAC_ICELANDIC_SMALL_TILDE 0x00F7 #define T_MS_MAC_ICELANDIC_MACRON 0x00F8 #define T_MS_MAC_ICELANDIC_BREVE 0x00F9 #define T_MS_MAC_ICELANDIC_DOT_ABOVE 0x00FA #define T_MS_MAC_ICELANDIC_RING_ABOVE 0x00FB #define T_MS_MAC_ICELANDIC_CEDILLA 0x00FC #define T_MS_MAC_ICELANDIC_DOUBLE_ACUTE_ACCENT 0x00FD #define T_MS_MAC_ICELANDIC_OGONEK 0x00FE #define T_MS_MAC_ICELANDIC_CARON 0x00FF /* list of all characters */ #define T_LIST_MS_MAC_ICELANDIC(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_MICRO_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_OHM_SIGN) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MS_MAC_ICELANDIC(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_OHM_SIGN) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_CURRENCY_SIGN) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) #endif /* TUTF_MS_MAC_ICELANDIC_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/ms_mac_latin2.h�������������������������������������������������������������0000664�0000000�0000000�00000147647�13775351206�0017763�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MS_MAC_LATIN2_H #define TUTF_MS_MAC_LATIN2_H #define T_MS_MAC_LATIN2_CTRL_NULL 0x0000 #define T_MS_MAC_LATIN2_CTRL_START_OF_HEADING 0x0001 #define T_MS_MAC_LATIN2_CTRL_START_OF_TEXT 0x0002 #define T_MS_MAC_LATIN2_CTRL_END_OF_TEXT 0x0003 #define T_MS_MAC_LATIN2_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MS_MAC_LATIN2_CTRL_ENQUIRY 0x0005 #define T_MS_MAC_LATIN2_CTRL_ACKNOWLEDGE 0x0006 #define T_MS_MAC_LATIN2_CTRL_BELL 0x0007 #define T_MS_MAC_LATIN2_CTRL_BACKSPACE 0x0008 #define T_MS_MAC_LATIN2_CTRL_CHARACTER_TABULATION 0x0009 #define T_MS_MAC_LATIN2_CTRL_LINE_FEED 0x000A #define T_MS_MAC_LATIN2_CTRL_LINE_TABULATION 0x000B #define T_MS_MAC_LATIN2_CTRL_FORM_FEED 0x000C #define T_MS_MAC_LATIN2_CTRL_CARRIAGE_RETURN 0x000D #define T_MS_MAC_LATIN2_CTRL_SHIFT_OUT 0x000E #define T_MS_MAC_LATIN2_CTRL_SHIFT_IN 0x000F #define T_MS_MAC_LATIN2_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MS_MAC_LATIN2_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MS_MAC_LATIN2_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MS_MAC_LATIN2_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MS_MAC_LATIN2_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MS_MAC_LATIN2_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MS_MAC_LATIN2_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MS_MAC_LATIN2_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MS_MAC_LATIN2_CTRL_CANCEL 0x0018 #define T_MS_MAC_LATIN2_CTRL_END_OF_MEDIUM 0x0019 #define T_MS_MAC_LATIN2_CTRL_SUBSTITUTE 0x001A #define T_MS_MAC_LATIN2_CTRL_ESCAPE 0x001B #define T_MS_MAC_LATIN2_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MS_MAC_LATIN2_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MS_MAC_LATIN2_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MS_MAC_LATIN2_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MS_MAC_LATIN2_SPACE 0x0020 #define T_MS_MAC_LATIN2_EXCLAMATION_MARK 0x0021 #define T_MS_MAC_LATIN2_QUOTATION_MARK 0x0022 #define T_MS_MAC_LATIN2_NUMBER_SIGN 0x0023 #define T_MS_MAC_LATIN2_DOLLAR_SIGN 0x0024 #define T_MS_MAC_LATIN2_PERCENT_SIGN 0x0025 #define T_MS_MAC_LATIN2_AMPERSAND 0x0026 #define T_MS_MAC_LATIN2_APOSTROPHE 0x0027 #define T_MS_MAC_LATIN2_LEFT_PARENTHESIS 0x0028 #define T_MS_MAC_LATIN2_RIGHT_PARENTHESIS 0x0029 #define T_MS_MAC_LATIN2_ASTERISK 0x002A #define T_MS_MAC_LATIN2_PLUS_SIGN 0x002B #define T_MS_MAC_LATIN2_COMMA 0x002C #define T_MS_MAC_LATIN2_HYPHEN_MINUS 0x002D #define T_MS_MAC_LATIN2_FULL_STOP 0x002E #define T_MS_MAC_LATIN2_SOLIDUS 0x002F #define T_MS_MAC_LATIN2_DIGIT_ZERO 0x0030 #define T_MS_MAC_LATIN2_DIGIT_ONE 0x0031 #define T_MS_MAC_LATIN2_DIGIT_TWO 0x0032 #define T_MS_MAC_LATIN2_DIGIT_THREE 0x0033 #define T_MS_MAC_LATIN2_DIGIT_FOUR 0x0034 #define T_MS_MAC_LATIN2_DIGIT_FIVE 0x0035 #define T_MS_MAC_LATIN2_DIGIT_SIX 0x0036 #define T_MS_MAC_LATIN2_DIGIT_SEVEN 0x0037 #define T_MS_MAC_LATIN2_DIGIT_EIGHT 0x0038 #define T_MS_MAC_LATIN2_DIGIT_NINE 0x0039 #define T_MS_MAC_LATIN2_COLON 0x003A #define T_MS_MAC_LATIN2_SEMICOLON 0x003B #define T_MS_MAC_LATIN2_LESS_THAN_SIGN 0x003C #define T_MS_MAC_LATIN2_EQUALS_SIGN 0x003D #define T_MS_MAC_LATIN2_GREATER_THAN_SIGN 0x003E #define T_MS_MAC_LATIN2_QUESTION_MARK 0x003F #define T_MS_MAC_LATIN2_COMMERCIAL_AT 0x0040 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_J 0x004A #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_K 0x004B #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_L 0x004C #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_M 0x004D #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_N 0x004E #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_O 0x004F #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MS_MAC_LATIN2_LEFT_SQUARE_BRACKET 0x005B #define T_MS_MAC_LATIN2_REVERSE_SOLIDUS 0x005C #define T_MS_MAC_LATIN2_RIGHT_SQUARE_BRACKET 0x005D #define T_MS_MAC_LATIN2_CIRCUMFLEX_ACCENT 0x005E #define T_MS_MAC_LATIN2_LOW_LINE 0x005F #define T_MS_MAC_LATIN2_GRAVE_ACCENT 0x0060 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_A 0x0061 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_B 0x0062 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_C 0x0063 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_D 0x0064 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_E 0x0065 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_F 0x0066 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_G 0x0067 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_H 0x0068 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_I 0x0069 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_J 0x006A #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_K 0x006B #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_L 0x006C #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_M 0x006D #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_N 0x006E #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_O 0x006F #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_P 0x0070 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_Q 0x0071 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_R 0x0072 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_S 0x0073 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_T 0x0074 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_U 0x0075 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_V 0x0076 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_W 0x0077 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_X 0x0078 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_Y 0x0079 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_Z 0x007A #define T_MS_MAC_LATIN2_LEFT_CURLY_BRACKET 0x007B #define T_MS_MAC_LATIN2_VERTICAL_LINE 0x007C #define T_MS_MAC_LATIN2_RIGHT_CURLY_BRACKET 0x007D #define T_MS_MAC_LATIN2_TILDE 0x007E #define T_MS_MAC_LATIN2_CTRL_DELETE 0x007F #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_A_WITH_MACRON 0x0081 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_A_WITH_MACRON 0x0082 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x0084 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x0088 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x0089 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_C_WITH_CARON 0x008B #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x008C #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x008D #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x008F #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x0090 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_D_WITH_CARON 0x0091 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_D_WITH_CARON 0x0093 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_E_WITH_MACRON 0x0094 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_E_WITH_MACRON 0x0095 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0x0096 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0x0098 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_E_WITH_CARON 0x009D #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_E_WITH_CARON 0x009E #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MS_MAC_LATIN2_DAGGER 0x00A0 #define T_MS_MAC_LATIN2_DEGREE_SIGN 0x00A1 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x00A2 #define T_MS_MAC_LATIN2_POUND_SIGN 0x00A3 #define T_MS_MAC_LATIN2_SECTION_SIGN 0x00A4 #define T_MS_MAC_LATIN2_BULLET 0x00A5 #define T_MS_MAC_LATIN2_PILCROW_SIGN 0x00A6 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MS_MAC_LATIN2_REGISTERED_SIGN 0x00A8 #define T_MS_MAC_LATIN2_COPYRIGHT_SIGN 0x00A9 #define T_MS_MAC_LATIN2_TRADE_MARK_SIGN 0x00AA #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x00AB #define T_MS_MAC_LATIN2_DIAERESIS 0x00AC #define T_MS_MAC_LATIN2_NOT_EQUAL_TO 0x00AD #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x00AE #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0x00AF #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_I_WITH_OGONEK 0x00B0 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_I_WITH_MACRON 0x00B1 #define T_MS_MAC_LATIN2_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MS_MAC_LATIN2_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_I_WITH_MACRON 0x00B4 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0x00B5 #define T_MS_MAC_LATIN2_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MS_MAC_LATIN2_N_ARY_SUMMATION 0x00B7 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_L_WITH_STROKE 0x00B8 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0x00B9 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_L_WITH_CEDILLA 0x00BA #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_L_WITH_CARON 0x00BB #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_L_WITH_CARON 0x00BC #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_L_WITH_ACUTE 0x00BD #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_L_WITH_ACUTE 0x00BE #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0x00BF #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_N_WITH_CEDILLA 0x00C0 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x00C1 #define T_MS_MAC_LATIN2_NOT_SIGN 0x00C2 #define T_MS_MAC_LATIN2_SQUARE_ROOT 0x00C3 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_N_WITH_ACUTE 0x00C4 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_N_WITH_CARON 0x00C5 #define T_MS_MAC_LATIN2_INCREMENT 0x00C6 #define T_MS_MAC_LATIN2_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MS_MAC_LATIN2_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MS_MAC_LATIN2_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MS_MAC_LATIN2_NO_BREAK_SPACE 0x00CA #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_N_WITH_CARON 0x00CB #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE 0x00CC #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE 0x00CE #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_O_WITH_MACRON 0x00CF #define T_MS_MAC_LATIN2_EN_DASH 0x00D0 #define T_MS_MAC_LATIN2_EM_DASH 0x00D1 #define T_MS_MAC_LATIN2_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MS_MAC_LATIN2_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MS_MAC_LATIN2_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MS_MAC_LATIN2_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MS_MAC_LATIN2_DIVISION_SIGN 0x00D6 #define T_MS_MAC_LATIN2_LOZENGE 0x00D7 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_O_WITH_MACRON 0x00D8 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_R_WITH_ACUTE 0x00D9 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_R_WITH_ACUTE 0x00DA #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_R_WITH_CARON 0x00DB #define T_MS_MAC_LATIN2_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x00DC #define T_MS_MAC_LATIN2_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x00DD #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_R_WITH_CARON 0x00DE #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA 0x00DF #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_R_WITH_CEDILLA 0x00E0 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x00E1 #define T_MS_MAC_LATIN2_SINGLE_LOW_9_QUOTATION_MARK 0x00E2 #define T_MS_MAC_LATIN2_DOUBLE_LOW_9_QUOTATION_MARK 0x00E3 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_S_WITH_CARON 0x00E4 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x00E5 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x00E6 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_T_WITH_CARON 0x00E8 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_T_WITH_CARON 0x00E9 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x00EB #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_Z_WITH_CARON 0x00EC #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_U_WITH_MACRON 0x00ED #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_U_WITH_MACRON 0x00F0 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE 0x00F1 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE 0x00F3 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0x00F4 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0x00F5 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0x00F6 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_U_WITH_OGONEK 0x00F7 #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00F8 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00F9 #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_K_WITH_CEDILLA 0x00FA #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x00FB #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x00FC #define T_MS_MAC_LATIN2_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x00FD #define T_MS_MAC_LATIN2_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x00FE #define T_MS_MAC_LATIN2_CARON 0x00FF /* list of all characters */ #define T_LIST_MS_MAC_LATIN2(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_L_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CARON) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CARON) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_R_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_T_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_CARON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MS_MAC_LATIN2(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_A_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_C_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_C_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_D_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_D_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_MACRON) \ EL(_LATIN_SMALL_LETTER_E_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_E_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_OGONEK) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_LATIN_SMALL_LETTER_E_WITH_OGONEK) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_SMALL_LETTER_G_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_I_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_MACRON) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_LATIN_SMALL_LETTER_I_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_L_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_L_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_L_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_N_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_ACUTE) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_N_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_CARON) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_SMALL_LETTER_N_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_MACRON) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_O_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_R_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CARON) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_R_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_R_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CARON) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_LATIN_SMALL_LETTER_S_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_S_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_T_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_T_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_CARON) \ EL(_LATIN_SMALL_LETTER_Z_WITH_CARON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_MACRON) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_SMALL_LETTER_U_WITH_OGONEK) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_K_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA) \ EL(_CARON) #endif /* TUTF_MS_MAC_LATIN2_H */ �����������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/ms_mac_roman.h��������������������������������������������������������������0000664�0000000�0000000�00000145406�13775351206�0017675�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MS_MAC_ROMAN_H #define TUTF_MS_MAC_ROMAN_H #define T_MS_MAC_ROMAN_CTRL_NULL 0x0000 #define T_MS_MAC_ROMAN_CTRL_START_OF_HEADING 0x0001 #define T_MS_MAC_ROMAN_CTRL_START_OF_TEXT 0x0002 #define T_MS_MAC_ROMAN_CTRL_END_OF_TEXT 0x0003 #define T_MS_MAC_ROMAN_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MS_MAC_ROMAN_CTRL_ENQUIRY 0x0005 #define T_MS_MAC_ROMAN_CTRL_ACKNOWLEDGE 0x0006 #define T_MS_MAC_ROMAN_CTRL_BELL 0x0007 #define T_MS_MAC_ROMAN_CTRL_BACKSPACE 0x0008 #define T_MS_MAC_ROMAN_CTRL_CHARACTER_TABULATION 0x0009 #define T_MS_MAC_ROMAN_CTRL_LINE_FEED 0x000A #define T_MS_MAC_ROMAN_CTRL_LINE_TABULATION 0x000B #define T_MS_MAC_ROMAN_CTRL_FORM_FEED 0x000C #define T_MS_MAC_ROMAN_CTRL_CARRIAGE_RETURN 0x000D #define T_MS_MAC_ROMAN_CTRL_SHIFT_OUT 0x000E #define T_MS_MAC_ROMAN_CTRL_SHIFT_IN 0x000F #define T_MS_MAC_ROMAN_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MS_MAC_ROMAN_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MS_MAC_ROMAN_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MS_MAC_ROMAN_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MS_MAC_ROMAN_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MS_MAC_ROMAN_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MS_MAC_ROMAN_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MS_MAC_ROMAN_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MS_MAC_ROMAN_CTRL_CANCEL 0x0018 #define T_MS_MAC_ROMAN_CTRL_END_OF_MEDIUM 0x0019 #define T_MS_MAC_ROMAN_CTRL_SUBSTITUTE 0x001A #define T_MS_MAC_ROMAN_CTRL_ESCAPE 0x001B #define T_MS_MAC_ROMAN_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MS_MAC_ROMAN_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MS_MAC_ROMAN_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MS_MAC_ROMAN_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MS_MAC_ROMAN_SPACE 0x0020 #define T_MS_MAC_ROMAN_EXCLAMATION_MARK 0x0021 #define T_MS_MAC_ROMAN_QUOTATION_MARK 0x0022 #define T_MS_MAC_ROMAN_NUMBER_SIGN 0x0023 #define T_MS_MAC_ROMAN_DOLLAR_SIGN 0x0024 #define T_MS_MAC_ROMAN_PERCENT_SIGN 0x0025 #define T_MS_MAC_ROMAN_AMPERSAND 0x0026 #define T_MS_MAC_ROMAN_APOSTROPHE 0x0027 #define T_MS_MAC_ROMAN_LEFT_PARENTHESIS 0x0028 #define T_MS_MAC_ROMAN_RIGHT_PARENTHESIS 0x0029 #define T_MS_MAC_ROMAN_ASTERISK 0x002A #define T_MS_MAC_ROMAN_PLUS_SIGN 0x002B #define T_MS_MAC_ROMAN_COMMA 0x002C #define T_MS_MAC_ROMAN_HYPHEN_MINUS 0x002D #define T_MS_MAC_ROMAN_FULL_STOP 0x002E #define T_MS_MAC_ROMAN_SOLIDUS 0x002F #define T_MS_MAC_ROMAN_DIGIT_ZERO 0x0030 #define T_MS_MAC_ROMAN_DIGIT_ONE 0x0031 #define T_MS_MAC_ROMAN_DIGIT_TWO 0x0032 #define T_MS_MAC_ROMAN_DIGIT_THREE 0x0033 #define T_MS_MAC_ROMAN_DIGIT_FOUR 0x0034 #define T_MS_MAC_ROMAN_DIGIT_FIVE 0x0035 #define T_MS_MAC_ROMAN_DIGIT_SIX 0x0036 #define T_MS_MAC_ROMAN_DIGIT_SEVEN 0x0037 #define T_MS_MAC_ROMAN_DIGIT_EIGHT 0x0038 #define T_MS_MAC_ROMAN_DIGIT_NINE 0x0039 #define T_MS_MAC_ROMAN_COLON 0x003A #define T_MS_MAC_ROMAN_SEMICOLON 0x003B #define T_MS_MAC_ROMAN_LESS_THAN_SIGN 0x003C #define T_MS_MAC_ROMAN_EQUALS_SIGN 0x003D #define T_MS_MAC_ROMAN_GREATER_THAN_SIGN 0x003E #define T_MS_MAC_ROMAN_QUESTION_MARK 0x003F #define T_MS_MAC_ROMAN_COMMERCIAL_AT 0x0040 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_J 0x004A #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_K 0x004B #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_L 0x004C #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_M 0x004D #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_N 0x004E #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_O 0x004F #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MS_MAC_ROMAN_LEFT_SQUARE_BRACKET 0x005B #define T_MS_MAC_ROMAN_REVERSE_SOLIDUS 0x005C #define T_MS_MAC_ROMAN_RIGHT_SQUARE_BRACKET 0x005D #define T_MS_MAC_ROMAN_CIRCUMFLEX_ACCENT 0x005E #define T_MS_MAC_ROMAN_LOW_LINE 0x005F #define T_MS_MAC_ROMAN_GRAVE_ACCENT 0x0060 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_A 0x0061 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_B 0x0062 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_C 0x0063 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_D 0x0064 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_E 0x0065 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_F 0x0066 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_G 0x0067 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_H 0x0068 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_I 0x0069 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_J 0x006A #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_K 0x006B #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_L 0x006C #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_M 0x006D #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_N 0x006E #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_O 0x006F #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_P 0x0070 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_Q 0x0071 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_R 0x0072 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_S 0x0073 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_T 0x0074 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_U 0x0075 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_V 0x0076 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_W 0x0077 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_X 0x0078 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_Y 0x0079 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_Z 0x007A #define T_MS_MAC_ROMAN_LEFT_CURLY_BRACKET 0x007B #define T_MS_MAC_ROMAN_VERTICAL_LINE 0x007C #define T_MS_MAC_ROMAN_RIGHT_CURLY_BRACKET 0x007D #define T_MS_MAC_ROMAN_TILDE 0x007E #define T_MS_MAC_ROMAN_CTRL_DELETE 0x007F #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0081 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MS_MAC_ROMAN_DAGGER 0x00A0 #define T_MS_MAC_ROMAN_DEGREE_SIGN 0x00A1 #define T_MS_MAC_ROMAN_CENT_SIGN 0x00A2 #define T_MS_MAC_ROMAN_POUND_SIGN 0x00A3 #define T_MS_MAC_ROMAN_SECTION_SIGN 0x00A4 #define T_MS_MAC_ROMAN_BULLET 0x00A5 #define T_MS_MAC_ROMAN_PILCROW_SIGN 0x00A6 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MS_MAC_ROMAN_REGISTERED_SIGN 0x00A8 #define T_MS_MAC_ROMAN_COPYRIGHT_SIGN 0x00A9 #define T_MS_MAC_ROMAN_TRADE_MARK_SIGN 0x00AA #define T_MS_MAC_ROMAN_ACUTE_ACCENT 0x00AB #define T_MS_MAC_ROMAN_DIAERESIS 0x00AC #define T_MS_MAC_ROMAN_NOT_EQUAL_TO 0x00AD #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_AE 0x00AE #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00AF #define T_MS_MAC_ROMAN_INFINITY 0x00B0 #define T_MS_MAC_ROMAN_PLUS_MINUS_SIGN 0x00B1 #define T_MS_MAC_ROMAN_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MS_MAC_ROMAN_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MS_MAC_ROMAN_YEN_SIGN 0x00B4 #define T_MS_MAC_ROMAN_MICRO_SIGN 0x00B5 #define T_MS_MAC_ROMAN_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MS_MAC_ROMAN_N_ARY_SUMMATION 0x00B7 #define T_MS_MAC_ROMAN_N_ARY_PRODUCT 0x00B8 #define T_MS_MAC_ROMAN_GREEK_SMALL_LETTER_PI 0x00B9 #define T_MS_MAC_ROMAN_INTEGRAL 0x00BA #define T_MS_MAC_ROMAN_FEMININE_ORDINAL_INDICATOR 0x00BB #define T_MS_MAC_ROMAN_MASCULINE_ORDINAL_INDICATOR 0x00BC #define T_MS_MAC_ROMAN_OHM_SIGN 0x00BD #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_AE 0x00BE #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00BF #define T_MS_MAC_ROMAN_INVERTED_QUESTION_MARK 0x00C0 #define T_MS_MAC_ROMAN_INVERTED_EXCLAMATION_MARK 0x00C1 #define T_MS_MAC_ROMAN_NOT_SIGN 0x00C2 #define T_MS_MAC_ROMAN_SQUARE_ROOT 0x00C3 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MS_MAC_ROMAN_ALMOST_EQUAL_TO 0x00C5 #define T_MS_MAC_ROMAN_INCREMENT 0x00C6 #define T_MS_MAC_ROMAN_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MS_MAC_ROMAN_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MS_MAC_ROMAN_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MS_MAC_ROMAN_NO_BREAK_SPACE 0x00CA #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00CB #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00CC #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LIGATURE_OE 0x00CE #define T_MS_MAC_ROMAN_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MS_MAC_ROMAN_EN_DASH 0x00D0 #define T_MS_MAC_ROMAN_EM_DASH 0x00D1 #define T_MS_MAC_ROMAN_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MS_MAC_ROMAN_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MS_MAC_ROMAN_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MS_MAC_ROMAN_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MS_MAC_ROMAN_DIVISION_SIGN 0x00D6 #define T_MS_MAC_ROMAN_LOZENGE 0x00D7 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00D8 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00D9 #define T_MS_MAC_ROMAN_FRACTION_SLASH 0x00DA #define T_MS_MAC_ROMAN_CURRENCY_SIGN 0x00DB #define T_MS_MAC_ROMAN_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x00DC #define T_MS_MAC_ROMAN_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x00DD #define T_MS_MAC_ROMAN_LATIN_SMALL_LIGATURE_FI 0x00DE #define T_MS_MAC_ROMAN_LATIN_SMALL_LIGATURE_FL 0x00DF #define T_MS_MAC_ROMAN_DOUBLE_DAGGER 0x00E0 #define T_MS_MAC_ROMAN_MIDDLE_DOT 0x00E1 #define T_MS_MAC_ROMAN_SINGLE_LOW_9_QUOTATION_MARK 0x00E2 #define T_MS_MAC_ROMAN_DOUBLE_LOW_9_QUOTATION_MARK 0x00E3 #define T_MS_MAC_ROMAN_PER_MILLE_SIGN 0x00E4 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00E5 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00E6 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00E8 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00E9 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00EB #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00EC #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00ED #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MS_MAC_ROMAN_UNDEFINED_00F0 0x00F0 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00F1 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00F3 #define T_MS_MAC_ROMAN_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00F4 #define T_MS_MAC_ROMAN_LATIN_SMALL_LETTER_DOTLESS_I 0x00F5 #define T_MS_MAC_ROMAN_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x00F6 #define T_MS_MAC_ROMAN_SMALL_TILDE 0x00F7 #define T_MS_MAC_ROMAN_MACRON 0x00F8 #define T_MS_MAC_ROMAN_BREVE 0x00F9 #define T_MS_MAC_ROMAN_DOT_ABOVE 0x00FA #define T_MS_MAC_ROMAN_RING_ABOVE 0x00FB #define T_MS_MAC_ROMAN_CEDILLA 0x00FC #define T_MS_MAC_ROMAN_DOUBLE_ACUTE_ACCENT 0x00FD #define T_MS_MAC_ROMAN_OGONEK 0x00FE #define T_MS_MAC_ROMAN_CARON 0x00FF /* list of all characters */ #define T_LIST_MS_MAC_ROMAN(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_MICRO_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_OHM_SIGN) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_CURRENCY_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_FI) \ EL(_LATIN_SMALL_LIGATURE_FL) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MS_MAC_ROMAN(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_OHM_SIGN) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_FRACTION_SLASH) \ EL(_CURRENCY_SIGN) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_FI) \ EL(_LATIN_SMALL_LIGATURE_FL) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) #endif /* TUTF_MS_MAC_ROMAN_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/ms_mac_turkish.h������������������������������������������������������������0000664�0000000�0000000�00000146447�13775351206�0020260�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_MS_MAC_TURKISH_H #define TUTF_MS_MAC_TURKISH_H #define T_MS_MAC_TURKISH_CTRL_NULL 0x0000 #define T_MS_MAC_TURKISH_CTRL_START_OF_HEADING 0x0001 #define T_MS_MAC_TURKISH_CTRL_START_OF_TEXT 0x0002 #define T_MS_MAC_TURKISH_CTRL_END_OF_TEXT 0x0003 #define T_MS_MAC_TURKISH_CTRL_END_OF_TRANSMISSION 0x0004 #define T_MS_MAC_TURKISH_CTRL_ENQUIRY 0x0005 #define T_MS_MAC_TURKISH_CTRL_ACKNOWLEDGE 0x0006 #define T_MS_MAC_TURKISH_CTRL_BELL 0x0007 #define T_MS_MAC_TURKISH_CTRL_BACKSPACE 0x0008 #define T_MS_MAC_TURKISH_CTRL_CHARACTER_TABULATION 0x0009 #define T_MS_MAC_TURKISH_CTRL_LINE_FEED 0x000A #define T_MS_MAC_TURKISH_CTRL_LINE_TABULATION 0x000B #define T_MS_MAC_TURKISH_CTRL_FORM_FEED 0x000C #define T_MS_MAC_TURKISH_CTRL_CARRIAGE_RETURN 0x000D #define T_MS_MAC_TURKISH_CTRL_SHIFT_OUT 0x000E #define T_MS_MAC_TURKISH_CTRL_SHIFT_IN 0x000F #define T_MS_MAC_TURKISH_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_MS_MAC_TURKISH_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_MS_MAC_TURKISH_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_MS_MAC_TURKISH_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_MS_MAC_TURKISH_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_MS_MAC_TURKISH_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_MS_MAC_TURKISH_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_MS_MAC_TURKISH_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_MS_MAC_TURKISH_CTRL_CANCEL 0x0018 #define T_MS_MAC_TURKISH_CTRL_END_OF_MEDIUM 0x0019 #define T_MS_MAC_TURKISH_CTRL_SUBSTITUTE 0x001A #define T_MS_MAC_TURKISH_CTRL_ESCAPE 0x001B #define T_MS_MAC_TURKISH_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_MS_MAC_TURKISH_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_MS_MAC_TURKISH_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_MS_MAC_TURKISH_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_MS_MAC_TURKISH_SPACE 0x0020 #define T_MS_MAC_TURKISH_EXCLAMATION_MARK 0x0021 #define T_MS_MAC_TURKISH_QUOTATION_MARK 0x0022 #define T_MS_MAC_TURKISH_NUMBER_SIGN 0x0023 #define T_MS_MAC_TURKISH_DOLLAR_SIGN 0x0024 #define T_MS_MAC_TURKISH_PERCENT_SIGN 0x0025 #define T_MS_MAC_TURKISH_AMPERSAND 0x0026 #define T_MS_MAC_TURKISH_APOSTROPHE 0x0027 #define T_MS_MAC_TURKISH_LEFT_PARENTHESIS 0x0028 #define T_MS_MAC_TURKISH_RIGHT_PARENTHESIS 0x0029 #define T_MS_MAC_TURKISH_ASTERISK 0x002A #define T_MS_MAC_TURKISH_PLUS_SIGN 0x002B #define T_MS_MAC_TURKISH_COMMA 0x002C #define T_MS_MAC_TURKISH_HYPHEN_MINUS 0x002D #define T_MS_MAC_TURKISH_FULL_STOP 0x002E #define T_MS_MAC_TURKISH_SOLIDUS 0x002F #define T_MS_MAC_TURKISH_DIGIT_ZERO 0x0030 #define T_MS_MAC_TURKISH_DIGIT_ONE 0x0031 #define T_MS_MAC_TURKISH_DIGIT_TWO 0x0032 #define T_MS_MAC_TURKISH_DIGIT_THREE 0x0033 #define T_MS_MAC_TURKISH_DIGIT_FOUR 0x0034 #define T_MS_MAC_TURKISH_DIGIT_FIVE 0x0035 #define T_MS_MAC_TURKISH_DIGIT_SIX 0x0036 #define T_MS_MAC_TURKISH_DIGIT_SEVEN 0x0037 #define T_MS_MAC_TURKISH_DIGIT_EIGHT 0x0038 #define T_MS_MAC_TURKISH_DIGIT_NINE 0x0039 #define T_MS_MAC_TURKISH_COLON 0x003A #define T_MS_MAC_TURKISH_SEMICOLON 0x003B #define T_MS_MAC_TURKISH_LESS_THAN_SIGN 0x003C #define T_MS_MAC_TURKISH_EQUALS_SIGN 0x003D #define T_MS_MAC_TURKISH_GREATER_THAN_SIGN 0x003E #define T_MS_MAC_TURKISH_QUESTION_MARK 0x003F #define T_MS_MAC_TURKISH_COMMERCIAL_AT 0x0040 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_A 0x0041 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_B 0x0042 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_C 0x0043 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_D 0x0044 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_E 0x0045 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_F 0x0046 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_G 0x0047 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_H 0x0048 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_I 0x0049 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_J 0x004A #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_K 0x004B #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_L 0x004C #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_M 0x004D #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_N 0x004E #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_O 0x004F #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_P 0x0050 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_R 0x0052 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_S 0x0053 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_T 0x0054 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_U 0x0055 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_V 0x0056 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_W 0x0057 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_X 0x0058 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_Z 0x005A #define T_MS_MAC_TURKISH_LEFT_SQUARE_BRACKET 0x005B #define T_MS_MAC_TURKISH_REVERSE_SOLIDUS 0x005C #define T_MS_MAC_TURKISH_RIGHT_SQUARE_BRACKET 0x005D #define T_MS_MAC_TURKISH_CIRCUMFLEX_ACCENT 0x005E #define T_MS_MAC_TURKISH_LOW_LINE 0x005F #define T_MS_MAC_TURKISH_GRAVE_ACCENT 0x0060 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_A 0x0061 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_B 0x0062 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_C 0x0063 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_D 0x0064 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_E 0x0065 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_F 0x0066 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_G 0x0067 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_H 0x0068 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_I 0x0069 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_J 0x006A #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_K 0x006B #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_L 0x006C #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_M 0x006D #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_N 0x006E #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_O 0x006F #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_P 0x0070 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_Q 0x0071 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_R 0x0072 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_S 0x0073 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_T 0x0074 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_U 0x0075 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_V 0x0076 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_W 0x0077 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_X 0x0078 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_Y 0x0079 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_Z 0x007A #define T_MS_MAC_TURKISH_LEFT_CURLY_BRACKET 0x007B #define T_MS_MAC_TURKISH_VERTICAL_LINE 0x007C #define T_MS_MAC_TURKISH_RIGHT_CURLY_BRACKET 0x007D #define T_MS_MAC_TURKISH_TILDE 0x007E #define T_MS_MAC_TURKISH_CTRL_DELETE 0x007F #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0080 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0081 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0082 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0083 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0084 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0085 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x0086 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x0087 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x0088 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x0089 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x008A #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_TILDE 0x008B #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x008C #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x008D #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x008E #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x008F #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x0090 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x0091 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x0092 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x0093 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x0094 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x0095 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_N_WITH_TILDE 0x0096 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x0097 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x0098 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x0099 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x009A #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_TILDE 0x009B #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x009C #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x009D #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x009E #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x009F #define T_MS_MAC_TURKISH_DAGGER 0x00A0 #define T_MS_MAC_TURKISH_DEGREE_SIGN 0x00A1 #define T_MS_MAC_TURKISH_CENT_SIGN 0x00A2 #define T_MS_MAC_TURKISH_POUND_SIGN 0x00A3 #define T_MS_MAC_TURKISH_SECTION_SIGN 0x00A4 #define T_MS_MAC_TURKISH_BULLET 0x00A5 #define T_MS_MAC_TURKISH_PILCROW_SIGN 0x00A6 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_SHARP_S 0x00A7 #define T_MS_MAC_TURKISH_REGISTERED_SIGN 0x00A8 #define T_MS_MAC_TURKISH_COPYRIGHT_SIGN 0x00A9 #define T_MS_MAC_TURKISH_TRADE_MARK_SIGN 0x00AA #define T_MS_MAC_TURKISH_ACUTE_ACCENT 0x00AB #define T_MS_MAC_TURKISH_DIAERESIS 0x00AC #define T_MS_MAC_TURKISH_NOT_EQUAL_TO 0x00AD #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_AE 0x00AE #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00AF #define T_MS_MAC_TURKISH_INFINITY 0x00B0 #define T_MS_MAC_TURKISH_PLUS_MINUS_SIGN 0x00B1 #define T_MS_MAC_TURKISH_LESS_THAN_OR_EQUAL_TO 0x00B2 #define T_MS_MAC_TURKISH_GREATER_THAN_OR_EQUAL_TO 0x00B3 #define T_MS_MAC_TURKISH_YEN_SIGN 0x00B4 #define T_MS_MAC_TURKISH_MICRO_SIGN 0x00B5 #define T_MS_MAC_TURKISH_PARTIAL_DIFFERENTIAL 0x00B6 #define T_MS_MAC_TURKISH_N_ARY_SUMMATION 0x00B7 #define T_MS_MAC_TURKISH_N_ARY_PRODUCT 0x00B8 #define T_MS_MAC_TURKISH_GREEK_SMALL_LETTER_PI 0x00B9 #define T_MS_MAC_TURKISH_INTEGRAL 0x00BA #define T_MS_MAC_TURKISH_FEMININE_ORDINAL_INDICATOR 0x00BB #define T_MS_MAC_TURKISH_MASCULINE_ORDINAL_INDICATOR 0x00BC #define T_MS_MAC_TURKISH_OHM_SIGN 0x00BD #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_AE 0x00BE #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00BF #define T_MS_MAC_TURKISH_INVERTED_QUESTION_MARK 0x00C0 #define T_MS_MAC_TURKISH_INVERTED_EXCLAMATION_MARK 0x00C1 #define T_MS_MAC_TURKISH_NOT_SIGN 0x00C2 #define T_MS_MAC_TURKISH_SQUARE_ROOT 0x00C3 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00C4 #define T_MS_MAC_TURKISH_ALMOST_EQUAL_TO 0x00C5 #define T_MS_MAC_TURKISH_INCREMENT 0x00C6 #define T_MS_MAC_TURKISH_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C7 #define T_MS_MAC_TURKISH_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00C8 #define T_MS_MAC_TURKISH_HORIZONTAL_ELLIPSIS 0x00C9 #define T_MS_MAC_TURKISH_NO_BREAK_SPACE 0x00CA #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00CB #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00CC #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00CD #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LIGATURE_OE 0x00CE #define T_MS_MAC_TURKISH_LATIN_SMALL_LIGATURE_OE 0x00CF #define T_MS_MAC_TURKISH_EN_DASH 0x00D0 #define T_MS_MAC_TURKISH_EM_DASH 0x00D1 #define T_MS_MAC_TURKISH_LEFT_DOUBLE_QUOTATION_MARK 0x00D2 #define T_MS_MAC_TURKISH_RIGHT_DOUBLE_QUOTATION_MARK 0x00D3 #define T_MS_MAC_TURKISH_LEFT_SINGLE_QUOTATION_MARK 0x00D4 #define T_MS_MAC_TURKISH_RIGHT_SINGLE_QUOTATION_MARK 0x00D5 #define T_MS_MAC_TURKISH_DIVISION_SIGN 0x00D6 #define T_MS_MAC_TURKISH_LOZENGE 0x00D7 #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00D8 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x00D9 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_G_WITH_BREVE 0x00DA #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_G_WITH_BREVE 0x00DB #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE 0x00DC #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_DOTLESS_I 0x00DD #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x00DE #define T_MS_MAC_TURKISH_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x00DF #define T_MS_MAC_TURKISH_DOUBLE_DAGGER 0x00E0 #define T_MS_MAC_TURKISH_MIDDLE_DOT 0x00E1 #define T_MS_MAC_TURKISH_SINGLE_LOW_9_QUOTATION_MARK 0x00E2 #define T_MS_MAC_TURKISH_DOUBLE_LOW_9_QUOTATION_MARK 0x00E3 #define T_MS_MAC_TURKISH_PER_MILLE_SIGN 0x00E4 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00E5 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00E6 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00E7 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00E8 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00E9 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00EA #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00EB #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00EC #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00ED #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00EE #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00EF #define T_MS_MAC_TURKISH_UNDEFINED_00F0 0x00F0 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00F1 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00F2 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00F3 #define T_MS_MAC_TURKISH_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00F4 #define T_MS_MAC_TURKISH_UNDEFINED_00F5 0x00F5 #define T_MS_MAC_TURKISH_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x00F6 #define T_MS_MAC_TURKISH_SMALL_TILDE 0x00F7 #define T_MS_MAC_TURKISH_MACRON 0x00F8 #define T_MS_MAC_TURKISH_BREVE 0x00F9 #define T_MS_MAC_TURKISH_DOT_ABOVE 0x00FA #define T_MS_MAC_TURKISH_RING_ABOVE 0x00FB #define T_MS_MAC_TURKISH_CEDILLA 0x00FC #define T_MS_MAC_TURKISH_DOUBLE_ACUTE_ACCENT 0x00FD #define T_MS_MAC_TURKISH_OGONEK 0x00FE #define T_MS_MAC_TURKISH_CARON 0x00FF /* list of all characters */ #define T_LIST_MS_MAC_TURKISH(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_PLUS_MINUS_SIGN) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_MICRO_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_OHM_SIGN) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_UNDEFINED_00F5) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_MS_MAC_TURKISH(EL) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_DAGGER) \ EL(_DEGREE_SIGN) \ EL(_SECTION_SIGN) \ EL(_BULLET) \ EL(_PILCROW_SIGN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_REGISTERED_SIGN) \ EL(_TRADE_MARK_SIGN) \ EL(_ACUTE_ACCENT) \ EL(_DIAERESIS) \ EL(_NOT_EQUAL_TO) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_INFINITY) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_YEN_SIGN) \ EL(_PARTIAL_DIFFERENTIAL) \ EL(_N_ARY_SUMMATION) \ EL(_N_ARY_PRODUCT) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_INTEGRAL) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_OHM_SIGN) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_INVERTED_QUESTION_MARK) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_NOT_SIGN) \ EL(_SQUARE_ROOT) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_ALMOST_EQUAL_TO) \ EL(_INCREMENT) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_EN_DASH) \ EL(_EM_DASH) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_SINGLE_QUOTATION_MARK) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_DIVISION_SIGN) \ EL(_LOZENGE) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_G_WITH_BREVE) \ EL(_LATIN_SMALL_LETTER_G_WITH_BREVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_S_WITH_CEDILLA) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_PER_MILLE_SIGN) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_UNDEFINED_00F0) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_UNDEFINED_00F5) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) #endif /* TUTF_MS_MAC_TURKISH_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/nextstep.h������������������������������������������������������������������0000664�0000000�0000000�00000142236�13775351206�0017112�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_NEXTSTEP_H #define TUTF_NEXTSTEP_H #define T_NEXTSTEP_CTRL_NULL 0x0000 #define T_NEXTSTEP_CTRL_START_OF_HEADING 0x0001 #define T_NEXTSTEP_CTRL_START_OF_TEXT 0x0002 #define T_NEXTSTEP_CTRL_END_OF_TEXT 0x0003 #define T_NEXTSTEP_CTRL_END_OF_TRANSMISSION 0x0004 #define T_NEXTSTEP_CTRL_ENQUIRY 0x0005 #define T_NEXTSTEP_CTRL_ACKNOWLEDGE 0x0006 #define T_NEXTSTEP_CTRL_BELL 0x0007 #define T_NEXTSTEP_CTRL_BACKSPACE 0x0008 #define T_NEXTSTEP_CTRL_CHARACTER_TABULATION 0x0009 #define T_NEXTSTEP_CTRL_LINE_FEED 0x000A #define T_NEXTSTEP_CTRL_LINE_TABULATION 0x000B #define T_NEXTSTEP_CTRL_FORM_FEED 0x000C #define T_NEXTSTEP_CTRL_CARRIAGE_RETURN 0x000D #define T_NEXTSTEP_CTRL_SHIFT_OUT 0x000E #define T_NEXTSTEP_CTRL_SHIFT_IN 0x000F #define T_NEXTSTEP_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_NEXTSTEP_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_NEXTSTEP_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_NEXTSTEP_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_NEXTSTEP_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_NEXTSTEP_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_NEXTSTEP_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_NEXTSTEP_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_NEXTSTEP_CTRL_CANCEL 0x0018 #define T_NEXTSTEP_CTRL_END_OF_MEDIUM 0x0019 #define T_NEXTSTEP_CTRL_SUBSTITUTE 0x001A #define T_NEXTSTEP_CTRL_ESCAPE 0x001B #define T_NEXTSTEP_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_NEXTSTEP_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_NEXTSTEP_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_NEXTSTEP_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_NEXTSTEP_SPACE 0x0020 #define T_NEXTSTEP_EXCLAMATION_MARK 0x0021 #define T_NEXTSTEP_QUOTATION_MARK 0x0022 #define T_NEXTSTEP_NUMBER_SIGN 0x0023 #define T_NEXTSTEP_DOLLAR_SIGN 0x0024 #define T_NEXTSTEP_PERCENT_SIGN 0x0025 #define T_NEXTSTEP_AMPERSAND 0x0026 #define T_NEXTSTEP_APOSTROPHE 0x0027 #define T_NEXTSTEP_LEFT_PARENTHESIS 0x0028 #define T_NEXTSTEP_RIGHT_PARENTHESIS 0x0029 #define T_NEXTSTEP_ASTERISK 0x002A #define T_NEXTSTEP_PLUS_SIGN 0x002B #define T_NEXTSTEP_COMMA 0x002C #define T_NEXTSTEP_HYPHEN_MINUS 0x002D #define T_NEXTSTEP_FULL_STOP 0x002E #define T_NEXTSTEP_SOLIDUS 0x002F #define T_NEXTSTEP_DIGIT_ZERO 0x0030 #define T_NEXTSTEP_DIGIT_ONE 0x0031 #define T_NEXTSTEP_DIGIT_TWO 0x0032 #define T_NEXTSTEP_DIGIT_THREE 0x0033 #define T_NEXTSTEP_DIGIT_FOUR 0x0034 #define T_NEXTSTEP_DIGIT_FIVE 0x0035 #define T_NEXTSTEP_DIGIT_SIX 0x0036 #define T_NEXTSTEP_DIGIT_SEVEN 0x0037 #define T_NEXTSTEP_DIGIT_EIGHT 0x0038 #define T_NEXTSTEP_DIGIT_NINE 0x0039 #define T_NEXTSTEP_COLON 0x003A #define T_NEXTSTEP_SEMICOLON 0x003B #define T_NEXTSTEP_LESS_THAN_SIGN 0x003C #define T_NEXTSTEP_EQUALS_SIGN 0x003D #define T_NEXTSTEP_GREATER_THAN_SIGN 0x003E #define T_NEXTSTEP_QUESTION_MARK 0x003F #define T_NEXTSTEP_COMMERCIAL_AT 0x0040 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_A 0x0041 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_B 0x0042 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_C 0x0043 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_D 0x0044 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_E 0x0045 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_F 0x0046 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_G 0x0047 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_H 0x0048 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_I 0x0049 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_J 0x004A #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_K 0x004B #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_L 0x004C #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_M 0x004D #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_N 0x004E #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_O 0x004F #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_P 0x0050 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_R 0x0052 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_S 0x0053 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_T 0x0054 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_U 0x0055 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_V 0x0056 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_W 0x0057 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_X 0x0058 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_Z 0x005A #define T_NEXTSTEP_LEFT_SQUARE_BRACKET 0x005B #define T_NEXTSTEP_REVERSE_SOLIDUS 0x005C #define T_NEXTSTEP_RIGHT_SQUARE_BRACKET 0x005D #define T_NEXTSTEP_CIRCUMFLEX_ACCENT 0x005E #define T_NEXTSTEP_LOW_LINE 0x005F #define T_NEXTSTEP_GRAVE_ACCENT 0x0060 #define T_NEXTSTEP_LATIN_SMALL_LETTER_A 0x0061 #define T_NEXTSTEP_LATIN_SMALL_LETTER_B 0x0062 #define T_NEXTSTEP_LATIN_SMALL_LETTER_C 0x0063 #define T_NEXTSTEP_LATIN_SMALL_LETTER_D 0x0064 #define T_NEXTSTEP_LATIN_SMALL_LETTER_E 0x0065 #define T_NEXTSTEP_LATIN_SMALL_LETTER_F 0x0066 #define T_NEXTSTEP_LATIN_SMALL_LETTER_G 0x0067 #define T_NEXTSTEP_LATIN_SMALL_LETTER_H 0x0068 #define T_NEXTSTEP_LATIN_SMALL_LETTER_I 0x0069 #define T_NEXTSTEP_LATIN_SMALL_LETTER_J 0x006A #define T_NEXTSTEP_LATIN_SMALL_LETTER_K 0x006B #define T_NEXTSTEP_LATIN_SMALL_LETTER_L 0x006C #define T_NEXTSTEP_LATIN_SMALL_LETTER_M 0x006D #define T_NEXTSTEP_LATIN_SMALL_LETTER_N 0x006E #define T_NEXTSTEP_LATIN_SMALL_LETTER_O 0x006F #define T_NEXTSTEP_LATIN_SMALL_LETTER_P 0x0070 #define T_NEXTSTEP_LATIN_SMALL_LETTER_Q 0x0071 #define T_NEXTSTEP_LATIN_SMALL_LETTER_R 0x0072 #define T_NEXTSTEP_LATIN_SMALL_LETTER_S 0x0073 #define T_NEXTSTEP_LATIN_SMALL_LETTER_T 0x0074 #define T_NEXTSTEP_LATIN_SMALL_LETTER_U 0x0075 #define T_NEXTSTEP_LATIN_SMALL_LETTER_V 0x0076 #define T_NEXTSTEP_LATIN_SMALL_LETTER_W 0x0077 #define T_NEXTSTEP_LATIN_SMALL_LETTER_X 0x0078 #define T_NEXTSTEP_LATIN_SMALL_LETTER_Y 0x0079 #define T_NEXTSTEP_LATIN_SMALL_LETTER_Z 0x007A #define T_NEXTSTEP_LEFT_CURLY_BRACKET 0x007B #define T_NEXTSTEP_VERTICAL_LINE 0x007C #define T_NEXTSTEP_RIGHT_CURLY_BRACKET 0x007D #define T_NEXTSTEP_TILDE 0x007E #define T_NEXTSTEP_CTRL_DELETE 0x007F #define T_NEXTSTEP_NO_BREAK_SPACE 0x0080 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x0081 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x0082 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x0083 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x0084 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x0085 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x0086 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x0087 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x0088 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x0089 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x008A #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x008B #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x008C #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x008D #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x008E #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x008F #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_ETH 0x0090 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x0091 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x0092 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x0093 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x0094 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x0095 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x0096 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x0097 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x0098 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x0099 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x009A #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x009B #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_THORN 0x009C #define T_NEXTSTEP_MICRO_SIGN 0x009D #define T_NEXTSTEP_MULTIPLICATION_SIGN 0x009E #define T_NEXTSTEP_DIVISION_SIGN 0x009F #define T_NEXTSTEP_COPYRIGHT_SIGN 0x00A0 #define T_NEXTSTEP_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_NEXTSTEP_CENT_SIGN 0x00A2 #define T_NEXTSTEP_POUND_SIGN 0x00A3 #define T_NEXTSTEP_FRACTION_SLASH 0x00A4 #define T_NEXTSTEP_YEN_SIGN 0x00A5 #define T_NEXTSTEP_LATIN_SMALL_LETTER_F_WITH_HOOK 0x00A6 #define T_NEXTSTEP_SECTION_SIGN 0x00A7 #define T_NEXTSTEP_CURRENCY_SIGN 0x00A8 #define T_NEXTSTEP_RIGHT_SINGLE_QUOTATION_MARK 0x00A9 #define T_NEXTSTEP_LEFT_DOUBLE_QUOTATION_MARK 0x00AA #define T_NEXTSTEP_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_NEXTSTEP_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x00AC #define T_NEXTSTEP_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x00AD #define T_NEXTSTEP_LATIN_SMALL_LIGATURE_FI 0x00AE #define T_NEXTSTEP_LATIN_SMALL_LIGATURE_FL 0x00AF #define T_NEXTSTEP_REGISTERED_SIGN 0x00B0 #define T_NEXTSTEP_EN_DASH 0x00B1 #define T_NEXTSTEP_DAGGER 0x00B2 #define T_NEXTSTEP_DOUBLE_DAGGER 0x00B3 #define T_NEXTSTEP_MIDDLE_DOT 0x00B4 #define T_NEXTSTEP_BROKEN_BAR 0x00B5 #define T_NEXTSTEP_PILCROW_SIGN 0x00B6 #define T_NEXTSTEP_BULLET 0x00B7 #define T_NEXTSTEP_SINGLE_LOW_9_QUOTATION_MARK 0x00B8 #define T_NEXTSTEP_DOUBLE_LOW_9_QUOTATION_MARK 0x00B9 #define T_NEXTSTEP_RIGHT_DOUBLE_QUOTATION_MARK 0x00BA #define T_NEXTSTEP_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_NEXTSTEP_HORIZONTAL_ELLIPSIS 0x00BC #define T_NEXTSTEP_PER_MILLE_SIGN 0x00BD #define T_NEXTSTEP_NOT_SIGN 0x00BE #define T_NEXTSTEP_INVERTED_QUESTION_MARK 0x00BF #define T_NEXTSTEP_SUPERSCRIPT_ONE 0x00C0 #define T_NEXTSTEP_MODIFIER_LETTER_GRAVE_ACCENT 0x00C1 #define T_NEXTSTEP_ACUTE_ACCENT 0x00C2 #define T_NEXTSTEP_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x00C3 #define T_NEXTSTEP_SMALL_TILDE 0x00C4 #define T_NEXTSTEP_MACRON 0x00C5 #define T_NEXTSTEP_BREVE 0x00C6 #define T_NEXTSTEP_DOT_ABOVE 0x00C7 #define T_NEXTSTEP_DIAERESIS 0x00C8 #define T_NEXTSTEP_SUPERSCRIPT_TWO 0x00C9 #define T_NEXTSTEP_RING_ABOVE 0x00CA #define T_NEXTSTEP_CEDILLA 0x00CB #define T_NEXTSTEP_SUPERSCRIPT_THREE 0x00CC #define T_NEXTSTEP_DOUBLE_ACUTE_ACCENT 0x00CD #define T_NEXTSTEP_OGONEK 0x00CE #define T_NEXTSTEP_CARON 0x00CF #define T_NEXTSTEP_EM_DASH 0x00D0 #define T_NEXTSTEP_PLUS_MINUS_SIGN 0x00D1 #define T_NEXTSTEP_VULGAR_FRACTION_ONE_QUARTER 0x00D2 #define T_NEXTSTEP_VULGAR_FRACTION_ONE_HALF 0x00D3 #define T_NEXTSTEP_VULGAR_FRACTION_THREE_QUARTERS 0x00D4 #define T_NEXTSTEP_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00D5 #define T_NEXTSTEP_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00D6 #define T_NEXTSTEP_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00D7 #define T_NEXTSTEP_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00D8 #define T_NEXTSTEP_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00D9 #define T_NEXTSTEP_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00DA #define T_NEXTSTEP_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00DB #define T_NEXTSTEP_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00DC #define T_NEXTSTEP_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00DD #define T_NEXTSTEP_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00DE #define T_NEXTSTEP_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00DF #define T_NEXTSTEP_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00E0 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_AE 0x00E1 #define T_NEXTSTEP_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00E2 #define T_NEXTSTEP_FEMININE_ORDINAL_INDICATOR 0x00E3 #define T_NEXTSTEP_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00E4 #define T_NEXTSTEP_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00E5 #define T_NEXTSTEP_LATIN_SMALL_LETTER_ETH 0x00E6 #define T_NEXTSTEP_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00E7 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x00E8 #define T_NEXTSTEP_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00E9 #define T_NEXTSTEP_LATIN_CAPITAL_LIGATURE_OE 0x00EA #define T_NEXTSTEP_MASCULINE_ORDINAL_INDICATOR 0x00EB #define T_NEXTSTEP_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00EC #define T_NEXTSTEP_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00ED #define T_NEXTSTEP_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00EE #define T_NEXTSTEP_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00EF #define T_NEXTSTEP_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F0 #define T_NEXTSTEP_LATIN_SMALL_LETTER_AE 0x00F1 #define T_NEXTSTEP_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F2 #define T_NEXTSTEP_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00F3 #define T_NEXTSTEP_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00F4 #define T_NEXTSTEP_LATIN_SMALL_LETTER_DOTLESS_I 0x00F5 #define T_NEXTSTEP_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00F6 #define T_NEXTSTEP_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00F7 #define T_NEXTSTEP_LATIN_SMALL_LETTER_L_WITH_STROKE 0x00F8 #define T_NEXTSTEP_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F9 #define T_NEXTSTEP_LATIN_SMALL_LIGATURE_OE 0x00FA #define T_NEXTSTEP_LATIN_SMALL_LETTER_SHARP_S 0x00FB #define T_NEXTSTEP_LATIN_SMALL_LETTER_THORN 0x00FC #define T_NEXTSTEP_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FD #define T_NEXTSTEP_UNDEFINED_00FE 0x00FE #define T_NEXTSTEP_UNDEFINED_00FF 0x00FF /* list of all characters */ #define T_LIST_NEXTSTEP(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_PLUS_SIGN) \ EL(_COMMA) \ EL(_HYPHEN_MINUS) \ EL(_FULL_STOP) \ EL(_SOLIDUS) \ EL(_DIGIT_ZERO) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_LOW_LINE) \ EL(_GRAVE_ACCENT) \ EL(_LATIN_SMALL_LETTER_A) \ EL(_LATIN_SMALL_LETTER_B) \ EL(_LATIN_SMALL_LETTER_C) \ EL(_LATIN_SMALL_LETTER_D) \ EL(_LATIN_SMALL_LETTER_E) \ EL(_LATIN_SMALL_LETTER_F) \ EL(_LATIN_SMALL_LETTER_G) \ EL(_LATIN_SMALL_LETTER_H) \ EL(_LATIN_SMALL_LETTER_I) \ EL(_LATIN_SMALL_LETTER_J) \ EL(_LATIN_SMALL_LETTER_K) \ EL(_LATIN_SMALL_LETTER_L) \ EL(_LATIN_SMALL_LETTER_M) \ EL(_LATIN_SMALL_LETTER_N) \ EL(_LATIN_SMALL_LETTER_O) \ EL(_LATIN_SMALL_LETTER_P) \ EL(_LATIN_SMALL_LETTER_Q) \ EL(_LATIN_SMALL_LETTER_R) \ EL(_LATIN_SMALL_LETTER_S) \ EL(_LATIN_SMALL_LETTER_T) \ EL(_LATIN_SMALL_LETTER_U) \ EL(_LATIN_SMALL_LETTER_V) \ EL(_LATIN_SMALL_LETTER_W) \ EL(_LATIN_SMALL_LETTER_X) \ EL(_LATIN_SMALL_LETTER_Y) \ EL(_LATIN_SMALL_LETTER_Z) \ EL(_LEFT_CURLY_BRACKET) \ EL(_VERTICAL_LINE) \ EL(_RIGHT_CURLY_BRACKET) \ EL(_TILDE) \ EL(_CTRL_DELETE) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_MICRO_SIGN) \ EL(_MULTIPLICATION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_CENT_SIGN) \ EL(_POUND_SIGN) \ EL(_FRACTION_SLASH) \ EL(_YEN_SIGN) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_SECTION_SIGN) \ EL(_CURRENCY_SIGN) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_FI) \ EL(_LATIN_SMALL_LIGATURE_FL) \ EL(_REGISTERED_SIGN) \ EL(_EN_DASH) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_BROKEN_BAR) \ EL(_PILCROW_SIGN) \ EL(_BULLET) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_PER_MILLE_SIGN) \ EL(_NOT_SIGN) \ EL(_INVERTED_QUESTION_MARK) \ EL(_SUPERSCRIPT_ONE) \ EL(_MODIFIER_LETTER_GRAVE_ACCENT) \ EL(_ACUTE_ACCENT) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_DIAERESIS) \ EL(_SUPERSCRIPT_TWO) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_THREE) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) \ EL(_EM_DASH) \ EL(_PLUS_MINUS_SIGN) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */ #define T_NLIST_NEXTSTEP(EL) \ EL(_NO_BREAK_SPACE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_MICRO_SIGN) \ EL(_MULTIPLICATION_SIGN) \ EL(_DIVISION_SIGN) \ EL(_COPYRIGHT_SIGN) \ EL(_FRACTION_SLASH) \ EL(_LATIN_SMALL_LETTER_F_WITH_HOOK) \ EL(_CURRENCY_SIGN) \ EL(_RIGHT_SINGLE_QUOTATION_MARK) \ EL(_LEFT_DOUBLE_QUOTATION_MARK) \ EL(_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK) \ EL(_LATIN_SMALL_LIGATURE_FI) \ EL(_LATIN_SMALL_LIGATURE_FL) \ EL(_REGISTERED_SIGN) \ EL(_EN_DASH) \ EL(_DAGGER) \ EL(_DOUBLE_DAGGER) \ EL(_MIDDLE_DOT) \ EL(_BROKEN_BAR) \ EL(_BULLET) \ EL(_SINGLE_LOW_9_QUOTATION_MARK) \ EL(_DOUBLE_LOW_9_QUOTATION_MARK) \ EL(_RIGHT_DOUBLE_QUOTATION_MARK) \ EL(_HORIZONTAL_ELLIPSIS) \ EL(_PER_MILLE_SIGN) \ EL(_NOT_SIGN) \ EL(_SUPERSCRIPT_ONE) \ EL(_MODIFIER_LETTER_GRAVE_ACCENT) \ EL(_ACUTE_ACCENT) \ EL(_MODIFIER_LETTER_CIRCUMFLEX_ACCENT) \ EL(_SMALL_TILDE) \ EL(_MACRON) \ EL(_BREVE) \ EL(_DOT_ABOVE) \ EL(_DIAERESIS) \ EL(_SUPERSCRIPT_TWO) \ EL(_RING_ABOVE) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_THREE) \ EL(_DOUBLE_ACUTE_ACCENT) \ EL(_OGONEK) \ EL(_CARON) \ EL(_EM_DASH) \ EL(_PLUS_MINUS_SIGN) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_L_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LIGATURE_OE) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_DOTLESS_I) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_L_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LIGATURE_OE) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) #endif /* TUTF_NEXTSTEP_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/utf_32.h��������������������������������������������������������������������0000664�0000000�0000000�00006124670�13775351206�0016352�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * utf_32.h -- include for UTF-32 (Unicode) characters database * * PLEASE DO NOT EDIT! * * This file was automatically generated from http://unicode.org/Public/UNIDATA/UnicodeData.txt * using the script twin/scripts/1-make-utf_32_h.bash * * All changes to this file will be lost when the script is re-executed. */ #ifndef TUTF_UTF_32_H #define TUTF_UTF_32_H /* auxiliary definitions */ #include <Tutf/utf_32_aux.h> #define T_UTF_32_CTRL_NULL 0x0000 #define T_UTF_32_CTRL_START_OF_HEADING 0x0001 #define T_UTF_32_CTRL_START_OF_TEXT 0x0002 #define T_UTF_32_CTRL_END_OF_TEXT 0x0003 #define T_UTF_32_CTRL_END_OF_TRANSMISSION 0x0004 #define T_UTF_32_CTRL_ENQUIRY 0x0005 #define T_UTF_32_CTRL_ACKNOWLEDGE 0x0006 #define T_UTF_32_CTRL_BELL 0x0007 #define T_UTF_32_CTRL_BACKSPACE 0x0008 #define T_UTF_32_CTRL_CHARACTER_TABULATION 0x0009 #define T_UTF_32_CTRL_LINE_FEED 0x000A #define T_UTF_32_CTRL_LINE_TABULATION 0x000B #define T_UTF_32_CTRL_FORM_FEED 0x000C #define T_UTF_32_CTRL_CARRIAGE_RETURN 0x000D #define T_UTF_32_CTRL_SHIFT_OUT 0x000E #define T_UTF_32_CTRL_SHIFT_IN 0x000F #define T_UTF_32_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_UTF_32_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_UTF_32_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_UTF_32_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_UTF_32_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_UTF_32_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_UTF_32_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_UTF_32_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_UTF_32_CTRL_CANCEL 0x0018 #define T_UTF_32_CTRL_END_OF_MEDIUM 0x0019 #define T_UTF_32_CTRL_SUBSTITUTE 0x001A #define T_UTF_32_CTRL_ESCAPE 0x001B #define T_UTF_32_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_UTF_32_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_UTF_32_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_UTF_32_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_UTF_32_SPACE 0x0020 #define T_UTF_32_EXCLAMATION_MARK 0x0021 #define T_UTF_32_QUOTATION_MARK 0x0022 #define T_UTF_32_NUMBER_SIGN 0x0023 #define T_UTF_32_DOLLAR_SIGN 0x0024 #define T_UTF_32_PERCENT_SIGN 0x0025 #define T_UTF_32_AMPERSAND 0x0026 #define T_UTF_32_APOSTROPHE 0x0027 #define T_UTF_32_LEFT_PARENTHESIS 0x0028 #define T_UTF_32_RIGHT_PARENTHESIS 0x0029 #define T_UTF_32_ASTERISK 0x002A #define T_UTF_32_PLUS_SIGN 0x002B #define T_UTF_32_COMMA 0x002C #define T_UTF_32_HYPHEN_MINUS 0x002D #define T_UTF_32_FULL_STOP 0x002E #define T_UTF_32_SOLIDUS 0x002F #define T_UTF_32_DIGIT_ZERO 0x0030 #define T_UTF_32_DIGIT_ONE 0x0031 #define T_UTF_32_DIGIT_TWO 0x0032 #define T_UTF_32_DIGIT_THREE 0x0033 #define T_UTF_32_DIGIT_FOUR 0x0034 #define T_UTF_32_DIGIT_FIVE 0x0035 #define T_UTF_32_DIGIT_SIX 0x0036 #define T_UTF_32_DIGIT_SEVEN 0x0037 #define T_UTF_32_DIGIT_EIGHT 0x0038 #define T_UTF_32_DIGIT_NINE 0x0039 #define T_UTF_32_COLON 0x003A #define T_UTF_32_SEMICOLON 0x003B #define T_UTF_32_LESS_THAN_SIGN 0x003C #define T_UTF_32_EQUALS_SIGN 0x003D #define T_UTF_32_GREATER_THAN_SIGN 0x003E #define T_UTF_32_QUESTION_MARK 0x003F #define T_UTF_32_COMMERCIAL_AT 0x0040 #define T_UTF_32_LATIN_CAPITAL_LETTER_A 0x0041 #define T_UTF_32_LATIN_CAPITAL_LETTER_B 0x0042 #define T_UTF_32_LATIN_CAPITAL_LETTER_C 0x0043 #define T_UTF_32_LATIN_CAPITAL_LETTER_D 0x0044 #define T_UTF_32_LATIN_CAPITAL_LETTER_E 0x0045 #define T_UTF_32_LATIN_CAPITAL_LETTER_F 0x0046 #define T_UTF_32_LATIN_CAPITAL_LETTER_G 0x0047 #define T_UTF_32_LATIN_CAPITAL_LETTER_H 0x0048 #define T_UTF_32_LATIN_CAPITAL_LETTER_I 0x0049 #define T_UTF_32_LATIN_CAPITAL_LETTER_J 0x004A #define T_UTF_32_LATIN_CAPITAL_LETTER_K 0x004B #define T_UTF_32_LATIN_CAPITAL_LETTER_L 0x004C #define T_UTF_32_LATIN_CAPITAL_LETTER_M 0x004D #define T_UTF_32_LATIN_CAPITAL_LETTER_N 0x004E #define T_UTF_32_LATIN_CAPITAL_LETTER_O 0x004F #define T_UTF_32_LATIN_CAPITAL_LETTER_P 0x0050 #define T_UTF_32_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_UTF_32_LATIN_CAPITAL_LETTER_R 0x0052 #define T_UTF_32_LATIN_CAPITAL_LETTER_S 0x0053 #define T_UTF_32_LATIN_CAPITAL_LETTER_T 0x0054 #define T_UTF_32_LATIN_CAPITAL_LETTER_U 0x0055 #define T_UTF_32_LATIN_CAPITAL_LETTER_V 0x0056 #define T_UTF_32_LATIN_CAPITAL_LETTER_W 0x0057 #define T_UTF_32_LATIN_CAPITAL_LETTER_X 0x0058 #define T_UTF_32_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_UTF_32_LATIN_CAPITAL_LETTER_Z 0x005A #define T_UTF_32_LEFT_SQUARE_BRACKET 0x005B #define T_UTF_32_REVERSE_SOLIDUS 0x005C #define T_UTF_32_RIGHT_SQUARE_BRACKET 0x005D #define T_UTF_32_CIRCUMFLEX_ACCENT 0x005E #define T_UTF_32_LOW_LINE 0x005F #define T_UTF_32_GRAVE_ACCENT 0x0060 #define T_UTF_32_LATIN_SMALL_LETTER_A 0x0061 #define T_UTF_32_LATIN_SMALL_LETTER_B 0x0062 #define T_UTF_32_LATIN_SMALL_LETTER_C 0x0063 #define T_UTF_32_LATIN_SMALL_LETTER_D 0x0064 #define T_UTF_32_LATIN_SMALL_LETTER_E 0x0065 #define T_UTF_32_LATIN_SMALL_LETTER_F 0x0066 #define T_UTF_32_LATIN_SMALL_LETTER_G 0x0067 #define T_UTF_32_LATIN_SMALL_LETTER_H 0x0068 #define T_UTF_32_LATIN_SMALL_LETTER_I 0x0069 #define T_UTF_32_LATIN_SMALL_LETTER_J 0x006A #define T_UTF_32_LATIN_SMALL_LETTER_K 0x006B #define T_UTF_32_LATIN_SMALL_LETTER_L 0x006C #define T_UTF_32_LATIN_SMALL_LETTER_M 0x006D #define T_UTF_32_LATIN_SMALL_LETTER_N 0x006E #define T_UTF_32_LATIN_SMALL_LETTER_O 0x006F #define T_UTF_32_LATIN_SMALL_LETTER_P 0x0070 #define T_UTF_32_LATIN_SMALL_LETTER_Q 0x0071 #define T_UTF_32_LATIN_SMALL_LETTER_R 0x0072 #define T_UTF_32_LATIN_SMALL_LETTER_S 0x0073 #define T_UTF_32_LATIN_SMALL_LETTER_T 0x0074 #define T_UTF_32_LATIN_SMALL_LETTER_U 0x0075 #define T_UTF_32_LATIN_SMALL_LETTER_V 0x0076 #define T_UTF_32_LATIN_SMALL_LETTER_W 0x0077 #define T_UTF_32_LATIN_SMALL_LETTER_X 0x0078 #define T_UTF_32_LATIN_SMALL_LETTER_Y 0x0079 #define T_UTF_32_LATIN_SMALL_LETTER_Z 0x007A #define T_UTF_32_LEFT_CURLY_BRACKET 0x007B #define T_UTF_32_VERTICAL_LINE 0x007C #define T_UTF_32_RIGHT_CURLY_BRACKET 0x007D #define T_UTF_32_TILDE 0x007E #define T_UTF_32_CTRL_DELETE 0x007F #define T_UTF_32_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_UTF_32_CTRL_NO_BREAK_HERE 0x0083 #define T_UTF_32_CTRL_NEXT_LINE 0x0085 #define T_UTF_32_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_UTF_32_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_UTF_32_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_UTF_32_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_UTF_32_CTRL_LINE_TABULATION_SET 0x008A #define T_UTF_32_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_UTF_32_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_UTF_32_CTRL_REVERSE_LINE_FEED 0x008D #define T_UTF_32_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_UTF_32_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_UTF_32_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_UTF_32_CTRL_PRIVATE_USE_ONE 0x0091 #define T_UTF_32_CTRL_PRIVATE_USE_TWO 0x0092 #define T_UTF_32_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_UTF_32_CTRL_CANCEL_CHARACTER 0x0094 #define T_UTF_32_CTRL_MESSAGE_WAITING 0x0095 #define T_UTF_32_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_UTF_32_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_UTF_32_CTRL_START_OF_STRING 0x0098 #define T_UTF_32_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_UTF_32_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_UTF_32_CTRL_STRING_TERMINATOR 0x009C #define T_UTF_32_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_UTF_32_CTRL_PRIVACY_MESSAGE 0x009E #define T_UTF_32_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_UTF_32_NO_BREAK_SPACE 0x00A0 #define T_UTF_32_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_UTF_32_CENT_SIGN 0x00A2 #define T_UTF_32_POUND_SIGN 0x00A3 #define T_UTF_32_CURRENCY_SIGN 0x00A4 #define T_UTF_32_YEN_SIGN 0x00A5 #define T_UTF_32_BROKEN_BAR 0x00A6 #define T_UTF_32_SECTION_SIGN 0x00A7 #define T_UTF_32_DIAERESIS 0x00A8 #define T_UTF_32_COPYRIGHT_SIGN 0x00A9 #define T_UTF_32_FEMININE_ORDINAL_INDICATOR 0x00AA #define T_UTF_32_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_UTF_32_NOT_SIGN 0x00AC #define T_UTF_32_SOFT_HYPHEN 0x00AD #define T_UTF_32_REGISTERED_SIGN 0x00AE #define T_UTF_32_MACRON 0x00AF #define T_UTF_32_DEGREE_SIGN 0x00B0 #define T_UTF_32_PLUS_MINUS_SIGN 0x00B1 #define T_UTF_32_SUPERSCRIPT_TWO 0x00B2 #define T_UTF_32_SUPERSCRIPT_THREE 0x00B3 #define T_UTF_32_ACUTE_ACCENT 0x00B4 #define T_UTF_32_MICRO_SIGN 0x00B5 #define T_UTF_32_PILCROW_SIGN 0x00B6 #define T_UTF_32_MIDDLE_DOT 0x00B7 #define T_UTF_32_CEDILLA 0x00B8 #define T_UTF_32_SUPERSCRIPT_ONE 0x00B9 #define T_UTF_32_MASCULINE_ORDINAL_INDICATOR 0x00BA #define T_UTF_32_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_UTF_32_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_UTF_32_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_UTF_32_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_UTF_32_INVERTED_QUESTION_MARK 0x00BF #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_UTF_32_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_UTF_32_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_UTF_32_LATIN_CAPITAL_LETTER_ETH 0x00D0 #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_UTF_32_MULTIPLICATION_SIGN 0x00D7 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD #define T_UTF_32_LATIN_CAPITAL_LETTER_THORN 0x00DE #define T_UTF_32_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_UTF_32_LATIN_SMALL_LETTER_AE 0x00E6 #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_UTF_32_LATIN_SMALL_LETTER_ETH 0x00F0 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_UTF_32_DIVISION_SIGN 0x00F7 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD #define T_UTF_32_LATIN_SMALL_LETTER_THORN 0x00FE #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_MACRON 0x0100 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_MACRON 0x0101 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_BREVE 0x0102 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_BREVE 0x0103 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_OGONEK 0x0104 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_OGONEK 0x0105 #define T_UTF_32_LATIN_CAPITAL_LETTER_C_WITH_ACUTE 0x0106 #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_ACUTE 0x0107 #define T_UTF_32_LATIN_CAPITAL_LETTER_C_WITH_CIRCUMFLEX 0x0108 #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_CIRCUMFLEX 0x0109 #define T_UTF_32_LATIN_CAPITAL_LETTER_C_WITH_DOT_ABOVE 0x010A #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_DOT_ABOVE 0x010B #define T_UTF_32_LATIN_CAPITAL_LETTER_C_WITH_CARON 0x010C #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_CARON 0x010D #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_CARON 0x010E #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_CARON 0x010F #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_STROKE 0x0110 #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_STROKE 0x0111 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_MACRON 0x0112 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_MACRON 0x0113 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_BREVE 0x0114 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_BREVE 0x0115 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_DOT_ABOVE 0x0116 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_DOT_ABOVE 0x0117 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_OGONEK 0x0118 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_OGONEK 0x0119 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_CARON 0x011A #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_CARON 0x011B #define T_UTF_32_LATIN_CAPITAL_LETTER_G_WITH_CIRCUMFLEX 0x011C #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_CIRCUMFLEX 0x011D #define T_UTF_32_LATIN_CAPITAL_LETTER_G_WITH_BREVE 0x011E #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_BREVE 0x011F #define T_UTF_32_LATIN_CAPITAL_LETTER_G_WITH_DOT_ABOVE 0x0120 #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_DOT_ABOVE 0x0121 #define T_UTF_32_LATIN_CAPITAL_LETTER_G_WITH_CEDILLA 0x0122 #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_CEDILLA 0x0123 #define T_UTF_32_LATIN_CAPITAL_LETTER_H_WITH_CIRCUMFLEX 0x0124 #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_CIRCUMFLEX 0x0125 #define T_UTF_32_LATIN_CAPITAL_LETTER_H_WITH_STROKE 0x0126 #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_STROKE 0x0127 #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_TILDE 0x0128 #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_TILDE 0x0129 #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_MACRON 0x012A #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_MACRON 0x012B #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_BREVE 0x012C #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_BREVE 0x012D #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_OGONEK 0x012E #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_OGONEK 0x012F #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_DOT_ABOVE 0x0130 #define T_UTF_32_LATIN_SMALL_LETTER_DOTLESS_I 0x0131 #define T_UTF_32_LATIN_CAPITAL_LIGATURE_IJ 0x0132 #define T_UTF_32_LATIN_SMALL_LIGATURE_IJ 0x0133 #define T_UTF_32_LATIN_CAPITAL_LETTER_J_WITH_CIRCUMFLEX 0x0134 #define T_UTF_32_LATIN_SMALL_LETTER_J_WITH_CIRCUMFLEX 0x0135 #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_CEDILLA 0x0136 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_CEDILLA 0x0137 #define T_UTF_32_LATIN_SMALL_LETTER_KRA 0x0138 #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_ACUTE 0x0139 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_ACUTE 0x013A #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_CEDILLA 0x013B #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_CEDILLA 0x013C #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_CARON 0x013D #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_CARON 0x013E #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_MIDDLE_DOT 0x013F #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_MIDDLE_DOT 0x0140 #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_STROKE 0x0141 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_STROKE 0x0142 #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_ACUTE 0x0143 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_ACUTE 0x0144 #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_CEDILLA 0x0145 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_CEDILLA 0x0146 #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_CARON 0x0147 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_CARON 0x0148 #define T_UTF_32_LATIN_SMALL_LETTER_N_PRECEDED_BY_APOSTROPHE 0x0149 #define T_UTF_32_LATIN_CAPITAL_LETTER_ENG 0x014A #define T_UTF_32_LATIN_SMALL_LETTER_ENG 0x014B #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_MACRON 0x014C #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_MACRON 0x014D #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_BREVE 0x014E #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_BREVE 0x014F #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_ACUTE 0x0150 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_DOUBLE_ACUTE 0x0151 #define T_UTF_32_LATIN_CAPITAL_LIGATURE_OE 0x0152 #define T_UTF_32_LATIN_SMALL_LIGATURE_OE 0x0153 #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_ACUTE 0x0154 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_ACUTE 0x0155 #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_CEDILLA 0x0156 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_CEDILLA 0x0157 #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_CARON 0x0158 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_CARON 0x0159 #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_ACUTE 0x015A #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_ACUTE 0x015B #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_CIRCUMFLEX 0x015C #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_CIRCUMFLEX 0x015D #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_CEDILLA 0x015E #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_CEDILLA 0x015F #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_CARON 0x0160 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_CARON 0x0161 #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_CEDILLA 0x0162 #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_CEDILLA 0x0163 #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_CARON 0x0164 #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_CARON 0x0165 #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_STROKE 0x0166 #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_STROKE 0x0167 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_TILDE 0x0168 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_TILDE 0x0169 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_MACRON 0x016A #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_MACRON 0x016B #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_BREVE 0x016C #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_BREVE 0x016D #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_RING_ABOVE 0x016E #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_RING_ABOVE 0x016F #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0x0170 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0x0171 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_OGONEK 0x0172 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_OGONEK 0x0173 #define T_UTF_32_LATIN_CAPITAL_LETTER_W_WITH_CIRCUMFLEX 0x0174 #define T_UTF_32_LATIN_SMALL_LETTER_W_WITH_CIRCUMFLEX 0x0175 #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_CIRCUMFLEX 0x0176 #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_CIRCUMFLEX 0x0177 #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_DIAERESIS 0x0178 #define T_UTF_32_LATIN_CAPITAL_LETTER_Z_WITH_ACUTE 0x0179 #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_ACUTE 0x017A #define T_UTF_32_LATIN_CAPITAL_LETTER_Z_WITH_DOT_ABOVE 0x017B #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_DOT_ABOVE 0x017C #define T_UTF_32_LATIN_CAPITAL_LETTER_Z_WITH_CARON 0x017D #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_CARON 0x017E #define T_UTF_32_LATIN_SMALL_LETTER_LONG_S 0x017F #define T_UTF_32_LATIN_SMALL_LETTER_B_WITH_STROKE 0x0180 #define T_UTF_32_LATIN_CAPITAL_LETTER_B_WITH_HOOK 0x0181 #define T_UTF_32_LATIN_CAPITAL_LETTER_B_WITH_TOPBAR 0x0182 #define T_UTF_32_LATIN_SMALL_LETTER_B_WITH_TOPBAR 0x0183 #define T_UTF_32_LATIN_CAPITAL_LETTER_TONE_SIX 0x0184 #define T_UTF_32_LATIN_SMALL_LETTER_TONE_SIX 0x0185 #define T_UTF_32_LATIN_CAPITAL_LETTER_OPEN_O 0x0186 #define T_UTF_32_LATIN_CAPITAL_LETTER_C_WITH_HOOK 0x0187 #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_HOOK 0x0188 #define T_UTF_32_LATIN_CAPITAL_LETTER_AFRICAN_D 0x0189 #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_HOOK 0x018A #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_TOPBAR 0x018B #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_TOPBAR 0x018C #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_DELTA 0x018D #define T_UTF_32_LATIN_CAPITAL_LETTER_REVERSED_E 0x018E #define T_UTF_32_LATIN_CAPITAL_LETTER_SCHWA 0x018F #define T_UTF_32_LATIN_CAPITAL_LETTER_OPEN_E 0x0190 #define T_UTF_32_LATIN_CAPITAL_LETTER_F_WITH_HOOK 0x0191 #define T_UTF_32_LATIN_SMALL_LETTER_F_WITH_HOOK 0x0192 #define T_UTF_32_LATIN_CAPITAL_LETTER_G_WITH_HOOK 0x0193 #define T_UTF_32_LATIN_CAPITAL_LETTER_GAMMA 0x0194 #define T_UTF_32_LATIN_SMALL_LETTER_HV 0x0195 #define T_UTF_32_LATIN_CAPITAL_LETTER_IOTA 0x0196 #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_STROKE 0x0197 #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_HOOK 0x0198 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_HOOK 0x0199 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_BAR 0x019A #define T_UTF_32_LATIN_SMALL_LETTER_LAMBDA_WITH_STROKE 0x019B #define T_UTF_32_LATIN_CAPITAL_LETTER_TURNED_M 0x019C #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_LEFT_HOOK 0x019D #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_LONG_RIGHT_LEG 0x019E #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_MIDDLE_TILDE 0x019F #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_HORN 0x01A0 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_HORN 0x01A1 #define T_UTF_32_LATIN_CAPITAL_LETTER_OI 0x01A2 #define T_UTF_32_LATIN_SMALL_LETTER_OI 0x01A3 #define T_UTF_32_LATIN_CAPITAL_LETTER_P_WITH_HOOK 0x01A4 #define T_UTF_32_LATIN_SMALL_LETTER_P_WITH_HOOK 0x01A5 #define T_UTF_32_LATIN_LETTER_YR 0x01A6 #define T_UTF_32_LATIN_CAPITAL_LETTER_TONE_TWO 0x01A7 #define T_UTF_32_LATIN_SMALL_LETTER_TONE_TWO 0x01A8 #define T_UTF_32_LATIN_CAPITAL_LETTER_ESH 0x01A9 #define T_UTF_32_LATIN_LETTER_REVERSED_ESH_LOOP 0x01AA #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_PALATAL_HOOK 0x01AB #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_HOOK 0x01AC #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_HOOK 0x01AD #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_RETROFLEX_HOOK 0x01AE #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_HORN 0x01AF #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_HORN 0x01B0 #define T_UTF_32_LATIN_CAPITAL_LETTER_UPSILON 0x01B1 #define T_UTF_32_LATIN_CAPITAL_LETTER_V_WITH_HOOK 0x01B2 #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_HOOK 0x01B3 #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_HOOK 0x01B4 #define T_UTF_32_LATIN_CAPITAL_LETTER_Z_WITH_STROKE 0x01B5 #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_STROKE 0x01B6 #define T_UTF_32_LATIN_CAPITAL_LETTER_EZH 0x01B7 #define T_UTF_32_LATIN_CAPITAL_LETTER_EZH_REVERSED 0x01B8 #define T_UTF_32_LATIN_SMALL_LETTER_EZH_REVERSED 0x01B9 #define T_UTF_32_LATIN_SMALL_LETTER_EZH_WITH_TAIL 0x01BA #define T_UTF_32_LATIN_LETTER_TWO_WITH_STROKE 0x01BB #define T_UTF_32_LATIN_CAPITAL_LETTER_TONE_FIVE 0x01BC #define T_UTF_32_LATIN_SMALL_LETTER_TONE_FIVE 0x01BD #define T_UTF_32_LATIN_LETTER_INVERTED_GLOTTAL_STOP_WITH_STROKE 0x01BE #define T_UTF_32_LATIN_LETTER_WYNN 0x01BF #define T_UTF_32_LATIN_LETTER_DENTAL_CLICK 0x01C0 #define T_UTF_32_LATIN_LETTER_LATERAL_CLICK 0x01C1 #define T_UTF_32_LATIN_LETTER_ALVEOLAR_CLICK 0x01C2 #define T_UTF_32_LATIN_LETTER_RETROFLEX_CLICK 0x01C3 #define T_UTF_32_LATIN_CAPITAL_LETTER_DZ_WITH_CARON 0x01C4 #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_SMALL_LETTER_Z_WITH_CARON 0x01C5 #define T_UTF_32_LATIN_SMALL_LETTER_DZ_WITH_CARON 0x01C6 #define T_UTF_32_LATIN_CAPITAL_LETTER_LJ 0x01C7 #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_SMALL_LETTER_J 0x01C8 #define T_UTF_32_LATIN_SMALL_LETTER_LJ 0x01C9 #define T_UTF_32_LATIN_CAPITAL_LETTER_NJ 0x01CA #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_SMALL_LETTER_J 0x01CB #define T_UTF_32_LATIN_SMALL_LETTER_NJ 0x01CC #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_CARON 0x01CD #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_CARON 0x01CE #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_CARON 0x01CF #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_CARON 0x01D0 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_CARON 0x01D1 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_CARON 0x01D2 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_CARON 0x01D3 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_CARON 0x01D4 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_MACRON 0x01D5 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_MACRON 0x01D6 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_ACUTE 0x01D7 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_ACUTE 0x01D8 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_CARON 0x01D9 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_CARON 0x01DA #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_AND_GRAVE 0x01DB #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_DIAERESIS_AND_GRAVE 0x01DC #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_E 0x01DD #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS_AND_MACRON 0x01DE #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_DIAERESIS_AND_MACRON 0x01DF #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_DOT_ABOVE_AND_MACRON 0x01E0 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_DOT_ABOVE_AND_MACRON 0x01E1 #define T_UTF_32_LATIN_CAPITAL_LETTER_AE_WITH_MACRON 0x01E2 #define T_UTF_32_LATIN_SMALL_LETTER_AE_WITH_MACRON 0x01E3 #define T_UTF_32_LATIN_CAPITAL_LETTER_G_WITH_STROKE 0x01E4 #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_STROKE 0x01E5 #define T_UTF_32_LATIN_CAPITAL_LETTER_G_WITH_CARON 0x01E6 #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_CARON 0x01E7 #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_CARON 0x01E8 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_CARON 0x01E9 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_OGONEK 0x01EA #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_OGONEK 0x01EB #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_OGONEK_AND_MACRON 0x01EC #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_OGONEK_AND_MACRON 0x01ED #define T_UTF_32_LATIN_CAPITAL_LETTER_EZH_WITH_CARON 0x01EE #define T_UTF_32_LATIN_SMALL_LETTER_EZH_WITH_CARON 0x01EF #define T_UTF_32_LATIN_SMALL_LETTER_J_WITH_CARON 0x01F0 #define T_UTF_32_LATIN_CAPITAL_LETTER_DZ 0x01F1 #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_SMALL_LETTER_Z 0x01F2 #define T_UTF_32_LATIN_SMALL_LETTER_DZ 0x01F3 #define T_UTF_32_LATIN_CAPITAL_LETTER_G_WITH_ACUTE 0x01F4 #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_ACUTE 0x01F5 #define T_UTF_32_LATIN_CAPITAL_LETTER_HWAIR 0x01F6 #define T_UTF_32_LATIN_CAPITAL_LETTER_WYNN 0x01F7 #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_GRAVE 0x01F8 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_GRAVE 0x01F9 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE_AND_ACUTE 0x01FA #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE_AND_ACUTE 0x01FB #define T_UTF_32_LATIN_CAPITAL_LETTER_AE_WITH_ACUTE 0x01FC #define T_UTF_32_LATIN_SMALL_LETTER_AE_WITH_ACUTE 0x01FD #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_STROKE_AND_ACUTE 0x01FE #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_STROKE_AND_ACUTE 0x01FF #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_DOUBLE_GRAVE 0x0200 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_DOUBLE_GRAVE 0x0201 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_INVERTED_BREVE 0x0202 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_INVERTED_BREVE 0x0203 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_DOUBLE_GRAVE 0x0204 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_DOUBLE_GRAVE 0x0205 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_INVERTED_BREVE 0x0206 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_INVERTED_BREVE 0x0207 #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_DOUBLE_GRAVE 0x0208 #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_DOUBLE_GRAVE 0x0209 #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_INVERTED_BREVE 0x020A #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_INVERTED_BREVE 0x020B #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_DOUBLE_GRAVE 0x020C #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_DOUBLE_GRAVE 0x020D #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_INVERTED_BREVE 0x020E #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_INVERTED_BREVE 0x020F #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_DOUBLE_GRAVE 0x0210 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_DOUBLE_GRAVE 0x0211 #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_INVERTED_BREVE 0x0212 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_INVERTED_BREVE 0x0213 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_DOUBLE_GRAVE 0x0214 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_DOUBLE_GRAVE 0x0215 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_INVERTED_BREVE 0x0216 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_INVERTED_BREVE 0x0217 #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_COMMA_BELOW 0x0218 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_COMMA_BELOW 0x0219 #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_COMMA_BELOW 0x021A #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_COMMA_BELOW 0x021B #define T_UTF_32_LATIN_CAPITAL_LETTER_YOGH 0x021C #define T_UTF_32_LATIN_SMALL_LETTER_YOGH 0x021D #define T_UTF_32_LATIN_CAPITAL_LETTER_H_WITH_CARON 0x021E #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_CARON 0x021F #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_LONG_RIGHT_LEG 0x0220 #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_CURL 0x0221 #define T_UTF_32_LATIN_CAPITAL_LETTER_OU 0x0222 #define T_UTF_32_LATIN_SMALL_LETTER_OU 0x0223 #define T_UTF_32_LATIN_CAPITAL_LETTER_Z_WITH_HOOK 0x0224 #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_HOOK 0x0225 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_DOT_ABOVE 0x0226 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_DOT_ABOVE 0x0227 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_CEDILLA 0x0228 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_CEDILLA 0x0229 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS_AND_MACRON 0x022A #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_DIAERESIS_AND_MACRON 0x022B #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_TILDE_AND_MACRON 0x022C #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_TILDE_AND_MACRON 0x022D #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_DOT_ABOVE 0x022E #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_DOT_ABOVE 0x022F #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_DOT_ABOVE_AND_MACRON 0x0230 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_DOT_ABOVE_AND_MACRON 0x0231 #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_MACRON 0x0232 #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_MACRON 0x0233 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_CURL 0x0234 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_CURL 0x0235 #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_CURL 0x0236 #define T_UTF_32_LATIN_SMALL_LETTER_DOTLESS_J 0x0237 #define T_UTF_32_LATIN_SMALL_LETTER_DB_DIGRAPH 0x0238 #define T_UTF_32_LATIN_SMALL_LETTER_QP_DIGRAPH 0x0239 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_STROKE 0x023A #define T_UTF_32_LATIN_CAPITAL_LETTER_C_WITH_STROKE 0x023B #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_STROKE 0x023C #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_BAR 0x023D #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_DIAGONAL_STROKE 0x023E #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_SWASH_TAIL 0x023F #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_SWASH_TAIL 0x0240 #define T_UTF_32_LATIN_CAPITAL_LETTER_GLOTTAL_STOP 0x0241 #define T_UTF_32_LATIN_SMALL_LETTER_GLOTTAL_STOP 0x0242 #define T_UTF_32_LATIN_CAPITAL_LETTER_B_WITH_STROKE 0x0243 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_BAR 0x0244 #define T_UTF_32_LATIN_CAPITAL_LETTER_TURNED_V 0x0245 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_STROKE 0x0246 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_STROKE 0x0247 #define T_UTF_32_LATIN_CAPITAL_LETTER_J_WITH_STROKE 0x0248 #define T_UTF_32_LATIN_SMALL_LETTER_J_WITH_STROKE 0x0249 #define T_UTF_32_LATIN_CAPITAL_LETTER_SMALL_Q_WITH_HOOK_TAIL 0x024A #define T_UTF_32_LATIN_SMALL_LETTER_Q_WITH_HOOK_TAIL 0x024B #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_STROKE 0x024C #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_STROKE 0x024D #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_STROKE 0x024E #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_STROKE 0x024F #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_A 0x0250 #define T_UTF_32_LATIN_SMALL_LETTER_ALPHA 0x0251 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_ALPHA 0x0252 #define T_UTF_32_LATIN_SMALL_LETTER_B_WITH_HOOK 0x0253 #define T_UTF_32_LATIN_SMALL_LETTER_OPEN_O 0x0254 #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_CURL 0x0255 #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_TAIL 0x0256 #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_HOOK 0x0257 #define T_UTF_32_LATIN_SMALL_LETTER_REVERSED_E 0x0258 #define T_UTF_32_LATIN_SMALL_LETTER_SCHWA 0x0259 #define T_UTF_32_LATIN_SMALL_LETTER_SCHWA_WITH_HOOK 0x025A #define T_UTF_32_LATIN_SMALL_LETTER_OPEN_E 0x025B #define T_UTF_32_LATIN_SMALL_LETTER_REVERSED_OPEN_E 0x025C #define T_UTF_32_LATIN_SMALL_LETTER_REVERSED_OPEN_E_WITH_HOOK 0x025D #define T_UTF_32_LATIN_SMALL_LETTER_CLOSED_REVERSED_OPEN_E 0x025E #define T_UTF_32_LATIN_SMALL_LETTER_DOTLESS_J_WITH_STROKE 0x025F #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_HOOK 0x0260 #define T_UTF_32_LATIN_SMALL_LETTER_SCRIPT_G 0x0261 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_G 0x0262 #define T_UTF_32_LATIN_SMALL_LETTER_GAMMA 0x0263 #define T_UTF_32_LATIN_SMALL_LETTER_RAMS_HORN 0x0264 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_H 0x0265 #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_HOOK 0x0266 #define T_UTF_32_LATIN_SMALL_LETTER_HENG_WITH_HOOK 0x0267 #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_STROKE 0x0268 #define T_UTF_32_LATIN_SMALL_LETTER_IOTA 0x0269 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_I 0x026A #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_MIDDLE_TILDE 0x026B #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_BELT 0x026C #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_RETROFLEX_HOOK 0x026D #define T_UTF_32_LATIN_SMALL_LETTER_LEZH 0x026E #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_M 0x026F #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_M_WITH_LONG_LEG 0x0270 #define T_UTF_32_LATIN_SMALL_LETTER_M_WITH_HOOK 0x0271 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_LEFT_HOOK 0x0272 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_RETROFLEX_HOOK 0x0273 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_N 0x0274 #define T_UTF_32_LATIN_SMALL_LETTER_BARRED_O 0x0275 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_OE 0x0276 #define T_UTF_32_LATIN_SMALL_LETTER_CLOSED_OMEGA 0x0277 #define T_UTF_32_LATIN_SMALL_LETTER_PHI 0x0278 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_R 0x0279 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_R_WITH_LONG_LEG 0x027A #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_R_WITH_HOOK 0x027B #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_LONG_LEG 0x027C #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_TAIL 0x027D #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_FISHHOOK 0x027E #define T_UTF_32_LATIN_SMALL_LETTER_REVERSED_R_WITH_FISHHOOK 0x027F #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_R 0x0280 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_INVERTED_R 0x0281 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_HOOK 0x0282 #define T_UTF_32_LATIN_SMALL_LETTER_ESH 0x0283 #define T_UTF_32_LATIN_SMALL_LETTER_DOTLESS_J_WITH_STROKE_AND_HOOK 0x0284 #define T_UTF_32_LATIN_SMALL_LETTER_SQUAT_REVERSED_ESH 0x0285 #define T_UTF_32_LATIN_SMALL_LETTER_ESH_WITH_CURL 0x0286 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_T 0x0287 #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_RETROFLEX_HOOK 0x0288 #define T_UTF_32_LATIN_SMALL_LETTER_U_BAR 0x0289 #define T_UTF_32_LATIN_SMALL_LETTER_UPSILON 0x028A #define T_UTF_32_LATIN_SMALL_LETTER_V_WITH_HOOK 0x028B #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_V 0x028C #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_W 0x028D #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_Y 0x028E #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_Y 0x028F #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_RETROFLEX_HOOK 0x0290 #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_CURL 0x0291 #define T_UTF_32_LATIN_SMALL_LETTER_EZH 0x0292 #define T_UTF_32_LATIN_SMALL_LETTER_EZH_WITH_CURL 0x0293 #define T_UTF_32_LATIN_LETTER_GLOTTAL_STOP 0x0294 #define T_UTF_32_LATIN_LETTER_PHARYNGEAL_VOICED_FRICATIVE 0x0295 #define T_UTF_32_LATIN_LETTER_INVERTED_GLOTTAL_STOP 0x0296 #define T_UTF_32_LATIN_LETTER_STRETCHED_C 0x0297 #define T_UTF_32_LATIN_LETTER_BILABIAL_CLICK 0x0298 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_B 0x0299 #define T_UTF_32_LATIN_SMALL_LETTER_CLOSED_OPEN_E 0x029A #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_G_WITH_HOOK 0x029B #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_H 0x029C #define T_UTF_32_LATIN_SMALL_LETTER_J_WITH_CROSSED_TAIL 0x029D #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_K 0x029E #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_L 0x029F #define T_UTF_32_LATIN_SMALL_LETTER_Q_WITH_HOOK 0x02A0 #define T_UTF_32_LATIN_LETTER_GLOTTAL_STOP_WITH_STROKE 0x02A1 #define T_UTF_32_LATIN_LETTER_REVERSED_GLOTTAL_STOP_WITH_STROKE 0x02A2 #define T_UTF_32_LATIN_SMALL_LETTER_DZ_DIGRAPH 0x02A3 #define T_UTF_32_LATIN_SMALL_LETTER_DEZH_DIGRAPH 0x02A4 #define T_UTF_32_LATIN_SMALL_LETTER_DZ_DIGRAPH_WITH_CURL 0x02A5 #define T_UTF_32_LATIN_SMALL_LETTER_TS_DIGRAPH 0x02A6 #define T_UTF_32_LATIN_SMALL_LETTER_TESH_DIGRAPH 0x02A7 #define T_UTF_32_LATIN_SMALL_LETTER_TC_DIGRAPH_WITH_CURL 0x02A8 #define T_UTF_32_LATIN_SMALL_LETTER_FENG_DIGRAPH 0x02A9 #define T_UTF_32_LATIN_SMALL_LETTER_LS_DIGRAPH 0x02AA #define T_UTF_32_LATIN_SMALL_LETTER_LZ_DIGRAPH 0x02AB #define T_UTF_32_LATIN_LETTER_BILABIAL_PERCUSSIVE 0x02AC #define T_UTF_32_LATIN_LETTER_BIDENTAL_PERCUSSIVE 0x02AD #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_H_WITH_FISHHOOK 0x02AE #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_H_WITH_FISHHOOK_AND_TAIL 0x02AF #define T_UTF_32_MODIFIER_LETTER_SMALL_H 0x02B0 #define T_UTF_32_MODIFIER_LETTER_SMALL_H_WITH_HOOK 0x02B1 #define T_UTF_32_MODIFIER_LETTER_SMALL_J 0x02B2 #define T_UTF_32_MODIFIER_LETTER_SMALL_R 0x02B3 #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_R 0x02B4 #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_R_WITH_HOOK 0x02B5 #define T_UTF_32_MODIFIER_LETTER_SMALL_CAPITAL_INVERTED_R 0x02B6 #define T_UTF_32_MODIFIER_LETTER_SMALL_W 0x02B7 #define T_UTF_32_MODIFIER_LETTER_SMALL_Y 0x02B8 #define T_UTF_32_MODIFIER_LETTER_PRIME 0x02B9 #define T_UTF_32_MODIFIER_LETTER_DOUBLE_PRIME 0x02BA #define T_UTF_32_MODIFIER_LETTER_TURNED_COMMA 0x02BB #define T_UTF_32_MODIFIER_LETTER_APOSTROPHE 0x02BC #define T_UTF_32_MODIFIER_LETTER_REVERSED_COMMA 0x02BD #define T_UTF_32_MODIFIER_LETTER_RIGHT_HALF_RING 0x02BE #define T_UTF_32_MODIFIER_LETTER_LEFT_HALF_RING 0x02BF #define T_UTF_32_MODIFIER_LETTER_GLOTTAL_STOP 0x02C0 #define T_UTF_32_MODIFIER_LETTER_REVERSED_GLOTTAL_STOP 0x02C1 #define T_UTF_32_MODIFIER_LETTER_LEFT_ARROWHEAD 0x02C2 #define T_UTF_32_MODIFIER_LETTER_RIGHT_ARROWHEAD 0x02C3 #define T_UTF_32_MODIFIER_LETTER_UP_ARROWHEAD 0x02C4 #define T_UTF_32_MODIFIER_LETTER_DOWN_ARROWHEAD 0x02C5 #define T_UTF_32_MODIFIER_LETTER_CIRCUMFLEX_ACCENT 0x02C6 #define T_UTF_32_CARON 0x02C7 #define T_UTF_32_MODIFIER_LETTER_VERTICAL_LINE 0x02C8 #define T_UTF_32_MODIFIER_LETTER_MACRON 0x02C9 #define T_UTF_32_MODIFIER_LETTER_ACUTE_ACCENT 0x02CA #define T_UTF_32_MODIFIER_LETTER_GRAVE_ACCENT 0x02CB #define T_UTF_32_MODIFIER_LETTER_LOW_VERTICAL_LINE 0x02CC #define T_UTF_32_MODIFIER_LETTER_LOW_MACRON 0x02CD #define T_UTF_32_MODIFIER_LETTER_LOW_GRAVE_ACCENT 0x02CE #define T_UTF_32_MODIFIER_LETTER_LOW_ACUTE_ACCENT 0x02CF #define T_UTF_32_MODIFIER_LETTER_TRIANGULAR_COLON 0x02D0 #define T_UTF_32_MODIFIER_LETTER_HALF_TRIANGULAR_COLON 0x02D1 #define T_UTF_32_MODIFIER_LETTER_CENTRED_RIGHT_HALF_RING 0x02D2 #define T_UTF_32_MODIFIER_LETTER_CENTRED_LEFT_HALF_RING 0x02D3 #define T_UTF_32_MODIFIER_LETTER_UP_TACK 0x02D4 #define T_UTF_32_MODIFIER_LETTER_DOWN_TACK 0x02D5 #define T_UTF_32_MODIFIER_LETTER_PLUS_SIGN 0x02D6 #define T_UTF_32_MODIFIER_LETTER_MINUS_SIGN 0x02D7 #define T_UTF_32_BREVE 0x02D8 #define T_UTF_32_DOT_ABOVE 0x02D9 #define T_UTF_32_RING_ABOVE 0x02DA #define T_UTF_32_OGONEK 0x02DB #define T_UTF_32_SMALL_TILDE 0x02DC #define T_UTF_32_DOUBLE_ACUTE_ACCENT 0x02DD #define T_UTF_32_MODIFIER_LETTER_RHOTIC_HOOK 0x02DE #define T_UTF_32_MODIFIER_LETTER_CROSS_ACCENT 0x02DF #define T_UTF_32_MODIFIER_LETTER_SMALL_GAMMA 0x02E0 #define T_UTF_32_MODIFIER_LETTER_SMALL_L 0x02E1 #define T_UTF_32_MODIFIER_LETTER_SMALL_S 0x02E2 #define T_UTF_32_MODIFIER_LETTER_SMALL_X 0x02E3 #define T_UTF_32_MODIFIER_LETTER_SMALL_REVERSED_GLOTTAL_STOP 0x02E4 #define T_UTF_32_MODIFIER_LETTER_EXTRA_HIGH_TONE_BAR 0x02E5 #define T_UTF_32_MODIFIER_LETTER_HIGH_TONE_BAR 0x02E6 #define T_UTF_32_MODIFIER_LETTER_MID_TONE_BAR 0x02E7 #define T_UTF_32_MODIFIER_LETTER_LOW_TONE_BAR 0x02E8 #define T_UTF_32_MODIFIER_LETTER_EXTRA_LOW_TONE_BAR 0x02E9 #define T_UTF_32_MODIFIER_LETTER_YIN_DEPARTING_TONE_MARK 0x02EA #define T_UTF_32_MODIFIER_LETTER_YANG_DEPARTING_TONE_MARK 0x02EB #define T_UTF_32_MODIFIER_LETTER_VOICING 0x02EC #define T_UTF_32_MODIFIER_LETTER_UNASPIRATED 0x02ED #define T_UTF_32_MODIFIER_LETTER_DOUBLE_APOSTROPHE 0x02EE #define T_UTF_32_MODIFIER_LETTER_LOW_DOWN_ARROWHEAD 0x02EF #define T_UTF_32_MODIFIER_LETTER_LOW_UP_ARROWHEAD 0x02F0 #define T_UTF_32_MODIFIER_LETTER_LOW_LEFT_ARROWHEAD 0x02F1 #define T_UTF_32_MODIFIER_LETTER_LOW_RIGHT_ARROWHEAD 0x02F2 #define T_UTF_32_MODIFIER_LETTER_LOW_RING 0x02F3 #define T_UTF_32_MODIFIER_LETTER_MIDDLE_GRAVE_ACCENT 0x02F4 #define T_UTF_32_MODIFIER_LETTER_MIDDLE_DOUBLE_GRAVE_ACCENT 0x02F5 #define T_UTF_32_MODIFIER_LETTER_MIDDLE_DOUBLE_ACUTE_ACCENT 0x02F6 #define T_UTF_32_MODIFIER_LETTER_LOW_TILDE 0x02F7 #define T_UTF_32_MODIFIER_LETTER_RAISED_COLON 0x02F8 #define T_UTF_32_MODIFIER_LETTER_BEGIN_HIGH_TONE 0x02F9 #define T_UTF_32_MODIFIER_LETTER_END_HIGH_TONE 0x02FA #define T_UTF_32_MODIFIER_LETTER_BEGIN_LOW_TONE 0x02FB #define T_UTF_32_MODIFIER_LETTER_END_LOW_TONE 0x02FC #define T_UTF_32_MODIFIER_LETTER_SHELF 0x02FD #define T_UTF_32_MODIFIER_LETTER_OPEN_SHELF 0x02FE #define T_UTF_32_MODIFIER_LETTER_LOW_LEFT_ARROW 0x02FF #define T_UTF_32_COMBINING_GRAVE_ACCENT 0x0300 #define T_UTF_32_COMBINING_ACUTE_ACCENT 0x0301 #define T_UTF_32_COMBINING_CIRCUMFLEX_ACCENT 0x0302 #define T_UTF_32_COMBINING_TILDE 0x0303 #define T_UTF_32_COMBINING_MACRON 0x0304 #define T_UTF_32_COMBINING_OVERLINE 0x0305 #define T_UTF_32_COMBINING_BREVE 0x0306 #define T_UTF_32_COMBINING_DOT_ABOVE 0x0307 #define T_UTF_32_COMBINING_DIAERESIS 0x0308 #define T_UTF_32_COMBINING_HOOK_ABOVE 0x0309 #define T_UTF_32_COMBINING_RING_ABOVE 0x030A #define T_UTF_32_COMBINING_DOUBLE_ACUTE_ACCENT 0x030B #define T_UTF_32_COMBINING_CARON 0x030C #define T_UTF_32_COMBINING_VERTICAL_LINE_ABOVE 0x030D #define T_UTF_32_COMBINING_DOUBLE_VERTICAL_LINE_ABOVE 0x030E #define T_UTF_32_COMBINING_DOUBLE_GRAVE_ACCENT 0x030F #define T_UTF_32_COMBINING_CANDRABINDU 0x0310 #define T_UTF_32_COMBINING_INVERTED_BREVE 0x0311 #define T_UTF_32_COMBINING_TURNED_COMMA_ABOVE 0x0312 #define T_UTF_32_COMBINING_COMMA_ABOVE 0x0313 #define T_UTF_32_COMBINING_REVERSED_COMMA_ABOVE 0x0314 #define T_UTF_32_COMBINING_COMMA_ABOVE_RIGHT 0x0315 #define T_UTF_32_COMBINING_GRAVE_ACCENT_BELOW 0x0316 #define T_UTF_32_COMBINING_ACUTE_ACCENT_BELOW 0x0317 #define T_UTF_32_COMBINING_LEFT_TACK_BELOW 0x0318 #define T_UTF_32_COMBINING_RIGHT_TACK_BELOW 0x0319 #define T_UTF_32_COMBINING_LEFT_ANGLE_ABOVE 0x031A #define T_UTF_32_COMBINING_HORN 0x031B #define T_UTF_32_COMBINING_LEFT_HALF_RING_BELOW 0x031C #define T_UTF_32_COMBINING_UP_TACK_BELOW 0x031D #define T_UTF_32_COMBINING_DOWN_TACK_BELOW 0x031E #define T_UTF_32_COMBINING_PLUS_SIGN_BELOW 0x031F #define T_UTF_32_COMBINING_MINUS_SIGN_BELOW 0x0320 #define T_UTF_32_COMBINING_PALATALIZED_HOOK_BELOW 0x0321 #define T_UTF_32_COMBINING_RETROFLEX_HOOK_BELOW 0x0322 #define T_UTF_32_COMBINING_DOT_BELOW 0x0323 #define T_UTF_32_COMBINING_DIAERESIS_BELOW 0x0324 #define T_UTF_32_COMBINING_RING_BELOW 0x0325 #define T_UTF_32_COMBINING_COMMA_BELOW 0x0326 #define T_UTF_32_COMBINING_CEDILLA 0x0327 #define T_UTF_32_COMBINING_OGONEK 0x0328 #define T_UTF_32_COMBINING_VERTICAL_LINE_BELOW 0x0329 #define T_UTF_32_COMBINING_BRIDGE_BELOW 0x032A #define T_UTF_32_COMBINING_INVERTED_DOUBLE_ARCH_BELOW 0x032B #define T_UTF_32_COMBINING_CARON_BELOW 0x032C #define T_UTF_32_COMBINING_CIRCUMFLEX_ACCENT_BELOW 0x032D #define T_UTF_32_COMBINING_BREVE_BELOW 0x032E #define T_UTF_32_COMBINING_INVERTED_BREVE_BELOW 0x032F #define T_UTF_32_COMBINING_TILDE_BELOW 0x0330 #define T_UTF_32_COMBINING_MACRON_BELOW 0x0331 #define T_UTF_32_COMBINING_LOW_LINE 0x0332 #define T_UTF_32_COMBINING_DOUBLE_LOW_LINE 0x0333 #define T_UTF_32_COMBINING_TILDE_OVERLAY 0x0334 #define T_UTF_32_COMBINING_SHORT_STROKE_OVERLAY 0x0335 #define T_UTF_32_COMBINING_LONG_STROKE_OVERLAY 0x0336 #define T_UTF_32_COMBINING_SHORT_SOLIDUS_OVERLAY 0x0337 #define T_UTF_32_COMBINING_LONG_SOLIDUS_OVERLAY 0x0338 #define T_UTF_32_COMBINING_RIGHT_HALF_RING_BELOW 0x0339 #define T_UTF_32_COMBINING_INVERTED_BRIDGE_BELOW 0x033A #define T_UTF_32_COMBINING_SQUARE_BELOW 0x033B #define T_UTF_32_COMBINING_SEAGULL_BELOW 0x033C #define T_UTF_32_COMBINING_X_ABOVE 0x033D #define T_UTF_32_COMBINING_VERTICAL_TILDE 0x033E #define T_UTF_32_COMBINING_DOUBLE_OVERLINE 0x033F #define T_UTF_32_COMBINING_GRAVE_TONE_MARK 0x0340 #define T_UTF_32_COMBINING_ACUTE_TONE_MARK 0x0341 #define T_UTF_32_COMBINING_GREEK_PERISPOMENI 0x0342 #define T_UTF_32_COMBINING_GREEK_KORONIS 0x0343 #define T_UTF_32_COMBINING_GREEK_DIALYTIKA_TONOS 0x0344 #define T_UTF_32_COMBINING_GREEK_YPOGEGRAMMENI 0x0345 #define T_UTF_32_COMBINING_BRIDGE_ABOVE 0x0346 #define T_UTF_32_COMBINING_EQUALS_SIGN_BELOW 0x0347 #define T_UTF_32_COMBINING_DOUBLE_VERTICAL_LINE_BELOW 0x0348 #define T_UTF_32_COMBINING_LEFT_ANGLE_BELOW 0x0349 #define T_UTF_32_COMBINING_NOT_TILDE_ABOVE 0x034A #define T_UTF_32_COMBINING_HOMOTHETIC_ABOVE 0x034B #define T_UTF_32_COMBINING_ALMOST_EQUAL_TO_ABOVE 0x034C #define T_UTF_32_COMBINING_LEFT_RIGHT_ARROW_BELOW 0x034D #define T_UTF_32_COMBINING_UPWARDS_ARROW_BELOW 0x034E #define T_UTF_32_COMBINING_GRAPHEME_JOINER 0x034F #define T_UTF_32_COMBINING_RIGHT_ARROWHEAD_ABOVE 0x0350 #define T_UTF_32_COMBINING_LEFT_HALF_RING_ABOVE 0x0351 #define T_UTF_32_COMBINING_FERMATA 0x0352 #define T_UTF_32_COMBINING_X_BELOW 0x0353 #define T_UTF_32_COMBINING_LEFT_ARROWHEAD_BELOW 0x0354 #define T_UTF_32_COMBINING_RIGHT_ARROWHEAD_BELOW 0x0355 #define T_UTF_32_COMBINING_RIGHT_ARROWHEAD_AND_UP_ARROWHEAD_BELOW 0x0356 #define T_UTF_32_COMBINING_RIGHT_HALF_RING_ABOVE 0x0357 #define T_UTF_32_COMBINING_DOT_ABOVE_RIGHT 0x0358 #define T_UTF_32_COMBINING_ASTERISK_BELOW 0x0359 #define T_UTF_32_COMBINING_DOUBLE_RING_BELOW 0x035A #define T_UTF_32_COMBINING_ZIGZAG_ABOVE 0x035B #define T_UTF_32_COMBINING_DOUBLE_BREVE_BELOW 0x035C #define T_UTF_32_COMBINING_DOUBLE_BREVE 0x035D #define T_UTF_32_COMBINING_DOUBLE_MACRON 0x035E #define T_UTF_32_COMBINING_DOUBLE_MACRON_BELOW 0x035F #define T_UTF_32_COMBINING_DOUBLE_TILDE 0x0360 #define T_UTF_32_COMBINING_DOUBLE_INVERTED_BREVE 0x0361 #define T_UTF_32_COMBINING_DOUBLE_RIGHTWARDS_ARROW_BELOW 0x0362 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_A 0x0363 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_E 0x0364 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_I 0x0365 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_O 0x0366 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_U 0x0367 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_C 0x0368 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_D 0x0369 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_H 0x036A #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_M 0x036B #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_R 0x036C #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_T 0x036D #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_V 0x036E #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_X 0x036F #define T_UTF_32_GREEK_CAPITAL_LETTER_HETA 0x0370 #define T_UTF_32_GREEK_SMALL_LETTER_HETA 0x0371 #define T_UTF_32_GREEK_CAPITAL_LETTER_ARCHAIC_SAMPI 0x0372 #define T_UTF_32_GREEK_SMALL_LETTER_ARCHAIC_SAMPI 0x0373 #define T_UTF_32_GREEK_NUMERAL_SIGN 0x0374 #define T_UTF_32_GREEK_LOWER_NUMERAL_SIGN 0x0375 #define T_UTF_32_GREEK_CAPITAL_LETTER_PAMPHYLIAN_DIGAMMA 0x0376 #define T_UTF_32_GREEK_SMALL_LETTER_PAMPHYLIAN_DIGAMMA 0x0377 #define T_UTF_32_GREEK_YPOGEGRAMMENI 0x037A #define T_UTF_32_GREEK_SMALL_REVERSED_LUNATE_SIGMA_SYMBOL 0x037B #define T_UTF_32_GREEK_SMALL_DOTTED_LUNATE_SIGMA_SYMBOL 0x037C #define T_UTF_32_GREEK_SMALL_REVERSED_DOTTED_LUNATE_SIGMA_SYMBOL 0x037D #define T_UTF_32_GREEK_QUESTION_MARK 0x037E #define T_UTF_32_GREEK_CAPITAL_LETTER_YOT 0x037F #define T_UTF_32_GREEK_TONOS 0x0384 #define T_UTF_32_GREEK_DIALYTIKA_TONOS 0x0385 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_TONOS 0x0386 #define T_UTF_32_GREEK_ANO_TELEIA 0x0387 #define T_UTF_32_GREEK_CAPITAL_LETTER_EPSILON_WITH_TONOS 0x0388 #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_TONOS 0x0389 #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_TONOS 0x038A #define T_UTF_32_GREEK_CAPITAL_LETTER_OMICRON_WITH_TONOS 0x038C #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON_WITH_TONOS 0x038E #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_TONOS 0x038F #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_TONOS 0x0390 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA 0x0391 #define T_UTF_32_GREEK_CAPITAL_LETTER_BETA 0x0392 #define T_UTF_32_GREEK_CAPITAL_LETTER_GAMMA 0x0393 #define T_UTF_32_GREEK_CAPITAL_LETTER_DELTA 0x0394 #define T_UTF_32_GREEK_CAPITAL_LETTER_EPSILON 0x0395 #define T_UTF_32_GREEK_CAPITAL_LETTER_ZETA 0x0396 #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA 0x0397 #define T_UTF_32_GREEK_CAPITAL_LETTER_THETA 0x0398 #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA 0x0399 #define T_UTF_32_GREEK_CAPITAL_LETTER_KAPPA 0x039A #define T_UTF_32_GREEK_CAPITAL_LETTER_LAMDA 0x039B #define T_UTF_32_GREEK_CAPITAL_LETTER_MU 0x039C #define T_UTF_32_GREEK_CAPITAL_LETTER_NU 0x039D #define T_UTF_32_GREEK_CAPITAL_LETTER_XI 0x039E #define T_UTF_32_GREEK_CAPITAL_LETTER_OMICRON 0x039F #define T_UTF_32_GREEK_CAPITAL_LETTER_PI 0x03A0 #define T_UTF_32_GREEK_CAPITAL_LETTER_RHO 0x03A1 #define T_UTF_32_GREEK_CAPITAL_LETTER_SIGMA 0x03A3 #define T_UTF_32_GREEK_CAPITAL_LETTER_TAU 0x03A4 #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON 0x03A5 #define T_UTF_32_GREEK_CAPITAL_LETTER_PHI 0x03A6 #define T_UTF_32_GREEK_CAPITAL_LETTER_CHI 0x03A7 #define T_UTF_32_GREEK_CAPITAL_LETTER_PSI 0x03A8 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA 0x03A9 #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_DIALYTIKA 0x03AA #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON_WITH_DIALYTIKA 0x03AB #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_TONOS 0x03AC #define T_UTF_32_GREEK_SMALL_LETTER_EPSILON_WITH_TONOS 0x03AD #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_TONOS 0x03AE #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_TONOS 0x03AF #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_TONOS 0x03B0 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA 0x03B1 #define T_UTF_32_GREEK_SMALL_LETTER_BETA 0x03B2 #define T_UTF_32_GREEK_SMALL_LETTER_GAMMA 0x03B3 #define T_UTF_32_GREEK_SMALL_LETTER_DELTA 0x03B4 #define T_UTF_32_GREEK_SMALL_LETTER_EPSILON 0x03B5 #define T_UTF_32_GREEK_SMALL_LETTER_ZETA 0x03B6 #define T_UTF_32_GREEK_SMALL_LETTER_ETA 0x03B7 #define T_UTF_32_GREEK_SMALL_LETTER_THETA 0x03B8 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA 0x03B9 #define T_UTF_32_GREEK_SMALL_LETTER_KAPPA 0x03BA #define T_UTF_32_GREEK_SMALL_LETTER_LAMDA 0x03BB #define T_UTF_32_GREEK_SMALL_LETTER_MU 0x03BC #define T_UTF_32_GREEK_SMALL_LETTER_NU 0x03BD #define T_UTF_32_GREEK_SMALL_LETTER_XI 0x03BE #define T_UTF_32_GREEK_SMALL_LETTER_OMICRON 0x03BF #define T_UTF_32_GREEK_SMALL_LETTER_PI 0x03C0 #define T_UTF_32_GREEK_SMALL_LETTER_RHO 0x03C1 #define T_UTF_32_GREEK_SMALL_LETTER_FINAL_SIGMA 0x03C2 #define T_UTF_32_GREEK_SMALL_LETTER_SIGMA 0x03C3 #define T_UTF_32_GREEK_SMALL_LETTER_TAU 0x03C4 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON 0x03C5 #define T_UTF_32_GREEK_SMALL_LETTER_PHI 0x03C6 #define T_UTF_32_GREEK_SMALL_LETTER_CHI 0x03C7 #define T_UTF_32_GREEK_SMALL_LETTER_PSI 0x03C8 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA 0x03C9 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA 0x03CA #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA 0x03CB #define T_UTF_32_GREEK_SMALL_LETTER_OMICRON_WITH_TONOS 0x03CC #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_TONOS 0x03CD #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_TONOS 0x03CE #define T_UTF_32_GREEK_CAPITAL_KAI_SYMBOL 0x03CF #define T_UTF_32_GREEK_BETA_SYMBOL 0x03D0 #define T_UTF_32_GREEK_THETA_SYMBOL 0x03D1 #define T_UTF_32_GREEK_UPSILON_WITH_HOOK_SYMBOL 0x03D2 #define T_UTF_32_GREEK_UPSILON_WITH_ACUTE_AND_HOOK_SYMBOL 0x03D3 #define T_UTF_32_GREEK_UPSILON_WITH_DIAERESIS_AND_HOOK_SYMBOL 0x03D4 #define T_UTF_32_GREEK_PHI_SYMBOL 0x03D5 #define T_UTF_32_GREEK_PI_SYMBOL 0x03D6 #define T_UTF_32_GREEK_KAI_SYMBOL 0x03D7 #define T_UTF_32_GREEK_LETTER_ARCHAIC_KOPPA 0x03D8 #define T_UTF_32_GREEK_SMALL_LETTER_ARCHAIC_KOPPA 0x03D9 #define T_UTF_32_GREEK_LETTER_STIGMA 0x03DA #define T_UTF_32_GREEK_SMALL_LETTER_STIGMA 0x03DB #define T_UTF_32_GREEK_LETTER_DIGAMMA 0x03DC #define T_UTF_32_GREEK_SMALL_LETTER_DIGAMMA 0x03DD #define T_UTF_32_GREEK_LETTER_KOPPA 0x03DE #define T_UTF_32_GREEK_SMALL_LETTER_KOPPA 0x03DF #define T_UTF_32_GREEK_LETTER_SAMPI 0x03E0 #define T_UTF_32_GREEK_SMALL_LETTER_SAMPI 0x03E1 #define T_UTF_32_COPTIC_CAPITAL_LETTER_SHEI 0x03E2 #define T_UTF_32_COPTIC_SMALL_LETTER_SHEI 0x03E3 #define T_UTF_32_COPTIC_CAPITAL_LETTER_FEI 0x03E4 #define T_UTF_32_COPTIC_SMALL_LETTER_FEI 0x03E5 #define T_UTF_32_COPTIC_CAPITAL_LETTER_KHEI 0x03E6 #define T_UTF_32_COPTIC_SMALL_LETTER_KHEI 0x03E7 #define T_UTF_32_COPTIC_CAPITAL_LETTER_HORI 0x03E8 #define T_UTF_32_COPTIC_SMALL_LETTER_HORI 0x03E9 #define T_UTF_32_COPTIC_CAPITAL_LETTER_GANGIA 0x03EA #define T_UTF_32_COPTIC_SMALL_LETTER_GANGIA 0x03EB #define T_UTF_32_COPTIC_CAPITAL_LETTER_SHIMA 0x03EC #define T_UTF_32_COPTIC_SMALL_LETTER_SHIMA 0x03ED #define T_UTF_32_COPTIC_CAPITAL_LETTER_DEI 0x03EE #define T_UTF_32_COPTIC_SMALL_LETTER_DEI 0x03EF #define T_UTF_32_GREEK_KAPPA_SYMBOL 0x03F0 #define T_UTF_32_GREEK_RHO_SYMBOL 0x03F1 #define T_UTF_32_GREEK_LUNATE_SIGMA_SYMBOL 0x03F2 #define T_UTF_32_GREEK_LETTER_YOT 0x03F3 #define T_UTF_32_GREEK_CAPITAL_THETA_SYMBOL 0x03F4 #define T_UTF_32_GREEK_LUNATE_EPSILON_SYMBOL 0x03F5 #define T_UTF_32_GREEK_REVERSED_LUNATE_EPSILON_SYMBOL 0x03F6 #define T_UTF_32_GREEK_CAPITAL_LETTER_SHO 0x03F7 #define T_UTF_32_GREEK_SMALL_LETTER_SHO 0x03F8 #define T_UTF_32_GREEK_CAPITAL_LUNATE_SIGMA_SYMBOL 0x03F9 #define T_UTF_32_GREEK_CAPITAL_LETTER_SAN 0x03FA #define T_UTF_32_GREEK_SMALL_LETTER_SAN 0x03FB #define T_UTF_32_GREEK_RHO_WITH_STROKE_SYMBOL 0x03FC #define T_UTF_32_GREEK_CAPITAL_REVERSED_LUNATE_SIGMA_SYMBOL 0x03FD #define T_UTF_32_GREEK_CAPITAL_DOTTED_LUNATE_SIGMA_SYMBOL 0x03FE #define T_UTF_32_GREEK_CAPITAL_REVERSED_DOTTED_LUNATE_SIGMA_SYMBOL 0x03FF #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IE_WITH_GRAVE 0x0400 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IO 0x0401 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DJE 0x0402 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_GJE 0x0403 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_UKRAINIAN_IE 0x0404 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DZE 0x0405 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x0406 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_YI 0x0407 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_JE 0x0408 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_LJE 0x0409 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_NJE 0x040A #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_TSHE 0x040B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KJE 0x040C #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_I_WITH_GRAVE 0x040D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SHORT_U 0x040E #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DZHE 0x040F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_A 0x0410 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_BE 0x0411 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_VE 0x0412 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_GHE 0x0413 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DE 0x0414 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IE 0x0415 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ZHE 0x0416 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ZE 0x0417 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_I 0x0418 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SHORT_I 0x0419 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KA 0x041A #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EL 0x041B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EM 0x041C #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EN 0x041D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_O 0x041E #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_PE 0x041F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ER 0x0420 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ES 0x0421 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_TE 0x0422 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_U 0x0423 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EF 0x0424 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_HA 0x0425 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_TSE 0x0426 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_CHE 0x0427 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SHA 0x0428 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SHCHA 0x0429 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_HARD_SIGN 0x042A #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_YERU 0x042B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SOFT_SIGN 0x042C #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_E 0x042D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_YU 0x042E #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_YA 0x042F #define T_UTF_32_CYRILLIC_SMALL_LETTER_A 0x0430 #define T_UTF_32_CYRILLIC_SMALL_LETTER_BE 0x0431 #define T_UTF_32_CYRILLIC_SMALL_LETTER_VE 0x0432 #define T_UTF_32_CYRILLIC_SMALL_LETTER_GHE 0x0433 #define T_UTF_32_CYRILLIC_SMALL_LETTER_DE 0x0434 #define T_UTF_32_CYRILLIC_SMALL_LETTER_IE 0x0435 #define T_UTF_32_CYRILLIC_SMALL_LETTER_ZHE 0x0436 #define T_UTF_32_CYRILLIC_SMALL_LETTER_ZE 0x0437 #define T_UTF_32_CYRILLIC_SMALL_LETTER_I 0x0438 #define T_UTF_32_CYRILLIC_SMALL_LETTER_SHORT_I 0x0439 #define T_UTF_32_CYRILLIC_SMALL_LETTER_KA 0x043A #define T_UTF_32_CYRILLIC_SMALL_LETTER_EL 0x043B #define T_UTF_32_CYRILLIC_SMALL_LETTER_EM 0x043C #define T_UTF_32_CYRILLIC_SMALL_LETTER_EN 0x043D #define T_UTF_32_CYRILLIC_SMALL_LETTER_O 0x043E #define T_UTF_32_CYRILLIC_SMALL_LETTER_PE 0x043F #define T_UTF_32_CYRILLIC_SMALL_LETTER_ER 0x0440 #define T_UTF_32_CYRILLIC_SMALL_LETTER_ES 0x0441 #define T_UTF_32_CYRILLIC_SMALL_LETTER_TE 0x0442 #define T_UTF_32_CYRILLIC_SMALL_LETTER_U 0x0443 #define T_UTF_32_CYRILLIC_SMALL_LETTER_EF 0x0444 #define T_UTF_32_CYRILLIC_SMALL_LETTER_HA 0x0445 #define T_UTF_32_CYRILLIC_SMALL_LETTER_TSE 0x0446 #define T_UTF_32_CYRILLIC_SMALL_LETTER_CHE 0x0447 #define T_UTF_32_CYRILLIC_SMALL_LETTER_SHA 0x0448 #define T_UTF_32_CYRILLIC_SMALL_LETTER_SHCHA 0x0449 #define T_UTF_32_CYRILLIC_SMALL_LETTER_HARD_SIGN 0x044A #define T_UTF_32_CYRILLIC_SMALL_LETTER_YERU 0x044B #define T_UTF_32_CYRILLIC_SMALL_LETTER_SOFT_SIGN 0x044C #define T_UTF_32_CYRILLIC_SMALL_LETTER_E 0x044D #define T_UTF_32_CYRILLIC_SMALL_LETTER_YU 0x044E #define T_UTF_32_CYRILLIC_SMALL_LETTER_YA 0x044F #define T_UTF_32_CYRILLIC_SMALL_LETTER_IE_WITH_GRAVE 0x0450 #define T_UTF_32_CYRILLIC_SMALL_LETTER_IO 0x0451 #define T_UTF_32_CYRILLIC_SMALL_LETTER_DJE 0x0452 #define T_UTF_32_CYRILLIC_SMALL_LETTER_GJE 0x0453 #define T_UTF_32_CYRILLIC_SMALL_LETTER_UKRAINIAN_IE 0x0454 #define T_UTF_32_CYRILLIC_SMALL_LETTER_DZE 0x0455 #define T_UTF_32_CYRILLIC_SMALL_LETTER_BYELORUSSIAN_UKRAINIAN_I 0x0456 #define T_UTF_32_CYRILLIC_SMALL_LETTER_YI 0x0457 #define T_UTF_32_CYRILLIC_SMALL_LETTER_JE 0x0458 #define T_UTF_32_CYRILLIC_SMALL_LETTER_LJE 0x0459 #define T_UTF_32_CYRILLIC_SMALL_LETTER_NJE 0x045A #define T_UTF_32_CYRILLIC_SMALL_LETTER_TSHE 0x045B #define T_UTF_32_CYRILLIC_SMALL_LETTER_KJE 0x045C #define T_UTF_32_CYRILLIC_SMALL_LETTER_I_WITH_GRAVE 0x045D #define T_UTF_32_CYRILLIC_SMALL_LETTER_SHORT_U 0x045E #define T_UTF_32_CYRILLIC_SMALL_LETTER_DZHE 0x045F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_OMEGA 0x0460 #define T_UTF_32_CYRILLIC_SMALL_LETTER_OMEGA 0x0461 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_YAT 0x0462 #define T_UTF_32_CYRILLIC_SMALL_LETTER_YAT 0x0463 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IOTIFIED_E 0x0464 #define T_UTF_32_CYRILLIC_SMALL_LETTER_IOTIFIED_E 0x0465 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_LITTLE_YUS 0x0466 #define T_UTF_32_CYRILLIC_SMALL_LETTER_LITTLE_YUS 0x0467 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IOTIFIED_LITTLE_YUS 0x0468 #define T_UTF_32_CYRILLIC_SMALL_LETTER_IOTIFIED_LITTLE_YUS 0x0469 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_BIG_YUS 0x046A #define T_UTF_32_CYRILLIC_SMALL_LETTER_BIG_YUS 0x046B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IOTIFIED_BIG_YUS 0x046C #define T_UTF_32_CYRILLIC_SMALL_LETTER_IOTIFIED_BIG_YUS 0x046D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KSI 0x046E #define T_UTF_32_CYRILLIC_SMALL_LETTER_KSI 0x046F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_PSI 0x0470 #define T_UTF_32_CYRILLIC_SMALL_LETTER_PSI 0x0471 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_FITA 0x0472 #define T_UTF_32_CYRILLIC_SMALL_LETTER_FITA 0x0473 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IZHITSA 0x0474 #define T_UTF_32_CYRILLIC_SMALL_LETTER_IZHITSA 0x0475 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IZHITSA_WITH_DOUBLE_GRAVE_ACCENT 0x0476 #define T_UTF_32_CYRILLIC_SMALL_LETTER_IZHITSA_WITH_DOUBLE_GRAVE_ACCENT 0x0477 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_UK 0x0478 #define T_UTF_32_CYRILLIC_SMALL_LETTER_UK 0x0479 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ROUND_OMEGA 0x047A #define T_UTF_32_CYRILLIC_SMALL_LETTER_ROUND_OMEGA 0x047B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_OMEGA_WITH_TITLO 0x047C #define T_UTF_32_CYRILLIC_SMALL_LETTER_OMEGA_WITH_TITLO 0x047D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_OT 0x047E #define T_UTF_32_CYRILLIC_SMALL_LETTER_OT 0x047F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KOPPA 0x0480 #define T_UTF_32_CYRILLIC_SMALL_LETTER_KOPPA 0x0481 #define T_UTF_32_CYRILLIC_THOUSANDS_SIGN 0x0482 #define T_UTF_32_COMBINING_CYRILLIC_TITLO 0x0483 #define T_UTF_32_COMBINING_CYRILLIC_PALATALIZATION 0x0484 #define T_UTF_32_COMBINING_CYRILLIC_DASIA_PNEUMATA 0x0485 #define T_UTF_32_COMBINING_CYRILLIC_PSILI_PNEUMATA 0x0486 #define T_UTF_32_COMBINING_CYRILLIC_POKRYTIE 0x0487 #define T_UTF_32_COMBINING_CYRILLIC_HUNDRED_THOUSANDS_SIGN 0x0488 #define T_UTF_32_COMBINING_CYRILLIC_MILLIONS_SIGN 0x0489 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SHORT_I_WITH_TAIL 0x048A #define T_UTF_32_CYRILLIC_SMALL_LETTER_SHORT_I_WITH_TAIL 0x048B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SEMISOFT_SIGN 0x048C #define T_UTF_32_CYRILLIC_SMALL_LETTER_SEMISOFT_SIGN 0x048D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ER_WITH_TICK 0x048E #define T_UTF_32_CYRILLIC_SMALL_LETTER_ER_WITH_TICK 0x048F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_GHE_WITH_UPTURN 0x0490 #define T_UTF_32_CYRILLIC_SMALL_LETTER_GHE_WITH_UPTURN 0x0491 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_GHE_WITH_STROKE 0x0492 #define T_UTF_32_CYRILLIC_SMALL_LETTER_GHE_WITH_STROKE 0x0493 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_GHE_WITH_MIDDLE_HOOK 0x0494 #define T_UTF_32_CYRILLIC_SMALL_LETTER_GHE_WITH_MIDDLE_HOOK 0x0495 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ZHE_WITH_DESCENDER 0x0496 #define T_UTF_32_CYRILLIC_SMALL_LETTER_ZHE_WITH_DESCENDER 0x0497 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ZE_WITH_DESCENDER 0x0498 #define T_UTF_32_CYRILLIC_SMALL_LETTER_ZE_WITH_DESCENDER 0x0499 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KA_WITH_DESCENDER 0x049A #define T_UTF_32_CYRILLIC_SMALL_LETTER_KA_WITH_DESCENDER 0x049B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KA_WITH_VERTICAL_STROKE 0x049C #define T_UTF_32_CYRILLIC_SMALL_LETTER_KA_WITH_VERTICAL_STROKE 0x049D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KA_WITH_STROKE 0x049E #define T_UTF_32_CYRILLIC_SMALL_LETTER_KA_WITH_STROKE 0x049F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_BASHKIR_KA 0x04A0 #define T_UTF_32_CYRILLIC_SMALL_LETTER_BASHKIR_KA 0x04A1 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EN_WITH_DESCENDER 0x04A2 #define T_UTF_32_CYRILLIC_SMALL_LETTER_EN_WITH_DESCENDER 0x04A3 #define T_UTF_32_CYRILLIC_CAPITAL_LIGATURE_EN_GHE 0x04A4 #define T_UTF_32_CYRILLIC_SMALL_LIGATURE_EN_GHE 0x04A5 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_PE_WITH_MIDDLE_HOOK 0x04A6 #define T_UTF_32_CYRILLIC_SMALL_LETTER_PE_WITH_MIDDLE_HOOK 0x04A7 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ABKHASIAN_HA 0x04A8 #define T_UTF_32_CYRILLIC_SMALL_LETTER_ABKHASIAN_HA 0x04A9 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ES_WITH_DESCENDER 0x04AA #define T_UTF_32_CYRILLIC_SMALL_LETTER_ES_WITH_DESCENDER 0x04AB #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_TE_WITH_DESCENDER 0x04AC #define T_UTF_32_CYRILLIC_SMALL_LETTER_TE_WITH_DESCENDER 0x04AD #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_STRAIGHT_U 0x04AE #define T_UTF_32_CYRILLIC_SMALL_LETTER_STRAIGHT_U 0x04AF #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_STRAIGHT_U_WITH_STROKE 0x04B0 #define T_UTF_32_CYRILLIC_SMALL_LETTER_STRAIGHT_U_WITH_STROKE 0x04B1 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_HA_WITH_DESCENDER 0x04B2 #define T_UTF_32_CYRILLIC_SMALL_LETTER_HA_WITH_DESCENDER 0x04B3 #define T_UTF_32_CYRILLIC_CAPITAL_LIGATURE_TE_TSE 0x04B4 #define T_UTF_32_CYRILLIC_SMALL_LIGATURE_TE_TSE 0x04B5 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_CHE_WITH_DESCENDER 0x04B6 #define T_UTF_32_CYRILLIC_SMALL_LETTER_CHE_WITH_DESCENDER 0x04B7 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_CHE_WITH_VERTICAL_STROKE 0x04B8 #define T_UTF_32_CYRILLIC_SMALL_LETTER_CHE_WITH_VERTICAL_STROKE 0x04B9 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SHHA 0x04BA #define T_UTF_32_CYRILLIC_SMALL_LETTER_SHHA 0x04BB #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ABKHASIAN_CHE 0x04BC #define T_UTF_32_CYRILLIC_SMALL_LETTER_ABKHASIAN_CHE 0x04BD #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ABKHASIAN_CHE_WITH_DESCENDER 0x04BE #define T_UTF_32_CYRILLIC_SMALL_LETTER_ABKHASIAN_CHE_WITH_DESCENDER 0x04BF #define T_UTF_32_CYRILLIC_LETTER_PALOCHKA 0x04C0 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ZHE_WITH_BREVE 0x04C1 #define T_UTF_32_CYRILLIC_SMALL_LETTER_ZHE_WITH_BREVE 0x04C2 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KA_WITH_HOOK 0x04C3 #define T_UTF_32_CYRILLIC_SMALL_LETTER_KA_WITH_HOOK 0x04C4 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EL_WITH_TAIL 0x04C5 #define T_UTF_32_CYRILLIC_SMALL_LETTER_EL_WITH_TAIL 0x04C6 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EN_WITH_HOOK 0x04C7 #define T_UTF_32_CYRILLIC_SMALL_LETTER_EN_WITH_HOOK 0x04C8 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EN_WITH_TAIL 0x04C9 #define T_UTF_32_CYRILLIC_SMALL_LETTER_EN_WITH_TAIL 0x04CA #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KHAKASSIAN_CHE 0x04CB #define T_UTF_32_CYRILLIC_SMALL_LETTER_KHAKASSIAN_CHE 0x04CC #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EM_WITH_TAIL 0x04CD #define T_UTF_32_CYRILLIC_SMALL_LETTER_EM_WITH_TAIL 0x04CE #define T_UTF_32_CYRILLIC_SMALL_LETTER_PALOCHKA 0x04CF #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_A_WITH_BREVE 0x04D0 #define T_UTF_32_CYRILLIC_SMALL_LETTER_A_WITH_BREVE 0x04D1 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_A_WITH_DIAERESIS 0x04D2 #define T_UTF_32_CYRILLIC_SMALL_LETTER_A_WITH_DIAERESIS 0x04D3 #define T_UTF_32_CYRILLIC_CAPITAL_LIGATURE_A_IE 0x04D4 #define T_UTF_32_CYRILLIC_SMALL_LIGATURE_A_IE 0x04D5 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IE_WITH_BREVE 0x04D6 #define T_UTF_32_CYRILLIC_SMALL_LETTER_IE_WITH_BREVE 0x04D7 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SCHWA 0x04D8 #define T_UTF_32_CYRILLIC_SMALL_LETTER_SCHWA 0x04D9 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SCHWA_WITH_DIAERESIS 0x04DA #define T_UTF_32_CYRILLIC_SMALL_LETTER_SCHWA_WITH_DIAERESIS 0x04DB #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ZHE_WITH_DIAERESIS 0x04DC #define T_UTF_32_CYRILLIC_SMALL_LETTER_ZHE_WITH_DIAERESIS 0x04DD #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ZE_WITH_DIAERESIS 0x04DE #define T_UTF_32_CYRILLIC_SMALL_LETTER_ZE_WITH_DIAERESIS 0x04DF #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ABKHASIAN_DZE 0x04E0 #define T_UTF_32_CYRILLIC_SMALL_LETTER_ABKHASIAN_DZE 0x04E1 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_I_WITH_MACRON 0x04E2 #define T_UTF_32_CYRILLIC_SMALL_LETTER_I_WITH_MACRON 0x04E3 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_I_WITH_DIAERESIS 0x04E4 #define T_UTF_32_CYRILLIC_SMALL_LETTER_I_WITH_DIAERESIS 0x04E5 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_O_WITH_DIAERESIS 0x04E6 #define T_UTF_32_CYRILLIC_SMALL_LETTER_O_WITH_DIAERESIS 0x04E7 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_BARRED_O 0x04E8 #define T_UTF_32_CYRILLIC_SMALL_LETTER_BARRED_O 0x04E9 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_BARRED_O_WITH_DIAERESIS 0x04EA #define T_UTF_32_CYRILLIC_SMALL_LETTER_BARRED_O_WITH_DIAERESIS 0x04EB #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_E_WITH_DIAERESIS 0x04EC #define T_UTF_32_CYRILLIC_SMALL_LETTER_E_WITH_DIAERESIS 0x04ED #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_U_WITH_MACRON 0x04EE #define T_UTF_32_CYRILLIC_SMALL_LETTER_U_WITH_MACRON 0x04EF #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_U_WITH_DIAERESIS 0x04F0 #define T_UTF_32_CYRILLIC_SMALL_LETTER_U_WITH_DIAERESIS 0x04F1 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_U_WITH_DOUBLE_ACUTE 0x04F2 #define T_UTF_32_CYRILLIC_SMALL_LETTER_U_WITH_DOUBLE_ACUTE 0x04F3 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_CHE_WITH_DIAERESIS 0x04F4 #define T_UTF_32_CYRILLIC_SMALL_LETTER_CHE_WITH_DIAERESIS 0x04F5 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_GHE_WITH_DESCENDER 0x04F6 #define T_UTF_32_CYRILLIC_SMALL_LETTER_GHE_WITH_DESCENDER 0x04F7 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_YERU_WITH_DIAERESIS 0x04F8 #define T_UTF_32_CYRILLIC_SMALL_LETTER_YERU_WITH_DIAERESIS 0x04F9 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_GHE_WITH_STROKE_AND_HOOK 0x04FA #define T_UTF_32_CYRILLIC_SMALL_LETTER_GHE_WITH_STROKE_AND_HOOK 0x04FB #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_HA_WITH_HOOK 0x04FC #define T_UTF_32_CYRILLIC_SMALL_LETTER_HA_WITH_HOOK 0x04FD #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_HA_WITH_STROKE 0x04FE #define T_UTF_32_CYRILLIC_SMALL_LETTER_HA_WITH_STROKE 0x04FF #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KOMI_DE 0x0500 #define T_UTF_32_CYRILLIC_SMALL_LETTER_KOMI_DE 0x0501 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KOMI_DJE 0x0502 #define T_UTF_32_CYRILLIC_SMALL_LETTER_KOMI_DJE 0x0503 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KOMI_ZJE 0x0504 #define T_UTF_32_CYRILLIC_SMALL_LETTER_KOMI_ZJE 0x0505 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KOMI_DZJE 0x0506 #define T_UTF_32_CYRILLIC_SMALL_LETTER_KOMI_DZJE 0x0507 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KOMI_LJE 0x0508 #define T_UTF_32_CYRILLIC_SMALL_LETTER_KOMI_LJE 0x0509 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KOMI_NJE 0x050A #define T_UTF_32_CYRILLIC_SMALL_LETTER_KOMI_NJE 0x050B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KOMI_SJE 0x050C #define T_UTF_32_CYRILLIC_SMALL_LETTER_KOMI_SJE 0x050D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_KOMI_TJE 0x050E #define T_UTF_32_CYRILLIC_SMALL_LETTER_KOMI_TJE 0x050F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_REVERSED_ZE 0x0510 #define T_UTF_32_CYRILLIC_SMALL_LETTER_REVERSED_ZE 0x0511 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EL_WITH_HOOK 0x0512 #define T_UTF_32_CYRILLIC_SMALL_LETTER_EL_WITH_HOOK 0x0513 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_LHA 0x0514 #define T_UTF_32_CYRILLIC_SMALL_LETTER_LHA 0x0515 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_RHA 0x0516 #define T_UTF_32_CYRILLIC_SMALL_LETTER_RHA 0x0517 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_YAE 0x0518 #define T_UTF_32_CYRILLIC_SMALL_LETTER_YAE 0x0519 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_QA 0x051A #define T_UTF_32_CYRILLIC_SMALL_LETTER_QA 0x051B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_WE 0x051C #define T_UTF_32_CYRILLIC_SMALL_LETTER_WE 0x051D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ALEUT_KA 0x051E #define T_UTF_32_CYRILLIC_SMALL_LETTER_ALEUT_KA 0x051F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EL_WITH_MIDDLE_HOOK 0x0520 #define T_UTF_32_CYRILLIC_SMALL_LETTER_EL_WITH_MIDDLE_HOOK 0x0521 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EN_WITH_MIDDLE_HOOK 0x0522 #define T_UTF_32_CYRILLIC_SMALL_LETTER_EN_WITH_MIDDLE_HOOK 0x0523 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_PE_WITH_DESCENDER 0x0524 #define T_UTF_32_CYRILLIC_SMALL_LETTER_PE_WITH_DESCENDER 0x0525 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SHHA_WITH_DESCENDER 0x0526 #define T_UTF_32_CYRILLIC_SMALL_LETTER_SHHA_WITH_DESCENDER 0x0527 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EN_WITH_LEFT_HOOK 0x0528 #define T_UTF_32_CYRILLIC_SMALL_LETTER_EN_WITH_LEFT_HOOK 0x0529 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DZZHE 0x052A #define T_UTF_32_CYRILLIC_SMALL_LETTER_DZZHE 0x052B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DCHE 0x052C #define T_UTF_32_CYRILLIC_SMALL_LETTER_DCHE 0x052D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_EL_WITH_DESCENDER 0x052E #define T_UTF_32_CYRILLIC_SMALL_LETTER_EL_WITH_DESCENDER 0x052F #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_AYB 0x0531 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_BEN 0x0532 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_GIM 0x0533 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_DA 0x0534 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_ECH 0x0535 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_ZA 0x0536 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_EH 0x0537 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_ET 0x0538 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_TO 0x0539 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_ZHE 0x053A #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_INI 0x053B #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_LIWN 0x053C #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_XEH 0x053D #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_CA 0x053E #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_KEN 0x053F #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_HO 0x0540 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_JA 0x0541 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_GHAD 0x0542 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_CHEH 0x0543 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_MEN 0x0544 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_YI 0x0545 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_NOW 0x0546 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_SHA 0x0547 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_VO 0x0548 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_CHA 0x0549 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_PEH 0x054A #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_JHEH 0x054B #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_RA 0x054C #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_SEH 0x054D #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_VEW 0x054E #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_TIWN 0x054F #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_REH 0x0550 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_CO 0x0551 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_YIWN 0x0552 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_PIWR 0x0553 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_KEH 0x0554 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_OH 0x0555 #define T_UTF_32_ARMENIAN_CAPITAL_LETTER_FEH 0x0556 #define T_UTF_32_ARMENIAN_MODIFIER_LETTER_LEFT_HALF_RING 0x0559 #define T_UTF_32_ARMENIAN_APOSTROPHE 0x055A #define T_UTF_32_ARMENIAN_EMPHASIS_MARK 0x055B #define T_UTF_32_ARMENIAN_EXCLAMATION_MARK 0x055C #define T_UTF_32_ARMENIAN_COMMA 0x055D #define T_UTF_32_ARMENIAN_QUESTION_MARK 0x055E #define T_UTF_32_ARMENIAN_ABBREVIATION_MARK 0x055F #define T_UTF_32_ARMENIAN_SMALL_LETTER_AYB 0x0561 #define T_UTF_32_ARMENIAN_SMALL_LETTER_BEN 0x0562 #define T_UTF_32_ARMENIAN_SMALL_LETTER_GIM 0x0563 #define T_UTF_32_ARMENIAN_SMALL_LETTER_DA 0x0564 #define T_UTF_32_ARMENIAN_SMALL_LETTER_ECH 0x0565 #define T_UTF_32_ARMENIAN_SMALL_LETTER_ZA 0x0566 #define T_UTF_32_ARMENIAN_SMALL_LETTER_EH 0x0567 #define T_UTF_32_ARMENIAN_SMALL_LETTER_ET 0x0568 #define T_UTF_32_ARMENIAN_SMALL_LETTER_TO 0x0569 #define T_UTF_32_ARMENIAN_SMALL_LETTER_ZHE 0x056A #define T_UTF_32_ARMENIAN_SMALL_LETTER_INI 0x056B #define T_UTF_32_ARMENIAN_SMALL_LETTER_LIWN 0x056C #define T_UTF_32_ARMENIAN_SMALL_LETTER_XEH 0x056D #define T_UTF_32_ARMENIAN_SMALL_LETTER_CA 0x056E #define T_UTF_32_ARMENIAN_SMALL_LETTER_KEN 0x056F #define T_UTF_32_ARMENIAN_SMALL_LETTER_HO 0x0570 #define T_UTF_32_ARMENIAN_SMALL_LETTER_JA 0x0571 #define T_UTF_32_ARMENIAN_SMALL_LETTER_GHAD 0x0572 #define T_UTF_32_ARMENIAN_SMALL_LETTER_CHEH 0x0573 #define T_UTF_32_ARMENIAN_SMALL_LETTER_MEN 0x0574 #define T_UTF_32_ARMENIAN_SMALL_LETTER_YI 0x0575 #define T_UTF_32_ARMENIAN_SMALL_LETTER_NOW 0x0576 #define T_UTF_32_ARMENIAN_SMALL_LETTER_SHA 0x0577 #define T_UTF_32_ARMENIAN_SMALL_LETTER_VO 0x0578 #define T_UTF_32_ARMENIAN_SMALL_LETTER_CHA 0x0579 #define T_UTF_32_ARMENIAN_SMALL_LETTER_PEH 0x057A #define T_UTF_32_ARMENIAN_SMALL_LETTER_JHEH 0x057B #define T_UTF_32_ARMENIAN_SMALL_LETTER_RA 0x057C #define T_UTF_32_ARMENIAN_SMALL_LETTER_SEH 0x057D #define T_UTF_32_ARMENIAN_SMALL_LETTER_VEW 0x057E #define T_UTF_32_ARMENIAN_SMALL_LETTER_TIWN 0x057F #define T_UTF_32_ARMENIAN_SMALL_LETTER_REH 0x0580 #define T_UTF_32_ARMENIAN_SMALL_LETTER_CO 0x0581 #define T_UTF_32_ARMENIAN_SMALL_LETTER_YIWN 0x0582 #define T_UTF_32_ARMENIAN_SMALL_LETTER_PIWR 0x0583 #define T_UTF_32_ARMENIAN_SMALL_LETTER_KEH 0x0584 #define T_UTF_32_ARMENIAN_SMALL_LETTER_OH 0x0585 #define T_UTF_32_ARMENIAN_SMALL_LETTER_FEH 0x0586 #define T_UTF_32_ARMENIAN_SMALL_LIGATURE_ECH_YIWN 0x0587 #define T_UTF_32_ARMENIAN_FULL_STOP 0x0589 #define T_UTF_32_ARMENIAN_HYPHEN 0x058A #define T_UTF_32_RIGHT_FACING_ARMENIAN_ETERNITY_SIGN 0x058D #define T_UTF_32_LEFT_FACING_ARMENIAN_ETERNITY_SIGN 0x058E #define T_UTF_32_ARMENIAN_DRAM_SIGN 0x058F #define T_UTF_32_HEBREW_ACCENT_ETNAHTA 0x0591 #define T_UTF_32_HEBREW_ACCENT_SEGOL 0x0592 #define T_UTF_32_HEBREW_ACCENT_SHALSHELET 0x0593 #define T_UTF_32_HEBREW_ACCENT_ZAQEF_QATAN 0x0594 #define T_UTF_32_HEBREW_ACCENT_ZAQEF_GADOL 0x0595 #define T_UTF_32_HEBREW_ACCENT_TIPEHA 0x0596 #define T_UTF_32_HEBREW_ACCENT_REVIA 0x0597 #define T_UTF_32_HEBREW_ACCENT_ZARQA 0x0598 #define T_UTF_32_HEBREW_ACCENT_PASHTA 0x0599 #define T_UTF_32_HEBREW_ACCENT_YETIV 0x059A #define T_UTF_32_HEBREW_ACCENT_TEVIR 0x059B #define T_UTF_32_HEBREW_ACCENT_GERESH 0x059C #define T_UTF_32_HEBREW_ACCENT_GERESH_MUQDAM 0x059D #define T_UTF_32_HEBREW_ACCENT_GERSHAYIM 0x059E #define T_UTF_32_HEBREW_ACCENT_QARNEY_PARA 0x059F #define T_UTF_32_HEBREW_ACCENT_TELISHA_GEDOLA 0x05A0 #define T_UTF_32_HEBREW_ACCENT_PAZER 0x05A1 #define T_UTF_32_HEBREW_ACCENT_ATNAH_HAFUKH 0x05A2 #define T_UTF_32_HEBREW_ACCENT_MUNAH 0x05A3 #define T_UTF_32_HEBREW_ACCENT_MAHAPAKH 0x05A4 #define T_UTF_32_HEBREW_ACCENT_MERKHA 0x05A5 #define T_UTF_32_HEBREW_ACCENT_MERKHA_KEFULA 0x05A6 #define T_UTF_32_HEBREW_ACCENT_DARGA 0x05A7 #define T_UTF_32_HEBREW_ACCENT_QADMA 0x05A8 #define T_UTF_32_HEBREW_ACCENT_TELISHA_QETANA 0x05A9 #define T_UTF_32_HEBREW_ACCENT_YERAH_BEN_YOMO 0x05AA #define T_UTF_32_HEBREW_ACCENT_OLE 0x05AB #define T_UTF_32_HEBREW_ACCENT_ILUY 0x05AC #define T_UTF_32_HEBREW_ACCENT_DEHI 0x05AD #define T_UTF_32_HEBREW_ACCENT_ZINOR 0x05AE #define T_UTF_32_HEBREW_MARK_MASORA_CIRCLE 0x05AF #define T_UTF_32_HEBREW_POINT_SHEVA 0x05B0 #define T_UTF_32_HEBREW_POINT_HATAF_SEGOL 0x05B1 #define T_UTF_32_HEBREW_POINT_HATAF_PATAH 0x05B2 #define T_UTF_32_HEBREW_POINT_HATAF_QAMATS 0x05B3 #define T_UTF_32_HEBREW_POINT_HIRIQ 0x05B4 #define T_UTF_32_HEBREW_POINT_TSERE 0x05B5 #define T_UTF_32_HEBREW_POINT_SEGOL 0x05B6 #define T_UTF_32_HEBREW_POINT_PATAH 0x05B7 #define T_UTF_32_HEBREW_POINT_QAMATS 0x05B8 #define T_UTF_32_HEBREW_POINT_HOLAM 0x05B9 #define T_UTF_32_HEBREW_POINT_HOLAM_HASER_FOR_VAV 0x05BA #define T_UTF_32_HEBREW_POINT_QUBUTS 0x05BB #define T_UTF_32_HEBREW_POINT_DAGESH_OR_MAPIQ 0x05BC #define T_UTF_32_HEBREW_POINT_METEG 0x05BD #define T_UTF_32_HEBREW_PUNCTUATION_MAQAF 0x05BE #define T_UTF_32_HEBREW_POINT_RAFE 0x05BF #define T_UTF_32_HEBREW_PUNCTUATION_PASEQ 0x05C0 #define T_UTF_32_HEBREW_POINT_SHIN_DOT 0x05C1 #define T_UTF_32_HEBREW_POINT_SIN_DOT 0x05C2 #define T_UTF_32_HEBREW_PUNCTUATION_SOF_PASUQ 0x05C3 #define T_UTF_32_HEBREW_MARK_UPPER_DOT 0x05C4 #define T_UTF_32_HEBREW_MARK_LOWER_DOT 0x05C5 #define T_UTF_32_HEBREW_PUNCTUATION_NUN_HAFUKHA 0x05C6 #define T_UTF_32_HEBREW_POINT_QAMATS_QATAN 0x05C7 #define T_UTF_32_HEBREW_LETTER_ALEF 0x05D0 #define T_UTF_32_HEBREW_LETTER_BET 0x05D1 #define T_UTF_32_HEBREW_LETTER_GIMEL 0x05D2 #define T_UTF_32_HEBREW_LETTER_DALET 0x05D3 #define T_UTF_32_HEBREW_LETTER_HE 0x05D4 #define T_UTF_32_HEBREW_LETTER_VAV 0x05D5 #define T_UTF_32_HEBREW_LETTER_ZAYIN 0x05D6 #define T_UTF_32_HEBREW_LETTER_HET 0x05D7 #define T_UTF_32_HEBREW_LETTER_TET 0x05D8 #define T_UTF_32_HEBREW_LETTER_YOD 0x05D9 #define T_UTF_32_HEBREW_LETTER_FINAL_KAF 0x05DA #define T_UTF_32_HEBREW_LETTER_KAF 0x05DB #define T_UTF_32_HEBREW_LETTER_LAMED 0x05DC #define T_UTF_32_HEBREW_LETTER_FINAL_MEM 0x05DD #define T_UTF_32_HEBREW_LETTER_MEM 0x05DE #define T_UTF_32_HEBREW_LETTER_FINAL_NUN 0x05DF #define T_UTF_32_HEBREW_LETTER_NUN 0x05E0 #define T_UTF_32_HEBREW_LETTER_SAMEKH 0x05E1 #define T_UTF_32_HEBREW_LETTER_AYIN 0x05E2 #define T_UTF_32_HEBREW_LETTER_FINAL_PE 0x05E3 #define T_UTF_32_HEBREW_LETTER_PE 0x05E4 #define T_UTF_32_HEBREW_LETTER_FINAL_TSADI 0x05E5 #define T_UTF_32_HEBREW_LETTER_TSADI 0x05E6 #define T_UTF_32_HEBREW_LETTER_QOF 0x05E7 #define T_UTF_32_HEBREW_LETTER_RESH 0x05E8 #define T_UTF_32_HEBREW_LETTER_SHIN 0x05E9 #define T_UTF_32_HEBREW_LETTER_TAV 0x05EA #define T_UTF_32_HEBREW_LIGATURE_YIDDISH_DOUBLE_VAV 0x05F0 #define T_UTF_32_HEBREW_LIGATURE_YIDDISH_VAV_YOD 0x05F1 #define T_UTF_32_HEBREW_LIGATURE_YIDDISH_DOUBLE_YOD 0x05F2 #define T_UTF_32_HEBREW_PUNCTUATION_GERESH 0x05F3 #define T_UTF_32_HEBREW_PUNCTUATION_GERSHAYIM 0x05F4 #define T_UTF_32_ARABIC_NUMBER_SIGN 0x0600 #define T_UTF_32_ARABIC_SIGN_SANAH 0x0601 #define T_UTF_32_ARABIC_FOOTNOTE_MARKER 0x0602 #define T_UTF_32_ARABIC_SIGN_SAFHA 0x0603 #define T_UTF_32_ARABIC_SIGN_SAMVAT 0x0604 #define T_UTF_32_ARABIC_NUMBER_MARK_ABOVE 0x0605 #define T_UTF_32_ARABIC_INDIC_CUBE_ROOT 0x0606 #define T_UTF_32_ARABIC_INDIC_FOURTH_ROOT 0x0607 #define T_UTF_32_ARABIC_RAY 0x0608 #define T_UTF_32_ARABIC_INDIC_PER_MILLE_SIGN 0x0609 #define T_UTF_32_ARABIC_INDIC_PER_TEN_THOUSAND_SIGN 0x060A #define T_UTF_32_AFGHANI_SIGN 0x060B #define T_UTF_32_ARABIC_COMMA 0x060C #define T_UTF_32_ARABIC_DATE_SEPARATOR 0x060D #define T_UTF_32_ARABIC_POETIC_VERSE_SIGN 0x060E #define T_UTF_32_ARABIC_SIGN_MISRA 0x060F #define T_UTF_32_ARABIC_SIGN_SALLALLAHOU_ALAYHE_WASSALLAM 0x0610 #define T_UTF_32_ARABIC_SIGN_ALAYHE_ASSALLAM 0x0611 #define T_UTF_32_ARABIC_SIGN_RAHMATULLAH_ALAYHE 0x0612 #define T_UTF_32_ARABIC_SIGN_RADI_ALLAHOU_ANHU 0x0613 #define T_UTF_32_ARABIC_SIGN_TAKHALLUS 0x0614 #define T_UTF_32_ARABIC_SMALL_HIGH_TAH 0x0615 #define T_UTF_32_ARABIC_SMALL_HIGH_LIGATURE_ALEF_WITH_LAM_WITH_YEH 0x0616 #define T_UTF_32_ARABIC_SMALL_HIGH_ZAIN 0x0617 #define T_UTF_32_ARABIC_SMALL_FATHA 0x0618 #define T_UTF_32_ARABIC_SMALL_DAMMA 0x0619 #define T_UTF_32_ARABIC_SMALL_KASRA 0x061A #define T_UTF_32_ARABIC_SEMICOLON 0x061B #define T_UTF_32_ARABIC_LETTER_MARK 0x061C #define T_UTF_32_ARABIC_TRIPLE_DOT_PUNCTUATION_MARK 0x061E #define T_UTF_32_ARABIC_QUESTION_MARK 0x061F #define T_UTF_32_ARABIC_LETTER_KASHMIRI_YEH 0x0620 #define T_UTF_32_ARABIC_LETTER_HAMZA 0x0621 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE 0x0622 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE 0x0623 #define T_UTF_32_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE 0x0624 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW 0x0625 #define T_UTF_32_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE 0x0626 #define T_UTF_32_ARABIC_LETTER_ALEF 0x0627 #define T_UTF_32_ARABIC_LETTER_BEH 0x0628 #define T_UTF_32_ARABIC_LETTER_TEH_MARBUTA 0x0629 #define T_UTF_32_ARABIC_LETTER_TEH 0x062A #define T_UTF_32_ARABIC_LETTER_THEH 0x062B #define T_UTF_32_ARABIC_LETTER_JEEM 0x062C #define T_UTF_32_ARABIC_LETTER_HAH 0x062D #define T_UTF_32_ARABIC_LETTER_KHAH 0x062E #define T_UTF_32_ARABIC_LETTER_DAL 0x062F #define T_UTF_32_ARABIC_LETTER_THAL 0x0630 #define T_UTF_32_ARABIC_LETTER_REH 0x0631 #define T_UTF_32_ARABIC_LETTER_ZAIN 0x0632 #define T_UTF_32_ARABIC_LETTER_SEEN 0x0633 #define T_UTF_32_ARABIC_LETTER_SHEEN 0x0634 #define T_UTF_32_ARABIC_LETTER_SAD 0x0635 #define T_UTF_32_ARABIC_LETTER_DAD 0x0636 #define T_UTF_32_ARABIC_LETTER_TAH 0x0637 #define T_UTF_32_ARABIC_LETTER_ZAH 0x0638 #define T_UTF_32_ARABIC_LETTER_AIN 0x0639 #define T_UTF_32_ARABIC_LETTER_GHAIN 0x063A #define T_UTF_32_ARABIC_LETTER_KEHEH_WITH_TWO_DOTS_ABOVE 0x063B #define T_UTF_32_ARABIC_LETTER_KEHEH_WITH_THREE_DOTS_BELOW 0x063C #define T_UTF_32_ARABIC_LETTER_FARSI_YEH_WITH_INVERTED_V 0x063D #define T_UTF_32_ARABIC_LETTER_FARSI_YEH_WITH_TWO_DOTS_ABOVE 0x063E #define T_UTF_32_ARABIC_LETTER_FARSI_YEH_WITH_THREE_DOTS_ABOVE 0x063F #define T_UTF_32_ARABIC_TATWEEL 0x0640 #define T_UTF_32_ARABIC_LETTER_FEH 0x0641 #define T_UTF_32_ARABIC_LETTER_QAF 0x0642 #define T_UTF_32_ARABIC_LETTER_KAF 0x0643 #define T_UTF_32_ARABIC_LETTER_LAM 0x0644 #define T_UTF_32_ARABIC_LETTER_MEEM 0x0645 #define T_UTF_32_ARABIC_LETTER_NOON 0x0646 #define T_UTF_32_ARABIC_LETTER_HEH 0x0647 #define T_UTF_32_ARABIC_LETTER_WAW 0x0648 #define T_UTF_32_ARABIC_LETTER_ALEF_MAKSURA 0x0649 #define T_UTF_32_ARABIC_LETTER_YEH 0x064A #define T_UTF_32_ARABIC_FATHATAN 0x064B #define T_UTF_32_ARABIC_DAMMATAN 0x064C #define T_UTF_32_ARABIC_KASRATAN 0x064D #define T_UTF_32_ARABIC_FATHA 0x064E #define T_UTF_32_ARABIC_DAMMA 0x064F #define T_UTF_32_ARABIC_KASRA 0x0650 #define T_UTF_32_ARABIC_SHADDA 0x0651 #define T_UTF_32_ARABIC_SUKUN 0x0652 #define T_UTF_32_ARABIC_MADDAH_ABOVE 0x0653 #define T_UTF_32_ARABIC_HAMZA_ABOVE 0x0654 #define T_UTF_32_ARABIC_HAMZA_BELOW 0x0655 #define T_UTF_32_ARABIC_SUBSCRIPT_ALEF 0x0656 #define T_UTF_32_ARABIC_INVERTED_DAMMA 0x0657 #define T_UTF_32_ARABIC_MARK_NOON_GHUNNA 0x0658 #define T_UTF_32_ARABIC_ZWARAKAY 0x0659 #define T_UTF_32_ARABIC_VOWEL_SIGN_SMALL_V_ABOVE 0x065A #define T_UTF_32_ARABIC_VOWEL_SIGN_INVERTED_SMALL_V_ABOVE 0x065B #define T_UTF_32_ARABIC_VOWEL_SIGN_DOT_BELOW 0x065C #define T_UTF_32_ARABIC_REVERSED_DAMMA 0x065D #define T_UTF_32_ARABIC_FATHA_WITH_TWO_DOTS 0x065E #define T_UTF_32_ARABIC_WAVY_HAMZA_BELOW 0x065F #define T_UTF_32_ARABIC_INDIC_DIGIT_ZERO 0x0660 #define T_UTF_32_ARABIC_INDIC_DIGIT_ONE 0x0661 #define T_UTF_32_ARABIC_INDIC_DIGIT_TWO 0x0662 #define T_UTF_32_ARABIC_INDIC_DIGIT_THREE 0x0663 #define T_UTF_32_ARABIC_INDIC_DIGIT_FOUR 0x0664 #define T_UTF_32_ARABIC_INDIC_DIGIT_FIVE 0x0665 #define T_UTF_32_ARABIC_INDIC_DIGIT_SIX 0x0666 #define T_UTF_32_ARABIC_INDIC_DIGIT_SEVEN 0x0667 #define T_UTF_32_ARABIC_INDIC_DIGIT_EIGHT 0x0668 #define T_UTF_32_ARABIC_INDIC_DIGIT_NINE 0x0669 #define T_UTF_32_ARABIC_PERCENT_SIGN 0x066A #define T_UTF_32_ARABIC_DECIMAL_SEPARATOR 0x066B #define T_UTF_32_ARABIC_THOUSANDS_SEPARATOR 0x066C #define T_UTF_32_ARABIC_FIVE_POINTED_STAR 0x066D #define T_UTF_32_ARABIC_LETTER_DOTLESS_BEH 0x066E #define T_UTF_32_ARABIC_LETTER_DOTLESS_QAF 0x066F #define T_UTF_32_ARABIC_LETTER_SUPERSCRIPT_ALEF 0x0670 #define T_UTF_32_ARABIC_LETTER_ALEF_WASLA 0x0671 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_WAVY_HAMZA_ABOVE 0x0672 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_WAVY_HAMZA_BELOW 0x0673 #define T_UTF_32_ARABIC_LETTER_HIGH_HAMZA 0x0674 #define T_UTF_32_ARABIC_LETTER_HIGH_HAMZA_ALEF 0x0675 #define T_UTF_32_ARABIC_LETTER_HIGH_HAMZA_WAW 0x0676 #define T_UTF_32_ARABIC_LETTER_U_WITH_HAMZA_ABOVE 0x0677 #define T_UTF_32_ARABIC_LETTER_HIGH_HAMZA_YEH 0x0678 #define T_UTF_32_ARABIC_LETTER_TTEH 0x0679 #define T_UTF_32_ARABIC_LETTER_TTEHEH 0x067A #define T_UTF_32_ARABIC_LETTER_BEEH 0x067B #define T_UTF_32_ARABIC_LETTER_TEH_WITH_RING 0x067C #define T_UTF_32_ARABIC_LETTER_TEH_WITH_THREE_DOTS_ABOVE_DOWNWARDS 0x067D #define T_UTF_32_ARABIC_LETTER_PEH 0x067E #define T_UTF_32_ARABIC_LETTER_TEHEH 0x067F #define T_UTF_32_ARABIC_LETTER_BEHEH 0x0680 #define T_UTF_32_ARABIC_LETTER_HAH_WITH_HAMZA_ABOVE 0x0681 #define T_UTF_32_ARABIC_LETTER_HAH_WITH_TWO_DOTS_VERTICAL_ABOVE 0x0682 #define T_UTF_32_ARABIC_LETTER_NYEH 0x0683 #define T_UTF_32_ARABIC_LETTER_DYEH 0x0684 #define T_UTF_32_ARABIC_LETTER_HAH_WITH_THREE_DOTS_ABOVE 0x0685 #define T_UTF_32_ARABIC_LETTER_TCHEH 0x0686 #define T_UTF_32_ARABIC_LETTER_TCHEHEH 0x0687 #define T_UTF_32_ARABIC_LETTER_DDAL 0x0688 #define T_UTF_32_ARABIC_LETTER_DAL_WITH_RING 0x0689 #define T_UTF_32_ARABIC_LETTER_DAL_WITH_DOT_BELOW 0x068A #define T_UTF_32_ARABIC_LETTER_DAL_WITH_DOT_BELOW_AND_SMALL_TAH 0x068B #define T_UTF_32_ARABIC_LETTER_DAHAL 0x068C #define T_UTF_32_ARABIC_LETTER_DDAHAL 0x068D #define T_UTF_32_ARABIC_LETTER_DUL 0x068E #define T_UTF_32_ARABIC_LETTER_DAL_WITH_THREE_DOTS_ABOVE_DOWNWARDS 0x068F #define T_UTF_32_ARABIC_LETTER_DAL_WITH_FOUR_DOTS_ABOVE 0x0690 #define T_UTF_32_ARABIC_LETTER_RREH 0x0691 #define T_UTF_32_ARABIC_LETTER_REH_WITH_SMALL_V 0x0692 #define T_UTF_32_ARABIC_LETTER_REH_WITH_RING 0x0693 #define T_UTF_32_ARABIC_LETTER_REH_WITH_DOT_BELOW 0x0694 #define T_UTF_32_ARABIC_LETTER_REH_WITH_SMALL_V_BELOW 0x0695 #define T_UTF_32_ARABIC_LETTER_REH_WITH_DOT_BELOW_AND_DOT_ABOVE 0x0696 #define T_UTF_32_ARABIC_LETTER_REH_WITH_TWO_DOTS_ABOVE 0x0697 #define T_UTF_32_ARABIC_LETTER_JEH 0x0698 #define T_UTF_32_ARABIC_LETTER_REH_WITH_FOUR_DOTS_ABOVE 0x0699 #define T_UTF_32_ARABIC_LETTER_SEEN_WITH_DOT_BELOW_AND_DOT_ABOVE 0x069A #define T_UTF_32_ARABIC_LETTER_SEEN_WITH_THREE_DOTS_BELOW 0x069B #define T_UTF_32_ARABIC_LETTER_SEEN_WITH_THREE_DOTS_BELOW_AND_THREE_DOTS_ABOVE 0x069C #define T_UTF_32_ARABIC_LETTER_SAD_WITH_TWO_DOTS_BELOW 0x069D #define T_UTF_32_ARABIC_LETTER_SAD_WITH_THREE_DOTS_ABOVE 0x069E #define T_UTF_32_ARABIC_LETTER_TAH_WITH_THREE_DOTS_ABOVE 0x069F #define T_UTF_32_ARABIC_LETTER_AIN_WITH_THREE_DOTS_ABOVE 0x06A0 #define T_UTF_32_ARABIC_LETTER_DOTLESS_FEH 0x06A1 #define T_UTF_32_ARABIC_LETTER_FEH_WITH_DOT_MOVED_BELOW 0x06A2 #define T_UTF_32_ARABIC_LETTER_FEH_WITH_DOT_BELOW 0x06A3 #define T_UTF_32_ARABIC_LETTER_VEH 0x06A4 #define T_UTF_32_ARABIC_LETTER_FEH_WITH_THREE_DOTS_BELOW 0x06A5 #define T_UTF_32_ARABIC_LETTER_PEHEH 0x06A6 #define T_UTF_32_ARABIC_LETTER_QAF_WITH_DOT_ABOVE 0x06A7 #define T_UTF_32_ARABIC_LETTER_QAF_WITH_THREE_DOTS_ABOVE 0x06A8 #define T_UTF_32_ARABIC_LETTER_KEHEH 0x06A9 #define T_UTF_32_ARABIC_LETTER_SWASH_KAF 0x06AA #define T_UTF_32_ARABIC_LETTER_KAF_WITH_RING 0x06AB #define T_UTF_32_ARABIC_LETTER_KAF_WITH_DOT_ABOVE 0x06AC #define T_UTF_32_ARABIC_LETTER_NG 0x06AD #define T_UTF_32_ARABIC_LETTER_KAF_WITH_THREE_DOTS_BELOW 0x06AE #define T_UTF_32_ARABIC_LETTER_GAF 0x06AF #define T_UTF_32_ARABIC_LETTER_GAF_WITH_RING 0x06B0 #define T_UTF_32_ARABIC_LETTER_NGOEH 0x06B1 #define T_UTF_32_ARABIC_LETTER_GAF_WITH_TWO_DOTS_BELOW 0x06B2 #define T_UTF_32_ARABIC_LETTER_GUEH 0x06B3 #define T_UTF_32_ARABIC_LETTER_GAF_WITH_THREE_DOTS_ABOVE 0x06B4 #define T_UTF_32_ARABIC_LETTER_LAM_WITH_SMALL_V 0x06B5 #define T_UTF_32_ARABIC_LETTER_LAM_WITH_DOT_ABOVE 0x06B6 #define T_UTF_32_ARABIC_LETTER_LAM_WITH_THREE_DOTS_ABOVE 0x06B7 #define T_UTF_32_ARABIC_LETTER_LAM_WITH_THREE_DOTS_BELOW 0x06B8 #define T_UTF_32_ARABIC_LETTER_NOON_WITH_DOT_BELOW 0x06B9 #define T_UTF_32_ARABIC_LETTER_NOON_GHUNNA 0x06BA #define T_UTF_32_ARABIC_LETTER_RNOON 0x06BB #define T_UTF_32_ARABIC_LETTER_NOON_WITH_RING 0x06BC #define T_UTF_32_ARABIC_LETTER_NOON_WITH_THREE_DOTS_ABOVE 0x06BD #define T_UTF_32_ARABIC_LETTER_HEH_DOACHASHMEE 0x06BE #define T_UTF_32_ARABIC_LETTER_TCHEH_WITH_DOT_ABOVE 0x06BF #define T_UTF_32_ARABIC_LETTER_HEH_WITH_YEH_ABOVE 0x06C0 #define T_UTF_32_ARABIC_LETTER_HEH_GOAL 0x06C1 #define T_UTF_32_ARABIC_LETTER_HEH_GOAL_WITH_HAMZA_ABOVE 0x06C2 #define T_UTF_32_ARABIC_LETTER_TEH_MARBUTA_GOAL 0x06C3 #define T_UTF_32_ARABIC_LETTER_WAW_WITH_RING 0x06C4 #define T_UTF_32_ARABIC_LETTER_KIRGHIZ_OE 0x06C5 #define T_UTF_32_ARABIC_LETTER_OE 0x06C6 #define T_UTF_32_ARABIC_LETTER_U 0x06C7 #define T_UTF_32_ARABIC_LETTER_YU 0x06C8 #define T_UTF_32_ARABIC_LETTER_KIRGHIZ_YU 0x06C9 #define T_UTF_32_ARABIC_LETTER_WAW_WITH_TWO_DOTS_ABOVE 0x06CA #define T_UTF_32_ARABIC_LETTER_VE 0x06CB #define T_UTF_32_ARABIC_LETTER_FARSI_YEH 0x06CC #define T_UTF_32_ARABIC_LETTER_YEH_WITH_TAIL 0x06CD #define T_UTF_32_ARABIC_LETTER_YEH_WITH_SMALL_V 0x06CE #define T_UTF_32_ARABIC_LETTER_WAW_WITH_DOT_ABOVE 0x06CF #define T_UTF_32_ARABIC_LETTER_E 0x06D0 #define T_UTF_32_ARABIC_LETTER_YEH_WITH_THREE_DOTS_BELOW 0x06D1 #define T_UTF_32_ARABIC_LETTER_YEH_BARREE 0x06D2 #define T_UTF_32_ARABIC_LETTER_YEH_BARREE_WITH_HAMZA_ABOVE 0x06D3 #define T_UTF_32_ARABIC_FULL_STOP 0x06D4 #define T_UTF_32_ARABIC_LETTER_AE 0x06D5 #define T_UTF_32_ARABIC_SMALL_HIGH_LIGATURE_SAD_WITH_LAM_WITH_ALEF_MAKSURA 0x06D6 #define T_UTF_32_ARABIC_SMALL_HIGH_LIGATURE_QAF_WITH_LAM_WITH_ALEF_MAKSURA 0x06D7 #define T_UTF_32_ARABIC_SMALL_HIGH_MEEM_INITIAL_FORM 0x06D8 #define T_UTF_32_ARABIC_SMALL_HIGH_LAM_ALEF 0x06D9 #define T_UTF_32_ARABIC_SMALL_HIGH_JEEM 0x06DA #define T_UTF_32_ARABIC_SMALL_HIGH_THREE_DOTS 0x06DB #define T_UTF_32_ARABIC_SMALL_HIGH_SEEN 0x06DC #define T_UTF_32_ARABIC_END_OF_AYAH 0x06DD #define T_UTF_32_ARABIC_START_OF_RUB_EL_HIZB 0x06DE #define T_UTF_32_ARABIC_SMALL_HIGH_ROUNDED_ZERO 0x06DF #define T_UTF_32_ARABIC_SMALL_HIGH_UPRIGHT_RECTANGULAR_ZERO 0x06E0 #define T_UTF_32_ARABIC_SMALL_HIGH_DOTLESS_HEAD_OF_KHAH 0x06E1 #define T_UTF_32_ARABIC_SMALL_HIGH_MEEM_ISOLATED_FORM 0x06E2 #define T_UTF_32_ARABIC_SMALL_LOW_SEEN 0x06E3 #define T_UTF_32_ARABIC_SMALL_HIGH_MADDA 0x06E4 #define T_UTF_32_ARABIC_SMALL_WAW 0x06E5 #define T_UTF_32_ARABIC_SMALL_YEH 0x06E6 #define T_UTF_32_ARABIC_SMALL_HIGH_YEH 0x06E7 #define T_UTF_32_ARABIC_SMALL_HIGH_NOON 0x06E8 #define T_UTF_32_ARABIC_PLACE_OF_SAJDAH 0x06E9 #define T_UTF_32_ARABIC_EMPTY_CENTRE_LOW_STOP 0x06EA #define T_UTF_32_ARABIC_EMPTY_CENTRE_HIGH_STOP 0x06EB #define T_UTF_32_ARABIC_ROUNDED_HIGH_STOP_WITH_FILLED_CENTRE 0x06EC #define T_UTF_32_ARABIC_SMALL_LOW_MEEM 0x06ED #define T_UTF_32_ARABIC_LETTER_DAL_WITH_INVERTED_V 0x06EE #define T_UTF_32_ARABIC_LETTER_REH_WITH_INVERTED_V 0x06EF #define T_UTF_32_EXTENDED_ARABIC_INDIC_DIGIT_ZERO 0x06F0 #define T_UTF_32_EXTENDED_ARABIC_INDIC_DIGIT_ONE 0x06F1 #define T_UTF_32_EXTENDED_ARABIC_INDIC_DIGIT_TWO 0x06F2 #define T_UTF_32_EXTENDED_ARABIC_INDIC_DIGIT_THREE 0x06F3 #define T_UTF_32_EXTENDED_ARABIC_INDIC_DIGIT_FOUR 0x06F4 #define T_UTF_32_EXTENDED_ARABIC_INDIC_DIGIT_FIVE 0x06F5 #define T_UTF_32_EXTENDED_ARABIC_INDIC_DIGIT_SIX 0x06F6 #define T_UTF_32_EXTENDED_ARABIC_INDIC_DIGIT_SEVEN 0x06F7 #define T_UTF_32_EXTENDED_ARABIC_INDIC_DIGIT_EIGHT 0x06F8 #define T_UTF_32_EXTENDED_ARABIC_INDIC_DIGIT_NINE 0x06F9 #define T_UTF_32_ARABIC_LETTER_SHEEN_WITH_DOT_BELOW 0x06FA #define T_UTF_32_ARABIC_LETTER_DAD_WITH_DOT_BELOW 0x06FB #define T_UTF_32_ARABIC_LETTER_GHAIN_WITH_DOT_BELOW 0x06FC #define T_UTF_32_ARABIC_SIGN_SINDHI_AMPERSAND 0x06FD #define T_UTF_32_ARABIC_SIGN_SINDHI_POSTPOSITION_MEN 0x06FE #define T_UTF_32_ARABIC_LETTER_HEH_WITH_INVERTED_V 0x06FF #define T_UTF_32_SYRIAC_END_OF_PARAGRAPH 0x0700 #define T_UTF_32_SYRIAC_SUPRALINEAR_FULL_STOP 0x0701 #define T_UTF_32_SYRIAC_SUBLINEAR_FULL_STOP 0x0702 #define T_UTF_32_SYRIAC_SUPRALINEAR_COLON 0x0703 #define T_UTF_32_SYRIAC_SUBLINEAR_COLON 0x0704 #define T_UTF_32_SYRIAC_HORIZONTAL_COLON 0x0705 #define T_UTF_32_SYRIAC_COLON_SKEWED_LEFT 0x0706 #define T_UTF_32_SYRIAC_COLON_SKEWED_RIGHT 0x0707 #define T_UTF_32_SYRIAC_SUPRALINEAR_COLON_SKEWED_LEFT 0x0708 #define T_UTF_32_SYRIAC_SUBLINEAR_COLON_SKEWED_RIGHT 0x0709 #define T_UTF_32_SYRIAC_CONTRACTION 0x070A #define T_UTF_32_SYRIAC_HARKLEAN_OBELUS 0x070B #define T_UTF_32_SYRIAC_HARKLEAN_METOBELUS 0x070C #define T_UTF_32_SYRIAC_HARKLEAN_ASTERISCUS 0x070D #define T_UTF_32_SYRIAC_ABBREVIATION_MARK 0x070F #define T_UTF_32_SYRIAC_LETTER_ALAPH 0x0710 #define T_UTF_32_SYRIAC_LETTER_SUPERSCRIPT_ALAPH 0x0711 #define T_UTF_32_SYRIAC_LETTER_BETH 0x0712 #define T_UTF_32_SYRIAC_LETTER_GAMAL 0x0713 #define T_UTF_32_SYRIAC_LETTER_GAMAL_GARSHUNI 0x0714 #define T_UTF_32_SYRIAC_LETTER_DALATH 0x0715 #define T_UTF_32_SYRIAC_LETTER_DOTLESS_DALATH_RISH 0x0716 #define T_UTF_32_SYRIAC_LETTER_HE 0x0717 #define T_UTF_32_SYRIAC_LETTER_WAW 0x0718 #define T_UTF_32_SYRIAC_LETTER_ZAIN 0x0719 #define T_UTF_32_SYRIAC_LETTER_HETH 0x071A #define T_UTF_32_SYRIAC_LETTER_TETH 0x071B #define T_UTF_32_SYRIAC_LETTER_TETH_GARSHUNI 0x071C #define T_UTF_32_SYRIAC_LETTER_YUDH 0x071D #define T_UTF_32_SYRIAC_LETTER_YUDH_HE 0x071E #define T_UTF_32_SYRIAC_LETTER_KAPH 0x071F #define T_UTF_32_SYRIAC_LETTER_LAMADH 0x0720 #define T_UTF_32_SYRIAC_LETTER_MIM 0x0721 #define T_UTF_32_SYRIAC_LETTER_NUN 0x0722 #define T_UTF_32_SYRIAC_LETTER_SEMKATH 0x0723 #define T_UTF_32_SYRIAC_LETTER_FINAL_SEMKATH 0x0724 #define T_UTF_32_SYRIAC_LETTER_E 0x0725 #define T_UTF_32_SYRIAC_LETTER_PE 0x0726 #define T_UTF_32_SYRIAC_LETTER_REVERSED_PE 0x0727 #define T_UTF_32_SYRIAC_LETTER_SADHE 0x0728 #define T_UTF_32_SYRIAC_LETTER_QAPH 0x0729 #define T_UTF_32_SYRIAC_LETTER_RISH 0x072A #define T_UTF_32_SYRIAC_LETTER_SHIN 0x072B #define T_UTF_32_SYRIAC_LETTER_TAW 0x072C #define T_UTF_32_SYRIAC_LETTER_PERSIAN_BHETH 0x072D #define T_UTF_32_SYRIAC_LETTER_PERSIAN_GHAMAL 0x072E #define T_UTF_32_SYRIAC_LETTER_PERSIAN_DHALATH 0x072F #define T_UTF_32_SYRIAC_PTHAHA_ABOVE 0x0730 #define T_UTF_32_SYRIAC_PTHAHA_BELOW 0x0731 #define T_UTF_32_SYRIAC_PTHAHA_DOTTED 0x0732 #define T_UTF_32_SYRIAC_ZQAPHA_ABOVE 0x0733 #define T_UTF_32_SYRIAC_ZQAPHA_BELOW 0x0734 #define T_UTF_32_SYRIAC_ZQAPHA_DOTTED 0x0735 #define T_UTF_32_SYRIAC_RBASA_ABOVE 0x0736 #define T_UTF_32_SYRIAC_RBASA_BELOW 0x0737 #define T_UTF_32_SYRIAC_DOTTED_ZLAMA_HORIZONTAL 0x0738 #define T_UTF_32_SYRIAC_DOTTED_ZLAMA_ANGULAR 0x0739 #define T_UTF_32_SYRIAC_HBASA_ABOVE 0x073A #define T_UTF_32_SYRIAC_HBASA_BELOW 0x073B #define T_UTF_32_SYRIAC_HBASA_ESASA_DOTTED 0x073C #define T_UTF_32_SYRIAC_ESASA_ABOVE 0x073D #define T_UTF_32_SYRIAC_ESASA_BELOW 0x073E #define T_UTF_32_SYRIAC_RWAHA 0x073F #define T_UTF_32_SYRIAC_FEMININE_DOT 0x0740 #define T_UTF_32_SYRIAC_QUSHSHAYA 0x0741 #define T_UTF_32_SYRIAC_RUKKAKHA 0x0742 #define T_UTF_32_SYRIAC_TWO_VERTICAL_DOTS_ABOVE 0x0743 #define T_UTF_32_SYRIAC_TWO_VERTICAL_DOTS_BELOW 0x0744 #define T_UTF_32_SYRIAC_THREE_DOTS_ABOVE 0x0745 #define T_UTF_32_SYRIAC_THREE_DOTS_BELOW 0x0746 #define T_UTF_32_SYRIAC_OBLIQUE_LINE_ABOVE 0x0747 #define T_UTF_32_SYRIAC_OBLIQUE_LINE_BELOW 0x0748 #define T_UTF_32_SYRIAC_MUSIC 0x0749 #define T_UTF_32_SYRIAC_BARREKH 0x074A #define T_UTF_32_SYRIAC_LETTER_SOGDIAN_ZHAIN 0x074D #define T_UTF_32_SYRIAC_LETTER_SOGDIAN_KHAPH 0x074E #define T_UTF_32_SYRIAC_LETTER_SOGDIAN_FE 0x074F #define T_UTF_32_ARABIC_LETTER_BEH_WITH_THREE_DOTS_HORIZONTALLY_BELOW 0x0750 #define T_UTF_32_ARABIC_LETTER_BEH_WITH_DOT_BELOW_AND_THREE_DOTS_ABOVE 0x0751 #define T_UTF_32_ARABIC_LETTER_BEH_WITH_THREE_DOTS_POINTING_UPWARDS_BELOW 0x0752 #define T_UTF_32_ARABIC_LETTER_BEH_WITH_THREE_DOTS_POINTING_UPWARDS_BELOW_AND_TWO_DOTS_ABOVE 0x0753 #define T_UTF_32_ARABIC_LETTER_BEH_WITH_TWO_DOTS_BELOW_AND_DOT_ABOVE 0x0754 #define T_UTF_32_ARABIC_LETTER_BEH_WITH_INVERTED_SMALL_V_BELOW 0x0755 #define T_UTF_32_ARABIC_LETTER_BEH_WITH_SMALL_V 0x0756 #define T_UTF_32_ARABIC_LETTER_HAH_WITH_TWO_DOTS_ABOVE 0x0757 #define T_UTF_32_ARABIC_LETTER_HAH_WITH_THREE_DOTS_POINTING_UPWARDS_BELOW 0x0758 #define T_UTF_32_ARABIC_LETTER_DAL_WITH_TWO_DOTS_VERTICALLY_BELOW_AND_SMALL_TAH 0x0759 #define T_UTF_32_ARABIC_LETTER_DAL_WITH_INVERTED_SMALL_V_BELOW 0x075A #define T_UTF_32_ARABIC_LETTER_REH_WITH_STROKE 0x075B #define T_UTF_32_ARABIC_LETTER_SEEN_WITH_FOUR_DOTS_ABOVE 0x075C #define T_UTF_32_ARABIC_LETTER_AIN_WITH_TWO_DOTS_ABOVE 0x075D #define T_UTF_32_ARABIC_LETTER_AIN_WITH_THREE_DOTS_POINTING_DOWNWARDS_ABOVE 0x075E #define T_UTF_32_ARABIC_LETTER_AIN_WITH_TWO_DOTS_VERTICALLY_ABOVE 0x075F #define T_UTF_32_ARABIC_LETTER_FEH_WITH_TWO_DOTS_BELOW 0x0760 #define T_UTF_32_ARABIC_LETTER_FEH_WITH_THREE_DOTS_POINTING_UPWARDS_BELOW 0x0761 #define T_UTF_32_ARABIC_LETTER_KEHEH_WITH_DOT_ABOVE 0x0762 #define T_UTF_32_ARABIC_LETTER_KEHEH_WITH_THREE_DOTS_ABOVE 0x0763 #define T_UTF_32_ARABIC_LETTER_KEHEH_WITH_THREE_DOTS_POINTING_UPWARDS_BELOW 0x0764 #define T_UTF_32_ARABIC_LETTER_MEEM_WITH_DOT_ABOVE 0x0765 #define T_UTF_32_ARABIC_LETTER_MEEM_WITH_DOT_BELOW 0x0766 #define T_UTF_32_ARABIC_LETTER_NOON_WITH_TWO_DOTS_BELOW 0x0767 #define T_UTF_32_ARABIC_LETTER_NOON_WITH_SMALL_TAH 0x0768 #define T_UTF_32_ARABIC_LETTER_NOON_WITH_SMALL_V 0x0769 #define T_UTF_32_ARABIC_LETTER_LAM_WITH_BAR 0x076A #define T_UTF_32_ARABIC_LETTER_REH_WITH_TWO_DOTS_VERTICALLY_ABOVE 0x076B #define T_UTF_32_ARABIC_LETTER_REH_WITH_HAMZA_ABOVE 0x076C #define T_UTF_32_ARABIC_LETTER_SEEN_WITH_TWO_DOTS_VERTICALLY_ABOVE 0x076D #define T_UTF_32_ARABIC_LETTER_HAH_WITH_SMALL_ARABIC_LETTER_TAH_BELOW 0x076E #define T_UTF_32_ARABIC_LETTER_HAH_WITH_SMALL_ARABIC_LETTER_TAH_AND_TWO_DOTS 0x076F #define T_UTF_32_ARABIC_LETTER_SEEN_WITH_SMALL_ARABIC_LETTER_TAH_AND_TWO_DOTS 0x0770 #define T_UTF_32_ARABIC_LETTER_REH_WITH_SMALL_ARABIC_LETTER_TAH_AND_TWO_DOTS 0x0771 #define T_UTF_32_ARABIC_LETTER_HAH_WITH_SMALL_ARABIC_LETTER_TAH_ABOVE 0x0772 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_EXTENDED_ARABIC_INDIC_DIGIT_TWO_ABOVE 0x0773 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_EXTENDED_ARABIC_INDIC_DIGIT_THREE_ABOVE 0x0774 #define T_UTF_32_ARABIC_LETTER_FARSI_YEH_WITH_EXTENDED_ARABIC_INDIC_DIGIT_TWO_ABOVE 0x0775 #define T_UTF_32_ARABIC_LETTER_FARSI_YEH_WITH_EXTENDED_ARABIC_INDIC_DIGIT_THREE_ABOVE 0x0776 #define T_UTF_32_ARABIC_LETTER_FARSI_YEH_WITH_EXTENDED_ARABIC_INDIC_DIGIT_FOUR_BELOW 0x0777 #define T_UTF_32_ARABIC_LETTER_WAW_WITH_EXTENDED_ARABIC_INDIC_DIGIT_TWO_ABOVE 0x0778 #define T_UTF_32_ARABIC_LETTER_WAW_WITH_EXTENDED_ARABIC_INDIC_DIGIT_THREE_ABOVE 0x0779 #define T_UTF_32_ARABIC_LETTER_YEH_BARREE_WITH_EXTENDED_ARABIC_INDIC_DIGIT_TWO_ABOVE 0x077A #define T_UTF_32_ARABIC_LETTER_YEH_BARREE_WITH_EXTENDED_ARABIC_INDIC_DIGIT_THREE_ABOVE 0x077B #define T_UTF_32_ARABIC_LETTER_HAH_WITH_EXTENDED_ARABIC_INDIC_DIGIT_FOUR_BELOW 0x077C #define T_UTF_32_ARABIC_LETTER_SEEN_WITH_EXTENDED_ARABIC_INDIC_DIGIT_FOUR_ABOVE 0x077D #define T_UTF_32_ARABIC_LETTER_SEEN_WITH_INVERTED_V 0x077E #define T_UTF_32_ARABIC_LETTER_KAF_WITH_TWO_DOTS_ABOVE 0x077F #define T_UTF_32_THAANA_LETTER_HAA 0x0780 #define T_UTF_32_THAANA_LETTER_SHAVIYANI 0x0781 #define T_UTF_32_THAANA_LETTER_NOONU 0x0782 #define T_UTF_32_THAANA_LETTER_RAA 0x0783 #define T_UTF_32_THAANA_LETTER_BAA 0x0784 #define T_UTF_32_THAANA_LETTER_LHAVIYANI 0x0785 #define T_UTF_32_THAANA_LETTER_KAAFU 0x0786 #define T_UTF_32_THAANA_LETTER_ALIFU 0x0787 #define T_UTF_32_THAANA_LETTER_VAAVU 0x0788 #define T_UTF_32_THAANA_LETTER_MEEMU 0x0789 #define T_UTF_32_THAANA_LETTER_FAAFU 0x078A #define T_UTF_32_THAANA_LETTER_DHAALU 0x078B #define T_UTF_32_THAANA_LETTER_THAA 0x078C #define T_UTF_32_THAANA_LETTER_LAAMU 0x078D #define T_UTF_32_THAANA_LETTER_GAAFU 0x078E #define T_UTF_32_THAANA_LETTER_GNAVIYANI 0x078F #define T_UTF_32_THAANA_LETTER_SEENU 0x0790 #define T_UTF_32_THAANA_LETTER_DAVIYANI 0x0791 #define T_UTF_32_THAANA_LETTER_ZAVIYANI 0x0792 #define T_UTF_32_THAANA_LETTER_TAVIYANI 0x0793 #define T_UTF_32_THAANA_LETTER_YAA 0x0794 #define T_UTF_32_THAANA_LETTER_PAVIYANI 0x0795 #define T_UTF_32_THAANA_LETTER_JAVIYANI 0x0796 #define T_UTF_32_THAANA_LETTER_CHAVIYANI 0x0797 #define T_UTF_32_THAANA_LETTER_TTAA 0x0798 #define T_UTF_32_THAANA_LETTER_HHAA 0x0799 #define T_UTF_32_THAANA_LETTER_KHAA 0x079A #define T_UTF_32_THAANA_LETTER_THAALU 0x079B #define T_UTF_32_THAANA_LETTER_ZAA 0x079C #define T_UTF_32_THAANA_LETTER_SHEENU 0x079D #define T_UTF_32_THAANA_LETTER_SAADHU 0x079E #define T_UTF_32_THAANA_LETTER_DAADHU 0x079F #define T_UTF_32_THAANA_LETTER_TO 0x07A0 #define T_UTF_32_THAANA_LETTER_ZO 0x07A1 #define T_UTF_32_THAANA_LETTER_AINU 0x07A2 #define T_UTF_32_THAANA_LETTER_GHAINU 0x07A3 #define T_UTF_32_THAANA_LETTER_QAAFU 0x07A4 #define T_UTF_32_THAANA_LETTER_WAAVU 0x07A5 #define T_UTF_32_THAANA_ABAFILI 0x07A6 #define T_UTF_32_THAANA_AABAAFILI 0x07A7 #define T_UTF_32_THAANA_IBIFILI 0x07A8 #define T_UTF_32_THAANA_EEBEEFILI 0x07A9 #define T_UTF_32_THAANA_UBUFILI 0x07AA #define T_UTF_32_THAANA_OOBOOFILI 0x07AB #define T_UTF_32_THAANA_EBEFILI 0x07AC #define T_UTF_32_THAANA_EYBEYFILI 0x07AD #define T_UTF_32_THAANA_OBOFILI 0x07AE #define T_UTF_32_THAANA_OABOAFILI 0x07AF #define T_UTF_32_THAANA_SUKUN 0x07B0 #define T_UTF_32_THAANA_LETTER_NAA 0x07B1 #define T_UTF_32_NKO_DIGIT_ZERO 0x07C0 #define T_UTF_32_NKO_DIGIT_ONE 0x07C1 #define T_UTF_32_NKO_DIGIT_TWO 0x07C2 #define T_UTF_32_NKO_DIGIT_THREE 0x07C3 #define T_UTF_32_NKO_DIGIT_FOUR 0x07C4 #define T_UTF_32_NKO_DIGIT_FIVE 0x07C5 #define T_UTF_32_NKO_DIGIT_SIX 0x07C6 #define T_UTF_32_NKO_DIGIT_SEVEN 0x07C7 #define T_UTF_32_NKO_DIGIT_EIGHT 0x07C8 #define T_UTF_32_NKO_DIGIT_NINE 0x07C9 #define T_UTF_32_NKO_LETTER_A 0x07CA #define T_UTF_32_NKO_LETTER_EE 0x07CB #define T_UTF_32_NKO_LETTER_I 0x07CC #define T_UTF_32_NKO_LETTER_E 0x07CD #define T_UTF_32_NKO_LETTER_U 0x07CE #define T_UTF_32_NKO_LETTER_OO 0x07CF #define T_UTF_32_NKO_LETTER_O 0x07D0 #define T_UTF_32_NKO_LETTER_DAGBASINNA 0x07D1 #define T_UTF_32_NKO_LETTER_N 0x07D2 #define T_UTF_32_NKO_LETTER_BA 0x07D3 #define T_UTF_32_NKO_LETTER_PA 0x07D4 #define T_UTF_32_NKO_LETTER_TA 0x07D5 #define T_UTF_32_NKO_LETTER_JA 0x07D6 #define T_UTF_32_NKO_LETTER_CHA 0x07D7 #define T_UTF_32_NKO_LETTER_DA 0x07D8 #define T_UTF_32_NKO_LETTER_RA 0x07D9 #define T_UTF_32_NKO_LETTER_RRA 0x07DA #define T_UTF_32_NKO_LETTER_SA 0x07DB #define T_UTF_32_NKO_LETTER_GBA 0x07DC #define T_UTF_32_NKO_LETTER_FA 0x07DD #define T_UTF_32_NKO_LETTER_KA 0x07DE #define T_UTF_32_NKO_LETTER_LA 0x07DF #define T_UTF_32_NKO_LETTER_NA_WOLOSO 0x07E0 #define T_UTF_32_NKO_LETTER_MA 0x07E1 #define T_UTF_32_NKO_LETTER_NYA 0x07E2 #define T_UTF_32_NKO_LETTER_NA 0x07E3 #define T_UTF_32_NKO_LETTER_HA 0x07E4 #define T_UTF_32_NKO_LETTER_WA 0x07E5 #define T_UTF_32_NKO_LETTER_YA 0x07E6 #define T_UTF_32_NKO_LETTER_NYA_WOLOSO 0x07E7 #define T_UTF_32_NKO_LETTER_JONA_JA 0x07E8 #define T_UTF_32_NKO_LETTER_JONA_CHA 0x07E9 #define T_UTF_32_NKO_LETTER_JONA_RA 0x07EA #define T_UTF_32_NKO_COMBINING_SHORT_HIGH_TONE 0x07EB #define T_UTF_32_NKO_COMBINING_SHORT_LOW_TONE 0x07EC #define T_UTF_32_NKO_COMBINING_SHORT_RISING_TONE 0x07ED #define T_UTF_32_NKO_COMBINING_LONG_DESCENDING_TONE 0x07EE #define T_UTF_32_NKO_COMBINING_LONG_HIGH_TONE 0x07EF #define T_UTF_32_NKO_COMBINING_LONG_LOW_TONE 0x07F0 #define T_UTF_32_NKO_COMBINING_LONG_RISING_TONE 0x07F1 #define T_UTF_32_NKO_COMBINING_NASALIZATION_MARK 0x07F2 #define T_UTF_32_NKO_COMBINING_DOUBLE_DOT_ABOVE 0x07F3 #define T_UTF_32_NKO_HIGH_TONE_APOSTROPHE 0x07F4 #define T_UTF_32_NKO_LOW_TONE_APOSTROPHE 0x07F5 #define T_UTF_32_NKO_SYMBOL_OO_DENNEN 0x07F6 #define T_UTF_32_NKO_SYMBOL_GBAKURUNEN 0x07F7 #define T_UTF_32_NKO_COMMA 0x07F8 #define T_UTF_32_NKO_EXCLAMATION_MARK 0x07F9 #define T_UTF_32_NKO_LAJANYALAN 0x07FA #define T_UTF_32_SAMARITAN_LETTER_ALAF 0x0800 #define T_UTF_32_SAMARITAN_LETTER_BIT 0x0801 #define T_UTF_32_SAMARITAN_LETTER_GAMAN 0x0802 #define T_UTF_32_SAMARITAN_LETTER_DALAT 0x0803 #define T_UTF_32_SAMARITAN_LETTER_IY 0x0804 #define T_UTF_32_SAMARITAN_LETTER_BAA 0x0805 #define T_UTF_32_SAMARITAN_LETTER_ZEN 0x0806 #define T_UTF_32_SAMARITAN_LETTER_IT 0x0807 #define T_UTF_32_SAMARITAN_LETTER_TIT 0x0808 #define T_UTF_32_SAMARITAN_LETTER_YUT 0x0809 #define T_UTF_32_SAMARITAN_LETTER_KAAF 0x080A #define T_UTF_32_SAMARITAN_LETTER_LABAT 0x080B #define T_UTF_32_SAMARITAN_LETTER_MIM 0x080C #define T_UTF_32_SAMARITAN_LETTER_NUN 0x080D #define T_UTF_32_SAMARITAN_LETTER_SINGAAT 0x080E #define T_UTF_32_SAMARITAN_LETTER_IN 0x080F #define T_UTF_32_SAMARITAN_LETTER_FI 0x0810 #define T_UTF_32_SAMARITAN_LETTER_TSAADIY 0x0811 #define T_UTF_32_SAMARITAN_LETTER_QUF 0x0812 #define T_UTF_32_SAMARITAN_LETTER_RISH 0x0813 #define T_UTF_32_SAMARITAN_LETTER_SHAN 0x0814 #define T_UTF_32_SAMARITAN_LETTER_TAAF 0x0815 #define T_UTF_32_SAMARITAN_MARK_IN 0x0816 #define T_UTF_32_SAMARITAN_MARK_IN_ALAF 0x0817 #define T_UTF_32_SAMARITAN_MARK_OCCLUSION 0x0818 #define T_UTF_32_SAMARITAN_MARK_DAGESH 0x0819 #define T_UTF_32_SAMARITAN_MODIFIER_LETTER_EPENTHETIC_YUT 0x081A #define T_UTF_32_SAMARITAN_MARK_EPENTHETIC_YUT 0x081B #define T_UTF_32_SAMARITAN_VOWEL_SIGN_LONG_E 0x081C #define T_UTF_32_SAMARITAN_VOWEL_SIGN_E 0x081D #define T_UTF_32_SAMARITAN_VOWEL_SIGN_OVERLONG_AA 0x081E #define T_UTF_32_SAMARITAN_VOWEL_SIGN_LONG_AA 0x081F #define T_UTF_32_SAMARITAN_VOWEL_SIGN_AA 0x0820 #define T_UTF_32_SAMARITAN_VOWEL_SIGN_OVERLONG_A 0x0821 #define T_UTF_32_SAMARITAN_VOWEL_SIGN_LONG_A 0x0822 #define T_UTF_32_SAMARITAN_VOWEL_SIGN_A 0x0823 #define T_UTF_32_SAMARITAN_MODIFIER_LETTER_SHORT_A 0x0824 #define T_UTF_32_SAMARITAN_VOWEL_SIGN_SHORT_A 0x0825 #define T_UTF_32_SAMARITAN_VOWEL_SIGN_LONG_U 0x0826 #define T_UTF_32_SAMARITAN_VOWEL_SIGN_U 0x0827 #define T_UTF_32_SAMARITAN_MODIFIER_LETTER_I 0x0828 #define T_UTF_32_SAMARITAN_VOWEL_SIGN_LONG_I 0x0829 #define T_UTF_32_SAMARITAN_VOWEL_SIGN_I 0x082A #define T_UTF_32_SAMARITAN_VOWEL_SIGN_O 0x082B #define T_UTF_32_SAMARITAN_VOWEL_SIGN_SUKUN 0x082C #define T_UTF_32_SAMARITAN_MARK_NEQUDAA 0x082D #define T_UTF_32_SAMARITAN_PUNCTUATION_NEQUDAA 0x0830 #define T_UTF_32_SAMARITAN_PUNCTUATION_AFSAAQ 0x0831 #define T_UTF_32_SAMARITAN_PUNCTUATION_ANGED 0x0832 #define T_UTF_32_SAMARITAN_PUNCTUATION_BAU 0x0833 #define T_UTF_32_SAMARITAN_PUNCTUATION_ATMAAU 0x0834 #define T_UTF_32_SAMARITAN_PUNCTUATION_SHIYYAALAA 0x0835 #define T_UTF_32_SAMARITAN_ABBREVIATION_MARK 0x0836 #define T_UTF_32_SAMARITAN_PUNCTUATION_MELODIC_QITSA 0x0837 #define T_UTF_32_SAMARITAN_PUNCTUATION_ZIQAA 0x0838 #define T_UTF_32_SAMARITAN_PUNCTUATION_QITSA 0x0839 #define T_UTF_32_SAMARITAN_PUNCTUATION_ZAEF 0x083A #define T_UTF_32_SAMARITAN_PUNCTUATION_TURU 0x083B #define T_UTF_32_SAMARITAN_PUNCTUATION_ARKAANU 0x083C #define T_UTF_32_SAMARITAN_PUNCTUATION_SOF_MASHFAAT 0x083D #define T_UTF_32_SAMARITAN_PUNCTUATION_ANNAAU 0x083E #define T_UTF_32_MANDAIC_LETTER_HALQA 0x0840 #define T_UTF_32_MANDAIC_LETTER_AB 0x0841 #define T_UTF_32_MANDAIC_LETTER_AG 0x0842 #define T_UTF_32_MANDAIC_LETTER_AD 0x0843 #define T_UTF_32_MANDAIC_LETTER_AH 0x0844 #define T_UTF_32_MANDAIC_LETTER_USHENNA 0x0845 #define T_UTF_32_MANDAIC_LETTER_AZ 0x0846 #define T_UTF_32_MANDAIC_LETTER_IT 0x0847 #define T_UTF_32_MANDAIC_LETTER_ATT 0x0848 #define T_UTF_32_MANDAIC_LETTER_AKSA 0x0849 #define T_UTF_32_MANDAIC_LETTER_AK 0x084A #define T_UTF_32_MANDAIC_LETTER_AL 0x084B #define T_UTF_32_MANDAIC_LETTER_AM 0x084C #define T_UTF_32_MANDAIC_LETTER_AN 0x084D #define T_UTF_32_MANDAIC_LETTER_AS 0x084E #define T_UTF_32_MANDAIC_LETTER_IN 0x084F #define T_UTF_32_MANDAIC_LETTER_AP 0x0850 #define T_UTF_32_MANDAIC_LETTER_ASZ 0x0851 #define T_UTF_32_MANDAIC_LETTER_AQ 0x0852 #define T_UTF_32_MANDAIC_LETTER_AR 0x0853 #define T_UTF_32_MANDAIC_LETTER_ASH 0x0854 #define T_UTF_32_MANDAIC_LETTER_AT 0x0855 #define T_UTF_32_MANDAIC_LETTER_DUSHENNA 0x0856 #define T_UTF_32_MANDAIC_LETTER_KAD 0x0857 #define T_UTF_32_MANDAIC_LETTER_AIN 0x0858 #define T_UTF_32_MANDAIC_AFFRICATION_MARK 0x0859 #define T_UTF_32_MANDAIC_VOCALIZATION_MARK 0x085A #define T_UTF_32_MANDAIC_GEMINATION_MARK 0x085B #define T_UTF_32_MANDAIC_PUNCTUATION 0x085E #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_NGA 0x0860 #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_JA 0x0861 #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_NYA 0x0862 #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_TTA 0x0863 #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_NNA 0x0864 #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_NNNA 0x0865 #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_BHA 0x0866 #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_RA 0x0867 #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_LLA 0x0868 #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_LLLA 0x0869 #define T_UTF_32_SYRIAC_LETTER_MALAYALAM_SSA 0x086A #define T_UTF_32_ARABIC_LETTER_BEH_WITH_SMALL_V_BELOW 0x08A0 #define T_UTF_32_ARABIC_LETTER_BEH_WITH_HAMZA_ABOVE 0x08A1 #define T_UTF_32_ARABIC_LETTER_JEEM_WITH_TWO_DOTS_ABOVE 0x08A2 #define T_UTF_32_ARABIC_LETTER_TAH_WITH_TWO_DOTS_ABOVE 0x08A3 #define T_UTF_32_ARABIC_LETTER_FEH_WITH_DOT_BELOW_AND_THREE_DOTS_ABOVE 0x08A4 #define T_UTF_32_ARABIC_LETTER_QAF_WITH_DOT_BELOW 0x08A5 #define T_UTF_32_ARABIC_LETTER_LAM_WITH_DOUBLE_BAR 0x08A6 #define T_UTF_32_ARABIC_LETTER_MEEM_WITH_THREE_DOTS_ABOVE 0x08A7 #define T_UTF_32_ARABIC_LETTER_YEH_WITH_TWO_DOTS_BELOW_AND_HAMZA_ABOVE 0x08A8 #define T_UTF_32_ARABIC_LETTER_YEH_WITH_TWO_DOTS_BELOW_AND_DOT_ABOVE 0x08A9 #define T_UTF_32_ARABIC_LETTER_REH_WITH_LOOP 0x08AA #define T_UTF_32_ARABIC_LETTER_WAW_WITH_DOT_WITHIN 0x08AB #define T_UTF_32_ARABIC_LETTER_ROHINGYA_YEH 0x08AC #define T_UTF_32_ARABIC_LETTER_LOW_ALEF 0x08AD #define T_UTF_32_ARABIC_LETTER_DAL_WITH_THREE_DOTS_BELOW 0x08AE #define T_UTF_32_ARABIC_LETTER_SAD_WITH_THREE_DOTS_BELOW 0x08AF #define T_UTF_32_ARABIC_LETTER_GAF_WITH_INVERTED_STROKE 0x08B0 #define T_UTF_32_ARABIC_LETTER_STRAIGHT_WAW 0x08B1 #define T_UTF_32_ARABIC_LETTER_ZAIN_WITH_INVERTED_V_ABOVE 0x08B2 #define T_UTF_32_ARABIC_LETTER_AIN_WITH_THREE_DOTS_BELOW 0x08B3 #define T_UTF_32_ARABIC_LETTER_KAF_WITH_DOT_BELOW 0x08B4 #define T_UTF_32_ARABIC_LETTER_BEH_WITH_SMALL_MEEM_ABOVE 0x08B6 #define T_UTF_32_ARABIC_LETTER_PEH_WITH_SMALL_MEEM_ABOVE 0x08B7 #define T_UTF_32_ARABIC_LETTER_TEH_WITH_SMALL_TEH_ABOVE 0x08B8 #define T_UTF_32_ARABIC_LETTER_REH_WITH_SMALL_NOON_ABOVE 0x08B9 #define T_UTF_32_ARABIC_LETTER_YEH_WITH_TWO_DOTS_BELOW_AND_SMALL_NOON_ABOVE 0x08BA #define T_UTF_32_ARABIC_LETTER_AFRICAN_FEH 0x08BB #define T_UTF_32_ARABIC_LETTER_AFRICAN_QAF 0x08BC #define T_UTF_32_ARABIC_LETTER_AFRICAN_NOON 0x08BD #define T_UTF_32_ARABIC_SMALL_HIGH_WORD_AR_RUB 0x08D4 #define T_UTF_32_ARABIC_SMALL_HIGH_SAD 0x08D5 #define T_UTF_32_ARABIC_SMALL_HIGH_AIN 0x08D6 #define T_UTF_32_ARABIC_SMALL_HIGH_QAF 0x08D7 #define T_UTF_32_ARABIC_SMALL_HIGH_NOON_WITH_KASRA 0x08D8 #define T_UTF_32_ARABIC_SMALL_LOW_NOON_WITH_KASRA 0x08D9 #define T_UTF_32_ARABIC_SMALL_HIGH_WORD_ATH_THALATHA 0x08DA #define T_UTF_32_ARABIC_SMALL_HIGH_WORD_AS_SAJDA 0x08DB #define T_UTF_32_ARABIC_SMALL_HIGH_WORD_AN_NISF 0x08DC #define T_UTF_32_ARABIC_SMALL_HIGH_WORD_SAKTA 0x08DD #define T_UTF_32_ARABIC_SMALL_HIGH_WORD_QIF 0x08DE #define T_UTF_32_ARABIC_SMALL_HIGH_WORD_WAQFA 0x08DF #define T_UTF_32_ARABIC_SMALL_HIGH_FOOTNOTE_MARKER 0x08E0 #define T_UTF_32_ARABIC_SMALL_HIGH_SIGN_SAFHA 0x08E1 #define T_UTF_32_ARABIC_DISPUTED_END_OF_AYAH 0x08E2 #define T_UTF_32_ARABIC_TURNED_DAMMA_BELOW 0x08E3 #define T_UTF_32_ARABIC_CURLY_FATHA 0x08E4 #define T_UTF_32_ARABIC_CURLY_DAMMA 0x08E5 #define T_UTF_32_ARABIC_CURLY_KASRA 0x08E6 #define T_UTF_32_ARABIC_CURLY_FATHATAN 0x08E7 #define T_UTF_32_ARABIC_CURLY_DAMMATAN 0x08E8 #define T_UTF_32_ARABIC_CURLY_KASRATAN 0x08E9 #define T_UTF_32_ARABIC_TONE_ONE_DOT_ABOVE 0x08EA #define T_UTF_32_ARABIC_TONE_TWO_DOTS_ABOVE 0x08EB #define T_UTF_32_ARABIC_TONE_LOOP_ABOVE 0x08EC #define T_UTF_32_ARABIC_TONE_ONE_DOT_BELOW 0x08ED #define T_UTF_32_ARABIC_TONE_TWO_DOTS_BELOW 0x08EE #define T_UTF_32_ARABIC_TONE_LOOP_BELOW 0x08EF #define T_UTF_32_ARABIC_OPEN_FATHATAN 0x08F0 #define T_UTF_32_ARABIC_OPEN_DAMMATAN 0x08F1 #define T_UTF_32_ARABIC_OPEN_KASRATAN 0x08F2 #define T_UTF_32_ARABIC_SMALL_HIGH_WAW 0x08F3 #define T_UTF_32_ARABIC_FATHA_WITH_RING 0x08F4 #define T_UTF_32_ARABIC_FATHA_WITH_DOT_ABOVE 0x08F5 #define T_UTF_32_ARABIC_KASRA_WITH_DOT_BELOW 0x08F6 #define T_UTF_32_ARABIC_LEFT_ARROWHEAD_ABOVE 0x08F7 #define T_UTF_32_ARABIC_RIGHT_ARROWHEAD_ABOVE 0x08F8 #define T_UTF_32_ARABIC_LEFT_ARROWHEAD_BELOW 0x08F9 #define T_UTF_32_ARABIC_RIGHT_ARROWHEAD_BELOW 0x08FA #define T_UTF_32_ARABIC_DOUBLE_RIGHT_ARROWHEAD_ABOVE 0x08FB #define T_UTF_32_ARABIC_DOUBLE_RIGHT_ARROWHEAD_ABOVE_WITH_DOT 0x08FC #define T_UTF_32_ARABIC_RIGHT_ARROWHEAD_ABOVE_WITH_DOT 0x08FD #define T_UTF_32_ARABIC_DAMMA_WITH_DOT 0x08FE #define T_UTF_32_ARABIC_MARK_SIDEWAYS_NOON_GHUNNA 0x08FF #define T_UTF_32_DEVANAGARI_SIGN_INVERTED_CANDRABINDU 0x0900 #define T_UTF_32_DEVANAGARI_SIGN_CANDRABINDU 0x0901 #define T_UTF_32_DEVANAGARI_SIGN_ANUSVARA 0x0902 #define T_UTF_32_DEVANAGARI_SIGN_VISARGA 0x0903 #define T_UTF_32_DEVANAGARI_LETTER_SHORT_A 0x0904 #define T_UTF_32_DEVANAGARI_LETTER_A 0x0905 #define T_UTF_32_DEVANAGARI_LETTER_AA 0x0906 #define T_UTF_32_DEVANAGARI_LETTER_I 0x0907 #define T_UTF_32_DEVANAGARI_LETTER_II 0x0908 #define T_UTF_32_DEVANAGARI_LETTER_U 0x0909 #define T_UTF_32_DEVANAGARI_LETTER_UU 0x090A #define T_UTF_32_DEVANAGARI_LETTER_VOCALIC_R 0x090B #define T_UTF_32_DEVANAGARI_LETTER_VOCALIC_L 0x090C #define T_UTF_32_DEVANAGARI_LETTER_CANDRA_E 0x090D #define T_UTF_32_DEVANAGARI_LETTER_SHORT_E 0x090E #define T_UTF_32_DEVANAGARI_LETTER_E 0x090F #define T_UTF_32_DEVANAGARI_LETTER_AI 0x0910 #define T_UTF_32_DEVANAGARI_LETTER_CANDRA_O 0x0911 #define T_UTF_32_DEVANAGARI_LETTER_SHORT_O 0x0912 #define T_UTF_32_DEVANAGARI_LETTER_O 0x0913 #define T_UTF_32_DEVANAGARI_LETTER_AU 0x0914 #define T_UTF_32_DEVANAGARI_LETTER_KA 0x0915 #define T_UTF_32_DEVANAGARI_LETTER_KHA 0x0916 #define T_UTF_32_DEVANAGARI_LETTER_GA 0x0917 #define T_UTF_32_DEVANAGARI_LETTER_GHA 0x0918 #define T_UTF_32_DEVANAGARI_LETTER_NGA 0x0919 #define T_UTF_32_DEVANAGARI_LETTER_CA 0x091A #define T_UTF_32_DEVANAGARI_LETTER_CHA 0x091B #define T_UTF_32_DEVANAGARI_LETTER_JA 0x091C #define T_UTF_32_DEVANAGARI_LETTER_JHA 0x091D #define T_UTF_32_DEVANAGARI_LETTER_NYA 0x091E #define T_UTF_32_DEVANAGARI_LETTER_TTA 0x091F #define T_UTF_32_DEVANAGARI_LETTER_TTHA 0x0920 #define T_UTF_32_DEVANAGARI_LETTER_DDA 0x0921 #define T_UTF_32_DEVANAGARI_LETTER_DDHA 0x0922 #define T_UTF_32_DEVANAGARI_LETTER_NNA 0x0923 #define T_UTF_32_DEVANAGARI_LETTER_TA 0x0924 #define T_UTF_32_DEVANAGARI_LETTER_THA 0x0925 #define T_UTF_32_DEVANAGARI_LETTER_DA 0x0926 #define T_UTF_32_DEVANAGARI_LETTER_DHA 0x0927 #define T_UTF_32_DEVANAGARI_LETTER_NA 0x0928 #define T_UTF_32_DEVANAGARI_LETTER_NNNA 0x0929 #define T_UTF_32_DEVANAGARI_LETTER_PA 0x092A #define T_UTF_32_DEVANAGARI_LETTER_PHA 0x092B #define T_UTF_32_DEVANAGARI_LETTER_BA 0x092C #define T_UTF_32_DEVANAGARI_LETTER_BHA 0x092D #define T_UTF_32_DEVANAGARI_LETTER_MA 0x092E #define T_UTF_32_DEVANAGARI_LETTER_YA 0x092F #define T_UTF_32_DEVANAGARI_LETTER_RA 0x0930 #define T_UTF_32_DEVANAGARI_LETTER_RRA 0x0931 #define T_UTF_32_DEVANAGARI_LETTER_LA 0x0932 #define T_UTF_32_DEVANAGARI_LETTER_LLA 0x0933 #define T_UTF_32_DEVANAGARI_LETTER_LLLA 0x0934 #define T_UTF_32_DEVANAGARI_LETTER_VA 0x0935 #define T_UTF_32_DEVANAGARI_LETTER_SHA 0x0936 #define T_UTF_32_DEVANAGARI_LETTER_SSA 0x0937 #define T_UTF_32_DEVANAGARI_LETTER_SA 0x0938 #define T_UTF_32_DEVANAGARI_LETTER_HA 0x0939 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_OE 0x093A #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_OOE 0x093B #define T_UTF_32_DEVANAGARI_SIGN_NUKTA 0x093C #define T_UTF_32_DEVANAGARI_SIGN_AVAGRAHA 0x093D #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_AA 0x093E #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_I 0x093F #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_II 0x0940 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_U 0x0941 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_UU 0x0942 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_VOCALIC_R 0x0943 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_VOCALIC_RR 0x0944 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_CANDRA_E 0x0945 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_SHORT_E 0x0946 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_E 0x0947 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_AI 0x0948 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_CANDRA_O 0x0949 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_SHORT_O 0x094A #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_O 0x094B #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_AU 0x094C #define T_UTF_32_DEVANAGARI_SIGN_VIRAMA 0x094D #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_PRISHTHAMATRA_E 0x094E #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_AW 0x094F #define T_UTF_32_DEVANAGARI_OM 0x0950 #define T_UTF_32_DEVANAGARI_STRESS_SIGN_UDATTA 0x0951 #define T_UTF_32_DEVANAGARI_STRESS_SIGN_ANUDATTA 0x0952 #define T_UTF_32_DEVANAGARI_GRAVE_ACCENT 0x0953 #define T_UTF_32_DEVANAGARI_ACUTE_ACCENT 0x0954 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_CANDRA_LONG_E 0x0955 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_UE 0x0956 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_UUE 0x0957 #define T_UTF_32_DEVANAGARI_LETTER_QA 0x0958 #define T_UTF_32_DEVANAGARI_LETTER_KHHA 0x0959 #define T_UTF_32_DEVANAGARI_LETTER_GHHA 0x095A #define T_UTF_32_DEVANAGARI_LETTER_ZA 0x095B #define T_UTF_32_DEVANAGARI_LETTER_DDDHA 0x095C #define T_UTF_32_DEVANAGARI_LETTER_RHA 0x095D #define T_UTF_32_DEVANAGARI_LETTER_FA 0x095E #define T_UTF_32_DEVANAGARI_LETTER_YYA 0x095F #define T_UTF_32_DEVANAGARI_LETTER_VOCALIC_RR 0x0960 #define T_UTF_32_DEVANAGARI_LETTER_VOCALIC_LL 0x0961 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_VOCALIC_L 0x0962 #define T_UTF_32_DEVANAGARI_VOWEL_SIGN_VOCALIC_LL 0x0963 #define T_UTF_32_DEVANAGARI_DANDA 0x0964 #define T_UTF_32_DEVANAGARI_DOUBLE_DANDA 0x0965 #define T_UTF_32_DEVANAGARI_DIGIT_ZERO 0x0966 #define T_UTF_32_DEVANAGARI_DIGIT_ONE 0x0967 #define T_UTF_32_DEVANAGARI_DIGIT_TWO 0x0968 #define T_UTF_32_DEVANAGARI_DIGIT_THREE 0x0969 #define T_UTF_32_DEVANAGARI_DIGIT_FOUR 0x096A #define T_UTF_32_DEVANAGARI_DIGIT_FIVE 0x096B #define T_UTF_32_DEVANAGARI_DIGIT_SIX 0x096C #define T_UTF_32_DEVANAGARI_DIGIT_SEVEN 0x096D #define T_UTF_32_DEVANAGARI_DIGIT_EIGHT 0x096E #define T_UTF_32_DEVANAGARI_DIGIT_NINE 0x096F #define T_UTF_32_DEVANAGARI_ABBREVIATION_SIGN 0x0970 #define T_UTF_32_DEVANAGARI_SIGN_HIGH_SPACING_DOT 0x0971 #define T_UTF_32_DEVANAGARI_LETTER_CANDRA_A 0x0972 #define T_UTF_32_DEVANAGARI_LETTER_OE 0x0973 #define T_UTF_32_DEVANAGARI_LETTER_OOE 0x0974 #define T_UTF_32_DEVANAGARI_LETTER_AW 0x0975 #define T_UTF_32_DEVANAGARI_LETTER_UE 0x0976 #define T_UTF_32_DEVANAGARI_LETTER_UUE 0x0977 #define T_UTF_32_DEVANAGARI_LETTER_MARWARI_DDA 0x0978 #define T_UTF_32_DEVANAGARI_LETTER_ZHA 0x0979 #define T_UTF_32_DEVANAGARI_LETTER_HEAVY_YA 0x097A #define T_UTF_32_DEVANAGARI_LETTER_GGA 0x097B #define T_UTF_32_DEVANAGARI_LETTER_JJA 0x097C #define T_UTF_32_DEVANAGARI_LETTER_GLOTTAL_STOP 0x097D #define T_UTF_32_DEVANAGARI_LETTER_DDDA 0x097E #define T_UTF_32_DEVANAGARI_LETTER_BBA 0x097F #define T_UTF_32_BENGALI_ANJI 0x0980 #define T_UTF_32_BENGALI_SIGN_CANDRABINDU 0x0981 #define T_UTF_32_BENGALI_SIGN_ANUSVARA 0x0982 #define T_UTF_32_BENGALI_SIGN_VISARGA 0x0983 #define T_UTF_32_BENGALI_LETTER_A 0x0985 #define T_UTF_32_BENGALI_LETTER_AA 0x0986 #define T_UTF_32_BENGALI_LETTER_I 0x0987 #define T_UTF_32_BENGALI_LETTER_II 0x0988 #define T_UTF_32_BENGALI_LETTER_U 0x0989 #define T_UTF_32_BENGALI_LETTER_UU 0x098A #define T_UTF_32_BENGALI_LETTER_VOCALIC_R 0x098B #define T_UTF_32_BENGALI_LETTER_VOCALIC_L 0x098C #define T_UTF_32_BENGALI_LETTER_E 0x098F #define T_UTF_32_BENGALI_LETTER_AI 0x0990 #define T_UTF_32_BENGALI_LETTER_O 0x0993 #define T_UTF_32_BENGALI_LETTER_AU 0x0994 #define T_UTF_32_BENGALI_LETTER_KA 0x0995 #define T_UTF_32_BENGALI_LETTER_KHA 0x0996 #define T_UTF_32_BENGALI_LETTER_GA 0x0997 #define T_UTF_32_BENGALI_LETTER_GHA 0x0998 #define T_UTF_32_BENGALI_LETTER_NGA 0x0999 #define T_UTF_32_BENGALI_LETTER_CA 0x099A #define T_UTF_32_BENGALI_LETTER_CHA 0x099B #define T_UTF_32_BENGALI_LETTER_JA 0x099C #define T_UTF_32_BENGALI_LETTER_JHA 0x099D #define T_UTF_32_BENGALI_LETTER_NYA 0x099E #define T_UTF_32_BENGALI_LETTER_TTA 0x099F #define T_UTF_32_BENGALI_LETTER_TTHA 0x09A0 #define T_UTF_32_BENGALI_LETTER_DDA 0x09A1 #define T_UTF_32_BENGALI_LETTER_DDHA 0x09A2 #define T_UTF_32_BENGALI_LETTER_NNA 0x09A3 #define T_UTF_32_BENGALI_LETTER_TA 0x09A4 #define T_UTF_32_BENGALI_LETTER_THA 0x09A5 #define T_UTF_32_BENGALI_LETTER_DA 0x09A6 #define T_UTF_32_BENGALI_LETTER_DHA 0x09A7 #define T_UTF_32_BENGALI_LETTER_NA 0x09A8 #define T_UTF_32_BENGALI_LETTER_PA 0x09AA #define T_UTF_32_BENGALI_LETTER_PHA 0x09AB #define T_UTF_32_BENGALI_LETTER_BA 0x09AC #define T_UTF_32_BENGALI_LETTER_BHA 0x09AD #define T_UTF_32_BENGALI_LETTER_MA 0x09AE #define T_UTF_32_BENGALI_LETTER_YA 0x09AF #define T_UTF_32_BENGALI_LETTER_RA 0x09B0 #define T_UTF_32_BENGALI_LETTER_LA 0x09B2 #define T_UTF_32_BENGALI_LETTER_SHA 0x09B6 #define T_UTF_32_BENGALI_LETTER_SSA 0x09B7 #define T_UTF_32_BENGALI_LETTER_SA 0x09B8 #define T_UTF_32_BENGALI_LETTER_HA 0x09B9 #define T_UTF_32_BENGALI_SIGN_NUKTA 0x09BC #define T_UTF_32_BENGALI_SIGN_AVAGRAHA 0x09BD #define T_UTF_32_BENGALI_VOWEL_SIGN_AA 0x09BE #define T_UTF_32_BENGALI_VOWEL_SIGN_I 0x09BF #define T_UTF_32_BENGALI_VOWEL_SIGN_II 0x09C0 #define T_UTF_32_BENGALI_VOWEL_SIGN_U 0x09C1 #define T_UTF_32_BENGALI_VOWEL_SIGN_UU 0x09C2 #define T_UTF_32_BENGALI_VOWEL_SIGN_VOCALIC_R 0x09C3 #define T_UTF_32_BENGALI_VOWEL_SIGN_VOCALIC_RR 0x09C4 #define T_UTF_32_BENGALI_VOWEL_SIGN_E 0x09C7 #define T_UTF_32_BENGALI_VOWEL_SIGN_AI 0x09C8 #define T_UTF_32_BENGALI_VOWEL_SIGN_O 0x09CB #define T_UTF_32_BENGALI_VOWEL_SIGN_AU 0x09CC #define T_UTF_32_BENGALI_SIGN_VIRAMA 0x09CD #define T_UTF_32_BENGALI_LETTER_KHANDA_TA 0x09CE #define T_UTF_32_BENGALI_AU_LENGTH_MARK 0x09D7 #define T_UTF_32_BENGALI_LETTER_RRA 0x09DC #define T_UTF_32_BENGALI_LETTER_RHA 0x09DD #define T_UTF_32_BENGALI_LETTER_YYA 0x09DF #define T_UTF_32_BENGALI_LETTER_VOCALIC_RR 0x09E0 #define T_UTF_32_BENGALI_LETTER_VOCALIC_LL 0x09E1 #define T_UTF_32_BENGALI_VOWEL_SIGN_VOCALIC_L 0x09E2 #define T_UTF_32_BENGALI_VOWEL_SIGN_VOCALIC_LL 0x09E3 #define T_UTF_32_BENGALI_DIGIT_ZERO 0x09E6 #define T_UTF_32_BENGALI_DIGIT_ONE 0x09E7 #define T_UTF_32_BENGALI_DIGIT_TWO 0x09E8 #define T_UTF_32_BENGALI_DIGIT_THREE 0x09E9 #define T_UTF_32_BENGALI_DIGIT_FOUR 0x09EA #define T_UTF_32_BENGALI_DIGIT_FIVE 0x09EB #define T_UTF_32_BENGALI_DIGIT_SIX 0x09EC #define T_UTF_32_BENGALI_DIGIT_SEVEN 0x09ED #define T_UTF_32_BENGALI_DIGIT_EIGHT 0x09EE #define T_UTF_32_BENGALI_DIGIT_NINE 0x09EF #define T_UTF_32_BENGALI_LETTER_RA_WITH_MIDDLE_DIAGONAL 0x09F0 #define T_UTF_32_BENGALI_LETTER_RA_WITH_LOWER_DIAGONAL 0x09F1 #define T_UTF_32_BENGALI_RUPEE_MARK 0x09F2 #define T_UTF_32_BENGALI_RUPEE_SIGN 0x09F3 #define T_UTF_32_BENGALI_CURRENCY_NUMERATOR_ONE 0x09F4 #define T_UTF_32_BENGALI_CURRENCY_NUMERATOR_TWO 0x09F5 #define T_UTF_32_BENGALI_CURRENCY_NUMERATOR_THREE 0x09F6 #define T_UTF_32_BENGALI_CURRENCY_NUMERATOR_FOUR 0x09F7 #define T_UTF_32_BENGALI_CURRENCY_NUMERATOR_ONE_LESS_THAN_THE_DENOMINATOR 0x09F8 #define T_UTF_32_BENGALI_CURRENCY_DENOMINATOR_SIXTEEN 0x09F9 #define T_UTF_32_BENGALI_ISSHAR 0x09FA #define T_UTF_32_BENGALI_GANDA_MARK 0x09FB #define T_UTF_32_BENGALI_LETTER_VEDIC_ANUSVARA 0x09FC #define T_UTF_32_BENGALI_ABBREVIATION_SIGN 0x09FD #define T_UTF_32_GURMUKHI_SIGN_ADAK_BINDI 0x0A01 #define T_UTF_32_GURMUKHI_SIGN_BINDI 0x0A02 #define T_UTF_32_GURMUKHI_SIGN_VISARGA 0x0A03 #define T_UTF_32_GURMUKHI_LETTER_A 0x0A05 #define T_UTF_32_GURMUKHI_LETTER_AA 0x0A06 #define T_UTF_32_GURMUKHI_LETTER_I 0x0A07 #define T_UTF_32_GURMUKHI_LETTER_II 0x0A08 #define T_UTF_32_GURMUKHI_LETTER_U 0x0A09 #define T_UTF_32_GURMUKHI_LETTER_UU 0x0A0A #define T_UTF_32_GURMUKHI_LETTER_EE 0x0A0F #define T_UTF_32_GURMUKHI_LETTER_AI 0x0A10 #define T_UTF_32_GURMUKHI_LETTER_OO 0x0A13 #define T_UTF_32_GURMUKHI_LETTER_AU 0x0A14 #define T_UTF_32_GURMUKHI_LETTER_KA 0x0A15 #define T_UTF_32_GURMUKHI_LETTER_KHA 0x0A16 #define T_UTF_32_GURMUKHI_LETTER_GA 0x0A17 #define T_UTF_32_GURMUKHI_LETTER_GHA 0x0A18 #define T_UTF_32_GURMUKHI_LETTER_NGA 0x0A19 #define T_UTF_32_GURMUKHI_LETTER_CA 0x0A1A #define T_UTF_32_GURMUKHI_LETTER_CHA 0x0A1B #define T_UTF_32_GURMUKHI_LETTER_JA 0x0A1C #define T_UTF_32_GURMUKHI_LETTER_JHA 0x0A1D #define T_UTF_32_GURMUKHI_LETTER_NYA 0x0A1E #define T_UTF_32_GURMUKHI_LETTER_TTA 0x0A1F #define T_UTF_32_GURMUKHI_LETTER_TTHA 0x0A20 #define T_UTF_32_GURMUKHI_LETTER_DDA 0x0A21 #define T_UTF_32_GURMUKHI_LETTER_DDHA 0x0A22 #define T_UTF_32_GURMUKHI_LETTER_NNA 0x0A23 #define T_UTF_32_GURMUKHI_LETTER_TA 0x0A24 #define T_UTF_32_GURMUKHI_LETTER_THA 0x0A25 #define T_UTF_32_GURMUKHI_LETTER_DA 0x0A26 #define T_UTF_32_GURMUKHI_LETTER_DHA 0x0A27 #define T_UTF_32_GURMUKHI_LETTER_NA 0x0A28 #define T_UTF_32_GURMUKHI_LETTER_PA 0x0A2A #define T_UTF_32_GURMUKHI_LETTER_PHA 0x0A2B #define T_UTF_32_GURMUKHI_LETTER_BA 0x0A2C #define T_UTF_32_GURMUKHI_LETTER_BHA 0x0A2D #define T_UTF_32_GURMUKHI_LETTER_MA 0x0A2E #define T_UTF_32_GURMUKHI_LETTER_YA 0x0A2F #define T_UTF_32_GURMUKHI_LETTER_RA 0x0A30 #define T_UTF_32_GURMUKHI_LETTER_LA 0x0A32 #define T_UTF_32_GURMUKHI_LETTER_LLA 0x0A33 #define T_UTF_32_GURMUKHI_LETTER_VA 0x0A35 #define T_UTF_32_GURMUKHI_LETTER_SHA 0x0A36 #define T_UTF_32_GURMUKHI_LETTER_SA 0x0A38 #define T_UTF_32_GURMUKHI_LETTER_HA 0x0A39 #define T_UTF_32_GURMUKHI_SIGN_NUKTA 0x0A3C #define T_UTF_32_GURMUKHI_VOWEL_SIGN_AA 0x0A3E #define T_UTF_32_GURMUKHI_VOWEL_SIGN_I 0x0A3F #define T_UTF_32_GURMUKHI_VOWEL_SIGN_II 0x0A40 #define T_UTF_32_GURMUKHI_VOWEL_SIGN_U 0x0A41 #define T_UTF_32_GURMUKHI_VOWEL_SIGN_UU 0x0A42 #define T_UTF_32_GURMUKHI_VOWEL_SIGN_EE 0x0A47 #define T_UTF_32_GURMUKHI_VOWEL_SIGN_AI 0x0A48 #define T_UTF_32_GURMUKHI_VOWEL_SIGN_OO 0x0A4B #define T_UTF_32_GURMUKHI_VOWEL_SIGN_AU 0x0A4C #define T_UTF_32_GURMUKHI_SIGN_VIRAMA 0x0A4D #define T_UTF_32_GURMUKHI_SIGN_UDAAT 0x0A51 #define T_UTF_32_GURMUKHI_LETTER_KHHA 0x0A59 #define T_UTF_32_GURMUKHI_LETTER_GHHA 0x0A5A #define T_UTF_32_GURMUKHI_LETTER_ZA 0x0A5B #define T_UTF_32_GURMUKHI_LETTER_RRA 0x0A5C #define T_UTF_32_GURMUKHI_LETTER_FA 0x0A5E #define T_UTF_32_GURMUKHI_DIGIT_ZERO 0x0A66 #define T_UTF_32_GURMUKHI_DIGIT_ONE 0x0A67 #define T_UTF_32_GURMUKHI_DIGIT_TWO 0x0A68 #define T_UTF_32_GURMUKHI_DIGIT_THREE 0x0A69 #define T_UTF_32_GURMUKHI_DIGIT_FOUR 0x0A6A #define T_UTF_32_GURMUKHI_DIGIT_FIVE 0x0A6B #define T_UTF_32_GURMUKHI_DIGIT_SIX 0x0A6C #define T_UTF_32_GURMUKHI_DIGIT_SEVEN 0x0A6D #define T_UTF_32_GURMUKHI_DIGIT_EIGHT 0x0A6E #define T_UTF_32_GURMUKHI_DIGIT_NINE 0x0A6F #define T_UTF_32_GURMUKHI_TIPPI 0x0A70 #define T_UTF_32_GURMUKHI_ADDAK 0x0A71 #define T_UTF_32_GURMUKHI_IRI 0x0A72 #define T_UTF_32_GURMUKHI_URA 0x0A73 #define T_UTF_32_GURMUKHI_EK_ONKAR 0x0A74 #define T_UTF_32_GURMUKHI_SIGN_YAKASH 0x0A75 #define T_UTF_32_GUJARATI_SIGN_CANDRABINDU 0x0A81 #define T_UTF_32_GUJARATI_SIGN_ANUSVARA 0x0A82 #define T_UTF_32_GUJARATI_SIGN_VISARGA 0x0A83 #define T_UTF_32_GUJARATI_LETTER_A 0x0A85 #define T_UTF_32_GUJARATI_LETTER_AA 0x0A86 #define T_UTF_32_GUJARATI_LETTER_I 0x0A87 #define T_UTF_32_GUJARATI_LETTER_II 0x0A88 #define T_UTF_32_GUJARATI_LETTER_U 0x0A89 #define T_UTF_32_GUJARATI_LETTER_UU 0x0A8A #define T_UTF_32_GUJARATI_LETTER_VOCALIC_R 0x0A8B #define T_UTF_32_GUJARATI_LETTER_VOCALIC_L 0x0A8C #define T_UTF_32_GUJARATI_VOWEL_CANDRA_E 0x0A8D #define T_UTF_32_GUJARATI_LETTER_E 0x0A8F #define T_UTF_32_GUJARATI_LETTER_AI 0x0A90 #define T_UTF_32_GUJARATI_VOWEL_CANDRA_O 0x0A91 #define T_UTF_32_GUJARATI_LETTER_O 0x0A93 #define T_UTF_32_GUJARATI_LETTER_AU 0x0A94 #define T_UTF_32_GUJARATI_LETTER_KA 0x0A95 #define T_UTF_32_GUJARATI_LETTER_KHA 0x0A96 #define T_UTF_32_GUJARATI_LETTER_GA 0x0A97 #define T_UTF_32_GUJARATI_LETTER_GHA 0x0A98 #define T_UTF_32_GUJARATI_LETTER_NGA 0x0A99 #define T_UTF_32_GUJARATI_LETTER_CA 0x0A9A #define T_UTF_32_GUJARATI_LETTER_CHA 0x0A9B #define T_UTF_32_GUJARATI_LETTER_JA 0x0A9C #define T_UTF_32_GUJARATI_LETTER_JHA 0x0A9D #define T_UTF_32_GUJARATI_LETTER_NYA 0x0A9E #define T_UTF_32_GUJARATI_LETTER_TTA 0x0A9F #define T_UTF_32_GUJARATI_LETTER_TTHA 0x0AA0 #define T_UTF_32_GUJARATI_LETTER_DDA 0x0AA1 #define T_UTF_32_GUJARATI_LETTER_DDHA 0x0AA2 #define T_UTF_32_GUJARATI_LETTER_NNA 0x0AA3 #define T_UTF_32_GUJARATI_LETTER_TA 0x0AA4 #define T_UTF_32_GUJARATI_LETTER_THA 0x0AA5 #define T_UTF_32_GUJARATI_LETTER_DA 0x0AA6 #define T_UTF_32_GUJARATI_LETTER_DHA 0x0AA7 #define T_UTF_32_GUJARATI_LETTER_NA 0x0AA8 #define T_UTF_32_GUJARATI_LETTER_PA 0x0AAA #define T_UTF_32_GUJARATI_LETTER_PHA 0x0AAB #define T_UTF_32_GUJARATI_LETTER_BA 0x0AAC #define T_UTF_32_GUJARATI_LETTER_BHA 0x0AAD #define T_UTF_32_GUJARATI_LETTER_MA 0x0AAE #define T_UTF_32_GUJARATI_LETTER_YA 0x0AAF #define T_UTF_32_GUJARATI_LETTER_RA 0x0AB0 #define T_UTF_32_GUJARATI_LETTER_LA 0x0AB2 #define T_UTF_32_GUJARATI_LETTER_LLA 0x0AB3 #define T_UTF_32_GUJARATI_LETTER_VA 0x0AB5 #define T_UTF_32_GUJARATI_LETTER_SHA 0x0AB6 #define T_UTF_32_GUJARATI_LETTER_SSA 0x0AB7 #define T_UTF_32_GUJARATI_LETTER_SA 0x0AB8 #define T_UTF_32_GUJARATI_LETTER_HA 0x0AB9 #define T_UTF_32_GUJARATI_SIGN_NUKTA 0x0ABC #define T_UTF_32_GUJARATI_SIGN_AVAGRAHA 0x0ABD #define T_UTF_32_GUJARATI_VOWEL_SIGN_AA 0x0ABE #define T_UTF_32_GUJARATI_VOWEL_SIGN_I 0x0ABF #define T_UTF_32_GUJARATI_VOWEL_SIGN_II 0x0AC0 #define T_UTF_32_GUJARATI_VOWEL_SIGN_U 0x0AC1 #define T_UTF_32_GUJARATI_VOWEL_SIGN_UU 0x0AC2 #define T_UTF_32_GUJARATI_VOWEL_SIGN_VOCALIC_R 0x0AC3 #define T_UTF_32_GUJARATI_VOWEL_SIGN_VOCALIC_RR 0x0AC4 #define T_UTF_32_GUJARATI_VOWEL_SIGN_CANDRA_E 0x0AC5 #define T_UTF_32_GUJARATI_VOWEL_SIGN_E 0x0AC7 #define T_UTF_32_GUJARATI_VOWEL_SIGN_AI 0x0AC8 #define T_UTF_32_GUJARATI_VOWEL_SIGN_CANDRA_O 0x0AC9 #define T_UTF_32_GUJARATI_VOWEL_SIGN_O 0x0ACB #define T_UTF_32_GUJARATI_VOWEL_SIGN_AU 0x0ACC #define T_UTF_32_GUJARATI_SIGN_VIRAMA 0x0ACD #define T_UTF_32_GUJARATI_OM 0x0AD0 #define T_UTF_32_GUJARATI_LETTER_VOCALIC_RR 0x0AE0 #define T_UTF_32_GUJARATI_LETTER_VOCALIC_LL 0x0AE1 #define T_UTF_32_GUJARATI_VOWEL_SIGN_VOCALIC_L 0x0AE2 #define T_UTF_32_GUJARATI_VOWEL_SIGN_VOCALIC_LL 0x0AE3 #define T_UTF_32_GUJARATI_DIGIT_ZERO 0x0AE6 #define T_UTF_32_GUJARATI_DIGIT_ONE 0x0AE7 #define T_UTF_32_GUJARATI_DIGIT_TWO 0x0AE8 #define T_UTF_32_GUJARATI_DIGIT_THREE 0x0AE9 #define T_UTF_32_GUJARATI_DIGIT_FOUR 0x0AEA #define T_UTF_32_GUJARATI_DIGIT_FIVE 0x0AEB #define T_UTF_32_GUJARATI_DIGIT_SIX 0x0AEC #define T_UTF_32_GUJARATI_DIGIT_SEVEN 0x0AED #define T_UTF_32_GUJARATI_DIGIT_EIGHT 0x0AEE #define T_UTF_32_GUJARATI_DIGIT_NINE 0x0AEF #define T_UTF_32_GUJARATI_ABBREVIATION_SIGN 0x0AF0 #define T_UTF_32_GUJARATI_RUPEE_SIGN 0x0AF1 #define T_UTF_32_GUJARATI_LETTER_ZHA 0x0AF9 #define T_UTF_32_GUJARATI_SIGN_SUKUN 0x0AFA #define T_UTF_32_GUJARATI_SIGN_SHADDA 0x0AFB #define T_UTF_32_GUJARATI_SIGN_MADDAH 0x0AFC #define T_UTF_32_GUJARATI_SIGN_THREE_DOT_NUKTA_ABOVE 0x0AFD #define T_UTF_32_GUJARATI_SIGN_CIRCLE_NUKTA_ABOVE 0x0AFE #define T_UTF_32_GUJARATI_SIGN_TWO_CIRCLE_NUKTA_ABOVE 0x0AFF #define T_UTF_32_ORIYA_SIGN_CANDRABINDU 0x0B01 #define T_UTF_32_ORIYA_SIGN_ANUSVARA 0x0B02 #define T_UTF_32_ORIYA_SIGN_VISARGA 0x0B03 #define T_UTF_32_ORIYA_LETTER_A 0x0B05 #define T_UTF_32_ORIYA_LETTER_AA 0x0B06 #define T_UTF_32_ORIYA_LETTER_I 0x0B07 #define T_UTF_32_ORIYA_LETTER_II 0x0B08 #define T_UTF_32_ORIYA_LETTER_U 0x0B09 #define T_UTF_32_ORIYA_LETTER_UU 0x0B0A #define T_UTF_32_ORIYA_LETTER_VOCALIC_R 0x0B0B #define T_UTF_32_ORIYA_LETTER_VOCALIC_L 0x0B0C #define T_UTF_32_ORIYA_LETTER_E 0x0B0F #define T_UTF_32_ORIYA_LETTER_AI 0x0B10 #define T_UTF_32_ORIYA_LETTER_O 0x0B13 #define T_UTF_32_ORIYA_LETTER_AU 0x0B14 #define T_UTF_32_ORIYA_LETTER_KA 0x0B15 #define T_UTF_32_ORIYA_LETTER_KHA 0x0B16 #define T_UTF_32_ORIYA_LETTER_GA 0x0B17 #define T_UTF_32_ORIYA_LETTER_GHA 0x0B18 #define T_UTF_32_ORIYA_LETTER_NGA 0x0B19 #define T_UTF_32_ORIYA_LETTER_CA 0x0B1A #define T_UTF_32_ORIYA_LETTER_CHA 0x0B1B #define T_UTF_32_ORIYA_LETTER_JA 0x0B1C #define T_UTF_32_ORIYA_LETTER_JHA 0x0B1D #define T_UTF_32_ORIYA_LETTER_NYA 0x0B1E #define T_UTF_32_ORIYA_LETTER_TTA 0x0B1F #define T_UTF_32_ORIYA_LETTER_TTHA 0x0B20 #define T_UTF_32_ORIYA_LETTER_DDA 0x0B21 #define T_UTF_32_ORIYA_LETTER_DDHA 0x0B22 #define T_UTF_32_ORIYA_LETTER_NNA 0x0B23 #define T_UTF_32_ORIYA_LETTER_TA 0x0B24 #define T_UTF_32_ORIYA_LETTER_THA 0x0B25 #define T_UTF_32_ORIYA_LETTER_DA 0x0B26 #define T_UTF_32_ORIYA_LETTER_DHA 0x0B27 #define T_UTF_32_ORIYA_LETTER_NA 0x0B28 #define T_UTF_32_ORIYA_LETTER_PA 0x0B2A #define T_UTF_32_ORIYA_LETTER_PHA 0x0B2B #define T_UTF_32_ORIYA_LETTER_BA 0x0B2C #define T_UTF_32_ORIYA_LETTER_BHA 0x0B2D #define T_UTF_32_ORIYA_LETTER_MA 0x0B2E #define T_UTF_32_ORIYA_LETTER_YA 0x0B2F #define T_UTF_32_ORIYA_LETTER_RA 0x0B30 #define T_UTF_32_ORIYA_LETTER_LA 0x0B32 #define T_UTF_32_ORIYA_LETTER_LLA 0x0B33 #define T_UTF_32_ORIYA_LETTER_VA 0x0B35 #define T_UTF_32_ORIYA_LETTER_SHA 0x0B36 #define T_UTF_32_ORIYA_LETTER_SSA 0x0B37 #define T_UTF_32_ORIYA_LETTER_SA 0x0B38 #define T_UTF_32_ORIYA_LETTER_HA 0x0B39 #define T_UTF_32_ORIYA_SIGN_NUKTA 0x0B3C #define T_UTF_32_ORIYA_SIGN_AVAGRAHA 0x0B3D #define T_UTF_32_ORIYA_VOWEL_SIGN_AA 0x0B3E #define T_UTF_32_ORIYA_VOWEL_SIGN_I 0x0B3F #define T_UTF_32_ORIYA_VOWEL_SIGN_II 0x0B40 #define T_UTF_32_ORIYA_VOWEL_SIGN_U 0x0B41 #define T_UTF_32_ORIYA_VOWEL_SIGN_UU 0x0B42 #define T_UTF_32_ORIYA_VOWEL_SIGN_VOCALIC_R 0x0B43 #define T_UTF_32_ORIYA_VOWEL_SIGN_VOCALIC_RR 0x0B44 #define T_UTF_32_ORIYA_VOWEL_SIGN_E 0x0B47 #define T_UTF_32_ORIYA_VOWEL_SIGN_AI 0x0B48 #define T_UTF_32_ORIYA_VOWEL_SIGN_O 0x0B4B #define T_UTF_32_ORIYA_VOWEL_SIGN_AU 0x0B4C #define T_UTF_32_ORIYA_SIGN_VIRAMA 0x0B4D #define T_UTF_32_ORIYA_AI_LENGTH_MARK 0x0B56 #define T_UTF_32_ORIYA_AU_LENGTH_MARK 0x0B57 #define T_UTF_32_ORIYA_LETTER_RRA 0x0B5C #define T_UTF_32_ORIYA_LETTER_RHA 0x0B5D #define T_UTF_32_ORIYA_LETTER_YYA 0x0B5F #define T_UTF_32_ORIYA_LETTER_VOCALIC_RR 0x0B60 #define T_UTF_32_ORIYA_LETTER_VOCALIC_LL 0x0B61 #define T_UTF_32_ORIYA_VOWEL_SIGN_VOCALIC_L 0x0B62 #define T_UTF_32_ORIYA_VOWEL_SIGN_VOCALIC_LL 0x0B63 #define T_UTF_32_ORIYA_DIGIT_ZERO 0x0B66 #define T_UTF_32_ORIYA_DIGIT_ONE 0x0B67 #define T_UTF_32_ORIYA_DIGIT_TWO 0x0B68 #define T_UTF_32_ORIYA_DIGIT_THREE 0x0B69 #define T_UTF_32_ORIYA_DIGIT_FOUR 0x0B6A #define T_UTF_32_ORIYA_DIGIT_FIVE 0x0B6B #define T_UTF_32_ORIYA_DIGIT_SIX 0x0B6C #define T_UTF_32_ORIYA_DIGIT_SEVEN 0x0B6D #define T_UTF_32_ORIYA_DIGIT_EIGHT 0x0B6E #define T_UTF_32_ORIYA_DIGIT_NINE 0x0B6F #define T_UTF_32_ORIYA_ISSHAR 0x0B70 #define T_UTF_32_ORIYA_LETTER_WA 0x0B71 #define T_UTF_32_ORIYA_FRACTION_ONE_QUARTER 0x0B72 #define T_UTF_32_ORIYA_FRACTION_ONE_HALF 0x0B73 #define T_UTF_32_ORIYA_FRACTION_THREE_QUARTERS 0x0B74 #define T_UTF_32_ORIYA_FRACTION_ONE_SIXTEENTH 0x0B75 #define T_UTF_32_ORIYA_FRACTION_ONE_EIGHTH 0x0B76 #define T_UTF_32_ORIYA_FRACTION_THREE_SIXTEENTHS 0x0B77 #define T_UTF_32_TAMIL_SIGN_ANUSVARA 0x0B82 #define T_UTF_32_TAMIL_SIGN_VISARGA 0x0B83 #define T_UTF_32_TAMIL_LETTER_A 0x0B85 #define T_UTF_32_TAMIL_LETTER_AA 0x0B86 #define T_UTF_32_TAMIL_LETTER_I 0x0B87 #define T_UTF_32_TAMIL_LETTER_II 0x0B88 #define T_UTF_32_TAMIL_LETTER_U 0x0B89 #define T_UTF_32_TAMIL_LETTER_UU 0x0B8A #define T_UTF_32_TAMIL_LETTER_E 0x0B8E #define T_UTF_32_TAMIL_LETTER_EE 0x0B8F #define T_UTF_32_TAMIL_LETTER_AI 0x0B90 #define T_UTF_32_TAMIL_LETTER_O 0x0B92 #define T_UTF_32_TAMIL_LETTER_OO 0x0B93 #define T_UTF_32_TAMIL_LETTER_AU 0x0B94 #define T_UTF_32_TAMIL_LETTER_KA 0x0B95 #define T_UTF_32_TAMIL_LETTER_NGA 0x0B99 #define T_UTF_32_TAMIL_LETTER_CA 0x0B9A #define T_UTF_32_TAMIL_LETTER_JA 0x0B9C #define T_UTF_32_TAMIL_LETTER_NYA 0x0B9E #define T_UTF_32_TAMIL_LETTER_TTA 0x0B9F #define T_UTF_32_TAMIL_LETTER_NNA 0x0BA3 #define T_UTF_32_TAMIL_LETTER_TA 0x0BA4 #define T_UTF_32_TAMIL_LETTER_NA 0x0BA8 #define T_UTF_32_TAMIL_LETTER_NNNA 0x0BA9 #define T_UTF_32_TAMIL_LETTER_PA 0x0BAA #define T_UTF_32_TAMIL_LETTER_MA 0x0BAE #define T_UTF_32_TAMIL_LETTER_YA 0x0BAF #define T_UTF_32_TAMIL_LETTER_RA 0x0BB0 #define T_UTF_32_TAMIL_LETTER_RRA 0x0BB1 #define T_UTF_32_TAMIL_LETTER_LA 0x0BB2 #define T_UTF_32_TAMIL_LETTER_LLA 0x0BB3 #define T_UTF_32_TAMIL_LETTER_LLLA 0x0BB4 #define T_UTF_32_TAMIL_LETTER_VA 0x0BB5 #define T_UTF_32_TAMIL_LETTER_SHA 0x0BB6 #define T_UTF_32_TAMIL_LETTER_SSA 0x0BB7 #define T_UTF_32_TAMIL_LETTER_SA 0x0BB8 #define T_UTF_32_TAMIL_LETTER_HA 0x0BB9 #define T_UTF_32_TAMIL_VOWEL_SIGN_AA 0x0BBE #define T_UTF_32_TAMIL_VOWEL_SIGN_I 0x0BBF #define T_UTF_32_TAMIL_VOWEL_SIGN_II 0x0BC0 #define T_UTF_32_TAMIL_VOWEL_SIGN_U 0x0BC1 #define T_UTF_32_TAMIL_VOWEL_SIGN_UU 0x0BC2 #define T_UTF_32_TAMIL_VOWEL_SIGN_E 0x0BC6 #define T_UTF_32_TAMIL_VOWEL_SIGN_EE 0x0BC7 #define T_UTF_32_TAMIL_VOWEL_SIGN_AI 0x0BC8 #define T_UTF_32_TAMIL_VOWEL_SIGN_O 0x0BCA #define T_UTF_32_TAMIL_VOWEL_SIGN_OO 0x0BCB #define T_UTF_32_TAMIL_VOWEL_SIGN_AU 0x0BCC #define T_UTF_32_TAMIL_SIGN_VIRAMA 0x0BCD #define T_UTF_32_TAMIL_OM 0x0BD0 #define T_UTF_32_TAMIL_AU_LENGTH_MARK 0x0BD7 #define T_UTF_32_TAMIL_DIGIT_ZERO 0x0BE6 #define T_UTF_32_TAMIL_DIGIT_ONE 0x0BE7 #define T_UTF_32_TAMIL_DIGIT_TWO 0x0BE8 #define T_UTF_32_TAMIL_DIGIT_THREE 0x0BE9 #define T_UTF_32_TAMIL_DIGIT_FOUR 0x0BEA #define T_UTF_32_TAMIL_DIGIT_FIVE 0x0BEB #define T_UTF_32_TAMIL_DIGIT_SIX 0x0BEC #define T_UTF_32_TAMIL_DIGIT_SEVEN 0x0BED #define T_UTF_32_TAMIL_DIGIT_EIGHT 0x0BEE #define T_UTF_32_TAMIL_DIGIT_NINE 0x0BEF #define T_UTF_32_TAMIL_NUMBER_TEN 0x0BF0 #define T_UTF_32_TAMIL_NUMBER_ONE_HUNDRED 0x0BF1 #define T_UTF_32_TAMIL_NUMBER_ONE_THOUSAND 0x0BF2 #define T_UTF_32_TAMIL_DAY_SIGN 0x0BF3 #define T_UTF_32_TAMIL_MONTH_SIGN 0x0BF4 #define T_UTF_32_TAMIL_YEAR_SIGN 0x0BF5 #define T_UTF_32_TAMIL_DEBIT_SIGN 0x0BF6 #define T_UTF_32_TAMIL_CREDIT_SIGN 0x0BF7 #define T_UTF_32_TAMIL_AS_ABOVE_SIGN 0x0BF8 #define T_UTF_32_TAMIL_RUPEE_SIGN 0x0BF9 #define T_UTF_32_TAMIL_NUMBER_SIGN 0x0BFA #define T_UTF_32_TELUGU_SIGN_COMBINING_CANDRABINDU_ABOVE 0x0C00 #define T_UTF_32_TELUGU_SIGN_CANDRABINDU 0x0C01 #define T_UTF_32_TELUGU_SIGN_ANUSVARA 0x0C02 #define T_UTF_32_TELUGU_SIGN_VISARGA 0x0C03 #define T_UTF_32_TELUGU_LETTER_A 0x0C05 #define T_UTF_32_TELUGU_LETTER_AA 0x0C06 #define T_UTF_32_TELUGU_LETTER_I 0x0C07 #define T_UTF_32_TELUGU_LETTER_II 0x0C08 #define T_UTF_32_TELUGU_LETTER_U 0x0C09 #define T_UTF_32_TELUGU_LETTER_UU 0x0C0A #define T_UTF_32_TELUGU_LETTER_VOCALIC_R 0x0C0B #define T_UTF_32_TELUGU_LETTER_VOCALIC_L 0x0C0C #define T_UTF_32_TELUGU_LETTER_E 0x0C0E #define T_UTF_32_TELUGU_LETTER_EE 0x0C0F #define T_UTF_32_TELUGU_LETTER_AI 0x0C10 #define T_UTF_32_TELUGU_LETTER_O 0x0C12 #define T_UTF_32_TELUGU_LETTER_OO 0x0C13 #define T_UTF_32_TELUGU_LETTER_AU 0x0C14 #define T_UTF_32_TELUGU_LETTER_KA 0x0C15 #define T_UTF_32_TELUGU_LETTER_KHA 0x0C16 #define T_UTF_32_TELUGU_LETTER_GA 0x0C17 #define T_UTF_32_TELUGU_LETTER_GHA 0x0C18 #define T_UTF_32_TELUGU_LETTER_NGA 0x0C19 #define T_UTF_32_TELUGU_LETTER_CA 0x0C1A #define T_UTF_32_TELUGU_LETTER_CHA 0x0C1B #define T_UTF_32_TELUGU_LETTER_JA 0x0C1C #define T_UTF_32_TELUGU_LETTER_JHA 0x0C1D #define T_UTF_32_TELUGU_LETTER_NYA 0x0C1E #define T_UTF_32_TELUGU_LETTER_TTA 0x0C1F #define T_UTF_32_TELUGU_LETTER_TTHA 0x0C20 #define T_UTF_32_TELUGU_LETTER_DDA 0x0C21 #define T_UTF_32_TELUGU_LETTER_DDHA 0x0C22 #define T_UTF_32_TELUGU_LETTER_NNA 0x0C23 #define T_UTF_32_TELUGU_LETTER_TA 0x0C24 #define T_UTF_32_TELUGU_LETTER_THA 0x0C25 #define T_UTF_32_TELUGU_LETTER_DA 0x0C26 #define T_UTF_32_TELUGU_LETTER_DHA 0x0C27 #define T_UTF_32_TELUGU_LETTER_NA 0x0C28 #define T_UTF_32_TELUGU_LETTER_PA 0x0C2A #define T_UTF_32_TELUGU_LETTER_PHA 0x0C2B #define T_UTF_32_TELUGU_LETTER_BA 0x0C2C #define T_UTF_32_TELUGU_LETTER_BHA 0x0C2D #define T_UTF_32_TELUGU_LETTER_MA 0x0C2E #define T_UTF_32_TELUGU_LETTER_YA 0x0C2F #define T_UTF_32_TELUGU_LETTER_RA 0x0C30 #define T_UTF_32_TELUGU_LETTER_RRA 0x0C31 #define T_UTF_32_TELUGU_LETTER_LA 0x0C32 #define T_UTF_32_TELUGU_LETTER_LLA 0x0C33 #define T_UTF_32_TELUGU_LETTER_LLLA 0x0C34 #define T_UTF_32_TELUGU_LETTER_VA 0x0C35 #define T_UTF_32_TELUGU_LETTER_SHA 0x0C36 #define T_UTF_32_TELUGU_LETTER_SSA 0x0C37 #define T_UTF_32_TELUGU_LETTER_SA 0x0C38 #define T_UTF_32_TELUGU_LETTER_HA 0x0C39 #define T_UTF_32_TELUGU_SIGN_AVAGRAHA 0x0C3D #define T_UTF_32_TELUGU_VOWEL_SIGN_AA 0x0C3E #define T_UTF_32_TELUGU_VOWEL_SIGN_I 0x0C3F #define T_UTF_32_TELUGU_VOWEL_SIGN_II 0x0C40 #define T_UTF_32_TELUGU_VOWEL_SIGN_U 0x0C41 #define T_UTF_32_TELUGU_VOWEL_SIGN_UU 0x0C42 #define T_UTF_32_TELUGU_VOWEL_SIGN_VOCALIC_R 0x0C43 #define T_UTF_32_TELUGU_VOWEL_SIGN_VOCALIC_RR 0x0C44 #define T_UTF_32_TELUGU_VOWEL_SIGN_E 0x0C46 #define T_UTF_32_TELUGU_VOWEL_SIGN_EE 0x0C47 #define T_UTF_32_TELUGU_VOWEL_SIGN_AI 0x0C48 #define T_UTF_32_TELUGU_VOWEL_SIGN_O 0x0C4A #define T_UTF_32_TELUGU_VOWEL_SIGN_OO 0x0C4B #define T_UTF_32_TELUGU_VOWEL_SIGN_AU 0x0C4C #define T_UTF_32_TELUGU_SIGN_VIRAMA 0x0C4D #define T_UTF_32_TELUGU_LENGTH_MARK 0x0C55 #define T_UTF_32_TELUGU_AI_LENGTH_MARK 0x0C56 #define T_UTF_32_TELUGU_LETTER_TSA 0x0C58 #define T_UTF_32_TELUGU_LETTER_DZA 0x0C59 #define T_UTF_32_TELUGU_LETTER_RRRA 0x0C5A #define T_UTF_32_TELUGU_LETTER_VOCALIC_RR 0x0C60 #define T_UTF_32_TELUGU_LETTER_VOCALIC_LL 0x0C61 #define T_UTF_32_TELUGU_VOWEL_SIGN_VOCALIC_L 0x0C62 #define T_UTF_32_TELUGU_VOWEL_SIGN_VOCALIC_LL 0x0C63 #define T_UTF_32_TELUGU_DIGIT_ZERO 0x0C66 #define T_UTF_32_TELUGU_DIGIT_ONE 0x0C67 #define T_UTF_32_TELUGU_DIGIT_TWO 0x0C68 #define T_UTF_32_TELUGU_DIGIT_THREE 0x0C69 #define T_UTF_32_TELUGU_DIGIT_FOUR 0x0C6A #define T_UTF_32_TELUGU_DIGIT_FIVE 0x0C6B #define T_UTF_32_TELUGU_DIGIT_SIX 0x0C6C #define T_UTF_32_TELUGU_DIGIT_SEVEN 0x0C6D #define T_UTF_32_TELUGU_DIGIT_EIGHT 0x0C6E #define T_UTF_32_TELUGU_DIGIT_NINE 0x0C6F #define T_UTF_32_TELUGU_FRACTION_DIGIT_ZERO_FOR_ODD_POWERS_OF_FOUR 0x0C78 #define T_UTF_32_TELUGU_FRACTION_DIGIT_ONE_FOR_ODD_POWERS_OF_FOUR 0x0C79 #define T_UTF_32_TELUGU_FRACTION_DIGIT_TWO_FOR_ODD_POWERS_OF_FOUR 0x0C7A #define T_UTF_32_TELUGU_FRACTION_DIGIT_THREE_FOR_ODD_POWERS_OF_FOUR 0x0C7B #define T_UTF_32_TELUGU_FRACTION_DIGIT_ONE_FOR_EVEN_POWERS_OF_FOUR 0x0C7C #define T_UTF_32_TELUGU_FRACTION_DIGIT_TWO_FOR_EVEN_POWERS_OF_FOUR 0x0C7D #define T_UTF_32_TELUGU_FRACTION_DIGIT_THREE_FOR_EVEN_POWERS_OF_FOUR 0x0C7E #define T_UTF_32_TELUGU_SIGN_TUUMU 0x0C7F #define T_UTF_32_KANNADA_SIGN_SPACING_CANDRABINDU 0x0C80 #define T_UTF_32_KANNADA_SIGN_CANDRABINDU 0x0C81 #define T_UTF_32_KANNADA_SIGN_ANUSVARA 0x0C82 #define T_UTF_32_KANNADA_SIGN_VISARGA 0x0C83 #define T_UTF_32_KANNADA_LETTER_A 0x0C85 #define T_UTF_32_KANNADA_LETTER_AA 0x0C86 #define T_UTF_32_KANNADA_LETTER_I 0x0C87 #define T_UTF_32_KANNADA_LETTER_II 0x0C88 #define T_UTF_32_KANNADA_LETTER_U 0x0C89 #define T_UTF_32_KANNADA_LETTER_UU 0x0C8A #define T_UTF_32_KANNADA_LETTER_VOCALIC_R 0x0C8B #define T_UTF_32_KANNADA_LETTER_VOCALIC_L 0x0C8C #define T_UTF_32_KANNADA_LETTER_E 0x0C8E #define T_UTF_32_KANNADA_LETTER_EE 0x0C8F #define T_UTF_32_KANNADA_LETTER_AI 0x0C90 #define T_UTF_32_KANNADA_LETTER_O 0x0C92 #define T_UTF_32_KANNADA_LETTER_OO 0x0C93 #define T_UTF_32_KANNADA_LETTER_AU 0x0C94 #define T_UTF_32_KANNADA_LETTER_KA 0x0C95 #define T_UTF_32_KANNADA_LETTER_KHA 0x0C96 #define T_UTF_32_KANNADA_LETTER_GA 0x0C97 #define T_UTF_32_KANNADA_LETTER_GHA 0x0C98 #define T_UTF_32_KANNADA_LETTER_NGA 0x0C99 #define T_UTF_32_KANNADA_LETTER_CA 0x0C9A #define T_UTF_32_KANNADA_LETTER_CHA 0x0C9B #define T_UTF_32_KANNADA_LETTER_JA 0x0C9C #define T_UTF_32_KANNADA_LETTER_JHA 0x0C9D #define T_UTF_32_KANNADA_LETTER_NYA 0x0C9E #define T_UTF_32_KANNADA_LETTER_TTA 0x0C9F #define T_UTF_32_KANNADA_LETTER_TTHA 0x0CA0 #define T_UTF_32_KANNADA_LETTER_DDA 0x0CA1 #define T_UTF_32_KANNADA_LETTER_DDHA 0x0CA2 #define T_UTF_32_KANNADA_LETTER_NNA 0x0CA3 #define T_UTF_32_KANNADA_LETTER_TA 0x0CA4 #define T_UTF_32_KANNADA_LETTER_THA 0x0CA5 #define T_UTF_32_KANNADA_LETTER_DA 0x0CA6 #define T_UTF_32_KANNADA_LETTER_DHA 0x0CA7 #define T_UTF_32_KANNADA_LETTER_NA 0x0CA8 #define T_UTF_32_KANNADA_LETTER_PA 0x0CAA #define T_UTF_32_KANNADA_LETTER_PHA 0x0CAB #define T_UTF_32_KANNADA_LETTER_BA 0x0CAC #define T_UTF_32_KANNADA_LETTER_BHA 0x0CAD #define T_UTF_32_KANNADA_LETTER_MA 0x0CAE #define T_UTF_32_KANNADA_LETTER_YA 0x0CAF #define T_UTF_32_KANNADA_LETTER_RA 0x0CB0 #define T_UTF_32_KANNADA_LETTER_RRA 0x0CB1 #define T_UTF_32_KANNADA_LETTER_LA 0x0CB2 #define T_UTF_32_KANNADA_LETTER_LLA 0x0CB3 #define T_UTF_32_KANNADA_LETTER_VA 0x0CB5 #define T_UTF_32_KANNADA_LETTER_SHA 0x0CB6 #define T_UTF_32_KANNADA_LETTER_SSA 0x0CB7 #define T_UTF_32_KANNADA_LETTER_SA 0x0CB8 #define T_UTF_32_KANNADA_LETTER_HA 0x0CB9 #define T_UTF_32_KANNADA_SIGN_NUKTA 0x0CBC #define T_UTF_32_KANNADA_SIGN_AVAGRAHA 0x0CBD #define T_UTF_32_KANNADA_VOWEL_SIGN_AA 0x0CBE #define T_UTF_32_KANNADA_VOWEL_SIGN_I 0x0CBF #define T_UTF_32_KANNADA_VOWEL_SIGN_II 0x0CC0 #define T_UTF_32_KANNADA_VOWEL_SIGN_U 0x0CC1 #define T_UTF_32_KANNADA_VOWEL_SIGN_UU 0x0CC2 #define T_UTF_32_KANNADA_VOWEL_SIGN_VOCALIC_R 0x0CC3 #define T_UTF_32_KANNADA_VOWEL_SIGN_VOCALIC_RR 0x0CC4 #define T_UTF_32_KANNADA_VOWEL_SIGN_E 0x0CC6 #define T_UTF_32_KANNADA_VOWEL_SIGN_EE 0x0CC7 #define T_UTF_32_KANNADA_VOWEL_SIGN_AI 0x0CC8 #define T_UTF_32_KANNADA_VOWEL_SIGN_O 0x0CCA #define T_UTF_32_KANNADA_VOWEL_SIGN_OO 0x0CCB #define T_UTF_32_KANNADA_VOWEL_SIGN_AU 0x0CCC #define T_UTF_32_KANNADA_SIGN_VIRAMA 0x0CCD #define T_UTF_32_KANNADA_LENGTH_MARK 0x0CD5 #define T_UTF_32_KANNADA_AI_LENGTH_MARK 0x0CD6 #define T_UTF_32_KANNADA_LETTER_FA 0x0CDE #define T_UTF_32_KANNADA_LETTER_VOCALIC_RR 0x0CE0 #define T_UTF_32_KANNADA_LETTER_VOCALIC_LL 0x0CE1 #define T_UTF_32_KANNADA_VOWEL_SIGN_VOCALIC_L 0x0CE2 #define T_UTF_32_KANNADA_VOWEL_SIGN_VOCALIC_LL 0x0CE3 #define T_UTF_32_KANNADA_DIGIT_ZERO 0x0CE6 #define T_UTF_32_KANNADA_DIGIT_ONE 0x0CE7 #define T_UTF_32_KANNADA_DIGIT_TWO 0x0CE8 #define T_UTF_32_KANNADA_DIGIT_THREE 0x0CE9 #define T_UTF_32_KANNADA_DIGIT_FOUR 0x0CEA #define T_UTF_32_KANNADA_DIGIT_FIVE 0x0CEB #define T_UTF_32_KANNADA_DIGIT_SIX 0x0CEC #define T_UTF_32_KANNADA_DIGIT_SEVEN 0x0CED #define T_UTF_32_KANNADA_DIGIT_EIGHT 0x0CEE #define T_UTF_32_KANNADA_DIGIT_NINE 0x0CEF #define T_UTF_32_KANNADA_SIGN_JIHVAMULIYA 0x0CF1 #define T_UTF_32_KANNADA_SIGN_UPADHMANIYA 0x0CF2 #define T_UTF_32_MALAYALAM_SIGN_COMBINING_ANUSVARA_ABOVE 0x0D00 #define T_UTF_32_MALAYALAM_SIGN_CANDRABINDU 0x0D01 #define T_UTF_32_MALAYALAM_SIGN_ANUSVARA 0x0D02 #define T_UTF_32_MALAYALAM_SIGN_VISARGA 0x0D03 #define T_UTF_32_MALAYALAM_LETTER_A 0x0D05 #define T_UTF_32_MALAYALAM_LETTER_AA 0x0D06 #define T_UTF_32_MALAYALAM_LETTER_I 0x0D07 #define T_UTF_32_MALAYALAM_LETTER_II 0x0D08 #define T_UTF_32_MALAYALAM_LETTER_U 0x0D09 #define T_UTF_32_MALAYALAM_LETTER_UU 0x0D0A #define T_UTF_32_MALAYALAM_LETTER_VOCALIC_R 0x0D0B #define T_UTF_32_MALAYALAM_LETTER_VOCALIC_L 0x0D0C #define T_UTF_32_MALAYALAM_LETTER_E 0x0D0E #define T_UTF_32_MALAYALAM_LETTER_EE 0x0D0F #define T_UTF_32_MALAYALAM_LETTER_AI 0x0D10 #define T_UTF_32_MALAYALAM_LETTER_O 0x0D12 #define T_UTF_32_MALAYALAM_LETTER_OO 0x0D13 #define T_UTF_32_MALAYALAM_LETTER_AU 0x0D14 #define T_UTF_32_MALAYALAM_LETTER_KA 0x0D15 #define T_UTF_32_MALAYALAM_LETTER_KHA 0x0D16 #define T_UTF_32_MALAYALAM_LETTER_GA 0x0D17 #define T_UTF_32_MALAYALAM_LETTER_GHA 0x0D18 #define T_UTF_32_MALAYALAM_LETTER_NGA 0x0D19 #define T_UTF_32_MALAYALAM_LETTER_CA 0x0D1A #define T_UTF_32_MALAYALAM_LETTER_CHA 0x0D1B #define T_UTF_32_MALAYALAM_LETTER_JA 0x0D1C #define T_UTF_32_MALAYALAM_LETTER_JHA 0x0D1D #define T_UTF_32_MALAYALAM_LETTER_NYA 0x0D1E #define T_UTF_32_MALAYALAM_LETTER_TTA 0x0D1F #define T_UTF_32_MALAYALAM_LETTER_TTHA 0x0D20 #define T_UTF_32_MALAYALAM_LETTER_DDA 0x0D21 #define T_UTF_32_MALAYALAM_LETTER_DDHA 0x0D22 #define T_UTF_32_MALAYALAM_LETTER_NNA 0x0D23 #define T_UTF_32_MALAYALAM_LETTER_TA 0x0D24 #define T_UTF_32_MALAYALAM_LETTER_THA 0x0D25 #define T_UTF_32_MALAYALAM_LETTER_DA 0x0D26 #define T_UTF_32_MALAYALAM_LETTER_DHA 0x0D27 #define T_UTF_32_MALAYALAM_LETTER_NA 0x0D28 #define T_UTF_32_MALAYALAM_LETTER_NNNA 0x0D29 #define T_UTF_32_MALAYALAM_LETTER_PA 0x0D2A #define T_UTF_32_MALAYALAM_LETTER_PHA 0x0D2B #define T_UTF_32_MALAYALAM_LETTER_BA 0x0D2C #define T_UTF_32_MALAYALAM_LETTER_BHA 0x0D2D #define T_UTF_32_MALAYALAM_LETTER_MA 0x0D2E #define T_UTF_32_MALAYALAM_LETTER_YA 0x0D2F #define T_UTF_32_MALAYALAM_LETTER_RA 0x0D30 #define T_UTF_32_MALAYALAM_LETTER_RRA 0x0D31 #define T_UTF_32_MALAYALAM_LETTER_LA 0x0D32 #define T_UTF_32_MALAYALAM_LETTER_LLA 0x0D33 #define T_UTF_32_MALAYALAM_LETTER_LLLA 0x0D34 #define T_UTF_32_MALAYALAM_LETTER_VA 0x0D35 #define T_UTF_32_MALAYALAM_LETTER_SHA 0x0D36 #define T_UTF_32_MALAYALAM_LETTER_SSA 0x0D37 #define T_UTF_32_MALAYALAM_LETTER_SA 0x0D38 #define T_UTF_32_MALAYALAM_LETTER_HA 0x0D39 #define T_UTF_32_MALAYALAM_LETTER_TTTA 0x0D3A #define T_UTF_32_MALAYALAM_SIGN_VERTICAL_BAR_VIRAMA 0x0D3B #define T_UTF_32_MALAYALAM_SIGN_CIRCULAR_VIRAMA 0x0D3C #define T_UTF_32_MALAYALAM_SIGN_AVAGRAHA 0x0D3D #define T_UTF_32_MALAYALAM_VOWEL_SIGN_AA 0x0D3E #define T_UTF_32_MALAYALAM_VOWEL_SIGN_I 0x0D3F #define T_UTF_32_MALAYALAM_VOWEL_SIGN_II 0x0D40 #define T_UTF_32_MALAYALAM_VOWEL_SIGN_U 0x0D41 #define T_UTF_32_MALAYALAM_VOWEL_SIGN_UU 0x0D42 #define T_UTF_32_MALAYALAM_VOWEL_SIGN_VOCALIC_R 0x0D43 #define T_UTF_32_MALAYALAM_VOWEL_SIGN_VOCALIC_RR 0x0D44 #define T_UTF_32_MALAYALAM_VOWEL_SIGN_E 0x0D46 #define T_UTF_32_MALAYALAM_VOWEL_SIGN_EE 0x0D47 #define T_UTF_32_MALAYALAM_VOWEL_SIGN_AI 0x0D48 #define T_UTF_32_MALAYALAM_VOWEL_SIGN_O 0x0D4A #define T_UTF_32_MALAYALAM_VOWEL_SIGN_OO 0x0D4B #define T_UTF_32_MALAYALAM_VOWEL_SIGN_AU 0x0D4C #define T_UTF_32_MALAYALAM_SIGN_VIRAMA 0x0D4D #define T_UTF_32_MALAYALAM_LETTER_DOT_REPH 0x0D4E #define T_UTF_32_MALAYALAM_SIGN_PARA 0x0D4F #define T_UTF_32_MALAYALAM_LETTER_CHILLU_M 0x0D54 #define T_UTF_32_MALAYALAM_LETTER_CHILLU_Y 0x0D55 #define T_UTF_32_MALAYALAM_LETTER_CHILLU_LLL 0x0D56 #define T_UTF_32_MALAYALAM_AU_LENGTH_MARK 0x0D57 #define T_UTF_32_MALAYALAM_FRACTION_ONE_ONE_HUNDRED_AND_SIXTIETH 0x0D58 #define T_UTF_32_MALAYALAM_FRACTION_ONE_FORTIETH 0x0D59 #define T_UTF_32_MALAYALAM_FRACTION_THREE_EIGHTIETHS 0x0D5A #define T_UTF_32_MALAYALAM_FRACTION_ONE_TWENTIETH 0x0D5B #define T_UTF_32_MALAYALAM_FRACTION_ONE_TENTH 0x0D5C #define T_UTF_32_MALAYALAM_FRACTION_THREE_TWENTIETHS 0x0D5D #define T_UTF_32_MALAYALAM_FRACTION_ONE_FIFTH 0x0D5E #define T_UTF_32_MALAYALAM_LETTER_ARCHAIC_II 0x0D5F #define T_UTF_32_MALAYALAM_LETTER_VOCALIC_RR 0x0D60 #define T_UTF_32_MALAYALAM_LETTER_VOCALIC_LL 0x0D61 #define T_UTF_32_MALAYALAM_VOWEL_SIGN_VOCALIC_L 0x0D62 #define T_UTF_32_MALAYALAM_VOWEL_SIGN_VOCALIC_LL 0x0D63 #define T_UTF_32_MALAYALAM_DIGIT_ZERO 0x0D66 #define T_UTF_32_MALAYALAM_DIGIT_ONE 0x0D67 #define T_UTF_32_MALAYALAM_DIGIT_TWO 0x0D68 #define T_UTF_32_MALAYALAM_DIGIT_THREE 0x0D69 #define T_UTF_32_MALAYALAM_DIGIT_FOUR 0x0D6A #define T_UTF_32_MALAYALAM_DIGIT_FIVE 0x0D6B #define T_UTF_32_MALAYALAM_DIGIT_SIX 0x0D6C #define T_UTF_32_MALAYALAM_DIGIT_SEVEN 0x0D6D #define T_UTF_32_MALAYALAM_DIGIT_EIGHT 0x0D6E #define T_UTF_32_MALAYALAM_DIGIT_NINE 0x0D6F #define T_UTF_32_MALAYALAM_NUMBER_TEN 0x0D70 #define T_UTF_32_MALAYALAM_NUMBER_ONE_HUNDRED 0x0D71 #define T_UTF_32_MALAYALAM_NUMBER_ONE_THOUSAND 0x0D72 #define T_UTF_32_MALAYALAM_FRACTION_ONE_QUARTER 0x0D73 #define T_UTF_32_MALAYALAM_FRACTION_ONE_HALF 0x0D74 #define T_UTF_32_MALAYALAM_FRACTION_THREE_QUARTERS 0x0D75 #define T_UTF_32_MALAYALAM_FRACTION_ONE_SIXTEENTH 0x0D76 #define T_UTF_32_MALAYALAM_FRACTION_ONE_EIGHTH 0x0D77 #define T_UTF_32_MALAYALAM_FRACTION_THREE_SIXTEENTHS 0x0D78 #define T_UTF_32_MALAYALAM_DATE_MARK 0x0D79 #define T_UTF_32_MALAYALAM_LETTER_CHILLU_NN 0x0D7A #define T_UTF_32_MALAYALAM_LETTER_CHILLU_N 0x0D7B #define T_UTF_32_MALAYALAM_LETTER_CHILLU_RR 0x0D7C #define T_UTF_32_MALAYALAM_LETTER_CHILLU_L 0x0D7D #define T_UTF_32_MALAYALAM_LETTER_CHILLU_LL 0x0D7E #define T_UTF_32_MALAYALAM_LETTER_CHILLU_K 0x0D7F #define T_UTF_32_SINHALA_SIGN_ANUSVARAYA 0x0D82 #define T_UTF_32_SINHALA_SIGN_VISARGAYA 0x0D83 #define T_UTF_32_SINHALA_LETTER_AYANNA 0x0D85 #define T_UTF_32_SINHALA_LETTER_AAYANNA 0x0D86 #define T_UTF_32_SINHALA_LETTER_AEYANNA 0x0D87 #define T_UTF_32_SINHALA_LETTER_AEEYANNA 0x0D88 #define T_UTF_32_SINHALA_LETTER_IYANNA 0x0D89 #define T_UTF_32_SINHALA_LETTER_IIYANNA 0x0D8A #define T_UTF_32_SINHALA_LETTER_UYANNA 0x0D8B #define T_UTF_32_SINHALA_LETTER_UUYANNA 0x0D8C #define T_UTF_32_SINHALA_LETTER_IRUYANNA 0x0D8D #define T_UTF_32_SINHALA_LETTER_IRUUYANNA 0x0D8E #define T_UTF_32_SINHALA_LETTER_ILUYANNA 0x0D8F #define T_UTF_32_SINHALA_LETTER_ILUUYANNA 0x0D90 #define T_UTF_32_SINHALA_LETTER_EYANNA 0x0D91 #define T_UTF_32_SINHALA_LETTER_EEYANNA 0x0D92 #define T_UTF_32_SINHALA_LETTER_AIYANNA 0x0D93 #define T_UTF_32_SINHALA_LETTER_OYANNA 0x0D94 #define T_UTF_32_SINHALA_LETTER_OOYANNA 0x0D95 #define T_UTF_32_SINHALA_LETTER_AUYANNA 0x0D96 #define T_UTF_32_SINHALA_LETTER_ALPAPRAANA_KAYANNA 0x0D9A #define T_UTF_32_SINHALA_LETTER_MAHAAPRAANA_KAYANNA 0x0D9B #define T_UTF_32_SINHALA_LETTER_ALPAPRAANA_GAYANNA 0x0D9C #define T_UTF_32_SINHALA_LETTER_MAHAAPRAANA_GAYANNA 0x0D9D #define T_UTF_32_SINHALA_LETTER_KANTAJA_NAASIKYAYA 0x0D9E #define T_UTF_32_SINHALA_LETTER_SANYAKA_GAYANNA 0x0D9F #define T_UTF_32_SINHALA_LETTER_ALPAPRAANA_CAYANNA 0x0DA0 #define T_UTF_32_SINHALA_LETTER_MAHAAPRAANA_CAYANNA 0x0DA1 #define T_UTF_32_SINHALA_LETTER_ALPAPRAANA_JAYANNA 0x0DA2 #define T_UTF_32_SINHALA_LETTER_MAHAAPRAANA_JAYANNA 0x0DA3 #define T_UTF_32_SINHALA_LETTER_TAALUJA_NAASIKYAYA 0x0DA4 #define T_UTF_32_SINHALA_LETTER_TAALUJA_SANYOOGA_NAAKSIKYAYA 0x0DA5 #define T_UTF_32_SINHALA_LETTER_SANYAKA_JAYANNA 0x0DA6 #define T_UTF_32_SINHALA_LETTER_ALPAPRAANA_TTAYANNA 0x0DA7 #define T_UTF_32_SINHALA_LETTER_MAHAAPRAANA_TTAYANNA 0x0DA8 #define T_UTF_32_SINHALA_LETTER_ALPAPRAANA_DDAYANNA 0x0DA9 #define T_UTF_32_SINHALA_LETTER_MAHAAPRAANA_DDAYANNA 0x0DAA #define T_UTF_32_SINHALA_LETTER_MUURDHAJA_NAYANNA 0x0DAB #define T_UTF_32_SINHALA_LETTER_SANYAKA_DDAYANNA 0x0DAC #define T_UTF_32_SINHALA_LETTER_ALPAPRAANA_TAYANNA 0x0DAD #define T_UTF_32_SINHALA_LETTER_MAHAAPRAANA_TAYANNA 0x0DAE #define T_UTF_32_SINHALA_LETTER_ALPAPRAANA_DAYANNA 0x0DAF #define T_UTF_32_SINHALA_LETTER_MAHAAPRAANA_DAYANNA 0x0DB0 #define T_UTF_32_SINHALA_LETTER_DANTAJA_NAYANNA 0x0DB1 #define T_UTF_32_SINHALA_LETTER_SANYAKA_DAYANNA 0x0DB3 #define T_UTF_32_SINHALA_LETTER_ALPAPRAANA_PAYANNA 0x0DB4 #define T_UTF_32_SINHALA_LETTER_MAHAAPRAANA_PAYANNA 0x0DB5 #define T_UTF_32_SINHALA_LETTER_ALPAPRAANA_BAYANNA 0x0DB6 #define T_UTF_32_SINHALA_LETTER_MAHAAPRAANA_BAYANNA 0x0DB7 #define T_UTF_32_SINHALA_LETTER_MAYANNA 0x0DB8 #define T_UTF_32_SINHALA_LETTER_AMBA_BAYANNA 0x0DB9 #define T_UTF_32_SINHALA_LETTER_YAYANNA 0x0DBA #define T_UTF_32_SINHALA_LETTER_RAYANNA 0x0DBB #define T_UTF_32_SINHALA_LETTER_DANTAJA_LAYANNA 0x0DBD #define T_UTF_32_SINHALA_LETTER_VAYANNA 0x0DC0 #define T_UTF_32_SINHALA_LETTER_TAALUJA_SAYANNA 0x0DC1 #define T_UTF_32_SINHALA_LETTER_MUURDHAJA_SAYANNA 0x0DC2 #define T_UTF_32_SINHALA_LETTER_DANTAJA_SAYANNA 0x0DC3 #define T_UTF_32_SINHALA_LETTER_HAYANNA 0x0DC4 #define T_UTF_32_SINHALA_LETTER_MUURDHAJA_LAYANNA 0x0DC5 #define T_UTF_32_SINHALA_LETTER_FAYANNA 0x0DC6 #define T_UTF_32_SINHALA_SIGN_AL_LAKUNA 0x0DCA #define T_UTF_32_SINHALA_VOWEL_SIGN_AELA_PILLA 0x0DCF #define T_UTF_32_SINHALA_VOWEL_SIGN_KETTI_AEDA_PILLA 0x0DD0 #define T_UTF_32_SINHALA_VOWEL_SIGN_DIGA_AEDA_PILLA 0x0DD1 #define T_UTF_32_SINHALA_VOWEL_SIGN_KETTI_IS_PILLA 0x0DD2 #define T_UTF_32_SINHALA_VOWEL_SIGN_DIGA_IS_PILLA 0x0DD3 #define T_UTF_32_SINHALA_VOWEL_SIGN_KETTI_PAA_PILLA 0x0DD4 #define T_UTF_32_SINHALA_VOWEL_SIGN_DIGA_PAA_PILLA 0x0DD6 #define T_UTF_32_SINHALA_VOWEL_SIGN_GAETTA_PILLA 0x0DD8 #define T_UTF_32_SINHALA_VOWEL_SIGN_KOMBUVA 0x0DD9 #define T_UTF_32_SINHALA_VOWEL_SIGN_DIGA_KOMBUVA 0x0DDA #define T_UTF_32_SINHALA_VOWEL_SIGN_KOMBU_DEKA 0x0DDB #define T_UTF_32_SINHALA_VOWEL_SIGN_KOMBUVA_HAA_AELA_PILLA 0x0DDC #define T_UTF_32_SINHALA_VOWEL_SIGN_KOMBUVA_HAA_DIGA_AELA_PILLA 0x0DDD #define T_UTF_32_SINHALA_VOWEL_SIGN_KOMBUVA_HAA_GAYANUKITTA 0x0DDE #define T_UTF_32_SINHALA_VOWEL_SIGN_GAYANUKITTA 0x0DDF #define T_UTF_32_SINHALA_LITH_DIGIT_ZERO 0x0DE6 #define T_UTF_32_SINHALA_LITH_DIGIT_ONE 0x0DE7 #define T_UTF_32_SINHALA_LITH_DIGIT_TWO 0x0DE8 #define T_UTF_32_SINHALA_LITH_DIGIT_THREE 0x0DE9 #define T_UTF_32_SINHALA_LITH_DIGIT_FOUR 0x0DEA #define T_UTF_32_SINHALA_LITH_DIGIT_FIVE 0x0DEB #define T_UTF_32_SINHALA_LITH_DIGIT_SIX 0x0DEC #define T_UTF_32_SINHALA_LITH_DIGIT_SEVEN 0x0DED #define T_UTF_32_SINHALA_LITH_DIGIT_EIGHT 0x0DEE #define T_UTF_32_SINHALA_LITH_DIGIT_NINE 0x0DEF #define T_UTF_32_SINHALA_VOWEL_SIGN_DIGA_GAETTA_PILLA 0x0DF2 #define T_UTF_32_SINHALA_VOWEL_SIGN_DIGA_GAYANUKITTA 0x0DF3 #define T_UTF_32_SINHALA_PUNCTUATION_KUNDDALIYA 0x0DF4 #define T_UTF_32_THAI_CHARACTER_KO_KAI 0x0E01 #define T_UTF_32_THAI_CHARACTER_KHO_KHAI 0x0E02 #define T_UTF_32_THAI_CHARACTER_KHO_KHUAT 0x0E03 #define T_UTF_32_THAI_CHARACTER_KHO_KHWAI 0x0E04 #define T_UTF_32_THAI_CHARACTER_KHO_KHON 0x0E05 #define T_UTF_32_THAI_CHARACTER_KHO_RAKHANG 0x0E06 #define T_UTF_32_THAI_CHARACTER_NGO_NGU 0x0E07 #define T_UTF_32_THAI_CHARACTER_CHO_CHAN 0x0E08 #define T_UTF_32_THAI_CHARACTER_CHO_CHING 0x0E09 #define T_UTF_32_THAI_CHARACTER_CHO_CHANG 0x0E0A #define T_UTF_32_THAI_CHARACTER_SO_SO 0x0E0B #define T_UTF_32_THAI_CHARACTER_CHO_CHOE 0x0E0C #define T_UTF_32_THAI_CHARACTER_YO_YING 0x0E0D #define T_UTF_32_THAI_CHARACTER_DO_CHADA 0x0E0E #define T_UTF_32_THAI_CHARACTER_TO_PATAK 0x0E0F #define T_UTF_32_THAI_CHARACTER_THO_THAN 0x0E10 #define T_UTF_32_THAI_CHARACTER_THO_NANGMONTHO 0x0E11 #define T_UTF_32_THAI_CHARACTER_THO_PHUTHAO 0x0E12 #define T_UTF_32_THAI_CHARACTER_NO_NEN 0x0E13 #define T_UTF_32_THAI_CHARACTER_DO_DEK 0x0E14 #define T_UTF_32_THAI_CHARACTER_TO_TAO 0x0E15 #define T_UTF_32_THAI_CHARACTER_THO_THUNG 0x0E16 #define T_UTF_32_THAI_CHARACTER_THO_THAHAN 0x0E17 #define T_UTF_32_THAI_CHARACTER_THO_THONG 0x0E18 #define T_UTF_32_THAI_CHARACTER_NO_NU 0x0E19 #define T_UTF_32_THAI_CHARACTER_BO_BAIMAI 0x0E1A #define T_UTF_32_THAI_CHARACTER_PO_PLA 0x0E1B #define T_UTF_32_THAI_CHARACTER_PHO_PHUNG 0x0E1C #define T_UTF_32_THAI_CHARACTER_FO_FA 0x0E1D #define T_UTF_32_THAI_CHARACTER_PHO_PHAN 0x0E1E #define T_UTF_32_THAI_CHARACTER_FO_FAN 0x0E1F #define T_UTF_32_THAI_CHARACTER_PHO_SAMPHAO 0x0E20 #define T_UTF_32_THAI_CHARACTER_MO_MA 0x0E21 #define T_UTF_32_THAI_CHARACTER_YO_YAK 0x0E22 #define T_UTF_32_THAI_CHARACTER_RO_RUA 0x0E23 #define T_UTF_32_THAI_CHARACTER_RU 0x0E24 #define T_UTF_32_THAI_CHARACTER_LO_LING 0x0E25 #define T_UTF_32_THAI_CHARACTER_LU 0x0E26 #define T_UTF_32_THAI_CHARACTER_WO_WAEN 0x0E27 #define T_UTF_32_THAI_CHARACTER_SO_SALA 0x0E28 #define T_UTF_32_THAI_CHARACTER_SO_RUSI 0x0E29 #define T_UTF_32_THAI_CHARACTER_SO_SUA 0x0E2A #define T_UTF_32_THAI_CHARACTER_HO_HIP 0x0E2B #define T_UTF_32_THAI_CHARACTER_LO_CHULA 0x0E2C #define T_UTF_32_THAI_CHARACTER_O_ANG 0x0E2D #define T_UTF_32_THAI_CHARACTER_HO_NOKHUK 0x0E2E #define T_UTF_32_THAI_CHARACTER_PAIYANNOI 0x0E2F #define T_UTF_32_THAI_CHARACTER_SARA_A 0x0E30 #define T_UTF_32_THAI_CHARACTER_MAI_HAN_AKAT 0x0E31 #define T_UTF_32_THAI_CHARACTER_SARA_AA 0x0E32 #define T_UTF_32_THAI_CHARACTER_SARA_AM 0x0E33 #define T_UTF_32_THAI_CHARACTER_SARA_I 0x0E34 #define T_UTF_32_THAI_CHARACTER_SARA_II 0x0E35 #define T_UTF_32_THAI_CHARACTER_SARA_UE 0x0E36 #define T_UTF_32_THAI_CHARACTER_SARA_UEE 0x0E37 #define T_UTF_32_THAI_CHARACTER_SARA_U 0x0E38 #define T_UTF_32_THAI_CHARACTER_SARA_UU 0x0E39 #define T_UTF_32_THAI_CHARACTER_PHINTHU 0x0E3A #define T_UTF_32_THAI_CURRENCY_SYMBOL_BAHT 0x0E3F #define T_UTF_32_THAI_CHARACTER_SARA_E 0x0E40 #define T_UTF_32_THAI_CHARACTER_SARA_AE 0x0E41 #define T_UTF_32_THAI_CHARACTER_SARA_O 0x0E42 #define T_UTF_32_THAI_CHARACTER_SARA_AI_MAIMUAN 0x0E43 #define T_UTF_32_THAI_CHARACTER_SARA_AI_MAIMALAI 0x0E44 #define T_UTF_32_THAI_CHARACTER_LAKKHANGYAO 0x0E45 #define T_UTF_32_THAI_CHARACTER_MAIYAMOK 0x0E46 #define T_UTF_32_THAI_CHARACTER_MAITAIKHU 0x0E47 #define T_UTF_32_THAI_CHARACTER_MAI_EK 0x0E48 #define T_UTF_32_THAI_CHARACTER_MAI_THO 0x0E49 #define T_UTF_32_THAI_CHARACTER_MAI_TRI 0x0E4A #define T_UTF_32_THAI_CHARACTER_MAI_CHATTAWA 0x0E4B #define T_UTF_32_THAI_CHARACTER_THANTHAKHAT 0x0E4C #define T_UTF_32_THAI_CHARACTER_NIKHAHIT 0x0E4D #define T_UTF_32_THAI_CHARACTER_YAMAKKAN 0x0E4E #define T_UTF_32_THAI_CHARACTER_FONGMAN 0x0E4F #define T_UTF_32_THAI_DIGIT_ZERO 0x0E50 #define T_UTF_32_THAI_DIGIT_ONE 0x0E51 #define T_UTF_32_THAI_DIGIT_TWO 0x0E52 #define T_UTF_32_THAI_DIGIT_THREE 0x0E53 #define T_UTF_32_THAI_DIGIT_FOUR 0x0E54 #define T_UTF_32_THAI_DIGIT_FIVE 0x0E55 #define T_UTF_32_THAI_DIGIT_SIX 0x0E56 #define T_UTF_32_THAI_DIGIT_SEVEN 0x0E57 #define T_UTF_32_THAI_DIGIT_EIGHT 0x0E58 #define T_UTF_32_THAI_DIGIT_NINE 0x0E59 #define T_UTF_32_THAI_CHARACTER_ANGKHANKHU 0x0E5A #define T_UTF_32_THAI_CHARACTER_KHOMUT 0x0E5B #define T_UTF_32_LAO_LETTER_KO 0x0E81 #define T_UTF_32_LAO_LETTER_KHO_SUNG 0x0E82 #define T_UTF_32_LAO_LETTER_KHO_TAM 0x0E84 #define T_UTF_32_LAO_LETTER_NGO 0x0E87 #define T_UTF_32_LAO_LETTER_CO 0x0E88 #define T_UTF_32_LAO_LETTER_SO_TAM 0x0E8A #define T_UTF_32_LAO_LETTER_NYO 0x0E8D #define T_UTF_32_LAO_LETTER_DO 0x0E94 #define T_UTF_32_LAO_LETTER_TO 0x0E95 #define T_UTF_32_LAO_LETTER_THO_SUNG 0x0E96 #define T_UTF_32_LAO_LETTER_THO_TAM 0x0E97 #define T_UTF_32_LAO_LETTER_NO 0x0E99 #define T_UTF_32_LAO_LETTER_BO 0x0E9A #define T_UTF_32_LAO_LETTER_PO 0x0E9B #define T_UTF_32_LAO_LETTER_PHO_SUNG 0x0E9C #define T_UTF_32_LAO_LETTER_FO_TAM 0x0E9D #define T_UTF_32_LAO_LETTER_PHO_TAM 0x0E9E #define T_UTF_32_LAO_LETTER_FO_SUNG 0x0E9F #define T_UTF_32_LAO_LETTER_MO 0x0EA1 #define T_UTF_32_LAO_LETTER_YO 0x0EA2 #define T_UTF_32_LAO_LETTER_LO_LING 0x0EA3 #define T_UTF_32_LAO_LETTER_LO_LOOT 0x0EA5 #define T_UTF_32_LAO_LETTER_WO 0x0EA7 #define T_UTF_32_LAO_LETTER_SO_SUNG 0x0EAA #define T_UTF_32_LAO_LETTER_HO_SUNG 0x0EAB #define T_UTF_32_LAO_LETTER_O 0x0EAD #define T_UTF_32_LAO_LETTER_HO_TAM 0x0EAE #define T_UTF_32_LAO_ELLIPSIS 0x0EAF #define T_UTF_32_LAO_VOWEL_SIGN_A 0x0EB0 #define T_UTF_32_LAO_VOWEL_SIGN_MAI_KAN 0x0EB1 #define T_UTF_32_LAO_VOWEL_SIGN_AA 0x0EB2 #define T_UTF_32_LAO_VOWEL_SIGN_AM 0x0EB3 #define T_UTF_32_LAO_VOWEL_SIGN_I 0x0EB4 #define T_UTF_32_LAO_VOWEL_SIGN_II 0x0EB5 #define T_UTF_32_LAO_VOWEL_SIGN_Y 0x0EB6 #define T_UTF_32_LAO_VOWEL_SIGN_YY 0x0EB7 #define T_UTF_32_LAO_VOWEL_SIGN_U 0x0EB8 #define T_UTF_32_LAO_VOWEL_SIGN_UU 0x0EB9 #define T_UTF_32_LAO_VOWEL_SIGN_MAI_KON 0x0EBB #define T_UTF_32_LAO_SEMIVOWEL_SIGN_LO 0x0EBC #define T_UTF_32_LAO_SEMIVOWEL_SIGN_NYO 0x0EBD #define T_UTF_32_LAO_VOWEL_SIGN_E 0x0EC0 #define T_UTF_32_LAO_VOWEL_SIGN_EI 0x0EC1 #define T_UTF_32_LAO_VOWEL_SIGN_O 0x0EC2 #define T_UTF_32_LAO_VOWEL_SIGN_AY 0x0EC3 #define T_UTF_32_LAO_VOWEL_SIGN_AI 0x0EC4 #define T_UTF_32_LAO_KO_LA 0x0EC6 #define T_UTF_32_LAO_TONE_MAI_EK 0x0EC8 #define T_UTF_32_LAO_TONE_MAI_THO 0x0EC9 #define T_UTF_32_LAO_TONE_MAI_TI 0x0ECA #define T_UTF_32_LAO_TONE_MAI_CATAWA 0x0ECB #define T_UTF_32_LAO_CANCELLATION_MARK 0x0ECC #define T_UTF_32_LAO_NIGGAHITA 0x0ECD #define T_UTF_32_LAO_DIGIT_ZERO 0x0ED0 #define T_UTF_32_LAO_DIGIT_ONE 0x0ED1 #define T_UTF_32_LAO_DIGIT_TWO 0x0ED2 #define T_UTF_32_LAO_DIGIT_THREE 0x0ED3 #define T_UTF_32_LAO_DIGIT_FOUR 0x0ED4 #define T_UTF_32_LAO_DIGIT_FIVE 0x0ED5 #define T_UTF_32_LAO_DIGIT_SIX 0x0ED6 #define T_UTF_32_LAO_DIGIT_SEVEN 0x0ED7 #define T_UTF_32_LAO_DIGIT_EIGHT 0x0ED8 #define T_UTF_32_LAO_DIGIT_NINE 0x0ED9 #define T_UTF_32_LAO_HO_NO 0x0EDC #define T_UTF_32_LAO_HO_MO 0x0EDD #define T_UTF_32_LAO_LETTER_KHMU_GO 0x0EDE #define T_UTF_32_LAO_LETTER_KHMU_NYO 0x0EDF #define T_UTF_32_TIBETAN_SYLLABLE_OM 0x0F00 #define T_UTF_32_TIBETAN_MARK_GTER_YIG_MGO_TRUNCATED_A 0x0F01 #define T_UTF_32_TIBETAN_MARK_GTER_YIG_MGO__UM_RNAM_BCAD_MA 0x0F02 #define T_UTF_32_TIBETAN_MARK_GTER_YIG_MGO__UM_GTER_TSHEG_MA 0x0F03 #define T_UTF_32_TIBETAN_MARK_INITIAL_YIG_MGO_MDUN_MA 0x0F04 #define T_UTF_32_TIBETAN_MARK_CLOSING_YIG_MGO_SGAB_MA 0x0F05 #define T_UTF_32_TIBETAN_MARK_CARET_YIG_MGO_PHUR_SHAD_MA 0x0F06 #define T_UTF_32_TIBETAN_MARK_YIG_MGO_TSHEG_SHAD_MA 0x0F07 #define T_UTF_32_TIBETAN_MARK_SBRUL_SHAD 0x0F08 #define T_UTF_32_TIBETAN_MARK_BSKUR_YIG_MGO 0x0F09 #define T_UTF_32_TIBETAN_MARK_BKA__SHOG_YIG_MGO 0x0F0A #define T_UTF_32_TIBETAN_MARK_INTERSYLLABIC_TSHEG 0x0F0B #define T_UTF_32_TIBETAN_MARK_DELIMITER_TSHEG_BSTAR 0x0F0C #define T_UTF_32_TIBETAN_MARK_SHAD 0x0F0D #define T_UTF_32_TIBETAN_MARK_NYIS_SHAD 0x0F0E #define T_UTF_32_TIBETAN_MARK_TSHEG_SHAD 0x0F0F #define T_UTF_32_TIBETAN_MARK_NYIS_TSHEG_SHAD 0x0F10 #define T_UTF_32_TIBETAN_MARK_RIN_CHEN_SPUNGS_SHAD 0x0F11 #define T_UTF_32_TIBETAN_MARK_RGYA_GRAM_SHAD 0x0F12 #define T_UTF_32_TIBETAN_MARK_CARET__DZUD_RTAGS_ME_LONG_CAN 0x0F13 #define T_UTF_32_TIBETAN_MARK_GTER_TSHEG 0x0F14 #define T_UTF_32_TIBETAN_LOGOTYPE_SIGN_CHAD_RTAGS 0x0F15 #define T_UTF_32_TIBETAN_LOGOTYPE_SIGN_LHAG_RTAGS 0x0F16 #define T_UTF_32_TIBETAN_ASTROLOGICAL_SIGN_SGRA_GCAN__CHAR_RTAGS 0x0F17 #define T_UTF_32_TIBETAN_ASTROLOGICAL_SIGN__KHYUD_PA 0x0F18 #define T_UTF_32_TIBETAN_ASTROLOGICAL_SIGN_SDONG_TSHUGS 0x0F19 #define T_UTF_32_TIBETAN_SIGN_RDEL_DKAR_GCIG 0x0F1A #define T_UTF_32_TIBETAN_SIGN_RDEL_DKAR_GNYIS 0x0F1B #define T_UTF_32_TIBETAN_SIGN_RDEL_DKAR_GSUM 0x0F1C #define T_UTF_32_TIBETAN_SIGN_RDEL_NAG_GCIG 0x0F1D #define T_UTF_32_TIBETAN_SIGN_RDEL_NAG_GNYIS 0x0F1E #define T_UTF_32_TIBETAN_SIGN_RDEL_DKAR_RDEL_NAG 0x0F1F #define T_UTF_32_TIBETAN_DIGIT_ZERO 0x0F20 #define T_UTF_32_TIBETAN_DIGIT_ONE 0x0F21 #define T_UTF_32_TIBETAN_DIGIT_TWO 0x0F22 #define T_UTF_32_TIBETAN_DIGIT_THREE 0x0F23 #define T_UTF_32_TIBETAN_DIGIT_FOUR 0x0F24 #define T_UTF_32_TIBETAN_DIGIT_FIVE 0x0F25 #define T_UTF_32_TIBETAN_DIGIT_SIX 0x0F26 #define T_UTF_32_TIBETAN_DIGIT_SEVEN 0x0F27 #define T_UTF_32_TIBETAN_DIGIT_EIGHT 0x0F28 #define T_UTF_32_TIBETAN_DIGIT_NINE 0x0F29 #define T_UTF_32_TIBETAN_DIGIT_HALF_ONE 0x0F2A #define T_UTF_32_TIBETAN_DIGIT_HALF_TWO 0x0F2B #define T_UTF_32_TIBETAN_DIGIT_HALF_THREE 0x0F2C #define T_UTF_32_TIBETAN_DIGIT_HALF_FOUR 0x0F2D #define T_UTF_32_TIBETAN_DIGIT_HALF_FIVE 0x0F2E #define T_UTF_32_TIBETAN_DIGIT_HALF_SIX 0x0F2F #define T_UTF_32_TIBETAN_DIGIT_HALF_SEVEN 0x0F30 #define T_UTF_32_TIBETAN_DIGIT_HALF_EIGHT 0x0F31 #define T_UTF_32_TIBETAN_DIGIT_HALF_NINE 0x0F32 #define T_UTF_32_TIBETAN_DIGIT_HALF_ZERO 0x0F33 #define T_UTF_32_TIBETAN_MARK_BSDUS_RTAGS 0x0F34 #define T_UTF_32_TIBETAN_MARK_NGAS_BZUNG_NYI_ZLA 0x0F35 #define T_UTF_32_TIBETAN_MARK_CARET__DZUD_RTAGS_BZHI_MIG_CAN 0x0F36 #define T_UTF_32_TIBETAN_MARK_NGAS_BZUNG_SGOR_RTAGS 0x0F37 #define T_UTF_32_TIBETAN_MARK_CHE_MGO 0x0F38 #define T_UTF_32_TIBETAN_MARK_TSA__PHRU 0x0F39 #define T_UTF_32_TIBETAN_MARK_GUG_RTAGS_GYON 0x0F3A #define T_UTF_32_TIBETAN_MARK_GUG_RTAGS_GYAS 0x0F3B #define T_UTF_32_TIBETAN_MARK_ANG_KHANG_GYON 0x0F3C #define T_UTF_32_TIBETAN_MARK_ANG_KHANG_GYAS 0x0F3D #define T_UTF_32_TIBETAN_SIGN_YAR_TSHES 0x0F3E #define T_UTF_32_TIBETAN_SIGN_MAR_TSHES 0x0F3F #define T_UTF_32_TIBETAN_LETTER_KA 0x0F40 #define T_UTF_32_TIBETAN_LETTER_KHA 0x0F41 #define T_UTF_32_TIBETAN_LETTER_GA 0x0F42 #define T_UTF_32_TIBETAN_LETTER_GHA 0x0F43 #define T_UTF_32_TIBETAN_LETTER_NGA 0x0F44 #define T_UTF_32_TIBETAN_LETTER_CA 0x0F45 #define T_UTF_32_TIBETAN_LETTER_CHA 0x0F46 #define T_UTF_32_TIBETAN_LETTER_JA 0x0F47 #define T_UTF_32_TIBETAN_LETTER_NYA 0x0F49 #define T_UTF_32_TIBETAN_LETTER_TTA 0x0F4A #define T_UTF_32_TIBETAN_LETTER_TTHA 0x0F4B #define T_UTF_32_TIBETAN_LETTER_DDA 0x0F4C #define T_UTF_32_TIBETAN_LETTER_DDHA 0x0F4D #define T_UTF_32_TIBETAN_LETTER_NNA 0x0F4E #define T_UTF_32_TIBETAN_LETTER_TA 0x0F4F #define T_UTF_32_TIBETAN_LETTER_THA 0x0F50 #define T_UTF_32_TIBETAN_LETTER_DA 0x0F51 #define T_UTF_32_TIBETAN_LETTER_DHA 0x0F52 #define T_UTF_32_TIBETAN_LETTER_NA 0x0F53 #define T_UTF_32_TIBETAN_LETTER_PA 0x0F54 #define T_UTF_32_TIBETAN_LETTER_PHA 0x0F55 #define T_UTF_32_TIBETAN_LETTER_BA 0x0F56 #define T_UTF_32_TIBETAN_LETTER_BHA 0x0F57 #define T_UTF_32_TIBETAN_LETTER_MA 0x0F58 #define T_UTF_32_TIBETAN_LETTER_TSA 0x0F59 #define T_UTF_32_TIBETAN_LETTER_TSHA 0x0F5A #define T_UTF_32_TIBETAN_LETTER_DZA 0x0F5B #define T_UTF_32_TIBETAN_LETTER_DZHA 0x0F5C #define T_UTF_32_TIBETAN_LETTER_WA 0x0F5D #define T_UTF_32_TIBETAN_LETTER_ZHA 0x0F5E #define T_UTF_32_TIBETAN_LETTER_ZA 0x0F5F #define T_UTF_32_TIBETAN_LETTER__A 0x0F60 #define T_UTF_32_TIBETAN_LETTER_YA 0x0F61 #define T_UTF_32_TIBETAN_LETTER_RA 0x0F62 #define T_UTF_32_TIBETAN_LETTER_LA 0x0F63 #define T_UTF_32_TIBETAN_LETTER_SHA 0x0F64 #define T_UTF_32_TIBETAN_LETTER_SSA 0x0F65 #define T_UTF_32_TIBETAN_LETTER_SA 0x0F66 #define T_UTF_32_TIBETAN_LETTER_HA 0x0F67 #define T_UTF_32_TIBETAN_LETTER_A 0x0F68 #define T_UTF_32_TIBETAN_LETTER_KSSA 0x0F69 #define T_UTF_32_TIBETAN_LETTER_FIXED_FORM_RA 0x0F6A #define T_UTF_32_TIBETAN_LETTER_KKA 0x0F6B #define T_UTF_32_TIBETAN_LETTER_RRA 0x0F6C #define T_UTF_32_TIBETAN_VOWEL_SIGN_AA 0x0F71 #define T_UTF_32_TIBETAN_VOWEL_SIGN_I 0x0F72 #define T_UTF_32_TIBETAN_VOWEL_SIGN_II 0x0F73 #define T_UTF_32_TIBETAN_VOWEL_SIGN_U 0x0F74 #define T_UTF_32_TIBETAN_VOWEL_SIGN_UU 0x0F75 #define T_UTF_32_TIBETAN_VOWEL_SIGN_VOCALIC_R 0x0F76 #define T_UTF_32_TIBETAN_VOWEL_SIGN_VOCALIC_RR 0x0F77 #define T_UTF_32_TIBETAN_VOWEL_SIGN_VOCALIC_L 0x0F78 #define T_UTF_32_TIBETAN_VOWEL_SIGN_VOCALIC_LL 0x0F79 #define T_UTF_32_TIBETAN_VOWEL_SIGN_E 0x0F7A #define T_UTF_32_TIBETAN_VOWEL_SIGN_EE 0x0F7B #define T_UTF_32_TIBETAN_VOWEL_SIGN_O 0x0F7C #define T_UTF_32_TIBETAN_VOWEL_SIGN_OO 0x0F7D #define T_UTF_32_TIBETAN_SIGN_RJES_SU_NGA_RO 0x0F7E #define T_UTF_32_TIBETAN_SIGN_RNAM_BCAD 0x0F7F #define T_UTF_32_TIBETAN_VOWEL_SIGN_REVERSED_I 0x0F80 #define T_UTF_32_TIBETAN_VOWEL_SIGN_REVERSED_II 0x0F81 #define T_UTF_32_TIBETAN_SIGN_NYI_ZLA_NAA_DA 0x0F82 #define T_UTF_32_TIBETAN_SIGN_SNA_LDAN 0x0F83 #define T_UTF_32_TIBETAN_MARK_HALANTA 0x0F84 #define T_UTF_32_TIBETAN_MARK_PALUTA 0x0F85 #define T_UTF_32_TIBETAN_SIGN_LCI_RTAGS 0x0F86 #define T_UTF_32_TIBETAN_SIGN_YANG_RTAGS 0x0F87 #define T_UTF_32_TIBETAN_SIGN_LCE_TSA_CAN 0x0F88 #define T_UTF_32_TIBETAN_SIGN_MCHU_CAN 0x0F89 #define T_UTF_32_TIBETAN_SIGN_GRU_CAN_RGYINGS 0x0F8A #define T_UTF_32_TIBETAN_SIGN_GRU_MED_RGYINGS 0x0F8B #define T_UTF_32_TIBETAN_SIGN_INVERTED_MCHU_CAN 0x0F8C #define T_UTF_32_TIBETAN_SUBJOINED_SIGN_LCE_TSA_CAN 0x0F8D #define T_UTF_32_TIBETAN_SUBJOINED_SIGN_MCHU_CAN 0x0F8E #define T_UTF_32_TIBETAN_SUBJOINED_SIGN_INVERTED_MCHU_CAN 0x0F8F #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_KA 0x0F90 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_KHA 0x0F91 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_GA 0x0F92 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_GHA 0x0F93 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_NGA 0x0F94 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_CA 0x0F95 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_CHA 0x0F96 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_JA 0x0F97 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_NYA 0x0F99 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_TTA 0x0F9A #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_TTHA 0x0F9B #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_DDA 0x0F9C #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_DDHA 0x0F9D #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_NNA 0x0F9E #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_TA 0x0F9F #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_THA 0x0FA0 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_DA 0x0FA1 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_DHA 0x0FA2 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_NA 0x0FA3 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_PA 0x0FA4 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_PHA 0x0FA5 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_BA 0x0FA6 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_BHA 0x0FA7 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_MA 0x0FA8 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_TSA 0x0FA9 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_TSHA 0x0FAA #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_DZA 0x0FAB #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_DZHA 0x0FAC #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_WA 0x0FAD #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_ZHA 0x0FAE #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_ZA 0x0FAF #define T_UTF_32_TIBETAN_SUBJOINED_LETTER__A 0x0FB0 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_YA 0x0FB1 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_RA 0x0FB2 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_LA 0x0FB3 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_SHA 0x0FB4 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_SSA 0x0FB5 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_SA 0x0FB6 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_HA 0x0FB7 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_A 0x0FB8 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_KSSA 0x0FB9 #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_FIXED_FORM_WA 0x0FBA #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_FIXED_FORM_YA 0x0FBB #define T_UTF_32_TIBETAN_SUBJOINED_LETTER_FIXED_FORM_RA 0x0FBC #define T_UTF_32_TIBETAN_KU_RU_KHA 0x0FBE #define T_UTF_32_TIBETAN_KU_RU_KHA_BZHI_MIG_CAN 0x0FBF #define T_UTF_32_TIBETAN_CANTILLATION_SIGN_HEAVY_BEAT 0x0FC0 #define T_UTF_32_TIBETAN_CANTILLATION_SIGN_LIGHT_BEAT 0x0FC1 #define T_UTF_32_TIBETAN_CANTILLATION_SIGN_CANG_TE_U 0x0FC2 #define T_UTF_32_TIBETAN_CANTILLATION_SIGN_SBUB__CHAL 0x0FC3 #define T_UTF_32_TIBETAN_SYMBOL_DRIL_BU 0x0FC4 #define T_UTF_32_TIBETAN_SYMBOL_RDO_RJE 0x0FC5 #define T_UTF_32_TIBETAN_SYMBOL_PADMA_GDAN 0x0FC6 #define T_UTF_32_TIBETAN_SYMBOL_RDO_RJE_RGYA_GRAM 0x0FC7 #define T_UTF_32_TIBETAN_SYMBOL_PHUR_PA 0x0FC8 #define T_UTF_32_TIBETAN_SYMBOL_NOR_BU 0x0FC9 #define T_UTF_32_TIBETAN_SYMBOL_NOR_BU_NYIS__KHYIL 0x0FCA #define T_UTF_32_TIBETAN_SYMBOL_NOR_BU_GSUM__KHYIL 0x0FCB #define T_UTF_32_TIBETAN_SYMBOL_NOR_BU_BZHI__KHYIL 0x0FCC #define T_UTF_32_TIBETAN_SIGN_RDEL_NAG_RDEL_DKAR 0x0FCE #define T_UTF_32_TIBETAN_SIGN_RDEL_NAG_GSUM 0x0FCF #define T_UTF_32_TIBETAN_MARK_BSKA__SHOG_GI_MGO_RGYAN 0x0FD0 #define T_UTF_32_TIBETAN_MARK_MNYAM_YIG_GI_MGO_RGYAN 0x0FD1 #define T_UTF_32_TIBETAN_MARK_NYIS_TSHEG 0x0FD2 #define T_UTF_32_TIBETAN_MARK_INITIAL_BRDA_RNYING_YIG_MGO_MDUN_MA 0x0FD3 #define T_UTF_32_TIBETAN_MARK_CLOSING_BRDA_RNYING_YIG_MGO_SGAB_MA 0x0FD4 #define T_UTF_32_RIGHT_FACING_SVASTI_SIGN 0x0FD5 #define T_UTF_32_LEFT_FACING_SVASTI_SIGN 0x0FD6 #define T_UTF_32_RIGHT_FACING_SVASTI_SIGN_WITH_DOTS 0x0FD7 #define T_UTF_32_LEFT_FACING_SVASTI_SIGN_WITH_DOTS 0x0FD8 #define T_UTF_32_TIBETAN_MARK_LEADING_MCHAN_RTAGS 0x0FD9 #define T_UTF_32_TIBETAN_MARK_TRAILING_MCHAN_RTAGS 0x0FDA #define T_UTF_32_MYANMAR_LETTER_KA 0x1000 #define T_UTF_32_MYANMAR_LETTER_KHA 0x1001 #define T_UTF_32_MYANMAR_LETTER_GA 0x1002 #define T_UTF_32_MYANMAR_LETTER_GHA 0x1003 #define T_UTF_32_MYANMAR_LETTER_NGA 0x1004 #define T_UTF_32_MYANMAR_LETTER_CA 0x1005 #define T_UTF_32_MYANMAR_LETTER_CHA 0x1006 #define T_UTF_32_MYANMAR_LETTER_JA 0x1007 #define T_UTF_32_MYANMAR_LETTER_JHA 0x1008 #define T_UTF_32_MYANMAR_LETTER_NYA 0x1009 #define T_UTF_32_MYANMAR_LETTER_NNYA 0x100A #define T_UTF_32_MYANMAR_LETTER_TTA 0x100B #define T_UTF_32_MYANMAR_LETTER_TTHA 0x100C #define T_UTF_32_MYANMAR_LETTER_DDA 0x100D #define T_UTF_32_MYANMAR_LETTER_DDHA 0x100E #define T_UTF_32_MYANMAR_LETTER_NNA 0x100F #define T_UTF_32_MYANMAR_LETTER_TA 0x1010 #define T_UTF_32_MYANMAR_LETTER_THA 0x1011 #define T_UTF_32_MYANMAR_LETTER_DA 0x1012 #define T_UTF_32_MYANMAR_LETTER_DHA 0x1013 #define T_UTF_32_MYANMAR_LETTER_NA 0x1014 #define T_UTF_32_MYANMAR_LETTER_PA 0x1015 #define T_UTF_32_MYANMAR_LETTER_PHA 0x1016 #define T_UTF_32_MYANMAR_LETTER_BA 0x1017 #define T_UTF_32_MYANMAR_LETTER_BHA 0x1018 #define T_UTF_32_MYANMAR_LETTER_MA 0x1019 #define T_UTF_32_MYANMAR_LETTER_YA 0x101A #define T_UTF_32_MYANMAR_LETTER_RA 0x101B #define T_UTF_32_MYANMAR_LETTER_LA 0x101C #define T_UTF_32_MYANMAR_LETTER_WA 0x101D #define T_UTF_32_MYANMAR_LETTER_SA 0x101E #define T_UTF_32_MYANMAR_LETTER_HA 0x101F #define T_UTF_32_MYANMAR_LETTER_LLA 0x1020 #define T_UTF_32_MYANMAR_LETTER_A 0x1021 #define T_UTF_32_MYANMAR_LETTER_SHAN_A 0x1022 #define T_UTF_32_MYANMAR_LETTER_I 0x1023 #define T_UTF_32_MYANMAR_LETTER_II 0x1024 #define T_UTF_32_MYANMAR_LETTER_U 0x1025 #define T_UTF_32_MYANMAR_LETTER_UU 0x1026 #define T_UTF_32_MYANMAR_LETTER_E 0x1027 #define T_UTF_32_MYANMAR_LETTER_MON_E 0x1028 #define T_UTF_32_MYANMAR_LETTER_O 0x1029 #define T_UTF_32_MYANMAR_LETTER_AU 0x102A #define T_UTF_32_MYANMAR_VOWEL_SIGN_TALL_AA 0x102B #define T_UTF_32_MYANMAR_VOWEL_SIGN_AA 0x102C #define T_UTF_32_MYANMAR_VOWEL_SIGN_I 0x102D #define T_UTF_32_MYANMAR_VOWEL_SIGN_II 0x102E #define T_UTF_32_MYANMAR_VOWEL_SIGN_U 0x102F #define T_UTF_32_MYANMAR_VOWEL_SIGN_UU 0x1030 #define T_UTF_32_MYANMAR_VOWEL_SIGN_E 0x1031 #define T_UTF_32_MYANMAR_VOWEL_SIGN_AI 0x1032 #define T_UTF_32_MYANMAR_VOWEL_SIGN_MON_II 0x1033 #define T_UTF_32_MYANMAR_VOWEL_SIGN_MON_O 0x1034 #define T_UTF_32_MYANMAR_VOWEL_SIGN_E_ABOVE 0x1035 #define T_UTF_32_MYANMAR_SIGN_ANUSVARA 0x1036 #define T_UTF_32_MYANMAR_SIGN_DOT_BELOW 0x1037 #define T_UTF_32_MYANMAR_SIGN_VISARGA 0x1038 #define T_UTF_32_MYANMAR_SIGN_VIRAMA 0x1039 #define T_UTF_32_MYANMAR_SIGN_ASAT 0x103A #define T_UTF_32_MYANMAR_CONSONANT_SIGN_MEDIAL_YA 0x103B #define T_UTF_32_MYANMAR_CONSONANT_SIGN_MEDIAL_RA 0x103C #define T_UTF_32_MYANMAR_CONSONANT_SIGN_MEDIAL_WA 0x103D #define T_UTF_32_MYANMAR_CONSONANT_SIGN_MEDIAL_HA 0x103E #define T_UTF_32_MYANMAR_LETTER_GREAT_SA 0x103F #define T_UTF_32_MYANMAR_DIGIT_ZERO 0x1040 #define T_UTF_32_MYANMAR_DIGIT_ONE 0x1041 #define T_UTF_32_MYANMAR_DIGIT_TWO 0x1042 #define T_UTF_32_MYANMAR_DIGIT_THREE 0x1043 #define T_UTF_32_MYANMAR_DIGIT_FOUR 0x1044 #define T_UTF_32_MYANMAR_DIGIT_FIVE 0x1045 #define T_UTF_32_MYANMAR_DIGIT_SIX 0x1046 #define T_UTF_32_MYANMAR_DIGIT_SEVEN 0x1047 #define T_UTF_32_MYANMAR_DIGIT_EIGHT 0x1048 #define T_UTF_32_MYANMAR_DIGIT_NINE 0x1049 #define T_UTF_32_MYANMAR_SIGN_LITTLE_SECTION 0x104A #define T_UTF_32_MYANMAR_SIGN_SECTION 0x104B #define T_UTF_32_MYANMAR_SYMBOL_LOCATIVE 0x104C #define T_UTF_32_MYANMAR_SYMBOL_COMPLETED 0x104D #define T_UTF_32_MYANMAR_SYMBOL_AFOREMENTIONED 0x104E #define T_UTF_32_MYANMAR_SYMBOL_GENITIVE 0x104F #define T_UTF_32_MYANMAR_LETTER_SHA 0x1050 #define T_UTF_32_MYANMAR_LETTER_SSA 0x1051 #define T_UTF_32_MYANMAR_LETTER_VOCALIC_R 0x1052 #define T_UTF_32_MYANMAR_LETTER_VOCALIC_RR 0x1053 #define T_UTF_32_MYANMAR_LETTER_VOCALIC_L 0x1054 #define T_UTF_32_MYANMAR_LETTER_VOCALIC_LL 0x1055 #define T_UTF_32_MYANMAR_VOWEL_SIGN_VOCALIC_R 0x1056 #define T_UTF_32_MYANMAR_VOWEL_SIGN_VOCALIC_RR 0x1057 #define T_UTF_32_MYANMAR_VOWEL_SIGN_VOCALIC_L 0x1058 #define T_UTF_32_MYANMAR_VOWEL_SIGN_VOCALIC_LL 0x1059 #define T_UTF_32_MYANMAR_LETTER_MON_NGA 0x105A #define T_UTF_32_MYANMAR_LETTER_MON_JHA 0x105B #define T_UTF_32_MYANMAR_LETTER_MON_BBA 0x105C #define T_UTF_32_MYANMAR_LETTER_MON_BBE 0x105D #define T_UTF_32_MYANMAR_CONSONANT_SIGN_MON_MEDIAL_NA 0x105E #define T_UTF_32_MYANMAR_CONSONANT_SIGN_MON_MEDIAL_MA 0x105F #define T_UTF_32_MYANMAR_CONSONANT_SIGN_MON_MEDIAL_LA 0x1060 #define T_UTF_32_MYANMAR_LETTER_SGAW_KAREN_SHA 0x1061 #define T_UTF_32_MYANMAR_VOWEL_SIGN_SGAW_KAREN_EU 0x1062 #define T_UTF_32_MYANMAR_TONE_MARK_SGAW_KAREN_HATHI 0x1063 #define T_UTF_32_MYANMAR_TONE_MARK_SGAW_KAREN_KE_PHO 0x1064 #define T_UTF_32_MYANMAR_LETTER_WESTERN_PWO_KAREN_THA 0x1065 #define T_UTF_32_MYANMAR_LETTER_WESTERN_PWO_KAREN_PWA 0x1066 #define T_UTF_32_MYANMAR_VOWEL_SIGN_WESTERN_PWO_KAREN_EU 0x1067 #define T_UTF_32_MYANMAR_VOWEL_SIGN_WESTERN_PWO_KAREN_UE 0x1068 #define T_UTF_32_MYANMAR_SIGN_WESTERN_PWO_KAREN_TONE_1 0x1069 #define T_UTF_32_MYANMAR_SIGN_WESTERN_PWO_KAREN_TONE_2 0x106A #define T_UTF_32_MYANMAR_SIGN_WESTERN_PWO_KAREN_TONE_3 0x106B #define T_UTF_32_MYANMAR_SIGN_WESTERN_PWO_KAREN_TONE_4 0x106C #define T_UTF_32_MYANMAR_SIGN_WESTERN_PWO_KAREN_TONE_5 0x106D #define T_UTF_32_MYANMAR_LETTER_EASTERN_PWO_KAREN_NNA 0x106E #define T_UTF_32_MYANMAR_LETTER_EASTERN_PWO_KAREN_YWA 0x106F #define T_UTF_32_MYANMAR_LETTER_EASTERN_PWO_KAREN_GHWA 0x1070 #define T_UTF_32_MYANMAR_VOWEL_SIGN_GEBA_KAREN_I 0x1071 #define T_UTF_32_MYANMAR_VOWEL_SIGN_KAYAH_OE 0x1072 #define T_UTF_32_MYANMAR_VOWEL_SIGN_KAYAH_U 0x1073 #define T_UTF_32_MYANMAR_VOWEL_SIGN_KAYAH_EE 0x1074 #define T_UTF_32_MYANMAR_LETTER_SHAN_KA 0x1075 #define T_UTF_32_MYANMAR_LETTER_SHAN_KHA 0x1076 #define T_UTF_32_MYANMAR_LETTER_SHAN_GA 0x1077 #define T_UTF_32_MYANMAR_LETTER_SHAN_CA 0x1078 #define T_UTF_32_MYANMAR_LETTER_SHAN_ZA 0x1079 #define T_UTF_32_MYANMAR_LETTER_SHAN_NYA 0x107A #define T_UTF_32_MYANMAR_LETTER_SHAN_DA 0x107B #define T_UTF_32_MYANMAR_LETTER_SHAN_NA 0x107C #define T_UTF_32_MYANMAR_LETTER_SHAN_PHA 0x107D #define T_UTF_32_MYANMAR_LETTER_SHAN_FA 0x107E #define T_UTF_32_MYANMAR_LETTER_SHAN_BA 0x107F #define T_UTF_32_MYANMAR_LETTER_SHAN_THA 0x1080 #define T_UTF_32_MYANMAR_LETTER_SHAN_HA 0x1081 #define T_UTF_32_MYANMAR_CONSONANT_SIGN_SHAN_MEDIAL_WA 0x1082 #define T_UTF_32_MYANMAR_VOWEL_SIGN_SHAN_AA 0x1083 #define T_UTF_32_MYANMAR_VOWEL_SIGN_SHAN_E 0x1084 #define T_UTF_32_MYANMAR_VOWEL_SIGN_SHAN_E_ABOVE 0x1085 #define T_UTF_32_MYANMAR_VOWEL_SIGN_SHAN_FINAL_Y 0x1086 #define T_UTF_32_MYANMAR_SIGN_SHAN_TONE_2 0x1087 #define T_UTF_32_MYANMAR_SIGN_SHAN_TONE_3 0x1088 #define T_UTF_32_MYANMAR_SIGN_SHAN_TONE_5 0x1089 #define T_UTF_32_MYANMAR_SIGN_SHAN_TONE_6 0x108A #define T_UTF_32_MYANMAR_SIGN_SHAN_COUNCIL_TONE_2 0x108B #define T_UTF_32_MYANMAR_SIGN_SHAN_COUNCIL_TONE_3 0x108C #define T_UTF_32_MYANMAR_SIGN_SHAN_COUNCIL_EMPHATIC_TONE 0x108D #define T_UTF_32_MYANMAR_LETTER_RUMAI_PALAUNG_FA 0x108E #define T_UTF_32_MYANMAR_SIGN_RUMAI_PALAUNG_TONE_5 0x108F #define T_UTF_32_MYANMAR_SHAN_DIGIT_ZERO 0x1090 #define T_UTF_32_MYANMAR_SHAN_DIGIT_ONE 0x1091 #define T_UTF_32_MYANMAR_SHAN_DIGIT_TWO 0x1092 #define T_UTF_32_MYANMAR_SHAN_DIGIT_THREE 0x1093 #define T_UTF_32_MYANMAR_SHAN_DIGIT_FOUR 0x1094 #define T_UTF_32_MYANMAR_SHAN_DIGIT_FIVE 0x1095 #define T_UTF_32_MYANMAR_SHAN_DIGIT_SIX 0x1096 #define T_UTF_32_MYANMAR_SHAN_DIGIT_SEVEN 0x1097 #define T_UTF_32_MYANMAR_SHAN_DIGIT_EIGHT 0x1098 #define T_UTF_32_MYANMAR_SHAN_DIGIT_NINE 0x1099 #define T_UTF_32_MYANMAR_SIGN_KHAMTI_TONE_1 0x109A #define T_UTF_32_MYANMAR_SIGN_KHAMTI_TONE_3 0x109B #define T_UTF_32_MYANMAR_VOWEL_SIGN_AITON_A 0x109C #define T_UTF_32_MYANMAR_VOWEL_SIGN_AITON_AI 0x109D #define T_UTF_32_MYANMAR_SYMBOL_SHAN_ONE 0x109E #define T_UTF_32_MYANMAR_SYMBOL_SHAN_EXCLAMATION 0x109F #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_AN 0x10A0 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_BAN 0x10A1 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_GAN 0x10A2 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_DON 0x10A3 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_EN 0x10A4 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_VIN 0x10A5 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_ZEN 0x10A6 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_TAN 0x10A7 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_IN 0x10A8 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_KAN 0x10A9 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_LAS 0x10AA #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_MAN 0x10AB #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_NAR 0x10AC #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_ON 0x10AD #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_PAR 0x10AE #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_ZHAR 0x10AF #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_RAE 0x10B0 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_SAN 0x10B1 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_TAR 0x10B2 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_UN 0x10B3 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_PHAR 0x10B4 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_KHAR 0x10B5 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_GHAN 0x10B6 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_QAR 0x10B7 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_SHIN 0x10B8 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_CHIN 0x10B9 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_CAN 0x10BA #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_JIL 0x10BB #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_CIL 0x10BC #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_CHAR 0x10BD #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_XAN 0x10BE #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_JHAN 0x10BF #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_HAE 0x10C0 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_HE 0x10C1 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_HIE 0x10C2 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_WE 0x10C3 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_HAR 0x10C4 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_HOE 0x10C5 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_YN 0x10C7 #define T_UTF_32_GEORGIAN_CAPITAL_LETTER_AEN 0x10CD #define T_UTF_32_GEORGIAN_LETTER_AN 0x10D0 #define T_UTF_32_GEORGIAN_LETTER_BAN 0x10D1 #define T_UTF_32_GEORGIAN_LETTER_GAN 0x10D2 #define T_UTF_32_GEORGIAN_LETTER_DON 0x10D3 #define T_UTF_32_GEORGIAN_LETTER_EN 0x10D4 #define T_UTF_32_GEORGIAN_LETTER_VIN 0x10D5 #define T_UTF_32_GEORGIAN_LETTER_ZEN 0x10D6 #define T_UTF_32_GEORGIAN_LETTER_TAN 0x10D7 #define T_UTF_32_GEORGIAN_LETTER_IN 0x10D8 #define T_UTF_32_GEORGIAN_LETTER_KAN 0x10D9 #define T_UTF_32_GEORGIAN_LETTER_LAS 0x10DA #define T_UTF_32_GEORGIAN_LETTER_MAN 0x10DB #define T_UTF_32_GEORGIAN_LETTER_NAR 0x10DC #define T_UTF_32_GEORGIAN_LETTER_ON 0x10DD #define T_UTF_32_GEORGIAN_LETTER_PAR 0x10DE #define T_UTF_32_GEORGIAN_LETTER_ZHAR 0x10DF #define T_UTF_32_GEORGIAN_LETTER_RAE 0x10E0 #define T_UTF_32_GEORGIAN_LETTER_SAN 0x10E1 #define T_UTF_32_GEORGIAN_LETTER_TAR 0x10E2 #define T_UTF_32_GEORGIAN_LETTER_UN 0x10E3 #define T_UTF_32_GEORGIAN_LETTER_PHAR 0x10E4 #define T_UTF_32_GEORGIAN_LETTER_KHAR 0x10E5 #define T_UTF_32_GEORGIAN_LETTER_GHAN 0x10E6 #define T_UTF_32_GEORGIAN_LETTER_QAR 0x10E7 #define T_UTF_32_GEORGIAN_LETTER_SHIN 0x10E8 #define T_UTF_32_GEORGIAN_LETTER_CHIN 0x10E9 #define T_UTF_32_GEORGIAN_LETTER_CAN 0x10EA #define T_UTF_32_GEORGIAN_LETTER_JIL 0x10EB #define T_UTF_32_GEORGIAN_LETTER_CIL 0x10EC #define T_UTF_32_GEORGIAN_LETTER_CHAR 0x10ED #define T_UTF_32_GEORGIAN_LETTER_XAN 0x10EE #define T_UTF_32_GEORGIAN_LETTER_JHAN 0x10EF #define T_UTF_32_GEORGIAN_LETTER_HAE 0x10F0 #define T_UTF_32_GEORGIAN_LETTER_HE 0x10F1 #define T_UTF_32_GEORGIAN_LETTER_HIE 0x10F2 #define T_UTF_32_GEORGIAN_LETTER_WE 0x10F3 #define T_UTF_32_GEORGIAN_LETTER_HAR 0x10F4 #define T_UTF_32_GEORGIAN_LETTER_HOE 0x10F5 #define T_UTF_32_GEORGIAN_LETTER_FI 0x10F6 #define T_UTF_32_GEORGIAN_LETTER_YN 0x10F7 #define T_UTF_32_GEORGIAN_LETTER_ELIFI 0x10F8 #define T_UTF_32_GEORGIAN_LETTER_TURNED_GAN 0x10F9 #define T_UTF_32_GEORGIAN_LETTER_AIN 0x10FA #define T_UTF_32_GEORGIAN_PARAGRAPH_SEPARATOR 0x10FB #define T_UTF_32_MODIFIER_LETTER_GEORGIAN_NAR 0x10FC #define T_UTF_32_GEORGIAN_LETTER_AEN 0x10FD #define T_UTF_32_GEORGIAN_LETTER_HARD_SIGN 0x10FE #define T_UTF_32_GEORGIAN_LETTER_LABIAL_SIGN 0x10FF #define T_UTF_32_HANGUL_CHOSEONG_KIYEOK 0x1100 #define T_UTF_32_HANGUL_CHOSEONG_SSANGKIYEOK 0x1101 #define T_UTF_32_HANGUL_CHOSEONG_NIEUN 0x1102 #define T_UTF_32_HANGUL_CHOSEONG_TIKEUT 0x1103 #define T_UTF_32_HANGUL_CHOSEONG_SSANGTIKEUT 0x1104 #define T_UTF_32_HANGUL_CHOSEONG_RIEUL 0x1105 #define T_UTF_32_HANGUL_CHOSEONG_MIEUM 0x1106 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP 0x1107 #define T_UTF_32_HANGUL_CHOSEONG_SSANGPIEUP 0x1108 #define T_UTF_32_HANGUL_CHOSEONG_SIOS 0x1109 #define T_UTF_32_HANGUL_CHOSEONG_SSANGSIOS 0x110A #define T_UTF_32_HANGUL_CHOSEONG_IEUNG 0x110B #define T_UTF_32_HANGUL_CHOSEONG_CIEUC 0x110C #define T_UTF_32_HANGUL_CHOSEONG_SSANGCIEUC 0x110D #define T_UTF_32_HANGUL_CHOSEONG_CHIEUCH 0x110E #define T_UTF_32_HANGUL_CHOSEONG_KHIEUKH 0x110F #define T_UTF_32_HANGUL_CHOSEONG_THIEUTH 0x1110 #define T_UTF_32_HANGUL_CHOSEONG_PHIEUPH 0x1111 #define T_UTF_32_HANGUL_CHOSEONG_HIEUH 0x1112 #define T_UTF_32_HANGUL_CHOSEONG_NIEUN_KIYEOK 0x1113 #define T_UTF_32_HANGUL_CHOSEONG_SSANGNIEUN 0x1114 #define T_UTF_32_HANGUL_CHOSEONG_NIEUN_TIKEUT 0x1115 #define T_UTF_32_HANGUL_CHOSEONG_NIEUN_PIEUP 0x1116 #define T_UTF_32_HANGUL_CHOSEONG_TIKEUT_KIYEOK 0x1117 #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_NIEUN 0x1118 #define T_UTF_32_HANGUL_CHOSEONG_SSANGRIEUL 0x1119 #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_HIEUH 0x111A #define T_UTF_32_HANGUL_CHOSEONG_KAPYEOUNRIEUL 0x111B #define T_UTF_32_HANGUL_CHOSEONG_MIEUM_PIEUP 0x111C #define T_UTF_32_HANGUL_CHOSEONG_KAPYEOUNMIEUM 0x111D #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_KIYEOK 0x111E #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_NIEUN 0x111F #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_TIKEUT 0x1120 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_SIOS 0x1121 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_SIOS_KIYEOK 0x1122 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_SIOS_TIKEUT 0x1123 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_SIOS_PIEUP 0x1124 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_SSANGSIOS 0x1125 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_SIOS_CIEUC 0x1126 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_CIEUC 0x1127 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_CHIEUCH 0x1128 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_THIEUTH 0x1129 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_PHIEUPH 0x112A #define T_UTF_32_HANGUL_CHOSEONG_KAPYEOUNPIEUP 0x112B #define T_UTF_32_HANGUL_CHOSEONG_KAPYEOUNSSANGPIEUP 0x112C #define T_UTF_32_HANGUL_CHOSEONG_SIOS_KIYEOK 0x112D #define T_UTF_32_HANGUL_CHOSEONG_SIOS_NIEUN 0x112E #define T_UTF_32_HANGUL_CHOSEONG_SIOS_TIKEUT 0x112F #define T_UTF_32_HANGUL_CHOSEONG_SIOS_RIEUL 0x1130 #define T_UTF_32_HANGUL_CHOSEONG_SIOS_MIEUM 0x1131 #define T_UTF_32_HANGUL_CHOSEONG_SIOS_PIEUP 0x1132 #define T_UTF_32_HANGUL_CHOSEONG_SIOS_PIEUP_KIYEOK 0x1133 #define T_UTF_32_HANGUL_CHOSEONG_SIOS_SSANGSIOS 0x1134 #define T_UTF_32_HANGUL_CHOSEONG_SIOS_IEUNG 0x1135 #define T_UTF_32_HANGUL_CHOSEONG_SIOS_CIEUC 0x1136 #define T_UTF_32_HANGUL_CHOSEONG_SIOS_CHIEUCH 0x1137 #define T_UTF_32_HANGUL_CHOSEONG_SIOS_KHIEUKH 0x1138 #define T_UTF_32_HANGUL_CHOSEONG_SIOS_THIEUTH 0x1139 #define T_UTF_32_HANGUL_CHOSEONG_SIOS_PHIEUPH 0x113A #define T_UTF_32_HANGUL_CHOSEONG_SIOS_HIEUH 0x113B #define T_UTF_32_HANGUL_CHOSEONG_CHITUEUMSIOS 0x113C #define T_UTF_32_HANGUL_CHOSEONG_CHITUEUMSSANGSIOS 0x113D #define T_UTF_32_HANGUL_CHOSEONG_CEONGCHIEUMSIOS 0x113E #define T_UTF_32_HANGUL_CHOSEONG_CEONGCHIEUMSSANGSIOS 0x113F #define T_UTF_32_HANGUL_CHOSEONG_PANSIOS 0x1140 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_KIYEOK 0x1141 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_TIKEUT 0x1142 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_MIEUM 0x1143 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_PIEUP 0x1144 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_SIOS 0x1145 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_PANSIOS 0x1146 #define T_UTF_32_HANGUL_CHOSEONG_SSANGIEUNG 0x1147 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_CIEUC 0x1148 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_CHIEUCH 0x1149 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_THIEUTH 0x114A #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_PHIEUPH 0x114B #define T_UTF_32_HANGUL_CHOSEONG_YESIEUNG 0x114C #define T_UTF_32_HANGUL_CHOSEONG_CIEUC_IEUNG 0x114D #define T_UTF_32_HANGUL_CHOSEONG_CHITUEUMCIEUC 0x114E #define T_UTF_32_HANGUL_CHOSEONG_CHITUEUMSSANGCIEUC 0x114F #define T_UTF_32_HANGUL_CHOSEONG_CEONGCHIEUMCIEUC 0x1150 #define T_UTF_32_HANGUL_CHOSEONG_CEONGCHIEUMSSANGCIEUC 0x1151 #define T_UTF_32_HANGUL_CHOSEONG_CHIEUCH_KHIEUKH 0x1152 #define T_UTF_32_HANGUL_CHOSEONG_CHIEUCH_HIEUH 0x1153 #define T_UTF_32_HANGUL_CHOSEONG_CHITUEUMCHIEUCH 0x1154 #define T_UTF_32_HANGUL_CHOSEONG_CEONGCHIEUMCHIEUCH 0x1155 #define T_UTF_32_HANGUL_CHOSEONG_PHIEUPH_PIEUP 0x1156 #define T_UTF_32_HANGUL_CHOSEONG_KAPYEOUNPHIEUPH 0x1157 #define T_UTF_32_HANGUL_CHOSEONG_SSANGHIEUH 0x1158 #define T_UTF_32_HANGUL_CHOSEONG_YEORINHIEUH 0x1159 #define T_UTF_32_HANGUL_CHOSEONG_KIYEOK_TIKEUT 0x115A #define T_UTF_32_HANGUL_CHOSEONG_NIEUN_SIOS 0x115B #define T_UTF_32_HANGUL_CHOSEONG_NIEUN_CIEUC 0x115C #define T_UTF_32_HANGUL_CHOSEONG_NIEUN_HIEUH 0x115D #define T_UTF_32_HANGUL_CHOSEONG_TIKEUT_RIEUL 0x115E #define T_UTF_32_HANGUL_CHOSEONG_FILLER 0x115F #define T_UTF_32_HANGUL_JUNGSEONG_FILLER 0x1160 #define T_UTF_32_HANGUL_JUNGSEONG_A 0x1161 #define T_UTF_32_HANGUL_JUNGSEONG_AE 0x1162 #define T_UTF_32_HANGUL_JUNGSEONG_YA 0x1163 #define T_UTF_32_HANGUL_JUNGSEONG_YAE 0x1164 #define T_UTF_32_HANGUL_JUNGSEONG_EO 0x1165 #define T_UTF_32_HANGUL_JUNGSEONG_E 0x1166 #define T_UTF_32_HANGUL_JUNGSEONG_YEO 0x1167 #define T_UTF_32_HANGUL_JUNGSEONG_YE 0x1168 #define T_UTF_32_HANGUL_JUNGSEONG_O 0x1169 #define T_UTF_32_HANGUL_JUNGSEONG_WA 0x116A #define T_UTF_32_HANGUL_JUNGSEONG_WAE 0x116B #define T_UTF_32_HANGUL_JUNGSEONG_OE 0x116C #define T_UTF_32_HANGUL_JUNGSEONG_YO 0x116D #define T_UTF_32_HANGUL_JUNGSEONG_U 0x116E #define T_UTF_32_HANGUL_JUNGSEONG_WEO 0x116F #define T_UTF_32_HANGUL_JUNGSEONG_WE 0x1170 #define T_UTF_32_HANGUL_JUNGSEONG_WI 0x1171 #define T_UTF_32_HANGUL_JUNGSEONG_YU 0x1172 #define T_UTF_32_HANGUL_JUNGSEONG_EU 0x1173 #define T_UTF_32_HANGUL_JUNGSEONG_YI 0x1174 #define T_UTF_32_HANGUL_JUNGSEONG_I 0x1175 #define T_UTF_32_HANGUL_JUNGSEONG_A_O 0x1176 #define T_UTF_32_HANGUL_JUNGSEONG_A_U 0x1177 #define T_UTF_32_HANGUL_JUNGSEONG_YA_O 0x1178 #define T_UTF_32_HANGUL_JUNGSEONG_YA_YO 0x1179 #define T_UTF_32_HANGUL_JUNGSEONG_EO_O 0x117A #define T_UTF_32_HANGUL_JUNGSEONG_EO_U 0x117B #define T_UTF_32_HANGUL_JUNGSEONG_EO_EU 0x117C #define T_UTF_32_HANGUL_JUNGSEONG_YEO_O 0x117D #define T_UTF_32_HANGUL_JUNGSEONG_YEO_U 0x117E #define T_UTF_32_HANGUL_JUNGSEONG_O_EO 0x117F #define T_UTF_32_HANGUL_JUNGSEONG_O_E 0x1180 #define T_UTF_32_HANGUL_JUNGSEONG_O_YE 0x1181 #define T_UTF_32_HANGUL_JUNGSEONG_O_O 0x1182 #define T_UTF_32_HANGUL_JUNGSEONG_O_U 0x1183 #define T_UTF_32_HANGUL_JUNGSEONG_YO_YA 0x1184 #define T_UTF_32_HANGUL_JUNGSEONG_YO_YAE 0x1185 #define T_UTF_32_HANGUL_JUNGSEONG_YO_YEO 0x1186 #define T_UTF_32_HANGUL_JUNGSEONG_YO_O 0x1187 #define T_UTF_32_HANGUL_JUNGSEONG_YO_I 0x1188 #define T_UTF_32_HANGUL_JUNGSEONG_U_A 0x1189 #define T_UTF_32_HANGUL_JUNGSEONG_U_AE 0x118A #define T_UTF_32_HANGUL_JUNGSEONG_U_EO_EU 0x118B #define T_UTF_32_HANGUL_JUNGSEONG_U_YE 0x118C #define T_UTF_32_HANGUL_JUNGSEONG_U_U 0x118D #define T_UTF_32_HANGUL_JUNGSEONG_YU_A 0x118E #define T_UTF_32_HANGUL_JUNGSEONG_YU_EO 0x118F #define T_UTF_32_HANGUL_JUNGSEONG_YU_E 0x1190 #define T_UTF_32_HANGUL_JUNGSEONG_YU_YEO 0x1191 #define T_UTF_32_HANGUL_JUNGSEONG_YU_YE 0x1192 #define T_UTF_32_HANGUL_JUNGSEONG_YU_U 0x1193 #define T_UTF_32_HANGUL_JUNGSEONG_YU_I 0x1194 #define T_UTF_32_HANGUL_JUNGSEONG_EU_U 0x1195 #define T_UTF_32_HANGUL_JUNGSEONG_EU_EU 0x1196 #define T_UTF_32_HANGUL_JUNGSEONG_YI_U 0x1197 #define T_UTF_32_HANGUL_JUNGSEONG_I_A 0x1198 #define T_UTF_32_HANGUL_JUNGSEONG_I_YA 0x1199 #define T_UTF_32_HANGUL_JUNGSEONG_I_O 0x119A #define T_UTF_32_HANGUL_JUNGSEONG_I_U 0x119B #define T_UTF_32_HANGUL_JUNGSEONG_I_EU 0x119C #define T_UTF_32_HANGUL_JUNGSEONG_I_ARAEA 0x119D #define T_UTF_32_HANGUL_JUNGSEONG_ARAEA 0x119E #define T_UTF_32_HANGUL_JUNGSEONG_ARAEA_EO 0x119F #define T_UTF_32_HANGUL_JUNGSEONG_ARAEA_U 0x11A0 #define T_UTF_32_HANGUL_JUNGSEONG_ARAEA_I 0x11A1 #define T_UTF_32_HANGUL_JUNGSEONG_SSANGARAEA 0x11A2 #define T_UTF_32_HANGUL_JUNGSEONG_A_EU 0x11A3 #define T_UTF_32_HANGUL_JUNGSEONG_YA_U 0x11A4 #define T_UTF_32_HANGUL_JUNGSEONG_YEO_YA 0x11A5 #define T_UTF_32_HANGUL_JUNGSEONG_O_YA 0x11A6 #define T_UTF_32_HANGUL_JUNGSEONG_O_YAE 0x11A7 #define T_UTF_32_HANGUL_JONGSEONG_KIYEOK 0x11A8 #define T_UTF_32_HANGUL_JONGSEONG_SSANGKIYEOK 0x11A9 #define T_UTF_32_HANGUL_JONGSEONG_KIYEOK_SIOS 0x11AA #define T_UTF_32_HANGUL_JONGSEONG_NIEUN 0x11AB #define T_UTF_32_HANGUL_JONGSEONG_NIEUN_CIEUC 0x11AC #define T_UTF_32_HANGUL_JONGSEONG_NIEUN_HIEUH 0x11AD #define T_UTF_32_HANGUL_JONGSEONG_TIKEUT 0x11AE #define T_UTF_32_HANGUL_JONGSEONG_RIEUL 0x11AF #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_KIYEOK 0x11B0 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_MIEUM 0x11B1 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_PIEUP 0x11B2 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_SIOS 0x11B3 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_THIEUTH 0x11B4 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_PHIEUPH 0x11B5 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_HIEUH 0x11B6 #define T_UTF_32_HANGUL_JONGSEONG_MIEUM 0x11B7 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP 0x11B8 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP_SIOS 0x11B9 #define T_UTF_32_HANGUL_JONGSEONG_SIOS 0x11BA #define T_UTF_32_HANGUL_JONGSEONG_SSANGSIOS 0x11BB #define T_UTF_32_HANGUL_JONGSEONG_IEUNG 0x11BC #define T_UTF_32_HANGUL_JONGSEONG_CIEUC 0x11BD #define T_UTF_32_HANGUL_JONGSEONG_CHIEUCH 0x11BE #define T_UTF_32_HANGUL_JONGSEONG_KHIEUKH 0x11BF #define T_UTF_32_HANGUL_JONGSEONG_THIEUTH 0x11C0 #define T_UTF_32_HANGUL_JONGSEONG_PHIEUPH 0x11C1 #define T_UTF_32_HANGUL_JONGSEONG_HIEUH 0x11C2 #define T_UTF_32_HANGUL_JONGSEONG_KIYEOK_RIEUL 0x11C3 #define T_UTF_32_HANGUL_JONGSEONG_KIYEOK_SIOS_KIYEOK 0x11C4 #define T_UTF_32_HANGUL_JONGSEONG_NIEUN_KIYEOK 0x11C5 #define T_UTF_32_HANGUL_JONGSEONG_NIEUN_TIKEUT 0x11C6 #define T_UTF_32_HANGUL_JONGSEONG_NIEUN_SIOS 0x11C7 #define T_UTF_32_HANGUL_JONGSEONG_NIEUN_PANSIOS 0x11C8 #define T_UTF_32_HANGUL_JONGSEONG_NIEUN_THIEUTH 0x11C9 #define T_UTF_32_HANGUL_JONGSEONG_TIKEUT_KIYEOK 0x11CA #define T_UTF_32_HANGUL_JONGSEONG_TIKEUT_RIEUL 0x11CB #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_KIYEOK_SIOS 0x11CC #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_NIEUN 0x11CD #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_TIKEUT 0x11CE #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_TIKEUT_HIEUH 0x11CF #define T_UTF_32_HANGUL_JONGSEONG_SSANGRIEUL 0x11D0 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_MIEUM_KIYEOK 0x11D1 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_MIEUM_SIOS 0x11D2 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_PIEUP_SIOS 0x11D3 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_PIEUP_HIEUH 0x11D4 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_KAPYEOUNPIEUP 0x11D5 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_SSANGSIOS 0x11D6 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_PANSIOS 0x11D7 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_KHIEUKH 0x11D8 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_YEORINHIEUH 0x11D9 #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_KIYEOK 0x11DA #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_RIEUL 0x11DB #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_PIEUP 0x11DC #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_SIOS 0x11DD #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_SSANGSIOS 0x11DE #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_PANSIOS 0x11DF #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_CHIEUCH 0x11E0 #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_HIEUH 0x11E1 #define T_UTF_32_HANGUL_JONGSEONG_KAPYEOUNMIEUM 0x11E2 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP_RIEUL 0x11E3 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP_PHIEUPH 0x11E4 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP_HIEUH 0x11E5 #define T_UTF_32_HANGUL_JONGSEONG_KAPYEOUNPIEUP 0x11E6 #define T_UTF_32_HANGUL_JONGSEONG_SIOS_KIYEOK 0x11E7 #define T_UTF_32_HANGUL_JONGSEONG_SIOS_TIKEUT 0x11E8 #define T_UTF_32_HANGUL_JONGSEONG_SIOS_RIEUL 0x11E9 #define T_UTF_32_HANGUL_JONGSEONG_SIOS_PIEUP 0x11EA #define T_UTF_32_HANGUL_JONGSEONG_PANSIOS 0x11EB #define T_UTF_32_HANGUL_JONGSEONG_IEUNG_KIYEOK 0x11EC #define T_UTF_32_HANGUL_JONGSEONG_IEUNG_SSANGKIYEOK 0x11ED #define T_UTF_32_HANGUL_JONGSEONG_SSANGIEUNG 0x11EE #define T_UTF_32_HANGUL_JONGSEONG_IEUNG_KHIEUKH 0x11EF #define T_UTF_32_HANGUL_JONGSEONG_YESIEUNG 0x11F0 #define T_UTF_32_HANGUL_JONGSEONG_YESIEUNG_SIOS 0x11F1 #define T_UTF_32_HANGUL_JONGSEONG_YESIEUNG_PANSIOS 0x11F2 #define T_UTF_32_HANGUL_JONGSEONG_PHIEUPH_PIEUP 0x11F3 #define T_UTF_32_HANGUL_JONGSEONG_KAPYEOUNPHIEUPH 0x11F4 #define T_UTF_32_HANGUL_JONGSEONG_HIEUH_NIEUN 0x11F5 #define T_UTF_32_HANGUL_JONGSEONG_HIEUH_RIEUL 0x11F6 #define T_UTF_32_HANGUL_JONGSEONG_HIEUH_MIEUM 0x11F7 #define T_UTF_32_HANGUL_JONGSEONG_HIEUH_PIEUP 0x11F8 #define T_UTF_32_HANGUL_JONGSEONG_YEORINHIEUH 0x11F9 #define T_UTF_32_HANGUL_JONGSEONG_KIYEOK_NIEUN 0x11FA #define T_UTF_32_HANGUL_JONGSEONG_KIYEOK_PIEUP 0x11FB #define T_UTF_32_HANGUL_JONGSEONG_KIYEOK_CHIEUCH 0x11FC #define T_UTF_32_HANGUL_JONGSEONG_KIYEOK_KHIEUKH 0x11FD #define T_UTF_32_HANGUL_JONGSEONG_KIYEOK_HIEUH 0x11FE #define T_UTF_32_HANGUL_JONGSEONG_SSANGNIEUN 0x11FF #define T_UTF_32_ETHIOPIC_SYLLABLE_HA 0x1200 #define T_UTF_32_ETHIOPIC_SYLLABLE_HU 0x1201 #define T_UTF_32_ETHIOPIC_SYLLABLE_HI 0x1202 #define T_UTF_32_ETHIOPIC_SYLLABLE_HAA 0x1203 #define T_UTF_32_ETHIOPIC_SYLLABLE_HEE 0x1204 #define T_UTF_32_ETHIOPIC_SYLLABLE_HE 0x1205 #define T_UTF_32_ETHIOPIC_SYLLABLE_HO 0x1206 #define T_UTF_32_ETHIOPIC_SYLLABLE_HOA 0x1207 #define T_UTF_32_ETHIOPIC_SYLLABLE_LA 0x1208 #define T_UTF_32_ETHIOPIC_SYLLABLE_LU 0x1209 #define T_UTF_32_ETHIOPIC_SYLLABLE_LI 0x120A #define T_UTF_32_ETHIOPIC_SYLLABLE_LAA 0x120B #define T_UTF_32_ETHIOPIC_SYLLABLE_LEE 0x120C #define T_UTF_32_ETHIOPIC_SYLLABLE_LE 0x120D #define T_UTF_32_ETHIOPIC_SYLLABLE_LO 0x120E #define T_UTF_32_ETHIOPIC_SYLLABLE_LWA 0x120F #define T_UTF_32_ETHIOPIC_SYLLABLE_HHA 0x1210 #define T_UTF_32_ETHIOPIC_SYLLABLE_HHU 0x1211 #define T_UTF_32_ETHIOPIC_SYLLABLE_HHI 0x1212 #define T_UTF_32_ETHIOPIC_SYLLABLE_HHAA 0x1213 #define T_UTF_32_ETHIOPIC_SYLLABLE_HHEE 0x1214 #define T_UTF_32_ETHIOPIC_SYLLABLE_HHE 0x1215 #define T_UTF_32_ETHIOPIC_SYLLABLE_HHO 0x1216 #define T_UTF_32_ETHIOPIC_SYLLABLE_HHWA 0x1217 #define T_UTF_32_ETHIOPIC_SYLLABLE_MA 0x1218 #define T_UTF_32_ETHIOPIC_SYLLABLE_MU 0x1219 #define T_UTF_32_ETHIOPIC_SYLLABLE_MI 0x121A #define T_UTF_32_ETHIOPIC_SYLLABLE_MAA 0x121B #define T_UTF_32_ETHIOPIC_SYLLABLE_MEE 0x121C #define T_UTF_32_ETHIOPIC_SYLLABLE_ME 0x121D #define T_UTF_32_ETHIOPIC_SYLLABLE_MO 0x121E #define T_UTF_32_ETHIOPIC_SYLLABLE_MWA 0x121F #define T_UTF_32_ETHIOPIC_SYLLABLE_SZA 0x1220 #define T_UTF_32_ETHIOPIC_SYLLABLE_SZU 0x1221 #define T_UTF_32_ETHIOPIC_SYLLABLE_SZI 0x1222 #define T_UTF_32_ETHIOPIC_SYLLABLE_SZAA 0x1223 #define T_UTF_32_ETHIOPIC_SYLLABLE_SZEE 0x1224 #define T_UTF_32_ETHIOPIC_SYLLABLE_SZE 0x1225 #define T_UTF_32_ETHIOPIC_SYLLABLE_SZO 0x1226 #define T_UTF_32_ETHIOPIC_SYLLABLE_SZWA 0x1227 #define T_UTF_32_ETHIOPIC_SYLLABLE_RA 0x1228 #define T_UTF_32_ETHIOPIC_SYLLABLE_RU 0x1229 #define T_UTF_32_ETHIOPIC_SYLLABLE_RI 0x122A #define T_UTF_32_ETHIOPIC_SYLLABLE_RAA 0x122B #define T_UTF_32_ETHIOPIC_SYLLABLE_REE 0x122C #define T_UTF_32_ETHIOPIC_SYLLABLE_RE 0x122D #define T_UTF_32_ETHIOPIC_SYLLABLE_RO 0x122E #define T_UTF_32_ETHIOPIC_SYLLABLE_RWA 0x122F #define T_UTF_32_ETHIOPIC_SYLLABLE_SA 0x1230 #define T_UTF_32_ETHIOPIC_SYLLABLE_SU 0x1231 #define T_UTF_32_ETHIOPIC_SYLLABLE_SI 0x1232 #define T_UTF_32_ETHIOPIC_SYLLABLE_SAA 0x1233 #define T_UTF_32_ETHIOPIC_SYLLABLE_SEE 0x1234 #define T_UTF_32_ETHIOPIC_SYLLABLE_SE 0x1235 #define T_UTF_32_ETHIOPIC_SYLLABLE_SO 0x1236 #define T_UTF_32_ETHIOPIC_SYLLABLE_SWA 0x1237 #define T_UTF_32_ETHIOPIC_SYLLABLE_SHA 0x1238 #define T_UTF_32_ETHIOPIC_SYLLABLE_SHU 0x1239 #define T_UTF_32_ETHIOPIC_SYLLABLE_SHI 0x123A #define T_UTF_32_ETHIOPIC_SYLLABLE_SHAA 0x123B #define T_UTF_32_ETHIOPIC_SYLLABLE_SHEE 0x123C #define T_UTF_32_ETHIOPIC_SYLLABLE_SHE 0x123D #define T_UTF_32_ETHIOPIC_SYLLABLE_SHO 0x123E #define T_UTF_32_ETHIOPIC_SYLLABLE_SHWA 0x123F #define T_UTF_32_ETHIOPIC_SYLLABLE_QA 0x1240 #define T_UTF_32_ETHIOPIC_SYLLABLE_QU 0x1241 #define T_UTF_32_ETHIOPIC_SYLLABLE_QI 0x1242 #define T_UTF_32_ETHIOPIC_SYLLABLE_QAA 0x1243 #define T_UTF_32_ETHIOPIC_SYLLABLE_QEE 0x1244 #define T_UTF_32_ETHIOPIC_SYLLABLE_QE 0x1245 #define T_UTF_32_ETHIOPIC_SYLLABLE_QO 0x1246 #define T_UTF_32_ETHIOPIC_SYLLABLE_QOA 0x1247 #define T_UTF_32_ETHIOPIC_SYLLABLE_QWA 0x1248 #define T_UTF_32_ETHIOPIC_SYLLABLE_QWI 0x124A #define T_UTF_32_ETHIOPIC_SYLLABLE_QWAA 0x124B #define T_UTF_32_ETHIOPIC_SYLLABLE_QWEE 0x124C #define T_UTF_32_ETHIOPIC_SYLLABLE_QWE 0x124D #define T_UTF_32_ETHIOPIC_SYLLABLE_QHA 0x1250 #define T_UTF_32_ETHIOPIC_SYLLABLE_QHU 0x1251 #define T_UTF_32_ETHIOPIC_SYLLABLE_QHI 0x1252 #define T_UTF_32_ETHIOPIC_SYLLABLE_QHAA 0x1253 #define T_UTF_32_ETHIOPIC_SYLLABLE_QHEE 0x1254 #define T_UTF_32_ETHIOPIC_SYLLABLE_QHE 0x1255 #define T_UTF_32_ETHIOPIC_SYLLABLE_QHO 0x1256 #define T_UTF_32_ETHIOPIC_SYLLABLE_QHWA 0x1258 #define T_UTF_32_ETHIOPIC_SYLLABLE_QHWI 0x125A #define T_UTF_32_ETHIOPIC_SYLLABLE_QHWAA 0x125B #define T_UTF_32_ETHIOPIC_SYLLABLE_QHWEE 0x125C #define T_UTF_32_ETHIOPIC_SYLLABLE_QHWE 0x125D #define T_UTF_32_ETHIOPIC_SYLLABLE_BA 0x1260 #define T_UTF_32_ETHIOPIC_SYLLABLE_BU 0x1261 #define T_UTF_32_ETHIOPIC_SYLLABLE_BI 0x1262 #define T_UTF_32_ETHIOPIC_SYLLABLE_BAA 0x1263 #define T_UTF_32_ETHIOPIC_SYLLABLE_BEE 0x1264 #define T_UTF_32_ETHIOPIC_SYLLABLE_BE 0x1265 #define T_UTF_32_ETHIOPIC_SYLLABLE_BO 0x1266 #define T_UTF_32_ETHIOPIC_SYLLABLE_BWA 0x1267 #define T_UTF_32_ETHIOPIC_SYLLABLE_VA 0x1268 #define T_UTF_32_ETHIOPIC_SYLLABLE_VU 0x1269 #define T_UTF_32_ETHIOPIC_SYLLABLE_VI 0x126A #define T_UTF_32_ETHIOPIC_SYLLABLE_VAA 0x126B #define T_UTF_32_ETHIOPIC_SYLLABLE_VEE 0x126C #define T_UTF_32_ETHIOPIC_SYLLABLE_VE 0x126D #define T_UTF_32_ETHIOPIC_SYLLABLE_VO 0x126E #define T_UTF_32_ETHIOPIC_SYLLABLE_VWA 0x126F #define T_UTF_32_ETHIOPIC_SYLLABLE_TA 0x1270 #define T_UTF_32_ETHIOPIC_SYLLABLE_TU 0x1271 #define T_UTF_32_ETHIOPIC_SYLLABLE_TI 0x1272 #define T_UTF_32_ETHIOPIC_SYLLABLE_TAA 0x1273 #define T_UTF_32_ETHIOPIC_SYLLABLE_TEE 0x1274 #define T_UTF_32_ETHIOPIC_SYLLABLE_TE 0x1275 #define T_UTF_32_ETHIOPIC_SYLLABLE_TO 0x1276 #define T_UTF_32_ETHIOPIC_SYLLABLE_TWA 0x1277 #define T_UTF_32_ETHIOPIC_SYLLABLE_CA 0x1278 #define T_UTF_32_ETHIOPIC_SYLLABLE_CU 0x1279 #define T_UTF_32_ETHIOPIC_SYLLABLE_CI 0x127A #define T_UTF_32_ETHIOPIC_SYLLABLE_CAA 0x127B #define T_UTF_32_ETHIOPIC_SYLLABLE_CEE 0x127C #define T_UTF_32_ETHIOPIC_SYLLABLE_CE 0x127D #define T_UTF_32_ETHIOPIC_SYLLABLE_CO 0x127E #define T_UTF_32_ETHIOPIC_SYLLABLE_CWA 0x127F #define T_UTF_32_ETHIOPIC_SYLLABLE_XA 0x1280 #define T_UTF_32_ETHIOPIC_SYLLABLE_XU 0x1281 #define T_UTF_32_ETHIOPIC_SYLLABLE_XI 0x1282 #define T_UTF_32_ETHIOPIC_SYLLABLE_XAA 0x1283 #define T_UTF_32_ETHIOPIC_SYLLABLE_XEE 0x1284 #define T_UTF_32_ETHIOPIC_SYLLABLE_XE 0x1285 #define T_UTF_32_ETHIOPIC_SYLLABLE_XO 0x1286 #define T_UTF_32_ETHIOPIC_SYLLABLE_XOA 0x1287 #define T_UTF_32_ETHIOPIC_SYLLABLE_XWA 0x1288 #define T_UTF_32_ETHIOPIC_SYLLABLE_XWI 0x128A #define T_UTF_32_ETHIOPIC_SYLLABLE_XWAA 0x128B #define T_UTF_32_ETHIOPIC_SYLLABLE_XWEE 0x128C #define T_UTF_32_ETHIOPIC_SYLLABLE_XWE 0x128D #define T_UTF_32_ETHIOPIC_SYLLABLE_NA 0x1290 #define T_UTF_32_ETHIOPIC_SYLLABLE_NU 0x1291 #define T_UTF_32_ETHIOPIC_SYLLABLE_NI 0x1292 #define T_UTF_32_ETHIOPIC_SYLLABLE_NAA 0x1293 #define T_UTF_32_ETHIOPIC_SYLLABLE_NEE 0x1294 #define T_UTF_32_ETHIOPIC_SYLLABLE_NE 0x1295 #define T_UTF_32_ETHIOPIC_SYLLABLE_NO 0x1296 #define T_UTF_32_ETHIOPIC_SYLLABLE_NWA 0x1297 #define T_UTF_32_ETHIOPIC_SYLLABLE_NYA 0x1298 #define T_UTF_32_ETHIOPIC_SYLLABLE_NYU 0x1299 #define T_UTF_32_ETHIOPIC_SYLLABLE_NYI 0x129A #define T_UTF_32_ETHIOPIC_SYLLABLE_NYAA 0x129B #define T_UTF_32_ETHIOPIC_SYLLABLE_NYEE 0x129C #define T_UTF_32_ETHIOPIC_SYLLABLE_NYE 0x129D #define T_UTF_32_ETHIOPIC_SYLLABLE_NYO 0x129E #define T_UTF_32_ETHIOPIC_SYLLABLE_NYWA 0x129F #define T_UTF_32_ETHIOPIC_SYLLABLE_GLOTTAL_A 0x12A0 #define T_UTF_32_ETHIOPIC_SYLLABLE_GLOTTAL_U 0x12A1 #define T_UTF_32_ETHIOPIC_SYLLABLE_GLOTTAL_I 0x12A2 #define T_UTF_32_ETHIOPIC_SYLLABLE_GLOTTAL_AA 0x12A3 #define T_UTF_32_ETHIOPIC_SYLLABLE_GLOTTAL_EE 0x12A4 #define T_UTF_32_ETHIOPIC_SYLLABLE_GLOTTAL_E 0x12A5 #define T_UTF_32_ETHIOPIC_SYLLABLE_GLOTTAL_O 0x12A6 #define T_UTF_32_ETHIOPIC_SYLLABLE_GLOTTAL_WA 0x12A7 #define T_UTF_32_ETHIOPIC_SYLLABLE_KA 0x12A8 #define T_UTF_32_ETHIOPIC_SYLLABLE_KU 0x12A9 #define T_UTF_32_ETHIOPIC_SYLLABLE_KI 0x12AA #define T_UTF_32_ETHIOPIC_SYLLABLE_KAA 0x12AB #define T_UTF_32_ETHIOPIC_SYLLABLE_KEE 0x12AC #define T_UTF_32_ETHIOPIC_SYLLABLE_KE 0x12AD #define T_UTF_32_ETHIOPIC_SYLLABLE_KO 0x12AE #define T_UTF_32_ETHIOPIC_SYLLABLE_KOA 0x12AF #define T_UTF_32_ETHIOPIC_SYLLABLE_KWA 0x12B0 #define T_UTF_32_ETHIOPIC_SYLLABLE_KWI 0x12B2 #define T_UTF_32_ETHIOPIC_SYLLABLE_KWAA 0x12B3 #define T_UTF_32_ETHIOPIC_SYLLABLE_KWEE 0x12B4 #define T_UTF_32_ETHIOPIC_SYLLABLE_KWE 0x12B5 #define T_UTF_32_ETHIOPIC_SYLLABLE_KXA 0x12B8 #define T_UTF_32_ETHIOPIC_SYLLABLE_KXU 0x12B9 #define T_UTF_32_ETHIOPIC_SYLLABLE_KXI 0x12BA #define T_UTF_32_ETHIOPIC_SYLLABLE_KXAA 0x12BB #define T_UTF_32_ETHIOPIC_SYLLABLE_KXEE 0x12BC #define T_UTF_32_ETHIOPIC_SYLLABLE_KXE 0x12BD #define T_UTF_32_ETHIOPIC_SYLLABLE_KXO 0x12BE #define T_UTF_32_ETHIOPIC_SYLLABLE_KXWA 0x12C0 #define T_UTF_32_ETHIOPIC_SYLLABLE_KXWI 0x12C2 #define T_UTF_32_ETHIOPIC_SYLLABLE_KXWAA 0x12C3 #define T_UTF_32_ETHIOPIC_SYLLABLE_KXWEE 0x12C4 #define T_UTF_32_ETHIOPIC_SYLLABLE_KXWE 0x12C5 #define T_UTF_32_ETHIOPIC_SYLLABLE_WA 0x12C8 #define T_UTF_32_ETHIOPIC_SYLLABLE_WU 0x12C9 #define T_UTF_32_ETHIOPIC_SYLLABLE_WI 0x12CA #define T_UTF_32_ETHIOPIC_SYLLABLE_WAA 0x12CB #define T_UTF_32_ETHIOPIC_SYLLABLE_WEE 0x12CC #define T_UTF_32_ETHIOPIC_SYLLABLE_WE 0x12CD #define T_UTF_32_ETHIOPIC_SYLLABLE_WO 0x12CE #define T_UTF_32_ETHIOPIC_SYLLABLE_WOA 0x12CF #define T_UTF_32_ETHIOPIC_SYLLABLE_PHARYNGEAL_A 0x12D0 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHARYNGEAL_U 0x12D1 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHARYNGEAL_I 0x12D2 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHARYNGEAL_AA 0x12D3 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHARYNGEAL_EE 0x12D4 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHARYNGEAL_E 0x12D5 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHARYNGEAL_O 0x12D6 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZA 0x12D8 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZU 0x12D9 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZI 0x12DA #define T_UTF_32_ETHIOPIC_SYLLABLE_ZAA 0x12DB #define T_UTF_32_ETHIOPIC_SYLLABLE_ZEE 0x12DC #define T_UTF_32_ETHIOPIC_SYLLABLE_ZE 0x12DD #define T_UTF_32_ETHIOPIC_SYLLABLE_ZO 0x12DE #define T_UTF_32_ETHIOPIC_SYLLABLE_ZWA 0x12DF #define T_UTF_32_ETHIOPIC_SYLLABLE_ZHA 0x12E0 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZHU 0x12E1 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZHI 0x12E2 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZHAA 0x12E3 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZHEE 0x12E4 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZHE 0x12E5 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZHO 0x12E6 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZHWA 0x12E7 #define T_UTF_32_ETHIOPIC_SYLLABLE_YA 0x12E8 #define T_UTF_32_ETHIOPIC_SYLLABLE_YU 0x12E9 #define T_UTF_32_ETHIOPIC_SYLLABLE_YI 0x12EA #define T_UTF_32_ETHIOPIC_SYLLABLE_YAA 0x12EB #define T_UTF_32_ETHIOPIC_SYLLABLE_YEE 0x12EC #define T_UTF_32_ETHIOPIC_SYLLABLE_YE 0x12ED #define T_UTF_32_ETHIOPIC_SYLLABLE_YO 0x12EE #define T_UTF_32_ETHIOPIC_SYLLABLE_YOA 0x12EF #define T_UTF_32_ETHIOPIC_SYLLABLE_DA 0x12F0 #define T_UTF_32_ETHIOPIC_SYLLABLE_DU 0x12F1 #define T_UTF_32_ETHIOPIC_SYLLABLE_DI 0x12F2 #define T_UTF_32_ETHIOPIC_SYLLABLE_DAA 0x12F3 #define T_UTF_32_ETHIOPIC_SYLLABLE_DEE 0x12F4 #define T_UTF_32_ETHIOPIC_SYLLABLE_DE 0x12F5 #define T_UTF_32_ETHIOPIC_SYLLABLE_DO 0x12F6 #define T_UTF_32_ETHIOPIC_SYLLABLE_DWA 0x12F7 #define T_UTF_32_ETHIOPIC_SYLLABLE_DDA 0x12F8 #define T_UTF_32_ETHIOPIC_SYLLABLE_DDU 0x12F9 #define T_UTF_32_ETHIOPIC_SYLLABLE_DDI 0x12FA #define T_UTF_32_ETHIOPIC_SYLLABLE_DDAA 0x12FB #define T_UTF_32_ETHIOPIC_SYLLABLE_DDEE 0x12FC #define T_UTF_32_ETHIOPIC_SYLLABLE_DDE 0x12FD #define T_UTF_32_ETHIOPIC_SYLLABLE_DDO 0x12FE #define T_UTF_32_ETHIOPIC_SYLLABLE_DDWA 0x12FF #define T_UTF_32_ETHIOPIC_SYLLABLE_JA 0x1300 #define T_UTF_32_ETHIOPIC_SYLLABLE_JU 0x1301 #define T_UTF_32_ETHIOPIC_SYLLABLE_JI 0x1302 #define T_UTF_32_ETHIOPIC_SYLLABLE_JAA 0x1303 #define T_UTF_32_ETHIOPIC_SYLLABLE_JEE 0x1304 #define T_UTF_32_ETHIOPIC_SYLLABLE_JE 0x1305 #define T_UTF_32_ETHIOPIC_SYLLABLE_JO 0x1306 #define T_UTF_32_ETHIOPIC_SYLLABLE_JWA 0x1307 #define T_UTF_32_ETHIOPIC_SYLLABLE_GA 0x1308 #define T_UTF_32_ETHIOPIC_SYLLABLE_GU 0x1309 #define T_UTF_32_ETHIOPIC_SYLLABLE_GI 0x130A #define T_UTF_32_ETHIOPIC_SYLLABLE_GAA 0x130B #define T_UTF_32_ETHIOPIC_SYLLABLE_GEE 0x130C #define T_UTF_32_ETHIOPIC_SYLLABLE_GE 0x130D #define T_UTF_32_ETHIOPIC_SYLLABLE_GO 0x130E #define T_UTF_32_ETHIOPIC_SYLLABLE_GOA 0x130F #define T_UTF_32_ETHIOPIC_SYLLABLE_GWA 0x1310 #define T_UTF_32_ETHIOPIC_SYLLABLE_GWI 0x1312 #define T_UTF_32_ETHIOPIC_SYLLABLE_GWAA 0x1313 #define T_UTF_32_ETHIOPIC_SYLLABLE_GWEE 0x1314 #define T_UTF_32_ETHIOPIC_SYLLABLE_GWE 0x1315 #define T_UTF_32_ETHIOPIC_SYLLABLE_GGA 0x1318 #define T_UTF_32_ETHIOPIC_SYLLABLE_GGU 0x1319 #define T_UTF_32_ETHIOPIC_SYLLABLE_GGI 0x131A #define T_UTF_32_ETHIOPIC_SYLLABLE_GGAA 0x131B #define T_UTF_32_ETHIOPIC_SYLLABLE_GGEE 0x131C #define T_UTF_32_ETHIOPIC_SYLLABLE_GGE 0x131D #define T_UTF_32_ETHIOPIC_SYLLABLE_GGO 0x131E #define T_UTF_32_ETHIOPIC_SYLLABLE_GGWAA 0x131F #define T_UTF_32_ETHIOPIC_SYLLABLE_THA 0x1320 #define T_UTF_32_ETHIOPIC_SYLLABLE_THU 0x1321 #define T_UTF_32_ETHIOPIC_SYLLABLE_THI 0x1322 #define T_UTF_32_ETHIOPIC_SYLLABLE_THAA 0x1323 #define T_UTF_32_ETHIOPIC_SYLLABLE_THEE 0x1324 #define T_UTF_32_ETHIOPIC_SYLLABLE_THE 0x1325 #define T_UTF_32_ETHIOPIC_SYLLABLE_THO 0x1326 #define T_UTF_32_ETHIOPIC_SYLLABLE_THWA 0x1327 #define T_UTF_32_ETHIOPIC_SYLLABLE_CHA 0x1328 #define T_UTF_32_ETHIOPIC_SYLLABLE_CHU 0x1329 #define T_UTF_32_ETHIOPIC_SYLLABLE_CHI 0x132A #define T_UTF_32_ETHIOPIC_SYLLABLE_CHAA 0x132B #define T_UTF_32_ETHIOPIC_SYLLABLE_CHEE 0x132C #define T_UTF_32_ETHIOPIC_SYLLABLE_CHE 0x132D #define T_UTF_32_ETHIOPIC_SYLLABLE_CHO 0x132E #define T_UTF_32_ETHIOPIC_SYLLABLE_CHWA 0x132F #define T_UTF_32_ETHIOPIC_SYLLABLE_PHA 0x1330 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHU 0x1331 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHI 0x1332 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHAA 0x1333 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHEE 0x1334 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHE 0x1335 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHO 0x1336 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHWA 0x1337 #define T_UTF_32_ETHIOPIC_SYLLABLE_TSA 0x1338 #define T_UTF_32_ETHIOPIC_SYLLABLE_TSU 0x1339 #define T_UTF_32_ETHIOPIC_SYLLABLE_TSI 0x133A #define T_UTF_32_ETHIOPIC_SYLLABLE_TSAA 0x133B #define T_UTF_32_ETHIOPIC_SYLLABLE_TSEE 0x133C #define T_UTF_32_ETHIOPIC_SYLLABLE_TSE 0x133D #define T_UTF_32_ETHIOPIC_SYLLABLE_TSO 0x133E #define T_UTF_32_ETHIOPIC_SYLLABLE_TSWA 0x133F #define T_UTF_32_ETHIOPIC_SYLLABLE_TZA 0x1340 #define T_UTF_32_ETHIOPIC_SYLLABLE_TZU 0x1341 #define T_UTF_32_ETHIOPIC_SYLLABLE_TZI 0x1342 #define T_UTF_32_ETHIOPIC_SYLLABLE_TZAA 0x1343 #define T_UTF_32_ETHIOPIC_SYLLABLE_TZEE 0x1344 #define T_UTF_32_ETHIOPIC_SYLLABLE_TZE 0x1345 #define T_UTF_32_ETHIOPIC_SYLLABLE_TZO 0x1346 #define T_UTF_32_ETHIOPIC_SYLLABLE_TZOA 0x1347 #define T_UTF_32_ETHIOPIC_SYLLABLE_FA 0x1348 #define T_UTF_32_ETHIOPIC_SYLLABLE_FU 0x1349 #define T_UTF_32_ETHIOPIC_SYLLABLE_FI 0x134A #define T_UTF_32_ETHIOPIC_SYLLABLE_FAA 0x134B #define T_UTF_32_ETHIOPIC_SYLLABLE_FEE 0x134C #define T_UTF_32_ETHIOPIC_SYLLABLE_FE 0x134D #define T_UTF_32_ETHIOPIC_SYLLABLE_FO 0x134E #define T_UTF_32_ETHIOPIC_SYLLABLE_FWA 0x134F #define T_UTF_32_ETHIOPIC_SYLLABLE_PA 0x1350 #define T_UTF_32_ETHIOPIC_SYLLABLE_PU 0x1351 #define T_UTF_32_ETHIOPIC_SYLLABLE_PI 0x1352 #define T_UTF_32_ETHIOPIC_SYLLABLE_PAA 0x1353 #define T_UTF_32_ETHIOPIC_SYLLABLE_PEE 0x1354 #define T_UTF_32_ETHIOPIC_SYLLABLE_PE 0x1355 #define T_UTF_32_ETHIOPIC_SYLLABLE_PO 0x1356 #define T_UTF_32_ETHIOPIC_SYLLABLE_PWA 0x1357 #define T_UTF_32_ETHIOPIC_SYLLABLE_RYA 0x1358 #define T_UTF_32_ETHIOPIC_SYLLABLE_MYA 0x1359 #define T_UTF_32_ETHIOPIC_SYLLABLE_FYA 0x135A #define T_UTF_32_ETHIOPIC_COMBINING_GEMINATION_AND_VOWEL_LENGTH_MARK 0x135D #define T_UTF_32_ETHIOPIC_COMBINING_VOWEL_LENGTH_MARK 0x135E #define T_UTF_32_ETHIOPIC_COMBINING_GEMINATION_MARK 0x135F #define T_UTF_32_ETHIOPIC_SECTION_MARK 0x1360 #define T_UTF_32_ETHIOPIC_WORDSPACE 0x1361 #define T_UTF_32_ETHIOPIC_FULL_STOP 0x1362 #define T_UTF_32_ETHIOPIC_COMMA 0x1363 #define T_UTF_32_ETHIOPIC_SEMICOLON 0x1364 #define T_UTF_32_ETHIOPIC_COLON 0x1365 #define T_UTF_32_ETHIOPIC_PREFACE_COLON 0x1366 #define T_UTF_32_ETHIOPIC_QUESTION_MARK 0x1367 #define T_UTF_32_ETHIOPIC_PARAGRAPH_SEPARATOR 0x1368 #define T_UTF_32_ETHIOPIC_DIGIT_ONE 0x1369 #define T_UTF_32_ETHIOPIC_DIGIT_TWO 0x136A #define T_UTF_32_ETHIOPIC_DIGIT_THREE 0x136B #define T_UTF_32_ETHIOPIC_DIGIT_FOUR 0x136C #define T_UTF_32_ETHIOPIC_DIGIT_FIVE 0x136D #define T_UTF_32_ETHIOPIC_DIGIT_SIX 0x136E #define T_UTF_32_ETHIOPIC_DIGIT_SEVEN 0x136F #define T_UTF_32_ETHIOPIC_DIGIT_EIGHT 0x1370 #define T_UTF_32_ETHIOPIC_DIGIT_NINE 0x1371 #define T_UTF_32_ETHIOPIC_NUMBER_TEN 0x1372 #define T_UTF_32_ETHIOPIC_NUMBER_TWENTY 0x1373 #define T_UTF_32_ETHIOPIC_NUMBER_THIRTY 0x1374 #define T_UTF_32_ETHIOPIC_NUMBER_FORTY 0x1375 #define T_UTF_32_ETHIOPIC_NUMBER_FIFTY 0x1376 #define T_UTF_32_ETHIOPIC_NUMBER_SIXTY 0x1377 #define T_UTF_32_ETHIOPIC_NUMBER_SEVENTY 0x1378 #define T_UTF_32_ETHIOPIC_NUMBER_EIGHTY 0x1379 #define T_UTF_32_ETHIOPIC_NUMBER_NINETY 0x137A #define T_UTF_32_ETHIOPIC_NUMBER_HUNDRED 0x137B #define T_UTF_32_ETHIOPIC_NUMBER_TEN_THOUSAND 0x137C #define T_UTF_32_ETHIOPIC_SYLLABLE_SEBATBEIT_MWA 0x1380 #define T_UTF_32_ETHIOPIC_SYLLABLE_MWI 0x1381 #define T_UTF_32_ETHIOPIC_SYLLABLE_MWEE 0x1382 #define T_UTF_32_ETHIOPIC_SYLLABLE_MWE 0x1383 #define T_UTF_32_ETHIOPIC_SYLLABLE_SEBATBEIT_BWA 0x1384 #define T_UTF_32_ETHIOPIC_SYLLABLE_BWI 0x1385 #define T_UTF_32_ETHIOPIC_SYLLABLE_BWEE 0x1386 #define T_UTF_32_ETHIOPIC_SYLLABLE_BWE 0x1387 #define T_UTF_32_ETHIOPIC_SYLLABLE_SEBATBEIT_FWA 0x1388 #define T_UTF_32_ETHIOPIC_SYLLABLE_FWI 0x1389 #define T_UTF_32_ETHIOPIC_SYLLABLE_FWEE 0x138A #define T_UTF_32_ETHIOPIC_SYLLABLE_FWE 0x138B #define T_UTF_32_ETHIOPIC_SYLLABLE_SEBATBEIT_PWA 0x138C #define T_UTF_32_ETHIOPIC_SYLLABLE_PWI 0x138D #define T_UTF_32_ETHIOPIC_SYLLABLE_PWEE 0x138E #define T_UTF_32_ETHIOPIC_SYLLABLE_PWE 0x138F #define T_UTF_32_ETHIOPIC_TONAL_MARK_YIZET 0x1390 #define T_UTF_32_ETHIOPIC_TONAL_MARK_DERET 0x1391 #define T_UTF_32_ETHIOPIC_TONAL_MARK_RIKRIK 0x1392 #define T_UTF_32_ETHIOPIC_TONAL_MARK_SHORT_RIKRIK 0x1393 #define T_UTF_32_ETHIOPIC_TONAL_MARK_DIFAT 0x1394 #define T_UTF_32_ETHIOPIC_TONAL_MARK_KENAT 0x1395 #define T_UTF_32_ETHIOPIC_TONAL_MARK_CHIRET 0x1396 #define T_UTF_32_ETHIOPIC_TONAL_MARK_HIDET 0x1397 #define T_UTF_32_ETHIOPIC_TONAL_MARK_DERET_HIDET 0x1398 #define T_UTF_32_ETHIOPIC_TONAL_MARK_KURT 0x1399 #define T_UTF_32_CHEROKEE_LETTER_A 0x13A0 #define T_UTF_32_CHEROKEE_LETTER_E 0x13A1 #define T_UTF_32_CHEROKEE_LETTER_I 0x13A2 #define T_UTF_32_CHEROKEE_LETTER_O 0x13A3 #define T_UTF_32_CHEROKEE_LETTER_U 0x13A4 #define T_UTF_32_CHEROKEE_LETTER_V 0x13A5 #define T_UTF_32_CHEROKEE_LETTER_GA 0x13A6 #define T_UTF_32_CHEROKEE_LETTER_KA 0x13A7 #define T_UTF_32_CHEROKEE_LETTER_GE 0x13A8 #define T_UTF_32_CHEROKEE_LETTER_GI 0x13A9 #define T_UTF_32_CHEROKEE_LETTER_GO 0x13AA #define T_UTF_32_CHEROKEE_LETTER_GU 0x13AB #define T_UTF_32_CHEROKEE_LETTER_GV 0x13AC #define T_UTF_32_CHEROKEE_LETTER_HA 0x13AD #define T_UTF_32_CHEROKEE_LETTER_HE 0x13AE #define T_UTF_32_CHEROKEE_LETTER_HI 0x13AF #define T_UTF_32_CHEROKEE_LETTER_HO 0x13B0 #define T_UTF_32_CHEROKEE_LETTER_HU 0x13B1 #define T_UTF_32_CHEROKEE_LETTER_HV 0x13B2 #define T_UTF_32_CHEROKEE_LETTER_LA 0x13B3 #define T_UTF_32_CHEROKEE_LETTER_LE 0x13B4 #define T_UTF_32_CHEROKEE_LETTER_LI 0x13B5 #define T_UTF_32_CHEROKEE_LETTER_LO 0x13B6 #define T_UTF_32_CHEROKEE_LETTER_LU 0x13B7 #define T_UTF_32_CHEROKEE_LETTER_LV 0x13B8 #define T_UTF_32_CHEROKEE_LETTER_MA 0x13B9 #define T_UTF_32_CHEROKEE_LETTER_ME 0x13BA #define T_UTF_32_CHEROKEE_LETTER_MI 0x13BB #define T_UTF_32_CHEROKEE_LETTER_MO 0x13BC #define T_UTF_32_CHEROKEE_LETTER_MU 0x13BD #define T_UTF_32_CHEROKEE_LETTER_NA 0x13BE #define T_UTF_32_CHEROKEE_LETTER_HNA 0x13BF #define T_UTF_32_CHEROKEE_LETTER_NAH 0x13C0 #define T_UTF_32_CHEROKEE_LETTER_NE 0x13C1 #define T_UTF_32_CHEROKEE_LETTER_NI 0x13C2 #define T_UTF_32_CHEROKEE_LETTER_NO 0x13C3 #define T_UTF_32_CHEROKEE_LETTER_NU 0x13C4 #define T_UTF_32_CHEROKEE_LETTER_NV 0x13C5 #define T_UTF_32_CHEROKEE_LETTER_QUA 0x13C6 #define T_UTF_32_CHEROKEE_LETTER_QUE 0x13C7 #define T_UTF_32_CHEROKEE_LETTER_QUI 0x13C8 #define T_UTF_32_CHEROKEE_LETTER_QUO 0x13C9 #define T_UTF_32_CHEROKEE_LETTER_QUU 0x13CA #define T_UTF_32_CHEROKEE_LETTER_QUV 0x13CB #define T_UTF_32_CHEROKEE_LETTER_SA 0x13CC #define T_UTF_32_CHEROKEE_LETTER_S 0x13CD #define T_UTF_32_CHEROKEE_LETTER_SE 0x13CE #define T_UTF_32_CHEROKEE_LETTER_SI 0x13CF #define T_UTF_32_CHEROKEE_LETTER_SO 0x13D0 #define T_UTF_32_CHEROKEE_LETTER_SU 0x13D1 #define T_UTF_32_CHEROKEE_LETTER_SV 0x13D2 #define T_UTF_32_CHEROKEE_LETTER_DA 0x13D3 #define T_UTF_32_CHEROKEE_LETTER_TA 0x13D4 #define T_UTF_32_CHEROKEE_LETTER_DE 0x13D5 #define T_UTF_32_CHEROKEE_LETTER_TE 0x13D6 #define T_UTF_32_CHEROKEE_LETTER_DI 0x13D7 #define T_UTF_32_CHEROKEE_LETTER_TI 0x13D8 #define T_UTF_32_CHEROKEE_LETTER_DO 0x13D9 #define T_UTF_32_CHEROKEE_LETTER_DU 0x13DA #define T_UTF_32_CHEROKEE_LETTER_DV 0x13DB #define T_UTF_32_CHEROKEE_LETTER_DLA 0x13DC #define T_UTF_32_CHEROKEE_LETTER_TLA 0x13DD #define T_UTF_32_CHEROKEE_LETTER_TLE 0x13DE #define T_UTF_32_CHEROKEE_LETTER_TLI 0x13DF #define T_UTF_32_CHEROKEE_LETTER_TLO 0x13E0 #define T_UTF_32_CHEROKEE_LETTER_TLU 0x13E1 #define T_UTF_32_CHEROKEE_LETTER_TLV 0x13E2 #define T_UTF_32_CHEROKEE_LETTER_TSA 0x13E3 #define T_UTF_32_CHEROKEE_LETTER_TSE 0x13E4 #define T_UTF_32_CHEROKEE_LETTER_TSI 0x13E5 #define T_UTF_32_CHEROKEE_LETTER_TSO 0x13E6 #define T_UTF_32_CHEROKEE_LETTER_TSU 0x13E7 #define T_UTF_32_CHEROKEE_LETTER_TSV 0x13E8 #define T_UTF_32_CHEROKEE_LETTER_WA 0x13E9 #define T_UTF_32_CHEROKEE_LETTER_WE 0x13EA #define T_UTF_32_CHEROKEE_LETTER_WI 0x13EB #define T_UTF_32_CHEROKEE_LETTER_WO 0x13EC #define T_UTF_32_CHEROKEE_LETTER_WU 0x13ED #define T_UTF_32_CHEROKEE_LETTER_WV 0x13EE #define T_UTF_32_CHEROKEE_LETTER_YA 0x13EF #define T_UTF_32_CHEROKEE_LETTER_YE 0x13F0 #define T_UTF_32_CHEROKEE_LETTER_YI 0x13F1 #define T_UTF_32_CHEROKEE_LETTER_YO 0x13F2 #define T_UTF_32_CHEROKEE_LETTER_YU 0x13F3 #define T_UTF_32_CHEROKEE_LETTER_YV 0x13F4 #define T_UTF_32_CHEROKEE_LETTER_MV 0x13F5 #define T_UTF_32_CHEROKEE_SMALL_LETTER_YE 0x13F8 #define T_UTF_32_CHEROKEE_SMALL_LETTER_YI 0x13F9 #define T_UTF_32_CHEROKEE_SMALL_LETTER_YO 0x13FA #define T_UTF_32_CHEROKEE_SMALL_LETTER_YU 0x13FB #define T_UTF_32_CHEROKEE_SMALL_LETTER_YV 0x13FC #define T_UTF_32_CHEROKEE_SMALL_LETTER_MV 0x13FD #define T_UTF_32_CANADIAN_SYLLABICS_HYPHEN 0x1400 #define T_UTF_32_CANADIAN_SYLLABICS_E 0x1401 #define T_UTF_32_CANADIAN_SYLLABICS_AAI 0x1402 #define T_UTF_32_CANADIAN_SYLLABICS_I 0x1403 #define T_UTF_32_CANADIAN_SYLLABICS_II 0x1404 #define T_UTF_32_CANADIAN_SYLLABICS_O 0x1405 #define T_UTF_32_CANADIAN_SYLLABICS_OO 0x1406 #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_OO 0x1407 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_EE 0x1408 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_I 0x1409 #define T_UTF_32_CANADIAN_SYLLABICS_A 0x140A #define T_UTF_32_CANADIAN_SYLLABICS_AA 0x140B #define T_UTF_32_CANADIAN_SYLLABICS_WE 0x140C #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_WE 0x140D #define T_UTF_32_CANADIAN_SYLLABICS_WI 0x140E #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_WI 0x140F #define T_UTF_32_CANADIAN_SYLLABICS_WII 0x1410 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_WII 0x1411 #define T_UTF_32_CANADIAN_SYLLABICS_WO 0x1412 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_WO 0x1413 #define T_UTF_32_CANADIAN_SYLLABICS_WOO 0x1414 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_WOO 0x1415 #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_WOO 0x1416 #define T_UTF_32_CANADIAN_SYLLABICS_WA 0x1417 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_WA 0x1418 #define T_UTF_32_CANADIAN_SYLLABICS_WAA 0x1419 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_WAA 0x141A #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_WAA 0x141B #define T_UTF_32_CANADIAN_SYLLABICS_AI 0x141C #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_W 0x141D #define T_UTF_32_CANADIAN_SYLLABICS_GLOTTAL_STOP 0x141E #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_ACUTE 0x141F #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_GRAVE 0x1420 #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_BOTTOM_HALF_RING 0x1421 #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_TOP_HALF_RING 0x1422 #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_RIGHT_HALF_RING 0x1423 #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_RING 0x1424 #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_DOUBLE_ACUTE 0x1425 #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_DOUBLE_SHORT_VERTICAL_STROKES 0x1426 #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_MIDDLE_DOT 0x1427 #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_SHORT_HORIZONTAL_STROKE 0x1428 #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_PLUS 0x1429 #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_DOWN_TACK 0x142A #define T_UTF_32_CANADIAN_SYLLABICS_EN 0x142B #define T_UTF_32_CANADIAN_SYLLABICS_IN 0x142C #define T_UTF_32_CANADIAN_SYLLABICS_ON 0x142D #define T_UTF_32_CANADIAN_SYLLABICS_AN 0x142E #define T_UTF_32_CANADIAN_SYLLABICS_PE 0x142F #define T_UTF_32_CANADIAN_SYLLABICS_PAAI 0x1430 #define T_UTF_32_CANADIAN_SYLLABICS_PI 0x1431 #define T_UTF_32_CANADIAN_SYLLABICS_PII 0x1432 #define T_UTF_32_CANADIAN_SYLLABICS_PO 0x1433 #define T_UTF_32_CANADIAN_SYLLABICS_POO 0x1434 #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_POO 0x1435 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_HEE 0x1436 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_HI 0x1437 #define T_UTF_32_CANADIAN_SYLLABICS_PA 0x1438 #define T_UTF_32_CANADIAN_SYLLABICS_PAA 0x1439 #define T_UTF_32_CANADIAN_SYLLABICS_PWE 0x143A #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_PWE 0x143B #define T_UTF_32_CANADIAN_SYLLABICS_PWI 0x143C #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_PWI 0x143D #define T_UTF_32_CANADIAN_SYLLABICS_PWII 0x143E #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_PWII 0x143F #define T_UTF_32_CANADIAN_SYLLABICS_PWO 0x1440 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_PWO 0x1441 #define T_UTF_32_CANADIAN_SYLLABICS_PWOO 0x1442 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_PWOO 0x1443 #define T_UTF_32_CANADIAN_SYLLABICS_PWA 0x1444 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_PWA 0x1445 #define T_UTF_32_CANADIAN_SYLLABICS_PWAA 0x1446 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_PWAA 0x1447 #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_PWAA 0x1448 #define T_UTF_32_CANADIAN_SYLLABICS_P 0x1449 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_P 0x144A #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_H 0x144B #define T_UTF_32_CANADIAN_SYLLABICS_TE 0x144C #define T_UTF_32_CANADIAN_SYLLABICS_TAAI 0x144D #define T_UTF_32_CANADIAN_SYLLABICS_TI 0x144E #define T_UTF_32_CANADIAN_SYLLABICS_TII 0x144F #define T_UTF_32_CANADIAN_SYLLABICS_TO 0x1450 #define T_UTF_32_CANADIAN_SYLLABICS_TOO 0x1451 #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_TOO 0x1452 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DEE 0x1453 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DI 0x1454 #define T_UTF_32_CANADIAN_SYLLABICS_TA 0x1455 #define T_UTF_32_CANADIAN_SYLLABICS_TAA 0x1456 #define T_UTF_32_CANADIAN_SYLLABICS_TWE 0x1457 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_TWE 0x1458 #define T_UTF_32_CANADIAN_SYLLABICS_TWI 0x1459 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_TWI 0x145A #define T_UTF_32_CANADIAN_SYLLABICS_TWII 0x145B #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_TWII 0x145C #define T_UTF_32_CANADIAN_SYLLABICS_TWO 0x145D #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_TWO 0x145E #define T_UTF_32_CANADIAN_SYLLABICS_TWOO 0x145F #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_TWOO 0x1460 #define T_UTF_32_CANADIAN_SYLLABICS_TWA 0x1461 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_TWA 0x1462 #define T_UTF_32_CANADIAN_SYLLABICS_TWAA 0x1463 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_TWAA 0x1464 #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_TWAA 0x1465 #define T_UTF_32_CANADIAN_SYLLABICS_T 0x1466 #define T_UTF_32_CANADIAN_SYLLABICS_TTE 0x1467 #define T_UTF_32_CANADIAN_SYLLABICS_TTI 0x1468 #define T_UTF_32_CANADIAN_SYLLABICS_TTO 0x1469 #define T_UTF_32_CANADIAN_SYLLABICS_TTA 0x146A #define T_UTF_32_CANADIAN_SYLLABICS_KE 0x146B #define T_UTF_32_CANADIAN_SYLLABICS_KAAI 0x146C #define T_UTF_32_CANADIAN_SYLLABICS_KI 0x146D #define T_UTF_32_CANADIAN_SYLLABICS_KII 0x146E #define T_UTF_32_CANADIAN_SYLLABICS_KO 0x146F #define T_UTF_32_CANADIAN_SYLLABICS_KOO 0x1470 #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_KOO 0x1471 #define T_UTF_32_CANADIAN_SYLLABICS_KA 0x1472 #define T_UTF_32_CANADIAN_SYLLABICS_KAA 0x1473 #define T_UTF_32_CANADIAN_SYLLABICS_KWE 0x1474 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_KWE 0x1475 #define T_UTF_32_CANADIAN_SYLLABICS_KWI 0x1476 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_KWI 0x1477 #define T_UTF_32_CANADIAN_SYLLABICS_KWII 0x1478 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_KWII 0x1479 #define T_UTF_32_CANADIAN_SYLLABICS_KWO 0x147A #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_KWO 0x147B #define T_UTF_32_CANADIAN_SYLLABICS_KWOO 0x147C #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_KWOO 0x147D #define T_UTF_32_CANADIAN_SYLLABICS_KWA 0x147E #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_KWA 0x147F #define T_UTF_32_CANADIAN_SYLLABICS_KWAA 0x1480 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_KWAA 0x1481 #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_KWAA 0x1482 #define T_UTF_32_CANADIAN_SYLLABICS_K 0x1483 #define T_UTF_32_CANADIAN_SYLLABICS_KW 0x1484 #define T_UTF_32_CANADIAN_SYLLABICS_SOUTH_SLAVEY_KEH 0x1485 #define T_UTF_32_CANADIAN_SYLLABICS_SOUTH_SLAVEY_KIH 0x1486 #define T_UTF_32_CANADIAN_SYLLABICS_SOUTH_SLAVEY_KOH 0x1487 #define T_UTF_32_CANADIAN_SYLLABICS_SOUTH_SLAVEY_KAH 0x1488 #define T_UTF_32_CANADIAN_SYLLABICS_CE 0x1489 #define T_UTF_32_CANADIAN_SYLLABICS_CAAI 0x148A #define T_UTF_32_CANADIAN_SYLLABICS_CI 0x148B #define T_UTF_32_CANADIAN_SYLLABICS_CII 0x148C #define T_UTF_32_CANADIAN_SYLLABICS_CO 0x148D #define T_UTF_32_CANADIAN_SYLLABICS_COO 0x148E #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_COO 0x148F #define T_UTF_32_CANADIAN_SYLLABICS_CA 0x1490 #define T_UTF_32_CANADIAN_SYLLABICS_CAA 0x1491 #define T_UTF_32_CANADIAN_SYLLABICS_CWE 0x1492 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_CWE 0x1493 #define T_UTF_32_CANADIAN_SYLLABICS_CWI 0x1494 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_CWI 0x1495 #define T_UTF_32_CANADIAN_SYLLABICS_CWII 0x1496 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_CWII 0x1497 #define T_UTF_32_CANADIAN_SYLLABICS_CWO 0x1498 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_CWO 0x1499 #define T_UTF_32_CANADIAN_SYLLABICS_CWOO 0x149A #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_CWOO 0x149B #define T_UTF_32_CANADIAN_SYLLABICS_CWA 0x149C #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_CWA 0x149D #define T_UTF_32_CANADIAN_SYLLABICS_CWAA 0x149E #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_CWAA 0x149F #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_CWAA 0x14A0 #define T_UTF_32_CANADIAN_SYLLABICS_C 0x14A1 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_TH 0x14A2 #define T_UTF_32_CANADIAN_SYLLABICS_ME 0x14A3 #define T_UTF_32_CANADIAN_SYLLABICS_MAAI 0x14A4 #define T_UTF_32_CANADIAN_SYLLABICS_MI 0x14A5 #define T_UTF_32_CANADIAN_SYLLABICS_MII 0x14A6 #define T_UTF_32_CANADIAN_SYLLABICS_MO 0x14A7 #define T_UTF_32_CANADIAN_SYLLABICS_MOO 0x14A8 #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_MOO 0x14A9 #define T_UTF_32_CANADIAN_SYLLABICS_MA 0x14AA #define T_UTF_32_CANADIAN_SYLLABICS_MAA 0x14AB #define T_UTF_32_CANADIAN_SYLLABICS_MWE 0x14AC #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_MWE 0x14AD #define T_UTF_32_CANADIAN_SYLLABICS_MWI 0x14AE #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_MWI 0x14AF #define T_UTF_32_CANADIAN_SYLLABICS_MWII 0x14B0 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_MWII 0x14B1 #define T_UTF_32_CANADIAN_SYLLABICS_MWO 0x14B2 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_MWO 0x14B3 #define T_UTF_32_CANADIAN_SYLLABICS_MWOO 0x14B4 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_MWOO 0x14B5 #define T_UTF_32_CANADIAN_SYLLABICS_MWA 0x14B6 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_MWA 0x14B7 #define T_UTF_32_CANADIAN_SYLLABICS_MWAA 0x14B8 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_MWAA 0x14B9 #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_MWAA 0x14BA #define T_UTF_32_CANADIAN_SYLLABICS_M 0x14BB #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_M 0x14BC #define T_UTF_32_CANADIAN_SYLLABICS_MH 0x14BD #define T_UTF_32_CANADIAN_SYLLABICS_ATHAPASCAN_M 0x14BE #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_M 0x14BF #define T_UTF_32_CANADIAN_SYLLABICS_NE 0x14C0 #define T_UTF_32_CANADIAN_SYLLABICS_NAAI 0x14C1 #define T_UTF_32_CANADIAN_SYLLABICS_NI 0x14C2 #define T_UTF_32_CANADIAN_SYLLABICS_NII 0x14C3 #define T_UTF_32_CANADIAN_SYLLABICS_NO 0x14C4 #define T_UTF_32_CANADIAN_SYLLABICS_NOO 0x14C5 #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_NOO 0x14C6 #define T_UTF_32_CANADIAN_SYLLABICS_NA 0x14C7 #define T_UTF_32_CANADIAN_SYLLABICS_NAA 0x14C8 #define T_UTF_32_CANADIAN_SYLLABICS_NWE 0x14C9 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_NWE 0x14CA #define T_UTF_32_CANADIAN_SYLLABICS_NWA 0x14CB #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_NWA 0x14CC #define T_UTF_32_CANADIAN_SYLLABICS_NWAA 0x14CD #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_NWAA 0x14CE #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_NWAA 0x14CF #define T_UTF_32_CANADIAN_SYLLABICS_N 0x14D0 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_NG 0x14D1 #define T_UTF_32_CANADIAN_SYLLABICS_NH 0x14D2 #define T_UTF_32_CANADIAN_SYLLABICS_LE 0x14D3 #define T_UTF_32_CANADIAN_SYLLABICS_LAAI 0x14D4 #define T_UTF_32_CANADIAN_SYLLABICS_LI 0x14D5 #define T_UTF_32_CANADIAN_SYLLABICS_LII 0x14D6 #define T_UTF_32_CANADIAN_SYLLABICS_LO 0x14D7 #define T_UTF_32_CANADIAN_SYLLABICS_LOO 0x14D8 #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_LOO 0x14D9 #define T_UTF_32_CANADIAN_SYLLABICS_LA 0x14DA #define T_UTF_32_CANADIAN_SYLLABICS_LAA 0x14DB #define T_UTF_32_CANADIAN_SYLLABICS_LWE 0x14DC #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LWE 0x14DD #define T_UTF_32_CANADIAN_SYLLABICS_LWI 0x14DE #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LWI 0x14DF #define T_UTF_32_CANADIAN_SYLLABICS_LWII 0x14E0 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LWII 0x14E1 #define T_UTF_32_CANADIAN_SYLLABICS_LWO 0x14E2 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LWO 0x14E3 #define T_UTF_32_CANADIAN_SYLLABICS_LWOO 0x14E4 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LWOO 0x14E5 #define T_UTF_32_CANADIAN_SYLLABICS_LWA 0x14E6 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LWA 0x14E7 #define T_UTF_32_CANADIAN_SYLLABICS_LWAA 0x14E8 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LWAA 0x14E9 #define T_UTF_32_CANADIAN_SYLLABICS_L 0x14EA #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_L 0x14EB #define T_UTF_32_CANADIAN_SYLLABICS_MEDIAL_L 0x14EC #define T_UTF_32_CANADIAN_SYLLABICS_SE 0x14ED #define T_UTF_32_CANADIAN_SYLLABICS_SAAI 0x14EE #define T_UTF_32_CANADIAN_SYLLABICS_SI 0x14EF #define T_UTF_32_CANADIAN_SYLLABICS_SII 0x14F0 #define T_UTF_32_CANADIAN_SYLLABICS_SO 0x14F1 #define T_UTF_32_CANADIAN_SYLLABICS_SOO 0x14F2 #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_SOO 0x14F3 #define T_UTF_32_CANADIAN_SYLLABICS_SA 0x14F4 #define T_UTF_32_CANADIAN_SYLLABICS_SAA 0x14F5 #define T_UTF_32_CANADIAN_SYLLABICS_SWE 0x14F6 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SWE 0x14F7 #define T_UTF_32_CANADIAN_SYLLABICS_SWI 0x14F8 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SWI 0x14F9 #define T_UTF_32_CANADIAN_SYLLABICS_SWII 0x14FA #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SWII 0x14FB #define T_UTF_32_CANADIAN_SYLLABICS_SWO 0x14FC #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SWO 0x14FD #define T_UTF_32_CANADIAN_SYLLABICS_SWOO 0x14FE #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SWOO 0x14FF #define T_UTF_32_CANADIAN_SYLLABICS_SWA 0x1500 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SWA 0x1501 #define T_UTF_32_CANADIAN_SYLLABICS_SWAA 0x1502 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SWAA 0x1503 #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_SWAA 0x1504 #define T_UTF_32_CANADIAN_SYLLABICS_S 0x1505 #define T_UTF_32_CANADIAN_SYLLABICS_ATHAPASCAN_S 0x1506 #define T_UTF_32_CANADIAN_SYLLABICS_SW 0x1507 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_S 0x1508 #define T_UTF_32_CANADIAN_SYLLABICS_MOOSE_CREE_SK 0x1509 #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_SKW 0x150A #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_S_W 0x150B #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_SPWA 0x150C #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_STWA 0x150D #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_SKWA 0x150E #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_SCWA 0x150F #define T_UTF_32_CANADIAN_SYLLABICS_SHE 0x1510 #define T_UTF_32_CANADIAN_SYLLABICS_SHI 0x1511 #define T_UTF_32_CANADIAN_SYLLABICS_SHII 0x1512 #define T_UTF_32_CANADIAN_SYLLABICS_SHO 0x1513 #define T_UTF_32_CANADIAN_SYLLABICS_SHOO 0x1514 #define T_UTF_32_CANADIAN_SYLLABICS_SHA 0x1515 #define T_UTF_32_CANADIAN_SYLLABICS_SHAA 0x1516 #define T_UTF_32_CANADIAN_SYLLABICS_SHWE 0x1517 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SHWE 0x1518 #define T_UTF_32_CANADIAN_SYLLABICS_SHWI 0x1519 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SHWI 0x151A #define T_UTF_32_CANADIAN_SYLLABICS_SHWII 0x151B #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SHWII 0x151C #define T_UTF_32_CANADIAN_SYLLABICS_SHWO 0x151D #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SHWO 0x151E #define T_UTF_32_CANADIAN_SYLLABICS_SHWOO 0x151F #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SHWOO 0x1520 #define T_UTF_32_CANADIAN_SYLLABICS_SHWA 0x1521 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SHWA 0x1522 #define T_UTF_32_CANADIAN_SYLLABICS_SHWAA 0x1523 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_SHWAA 0x1524 #define T_UTF_32_CANADIAN_SYLLABICS_SH 0x1525 #define T_UTF_32_CANADIAN_SYLLABICS_YE 0x1526 #define T_UTF_32_CANADIAN_SYLLABICS_YAAI 0x1527 #define T_UTF_32_CANADIAN_SYLLABICS_YI 0x1528 #define T_UTF_32_CANADIAN_SYLLABICS_YII 0x1529 #define T_UTF_32_CANADIAN_SYLLABICS_YO 0x152A #define T_UTF_32_CANADIAN_SYLLABICS_YOO 0x152B #define T_UTF_32_CANADIAN_SYLLABICS_Y_CREE_YOO 0x152C #define T_UTF_32_CANADIAN_SYLLABICS_YA 0x152D #define T_UTF_32_CANADIAN_SYLLABICS_YAA 0x152E #define T_UTF_32_CANADIAN_SYLLABICS_YWE 0x152F #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_YWE 0x1530 #define T_UTF_32_CANADIAN_SYLLABICS_YWI 0x1531 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_YWI 0x1532 #define T_UTF_32_CANADIAN_SYLLABICS_YWII 0x1533 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_YWII 0x1534 #define T_UTF_32_CANADIAN_SYLLABICS_YWO 0x1535 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_YWO 0x1536 #define T_UTF_32_CANADIAN_SYLLABICS_YWOO 0x1537 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_YWOO 0x1538 #define T_UTF_32_CANADIAN_SYLLABICS_YWA 0x1539 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_YWA 0x153A #define T_UTF_32_CANADIAN_SYLLABICS_YWAA 0x153B #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_YWAA 0x153C #define T_UTF_32_CANADIAN_SYLLABICS_NASKAPI_YWAA 0x153D #define T_UTF_32_CANADIAN_SYLLABICS_Y 0x153E #define T_UTF_32_CANADIAN_SYLLABICS_BIBLE_CREE_Y 0x153F #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_Y 0x1540 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_YI 0x1541 #define T_UTF_32_CANADIAN_SYLLABICS_RE 0x1542 #define T_UTF_32_CANADIAN_SYLLABICS_R_CREE_RE 0x1543 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LE 0x1544 #define T_UTF_32_CANADIAN_SYLLABICS_RAAI 0x1545 #define T_UTF_32_CANADIAN_SYLLABICS_RI 0x1546 #define T_UTF_32_CANADIAN_SYLLABICS_RII 0x1547 #define T_UTF_32_CANADIAN_SYLLABICS_RO 0x1548 #define T_UTF_32_CANADIAN_SYLLABICS_ROO 0x1549 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LO 0x154A #define T_UTF_32_CANADIAN_SYLLABICS_RA 0x154B #define T_UTF_32_CANADIAN_SYLLABICS_RAA 0x154C #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LA 0x154D #define T_UTF_32_CANADIAN_SYLLABICS_RWAA 0x154E #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_RWAA 0x154F #define T_UTF_32_CANADIAN_SYLLABICS_R 0x1550 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_R 0x1551 #define T_UTF_32_CANADIAN_SYLLABICS_MEDIAL_R 0x1552 #define T_UTF_32_CANADIAN_SYLLABICS_FE 0x1553 #define T_UTF_32_CANADIAN_SYLLABICS_FAAI 0x1554 #define T_UTF_32_CANADIAN_SYLLABICS_FI 0x1555 #define T_UTF_32_CANADIAN_SYLLABICS_FII 0x1556 #define T_UTF_32_CANADIAN_SYLLABICS_FO 0x1557 #define T_UTF_32_CANADIAN_SYLLABICS_FOO 0x1558 #define T_UTF_32_CANADIAN_SYLLABICS_FA 0x1559 #define T_UTF_32_CANADIAN_SYLLABICS_FAA 0x155A #define T_UTF_32_CANADIAN_SYLLABICS_FWAA 0x155B #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_FWAA 0x155C #define T_UTF_32_CANADIAN_SYLLABICS_F 0x155D #define T_UTF_32_CANADIAN_SYLLABICS_THE 0x155E #define T_UTF_32_CANADIAN_SYLLABICS_N_CREE_THE 0x155F #define T_UTF_32_CANADIAN_SYLLABICS_THI 0x1560 #define T_UTF_32_CANADIAN_SYLLABICS_N_CREE_THI 0x1561 #define T_UTF_32_CANADIAN_SYLLABICS_THII 0x1562 #define T_UTF_32_CANADIAN_SYLLABICS_N_CREE_THII 0x1563 #define T_UTF_32_CANADIAN_SYLLABICS_THO 0x1564 #define T_UTF_32_CANADIAN_SYLLABICS_THOO 0x1565 #define T_UTF_32_CANADIAN_SYLLABICS_THA 0x1566 #define T_UTF_32_CANADIAN_SYLLABICS_THAA 0x1567 #define T_UTF_32_CANADIAN_SYLLABICS_THWAA 0x1568 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_THWAA 0x1569 #define T_UTF_32_CANADIAN_SYLLABICS_TH 0x156A #define T_UTF_32_CANADIAN_SYLLABICS_TTHE 0x156B #define T_UTF_32_CANADIAN_SYLLABICS_TTHI 0x156C #define T_UTF_32_CANADIAN_SYLLABICS_TTHO 0x156D #define T_UTF_32_CANADIAN_SYLLABICS_TTHA 0x156E #define T_UTF_32_CANADIAN_SYLLABICS_TTH 0x156F #define T_UTF_32_CANADIAN_SYLLABICS_TYE 0x1570 #define T_UTF_32_CANADIAN_SYLLABICS_TYI 0x1571 #define T_UTF_32_CANADIAN_SYLLABICS_TYO 0x1572 #define T_UTF_32_CANADIAN_SYLLABICS_TYA 0x1573 #define T_UTF_32_CANADIAN_SYLLABICS_NUNAVIK_HE 0x1574 #define T_UTF_32_CANADIAN_SYLLABICS_NUNAVIK_HI 0x1575 #define T_UTF_32_CANADIAN_SYLLABICS_NUNAVIK_HII 0x1576 #define T_UTF_32_CANADIAN_SYLLABICS_NUNAVIK_HO 0x1577 #define T_UTF_32_CANADIAN_SYLLABICS_NUNAVIK_HOO 0x1578 #define T_UTF_32_CANADIAN_SYLLABICS_NUNAVIK_HA 0x1579 #define T_UTF_32_CANADIAN_SYLLABICS_NUNAVIK_HAA 0x157A #define T_UTF_32_CANADIAN_SYLLABICS_NUNAVIK_H 0x157B #define T_UTF_32_CANADIAN_SYLLABICS_NUNAVUT_H 0x157C #define T_UTF_32_CANADIAN_SYLLABICS_HK 0x157D #define T_UTF_32_CANADIAN_SYLLABICS_QAAI 0x157E #define T_UTF_32_CANADIAN_SYLLABICS_QI 0x157F #define T_UTF_32_CANADIAN_SYLLABICS_QII 0x1580 #define T_UTF_32_CANADIAN_SYLLABICS_QO 0x1581 #define T_UTF_32_CANADIAN_SYLLABICS_QOO 0x1582 #define T_UTF_32_CANADIAN_SYLLABICS_QA 0x1583 #define T_UTF_32_CANADIAN_SYLLABICS_QAA 0x1584 #define T_UTF_32_CANADIAN_SYLLABICS_Q 0x1585 #define T_UTF_32_CANADIAN_SYLLABICS_TLHE 0x1586 #define T_UTF_32_CANADIAN_SYLLABICS_TLHI 0x1587 #define T_UTF_32_CANADIAN_SYLLABICS_TLHO 0x1588 #define T_UTF_32_CANADIAN_SYLLABICS_TLHA 0x1589 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_RE 0x158A #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_RI 0x158B #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_RO 0x158C #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_RA 0x158D #define T_UTF_32_CANADIAN_SYLLABICS_NGAAI 0x158E #define T_UTF_32_CANADIAN_SYLLABICS_NGI 0x158F #define T_UTF_32_CANADIAN_SYLLABICS_NGII 0x1590 #define T_UTF_32_CANADIAN_SYLLABICS_NGO 0x1591 #define T_UTF_32_CANADIAN_SYLLABICS_NGOO 0x1592 #define T_UTF_32_CANADIAN_SYLLABICS_NGA 0x1593 #define T_UTF_32_CANADIAN_SYLLABICS_NGAA 0x1594 #define T_UTF_32_CANADIAN_SYLLABICS_NG 0x1595 #define T_UTF_32_CANADIAN_SYLLABICS_NNG 0x1596 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_SHE 0x1597 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_SHI 0x1598 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_SHO 0x1599 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_SHA 0x159A #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THE 0x159B #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THI 0x159C #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THO 0x159D #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THA 0x159E #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_TH 0x159F #define T_UTF_32_CANADIAN_SYLLABICS_LHI 0x15A0 #define T_UTF_32_CANADIAN_SYLLABICS_LHII 0x15A1 #define T_UTF_32_CANADIAN_SYLLABICS_LHO 0x15A2 #define T_UTF_32_CANADIAN_SYLLABICS_LHOO 0x15A3 #define T_UTF_32_CANADIAN_SYLLABICS_LHA 0x15A4 #define T_UTF_32_CANADIAN_SYLLABICS_LHAA 0x15A5 #define T_UTF_32_CANADIAN_SYLLABICS_LH 0x15A6 #define T_UTF_32_CANADIAN_SYLLABICS_TH_CREE_THE 0x15A7 #define T_UTF_32_CANADIAN_SYLLABICS_TH_CREE_THI 0x15A8 #define T_UTF_32_CANADIAN_SYLLABICS_TH_CREE_THII 0x15A9 #define T_UTF_32_CANADIAN_SYLLABICS_TH_CREE_THO 0x15AA #define T_UTF_32_CANADIAN_SYLLABICS_TH_CREE_THOO 0x15AB #define T_UTF_32_CANADIAN_SYLLABICS_TH_CREE_THA 0x15AC #define T_UTF_32_CANADIAN_SYLLABICS_TH_CREE_THAA 0x15AD #define T_UTF_32_CANADIAN_SYLLABICS_TH_CREE_TH 0x15AE #define T_UTF_32_CANADIAN_SYLLABICS_AIVILIK_B 0x15AF #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_E 0x15B0 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_I 0x15B1 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_O 0x15B2 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_A 0x15B3 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_WE 0x15B4 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_WI 0x15B5 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_WO 0x15B6 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_WA 0x15B7 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_NE 0x15B8 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_NI 0x15B9 #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_NO 0x15BA #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_NA 0x15BB #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_KE 0x15BC #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_KI 0x15BD #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_KO 0x15BE #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_KA 0x15BF #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_HE 0x15C0 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_HI 0x15C1 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_HO 0x15C2 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_HA 0x15C3 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GHU 0x15C4 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GHO 0x15C5 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GHE 0x15C6 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GHEE 0x15C7 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GHI 0x15C8 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GHA 0x15C9 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_RU 0x15CA #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_RO 0x15CB #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_RE 0x15CC #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_REE 0x15CD #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_RI 0x15CE #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_RA 0x15CF #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_WU 0x15D0 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_WO 0x15D1 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_WE 0x15D2 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_WEE 0x15D3 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_WI 0x15D4 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_WA 0x15D5 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_HWU 0x15D6 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_HWO 0x15D7 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_HWE 0x15D8 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_HWEE 0x15D9 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_HWI 0x15DA #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_HWA 0x15DB #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_THU 0x15DC #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_THO 0x15DD #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_THE 0x15DE #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_THEE 0x15DF #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_THI 0x15E0 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_THA 0x15E1 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTU 0x15E2 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTO 0x15E3 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTE 0x15E4 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTEE 0x15E5 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTI 0x15E6 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTA 0x15E7 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_PU 0x15E8 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_PO 0x15E9 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_PE 0x15EA #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_PEE 0x15EB #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_PI 0x15EC #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_PA 0x15ED #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_P 0x15EE #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GU 0x15EF #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GO 0x15F0 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GE 0x15F1 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GEE 0x15F2 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GI 0x15F3 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GA 0x15F4 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KHU 0x15F5 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KHO 0x15F6 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KHE 0x15F7 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KHEE 0x15F8 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KHI 0x15F9 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KHA 0x15FA #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KKU 0x15FB #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KKO 0x15FC #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KKE 0x15FD #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KKEE 0x15FE #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KKI 0x15FF #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KKA 0x1600 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_KK 0x1601 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_NU 0x1602 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_NO 0x1603 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_NE 0x1604 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_NEE 0x1605 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_NI 0x1606 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_NA 0x1607 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_MU 0x1608 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_MO 0x1609 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_ME 0x160A #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_MEE 0x160B #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_MI 0x160C #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_MA 0x160D #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_YU 0x160E #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_YO 0x160F #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_YE 0x1610 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_YEE 0x1611 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_YI 0x1612 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_YA 0x1613 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JU 0x1614 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_JU 0x1615 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JO 0x1616 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JE 0x1617 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JEE 0x1618 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JI 0x1619 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_JI 0x161A #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JA 0x161B #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JJU 0x161C #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JJO 0x161D #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JJE 0x161E #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JJEE 0x161F #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JJI 0x1620 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JJA 0x1621 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LU 0x1622 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LO 0x1623 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LE 0x1624 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LEE 0x1625 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LI 0x1626 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LA 0x1627 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DLU 0x1628 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DLO 0x1629 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DLE 0x162A #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DLEE 0x162B #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DLI 0x162C #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DLA 0x162D #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LHU 0x162E #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LHO 0x162F #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LHE 0x1630 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LHEE 0x1631 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LHI 0x1632 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_LHA 0x1633 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLHU 0x1634 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLHO 0x1635 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLHE 0x1636 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLHEE 0x1637 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLHI 0x1638 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLHA 0x1639 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLU 0x163A #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLO 0x163B #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLE 0x163C #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLEE 0x163D #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLI 0x163E #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TLA 0x163F #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_ZU 0x1640 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_ZO 0x1641 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_ZE 0x1642 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_ZEE 0x1643 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_ZI 0x1644 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_ZA 0x1645 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_Z 0x1646 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_INITIAL_Z 0x1647 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DZU 0x1648 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DZO 0x1649 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DZE 0x164A #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DZEE 0x164B #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DZI 0x164C #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DZA 0x164D #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SU 0x164E #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SO 0x164F #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SE 0x1650 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SEE 0x1651 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SI 0x1652 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SA 0x1653 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SHU 0x1654 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SHO 0x1655 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SHE 0x1656 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SHEE 0x1657 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SHI 0x1658 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SHA 0x1659 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_SH 0x165A #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TSU 0x165B #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TSO 0x165C #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TSE 0x165D #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TSEE 0x165E #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TSI 0x165F #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TSA 0x1660 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_CHU 0x1661 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_CHO 0x1662 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_CHE 0x1663 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_CHEE 0x1664 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_CHI 0x1665 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_CHA 0x1666 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTSU 0x1667 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTSO 0x1668 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTSE 0x1669 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTSEE 0x166A #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTSI 0x166B #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_TTSA 0x166C #define T_UTF_32_CANADIAN_SYLLABICS_CHI_SIGN 0x166D #define T_UTF_32_CANADIAN_SYLLABICS_FULL_STOP 0x166E #define T_UTF_32_CANADIAN_SYLLABICS_QAI 0x166F #define T_UTF_32_CANADIAN_SYLLABICS_NGAI 0x1670 #define T_UTF_32_CANADIAN_SYLLABICS_NNGI 0x1671 #define T_UTF_32_CANADIAN_SYLLABICS_NNGII 0x1672 #define T_UTF_32_CANADIAN_SYLLABICS_NNGO 0x1673 #define T_UTF_32_CANADIAN_SYLLABICS_NNGOO 0x1674 #define T_UTF_32_CANADIAN_SYLLABICS_NNGA 0x1675 #define T_UTF_32_CANADIAN_SYLLABICS_NNGAA 0x1676 #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THWEE 0x1677 #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THWI 0x1678 #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THWII 0x1679 #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THWO 0x167A #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THWOO 0x167B #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THWA 0x167C #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_THWAA 0x167D #define T_UTF_32_CANADIAN_SYLLABICS_WOODS_CREE_FINAL_TH 0x167E #define T_UTF_32_CANADIAN_SYLLABICS_BLACKFOOT_W 0x167F #define T_UTF_32_OGHAM_SPACE_MARK 0x1680 #define T_UTF_32_OGHAM_LETTER_BEITH 0x1681 #define T_UTF_32_OGHAM_LETTER_LUIS 0x1682 #define T_UTF_32_OGHAM_LETTER_FEARN 0x1683 #define T_UTF_32_OGHAM_LETTER_SAIL 0x1684 #define T_UTF_32_OGHAM_LETTER_NION 0x1685 #define T_UTF_32_OGHAM_LETTER_UATH 0x1686 #define T_UTF_32_OGHAM_LETTER_DAIR 0x1687 #define T_UTF_32_OGHAM_LETTER_TINNE 0x1688 #define T_UTF_32_OGHAM_LETTER_COLL 0x1689 #define T_UTF_32_OGHAM_LETTER_CEIRT 0x168A #define T_UTF_32_OGHAM_LETTER_MUIN 0x168B #define T_UTF_32_OGHAM_LETTER_GORT 0x168C #define T_UTF_32_OGHAM_LETTER_NGEADAL 0x168D #define T_UTF_32_OGHAM_LETTER_STRAIF 0x168E #define T_UTF_32_OGHAM_LETTER_RUIS 0x168F #define T_UTF_32_OGHAM_LETTER_AILM 0x1690 #define T_UTF_32_OGHAM_LETTER_ONN 0x1691 #define T_UTF_32_OGHAM_LETTER_UR 0x1692 #define T_UTF_32_OGHAM_LETTER_EADHADH 0x1693 #define T_UTF_32_OGHAM_LETTER_IODHADH 0x1694 #define T_UTF_32_OGHAM_LETTER_EABHADH 0x1695 #define T_UTF_32_OGHAM_LETTER_OR 0x1696 #define T_UTF_32_OGHAM_LETTER_UILLEANN 0x1697 #define T_UTF_32_OGHAM_LETTER_IFIN 0x1698 #define T_UTF_32_OGHAM_LETTER_EAMHANCHOLL 0x1699 #define T_UTF_32_OGHAM_LETTER_PEITH 0x169A #define T_UTF_32_OGHAM_FEATHER_MARK 0x169B #define T_UTF_32_OGHAM_REVERSED_FEATHER_MARK 0x169C #define T_UTF_32_RUNIC_LETTER_FEHU_FEOH_FE_F 0x16A0 #define T_UTF_32_RUNIC_LETTER_V 0x16A1 #define T_UTF_32_RUNIC_LETTER_URUZ_UR_U 0x16A2 #define T_UTF_32_RUNIC_LETTER_YR 0x16A3 #define T_UTF_32_RUNIC_LETTER_Y 0x16A4 #define T_UTF_32_RUNIC_LETTER_W 0x16A5 #define T_UTF_32_RUNIC_LETTER_THURISAZ_THURS_THORN 0x16A6 #define T_UTF_32_RUNIC_LETTER_ETH 0x16A7 #define T_UTF_32_RUNIC_LETTER_ANSUZ_A 0x16A8 #define T_UTF_32_RUNIC_LETTER_OS_O 0x16A9 #define T_UTF_32_RUNIC_LETTER_AC_A 0x16AA #define T_UTF_32_RUNIC_LETTER_AESC 0x16AB #define T_UTF_32_RUNIC_LETTER_LONG_BRANCH_OSS_O 0x16AC #define T_UTF_32_RUNIC_LETTER_SHORT_TWIG_OSS_O 0x16AD #define T_UTF_32_RUNIC_LETTER_O 0x16AE #define T_UTF_32_RUNIC_LETTER_OE 0x16AF #define T_UTF_32_RUNIC_LETTER_ON 0x16B0 #define T_UTF_32_RUNIC_LETTER_RAIDO_RAD_REID_R 0x16B1 #define T_UTF_32_RUNIC_LETTER_KAUNA 0x16B2 #define T_UTF_32_RUNIC_LETTER_CEN 0x16B3 #define T_UTF_32_RUNIC_LETTER_KAUN_K 0x16B4 #define T_UTF_32_RUNIC_LETTER_G 0x16B5 #define T_UTF_32_RUNIC_LETTER_ENG 0x16B6 #define T_UTF_32_RUNIC_LETTER_GEBO_GYFU_G 0x16B7 #define T_UTF_32_RUNIC_LETTER_GAR 0x16B8 #define T_UTF_32_RUNIC_LETTER_WUNJO_WYNN_W 0x16B9 #define T_UTF_32_RUNIC_LETTER_HAGLAZ_H 0x16BA #define T_UTF_32_RUNIC_LETTER_HAEGL_H 0x16BB #define T_UTF_32_RUNIC_LETTER_LONG_BRANCH_HAGALL_H 0x16BC #define T_UTF_32_RUNIC_LETTER_SHORT_TWIG_HAGALL_H 0x16BD #define T_UTF_32_RUNIC_LETTER_NAUDIZ_NYD_NAUD_N 0x16BE #define T_UTF_32_RUNIC_LETTER_SHORT_TWIG_NAUD_N 0x16BF #define T_UTF_32_RUNIC_LETTER_DOTTED_N 0x16C0 #define T_UTF_32_RUNIC_LETTER_ISAZ_IS_ISS_I 0x16C1 #define T_UTF_32_RUNIC_LETTER_E 0x16C2 #define T_UTF_32_RUNIC_LETTER_JERAN_J 0x16C3 #define T_UTF_32_RUNIC_LETTER_GER 0x16C4 #define T_UTF_32_RUNIC_LETTER_LONG_BRANCH_AR_AE 0x16C5 #define T_UTF_32_RUNIC_LETTER_SHORT_TWIG_AR_A 0x16C6 #define T_UTF_32_RUNIC_LETTER_IWAZ_EOH 0x16C7 #define T_UTF_32_RUNIC_LETTER_PERTHO_PEORTH_P 0x16C8 #define T_UTF_32_RUNIC_LETTER_ALGIZ_EOLHX 0x16C9 #define T_UTF_32_RUNIC_LETTER_SOWILO_S 0x16CA #define T_UTF_32_RUNIC_LETTER_SIGEL_LONG_BRANCH_SOL_S 0x16CB #define T_UTF_32_RUNIC_LETTER_SHORT_TWIG_SOL_S 0x16CC #define T_UTF_32_RUNIC_LETTER_C 0x16CD #define T_UTF_32_RUNIC_LETTER_Z 0x16CE #define T_UTF_32_RUNIC_LETTER_TIWAZ_TIR_TYR_T 0x16CF #define T_UTF_32_RUNIC_LETTER_SHORT_TWIG_TYR_T 0x16D0 #define T_UTF_32_RUNIC_LETTER_D 0x16D1 #define T_UTF_32_RUNIC_LETTER_BERKANAN_BEORC_BJARKAN_B 0x16D2 #define T_UTF_32_RUNIC_LETTER_SHORT_TWIG_BJARKAN_B 0x16D3 #define T_UTF_32_RUNIC_LETTER_DOTTED_P 0x16D4 #define T_UTF_32_RUNIC_LETTER_OPEN_P 0x16D5 #define T_UTF_32_RUNIC_LETTER_EHWAZ_EH_E 0x16D6 #define T_UTF_32_RUNIC_LETTER_MANNAZ_MAN_M 0x16D7 #define T_UTF_32_RUNIC_LETTER_LONG_BRANCH_MADR_M 0x16D8 #define T_UTF_32_RUNIC_LETTER_SHORT_TWIG_MADR_M 0x16D9 #define T_UTF_32_RUNIC_LETTER_LAUKAZ_LAGU_LOGR_L 0x16DA #define T_UTF_32_RUNIC_LETTER_DOTTED_L 0x16DB #define T_UTF_32_RUNIC_LETTER_INGWAZ 0x16DC #define T_UTF_32_RUNIC_LETTER_ING 0x16DD #define T_UTF_32_RUNIC_LETTER_DAGAZ_DAEG_D 0x16DE #define T_UTF_32_RUNIC_LETTER_OTHALAN_ETHEL_O 0x16DF #define T_UTF_32_RUNIC_LETTER_EAR 0x16E0 #define T_UTF_32_RUNIC_LETTER_IOR 0x16E1 #define T_UTF_32_RUNIC_LETTER_CWEORTH 0x16E2 #define T_UTF_32_RUNIC_LETTER_CALC 0x16E3 #define T_UTF_32_RUNIC_LETTER_CEALC 0x16E4 #define T_UTF_32_RUNIC_LETTER_STAN 0x16E5 #define T_UTF_32_RUNIC_LETTER_LONG_BRANCH_YR 0x16E6 #define T_UTF_32_RUNIC_LETTER_SHORT_TWIG_YR 0x16E7 #define T_UTF_32_RUNIC_LETTER_ICELANDIC_YR 0x16E8 #define T_UTF_32_RUNIC_LETTER_Q 0x16E9 #define T_UTF_32_RUNIC_LETTER_X 0x16EA #define T_UTF_32_RUNIC_SINGLE_PUNCTUATION 0x16EB #define T_UTF_32_RUNIC_MULTIPLE_PUNCTUATION 0x16EC #define T_UTF_32_RUNIC_CROSS_PUNCTUATION 0x16ED #define T_UTF_32_RUNIC_ARLAUG_SYMBOL 0x16EE #define T_UTF_32_RUNIC_TVIMADUR_SYMBOL 0x16EF #define T_UTF_32_RUNIC_BELGTHOR_SYMBOL 0x16F0 #define T_UTF_32_RUNIC_LETTER_K 0x16F1 #define T_UTF_32_RUNIC_LETTER_SH 0x16F2 #define T_UTF_32_RUNIC_LETTER_OO 0x16F3 #define T_UTF_32_RUNIC_LETTER_FRANKS_CASKET_OS 0x16F4 #define T_UTF_32_RUNIC_LETTER_FRANKS_CASKET_IS 0x16F5 #define T_UTF_32_RUNIC_LETTER_FRANKS_CASKET_EH 0x16F6 #define T_UTF_32_RUNIC_LETTER_FRANKS_CASKET_AC 0x16F7 #define T_UTF_32_RUNIC_LETTER_FRANKS_CASKET_AESC 0x16F8 #define T_UTF_32_TAGALOG_LETTER_A 0x1700 #define T_UTF_32_TAGALOG_LETTER_I 0x1701 #define T_UTF_32_TAGALOG_LETTER_U 0x1702 #define T_UTF_32_TAGALOG_LETTER_KA 0x1703 #define T_UTF_32_TAGALOG_LETTER_GA 0x1704 #define T_UTF_32_TAGALOG_LETTER_NGA 0x1705 #define T_UTF_32_TAGALOG_LETTER_TA 0x1706 #define T_UTF_32_TAGALOG_LETTER_DA 0x1707 #define T_UTF_32_TAGALOG_LETTER_NA 0x1708 #define T_UTF_32_TAGALOG_LETTER_PA 0x1709 #define T_UTF_32_TAGALOG_LETTER_BA 0x170A #define T_UTF_32_TAGALOG_LETTER_MA 0x170B #define T_UTF_32_TAGALOG_LETTER_YA 0x170C #define T_UTF_32_TAGALOG_LETTER_LA 0x170E #define T_UTF_32_TAGALOG_LETTER_WA 0x170F #define T_UTF_32_TAGALOG_LETTER_SA 0x1710 #define T_UTF_32_TAGALOG_LETTER_HA 0x1711 #define T_UTF_32_TAGALOG_VOWEL_SIGN_I 0x1712 #define T_UTF_32_TAGALOG_VOWEL_SIGN_U 0x1713 #define T_UTF_32_TAGALOG_SIGN_VIRAMA 0x1714 #define T_UTF_32_HANUNOO_LETTER_A 0x1720 #define T_UTF_32_HANUNOO_LETTER_I 0x1721 #define T_UTF_32_HANUNOO_LETTER_U 0x1722 #define T_UTF_32_HANUNOO_LETTER_KA 0x1723 #define T_UTF_32_HANUNOO_LETTER_GA 0x1724 #define T_UTF_32_HANUNOO_LETTER_NGA 0x1725 #define T_UTF_32_HANUNOO_LETTER_TA 0x1726 #define T_UTF_32_HANUNOO_LETTER_DA 0x1727 #define T_UTF_32_HANUNOO_LETTER_NA 0x1728 #define T_UTF_32_HANUNOO_LETTER_PA 0x1729 #define T_UTF_32_HANUNOO_LETTER_BA 0x172A #define T_UTF_32_HANUNOO_LETTER_MA 0x172B #define T_UTF_32_HANUNOO_LETTER_YA 0x172C #define T_UTF_32_HANUNOO_LETTER_RA 0x172D #define T_UTF_32_HANUNOO_LETTER_LA 0x172E #define T_UTF_32_HANUNOO_LETTER_WA 0x172F #define T_UTF_32_HANUNOO_LETTER_SA 0x1730 #define T_UTF_32_HANUNOO_LETTER_HA 0x1731 #define T_UTF_32_HANUNOO_VOWEL_SIGN_I 0x1732 #define T_UTF_32_HANUNOO_VOWEL_SIGN_U 0x1733 #define T_UTF_32_HANUNOO_SIGN_PAMUDPOD 0x1734 #define T_UTF_32_PHILIPPINE_SINGLE_PUNCTUATION 0x1735 #define T_UTF_32_PHILIPPINE_DOUBLE_PUNCTUATION 0x1736 #define T_UTF_32_BUHID_LETTER_A 0x1740 #define T_UTF_32_BUHID_LETTER_I 0x1741 #define T_UTF_32_BUHID_LETTER_U 0x1742 #define T_UTF_32_BUHID_LETTER_KA 0x1743 #define T_UTF_32_BUHID_LETTER_GA 0x1744 #define T_UTF_32_BUHID_LETTER_NGA 0x1745 #define T_UTF_32_BUHID_LETTER_TA 0x1746 #define T_UTF_32_BUHID_LETTER_DA 0x1747 #define T_UTF_32_BUHID_LETTER_NA 0x1748 #define T_UTF_32_BUHID_LETTER_PA 0x1749 #define T_UTF_32_BUHID_LETTER_BA 0x174A #define T_UTF_32_BUHID_LETTER_MA 0x174B #define T_UTF_32_BUHID_LETTER_YA 0x174C #define T_UTF_32_BUHID_LETTER_RA 0x174D #define T_UTF_32_BUHID_LETTER_LA 0x174E #define T_UTF_32_BUHID_LETTER_WA 0x174F #define T_UTF_32_BUHID_LETTER_SA 0x1750 #define T_UTF_32_BUHID_LETTER_HA 0x1751 #define T_UTF_32_BUHID_VOWEL_SIGN_I 0x1752 #define T_UTF_32_BUHID_VOWEL_SIGN_U 0x1753 #define T_UTF_32_TAGBANWA_LETTER_A 0x1760 #define T_UTF_32_TAGBANWA_LETTER_I 0x1761 #define T_UTF_32_TAGBANWA_LETTER_U 0x1762 #define T_UTF_32_TAGBANWA_LETTER_KA 0x1763 #define T_UTF_32_TAGBANWA_LETTER_GA 0x1764 #define T_UTF_32_TAGBANWA_LETTER_NGA 0x1765 #define T_UTF_32_TAGBANWA_LETTER_TA 0x1766 #define T_UTF_32_TAGBANWA_LETTER_DA 0x1767 #define T_UTF_32_TAGBANWA_LETTER_NA 0x1768 #define T_UTF_32_TAGBANWA_LETTER_PA 0x1769 #define T_UTF_32_TAGBANWA_LETTER_BA 0x176A #define T_UTF_32_TAGBANWA_LETTER_MA 0x176B #define T_UTF_32_TAGBANWA_LETTER_YA 0x176C #define T_UTF_32_TAGBANWA_LETTER_LA 0x176E #define T_UTF_32_TAGBANWA_LETTER_WA 0x176F #define T_UTF_32_TAGBANWA_LETTER_SA 0x1770 #define T_UTF_32_TAGBANWA_VOWEL_SIGN_I 0x1772 #define T_UTF_32_TAGBANWA_VOWEL_SIGN_U 0x1773 #define T_UTF_32_KHMER_LETTER_KA 0x1780 #define T_UTF_32_KHMER_LETTER_KHA 0x1781 #define T_UTF_32_KHMER_LETTER_KO 0x1782 #define T_UTF_32_KHMER_LETTER_KHO 0x1783 #define T_UTF_32_KHMER_LETTER_NGO 0x1784 #define T_UTF_32_KHMER_LETTER_CA 0x1785 #define T_UTF_32_KHMER_LETTER_CHA 0x1786 #define T_UTF_32_KHMER_LETTER_CO 0x1787 #define T_UTF_32_KHMER_LETTER_CHO 0x1788 #define T_UTF_32_KHMER_LETTER_NYO 0x1789 #define T_UTF_32_KHMER_LETTER_DA 0x178A #define T_UTF_32_KHMER_LETTER_TTHA 0x178B #define T_UTF_32_KHMER_LETTER_DO 0x178C #define T_UTF_32_KHMER_LETTER_TTHO 0x178D #define T_UTF_32_KHMER_LETTER_NNO 0x178E #define T_UTF_32_KHMER_LETTER_TA 0x178F #define T_UTF_32_KHMER_LETTER_THA 0x1790 #define T_UTF_32_KHMER_LETTER_TO 0x1791 #define T_UTF_32_KHMER_LETTER_THO 0x1792 #define T_UTF_32_KHMER_LETTER_NO 0x1793 #define T_UTF_32_KHMER_LETTER_BA 0x1794 #define T_UTF_32_KHMER_LETTER_PHA 0x1795 #define T_UTF_32_KHMER_LETTER_PO 0x1796 #define T_UTF_32_KHMER_LETTER_PHO 0x1797 #define T_UTF_32_KHMER_LETTER_MO 0x1798 #define T_UTF_32_KHMER_LETTER_YO 0x1799 #define T_UTF_32_KHMER_LETTER_RO 0x179A #define T_UTF_32_KHMER_LETTER_LO 0x179B #define T_UTF_32_KHMER_LETTER_VO 0x179C #define T_UTF_32_KHMER_LETTER_SHA 0x179D #define T_UTF_32_KHMER_LETTER_SSO 0x179E #define T_UTF_32_KHMER_LETTER_SA 0x179F #define T_UTF_32_KHMER_LETTER_HA 0x17A0 #define T_UTF_32_KHMER_LETTER_LA 0x17A1 #define T_UTF_32_KHMER_LETTER_QA 0x17A2 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QAQ 0x17A3 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QAA 0x17A4 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QI 0x17A5 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QII 0x17A6 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QU 0x17A7 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QUK 0x17A8 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QUU 0x17A9 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QUUV 0x17AA #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_RY 0x17AB #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_RYY 0x17AC #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_LY 0x17AD #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_LYY 0x17AE #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QE 0x17AF #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QAI 0x17B0 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QOO_TYPE_ONE 0x17B1 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QOO_TYPE_TWO 0x17B2 #define T_UTF_32_KHMER_INDEPENDENT_VOWEL_QAU 0x17B3 #define T_UTF_32_KHMER_VOWEL_INHERENT_AQ 0x17B4 #define T_UTF_32_KHMER_VOWEL_INHERENT_AA 0x17B5 #define T_UTF_32_KHMER_VOWEL_SIGN_AA 0x17B6 #define T_UTF_32_KHMER_VOWEL_SIGN_I 0x17B7 #define T_UTF_32_KHMER_VOWEL_SIGN_II 0x17B8 #define T_UTF_32_KHMER_VOWEL_SIGN_Y 0x17B9 #define T_UTF_32_KHMER_VOWEL_SIGN_YY 0x17BA #define T_UTF_32_KHMER_VOWEL_SIGN_U 0x17BB #define T_UTF_32_KHMER_VOWEL_SIGN_UU 0x17BC #define T_UTF_32_KHMER_VOWEL_SIGN_UA 0x17BD #define T_UTF_32_KHMER_VOWEL_SIGN_OE 0x17BE #define T_UTF_32_KHMER_VOWEL_SIGN_YA 0x17BF #define T_UTF_32_KHMER_VOWEL_SIGN_IE 0x17C0 #define T_UTF_32_KHMER_VOWEL_SIGN_E 0x17C1 #define T_UTF_32_KHMER_VOWEL_SIGN_AE 0x17C2 #define T_UTF_32_KHMER_VOWEL_SIGN_AI 0x17C3 #define T_UTF_32_KHMER_VOWEL_SIGN_OO 0x17C4 #define T_UTF_32_KHMER_VOWEL_SIGN_AU 0x17C5 #define T_UTF_32_KHMER_SIGN_NIKAHIT 0x17C6 #define T_UTF_32_KHMER_SIGN_REAHMUK 0x17C7 #define T_UTF_32_KHMER_SIGN_YUUKALEAPINTU 0x17C8 #define T_UTF_32_KHMER_SIGN_MUUSIKATOAN 0x17C9 #define T_UTF_32_KHMER_SIGN_TRIISAP 0x17CA #define T_UTF_32_KHMER_SIGN_BANTOC 0x17CB #define T_UTF_32_KHMER_SIGN_ROBAT 0x17CC #define T_UTF_32_KHMER_SIGN_TOANDAKHIAT 0x17CD #define T_UTF_32_KHMER_SIGN_KAKABAT 0x17CE #define T_UTF_32_KHMER_SIGN_AHSDA 0x17CF #define T_UTF_32_KHMER_SIGN_SAMYOK_SANNYA 0x17D0 #define T_UTF_32_KHMER_SIGN_VIRIAM 0x17D1 #define T_UTF_32_KHMER_SIGN_COENG 0x17D2 #define T_UTF_32_KHMER_SIGN_BATHAMASAT 0x17D3 #define T_UTF_32_KHMER_SIGN_KHAN 0x17D4 #define T_UTF_32_KHMER_SIGN_BARIYOOSAN 0x17D5 #define T_UTF_32_KHMER_SIGN_CAMNUC_PII_KUUH 0x17D6 #define T_UTF_32_KHMER_SIGN_LEK_TOO 0x17D7 #define T_UTF_32_KHMER_SIGN_BEYYAL 0x17D8 #define T_UTF_32_KHMER_SIGN_PHNAEK_MUAN 0x17D9 #define T_UTF_32_KHMER_SIGN_KOOMUUT 0x17DA #define T_UTF_32_KHMER_CURRENCY_SYMBOL_RIEL 0x17DB #define T_UTF_32_KHMER_SIGN_AVAKRAHASANYA 0x17DC #define T_UTF_32_KHMER_SIGN_ATTHACAN 0x17DD #define T_UTF_32_KHMER_DIGIT_ZERO 0x17E0 #define T_UTF_32_KHMER_DIGIT_ONE 0x17E1 #define T_UTF_32_KHMER_DIGIT_TWO 0x17E2 #define T_UTF_32_KHMER_DIGIT_THREE 0x17E3 #define T_UTF_32_KHMER_DIGIT_FOUR 0x17E4 #define T_UTF_32_KHMER_DIGIT_FIVE 0x17E5 #define T_UTF_32_KHMER_DIGIT_SIX 0x17E6 #define T_UTF_32_KHMER_DIGIT_SEVEN 0x17E7 #define T_UTF_32_KHMER_DIGIT_EIGHT 0x17E8 #define T_UTF_32_KHMER_DIGIT_NINE 0x17E9 #define T_UTF_32_KHMER_SYMBOL_LEK_ATTAK_SON 0x17F0 #define T_UTF_32_KHMER_SYMBOL_LEK_ATTAK_MUOY 0x17F1 #define T_UTF_32_KHMER_SYMBOL_LEK_ATTAK_PII 0x17F2 #define T_UTF_32_KHMER_SYMBOL_LEK_ATTAK_BEI 0x17F3 #define T_UTF_32_KHMER_SYMBOL_LEK_ATTAK_BUON 0x17F4 #define T_UTF_32_KHMER_SYMBOL_LEK_ATTAK_PRAM 0x17F5 #define T_UTF_32_KHMER_SYMBOL_LEK_ATTAK_PRAM_MUOY 0x17F6 #define T_UTF_32_KHMER_SYMBOL_LEK_ATTAK_PRAM_PII 0x17F7 #define T_UTF_32_KHMER_SYMBOL_LEK_ATTAK_PRAM_BEI 0x17F8 #define T_UTF_32_KHMER_SYMBOL_LEK_ATTAK_PRAM_BUON 0x17F9 #define T_UTF_32_MONGOLIAN_BIRGA 0x1800 #define T_UTF_32_MONGOLIAN_ELLIPSIS 0x1801 #define T_UTF_32_MONGOLIAN_COMMA 0x1802 #define T_UTF_32_MONGOLIAN_FULL_STOP 0x1803 #define T_UTF_32_MONGOLIAN_COLON 0x1804 #define T_UTF_32_MONGOLIAN_FOUR_DOTS 0x1805 #define T_UTF_32_MONGOLIAN_TODO_SOFT_HYPHEN 0x1806 #define T_UTF_32_MONGOLIAN_SIBE_SYLLABLE_BOUNDARY_MARKER 0x1807 #define T_UTF_32_MONGOLIAN_MANCHU_COMMA 0x1808 #define T_UTF_32_MONGOLIAN_MANCHU_FULL_STOP 0x1809 #define T_UTF_32_MONGOLIAN_NIRUGU 0x180A #define T_UTF_32_MONGOLIAN_FREE_VARIATION_SELECTOR_ONE 0x180B #define T_UTF_32_MONGOLIAN_FREE_VARIATION_SELECTOR_TWO 0x180C #define T_UTF_32_MONGOLIAN_FREE_VARIATION_SELECTOR_THREE 0x180D #define T_UTF_32_MONGOLIAN_VOWEL_SEPARATOR 0x180E #define T_UTF_32_MONGOLIAN_DIGIT_ZERO 0x1810 #define T_UTF_32_MONGOLIAN_DIGIT_ONE 0x1811 #define T_UTF_32_MONGOLIAN_DIGIT_TWO 0x1812 #define T_UTF_32_MONGOLIAN_DIGIT_THREE 0x1813 #define T_UTF_32_MONGOLIAN_DIGIT_FOUR 0x1814 #define T_UTF_32_MONGOLIAN_DIGIT_FIVE 0x1815 #define T_UTF_32_MONGOLIAN_DIGIT_SIX 0x1816 #define T_UTF_32_MONGOLIAN_DIGIT_SEVEN 0x1817 #define T_UTF_32_MONGOLIAN_DIGIT_EIGHT 0x1818 #define T_UTF_32_MONGOLIAN_DIGIT_NINE 0x1819 #define T_UTF_32_MONGOLIAN_LETTER_A 0x1820 #define T_UTF_32_MONGOLIAN_LETTER_E 0x1821 #define T_UTF_32_MONGOLIAN_LETTER_I 0x1822 #define T_UTF_32_MONGOLIAN_LETTER_O 0x1823 #define T_UTF_32_MONGOLIAN_LETTER_U 0x1824 #define T_UTF_32_MONGOLIAN_LETTER_OE 0x1825 #define T_UTF_32_MONGOLIAN_LETTER_UE 0x1826 #define T_UTF_32_MONGOLIAN_LETTER_EE 0x1827 #define T_UTF_32_MONGOLIAN_LETTER_NA 0x1828 #define T_UTF_32_MONGOLIAN_LETTER_ANG 0x1829 #define T_UTF_32_MONGOLIAN_LETTER_BA 0x182A #define T_UTF_32_MONGOLIAN_LETTER_PA 0x182B #define T_UTF_32_MONGOLIAN_LETTER_QA 0x182C #define T_UTF_32_MONGOLIAN_LETTER_GA 0x182D #define T_UTF_32_MONGOLIAN_LETTER_MA 0x182E #define T_UTF_32_MONGOLIAN_LETTER_LA 0x182F #define T_UTF_32_MONGOLIAN_LETTER_SA 0x1830 #define T_UTF_32_MONGOLIAN_LETTER_SHA 0x1831 #define T_UTF_32_MONGOLIAN_LETTER_TA 0x1832 #define T_UTF_32_MONGOLIAN_LETTER_DA 0x1833 #define T_UTF_32_MONGOLIAN_LETTER_CHA 0x1834 #define T_UTF_32_MONGOLIAN_LETTER_JA 0x1835 #define T_UTF_32_MONGOLIAN_LETTER_YA 0x1836 #define T_UTF_32_MONGOLIAN_LETTER_RA 0x1837 #define T_UTF_32_MONGOLIAN_LETTER_WA 0x1838 #define T_UTF_32_MONGOLIAN_LETTER_FA 0x1839 #define T_UTF_32_MONGOLIAN_LETTER_KA 0x183A #define T_UTF_32_MONGOLIAN_LETTER_KHA 0x183B #define T_UTF_32_MONGOLIAN_LETTER_TSA 0x183C #define T_UTF_32_MONGOLIAN_LETTER_ZA 0x183D #define T_UTF_32_MONGOLIAN_LETTER_HAA 0x183E #define T_UTF_32_MONGOLIAN_LETTER_ZRA 0x183F #define T_UTF_32_MONGOLIAN_LETTER_LHA 0x1840 #define T_UTF_32_MONGOLIAN_LETTER_ZHI 0x1841 #define T_UTF_32_MONGOLIAN_LETTER_CHI 0x1842 #define T_UTF_32_MONGOLIAN_LETTER_TODO_LONG_VOWEL_SIGN 0x1843 #define T_UTF_32_MONGOLIAN_LETTER_TODO_E 0x1844 #define T_UTF_32_MONGOLIAN_LETTER_TODO_I 0x1845 #define T_UTF_32_MONGOLIAN_LETTER_TODO_O 0x1846 #define T_UTF_32_MONGOLIAN_LETTER_TODO_U 0x1847 #define T_UTF_32_MONGOLIAN_LETTER_TODO_OE 0x1848 #define T_UTF_32_MONGOLIAN_LETTER_TODO_UE 0x1849 #define T_UTF_32_MONGOLIAN_LETTER_TODO_ANG 0x184A #define T_UTF_32_MONGOLIAN_LETTER_TODO_BA 0x184B #define T_UTF_32_MONGOLIAN_LETTER_TODO_PA 0x184C #define T_UTF_32_MONGOLIAN_LETTER_TODO_QA 0x184D #define T_UTF_32_MONGOLIAN_LETTER_TODO_GA 0x184E #define T_UTF_32_MONGOLIAN_LETTER_TODO_MA 0x184F #define T_UTF_32_MONGOLIAN_LETTER_TODO_TA 0x1850 #define T_UTF_32_MONGOLIAN_LETTER_TODO_DA 0x1851 #define T_UTF_32_MONGOLIAN_LETTER_TODO_CHA 0x1852 #define T_UTF_32_MONGOLIAN_LETTER_TODO_JA 0x1853 #define T_UTF_32_MONGOLIAN_LETTER_TODO_TSA 0x1854 #define T_UTF_32_MONGOLIAN_LETTER_TODO_YA 0x1855 #define T_UTF_32_MONGOLIAN_LETTER_TODO_WA 0x1856 #define T_UTF_32_MONGOLIAN_LETTER_TODO_KA 0x1857 #define T_UTF_32_MONGOLIAN_LETTER_TODO_GAA 0x1858 #define T_UTF_32_MONGOLIAN_LETTER_TODO_HAA 0x1859 #define T_UTF_32_MONGOLIAN_LETTER_TODO_JIA 0x185A #define T_UTF_32_MONGOLIAN_LETTER_TODO_NIA 0x185B #define T_UTF_32_MONGOLIAN_LETTER_TODO_DZA 0x185C #define T_UTF_32_MONGOLIAN_LETTER_SIBE_E 0x185D #define T_UTF_32_MONGOLIAN_LETTER_SIBE_I 0x185E #define T_UTF_32_MONGOLIAN_LETTER_SIBE_IY 0x185F #define T_UTF_32_MONGOLIAN_LETTER_SIBE_UE 0x1860 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_U 0x1861 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_ANG 0x1862 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_KA 0x1863 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_GA 0x1864 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_HA 0x1865 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_PA 0x1866 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_SHA 0x1867 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_TA 0x1868 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_DA 0x1869 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_JA 0x186A #define T_UTF_32_MONGOLIAN_LETTER_SIBE_FA 0x186B #define T_UTF_32_MONGOLIAN_LETTER_SIBE_GAA 0x186C #define T_UTF_32_MONGOLIAN_LETTER_SIBE_HAA 0x186D #define T_UTF_32_MONGOLIAN_LETTER_SIBE_TSA 0x186E #define T_UTF_32_MONGOLIAN_LETTER_SIBE_ZA 0x186F #define T_UTF_32_MONGOLIAN_LETTER_SIBE_RAA 0x1870 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_CHA 0x1871 #define T_UTF_32_MONGOLIAN_LETTER_SIBE_ZHA 0x1872 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_I 0x1873 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_KA 0x1874 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_RA 0x1875 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_FA 0x1876 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ZHA 0x1877 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_ANUSVARA_ONE 0x1880 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_VISARGA_ONE 0x1881 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_DAMARU 0x1882 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_UBADAMA 0x1883 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_INVERTED_UBADAMA 0x1884 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_BALUDA 0x1885 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_THREE_BALUDA 0x1886 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_A 0x1887 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_I 0x1888 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_KA 0x1889 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_NGA 0x188A #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_CA 0x188B #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_TTA 0x188C #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_TTHA 0x188D #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_DDA 0x188E #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_NNA 0x188F #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_TA 0x1890 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_DA 0x1891 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_PA 0x1892 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_PHA 0x1893 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_SSA 0x1894 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_ZHA 0x1895 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_ZA 0x1896 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_AH 0x1897 #define T_UTF_32_MONGOLIAN_LETTER_TODO_ALI_GALI_TA 0x1898 #define T_UTF_32_MONGOLIAN_LETTER_TODO_ALI_GALI_ZHA 0x1899 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_GHA 0x189A #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_NGA 0x189B #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_CA 0x189C #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_JHA 0x189D #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_TTA 0x189E #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_DDHA 0x189F #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_TA 0x18A0 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_DHA 0x18A1 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_SSA 0x18A2 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_CYA 0x18A3 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_ZHA 0x18A4 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_ZA 0x18A5 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_HALF_U 0x18A6 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_HALF_YA 0x18A7 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_BHA 0x18A8 #define T_UTF_32_MONGOLIAN_LETTER_ALI_GALI_DAGALGA 0x18A9 #define T_UTF_32_MONGOLIAN_LETTER_MANCHU_ALI_GALI_LHA 0x18AA #define T_UTF_32_CANADIAN_SYLLABICS_OY 0x18B0 #define T_UTF_32_CANADIAN_SYLLABICS_AY 0x18B1 #define T_UTF_32_CANADIAN_SYLLABICS_AAY 0x18B2 #define T_UTF_32_CANADIAN_SYLLABICS_WAY 0x18B3 #define T_UTF_32_CANADIAN_SYLLABICS_POY 0x18B4 #define T_UTF_32_CANADIAN_SYLLABICS_PAY 0x18B5 #define T_UTF_32_CANADIAN_SYLLABICS_PWOY 0x18B6 #define T_UTF_32_CANADIAN_SYLLABICS_TAY 0x18B7 #define T_UTF_32_CANADIAN_SYLLABICS_KAY 0x18B8 #define T_UTF_32_CANADIAN_SYLLABICS_KWAY 0x18B9 #define T_UTF_32_CANADIAN_SYLLABICS_MAY 0x18BA #define T_UTF_32_CANADIAN_SYLLABICS_NOY 0x18BB #define T_UTF_32_CANADIAN_SYLLABICS_NAY 0x18BC #define T_UTF_32_CANADIAN_SYLLABICS_LAY 0x18BD #define T_UTF_32_CANADIAN_SYLLABICS_SOY 0x18BE #define T_UTF_32_CANADIAN_SYLLABICS_SAY 0x18BF #define T_UTF_32_CANADIAN_SYLLABICS_SHOY 0x18C0 #define T_UTF_32_CANADIAN_SYLLABICS_SHAY 0x18C1 #define T_UTF_32_CANADIAN_SYLLABICS_SHWOY 0x18C2 #define T_UTF_32_CANADIAN_SYLLABICS_YOY 0x18C3 #define T_UTF_32_CANADIAN_SYLLABICS_YAY 0x18C4 #define T_UTF_32_CANADIAN_SYLLABICS_RAY 0x18C5 #define T_UTF_32_CANADIAN_SYLLABICS_NWI 0x18C6 #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_NWI 0x18C7 #define T_UTF_32_CANADIAN_SYLLABICS_NWII 0x18C8 #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_NWII 0x18C9 #define T_UTF_32_CANADIAN_SYLLABICS_NWO 0x18CA #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_NWO 0x18CB #define T_UTF_32_CANADIAN_SYLLABICS_NWOO 0x18CC #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_NWOO 0x18CD #define T_UTF_32_CANADIAN_SYLLABICS_RWEE 0x18CE #define T_UTF_32_CANADIAN_SYLLABICS_RWI 0x18CF #define T_UTF_32_CANADIAN_SYLLABICS_RWII 0x18D0 #define T_UTF_32_CANADIAN_SYLLABICS_RWO 0x18D1 #define T_UTF_32_CANADIAN_SYLLABICS_RWOO 0x18D2 #define T_UTF_32_CANADIAN_SYLLABICS_RWA 0x18D3 #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_P 0x18D4 #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_T 0x18D5 #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_K 0x18D6 #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_C 0x18D7 #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_M 0x18D8 #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_N 0x18D9 #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_S 0x18DA #define T_UTF_32_CANADIAN_SYLLABICS_OJIBWAY_SH 0x18DB #define T_UTF_32_CANADIAN_SYLLABICS_EASTERN_W 0x18DC #define T_UTF_32_CANADIAN_SYLLABICS_WESTERN_W 0x18DD #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_SMALL_RING 0x18DE #define T_UTF_32_CANADIAN_SYLLABICS_FINAL_RAISED_DOT 0x18DF #define T_UTF_32_CANADIAN_SYLLABICS_R_CREE_RWE 0x18E0 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LOO 0x18E1 #define T_UTF_32_CANADIAN_SYLLABICS_WEST_CREE_LAA 0x18E2 #define T_UTF_32_CANADIAN_SYLLABICS_THWE 0x18E3 #define T_UTF_32_CANADIAN_SYLLABICS_THWA 0x18E4 #define T_UTF_32_CANADIAN_SYLLABICS_TTHWE 0x18E5 #define T_UTF_32_CANADIAN_SYLLABICS_TTHOO 0x18E6 #define T_UTF_32_CANADIAN_SYLLABICS_TTHAA 0x18E7 #define T_UTF_32_CANADIAN_SYLLABICS_TLHWE 0x18E8 #define T_UTF_32_CANADIAN_SYLLABICS_TLHOO 0x18E9 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_SHWE 0x18EA #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_SHOO 0x18EB #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_HOO 0x18EC #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GWU 0x18ED #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DENE_GEE 0x18EE #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GAA 0x18EF #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_GWA 0x18F0 #define T_UTF_32_CANADIAN_SYLLABICS_SAYISI_JUU 0x18F1 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_JWA 0x18F2 #define T_UTF_32_CANADIAN_SYLLABICS_BEAVER_DENE_L 0x18F3 #define T_UTF_32_CANADIAN_SYLLABICS_BEAVER_DENE_R 0x18F4 #define T_UTF_32_CANADIAN_SYLLABICS_CARRIER_DENTAL_S 0x18F5 #define T_UTF_32_LIMBU_VOWEL_CARRIER_LETTER 0x1900 #define T_UTF_32_LIMBU_LETTER_KA 0x1901 #define T_UTF_32_LIMBU_LETTER_KHA 0x1902 #define T_UTF_32_LIMBU_LETTER_GA 0x1903 #define T_UTF_32_LIMBU_LETTER_GHA 0x1904 #define T_UTF_32_LIMBU_LETTER_NGA 0x1905 #define T_UTF_32_LIMBU_LETTER_CA 0x1906 #define T_UTF_32_LIMBU_LETTER_CHA 0x1907 #define T_UTF_32_LIMBU_LETTER_JA 0x1908 #define T_UTF_32_LIMBU_LETTER_JHA 0x1909 #define T_UTF_32_LIMBU_LETTER_YAN 0x190A #define T_UTF_32_LIMBU_LETTER_TA 0x190B #define T_UTF_32_LIMBU_LETTER_THA 0x190C #define T_UTF_32_LIMBU_LETTER_DA 0x190D #define T_UTF_32_LIMBU_LETTER_DHA 0x190E #define T_UTF_32_LIMBU_LETTER_NA 0x190F #define T_UTF_32_LIMBU_LETTER_PA 0x1910 #define T_UTF_32_LIMBU_LETTER_PHA 0x1911 #define T_UTF_32_LIMBU_LETTER_BA 0x1912 #define T_UTF_32_LIMBU_LETTER_BHA 0x1913 #define T_UTF_32_LIMBU_LETTER_MA 0x1914 #define T_UTF_32_LIMBU_LETTER_YA 0x1915 #define T_UTF_32_LIMBU_LETTER_RA 0x1916 #define T_UTF_32_LIMBU_LETTER_LA 0x1917 #define T_UTF_32_LIMBU_LETTER_WA 0x1918 #define T_UTF_32_LIMBU_LETTER_SHA 0x1919 #define T_UTF_32_LIMBU_LETTER_SSA 0x191A #define T_UTF_32_LIMBU_LETTER_SA 0x191B #define T_UTF_32_LIMBU_LETTER_HA 0x191C #define T_UTF_32_LIMBU_LETTER_GYAN 0x191D #define T_UTF_32_LIMBU_LETTER_TRA 0x191E #define T_UTF_32_LIMBU_VOWEL_SIGN_A 0x1920 #define T_UTF_32_LIMBU_VOWEL_SIGN_I 0x1921 #define T_UTF_32_LIMBU_VOWEL_SIGN_U 0x1922 #define T_UTF_32_LIMBU_VOWEL_SIGN_EE 0x1923 #define T_UTF_32_LIMBU_VOWEL_SIGN_AI 0x1924 #define T_UTF_32_LIMBU_VOWEL_SIGN_OO 0x1925 #define T_UTF_32_LIMBU_VOWEL_SIGN_AU 0x1926 #define T_UTF_32_LIMBU_VOWEL_SIGN_E 0x1927 #define T_UTF_32_LIMBU_VOWEL_SIGN_O 0x1928 #define T_UTF_32_LIMBU_SUBJOINED_LETTER_YA 0x1929 #define T_UTF_32_LIMBU_SUBJOINED_LETTER_RA 0x192A #define T_UTF_32_LIMBU_SUBJOINED_LETTER_WA 0x192B #define T_UTF_32_LIMBU_SMALL_LETTER_KA 0x1930 #define T_UTF_32_LIMBU_SMALL_LETTER_NGA 0x1931 #define T_UTF_32_LIMBU_SMALL_LETTER_ANUSVARA 0x1932 #define T_UTF_32_LIMBU_SMALL_LETTER_TA 0x1933 #define T_UTF_32_LIMBU_SMALL_LETTER_NA 0x1934 #define T_UTF_32_LIMBU_SMALL_LETTER_PA 0x1935 #define T_UTF_32_LIMBU_SMALL_LETTER_MA 0x1936 #define T_UTF_32_LIMBU_SMALL_LETTER_RA 0x1937 #define T_UTF_32_LIMBU_SMALL_LETTER_LA 0x1938 #define T_UTF_32_LIMBU_SIGN_MUKPHRENG 0x1939 #define T_UTF_32_LIMBU_SIGN_KEMPHRENG 0x193A #define T_UTF_32_LIMBU_SIGN_SA_I 0x193B #define T_UTF_32_LIMBU_SIGN_LOO 0x1940 #define T_UTF_32_LIMBU_EXCLAMATION_MARK 0x1944 #define T_UTF_32_LIMBU_QUESTION_MARK 0x1945 #define T_UTF_32_LIMBU_DIGIT_ZERO 0x1946 #define T_UTF_32_LIMBU_DIGIT_ONE 0x1947 #define T_UTF_32_LIMBU_DIGIT_TWO 0x1948 #define T_UTF_32_LIMBU_DIGIT_THREE 0x1949 #define T_UTF_32_LIMBU_DIGIT_FOUR 0x194A #define T_UTF_32_LIMBU_DIGIT_FIVE 0x194B #define T_UTF_32_LIMBU_DIGIT_SIX 0x194C #define T_UTF_32_LIMBU_DIGIT_SEVEN 0x194D #define T_UTF_32_LIMBU_DIGIT_EIGHT 0x194E #define T_UTF_32_LIMBU_DIGIT_NINE 0x194F #define T_UTF_32_TAI_LE_LETTER_KA 0x1950 #define T_UTF_32_TAI_LE_LETTER_XA 0x1951 #define T_UTF_32_TAI_LE_LETTER_NGA 0x1952 #define T_UTF_32_TAI_LE_LETTER_TSA 0x1953 #define T_UTF_32_TAI_LE_LETTER_SA 0x1954 #define T_UTF_32_TAI_LE_LETTER_YA 0x1955 #define T_UTF_32_TAI_LE_LETTER_TA 0x1956 #define T_UTF_32_TAI_LE_LETTER_THA 0x1957 #define T_UTF_32_TAI_LE_LETTER_LA 0x1958 #define T_UTF_32_TAI_LE_LETTER_PA 0x1959 #define T_UTF_32_TAI_LE_LETTER_PHA 0x195A #define T_UTF_32_TAI_LE_LETTER_MA 0x195B #define T_UTF_32_TAI_LE_LETTER_FA 0x195C #define T_UTF_32_TAI_LE_LETTER_VA 0x195D #define T_UTF_32_TAI_LE_LETTER_HA 0x195E #define T_UTF_32_TAI_LE_LETTER_QA 0x195F #define T_UTF_32_TAI_LE_LETTER_KHA 0x1960 #define T_UTF_32_TAI_LE_LETTER_TSHA 0x1961 #define T_UTF_32_TAI_LE_LETTER_NA 0x1962 #define T_UTF_32_TAI_LE_LETTER_A 0x1963 #define T_UTF_32_TAI_LE_LETTER_I 0x1964 #define T_UTF_32_TAI_LE_LETTER_EE 0x1965 #define T_UTF_32_TAI_LE_LETTER_EH 0x1966 #define T_UTF_32_TAI_LE_LETTER_U 0x1967 #define T_UTF_32_TAI_LE_LETTER_OO 0x1968 #define T_UTF_32_TAI_LE_LETTER_O 0x1969 #define T_UTF_32_TAI_LE_LETTER_UE 0x196A #define T_UTF_32_TAI_LE_LETTER_E 0x196B #define T_UTF_32_TAI_LE_LETTER_AUE 0x196C #define T_UTF_32_TAI_LE_LETTER_AI 0x196D #define T_UTF_32_TAI_LE_LETTER_TONE_2 0x1970 #define T_UTF_32_TAI_LE_LETTER_TONE_3 0x1971 #define T_UTF_32_TAI_LE_LETTER_TONE_4 0x1972 #define T_UTF_32_TAI_LE_LETTER_TONE_5 0x1973 #define T_UTF_32_TAI_LE_LETTER_TONE_6 0x1974 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_QA 0x1980 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_QA 0x1981 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_KA 0x1982 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_XA 0x1983 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_NGA 0x1984 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_KA 0x1985 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_XA 0x1986 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_NGA 0x1987 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_TSA 0x1988 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_SA 0x1989 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_YA 0x198A #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_TSA 0x198B #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_SA 0x198C #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_YA 0x198D #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_TA 0x198E #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_THA 0x198F #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_NA 0x1990 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_TA 0x1991 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_THA 0x1992 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_NA 0x1993 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_PA 0x1994 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_PHA 0x1995 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_MA 0x1996 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_PA 0x1997 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_PHA 0x1998 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_MA 0x1999 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_FA 0x199A #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_VA 0x199B #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_LA 0x199C #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_FA 0x199D #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_VA 0x199E #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_LA 0x199F #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_HA 0x19A0 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_DA 0x19A1 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_BA 0x19A2 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_HA 0x19A3 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_DA 0x19A4 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_BA 0x19A5 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_KVA 0x19A6 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_XVA 0x19A7 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_KVA 0x19A8 #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_XVA 0x19A9 #define T_UTF_32_NEW_TAI_LUE_LETTER_HIGH_SUA 0x19AA #define T_UTF_32_NEW_TAI_LUE_LETTER_LOW_SUA 0x19AB #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_VOWEL_SHORTENER 0x19B0 #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_AA 0x19B1 #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_II 0x19B2 #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_U 0x19B3 #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_UU 0x19B4 #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_E 0x19B5 #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_AE 0x19B6 #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_O 0x19B7 #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_OA 0x19B8 #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_UE 0x19B9 #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_AY 0x19BA #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_AAY 0x19BB #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_UY 0x19BC #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_OY 0x19BD #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_OAY 0x19BE #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_UEY 0x19BF #define T_UTF_32_NEW_TAI_LUE_VOWEL_SIGN_IY 0x19C0 #define T_UTF_32_NEW_TAI_LUE_LETTER_FINAL_V 0x19C1 #define T_UTF_32_NEW_TAI_LUE_LETTER_FINAL_NG 0x19C2 #define T_UTF_32_NEW_TAI_LUE_LETTER_FINAL_N 0x19C3 #define T_UTF_32_NEW_TAI_LUE_LETTER_FINAL_M 0x19C4 #define T_UTF_32_NEW_TAI_LUE_LETTER_FINAL_K 0x19C5 #define T_UTF_32_NEW_TAI_LUE_LETTER_FINAL_D 0x19C6 #define T_UTF_32_NEW_TAI_LUE_LETTER_FINAL_B 0x19C7 #define T_UTF_32_NEW_TAI_LUE_TONE_MARK_1 0x19C8 #define T_UTF_32_NEW_TAI_LUE_TONE_MARK_2 0x19C9 #define T_UTF_32_NEW_TAI_LUE_DIGIT_ZERO 0x19D0 #define T_UTF_32_NEW_TAI_LUE_DIGIT_ONE 0x19D1 #define T_UTF_32_NEW_TAI_LUE_DIGIT_TWO 0x19D2 #define T_UTF_32_NEW_TAI_LUE_DIGIT_THREE 0x19D3 #define T_UTF_32_NEW_TAI_LUE_DIGIT_FOUR 0x19D4 #define T_UTF_32_NEW_TAI_LUE_DIGIT_FIVE 0x19D5 #define T_UTF_32_NEW_TAI_LUE_DIGIT_SIX 0x19D6 #define T_UTF_32_NEW_TAI_LUE_DIGIT_SEVEN 0x19D7 #define T_UTF_32_NEW_TAI_LUE_DIGIT_EIGHT 0x19D8 #define T_UTF_32_NEW_TAI_LUE_DIGIT_NINE 0x19D9 #define T_UTF_32_NEW_TAI_LUE_THAM_DIGIT_ONE 0x19DA #define T_UTF_32_NEW_TAI_LUE_SIGN_LAE 0x19DE #define T_UTF_32_NEW_TAI_LUE_SIGN_LAEV 0x19DF #define T_UTF_32_KHMER_SYMBOL_PATHAMASAT 0x19E0 #define T_UTF_32_KHMER_SYMBOL_MUOY_KOET 0x19E1 #define T_UTF_32_KHMER_SYMBOL_PII_KOET 0x19E2 #define T_UTF_32_KHMER_SYMBOL_BEI_KOET 0x19E3 #define T_UTF_32_KHMER_SYMBOL_BUON_KOET 0x19E4 #define T_UTF_32_KHMER_SYMBOL_PRAM_KOET 0x19E5 #define T_UTF_32_KHMER_SYMBOL_PRAM_MUOY_KOET 0x19E6 #define T_UTF_32_KHMER_SYMBOL_PRAM_PII_KOET 0x19E7 #define T_UTF_32_KHMER_SYMBOL_PRAM_BEI_KOET 0x19E8 #define T_UTF_32_KHMER_SYMBOL_PRAM_BUON_KOET 0x19E9 #define T_UTF_32_KHMER_SYMBOL_DAP_KOET 0x19EA #define T_UTF_32_KHMER_SYMBOL_DAP_MUOY_KOET 0x19EB #define T_UTF_32_KHMER_SYMBOL_DAP_PII_KOET 0x19EC #define T_UTF_32_KHMER_SYMBOL_DAP_BEI_KOET 0x19ED #define T_UTF_32_KHMER_SYMBOL_DAP_BUON_KOET 0x19EE #define T_UTF_32_KHMER_SYMBOL_DAP_PRAM_KOET 0x19EF #define T_UTF_32_KHMER_SYMBOL_TUTEYASAT 0x19F0 #define T_UTF_32_KHMER_SYMBOL_MUOY_ROC 0x19F1 #define T_UTF_32_KHMER_SYMBOL_PII_ROC 0x19F2 #define T_UTF_32_KHMER_SYMBOL_BEI_ROC 0x19F3 #define T_UTF_32_KHMER_SYMBOL_BUON_ROC 0x19F4 #define T_UTF_32_KHMER_SYMBOL_PRAM_ROC 0x19F5 #define T_UTF_32_KHMER_SYMBOL_PRAM_MUOY_ROC 0x19F6 #define T_UTF_32_KHMER_SYMBOL_PRAM_PII_ROC 0x19F7 #define T_UTF_32_KHMER_SYMBOL_PRAM_BEI_ROC 0x19F8 #define T_UTF_32_KHMER_SYMBOL_PRAM_BUON_ROC 0x19F9 #define T_UTF_32_KHMER_SYMBOL_DAP_ROC 0x19FA #define T_UTF_32_KHMER_SYMBOL_DAP_MUOY_ROC 0x19FB #define T_UTF_32_KHMER_SYMBOL_DAP_PII_ROC 0x19FC #define T_UTF_32_KHMER_SYMBOL_DAP_BEI_ROC 0x19FD #define T_UTF_32_KHMER_SYMBOL_DAP_BUON_ROC 0x19FE #define T_UTF_32_KHMER_SYMBOL_DAP_PRAM_ROC 0x19FF #define T_UTF_32_BUGINESE_LETTER_KA 0x1A00 #define T_UTF_32_BUGINESE_LETTER_GA 0x1A01 #define T_UTF_32_BUGINESE_LETTER_NGA 0x1A02 #define T_UTF_32_BUGINESE_LETTER_NGKA 0x1A03 #define T_UTF_32_BUGINESE_LETTER_PA 0x1A04 #define T_UTF_32_BUGINESE_LETTER_BA 0x1A05 #define T_UTF_32_BUGINESE_LETTER_MA 0x1A06 #define T_UTF_32_BUGINESE_LETTER_MPA 0x1A07 #define T_UTF_32_BUGINESE_LETTER_TA 0x1A08 #define T_UTF_32_BUGINESE_LETTER_DA 0x1A09 #define T_UTF_32_BUGINESE_LETTER_NA 0x1A0A #define T_UTF_32_BUGINESE_LETTER_NRA 0x1A0B #define T_UTF_32_BUGINESE_LETTER_CA 0x1A0C #define T_UTF_32_BUGINESE_LETTER_JA 0x1A0D #define T_UTF_32_BUGINESE_LETTER_NYA 0x1A0E #define T_UTF_32_BUGINESE_LETTER_NYCA 0x1A0F #define T_UTF_32_BUGINESE_LETTER_YA 0x1A10 #define T_UTF_32_BUGINESE_LETTER_RA 0x1A11 #define T_UTF_32_BUGINESE_LETTER_LA 0x1A12 #define T_UTF_32_BUGINESE_LETTER_VA 0x1A13 #define T_UTF_32_BUGINESE_LETTER_SA 0x1A14 #define T_UTF_32_BUGINESE_LETTER_A 0x1A15 #define T_UTF_32_BUGINESE_LETTER_HA 0x1A16 #define T_UTF_32_BUGINESE_VOWEL_SIGN_I 0x1A17 #define T_UTF_32_BUGINESE_VOWEL_SIGN_U 0x1A18 #define T_UTF_32_BUGINESE_VOWEL_SIGN_E 0x1A19 #define T_UTF_32_BUGINESE_VOWEL_SIGN_O 0x1A1A #define T_UTF_32_BUGINESE_VOWEL_SIGN_AE 0x1A1B #define T_UTF_32_BUGINESE_PALLAWA 0x1A1E #define T_UTF_32_BUGINESE_END_OF_SECTION 0x1A1F #define T_UTF_32_TAI_THAM_LETTER_HIGH_KA 0x1A20 #define T_UTF_32_TAI_THAM_LETTER_HIGH_KHA 0x1A21 #define T_UTF_32_TAI_THAM_LETTER_HIGH_KXA 0x1A22 #define T_UTF_32_TAI_THAM_LETTER_LOW_KA 0x1A23 #define T_UTF_32_TAI_THAM_LETTER_LOW_KXA 0x1A24 #define T_UTF_32_TAI_THAM_LETTER_LOW_KHA 0x1A25 #define T_UTF_32_TAI_THAM_LETTER_NGA 0x1A26 #define T_UTF_32_TAI_THAM_LETTER_HIGH_CA 0x1A27 #define T_UTF_32_TAI_THAM_LETTER_HIGH_CHA 0x1A28 #define T_UTF_32_TAI_THAM_LETTER_LOW_CA 0x1A29 #define T_UTF_32_TAI_THAM_LETTER_LOW_SA 0x1A2A #define T_UTF_32_TAI_THAM_LETTER_LOW_CHA 0x1A2B #define T_UTF_32_TAI_THAM_LETTER_NYA 0x1A2C #define T_UTF_32_TAI_THAM_LETTER_RATA 0x1A2D #define T_UTF_32_TAI_THAM_LETTER_HIGH_RATHA 0x1A2E #define T_UTF_32_TAI_THAM_LETTER_DA 0x1A2F #define T_UTF_32_TAI_THAM_LETTER_LOW_RATHA 0x1A30 #define T_UTF_32_TAI_THAM_LETTER_RANA 0x1A31 #define T_UTF_32_TAI_THAM_LETTER_HIGH_TA 0x1A32 #define T_UTF_32_TAI_THAM_LETTER_HIGH_THA 0x1A33 #define T_UTF_32_TAI_THAM_LETTER_LOW_TA 0x1A34 #define T_UTF_32_TAI_THAM_LETTER_LOW_THA 0x1A35 #define T_UTF_32_TAI_THAM_LETTER_NA 0x1A36 #define T_UTF_32_TAI_THAM_LETTER_BA 0x1A37 #define T_UTF_32_TAI_THAM_LETTER_HIGH_PA 0x1A38 #define T_UTF_32_TAI_THAM_LETTER_HIGH_PHA 0x1A39 #define T_UTF_32_TAI_THAM_LETTER_HIGH_FA 0x1A3A #define T_UTF_32_TAI_THAM_LETTER_LOW_PA 0x1A3B #define T_UTF_32_TAI_THAM_LETTER_LOW_FA 0x1A3C #define T_UTF_32_TAI_THAM_LETTER_LOW_PHA 0x1A3D #define T_UTF_32_TAI_THAM_LETTER_MA 0x1A3E #define T_UTF_32_TAI_THAM_LETTER_LOW_YA 0x1A3F #define T_UTF_32_TAI_THAM_LETTER_HIGH_YA 0x1A40 #define T_UTF_32_TAI_THAM_LETTER_RA 0x1A41 #define T_UTF_32_TAI_THAM_LETTER_RUE 0x1A42 #define T_UTF_32_TAI_THAM_LETTER_LA 0x1A43 #define T_UTF_32_TAI_THAM_LETTER_LUE 0x1A44 #define T_UTF_32_TAI_THAM_LETTER_WA 0x1A45 #define T_UTF_32_TAI_THAM_LETTER_HIGH_SHA 0x1A46 #define T_UTF_32_TAI_THAM_LETTER_HIGH_SSA 0x1A47 #define T_UTF_32_TAI_THAM_LETTER_HIGH_SA 0x1A48 #define T_UTF_32_TAI_THAM_LETTER_HIGH_HA 0x1A49 #define T_UTF_32_TAI_THAM_LETTER_LLA 0x1A4A #define T_UTF_32_TAI_THAM_LETTER_A 0x1A4B #define T_UTF_32_TAI_THAM_LETTER_LOW_HA 0x1A4C #define T_UTF_32_TAI_THAM_LETTER_I 0x1A4D #define T_UTF_32_TAI_THAM_LETTER_II 0x1A4E #define T_UTF_32_TAI_THAM_LETTER_U 0x1A4F #define T_UTF_32_TAI_THAM_LETTER_UU 0x1A50 #define T_UTF_32_TAI_THAM_LETTER_EE 0x1A51 #define T_UTF_32_TAI_THAM_LETTER_OO 0x1A52 #define T_UTF_32_TAI_THAM_LETTER_LAE 0x1A53 #define T_UTF_32_TAI_THAM_LETTER_GREAT_SA 0x1A54 #define T_UTF_32_TAI_THAM_CONSONANT_SIGN_MEDIAL_RA 0x1A55 #define T_UTF_32_TAI_THAM_CONSONANT_SIGN_MEDIAL_LA 0x1A56 #define T_UTF_32_TAI_THAM_CONSONANT_SIGN_LA_TANG_LAI 0x1A57 #define T_UTF_32_TAI_THAM_SIGN_MAI_KANG_LAI 0x1A58 #define T_UTF_32_TAI_THAM_CONSONANT_SIGN_FINAL_NGA 0x1A59 #define T_UTF_32_TAI_THAM_CONSONANT_SIGN_LOW_PA 0x1A5A #define T_UTF_32_TAI_THAM_CONSONANT_SIGN_HIGH_RATHA_OR_LOW_PA 0x1A5B #define T_UTF_32_TAI_THAM_CONSONANT_SIGN_MA 0x1A5C #define T_UTF_32_TAI_THAM_CONSONANT_SIGN_BA 0x1A5D #define T_UTF_32_TAI_THAM_CONSONANT_SIGN_SA 0x1A5E #define T_UTF_32_TAI_THAM_SIGN_SAKOT 0x1A60 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_A 0x1A61 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_MAI_SAT 0x1A62 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_AA 0x1A63 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_TALL_AA 0x1A64 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_I 0x1A65 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_II 0x1A66 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_UE 0x1A67 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_UUE 0x1A68 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_U 0x1A69 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_UU 0x1A6A #define T_UTF_32_TAI_THAM_VOWEL_SIGN_O 0x1A6B #define T_UTF_32_TAI_THAM_VOWEL_SIGN_OA_BELOW 0x1A6C #define T_UTF_32_TAI_THAM_VOWEL_SIGN_OY 0x1A6D #define T_UTF_32_TAI_THAM_VOWEL_SIGN_E 0x1A6E #define T_UTF_32_TAI_THAM_VOWEL_SIGN_AE 0x1A6F #define T_UTF_32_TAI_THAM_VOWEL_SIGN_OO 0x1A70 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_AI 0x1A71 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_THAM_AI 0x1A72 #define T_UTF_32_TAI_THAM_VOWEL_SIGN_OA_ABOVE 0x1A73 #define T_UTF_32_TAI_THAM_SIGN_MAI_KANG 0x1A74 #define T_UTF_32_TAI_THAM_SIGN_TONE_1 0x1A75 #define T_UTF_32_TAI_THAM_SIGN_TONE_2 0x1A76 #define T_UTF_32_TAI_THAM_SIGN_KHUEN_TONE_3 0x1A77 #define T_UTF_32_TAI_THAM_SIGN_KHUEN_TONE_4 0x1A78 #define T_UTF_32_TAI_THAM_SIGN_KHUEN_TONE_5 0x1A79 #define T_UTF_32_TAI_THAM_SIGN_RA_HAAM 0x1A7A #define T_UTF_32_TAI_THAM_SIGN_MAI_SAM 0x1A7B #define T_UTF_32_TAI_THAM_SIGN_KHUEN_LUE_KARAN 0x1A7C #define T_UTF_32_TAI_THAM_COMBINING_CRYPTOGRAMMIC_DOT 0x1A7F #define T_UTF_32_TAI_THAM_HORA_DIGIT_ZERO 0x1A80 #define T_UTF_32_TAI_THAM_HORA_DIGIT_ONE 0x1A81 #define T_UTF_32_TAI_THAM_HORA_DIGIT_TWO 0x1A82 #define T_UTF_32_TAI_THAM_HORA_DIGIT_THREE 0x1A83 #define T_UTF_32_TAI_THAM_HORA_DIGIT_FOUR 0x1A84 #define T_UTF_32_TAI_THAM_HORA_DIGIT_FIVE 0x1A85 #define T_UTF_32_TAI_THAM_HORA_DIGIT_SIX 0x1A86 #define T_UTF_32_TAI_THAM_HORA_DIGIT_SEVEN 0x1A87 #define T_UTF_32_TAI_THAM_HORA_DIGIT_EIGHT 0x1A88 #define T_UTF_32_TAI_THAM_HORA_DIGIT_NINE 0x1A89 #define T_UTF_32_TAI_THAM_THAM_DIGIT_ZERO 0x1A90 #define T_UTF_32_TAI_THAM_THAM_DIGIT_ONE 0x1A91 #define T_UTF_32_TAI_THAM_THAM_DIGIT_TWO 0x1A92 #define T_UTF_32_TAI_THAM_THAM_DIGIT_THREE 0x1A93 #define T_UTF_32_TAI_THAM_THAM_DIGIT_FOUR 0x1A94 #define T_UTF_32_TAI_THAM_THAM_DIGIT_FIVE 0x1A95 #define T_UTF_32_TAI_THAM_THAM_DIGIT_SIX 0x1A96 #define T_UTF_32_TAI_THAM_THAM_DIGIT_SEVEN 0x1A97 #define T_UTF_32_TAI_THAM_THAM_DIGIT_EIGHT 0x1A98 #define T_UTF_32_TAI_THAM_THAM_DIGIT_NINE 0x1A99 #define T_UTF_32_TAI_THAM_SIGN_WIANG 0x1AA0 #define T_UTF_32_TAI_THAM_SIGN_WIANGWAAK 0x1AA1 #define T_UTF_32_TAI_THAM_SIGN_SAWAN 0x1AA2 #define T_UTF_32_TAI_THAM_SIGN_KEOW 0x1AA3 #define T_UTF_32_TAI_THAM_SIGN_HOY 0x1AA4 #define T_UTF_32_TAI_THAM_SIGN_DOKMAI 0x1AA5 #define T_UTF_32_TAI_THAM_SIGN_REVERSED_ROTATED_RANA 0x1AA6 #define T_UTF_32_TAI_THAM_SIGN_MAI_YAMOK 0x1AA7 #define T_UTF_32_TAI_THAM_SIGN_KAAN 0x1AA8 #define T_UTF_32_TAI_THAM_SIGN_KAANKUU 0x1AA9 #define T_UTF_32_TAI_THAM_SIGN_SATKAAN 0x1AAA #define T_UTF_32_TAI_THAM_SIGN_SATKAANKUU 0x1AAB #define T_UTF_32_TAI_THAM_SIGN_HANG 0x1AAC #define T_UTF_32_TAI_THAM_SIGN_CAANG 0x1AAD #define T_UTF_32_COMBINING_DOUBLED_CIRCUMFLEX_ACCENT 0x1AB0 #define T_UTF_32_COMBINING_DIAERESIS_RING 0x1AB1 #define T_UTF_32_COMBINING_INFINITY 0x1AB2 #define T_UTF_32_COMBINING_DOWNWARDS_ARROW 0x1AB3 #define T_UTF_32_COMBINING_TRIPLE_DOT 0x1AB4 #define T_UTF_32_COMBINING_X_X_BELOW 0x1AB5 #define T_UTF_32_COMBINING_WIGGLY_LINE_BELOW 0x1AB6 #define T_UTF_32_COMBINING_OPEN_MARK_BELOW 0x1AB7 #define T_UTF_32_COMBINING_DOUBLE_OPEN_MARK_BELOW 0x1AB8 #define T_UTF_32_COMBINING_LIGHT_CENTRALIZATION_STROKE_BELOW 0x1AB9 #define T_UTF_32_COMBINING_STRONG_CENTRALIZATION_STROKE_BELOW 0x1ABA #define T_UTF_32_COMBINING_PARENTHESES_ABOVE 0x1ABB #define T_UTF_32_COMBINING_DOUBLE_PARENTHESES_ABOVE 0x1ABC #define T_UTF_32_COMBINING_PARENTHESES_BELOW 0x1ABD #define T_UTF_32_COMBINING_PARENTHESES_OVERLAY 0x1ABE #define T_UTF_32_BALINESE_SIGN_ULU_RICEM 0x1B00 #define T_UTF_32_BALINESE_SIGN_ULU_CANDRA 0x1B01 #define T_UTF_32_BALINESE_SIGN_CECEK 0x1B02 #define T_UTF_32_BALINESE_SIGN_SURANG 0x1B03 #define T_UTF_32_BALINESE_SIGN_BISAH 0x1B04 #define T_UTF_32_BALINESE_LETTER_AKARA 0x1B05 #define T_UTF_32_BALINESE_LETTER_AKARA_TEDUNG 0x1B06 #define T_UTF_32_BALINESE_LETTER_IKARA 0x1B07 #define T_UTF_32_BALINESE_LETTER_IKARA_TEDUNG 0x1B08 #define T_UTF_32_BALINESE_LETTER_UKARA 0x1B09 #define T_UTF_32_BALINESE_LETTER_UKARA_TEDUNG 0x1B0A #define T_UTF_32_BALINESE_LETTER_RA_REPA 0x1B0B #define T_UTF_32_BALINESE_LETTER_RA_REPA_TEDUNG 0x1B0C #define T_UTF_32_BALINESE_LETTER_LA_LENGA 0x1B0D #define T_UTF_32_BALINESE_LETTER_LA_LENGA_TEDUNG 0x1B0E #define T_UTF_32_BALINESE_LETTER_EKARA 0x1B0F #define T_UTF_32_BALINESE_LETTER_AIKARA 0x1B10 #define T_UTF_32_BALINESE_LETTER_OKARA 0x1B11 #define T_UTF_32_BALINESE_LETTER_OKARA_TEDUNG 0x1B12 #define T_UTF_32_BALINESE_LETTER_KA 0x1B13 #define T_UTF_32_BALINESE_LETTER_KA_MAHAPRANA 0x1B14 #define T_UTF_32_BALINESE_LETTER_GA 0x1B15 #define T_UTF_32_BALINESE_LETTER_GA_GORA 0x1B16 #define T_UTF_32_BALINESE_LETTER_NGA 0x1B17 #define T_UTF_32_BALINESE_LETTER_CA 0x1B18 #define T_UTF_32_BALINESE_LETTER_CA_LACA 0x1B19 #define T_UTF_32_BALINESE_LETTER_JA 0x1B1A #define T_UTF_32_BALINESE_LETTER_JA_JERA 0x1B1B #define T_UTF_32_BALINESE_LETTER_NYA 0x1B1C #define T_UTF_32_BALINESE_LETTER_TA_LATIK 0x1B1D #define T_UTF_32_BALINESE_LETTER_TA_MURDA_MAHAPRANA 0x1B1E #define T_UTF_32_BALINESE_LETTER_DA_MURDA_ALPAPRANA 0x1B1F #define T_UTF_32_BALINESE_LETTER_DA_MURDA_MAHAPRANA 0x1B20 #define T_UTF_32_BALINESE_LETTER_NA_RAMBAT 0x1B21 #define T_UTF_32_BALINESE_LETTER_TA 0x1B22 #define T_UTF_32_BALINESE_LETTER_TA_TAWA 0x1B23 #define T_UTF_32_BALINESE_LETTER_DA 0x1B24 #define T_UTF_32_BALINESE_LETTER_DA_MADU 0x1B25 #define T_UTF_32_BALINESE_LETTER_NA 0x1B26 #define T_UTF_32_BALINESE_LETTER_PA 0x1B27 #define T_UTF_32_BALINESE_LETTER_PA_KAPAL 0x1B28 #define T_UTF_32_BALINESE_LETTER_BA 0x1B29 #define T_UTF_32_BALINESE_LETTER_BA_KEMBANG 0x1B2A #define T_UTF_32_BALINESE_LETTER_MA 0x1B2B #define T_UTF_32_BALINESE_LETTER_YA 0x1B2C #define T_UTF_32_BALINESE_LETTER_RA 0x1B2D #define T_UTF_32_BALINESE_LETTER_LA 0x1B2E #define T_UTF_32_BALINESE_LETTER_WA 0x1B2F #define T_UTF_32_BALINESE_LETTER_SA_SAGA 0x1B30 #define T_UTF_32_BALINESE_LETTER_SA_SAPA 0x1B31 #define T_UTF_32_BALINESE_LETTER_SA 0x1B32 #define T_UTF_32_BALINESE_LETTER_HA 0x1B33 #define T_UTF_32_BALINESE_SIGN_REREKAN 0x1B34 #define T_UTF_32_BALINESE_VOWEL_SIGN_TEDUNG 0x1B35 #define T_UTF_32_BALINESE_VOWEL_SIGN_ULU 0x1B36 #define T_UTF_32_BALINESE_VOWEL_SIGN_ULU_SARI 0x1B37 #define T_UTF_32_BALINESE_VOWEL_SIGN_SUKU 0x1B38 #define T_UTF_32_BALINESE_VOWEL_SIGN_SUKU_ILUT 0x1B39 #define T_UTF_32_BALINESE_VOWEL_SIGN_RA_REPA 0x1B3A #define T_UTF_32_BALINESE_VOWEL_SIGN_RA_REPA_TEDUNG 0x1B3B #define T_UTF_32_BALINESE_VOWEL_SIGN_LA_LENGA 0x1B3C #define T_UTF_32_BALINESE_VOWEL_SIGN_LA_LENGA_TEDUNG 0x1B3D #define T_UTF_32_BALINESE_VOWEL_SIGN_TALING 0x1B3E #define T_UTF_32_BALINESE_VOWEL_SIGN_TALING_REPA 0x1B3F #define T_UTF_32_BALINESE_VOWEL_SIGN_TALING_TEDUNG 0x1B40 #define T_UTF_32_BALINESE_VOWEL_SIGN_TALING_REPA_TEDUNG 0x1B41 #define T_UTF_32_BALINESE_VOWEL_SIGN_PEPET 0x1B42 #define T_UTF_32_BALINESE_VOWEL_SIGN_PEPET_TEDUNG 0x1B43 #define T_UTF_32_BALINESE_ADEG_ADEG 0x1B44 #define T_UTF_32_BALINESE_LETTER_KAF_SASAK 0x1B45 #define T_UTF_32_BALINESE_LETTER_KHOT_SASAK 0x1B46 #define T_UTF_32_BALINESE_LETTER_TZIR_SASAK 0x1B47 #define T_UTF_32_BALINESE_LETTER_EF_SASAK 0x1B48 #define T_UTF_32_BALINESE_LETTER_VE_SASAK 0x1B49 #define T_UTF_32_BALINESE_LETTER_ZAL_SASAK 0x1B4A #define T_UTF_32_BALINESE_LETTER_ASYURA_SASAK 0x1B4B #define T_UTF_32_BALINESE_DIGIT_ZERO 0x1B50 #define T_UTF_32_BALINESE_DIGIT_ONE 0x1B51 #define T_UTF_32_BALINESE_DIGIT_TWO 0x1B52 #define T_UTF_32_BALINESE_DIGIT_THREE 0x1B53 #define T_UTF_32_BALINESE_DIGIT_FOUR 0x1B54 #define T_UTF_32_BALINESE_DIGIT_FIVE 0x1B55 #define T_UTF_32_BALINESE_DIGIT_SIX 0x1B56 #define T_UTF_32_BALINESE_DIGIT_SEVEN 0x1B57 #define T_UTF_32_BALINESE_DIGIT_EIGHT 0x1B58 #define T_UTF_32_BALINESE_DIGIT_NINE 0x1B59 #define T_UTF_32_BALINESE_PANTI 0x1B5A #define T_UTF_32_BALINESE_PAMADA 0x1B5B #define T_UTF_32_BALINESE_WINDU 0x1B5C #define T_UTF_32_BALINESE_CARIK_PAMUNGKAH 0x1B5D #define T_UTF_32_BALINESE_CARIK_SIKI 0x1B5E #define T_UTF_32_BALINESE_CARIK_PAREREN 0x1B5F #define T_UTF_32_BALINESE_PAMENENG 0x1B60 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_DONG 0x1B61 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_DENG 0x1B62 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_DUNG 0x1B63 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_DANG 0x1B64 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_DANG_SURANG 0x1B65 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_DING 0x1B66 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_DAENG 0x1B67 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_DEUNG 0x1B68 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_DAING 0x1B69 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_DANG_GEDE 0x1B6A #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_COMBINING_TEGEH 0x1B6B #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_COMBINING_ENDEP 0x1B6C #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_COMBINING_KEMPUL 0x1B6D #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_COMBINING_KEMPLI 0x1B6E #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_COMBINING_JEGOGAN 0x1B6F #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_COMBINING_KEMPUL_WITH_JEGOGAN 0x1B70 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_COMBINING_KEMPLI_WITH_JEGOGAN 0x1B71 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_COMBINING_BENDE 0x1B72 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_COMBINING_GONG 0x1B73 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_RIGHT_HAND_OPEN_DUG 0x1B74 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_RIGHT_HAND_OPEN_DAG 0x1B75 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_RIGHT_HAND_CLOSED_TUK 0x1B76 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_RIGHT_HAND_CLOSED_TAK 0x1B77 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_LEFT_HAND_OPEN_PANG 0x1B78 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_LEFT_HAND_OPEN_PUNG 0x1B79 #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_LEFT_HAND_CLOSED_PLAK 0x1B7A #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_LEFT_HAND_CLOSED_PLUK 0x1B7B #define T_UTF_32_BALINESE_MUSICAL_SYMBOL_LEFT_HAND_OPEN_PING 0x1B7C #define T_UTF_32_SUNDANESE_SIGN_PANYECEK 0x1B80 #define T_UTF_32_SUNDANESE_SIGN_PANGLAYAR 0x1B81 #define T_UTF_32_SUNDANESE_SIGN_PANGWISAD 0x1B82 #define T_UTF_32_SUNDANESE_LETTER_A 0x1B83 #define T_UTF_32_SUNDANESE_LETTER_I 0x1B84 #define T_UTF_32_SUNDANESE_LETTER_U 0x1B85 #define T_UTF_32_SUNDANESE_LETTER_AE 0x1B86 #define T_UTF_32_SUNDANESE_LETTER_O 0x1B87 #define T_UTF_32_SUNDANESE_LETTER_E 0x1B88 #define T_UTF_32_SUNDANESE_LETTER_EU 0x1B89 #define T_UTF_32_SUNDANESE_LETTER_KA 0x1B8A #define T_UTF_32_SUNDANESE_LETTER_QA 0x1B8B #define T_UTF_32_SUNDANESE_LETTER_GA 0x1B8C #define T_UTF_32_SUNDANESE_LETTER_NGA 0x1B8D #define T_UTF_32_SUNDANESE_LETTER_CA 0x1B8E #define T_UTF_32_SUNDANESE_LETTER_JA 0x1B8F #define T_UTF_32_SUNDANESE_LETTER_ZA 0x1B90 #define T_UTF_32_SUNDANESE_LETTER_NYA 0x1B91 #define T_UTF_32_SUNDANESE_LETTER_TA 0x1B92 #define T_UTF_32_SUNDANESE_LETTER_DA 0x1B93 #define T_UTF_32_SUNDANESE_LETTER_NA 0x1B94 #define T_UTF_32_SUNDANESE_LETTER_PA 0x1B95 #define T_UTF_32_SUNDANESE_LETTER_FA 0x1B96 #define T_UTF_32_SUNDANESE_LETTER_VA 0x1B97 #define T_UTF_32_SUNDANESE_LETTER_BA 0x1B98 #define T_UTF_32_SUNDANESE_LETTER_MA 0x1B99 #define T_UTF_32_SUNDANESE_LETTER_YA 0x1B9A #define T_UTF_32_SUNDANESE_LETTER_RA 0x1B9B #define T_UTF_32_SUNDANESE_LETTER_LA 0x1B9C #define T_UTF_32_SUNDANESE_LETTER_WA 0x1B9D #define T_UTF_32_SUNDANESE_LETTER_SA 0x1B9E #define T_UTF_32_SUNDANESE_LETTER_XA 0x1B9F #define T_UTF_32_SUNDANESE_LETTER_HA 0x1BA0 #define T_UTF_32_SUNDANESE_CONSONANT_SIGN_PAMINGKAL 0x1BA1 #define T_UTF_32_SUNDANESE_CONSONANT_SIGN_PANYAKRA 0x1BA2 #define T_UTF_32_SUNDANESE_CONSONANT_SIGN_PANYIKU 0x1BA3 #define T_UTF_32_SUNDANESE_VOWEL_SIGN_PANGHULU 0x1BA4 #define T_UTF_32_SUNDANESE_VOWEL_SIGN_PANYUKU 0x1BA5 #define T_UTF_32_SUNDANESE_VOWEL_SIGN_PANAELAENG 0x1BA6 #define T_UTF_32_SUNDANESE_VOWEL_SIGN_PANOLONG 0x1BA7 #define T_UTF_32_SUNDANESE_VOWEL_SIGN_PAMEPET 0x1BA8 #define T_UTF_32_SUNDANESE_VOWEL_SIGN_PANEULEUNG 0x1BA9 #define T_UTF_32_SUNDANESE_SIGN_PAMAAEH 0x1BAA #define T_UTF_32_SUNDANESE_SIGN_VIRAMA 0x1BAB #define T_UTF_32_SUNDANESE_CONSONANT_SIGN_PASANGAN_MA 0x1BAC #define T_UTF_32_SUNDANESE_CONSONANT_SIGN_PASANGAN_WA 0x1BAD #define T_UTF_32_SUNDANESE_LETTER_KHA 0x1BAE #define T_UTF_32_SUNDANESE_LETTER_SYA 0x1BAF #define T_UTF_32_SUNDANESE_DIGIT_ZERO 0x1BB0 #define T_UTF_32_SUNDANESE_DIGIT_ONE 0x1BB1 #define T_UTF_32_SUNDANESE_DIGIT_TWO 0x1BB2 #define T_UTF_32_SUNDANESE_DIGIT_THREE 0x1BB3 #define T_UTF_32_SUNDANESE_DIGIT_FOUR 0x1BB4 #define T_UTF_32_SUNDANESE_DIGIT_FIVE 0x1BB5 #define T_UTF_32_SUNDANESE_DIGIT_SIX 0x1BB6 #define T_UTF_32_SUNDANESE_DIGIT_SEVEN 0x1BB7 #define T_UTF_32_SUNDANESE_DIGIT_EIGHT 0x1BB8 #define T_UTF_32_SUNDANESE_DIGIT_NINE 0x1BB9 #define T_UTF_32_SUNDANESE_AVAGRAHA 0x1BBA #define T_UTF_32_SUNDANESE_LETTER_REU 0x1BBB #define T_UTF_32_SUNDANESE_LETTER_LEU 0x1BBC #define T_UTF_32_SUNDANESE_LETTER_BHA 0x1BBD #define T_UTF_32_SUNDANESE_LETTER_FINAL_K 0x1BBE #define T_UTF_32_SUNDANESE_LETTER_FINAL_M 0x1BBF #define T_UTF_32_BATAK_LETTER_A 0x1BC0 #define T_UTF_32_BATAK_LETTER_SIMALUNGUN_A 0x1BC1 #define T_UTF_32_BATAK_LETTER_HA 0x1BC2 #define T_UTF_32_BATAK_LETTER_SIMALUNGUN_HA 0x1BC3 #define T_UTF_32_BATAK_LETTER_MANDAILING_HA 0x1BC4 #define T_UTF_32_BATAK_LETTER_BA 0x1BC5 #define T_UTF_32_BATAK_LETTER_KARO_BA 0x1BC6 #define T_UTF_32_BATAK_LETTER_PA 0x1BC7 #define T_UTF_32_BATAK_LETTER_SIMALUNGUN_PA 0x1BC8 #define T_UTF_32_BATAK_LETTER_NA 0x1BC9 #define T_UTF_32_BATAK_LETTER_MANDAILING_NA 0x1BCA #define T_UTF_32_BATAK_LETTER_WA 0x1BCB #define T_UTF_32_BATAK_LETTER_SIMALUNGUN_WA 0x1BCC #define T_UTF_32_BATAK_LETTER_PAKPAK_WA 0x1BCD #define T_UTF_32_BATAK_LETTER_GA 0x1BCE #define T_UTF_32_BATAK_LETTER_SIMALUNGUN_GA 0x1BCF #define T_UTF_32_BATAK_LETTER_JA 0x1BD0 #define T_UTF_32_BATAK_LETTER_DA 0x1BD1 #define T_UTF_32_BATAK_LETTER_RA 0x1BD2 #define T_UTF_32_BATAK_LETTER_SIMALUNGUN_RA 0x1BD3 #define T_UTF_32_BATAK_LETTER_MA 0x1BD4 #define T_UTF_32_BATAK_LETTER_SIMALUNGUN_MA 0x1BD5 #define T_UTF_32_BATAK_LETTER_SOUTHERN_TA 0x1BD6 #define T_UTF_32_BATAK_LETTER_NORTHERN_TA 0x1BD7 #define T_UTF_32_BATAK_LETTER_SA 0x1BD8 #define T_UTF_32_BATAK_LETTER_SIMALUNGUN_SA 0x1BD9 #define T_UTF_32_BATAK_LETTER_MANDAILING_SA 0x1BDA #define T_UTF_32_BATAK_LETTER_YA 0x1BDB #define T_UTF_32_BATAK_LETTER_SIMALUNGUN_YA 0x1BDC #define T_UTF_32_BATAK_LETTER_NGA 0x1BDD #define T_UTF_32_BATAK_LETTER_LA 0x1BDE #define T_UTF_32_BATAK_LETTER_SIMALUNGUN_LA 0x1BDF #define T_UTF_32_BATAK_LETTER_NYA 0x1BE0 #define T_UTF_32_BATAK_LETTER_CA 0x1BE1 #define T_UTF_32_BATAK_LETTER_NDA 0x1BE2 #define T_UTF_32_BATAK_LETTER_MBA 0x1BE3 #define T_UTF_32_BATAK_LETTER_I 0x1BE4 #define T_UTF_32_BATAK_LETTER_U 0x1BE5 #define T_UTF_32_BATAK_SIGN_TOMPI 0x1BE6 #define T_UTF_32_BATAK_VOWEL_SIGN_E 0x1BE7 #define T_UTF_32_BATAK_VOWEL_SIGN_PAKPAK_E 0x1BE8 #define T_UTF_32_BATAK_VOWEL_SIGN_EE 0x1BE9 #define T_UTF_32_BATAK_VOWEL_SIGN_I 0x1BEA #define T_UTF_32_BATAK_VOWEL_SIGN_KARO_I 0x1BEB #define T_UTF_32_BATAK_VOWEL_SIGN_O 0x1BEC #define T_UTF_32_BATAK_VOWEL_SIGN_KARO_O 0x1BED #define T_UTF_32_BATAK_VOWEL_SIGN_U 0x1BEE #define T_UTF_32_BATAK_VOWEL_SIGN_U_FOR_SIMALUNGUN_SA 0x1BEF #define T_UTF_32_BATAK_CONSONANT_SIGN_NG 0x1BF0 #define T_UTF_32_BATAK_CONSONANT_SIGN_H 0x1BF1 #define T_UTF_32_BATAK_PANGOLAT 0x1BF2 #define T_UTF_32_BATAK_PANONGONAN 0x1BF3 #define T_UTF_32_BATAK_SYMBOL_BINDU_NA_METEK 0x1BFC #define T_UTF_32_BATAK_SYMBOL_BINDU_PINARBORAS 0x1BFD #define T_UTF_32_BATAK_SYMBOL_BINDU_JUDUL 0x1BFE #define T_UTF_32_BATAK_SYMBOL_BINDU_PANGOLAT 0x1BFF #define T_UTF_32_LEPCHA_LETTER_KA 0x1C00 #define T_UTF_32_LEPCHA_LETTER_KLA 0x1C01 #define T_UTF_32_LEPCHA_LETTER_KHA 0x1C02 #define T_UTF_32_LEPCHA_LETTER_GA 0x1C03 #define T_UTF_32_LEPCHA_LETTER_GLA 0x1C04 #define T_UTF_32_LEPCHA_LETTER_NGA 0x1C05 #define T_UTF_32_LEPCHA_LETTER_CA 0x1C06 #define T_UTF_32_LEPCHA_LETTER_CHA 0x1C07 #define T_UTF_32_LEPCHA_LETTER_JA 0x1C08 #define T_UTF_32_LEPCHA_LETTER_NYA 0x1C09 #define T_UTF_32_LEPCHA_LETTER_TA 0x1C0A #define T_UTF_32_LEPCHA_LETTER_THA 0x1C0B #define T_UTF_32_LEPCHA_LETTER_DA 0x1C0C #define T_UTF_32_LEPCHA_LETTER_NA 0x1C0D #define T_UTF_32_LEPCHA_LETTER_PA 0x1C0E #define T_UTF_32_LEPCHA_LETTER_PLA 0x1C0F #define T_UTF_32_LEPCHA_LETTER_PHA 0x1C10 #define T_UTF_32_LEPCHA_LETTER_FA 0x1C11 #define T_UTF_32_LEPCHA_LETTER_FLA 0x1C12 #define T_UTF_32_LEPCHA_LETTER_BA 0x1C13 #define T_UTF_32_LEPCHA_LETTER_BLA 0x1C14 #define T_UTF_32_LEPCHA_LETTER_MA 0x1C15 #define T_UTF_32_LEPCHA_LETTER_MLA 0x1C16 #define T_UTF_32_LEPCHA_LETTER_TSA 0x1C17 #define T_UTF_32_LEPCHA_LETTER_TSHA 0x1C18 #define T_UTF_32_LEPCHA_LETTER_DZA 0x1C19 #define T_UTF_32_LEPCHA_LETTER_YA 0x1C1A #define T_UTF_32_LEPCHA_LETTER_RA 0x1C1B #define T_UTF_32_LEPCHA_LETTER_LA 0x1C1C #define T_UTF_32_LEPCHA_LETTER_HA 0x1C1D #define T_UTF_32_LEPCHA_LETTER_HLA 0x1C1E #define T_UTF_32_LEPCHA_LETTER_VA 0x1C1F #define T_UTF_32_LEPCHA_LETTER_SA 0x1C20 #define T_UTF_32_LEPCHA_LETTER_SHA 0x1C21 #define T_UTF_32_LEPCHA_LETTER_WA 0x1C22 #define T_UTF_32_LEPCHA_LETTER_A 0x1C23 #define T_UTF_32_LEPCHA_SUBJOINED_LETTER_YA 0x1C24 #define T_UTF_32_LEPCHA_SUBJOINED_LETTER_RA 0x1C25 #define T_UTF_32_LEPCHA_VOWEL_SIGN_AA 0x1C26 #define T_UTF_32_LEPCHA_VOWEL_SIGN_I 0x1C27 #define T_UTF_32_LEPCHA_VOWEL_SIGN_O 0x1C28 #define T_UTF_32_LEPCHA_VOWEL_SIGN_OO 0x1C29 #define T_UTF_32_LEPCHA_VOWEL_SIGN_U 0x1C2A #define T_UTF_32_LEPCHA_VOWEL_SIGN_UU 0x1C2B #define T_UTF_32_LEPCHA_VOWEL_SIGN_E 0x1C2C #define T_UTF_32_LEPCHA_CONSONANT_SIGN_K 0x1C2D #define T_UTF_32_LEPCHA_CONSONANT_SIGN_M 0x1C2E #define T_UTF_32_LEPCHA_CONSONANT_SIGN_L 0x1C2F #define T_UTF_32_LEPCHA_CONSONANT_SIGN_N 0x1C30 #define T_UTF_32_LEPCHA_CONSONANT_SIGN_P 0x1C31 #define T_UTF_32_LEPCHA_CONSONANT_SIGN_R 0x1C32 #define T_UTF_32_LEPCHA_CONSONANT_SIGN_T 0x1C33 #define T_UTF_32_LEPCHA_CONSONANT_SIGN_NYIN_DO 0x1C34 #define T_UTF_32_LEPCHA_CONSONANT_SIGN_KANG 0x1C35 #define T_UTF_32_LEPCHA_SIGN_RAN 0x1C36 #define T_UTF_32_LEPCHA_SIGN_NUKTA 0x1C37 #define T_UTF_32_LEPCHA_PUNCTUATION_TA_ROL 0x1C3B #define T_UTF_32_LEPCHA_PUNCTUATION_NYET_THYOOM_TA_ROL 0x1C3C #define T_UTF_32_LEPCHA_PUNCTUATION_CER_WA 0x1C3D #define T_UTF_32_LEPCHA_PUNCTUATION_TSHOOK_CER_WA 0x1C3E #define T_UTF_32_LEPCHA_PUNCTUATION_TSHOOK 0x1C3F #define T_UTF_32_LEPCHA_DIGIT_ZERO 0x1C40 #define T_UTF_32_LEPCHA_DIGIT_ONE 0x1C41 #define T_UTF_32_LEPCHA_DIGIT_TWO 0x1C42 #define T_UTF_32_LEPCHA_DIGIT_THREE 0x1C43 #define T_UTF_32_LEPCHA_DIGIT_FOUR 0x1C44 #define T_UTF_32_LEPCHA_DIGIT_FIVE 0x1C45 #define T_UTF_32_LEPCHA_DIGIT_SIX 0x1C46 #define T_UTF_32_LEPCHA_DIGIT_SEVEN 0x1C47 #define T_UTF_32_LEPCHA_DIGIT_EIGHT 0x1C48 #define T_UTF_32_LEPCHA_DIGIT_NINE 0x1C49 #define T_UTF_32_LEPCHA_LETTER_TTA 0x1C4D #define T_UTF_32_LEPCHA_LETTER_TTHA 0x1C4E #define T_UTF_32_LEPCHA_LETTER_DDA 0x1C4F #define T_UTF_32_OL_CHIKI_DIGIT_ZERO 0x1C50 #define T_UTF_32_OL_CHIKI_DIGIT_ONE 0x1C51 #define T_UTF_32_OL_CHIKI_DIGIT_TWO 0x1C52 #define T_UTF_32_OL_CHIKI_DIGIT_THREE 0x1C53 #define T_UTF_32_OL_CHIKI_DIGIT_FOUR 0x1C54 #define T_UTF_32_OL_CHIKI_DIGIT_FIVE 0x1C55 #define T_UTF_32_OL_CHIKI_DIGIT_SIX 0x1C56 #define T_UTF_32_OL_CHIKI_DIGIT_SEVEN 0x1C57 #define T_UTF_32_OL_CHIKI_DIGIT_EIGHT 0x1C58 #define T_UTF_32_OL_CHIKI_DIGIT_NINE 0x1C59 #define T_UTF_32_OL_CHIKI_LETTER_LA 0x1C5A #define T_UTF_32_OL_CHIKI_LETTER_AT 0x1C5B #define T_UTF_32_OL_CHIKI_LETTER_AG 0x1C5C #define T_UTF_32_OL_CHIKI_LETTER_ANG 0x1C5D #define T_UTF_32_OL_CHIKI_LETTER_AL 0x1C5E #define T_UTF_32_OL_CHIKI_LETTER_LAA 0x1C5F #define T_UTF_32_OL_CHIKI_LETTER_AAK 0x1C60 #define T_UTF_32_OL_CHIKI_LETTER_AAJ 0x1C61 #define T_UTF_32_OL_CHIKI_LETTER_AAM 0x1C62 #define T_UTF_32_OL_CHIKI_LETTER_AAW 0x1C63 #define T_UTF_32_OL_CHIKI_LETTER_LI 0x1C64 #define T_UTF_32_OL_CHIKI_LETTER_IS 0x1C65 #define T_UTF_32_OL_CHIKI_LETTER_IH 0x1C66 #define T_UTF_32_OL_CHIKI_LETTER_INY 0x1C67 #define T_UTF_32_OL_CHIKI_LETTER_IR 0x1C68 #define T_UTF_32_OL_CHIKI_LETTER_LU 0x1C69 #define T_UTF_32_OL_CHIKI_LETTER_UC 0x1C6A #define T_UTF_32_OL_CHIKI_LETTER_UD 0x1C6B #define T_UTF_32_OL_CHIKI_LETTER_UNN 0x1C6C #define T_UTF_32_OL_CHIKI_LETTER_UY 0x1C6D #define T_UTF_32_OL_CHIKI_LETTER_LE 0x1C6E #define T_UTF_32_OL_CHIKI_LETTER_EP 0x1C6F #define T_UTF_32_OL_CHIKI_LETTER_EDD 0x1C70 #define T_UTF_32_OL_CHIKI_LETTER_EN 0x1C71 #define T_UTF_32_OL_CHIKI_LETTER_ERR 0x1C72 #define T_UTF_32_OL_CHIKI_LETTER_LO 0x1C73 #define T_UTF_32_OL_CHIKI_LETTER_OTT 0x1C74 #define T_UTF_32_OL_CHIKI_LETTER_OB 0x1C75 #define T_UTF_32_OL_CHIKI_LETTER_OV 0x1C76 #define T_UTF_32_OL_CHIKI_LETTER_OH 0x1C77 #define T_UTF_32_OL_CHIKI_MU_TTUDDAG 0x1C78 #define T_UTF_32_OL_CHIKI_GAAHLAA_TTUDDAAG 0x1C79 #define T_UTF_32_OL_CHIKI_MU_GAAHLAA_TTUDDAAG 0x1C7A #define T_UTF_32_OL_CHIKI_RELAA 0x1C7B #define T_UTF_32_OL_CHIKI_PHAARKAA 0x1C7C #define T_UTF_32_OL_CHIKI_AHAD 0x1C7D #define T_UTF_32_OL_CHIKI_PUNCTUATION_MUCAAD 0x1C7E #define T_UTF_32_OL_CHIKI_PUNCTUATION_DOUBLE_MUCAAD 0x1C7F #define T_UTF_32_CYRILLIC_SMALL_LETTER_ROUNDED_VE 0x1C80 #define T_UTF_32_CYRILLIC_SMALL_LETTER_LONG_LEGGED_DE 0x1C81 #define T_UTF_32_CYRILLIC_SMALL_LETTER_NARROW_O 0x1C82 #define T_UTF_32_CYRILLIC_SMALL_LETTER_WIDE_ES 0x1C83 #define T_UTF_32_CYRILLIC_SMALL_LETTER_TALL_TE 0x1C84 #define T_UTF_32_CYRILLIC_SMALL_LETTER_THREE_LEGGED_TE 0x1C85 #define T_UTF_32_CYRILLIC_SMALL_LETTER_TALL_HARD_SIGN 0x1C86 #define T_UTF_32_CYRILLIC_SMALL_LETTER_TALL_YAT 0x1C87 #define T_UTF_32_CYRILLIC_SMALL_LETTER_UNBLENDED_UK 0x1C88 #define T_UTF_32_SUNDANESE_PUNCTUATION_BINDU_SURYA 0x1CC0 #define T_UTF_32_SUNDANESE_PUNCTUATION_BINDU_PANGLONG 0x1CC1 #define T_UTF_32_SUNDANESE_PUNCTUATION_BINDU_PURNAMA 0x1CC2 #define T_UTF_32_SUNDANESE_PUNCTUATION_BINDU_CAKRA 0x1CC3 #define T_UTF_32_SUNDANESE_PUNCTUATION_BINDU_LEU_SATANGA 0x1CC4 #define T_UTF_32_SUNDANESE_PUNCTUATION_BINDU_KA_SATANGA 0x1CC5 #define T_UTF_32_SUNDANESE_PUNCTUATION_BINDU_DA_SATANGA 0x1CC6 #define T_UTF_32_SUNDANESE_PUNCTUATION_BINDU_BA_SATANGA 0x1CC7 #define T_UTF_32_VEDIC_TONE_KARSHANA 0x1CD0 #define T_UTF_32_VEDIC_TONE_SHARA 0x1CD1 #define T_UTF_32_VEDIC_TONE_PRENKHA 0x1CD2 #define T_UTF_32_VEDIC_SIGN_NIHSHVASA 0x1CD3 #define T_UTF_32_VEDIC_SIGN_YAJURVEDIC_MIDLINE_SVARITA 0x1CD4 #define T_UTF_32_VEDIC_TONE_YAJURVEDIC_AGGRAVATED_INDEPENDENT_SVARITA 0x1CD5 #define T_UTF_32_VEDIC_TONE_YAJURVEDIC_INDEPENDENT_SVARITA 0x1CD6 #define T_UTF_32_VEDIC_TONE_YAJURVEDIC_KATHAKA_INDEPENDENT_SVARITA 0x1CD7 #define T_UTF_32_VEDIC_TONE_CANDRA_BELOW 0x1CD8 #define T_UTF_32_VEDIC_TONE_YAJURVEDIC_KATHAKA_INDEPENDENT_SVARITA_SCHROEDER 0x1CD9 #define T_UTF_32_VEDIC_TONE_DOUBLE_SVARITA 0x1CDA #define T_UTF_32_VEDIC_TONE_TRIPLE_SVARITA 0x1CDB #define T_UTF_32_VEDIC_TONE_KATHAKA_ANUDATTA 0x1CDC #define T_UTF_32_VEDIC_TONE_DOT_BELOW 0x1CDD #define T_UTF_32_VEDIC_TONE_TWO_DOTS_BELOW 0x1CDE #define T_UTF_32_VEDIC_TONE_THREE_DOTS_BELOW 0x1CDF #define T_UTF_32_VEDIC_TONE_RIGVEDIC_KASHMIRI_INDEPENDENT_SVARITA 0x1CE0 #define T_UTF_32_VEDIC_TONE_ATHARVAVEDIC_INDEPENDENT_SVARITA 0x1CE1 #define T_UTF_32_VEDIC_SIGN_VISARGA_SVARITA 0x1CE2 #define T_UTF_32_VEDIC_SIGN_VISARGA_UDATTA 0x1CE3 #define T_UTF_32_VEDIC_SIGN_REVERSED_VISARGA_UDATTA 0x1CE4 #define T_UTF_32_VEDIC_SIGN_VISARGA_ANUDATTA 0x1CE5 #define T_UTF_32_VEDIC_SIGN_REVERSED_VISARGA_ANUDATTA 0x1CE6 #define T_UTF_32_VEDIC_SIGN_VISARGA_UDATTA_WITH_TAIL 0x1CE7 #define T_UTF_32_VEDIC_SIGN_VISARGA_ANUDATTA_WITH_TAIL 0x1CE8 #define T_UTF_32_VEDIC_SIGN_ANUSVARA_ANTARGOMUKHA 0x1CE9 #define T_UTF_32_VEDIC_SIGN_ANUSVARA_BAHIRGOMUKHA 0x1CEA #define T_UTF_32_VEDIC_SIGN_ANUSVARA_VAMAGOMUKHA 0x1CEB #define T_UTF_32_VEDIC_SIGN_ANUSVARA_VAMAGOMUKHA_WITH_TAIL 0x1CEC #define T_UTF_32_VEDIC_SIGN_TIRYAK 0x1CED #define T_UTF_32_VEDIC_SIGN_HEXIFORM_LONG_ANUSVARA 0x1CEE #define T_UTF_32_VEDIC_SIGN_LONG_ANUSVARA 0x1CEF #define T_UTF_32_VEDIC_SIGN_RTHANG_LONG_ANUSVARA 0x1CF0 #define T_UTF_32_VEDIC_SIGN_ANUSVARA_UBHAYATO_MUKHA 0x1CF1 #define T_UTF_32_VEDIC_SIGN_ARDHAVISARGA 0x1CF2 #define T_UTF_32_VEDIC_SIGN_ROTATED_ARDHAVISARGA 0x1CF3 #define T_UTF_32_VEDIC_TONE_CANDRA_ABOVE 0x1CF4 #define T_UTF_32_VEDIC_SIGN_JIHVAMULIYA 0x1CF5 #define T_UTF_32_VEDIC_SIGN_UPADHMANIYA 0x1CF6 #define T_UTF_32_VEDIC_SIGN_ATIKRAMA 0x1CF7 #define T_UTF_32_VEDIC_TONE_RING_ABOVE 0x1CF8 #define T_UTF_32_VEDIC_TONE_DOUBLE_RING_ABOVE 0x1CF9 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_A 0x1D00 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_AE 0x1D01 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_AE 0x1D02 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_BARRED_B 0x1D03 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_C 0x1D04 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_D 0x1D05 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_ETH 0x1D06 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_E 0x1D07 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_OPEN_E 0x1D08 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_I 0x1D09 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_J 0x1D0A #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_K 0x1D0B #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_L_WITH_STROKE 0x1D0C #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_M 0x1D0D #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_REVERSED_N 0x1D0E #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_O 0x1D0F #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_OPEN_O 0x1D10 #define T_UTF_32_LATIN_SMALL_LETTER_SIDEWAYS_O 0x1D11 #define T_UTF_32_LATIN_SMALL_LETTER_SIDEWAYS_OPEN_O 0x1D12 #define T_UTF_32_LATIN_SMALL_LETTER_SIDEWAYS_O_WITH_STROKE 0x1D13 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_OE 0x1D14 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_OU 0x1D15 #define T_UTF_32_LATIN_SMALL_LETTER_TOP_HALF_O 0x1D16 #define T_UTF_32_LATIN_SMALL_LETTER_BOTTOM_HALF_O 0x1D17 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_P 0x1D18 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_REVERSED_R 0x1D19 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_TURNED_R 0x1D1A #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_T 0x1D1B #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_U 0x1D1C #define T_UTF_32_LATIN_SMALL_LETTER_SIDEWAYS_U 0x1D1D #define T_UTF_32_LATIN_SMALL_LETTER_SIDEWAYS_DIAERESIZED_U 0x1D1E #define T_UTF_32_LATIN_SMALL_LETTER_SIDEWAYS_TURNED_M 0x1D1F #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_V 0x1D20 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_W 0x1D21 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_Z 0x1D22 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_EZH 0x1D23 #define T_UTF_32_LATIN_LETTER_VOICED_LARYNGEAL_SPIRANT 0x1D24 #define T_UTF_32_LATIN_LETTER_AIN 0x1D25 #define T_UTF_32_GREEK_LETTER_SMALL_CAPITAL_GAMMA 0x1D26 #define T_UTF_32_GREEK_LETTER_SMALL_CAPITAL_LAMDA 0x1D27 #define T_UTF_32_GREEK_LETTER_SMALL_CAPITAL_PI 0x1D28 #define T_UTF_32_GREEK_LETTER_SMALL_CAPITAL_RHO 0x1D29 #define T_UTF_32_GREEK_LETTER_SMALL_CAPITAL_PSI 0x1D2A #define T_UTF_32_CYRILLIC_LETTER_SMALL_CAPITAL_EL 0x1D2B #define T_UTF_32_MODIFIER_LETTER_CAPITAL_A 0x1D2C #define T_UTF_32_MODIFIER_LETTER_CAPITAL_AE 0x1D2D #define T_UTF_32_MODIFIER_LETTER_CAPITAL_B 0x1D2E #define T_UTF_32_MODIFIER_LETTER_CAPITAL_BARRED_B 0x1D2F #define T_UTF_32_MODIFIER_LETTER_CAPITAL_D 0x1D30 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_E 0x1D31 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_REVERSED_E 0x1D32 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_G 0x1D33 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_H 0x1D34 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_I 0x1D35 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_J 0x1D36 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_K 0x1D37 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_L 0x1D38 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_M 0x1D39 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_N 0x1D3A #define T_UTF_32_MODIFIER_LETTER_CAPITAL_REVERSED_N 0x1D3B #define T_UTF_32_MODIFIER_LETTER_CAPITAL_O 0x1D3C #define T_UTF_32_MODIFIER_LETTER_CAPITAL_OU 0x1D3D #define T_UTF_32_MODIFIER_LETTER_CAPITAL_P 0x1D3E #define T_UTF_32_MODIFIER_LETTER_CAPITAL_R 0x1D3F #define T_UTF_32_MODIFIER_LETTER_CAPITAL_T 0x1D40 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_U 0x1D41 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_W 0x1D42 #define T_UTF_32_MODIFIER_LETTER_SMALL_A 0x1D43 #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_A 0x1D44 #define T_UTF_32_MODIFIER_LETTER_SMALL_ALPHA 0x1D45 #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_AE 0x1D46 #define T_UTF_32_MODIFIER_LETTER_SMALL_B 0x1D47 #define T_UTF_32_MODIFIER_LETTER_SMALL_D 0x1D48 #define T_UTF_32_MODIFIER_LETTER_SMALL_E 0x1D49 #define T_UTF_32_MODIFIER_LETTER_SMALL_SCHWA 0x1D4A #define T_UTF_32_MODIFIER_LETTER_SMALL_OPEN_E 0x1D4B #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_OPEN_E 0x1D4C #define T_UTF_32_MODIFIER_LETTER_SMALL_G 0x1D4D #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_I 0x1D4E #define T_UTF_32_MODIFIER_LETTER_SMALL_K 0x1D4F #define T_UTF_32_MODIFIER_LETTER_SMALL_M 0x1D50 #define T_UTF_32_MODIFIER_LETTER_SMALL_ENG 0x1D51 #define T_UTF_32_MODIFIER_LETTER_SMALL_O 0x1D52 #define T_UTF_32_MODIFIER_LETTER_SMALL_OPEN_O 0x1D53 #define T_UTF_32_MODIFIER_LETTER_SMALL_TOP_HALF_O 0x1D54 #define T_UTF_32_MODIFIER_LETTER_SMALL_BOTTOM_HALF_O 0x1D55 #define T_UTF_32_MODIFIER_LETTER_SMALL_P 0x1D56 #define T_UTF_32_MODIFIER_LETTER_SMALL_T 0x1D57 #define T_UTF_32_MODIFIER_LETTER_SMALL_U 0x1D58 #define T_UTF_32_MODIFIER_LETTER_SMALL_SIDEWAYS_U 0x1D59 #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_M 0x1D5A #define T_UTF_32_MODIFIER_LETTER_SMALL_V 0x1D5B #define T_UTF_32_MODIFIER_LETTER_SMALL_AIN 0x1D5C #define T_UTF_32_MODIFIER_LETTER_SMALL_BETA 0x1D5D #define T_UTF_32_MODIFIER_LETTER_SMALL_GREEK_GAMMA 0x1D5E #define T_UTF_32_MODIFIER_LETTER_SMALL_DELTA 0x1D5F #define T_UTF_32_MODIFIER_LETTER_SMALL_GREEK_PHI 0x1D60 #define T_UTF_32_MODIFIER_LETTER_SMALL_CHI 0x1D61 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_I 0x1D62 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_R 0x1D63 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_U 0x1D64 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_V 0x1D65 #define T_UTF_32_GREEK_SUBSCRIPT_SMALL_LETTER_BETA 0x1D66 #define T_UTF_32_GREEK_SUBSCRIPT_SMALL_LETTER_GAMMA 0x1D67 #define T_UTF_32_GREEK_SUBSCRIPT_SMALL_LETTER_RHO 0x1D68 #define T_UTF_32_GREEK_SUBSCRIPT_SMALL_LETTER_PHI 0x1D69 #define T_UTF_32_GREEK_SUBSCRIPT_SMALL_LETTER_CHI 0x1D6A #define T_UTF_32_LATIN_SMALL_LETTER_UE 0x1D6B #define T_UTF_32_LATIN_SMALL_LETTER_B_WITH_MIDDLE_TILDE 0x1D6C #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_MIDDLE_TILDE 0x1D6D #define T_UTF_32_LATIN_SMALL_LETTER_F_WITH_MIDDLE_TILDE 0x1D6E #define T_UTF_32_LATIN_SMALL_LETTER_M_WITH_MIDDLE_TILDE 0x1D6F #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_MIDDLE_TILDE 0x1D70 #define T_UTF_32_LATIN_SMALL_LETTER_P_WITH_MIDDLE_TILDE 0x1D71 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_MIDDLE_TILDE 0x1D72 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_FISHHOOK_AND_MIDDLE_TILDE 0x1D73 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_MIDDLE_TILDE 0x1D74 #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_MIDDLE_TILDE 0x1D75 #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_MIDDLE_TILDE 0x1D76 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_G 0x1D77 #define T_UTF_32_MODIFIER_LETTER_CYRILLIC_EN 0x1D78 #define T_UTF_32_LATIN_SMALL_LETTER_INSULAR_G 0x1D79 #define T_UTF_32_LATIN_SMALL_LETTER_TH_WITH_STRIKETHROUGH 0x1D7A #define T_UTF_32_LATIN_SMALL_CAPITAL_LETTER_I_WITH_STROKE 0x1D7B #define T_UTF_32_LATIN_SMALL_LETTER_IOTA_WITH_STROKE 0x1D7C #define T_UTF_32_LATIN_SMALL_LETTER_P_WITH_STROKE 0x1D7D #define T_UTF_32_LATIN_SMALL_CAPITAL_LETTER_U_WITH_STROKE 0x1D7E #define T_UTF_32_LATIN_SMALL_LETTER_UPSILON_WITH_STROKE 0x1D7F #define T_UTF_32_LATIN_SMALL_LETTER_B_WITH_PALATAL_HOOK 0x1D80 #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_PALATAL_HOOK 0x1D81 #define T_UTF_32_LATIN_SMALL_LETTER_F_WITH_PALATAL_HOOK 0x1D82 #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_PALATAL_HOOK 0x1D83 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_PALATAL_HOOK 0x1D84 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_PALATAL_HOOK 0x1D85 #define T_UTF_32_LATIN_SMALL_LETTER_M_WITH_PALATAL_HOOK 0x1D86 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_PALATAL_HOOK 0x1D87 #define T_UTF_32_LATIN_SMALL_LETTER_P_WITH_PALATAL_HOOK 0x1D88 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_PALATAL_HOOK 0x1D89 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_PALATAL_HOOK 0x1D8A #define T_UTF_32_LATIN_SMALL_LETTER_ESH_WITH_PALATAL_HOOK 0x1D8B #define T_UTF_32_LATIN_SMALL_LETTER_V_WITH_PALATAL_HOOK 0x1D8C #define T_UTF_32_LATIN_SMALL_LETTER_X_WITH_PALATAL_HOOK 0x1D8D #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_PALATAL_HOOK 0x1D8E #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_RETROFLEX_HOOK 0x1D8F #define T_UTF_32_LATIN_SMALL_LETTER_ALPHA_WITH_RETROFLEX_HOOK 0x1D90 #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_HOOK_AND_TAIL 0x1D91 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_RETROFLEX_HOOK 0x1D92 #define T_UTF_32_LATIN_SMALL_LETTER_OPEN_E_WITH_RETROFLEX_HOOK 0x1D93 #define T_UTF_32_LATIN_SMALL_LETTER_REVERSED_OPEN_E_WITH_RETROFLEX_HOOK 0x1D94 #define T_UTF_32_LATIN_SMALL_LETTER_SCHWA_WITH_RETROFLEX_HOOK 0x1D95 #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_RETROFLEX_HOOK 0x1D96 #define T_UTF_32_LATIN_SMALL_LETTER_OPEN_O_WITH_RETROFLEX_HOOK 0x1D97 #define T_UTF_32_LATIN_SMALL_LETTER_ESH_WITH_RETROFLEX_HOOK 0x1D98 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_RETROFLEX_HOOK 0x1D99 #define T_UTF_32_LATIN_SMALL_LETTER_EZH_WITH_RETROFLEX_HOOK 0x1D9A #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_ALPHA 0x1D9B #define T_UTF_32_MODIFIER_LETTER_SMALL_C 0x1D9C #define T_UTF_32_MODIFIER_LETTER_SMALL_C_WITH_CURL 0x1D9D #define T_UTF_32_MODIFIER_LETTER_SMALL_ETH 0x1D9E #define T_UTF_32_MODIFIER_LETTER_SMALL_REVERSED_OPEN_E 0x1D9F #define T_UTF_32_MODIFIER_LETTER_SMALL_F 0x1DA0 #define T_UTF_32_MODIFIER_LETTER_SMALL_DOTLESS_J_WITH_STROKE 0x1DA1 #define T_UTF_32_MODIFIER_LETTER_SMALL_SCRIPT_G 0x1DA2 #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_H 0x1DA3 #define T_UTF_32_MODIFIER_LETTER_SMALL_I_WITH_STROKE 0x1DA4 #define T_UTF_32_MODIFIER_LETTER_SMALL_IOTA 0x1DA5 #define T_UTF_32_MODIFIER_LETTER_SMALL_CAPITAL_I 0x1DA6 #define T_UTF_32_MODIFIER_LETTER_SMALL_CAPITAL_I_WITH_STROKE 0x1DA7 #define T_UTF_32_MODIFIER_LETTER_SMALL_J_WITH_CROSSED_TAIL 0x1DA8 #define T_UTF_32_MODIFIER_LETTER_SMALL_L_WITH_RETROFLEX_HOOK 0x1DA9 #define T_UTF_32_MODIFIER_LETTER_SMALL_L_WITH_PALATAL_HOOK 0x1DAA #define T_UTF_32_MODIFIER_LETTER_SMALL_CAPITAL_L 0x1DAB #define T_UTF_32_MODIFIER_LETTER_SMALL_M_WITH_HOOK 0x1DAC #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_M_WITH_LONG_LEG 0x1DAD #define T_UTF_32_MODIFIER_LETTER_SMALL_N_WITH_LEFT_HOOK 0x1DAE #define T_UTF_32_MODIFIER_LETTER_SMALL_N_WITH_RETROFLEX_HOOK 0x1DAF #define T_UTF_32_MODIFIER_LETTER_SMALL_CAPITAL_N 0x1DB0 #define T_UTF_32_MODIFIER_LETTER_SMALL_BARRED_O 0x1DB1 #define T_UTF_32_MODIFIER_LETTER_SMALL_PHI 0x1DB2 #define T_UTF_32_MODIFIER_LETTER_SMALL_S_WITH_HOOK 0x1DB3 #define T_UTF_32_MODIFIER_LETTER_SMALL_ESH 0x1DB4 #define T_UTF_32_MODIFIER_LETTER_SMALL_T_WITH_PALATAL_HOOK 0x1DB5 #define T_UTF_32_MODIFIER_LETTER_SMALL_U_BAR 0x1DB6 #define T_UTF_32_MODIFIER_LETTER_SMALL_UPSILON 0x1DB7 #define T_UTF_32_MODIFIER_LETTER_SMALL_CAPITAL_U 0x1DB8 #define T_UTF_32_MODIFIER_LETTER_SMALL_V_WITH_HOOK 0x1DB9 #define T_UTF_32_MODIFIER_LETTER_SMALL_TURNED_V 0x1DBA #define T_UTF_32_MODIFIER_LETTER_SMALL_Z 0x1DBB #define T_UTF_32_MODIFIER_LETTER_SMALL_Z_WITH_RETROFLEX_HOOK 0x1DBC #define T_UTF_32_MODIFIER_LETTER_SMALL_Z_WITH_CURL 0x1DBD #define T_UTF_32_MODIFIER_LETTER_SMALL_EZH 0x1DBE #define T_UTF_32_MODIFIER_LETTER_SMALL_THETA 0x1DBF #define T_UTF_32_COMBINING_DOTTED_GRAVE_ACCENT 0x1DC0 #define T_UTF_32_COMBINING_DOTTED_ACUTE_ACCENT 0x1DC1 #define T_UTF_32_COMBINING_SNAKE_BELOW 0x1DC2 #define T_UTF_32_COMBINING_SUSPENSION_MARK 0x1DC3 #define T_UTF_32_COMBINING_MACRON_ACUTE 0x1DC4 #define T_UTF_32_COMBINING_GRAVE_MACRON 0x1DC5 #define T_UTF_32_COMBINING_MACRON_GRAVE 0x1DC6 #define T_UTF_32_COMBINING_ACUTE_MACRON 0x1DC7 #define T_UTF_32_COMBINING_GRAVE_ACUTE_GRAVE 0x1DC8 #define T_UTF_32_COMBINING_ACUTE_GRAVE_ACUTE 0x1DC9 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_R_BELOW 0x1DCA #define T_UTF_32_COMBINING_BREVE_MACRON 0x1DCB #define T_UTF_32_COMBINING_MACRON_BREVE 0x1DCC #define T_UTF_32_COMBINING_DOUBLE_CIRCUMFLEX_ABOVE 0x1DCD #define T_UTF_32_COMBINING_OGONEK_ABOVE 0x1DCE #define T_UTF_32_COMBINING_ZIGZAG_BELOW 0x1DCF #define T_UTF_32_COMBINING_IS_BELOW 0x1DD0 #define T_UTF_32_COMBINING_UR_ABOVE 0x1DD1 #define T_UTF_32_COMBINING_US_ABOVE 0x1DD2 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_FLATTENED_OPEN_A_ABOVE 0x1DD3 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_AE 0x1DD4 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_AO 0x1DD5 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_AV 0x1DD6 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_C_CEDILLA 0x1DD7 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_INSULAR_D 0x1DD8 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_ETH 0x1DD9 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_G 0x1DDA #define T_UTF_32_COMBINING_LATIN_LETTER_SMALL_CAPITAL_G 0x1DDB #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_K 0x1DDC #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_L 0x1DDD #define T_UTF_32_COMBINING_LATIN_LETTER_SMALL_CAPITAL_L 0x1DDE #define T_UTF_32_COMBINING_LATIN_LETTER_SMALL_CAPITAL_M 0x1DDF #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_N 0x1DE0 #define T_UTF_32_COMBINING_LATIN_LETTER_SMALL_CAPITAL_N 0x1DE1 #define T_UTF_32_COMBINING_LATIN_LETTER_SMALL_CAPITAL_R 0x1DE2 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_R_ROTUNDA 0x1DE3 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_S 0x1DE4 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_LONG_S 0x1DE5 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_Z 0x1DE6 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_ALPHA 0x1DE7 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_B 0x1DE8 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_BETA 0x1DE9 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_SCHWA 0x1DEA #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_F 0x1DEB #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_L_WITH_DOUBLE_MIDDLE_TILDE 0x1DEC #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_O_WITH_LIGHT_CENTRALIZATION_STROKE 0x1DED #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_P 0x1DEE #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_ESH 0x1DEF #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_U_WITH_LIGHT_CENTRALIZATION_STROKE 0x1DF0 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_W 0x1DF1 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x1DF2 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x1DF3 #define T_UTF_32_COMBINING_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x1DF4 #define T_UTF_32_COMBINING_UP_TACK_ABOVE 0x1DF5 #define T_UTF_32_COMBINING_KAVYKA_ABOVE_RIGHT 0x1DF6 #define T_UTF_32_COMBINING_KAVYKA_ABOVE_LEFT 0x1DF7 #define T_UTF_32_COMBINING_DOT_ABOVE_LEFT 0x1DF8 #define T_UTF_32_COMBINING_WIDE_INVERTED_BRIDGE_BELOW 0x1DF9 #define T_UTF_32_COMBINING_DELETION_MARK 0x1DFB #define T_UTF_32_COMBINING_DOUBLE_INVERTED_BREVE_BELOW 0x1DFC #define T_UTF_32_COMBINING_ALMOST_EQUAL_TO_BELOW 0x1DFD #define T_UTF_32_COMBINING_LEFT_ARROWHEAD_ABOVE 0x1DFE #define T_UTF_32_COMBINING_RIGHT_ARROWHEAD_AND_DOWN_ARROWHEAD_BELOW 0x1DFF #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_RING_BELOW 0x1E00 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_RING_BELOW 0x1E01 #define T_UTF_32_LATIN_CAPITAL_LETTER_B_WITH_DOT_ABOVE 0x1E02 #define T_UTF_32_LATIN_SMALL_LETTER_B_WITH_DOT_ABOVE 0x1E03 #define T_UTF_32_LATIN_CAPITAL_LETTER_B_WITH_DOT_BELOW 0x1E04 #define T_UTF_32_LATIN_SMALL_LETTER_B_WITH_DOT_BELOW 0x1E05 #define T_UTF_32_LATIN_CAPITAL_LETTER_B_WITH_LINE_BELOW 0x1E06 #define T_UTF_32_LATIN_SMALL_LETTER_B_WITH_LINE_BELOW 0x1E07 #define T_UTF_32_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA_AND_ACUTE 0x1E08 #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_CEDILLA_AND_ACUTE 0x1E09 #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_DOT_ABOVE 0x1E0A #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_DOT_ABOVE 0x1E0B #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_DOT_BELOW 0x1E0C #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_DOT_BELOW 0x1E0D #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_LINE_BELOW 0x1E0E #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_LINE_BELOW 0x1E0F #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_CEDILLA 0x1E10 #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_CEDILLA 0x1E11 #define T_UTF_32_LATIN_CAPITAL_LETTER_D_WITH_CIRCUMFLEX_BELOW 0x1E12 #define T_UTF_32_LATIN_SMALL_LETTER_D_WITH_CIRCUMFLEX_BELOW 0x1E13 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_MACRON_AND_GRAVE 0x1E14 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_MACRON_AND_GRAVE 0x1E15 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_MACRON_AND_ACUTE 0x1E16 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_MACRON_AND_ACUTE 0x1E17 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_BELOW 0x1E18 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_BELOW 0x1E19 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_TILDE_BELOW 0x1E1A #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_TILDE_BELOW 0x1E1B #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_CEDILLA_AND_BREVE 0x1E1C #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_CEDILLA_AND_BREVE 0x1E1D #define T_UTF_32_LATIN_CAPITAL_LETTER_F_WITH_DOT_ABOVE 0x1E1E #define T_UTF_32_LATIN_SMALL_LETTER_F_WITH_DOT_ABOVE 0x1E1F #define T_UTF_32_LATIN_CAPITAL_LETTER_G_WITH_MACRON 0x1E20 #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_MACRON 0x1E21 #define T_UTF_32_LATIN_CAPITAL_LETTER_H_WITH_DOT_ABOVE 0x1E22 #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_DOT_ABOVE 0x1E23 #define T_UTF_32_LATIN_CAPITAL_LETTER_H_WITH_DOT_BELOW 0x1E24 #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_DOT_BELOW 0x1E25 #define T_UTF_32_LATIN_CAPITAL_LETTER_H_WITH_DIAERESIS 0x1E26 #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_DIAERESIS 0x1E27 #define T_UTF_32_LATIN_CAPITAL_LETTER_H_WITH_CEDILLA 0x1E28 #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_CEDILLA 0x1E29 #define T_UTF_32_LATIN_CAPITAL_LETTER_H_WITH_BREVE_BELOW 0x1E2A #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_BREVE_BELOW 0x1E2B #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_TILDE_BELOW 0x1E2C #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_TILDE_BELOW 0x1E2D #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS_AND_ACUTE 0x1E2E #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_DIAERESIS_AND_ACUTE 0x1E2F #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_ACUTE 0x1E30 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_ACUTE 0x1E31 #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_DOT_BELOW 0x1E32 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_DOT_BELOW 0x1E33 #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_LINE_BELOW 0x1E34 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_LINE_BELOW 0x1E35 #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_DOT_BELOW 0x1E36 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_DOT_BELOW 0x1E37 #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_DOT_BELOW_AND_MACRON 0x1E38 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_DOT_BELOW_AND_MACRON 0x1E39 #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_LINE_BELOW 0x1E3A #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_LINE_BELOW 0x1E3B #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_CIRCUMFLEX_BELOW 0x1E3C #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_CIRCUMFLEX_BELOW 0x1E3D #define T_UTF_32_LATIN_CAPITAL_LETTER_M_WITH_ACUTE 0x1E3E #define T_UTF_32_LATIN_SMALL_LETTER_M_WITH_ACUTE 0x1E3F #define T_UTF_32_LATIN_CAPITAL_LETTER_M_WITH_DOT_ABOVE 0x1E40 #define T_UTF_32_LATIN_SMALL_LETTER_M_WITH_DOT_ABOVE 0x1E41 #define T_UTF_32_LATIN_CAPITAL_LETTER_M_WITH_DOT_BELOW 0x1E42 #define T_UTF_32_LATIN_SMALL_LETTER_M_WITH_DOT_BELOW 0x1E43 #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_DOT_ABOVE 0x1E44 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_DOT_ABOVE 0x1E45 #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_DOT_BELOW 0x1E46 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_DOT_BELOW 0x1E47 #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_LINE_BELOW 0x1E48 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_LINE_BELOW 0x1E49 #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_CIRCUMFLEX_BELOW 0x1E4A #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_CIRCUMFLEX_BELOW 0x1E4B #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_TILDE_AND_ACUTE 0x1E4C #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_TILDE_AND_ACUTE 0x1E4D #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_TILDE_AND_DIAERESIS 0x1E4E #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_TILDE_AND_DIAERESIS 0x1E4F #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_MACRON_AND_GRAVE 0x1E50 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_MACRON_AND_GRAVE 0x1E51 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_MACRON_AND_ACUTE 0x1E52 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_MACRON_AND_ACUTE 0x1E53 #define T_UTF_32_LATIN_CAPITAL_LETTER_P_WITH_ACUTE 0x1E54 #define T_UTF_32_LATIN_SMALL_LETTER_P_WITH_ACUTE 0x1E55 #define T_UTF_32_LATIN_CAPITAL_LETTER_P_WITH_DOT_ABOVE 0x1E56 #define T_UTF_32_LATIN_SMALL_LETTER_P_WITH_DOT_ABOVE 0x1E57 #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_DOT_ABOVE 0x1E58 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_DOT_ABOVE 0x1E59 #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_DOT_BELOW 0x1E5A #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_DOT_BELOW 0x1E5B #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_DOT_BELOW_AND_MACRON 0x1E5C #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_DOT_BELOW_AND_MACRON 0x1E5D #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_LINE_BELOW 0x1E5E #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_LINE_BELOW 0x1E5F #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_DOT_ABOVE 0x1E60 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_DOT_ABOVE 0x1E61 #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_DOT_BELOW 0x1E62 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_DOT_BELOW 0x1E63 #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_ACUTE_AND_DOT_ABOVE 0x1E64 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_ACUTE_AND_DOT_ABOVE 0x1E65 #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_CARON_AND_DOT_ABOVE 0x1E66 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_CARON_AND_DOT_ABOVE 0x1E67 #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_DOT_BELOW_AND_DOT_ABOVE 0x1E68 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_DOT_BELOW_AND_DOT_ABOVE 0x1E69 #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_DOT_ABOVE 0x1E6A #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_DOT_ABOVE 0x1E6B #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_DOT_BELOW 0x1E6C #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_DOT_BELOW 0x1E6D #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_LINE_BELOW 0x1E6E #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_LINE_BELOW 0x1E6F #define T_UTF_32_LATIN_CAPITAL_LETTER_T_WITH_CIRCUMFLEX_BELOW 0x1E70 #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_CIRCUMFLEX_BELOW 0x1E71 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS_BELOW 0x1E72 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_DIAERESIS_BELOW 0x1E73 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_TILDE_BELOW 0x1E74 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_TILDE_BELOW 0x1E75 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX_BELOW 0x1E76 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX_BELOW 0x1E77 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_TILDE_AND_ACUTE 0x1E78 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_TILDE_AND_ACUTE 0x1E79 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_MACRON_AND_DIAERESIS 0x1E7A #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_MACRON_AND_DIAERESIS 0x1E7B #define T_UTF_32_LATIN_CAPITAL_LETTER_V_WITH_TILDE 0x1E7C #define T_UTF_32_LATIN_SMALL_LETTER_V_WITH_TILDE 0x1E7D #define T_UTF_32_LATIN_CAPITAL_LETTER_V_WITH_DOT_BELOW 0x1E7E #define T_UTF_32_LATIN_SMALL_LETTER_V_WITH_DOT_BELOW 0x1E7F #define T_UTF_32_LATIN_CAPITAL_LETTER_W_WITH_GRAVE 0x1E80 #define T_UTF_32_LATIN_SMALL_LETTER_W_WITH_GRAVE 0x1E81 #define T_UTF_32_LATIN_CAPITAL_LETTER_W_WITH_ACUTE 0x1E82 #define T_UTF_32_LATIN_SMALL_LETTER_W_WITH_ACUTE 0x1E83 #define T_UTF_32_LATIN_CAPITAL_LETTER_W_WITH_DIAERESIS 0x1E84 #define T_UTF_32_LATIN_SMALL_LETTER_W_WITH_DIAERESIS 0x1E85 #define T_UTF_32_LATIN_CAPITAL_LETTER_W_WITH_DOT_ABOVE 0x1E86 #define T_UTF_32_LATIN_SMALL_LETTER_W_WITH_DOT_ABOVE 0x1E87 #define T_UTF_32_LATIN_CAPITAL_LETTER_W_WITH_DOT_BELOW 0x1E88 #define T_UTF_32_LATIN_SMALL_LETTER_W_WITH_DOT_BELOW 0x1E89 #define T_UTF_32_LATIN_CAPITAL_LETTER_X_WITH_DOT_ABOVE 0x1E8A #define T_UTF_32_LATIN_SMALL_LETTER_X_WITH_DOT_ABOVE 0x1E8B #define T_UTF_32_LATIN_CAPITAL_LETTER_X_WITH_DIAERESIS 0x1E8C #define T_UTF_32_LATIN_SMALL_LETTER_X_WITH_DIAERESIS 0x1E8D #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_DOT_ABOVE 0x1E8E #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_DOT_ABOVE 0x1E8F #define T_UTF_32_LATIN_CAPITAL_LETTER_Z_WITH_CIRCUMFLEX 0x1E90 #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_CIRCUMFLEX 0x1E91 #define T_UTF_32_LATIN_CAPITAL_LETTER_Z_WITH_DOT_BELOW 0x1E92 #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_DOT_BELOW 0x1E93 #define T_UTF_32_LATIN_CAPITAL_LETTER_Z_WITH_LINE_BELOW 0x1E94 #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_LINE_BELOW 0x1E95 #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_LINE_BELOW 0x1E96 #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_DIAERESIS 0x1E97 #define T_UTF_32_LATIN_SMALL_LETTER_W_WITH_RING_ABOVE 0x1E98 #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_RING_ABOVE 0x1E99 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_RIGHT_HALF_RING 0x1E9A #define T_UTF_32_LATIN_SMALL_LETTER_LONG_S_WITH_DOT_ABOVE 0x1E9B #define T_UTF_32_LATIN_SMALL_LETTER_LONG_S_WITH_DIAGONAL_STROKE 0x1E9C #define T_UTF_32_LATIN_SMALL_LETTER_LONG_S_WITH_HIGH_STROKE 0x1E9D #define T_UTF_32_LATIN_CAPITAL_LETTER_SHARP_S 0x1E9E #define T_UTF_32_LATIN_SMALL_LETTER_DELTA 0x1E9F #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_DOT_BELOW 0x1EA0 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_DOT_BELOW 0x1EA1 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_HOOK_ABOVE 0x1EA2 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_HOOK_ABOVE 0x1EA3 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX_AND_ACUTE 0x1EA4 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX_AND_ACUTE 0x1EA5 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX_AND_GRAVE 0x1EA6 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX_AND_GRAVE 0x1EA7 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX_AND_HOOK_ABOVE 0x1EA8 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX_AND_HOOK_ABOVE 0x1EA9 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX_AND_TILDE 0x1EAA #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX_AND_TILDE 0x1EAB #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX_AND_DOT_BELOW 0x1EAC #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX_AND_DOT_BELOW 0x1EAD #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_BREVE_AND_ACUTE 0x1EAE #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_BREVE_AND_ACUTE 0x1EAF #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_BREVE_AND_GRAVE 0x1EB0 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_BREVE_AND_GRAVE 0x1EB1 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_BREVE_AND_HOOK_ABOVE 0x1EB2 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_BREVE_AND_HOOK_ABOVE 0x1EB3 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_BREVE_AND_TILDE 0x1EB4 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_BREVE_AND_TILDE 0x1EB5 #define T_UTF_32_LATIN_CAPITAL_LETTER_A_WITH_BREVE_AND_DOT_BELOW 0x1EB6 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_BREVE_AND_DOT_BELOW 0x1EB7 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_DOT_BELOW 0x1EB8 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_DOT_BELOW 0x1EB9 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_HOOK_ABOVE 0x1EBA #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_HOOK_ABOVE 0x1EBB #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_TILDE 0x1EBC #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_TILDE 0x1EBD #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_AND_ACUTE 0x1EBE #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_AND_ACUTE 0x1EBF #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_AND_GRAVE 0x1EC0 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_AND_GRAVE 0x1EC1 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_AND_HOOK_ABOVE 0x1EC2 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_AND_HOOK_ABOVE 0x1EC3 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_AND_TILDE 0x1EC4 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_AND_TILDE 0x1EC5 #define T_UTF_32_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX_AND_DOT_BELOW 0x1EC6 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX_AND_DOT_BELOW 0x1EC7 #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_HOOK_ABOVE 0x1EC8 #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_HOOK_ABOVE 0x1EC9 #define T_UTF_32_LATIN_CAPITAL_LETTER_I_WITH_DOT_BELOW 0x1ECA #define T_UTF_32_LATIN_SMALL_LETTER_I_WITH_DOT_BELOW 0x1ECB #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_DOT_BELOW 0x1ECC #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_DOT_BELOW 0x1ECD #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_HOOK_ABOVE 0x1ECE #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_HOOK_ABOVE 0x1ECF #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX_AND_ACUTE 0x1ED0 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX_AND_ACUTE 0x1ED1 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX_AND_GRAVE 0x1ED2 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX_AND_GRAVE 0x1ED3 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX_AND_HOOK_ABOVE 0x1ED4 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX_AND_HOOK_ABOVE 0x1ED5 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX_AND_TILDE 0x1ED6 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX_AND_TILDE 0x1ED7 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX_AND_DOT_BELOW 0x1ED8 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX_AND_DOT_BELOW 0x1ED9 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_HORN_AND_ACUTE 0x1EDA #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_HORN_AND_ACUTE 0x1EDB #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_HORN_AND_GRAVE 0x1EDC #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_HORN_AND_GRAVE 0x1EDD #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_HORN_AND_HOOK_ABOVE 0x1EDE #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_HORN_AND_HOOK_ABOVE 0x1EDF #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_HORN_AND_TILDE 0x1EE0 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_HORN_AND_TILDE 0x1EE1 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_HORN_AND_DOT_BELOW 0x1EE2 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_HORN_AND_DOT_BELOW 0x1EE3 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_DOT_BELOW 0x1EE4 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_DOT_BELOW 0x1EE5 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_HOOK_ABOVE 0x1EE6 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_HOOK_ABOVE 0x1EE7 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_HORN_AND_ACUTE 0x1EE8 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_HORN_AND_ACUTE 0x1EE9 #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_HORN_AND_GRAVE 0x1EEA #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_HORN_AND_GRAVE 0x1EEB #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_HORN_AND_HOOK_ABOVE 0x1EEC #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_HORN_AND_HOOK_ABOVE 0x1EED #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_HORN_AND_TILDE 0x1EEE #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_HORN_AND_TILDE 0x1EEF #define T_UTF_32_LATIN_CAPITAL_LETTER_U_WITH_HORN_AND_DOT_BELOW 0x1EF0 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_HORN_AND_DOT_BELOW 0x1EF1 #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_GRAVE 0x1EF2 #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_GRAVE 0x1EF3 #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_DOT_BELOW 0x1EF4 #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_DOT_BELOW 0x1EF5 #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_HOOK_ABOVE 0x1EF6 #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_HOOK_ABOVE 0x1EF7 #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_TILDE 0x1EF8 #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_TILDE 0x1EF9 #define T_UTF_32_LATIN_CAPITAL_LETTER_MIDDLE_WELSH_LL 0x1EFA #define T_UTF_32_LATIN_SMALL_LETTER_MIDDLE_WELSH_LL 0x1EFB #define T_UTF_32_LATIN_CAPITAL_LETTER_MIDDLE_WELSH_V 0x1EFC #define T_UTF_32_LATIN_SMALL_LETTER_MIDDLE_WELSH_V 0x1EFD #define T_UTF_32_LATIN_CAPITAL_LETTER_Y_WITH_LOOP 0x1EFE #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_LOOP 0x1EFF #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_PSILI 0x1F00 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_DASIA 0x1F01 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_PSILI_AND_VARIA 0x1F02 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_DASIA_AND_VARIA 0x1F03 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_PSILI_AND_OXIA 0x1F04 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_DASIA_AND_OXIA 0x1F05 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_PSILI_AND_PERISPOMENI 0x1F06 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_DASIA_AND_PERISPOMENI 0x1F07 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_PSILI 0x1F08 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_DASIA 0x1F09 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_PSILI_AND_VARIA 0x1F0A #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_DASIA_AND_VARIA 0x1F0B #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_PSILI_AND_OXIA 0x1F0C #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_DASIA_AND_OXIA 0x1F0D #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_PSILI_AND_PERISPOMENI 0x1F0E #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_DASIA_AND_PERISPOMENI 0x1F0F #define T_UTF_32_GREEK_SMALL_LETTER_EPSILON_WITH_PSILI 0x1F10 #define T_UTF_32_GREEK_SMALL_LETTER_EPSILON_WITH_DASIA 0x1F11 #define T_UTF_32_GREEK_SMALL_LETTER_EPSILON_WITH_PSILI_AND_VARIA 0x1F12 #define T_UTF_32_GREEK_SMALL_LETTER_EPSILON_WITH_DASIA_AND_VARIA 0x1F13 #define T_UTF_32_GREEK_SMALL_LETTER_EPSILON_WITH_PSILI_AND_OXIA 0x1F14 #define T_UTF_32_GREEK_SMALL_LETTER_EPSILON_WITH_DASIA_AND_OXIA 0x1F15 #define T_UTF_32_GREEK_CAPITAL_LETTER_EPSILON_WITH_PSILI 0x1F18 #define T_UTF_32_GREEK_CAPITAL_LETTER_EPSILON_WITH_DASIA 0x1F19 #define T_UTF_32_GREEK_CAPITAL_LETTER_EPSILON_WITH_PSILI_AND_VARIA 0x1F1A #define T_UTF_32_GREEK_CAPITAL_LETTER_EPSILON_WITH_DASIA_AND_VARIA 0x1F1B #define T_UTF_32_GREEK_CAPITAL_LETTER_EPSILON_WITH_PSILI_AND_OXIA 0x1F1C #define T_UTF_32_GREEK_CAPITAL_LETTER_EPSILON_WITH_DASIA_AND_OXIA 0x1F1D #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_PSILI 0x1F20 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_DASIA 0x1F21 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_PSILI_AND_VARIA 0x1F22 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_DASIA_AND_VARIA 0x1F23 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_PSILI_AND_OXIA 0x1F24 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_DASIA_AND_OXIA 0x1F25 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_PSILI_AND_PERISPOMENI 0x1F26 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_DASIA_AND_PERISPOMENI 0x1F27 #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_PSILI 0x1F28 #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_DASIA 0x1F29 #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_PSILI_AND_VARIA 0x1F2A #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_DASIA_AND_VARIA 0x1F2B #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_PSILI_AND_OXIA 0x1F2C #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_DASIA_AND_OXIA 0x1F2D #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_PSILI_AND_PERISPOMENI 0x1F2E #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_DASIA_AND_PERISPOMENI 0x1F2F #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_PSILI 0x1F30 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_DASIA 0x1F31 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_PSILI_AND_VARIA 0x1F32 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_DASIA_AND_VARIA 0x1F33 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_PSILI_AND_OXIA 0x1F34 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_DASIA_AND_OXIA 0x1F35 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_PSILI_AND_PERISPOMENI 0x1F36 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_DASIA_AND_PERISPOMENI 0x1F37 #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_PSILI 0x1F38 #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_DASIA 0x1F39 #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_PSILI_AND_VARIA 0x1F3A #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_DASIA_AND_VARIA 0x1F3B #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_PSILI_AND_OXIA 0x1F3C #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_DASIA_AND_OXIA 0x1F3D #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_PSILI_AND_PERISPOMENI 0x1F3E #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_DASIA_AND_PERISPOMENI 0x1F3F #define T_UTF_32_GREEK_SMALL_LETTER_OMICRON_WITH_PSILI 0x1F40 #define T_UTF_32_GREEK_SMALL_LETTER_OMICRON_WITH_DASIA 0x1F41 #define T_UTF_32_GREEK_SMALL_LETTER_OMICRON_WITH_PSILI_AND_VARIA 0x1F42 #define T_UTF_32_GREEK_SMALL_LETTER_OMICRON_WITH_DASIA_AND_VARIA 0x1F43 #define T_UTF_32_GREEK_SMALL_LETTER_OMICRON_WITH_PSILI_AND_OXIA 0x1F44 #define T_UTF_32_GREEK_SMALL_LETTER_OMICRON_WITH_DASIA_AND_OXIA 0x1F45 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMICRON_WITH_PSILI 0x1F48 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMICRON_WITH_DASIA 0x1F49 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMICRON_WITH_PSILI_AND_VARIA 0x1F4A #define T_UTF_32_GREEK_CAPITAL_LETTER_OMICRON_WITH_DASIA_AND_VARIA 0x1F4B #define T_UTF_32_GREEK_CAPITAL_LETTER_OMICRON_WITH_PSILI_AND_OXIA 0x1F4C #define T_UTF_32_GREEK_CAPITAL_LETTER_OMICRON_WITH_DASIA_AND_OXIA 0x1F4D #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_PSILI 0x1F50 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_DASIA 0x1F51 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_PSILI_AND_VARIA 0x1F52 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_DASIA_AND_VARIA 0x1F53 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_PSILI_AND_OXIA 0x1F54 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_DASIA_AND_OXIA 0x1F55 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_PSILI_AND_PERISPOMENI 0x1F56 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_DASIA_AND_PERISPOMENI 0x1F57 #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON_WITH_DASIA 0x1F59 #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON_WITH_DASIA_AND_VARIA 0x1F5B #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON_WITH_DASIA_AND_OXIA 0x1F5D #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON_WITH_DASIA_AND_PERISPOMENI 0x1F5F #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_PSILI 0x1F60 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_DASIA 0x1F61 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_PSILI_AND_VARIA 0x1F62 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_DASIA_AND_VARIA 0x1F63 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_PSILI_AND_OXIA 0x1F64 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_DASIA_AND_OXIA 0x1F65 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_PSILI_AND_PERISPOMENI 0x1F66 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_DASIA_AND_PERISPOMENI 0x1F67 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_PSILI 0x1F68 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_DASIA 0x1F69 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_PSILI_AND_VARIA 0x1F6A #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_DASIA_AND_VARIA 0x1F6B #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_PSILI_AND_OXIA 0x1F6C #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_DASIA_AND_OXIA 0x1F6D #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_PSILI_AND_PERISPOMENI 0x1F6E #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_DASIA_AND_PERISPOMENI 0x1F6F #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_VARIA 0x1F70 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_OXIA 0x1F71 #define T_UTF_32_GREEK_SMALL_LETTER_EPSILON_WITH_VARIA 0x1F72 #define T_UTF_32_GREEK_SMALL_LETTER_EPSILON_WITH_OXIA 0x1F73 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_VARIA 0x1F74 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_OXIA 0x1F75 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_VARIA 0x1F76 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_OXIA 0x1F77 #define T_UTF_32_GREEK_SMALL_LETTER_OMICRON_WITH_VARIA 0x1F78 #define T_UTF_32_GREEK_SMALL_LETTER_OMICRON_WITH_OXIA 0x1F79 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_VARIA 0x1F7A #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_OXIA 0x1F7B #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_VARIA 0x1F7C #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_OXIA 0x1F7D #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_PSILI_AND_YPOGEGRAMMENI 0x1F80 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_DASIA_AND_YPOGEGRAMMENI 0x1F81 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_PSILI_AND_VARIA_AND_YPOGEGRAMMENI 0x1F82 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_DASIA_AND_VARIA_AND_YPOGEGRAMMENI 0x1F83 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_PSILI_AND_OXIA_AND_YPOGEGRAMMENI 0x1F84 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_DASIA_AND_OXIA_AND_YPOGEGRAMMENI 0x1F85 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_PSILI_AND_PERISPOMENI_AND_YPOGEGRAMMENI 0x1F86 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_DASIA_AND_PERISPOMENI_AND_YPOGEGRAMMENI 0x1F87 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_PSILI_AND_PROSGEGRAMMENI 0x1F88 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_DASIA_AND_PROSGEGRAMMENI 0x1F89 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_PSILI_AND_VARIA_AND_PROSGEGRAMMENI 0x1F8A #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_DASIA_AND_VARIA_AND_PROSGEGRAMMENI 0x1F8B #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_PSILI_AND_OXIA_AND_PROSGEGRAMMENI 0x1F8C #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_DASIA_AND_OXIA_AND_PROSGEGRAMMENI 0x1F8D #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_PSILI_AND_PERISPOMENI_AND_PROSGEGRAMMENI 0x1F8E #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_DASIA_AND_PERISPOMENI_AND_PROSGEGRAMMENI 0x1F8F #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_PSILI_AND_YPOGEGRAMMENI 0x1F90 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_DASIA_AND_YPOGEGRAMMENI 0x1F91 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_PSILI_AND_VARIA_AND_YPOGEGRAMMENI 0x1F92 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_DASIA_AND_VARIA_AND_YPOGEGRAMMENI 0x1F93 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_PSILI_AND_OXIA_AND_YPOGEGRAMMENI 0x1F94 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_DASIA_AND_OXIA_AND_YPOGEGRAMMENI 0x1F95 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_PSILI_AND_PERISPOMENI_AND_YPOGEGRAMMENI 0x1F96 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_DASIA_AND_PERISPOMENI_AND_YPOGEGRAMMENI 0x1F97 #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_PSILI_AND_PROSGEGRAMMENI 0x1F98 #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_DASIA_AND_PROSGEGRAMMENI 0x1F99 #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_PSILI_AND_VARIA_AND_PROSGEGRAMMENI 0x1F9A #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_DASIA_AND_VARIA_AND_PROSGEGRAMMENI 0x1F9B #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_PSILI_AND_OXIA_AND_PROSGEGRAMMENI 0x1F9C #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_DASIA_AND_OXIA_AND_PROSGEGRAMMENI 0x1F9D #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_PSILI_AND_PERISPOMENI_AND_PROSGEGRAMMENI 0x1F9E #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_DASIA_AND_PERISPOMENI_AND_PROSGEGRAMMENI 0x1F9F #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_PSILI_AND_YPOGEGRAMMENI 0x1FA0 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_DASIA_AND_YPOGEGRAMMENI 0x1FA1 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_PSILI_AND_VARIA_AND_YPOGEGRAMMENI 0x1FA2 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_DASIA_AND_VARIA_AND_YPOGEGRAMMENI 0x1FA3 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_PSILI_AND_OXIA_AND_YPOGEGRAMMENI 0x1FA4 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_DASIA_AND_OXIA_AND_YPOGEGRAMMENI 0x1FA5 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_PSILI_AND_PERISPOMENI_AND_YPOGEGRAMMENI 0x1FA6 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_DASIA_AND_PERISPOMENI_AND_YPOGEGRAMMENI 0x1FA7 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_PSILI_AND_PROSGEGRAMMENI 0x1FA8 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_DASIA_AND_PROSGEGRAMMENI 0x1FA9 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_PSILI_AND_VARIA_AND_PROSGEGRAMMENI 0x1FAA #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_DASIA_AND_VARIA_AND_PROSGEGRAMMENI 0x1FAB #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_PSILI_AND_OXIA_AND_PROSGEGRAMMENI 0x1FAC #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_DASIA_AND_OXIA_AND_PROSGEGRAMMENI 0x1FAD #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_PSILI_AND_PERISPOMENI_AND_PROSGEGRAMMENI 0x1FAE #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_DASIA_AND_PERISPOMENI_AND_PROSGEGRAMMENI 0x1FAF #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_VRACHY 0x1FB0 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_MACRON 0x1FB1 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_VARIA_AND_YPOGEGRAMMENI 0x1FB2 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_YPOGEGRAMMENI 0x1FB3 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_OXIA_AND_YPOGEGRAMMENI 0x1FB4 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_PERISPOMENI 0x1FB6 #define T_UTF_32_GREEK_SMALL_LETTER_ALPHA_WITH_PERISPOMENI_AND_YPOGEGRAMMENI 0x1FB7 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_VRACHY 0x1FB8 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_MACRON 0x1FB9 #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_VARIA 0x1FBA #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_OXIA 0x1FBB #define T_UTF_32_GREEK_CAPITAL_LETTER_ALPHA_WITH_PROSGEGRAMMENI 0x1FBC #define T_UTF_32_GREEK_KORONIS 0x1FBD #define T_UTF_32_GREEK_PROSGEGRAMMENI 0x1FBE #define T_UTF_32_GREEK_PSILI 0x1FBF #define T_UTF_32_GREEK_PERISPOMENI 0x1FC0 #define T_UTF_32_GREEK_DIALYTIKA_AND_PERISPOMENI 0x1FC1 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_VARIA_AND_YPOGEGRAMMENI 0x1FC2 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_YPOGEGRAMMENI 0x1FC3 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_OXIA_AND_YPOGEGRAMMENI 0x1FC4 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_PERISPOMENI 0x1FC6 #define T_UTF_32_GREEK_SMALL_LETTER_ETA_WITH_PERISPOMENI_AND_YPOGEGRAMMENI 0x1FC7 #define T_UTF_32_GREEK_CAPITAL_LETTER_EPSILON_WITH_VARIA 0x1FC8 #define T_UTF_32_GREEK_CAPITAL_LETTER_EPSILON_WITH_OXIA 0x1FC9 #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_VARIA 0x1FCA #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_OXIA 0x1FCB #define T_UTF_32_GREEK_CAPITAL_LETTER_ETA_WITH_PROSGEGRAMMENI 0x1FCC #define T_UTF_32_GREEK_PSILI_AND_VARIA 0x1FCD #define T_UTF_32_GREEK_PSILI_AND_OXIA 0x1FCE #define T_UTF_32_GREEK_PSILI_AND_PERISPOMENI 0x1FCF #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_VRACHY 0x1FD0 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_MACRON 0x1FD1 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_VARIA 0x1FD2 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_OXIA 0x1FD3 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_PERISPOMENI 0x1FD6 #define T_UTF_32_GREEK_SMALL_LETTER_IOTA_WITH_DIALYTIKA_AND_PERISPOMENI 0x1FD7 #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_VRACHY 0x1FD8 #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_MACRON 0x1FD9 #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_VARIA 0x1FDA #define T_UTF_32_GREEK_CAPITAL_LETTER_IOTA_WITH_OXIA 0x1FDB #define T_UTF_32_GREEK_DASIA_AND_VARIA 0x1FDD #define T_UTF_32_GREEK_DASIA_AND_OXIA 0x1FDE #define T_UTF_32_GREEK_DASIA_AND_PERISPOMENI 0x1FDF #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_VRACHY 0x1FE0 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_MACRON 0x1FE1 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_VARIA 0x1FE2 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_OXIA 0x1FE3 #define T_UTF_32_GREEK_SMALL_LETTER_RHO_WITH_PSILI 0x1FE4 #define T_UTF_32_GREEK_SMALL_LETTER_RHO_WITH_DASIA 0x1FE5 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_PERISPOMENI 0x1FE6 #define T_UTF_32_GREEK_SMALL_LETTER_UPSILON_WITH_DIALYTIKA_AND_PERISPOMENI 0x1FE7 #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON_WITH_VRACHY 0x1FE8 #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON_WITH_MACRON 0x1FE9 #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON_WITH_VARIA 0x1FEA #define T_UTF_32_GREEK_CAPITAL_LETTER_UPSILON_WITH_OXIA 0x1FEB #define T_UTF_32_GREEK_CAPITAL_LETTER_RHO_WITH_DASIA 0x1FEC #define T_UTF_32_GREEK_DIALYTIKA_AND_VARIA 0x1FED #define T_UTF_32_GREEK_DIALYTIKA_AND_OXIA 0x1FEE #define T_UTF_32_GREEK_VARIA 0x1FEF #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_VARIA_AND_YPOGEGRAMMENI 0x1FF2 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_YPOGEGRAMMENI 0x1FF3 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_OXIA_AND_YPOGEGRAMMENI 0x1FF4 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_PERISPOMENI 0x1FF6 #define T_UTF_32_GREEK_SMALL_LETTER_OMEGA_WITH_PERISPOMENI_AND_YPOGEGRAMMENI 0x1FF7 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMICRON_WITH_VARIA 0x1FF8 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMICRON_WITH_OXIA 0x1FF9 #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_VARIA 0x1FFA #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_OXIA 0x1FFB #define T_UTF_32_GREEK_CAPITAL_LETTER_OMEGA_WITH_PROSGEGRAMMENI 0x1FFC #define T_UTF_32_GREEK_OXIA 0x1FFD #define T_UTF_32_GREEK_DASIA 0x1FFE #define T_UTF_32_EN_QUAD 0x2000 #define T_UTF_32_EM_QUAD 0x2001 #define T_UTF_32_EN_SPACE 0x2002 #define T_UTF_32_EM_SPACE 0x2003 #define T_UTF_32_THREE_PER_EM_SPACE 0x2004 #define T_UTF_32_FOUR_PER_EM_SPACE 0x2005 #define T_UTF_32_SIX_PER_EM_SPACE 0x2006 #define T_UTF_32_FIGURE_SPACE 0x2007 #define T_UTF_32_PUNCTUATION_SPACE 0x2008 #define T_UTF_32_THIN_SPACE 0x2009 #define T_UTF_32_HAIR_SPACE 0x200A #define T_UTF_32_ZERO_WIDTH_SPACE 0x200B #define T_UTF_32_ZERO_WIDTH_NON_JOINER 0x200C #define T_UTF_32_ZERO_WIDTH_JOINER 0x200D #define T_UTF_32_LEFT_TO_RIGHT_MARK 0x200E #define T_UTF_32_RIGHT_TO_LEFT_MARK 0x200F #define T_UTF_32_HYPHEN 0x2010 #define T_UTF_32_NON_BREAKING_HYPHEN 0x2011 #define T_UTF_32_FIGURE_DASH 0x2012 #define T_UTF_32_EN_DASH 0x2013 #define T_UTF_32_EM_DASH 0x2014 #define T_UTF_32_HORIZONTAL_BAR 0x2015 #define T_UTF_32_DOUBLE_VERTICAL_LINE 0x2016 #define T_UTF_32_DOUBLE_LOW_LINE 0x2017 #define T_UTF_32_LEFT_SINGLE_QUOTATION_MARK 0x2018 #define T_UTF_32_RIGHT_SINGLE_QUOTATION_MARK 0x2019 #define T_UTF_32_SINGLE_LOW_9_QUOTATION_MARK 0x201A #define T_UTF_32_SINGLE_HIGH_REVERSED_9_QUOTATION_MARK 0x201B #define T_UTF_32_LEFT_DOUBLE_QUOTATION_MARK 0x201C #define T_UTF_32_RIGHT_DOUBLE_QUOTATION_MARK 0x201D #define T_UTF_32_DOUBLE_LOW_9_QUOTATION_MARK 0x201E #define T_UTF_32_DOUBLE_HIGH_REVERSED_9_QUOTATION_MARK 0x201F #define T_UTF_32_DAGGER 0x2020 #define T_UTF_32_DOUBLE_DAGGER 0x2021 #define T_UTF_32_BULLET 0x2022 #define T_UTF_32_TRIANGULAR_BULLET 0x2023 #define T_UTF_32_ONE_DOT_LEADER 0x2024 #define T_UTF_32_TWO_DOT_LEADER 0x2025 #define T_UTF_32_HORIZONTAL_ELLIPSIS 0x2026 #define T_UTF_32_HYPHENATION_POINT 0x2027 #define T_UTF_32_LINE_SEPARATOR 0x2028 #define T_UTF_32_PARAGRAPH_SEPARATOR 0x2029 #define T_UTF_32_LEFT_TO_RIGHT_EMBEDDING 0x202A #define T_UTF_32_RIGHT_TO_LEFT_EMBEDDING 0x202B #define T_UTF_32_POP_DIRECTIONAL_FORMATTING 0x202C #define T_UTF_32_LEFT_TO_RIGHT_OVERRIDE 0x202D #define T_UTF_32_RIGHT_TO_LEFT_OVERRIDE 0x202E #define T_UTF_32_NARROW_NO_BREAK_SPACE 0x202F #define T_UTF_32_PER_MILLE_SIGN 0x2030 #define T_UTF_32_PER_TEN_THOUSAND_SIGN 0x2031 #define T_UTF_32_PRIME 0x2032 #define T_UTF_32_DOUBLE_PRIME 0x2033 #define T_UTF_32_TRIPLE_PRIME 0x2034 #define T_UTF_32_REVERSED_PRIME 0x2035 #define T_UTF_32_REVERSED_DOUBLE_PRIME 0x2036 #define T_UTF_32_REVERSED_TRIPLE_PRIME 0x2037 #define T_UTF_32_CARET 0x2038 #define T_UTF_32_SINGLE_LEFT_POINTING_ANGLE_QUOTATION_MARK 0x2039 #define T_UTF_32_SINGLE_RIGHT_POINTING_ANGLE_QUOTATION_MARK 0x203A #define T_UTF_32_REFERENCE_MARK 0x203B #define T_UTF_32_DOUBLE_EXCLAMATION_MARK 0x203C #define T_UTF_32_INTERROBANG 0x203D #define T_UTF_32_OVERLINE 0x203E #define T_UTF_32_UNDERTIE 0x203F #define T_UTF_32_CHARACTER_TIE 0x2040 #define T_UTF_32_CARET_INSERTION_POINT 0x2041 #define T_UTF_32_ASTERISM 0x2042 #define T_UTF_32_HYPHEN_BULLET 0x2043 #define T_UTF_32_FRACTION_SLASH 0x2044 #define T_UTF_32_LEFT_SQUARE_BRACKET_WITH_QUILL 0x2045 #define T_UTF_32_RIGHT_SQUARE_BRACKET_WITH_QUILL 0x2046 #define T_UTF_32_DOUBLE_QUESTION_MARK 0x2047 #define T_UTF_32_QUESTION_EXCLAMATION_MARK 0x2048 #define T_UTF_32_EXCLAMATION_QUESTION_MARK 0x2049 #define T_UTF_32_TIRONIAN_SIGN_ET 0x204A #define T_UTF_32_REVERSED_PILCROW_SIGN 0x204B #define T_UTF_32_BLACK_LEFTWARDS_BULLET 0x204C #define T_UTF_32_BLACK_RIGHTWARDS_BULLET 0x204D #define T_UTF_32_LOW_ASTERISK 0x204E #define T_UTF_32_REVERSED_SEMICOLON 0x204F #define T_UTF_32_CLOSE_UP 0x2050 #define T_UTF_32_TWO_ASTERISKS_ALIGNED_VERTICALLY 0x2051 #define T_UTF_32_COMMERCIAL_MINUS_SIGN 0x2052 #define T_UTF_32_SWUNG_DASH 0x2053 #define T_UTF_32_INVERTED_UNDERTIE 0x2054 #define T_UTF_32_FLOWER_PUNCTUATION_MARK 0x2055 #define T_UTF_32_THREE_DOT_PUNCTUATION 0x2056 #define T_UTF_32_QUADRUPLE_PRIME 0x2057 #define T_UTF_32_FOUR_DOT_PUNCTUATION 0x2058 #define T_UTF_32_FIVE_DOT_PUNCTUATION 0x2059 #define T_UTF_32_TWO_DOT_PUNCTUATION 0x205A #define T_UTF_32_FOUR_DOT_MARK 0x205B #define T_UTF_32_DOTTED_CROSS 0x205C #define T_UTF_32_TRICOLON 0x205D #define T_UTF_32_VERTICAL_FOUR_DOTS 0x205E #define T_UTF_32_MEDIUM_MATHEMATICAL_SPACE 0x205F #define T_UTF_32_WORD_JOINER 0x2060 #define T_UTF_32_FUNCTION_APPLICATION 0x2061 #define T_UTF_32_INVISIBLE_TIMES 0x2062 #define T_UTF_32_INVISIBLE_SEPARATOR 0x2063 #define T_UTF_32_INVISIBLE_PLUS 0x2064 #define T_UTF_32_LEFT_TO_RIGHT_ISOLATE 0x2066 #define T_UTF_32_RIGHT_TO_LEFT_ISOLATE 0x2067 #define T_UTF_32_FIRST_STRONG_ISOLATE 0x2068 #define T_UTF_32_POP_DIRECTIONAL_ISOLATE 0x2069 #define T_UTF_32_INHIBIT_SYMMETRIC_SWAPPING 0x206A #define T_UTF_32_ACTIVATE_SYMMETRIC_SWAPPING 0x206B #define T_UTF_32_INHIBIT_ARABIC_FORM_SHAPING 0x206C #define T_UTF_32_ACTIVATE_ARABIC_FORM_SHAPING 0x206D #define T_UTF_32_NATIONAL_DIGIT_SHAPES 0x206E #define T_UTF_32_NOMINAL_DIGIT_SHAPES 0x206F #define T_UTF_32_SUPERSCRIPT_ZERO 0x2070 #define T_UTF_32_SUPERSCRIPT_LATIN_SMALL_LETTER_I 0x2071 #define T_UTF_32_SUPERSCRIPT_FOUR 0x2074 #define T_UTF_32_SUPERSCRIPT_FIVE 0x2075 #define T_UTF_32_SUPERSCRIPT_SIX 0x2076 #define T_UTF_32_SUPERSCRIPT_SEVEN 0x2077 #define T_UTF_32_SUPERSCRIPT_EIGHT 0x2078 #define T_UTF_32_SUPERSCRIPT_NINE 0x2079 #define T_UTF_32_SUPERSCRIPT_PLUS_SIGN 0x207A #define T_UTF_32_SUPERSCRIPT_MINUS 0x207B #define T_UTF_32_SUPERSCRIPT_EQUALS_SIGN 0x207C #define T_UTF_32_SUPERSCRIPT_LEFT_PARENTHESIS 0x207D #define T_UTF_32_SUPERSCRIPT_RIGHT_PARENTHESIS 0x207E #define T_UTF_32_SUPERSCRIPT_LATIN_SMALL_LETTER_N 0x207F #define T_UTF_32_SUBSCRIPT_ZERO 0x2080 #define T_UTF_32_SUBSCRIPT_ONE 0x2081 #define T_UTF_32_SUBSCRIPT_TWO 0x2082 #define T_UTF_32_SUBSCRIPT_THREE 0x2083 #define T_UTF_32_SUBSCRIPT_FOUR 0x2084 #define T_UTF_32_SUBSCRIPT_FIVE 0x2085 #define T_UTF_32_SUBSCRIPT_SIX 0x2086 #define T_UTF_32_SUBSCRIPT_SEVEN 0x2087 #define T_UTF_32_SUBSCRIPT_EIGHT 0x2088 #define T_UTF_32_SUBSCRIPT_NINE 0x2089 #define T_UTF_32_SUBSCRIPT_PLUS_SIGN 0x208A #define T_UTF_32_SUBSCRIPT_MINUS 0x208B #define T_UTF_32_SUBSCRIPT_EQUALS_SIGN 0x208C #define T_UTF_32_SUBSCRIPT_LEFT_PARENTHESIS 0x208D #define T_UTF_32_SUBSCRIPT_RIGHT_PARENTHESIS 0x208E #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_A 0x2090 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_E 0x2091 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_O 0x2092 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_X 0x2093 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_SCHWA 0x2094 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_H 0x2095 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_K 0x2096 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_L 0x2097 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_M 0x2098 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_N 0x2099 #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_P 0x209A #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_S 0x209B #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_T 0x209C #define T_UTF_32_EURO_CURRENCY_SIGN 0x20A0 #define T_UTF_32_COLON_SIGN 0x20A1 #define T_UTF_32_CRUZEIRO_SIGN 0x20A2 #define T_UTF_32_FRENCH_FRANC_SIGN 0x20A3 #define T_UTF_32_LIRA_SIGN 0x20A4 #define T_UTF_32_MILL_SIGN 0x20A5 #define T_UTF_32_NAIRA_SIGN 0x20A6 #define T_UTF_32_PESETA_SIGN 0x20A7 #define T_UTF_32_RUPEE_SIGN 0x20A8 #define T_UTF_32_WON_SIGN 0x20A9 #define T_UTF_32_NEW_SHEQEL_SIGN 0x20AA #define T_UTF_32_DONG_SIGN 0x20AB #define T_UTF_32_EURO_SIGN 0x20AC #define T_UTF_32_KIP_SIGN 0x20AD #define T_UTF_32_TUGRIK_SIGN 0x20AE #define T_UTF_32_DRACHMA_SIGN 0x20AF #define T_UTF_32_GERMAN_PENNY_SIGN 0x20B0 #define T_UTF_32_PESO_SIGN 0x20B1 #define T_UTF_32_GUARANI_SIGN 0x20B2 #define T_UTF_32_AUSTRAL_SIGN 0x20B3 #define T_UTF_32_HRYVNIA_SIGN 0x20B4 #define T_UTF_32_CEDI_SIGN 0x20B5 #define T_UTF_32_LIVRE_TOURNOIS_SIGN 0x20B6 #define T_UTF_32_SPESMILO_SIGN 0x20B7 #define T_UTF_32_TENGE_SIGN 0x20B8 #define T_UTF_32_INDIAN_RUPEE_SIGN 0x20B9 #define T_UTF_32_TURKISH_LIRA_SIGN 0x20BA #define T_UTF_32_NORDIC_MARK_SIGN 0x20BB #define T_UTF_32_MANAT_SIGN 0x20BC #define T_UTF_32_RUBLE_SIGN 0x20BD #define T_UTF_32_LARI_SIGN 0x20BE #define T_UTF_32_BITCOIN_SIGN 0x20BF #define T_UTF_32_COMBINING_LEFT_HARPOON_ABOVE 0x20D0 #define T_UTF_32_COMBINING_RIGHT_HARPOON_ABOVE 0x20D1 #define T_UTF_32_COMBINING_LONG_VERTICAL_LINE_OVERLAY 0x20D2 #define T_UTF_32_COMBINING_SHORT_VERTICAL_LINE_OVERLAY 0x20D3 #define T_UTF_32_COMBINING_ANTICLOCKWISE_ARROW_ABOVE 0x20D4 #define T_UTF_32_COMBINING_CLOCKWISE_ARROW_ABOVE 0x20D5 #define T_UTF_32_COMBINING_LEFT_ARROW_ABOVE 0x20D6 #define T_UTF_32_COMBINING_RIGHT_ARROW_ABOVE 0x20D7 #define T_UTF_32_COMBINING_RING_OVERLAY 0x20D8 #define T_UTF_32_COMBINING_CLOCKWISE_RING_OVERLAY 0x20D9 #define T_UTF_32_COMBINING_ANTICLOCKWISE_RING_OVERLAY 0x20DA #define T_UTF_32_COMBINING_THREE_DOTS_ABOVE 0x20DB #define T_UTF_32_COMBINING_FOUR_DOTS_ABOVE 0x20DC #define T_UTF_32_COMBINING_ENCLOSING_CIRCLE 0x20DD #define T_UTF_32_COMBINING_ENCLOSING_SQUARE 0x20DE #define T_UTF_32_COMBINING_ENCLOSING_DIAMOND 0x20DF #define T_UTF_32_COMBINING_ENCLOSING_CIRCLE_BACKSLASH 0x20E0 #define T_UTF_32_COMBINING_LEFT_RIGHT_ARROW_ABOVE 0x20E1 #define T_UTF_32_COMBINING_ENCLOSING_SCREEN 0x20E2 #define T_UTF_32_COMBINING_ENCLOSING_KEYCAP 0x20E3 #define T_UTF_32_COMBINING_ENCLOSING_UPWARD_POINTING_TRIANGLE 0x20E4 #define T_UTF_32_COMBINING_REVERSE_SOLIDUS_OVERLAY 0x20E5 #define T_UTF_32_COMBINING_DOUBLE_VERTICAL_STROKE_OVERLAY 0x20E6 #define T_UTF_32_COMBINING_ANNUITY_SYMBOL 0x20E7 #define T_UTF_32_COMBINING_TRIPLE_UNDERDOT 0x20E8 #define T_UTF_32_COMBINING_WIDE_BRIDGE_ABOVE 0x20E9 #define T_UTF_32_COMBINING_LEFTWARDS_ARROW_OVERLAY 0x20EA #define T_UTF_32_COMBINING_LONG_DOUBLE_SOLIDUS_OVERLAY 0x20EB #define T_UTF_32_COMBINING_RIGHTWARDS_HARPOON_WITH_BARB_DOWNWARDS 0x20EC #define T_UTF_32_COMBINING_LEFTWARDS_HARPOON_WITH_BARB_DOWNWARDS 0x20ED #define T_UTF_32_COMBINING_LEFT_ARROW_BELOW 0x20EE #define T_UTF_32_COMBINING_RIGHT_ARROW_BELOW 0x20EF #define T_UTF_32_COMBINING_ASTERISK_ABOVE 0x20F0 #define T_UTF_32_ACCOUNT_OF 0x2100 #define T_UTF_32_ADDRESSED_TO_THE_SUBJECT 0x2101 #define T_UTF_32_DOUBLE_STRUCK_CAPITAL_C 0x2102 #define T_UTF_32_DEGREE_CELSIUS 0x2103 #define T_UTF_32_CENTRE_LINE_SYMBOL 0x2104 #define T_UTF_32_CARE_OF 0x2105 #define T_UTF_32_CADA_UNA 0x2106 #define T_UTF_32_EULER_CONSTANT 0x2107 #define T_UTF_32_SCRUPLE 0x2108 #define T_UTF_32_DEGREE_FAHRENHEIT 0x2109 #define T_UTF_32_SCRIPT_SMALL_G 0x210A #define T_UTF_32_SCRIPT_CAPITAL_H 0x210B #define T_UTF_32_BLACK_LETTER_CAPITAL_H 0x210C #define T_UTF_32_DOUBLE_STRUCK_CAPITAL_H 0x210D #define T_UTF_32_PLANCK_CONSTANT 0x210E #define T_UTF_32_PLANCK_CONSTANT_OVER_TWO_PI 0x210F #define T_UTF_32_SCRIPT_CAPITAL_I 0x2110 #define T_UTF_32_BLACK_LETTER_CAPITAL_I 0x2111 #define T_UTF_32_SCRIPT_CAPITAL_L 0x2112 #define T_UTF_32_SCRIPT_SMALL_L 0x2113 #define T_UTF_32_L_B_BAR_SYMBOL 0x2114 #define T_UTF_32_DOUBLE_STRUCK_CAPITAL_N 0x2115 #define T_UTF_32_NUMERO_SIGN 0x2116 #define T_UTF_32_SOUND_RECORDING_COPYRIGHT 0x2117 #define T_UTF_32_SCRIPT_CAPITAL_P 0x2118 #define T_UTF_32_DOUBLE_STRUCK_CAPITAL_P 0x2119 #define T_UTF_32_DOUBLE_STRUCK_CAPITAL_Q 0x211A #define T_UTF_32_SCRIPT_CAPITAL_R 0x211B #define T_UTF_32_BLACK_LETTER_CAPITAL_R 0x211C #define T_UTF_32_DOUBLE_STRUCK_CAPITAL_R 0x211D #define T_UTF_32_PRESCRIPTION_TAKE 0x211E #define T_UTF_32_RESPONSE 0x211F #define T_UTF_32_SERVICE_MARK 0x2120 #define T_UTF_32_TELEPHONE_SIGN 0x2121 #define T_UTF_32_TRADE_MARK_SIGN 0x2122 #define T_UTF_32_VERSICLE 0x2123 #define T_UTF_32_DOUBLE_STRUCK_CAPITAL_Z 0x2124 #define T_UTF_32_OUNCE_SIGN 0x2125 #define T_UTF_32_OHM_SIGN 0x2126 #define T_UTF_32_INVERTED_OHM_SIGN 0x2127 #define T_UTF_32_BLACK_LETTER_CAPITAL_Z 0x2128 #define T_UTF_32_TURNED_GREEK_SMALL_LETTER_IOTA 0x2129 #define T_UTF_32_KELVIN_SIGN 0x212A #define T_UTF_32_ANGSTROM_SIGN 0x212B #define T_UTF_32_SCRIPT_CAPITAL_B 0x212C #define T_UTF_32_BLACK_LETTER_CAPITAL_C 0x212D #define T_UTF_32_ESTIMATED_SYMBOL 0x212E #define T_UTF_32_SCRIPT_SMALL_E 0x212F #define T_UTF_32_SCRIPT_CAPITAL_E 0x2130 #define T_UTF_32_SCRIPT_CAPITAL_F 0x2131 #define T_UTF_32_TURNED_CAPITAL_F 0x2132 #define T_UTF_32_SCRIPT_CAPITAL_M 0x2133 #define T_UTF_32_SCRIPT_SMALL_O 0x2134 #define T_UTF_32_ALEF_SYMBOL 0x2135 #define T_UTF_32_BET_SYMBOL 0x2136 #define T_UTF_32_GIMEL_SYMBOL 0x2137 #define T_UTF_32_DALET_SYMBOL 0x2138 #define T_UTF_32_INFORMATION_SOURCE 0x2139 #define T_UTF_32_ROTATED_CAPITAL_Q 0x213A #define T_UTF_32_FACSIMILE_SIGN 0x213B #define T_UTF_32_DOUBLE_STRUCK_SMALL_PI 0x213C #define T_UTF_32_DOUBLE_STRUCK_SMALL_GAMMA 0x213D #define T_UTF_32_DOUBLE_STRUCK_CAPITAL_GAMMA 0x213E #define T_UTF_32_DOUBLE_STRUCK_CAPITAL_PI 0x213F #define T_UTF_32_DOUBLE_STRUCK_N_ARY_SUMMATION 0x2140 #define T_UTF_32_TURNED_SANS_SERIF_CAPITAL_G 0x2141 #define T_UTF_32_TURNED_SANS_SERIF_CAPITAL_L 0x2142 #define T_UTF_32_REVERSED_SANS_SERIF_CAPITAL_L 0x2143 #define T_UTF_32_TURNED_SANS_SERIF_CAPITAL_Y 0x2144 #define T_UTF_32_DOUBLE_STRUCK_ITALIC_CAPITAL_D 0x2145 #define T_UTF_32_DOUBLE_STRUCK_ITALIC_SMALL_D 0x2146 #define T_UTF_32_DOUBLE_STRUCK_ITALIC_SMALL_E 0x2147 #define T_UTF_32_DOUBLE_STRUCK_ITALIC_SMALL_I 0x2148 #define T_UTF_32_DOUBLE_STRUCK_ITALIC_SMALL_J 0x2149 #define T_UTF_32_PROPERTY_LINE 0x214A #define T_UTF_32_TURNED_AMPERSAND 0x214B #define T_UTF_32_PER_SIGN 0x214C #define T_UTF_32_AKTIESELSKAB 0x214D #define T_UTF_32_TURNED_SMALL_F 0x214E #define T_UTF_32_SYMBOL_FOR_SAMARITAN_SOURCE 0x214F #define T_UTF_32_VULGAR_FRACTION_ONE_SEVENTH 0x2150 #define T_UTF_32_VULGAR_FRACTION_ONE_NINTH 0x2151 #define T_UTF_32_VULGAR_FRACTION_ONE_TENTH 0x2152 #define T_UTF_32_VULGAR_FRACTION_ONE_THIRD 0x2153 #define T_UTF_32_VULGAR_FRACTION_TWO_THIRDS 0x2154 #define T_UTF_32_VULGAR_FRACTION_ONE_FIFTH 0x2155 #define T_UTF_32_VULGAR_FRACTION_TWO_FIFTHS 0x2156 #define T_UTF_32_VULGAR_FRACTION_THREE_FIFTHS 0x2157 #define T_UTF_32_VULGAR_FRACTION_FOUR_FIFTHS 0x2158 #define T_UTF_32_VULGAR_FRACTION_ONE_SIXTH 0x2159 #define T_UTF_32_VULGAR_FRACTION_FIVE_SIXTHS 0x215A #define T_UTF_32_VULGAR_FRACTION_ONE_EIGHTH 0x215B #define T_UTF_32_VULGAR_FRACTION_THREE_EIGHTHS 0x215C #define T_UTF_32_VULGAR_FRACTION_FIVE_EIGHTHS 0x215D #define T_UTF_32_VULGAR_FRACTION_SEVEN_EIGHTHS 0x215E #define T_UTF_32_FRACTION_NUMERATOR_ONE 0x215F #define T_UTF_32_ROMAN_NUMERAL_ONE 0x2160 #define T_UTF_32_ROMAN_NUMERAL_TWO 0x2161 #define T_UTF_32_ROMAN_NUMERAL_THREE 0x2162 #define T_UTF_32_ROMAN_NUMERAL_FOUR 0x2163 #define T_UTF_32_ROMAN_NUMERAL_FIVE 0x2164 #define T_UTF_32_ROMAN_NUMERAL_SIX 0x2165 #define T_UTF_32_ROMAN_NUMERAL_SEVEN 0x2166 #define T_UTF_32_ROMAN_NUMERAL_EIGHT 0x2167 #define T_UTF_32_ROMAN_NUMERAL_NINE 0x2168 #define T_UTF_32_ROMAN_NUMERAL_TEN 0x2169 #define T_UTF_32_ROMAN_NUMERAL_ELEVEN 0x216A #define T_UTF_32_ROMAN_NUMERAL_TWELVE 0x216B #define T_UTF_32_ROMAN_NUMERAL_FIFTY 0x216C #define T_UTF_32_ROMAN_NUMERAL_ONE_HUNDRED 0x216D #define T_UTF_32_ROMAN_NUMERAL_FIVE_HUNDRED 0x216E #define T_UTF_32_ROMAN_NUMERAL_ONE_THOUSAND 0x216F #define T_UTF_32_SMALL_ROMAN_NUMERAL_ONE 0x2170 #define T_UTF_32_SMALL_ROMAN_NUMERAL_TWO 0x2171 #define T_UTF_32_SMALL_ROMAN_NUMERAL_THREE 0x2172 #define T_UTF_32_SMALL_ROMAN_NUMERAL_FOUR 0x2173 #define T_UTF_32_SMALL_ROMAN_NUMERAL_FIVE 0x2174 #define T_UTF_32_SMALL_ROMAN_NUMERAL_SIX 0x2175 #define T_UTF_32_SMALL_ROMAN_NUMERAL_SEVEN 0x2176 #define T_UTF_32_SMALL_ROMAN_NUMERAL_EIGHT 0x2177 #define T_UTF_32_SMALL_ROMAN_NUMERAL_NINE 0x2178 #define T_UTF_32_SMALL_ROMAN_NUMERAL_TEN 0x2179 #define T_UTF_32_SMALL_ROMAN_NUMERAL_ELEVEN 0x217A #define T_UTF_32_SMALL_ROMAN_NUMERAL_TWELVE 0x217B #define T_UTF_32_SMALL_ROMAN_NUMERAL_FIFTY 0x217C #define T_UTF_32_SMALL_ROMAN_NUMERAL_ONE_HUNDRED 0x217D #define T_UTF_32_SMALL_ROMAN_NUMERAL_FIVE_HUNDRED 0x217E #define T_UTF_32_SMALL_ROMAN_NUMERAL_ONE_THOUSAND 0x217F #define T_UTF_32_ROMAN_NUMERAL_ONE_THOUSAND_C_D 0x2180 #define T_UTF_32_ROMAN_NUMERAL_FIVE_THOUSAND 0x2181 #define T_UTF_32_ROMAN_NUMERAL_TEN_THOUSAND 0x2182 #define T_UTF_32_ROMAN_NUMERAL_REVERSED_ONE_HUNDRED 0x2183 #define T_UTF_32_LATIN_SMALL_LETTER_REVERSED_C 0x2184 #define T_UTF_32_ROMAN_NUMERAL_SIX_LATE_FORM 0x2185 #define T_UTF_32_ROMAN_NUMERAL_FIFTY_EARLY_FORM 0x2186 #define T_UTF_32_ROMAN_NUMERAL_FIFTY_THOUSAND 0x2187 #define T_UTF_32_ROMAN_NUMERAL_ONE_HUNDRED_THOUSAND 0x2188 #define T_UTF_32_VULGAR_FRACTION_ZERO_THIRDS 0x2189 #define T_UTF_32_TURNED_DIGIT_TWO 0x218A #define T_UTF_32_TURNED_DIGIT_THREE 0x218B #define T_UTF_32_LEFTWARDS_ARROW 0x2190 #define T_UTF_32_UPWARDS_ARROW 0x2191 #define T_UTF_32_RIGHTWARDS_ARROW 0x2192 #define T_UTF_32_DOWNWARDS_ARROW 0x2193 #define T_UTF_32_LEFT_RIGHT_ARROW 0x2194 #define T_UTF_32_UP_DOWN_ARROW 0x2195 #define T_UTF_32_NORTH_WEST_ARROW 0x2196 #define T_UTF_32_NORTH_EAST_ARROW 0x2197 #define T_UTF_32_SOUTH_EAST_ARROW 0x2198 #define T_UTF_32_SOUTH_WEST_ARROW 0x2199 #define T_UTF_32_LEFTWARDS_ARROW_WITH_STROKE 0x219A #define T_UTF_32_RIGHTWARDS_ARROW_WITH_STROKE 0x219B #define T_UTF_32_LEFTWARDS_WAVE_ARROW 0x219C #define T_UTF_32_RIGHTWARDS_WAVE_ARROW 0x219D #define T_UTF_32_LEFTWARDS_TWO_HEADED_ARROW 0x219E #define T_UTF_32_UPWARDS_TWO_HEADED_ARROW 0x219F #define T_UTF_32_RIGHTWARDS_TWO_HEADED_ARROW 0x21A0 #define T_UTF_32_DOWNWARDS_TWO_HEADED_ARROW 0x21A1 #define T_UTF_32_LEFTWARDS_ARROW_WITH_TAIL 0x21A2 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_TAIL 0x21A3 #define T_UTF_32_LEFTWARDS_ARROW_FROM_BAR 0x21A4 #define T_UTF_32_UPWARDS_ARROW_FROM_BAR 0x21A5 #define T_UTF_32_RIGHTWARDS_ARROW_FROM_BAR 0x21A6 #define T_UTF_32_DOWNWARDS_ARROW_FROM_BAR 0x21A7 #define T_UTF_32_UP_DOWN_ARROW_WITH_BASE 0x21A8 #define T_UTF_32_LEFTWARDS_ARROW_WITH_HOOK 0x21A9 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_HOOK 0x21AA #define T_UTF_32_LEFTWARDS_ARROW_WITH_LOOP 0x21AB #define T_UTF_32_RIGHTWARDS_ARROW_WITH_LOOP 0x21AC #define T_UTF_32_LEFT_RIGHT_WAVE_ARROW 0x21AD #define T_UTF_32_LEFT_RIGHT_ARROW_WITH_STROKE 0x21AE #define T_UTF_32_DOWNWARDS_ZIGZAG_ARROW 0x21AF #define T_UTF_32_UPWARDS_ARROW_WITH_TIP_LEFTWARDS 0x21B0 #define T_UTF_32_UPWARDS_ARROW_WITH_TIP_RIGHTWARDS 0x21B1 #define T_UTF_32_DOWNWARDS_ARROW_WITH_TIP_LEFTWARDS 0x21B2 #define T_UTF_32_DOWNWARDS_ARROW_WITH_TIP_RIGHTWARDS 0x21B3 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_CORNER_DOWNWARDS 0x21B4 #define T_UTF_32_DOWNWARDS_ARROW_WITH_CORNER_LEFTWARDS 0x21B5 #define T_UTF_32_ANTICLOCKWISE_TOP_SEMICIRCLE_ARROW 0x21B6 #define T_UTF_32_CLOCKWISE_TOP_SEMICIRCLE_ARROW 0x21B7 #define T_UTF_32_NORTH_WEST_ARROW_TO_LONG_BAR 0x21B8 #define T_UTF_32_LEFTWARDS_ARROW_TO_BAR_OVER_RIGHTWARDS_ARROW_TO_BAR 0x21B9 #define T_UTF_32_ANTICLOCKWISE_OPEN_CIRCLE_ARROW 0x21BA #define T_UTF_32_CLOCKWISE_OPEN_CIRCLE_ARROW 0x21BB #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_UPWARDS 0x21BC #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_DOWNWARDS 0x21BD #define T_UTF_32_UPWARDS_HARPOON_WITH_BARB_RIGHTWARDS 0x21BE #define T_UTF_32_UPWARDS_HARPOON_WITH_BARB_LEFTWARDS 0x21BF #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_UPWARDS 0x21C0 #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_DOWNWARDS 0x21C1 #define T_UTF_32_DOWNWARDS_HARPOON_WITH_BARB_RIGHTWARDS 0x21C2 #define T_UTF_32_DOWNWARDS_HARPOON_WITH_BARB_LEFTWARDS 0x21C3 #define T_UTF_32_RIGHTWARDS_ARROW_OVER_LEFTWARDS_ARROW 0x21C4 #define T_UTF_32_UPWARDS_ARROW_LEFTWARDS_OF_DOWNWARDS_ARROW 0x21C5 #define T_UTF_32_LEFTWARDS_ARROW_OVER_RIGHTWARDS_ARROW 0x21C6 #define T_UTF_32_LEFTWARDS_PAIRED_ARROWS 0x21C7 #define T_UTF_32_UPWARDS_PAIRED_ARROWS 0x21C8 #define T_UTF_32_RIGHTWARDS_PAIRED_ARROWS 0x21C9 #define T_UTF_32_DOWNWARDS_PAIRED_ARROWS 0x21CA #define T_UTF_32_LEFTWARDS_HARPOON_OVER_RIGHTWARDS_HARPOON 0x21CB #define T_UTF_32_RIGHTWARDS_HARPOON_OVER_LEFTWARDS_HARPOON 0x21CC #define T_UTF_32_LEFTWARDS_DOUBLE_ARROW_WITH_STROKE 0x21CD #define T_UTF_32_LEFT_RIGHT_DOUBLE_ARROW_WITH_STROKE 0x21CE #define T_UTF_32_RIGHTWARDS_DOUBLE_ARROW_WITH_STROKE 0x21CF #define T_UTF_32_LEFTWARDS_DOUBLE_ARROW 0x21D0 #define T_UTF_32_UPWARDS_DOUBLE_ARROW 0x21D1 #define T_UTF_32_RIGHTWARDS_DOUBLE_ARROW 0x21D2 #define T_UTF_32_DOWNWARDS_DOUBLE_ARROW 0x21D3 #define T_UTF_32_LEFT_RIGHT_DOUBLE_ARROW 0x21D4 #define T_UTF_32_UP_DOWN_DOUBLE_ARROW 0x21D5 #define T_UTF_32_NORTH_WEST_DOUBLE_ARROW 0x21D6 #define T_UTF_32_NORTH_EAST_DOUBLE_ARROW 0x21D7 #define T_UTF_32_SOUTH_EAST_DOUBLE_ARROW 0x21D8 #define T_UTF_32_SOUTH_WEST_DOUBLE_ARROW 0x21D9 #define T_UTF_32_LEFTWARDS_TRIPLE_ARROW 0x21DA #define T_UTF_32_RIGHTWARDS_TRIPLE_ARROW 0x21DB #define T_UTF_32_LEFTWARDS_SQUIGGLE_ARROW 0x21DC #define T_UTF_32_RIGHTWARDS_SQUIGGLE_ARROW 0x21DD #define T_UTF_32_UPWARDS_ARROW_WITH_DOUBLE_STROKE 0x21DE #define T_UTF_32_DOWNWARDS_ARROW_WITH_DOUBLE_STROKE 0x21DF #define T_UTF_32_LEFTWARDS_DASHED_ARROW 0x21E0 #define T_UTF_32_UPWARDS_DASHED_ARROW 0x21E1 #define T_UTF_32_RIGHTWARDS_DASHED_ARROW 0x21E2 #define T_UTF_32_DOWNWARDS_DASHED_ARROW 0x21E3 #define T_UTF_32_LEFTWARDS_ARROW_TO_BAR 0x21E4 #define T_UTF_32_RIGHTWARDS_ARROW_TO_BAR 0x21E5 #define T_UTF_32_LEFTWARDS_WHITE_ARROW 0x21E6 #define T_UTF_32_UPWARDS_WHITE_ARROW 0x21E7 #define T_UTF_32_RIGHTWARDS_WHITE_ARROW 0x21E8 #define T_UTF_32_DOWNWARDS_WHITE_ARROW 0x21E9 #define T_UTF_32_UPWARDS_WHITE_ARROW_FROM_BAR 0x21EA #define T_UTF_32_UPWARDS_WHITE_ARROW_ON_PEDESTAL 0x21EB #define T_UTF_32_UPWARDS_WHITE_ARROW_ON_PEDESTAL_WITH_HORIZONTAL_BAR 0x21EC #define T_UTF_32_UPWARDS_WHITE_ARROW_ON_PEDESTAL_WITH_VERTICAL_BAR 0x21ED #define T_UTF_32_UPWARDS_WHITE_DOUBLE_ARROW 0x21EE #define T_UTF_32_UPWARDS_WHITE_DOUBLE_ARROW_ON_PEDESTAL 0x21EF #define T_UTF_32_RIGHTWARDS_WHITE_ARROW_FROM_WALL 0x21F0 #define T_UTF_32_NORTH_WEST_ARROW_TO_CORNER 0x21F1 #define T_UTF_32_SOUTH_EAST_ARROW_TO_CORNER 0x21F2 #define T_UTF_32_UP_DOWN_WHITE_ARROW 0x21F3 #define T_UTF_32_RIGHT_ARROW_WITH_SMALL_CIRCLE 0x21F4 #define T_UTF_32_DOWNWARDS_ARROW_LEFTWARDS_OF_UPWARDS_ARROW 0x21F5 #define T_UTF_32_THREE_RIGHTWARDS_ARROWS 0x21F6 #define T_UTF_32_LEFTWARDS_ARROW_WITH_VERTICAL_STROKE 0x21F7 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_VERTICAL_STROKE 0x21F8 #define T_UTF_32_LEFT_RIGHT_ARROW_WITH_VERTICAL_STROKE 0x21F9 #define T_UTF_32_LEFTWARDS_ARROW_WITH_DOUBLE_VERTICAL_STROKE 0x21FA #define T_UTF_32_RIGHTWARDS_ARROW_WITH_DOUBLE_VERTICAL_STROKE 0x21FB #define T_UTF_32_LEFT_RIGHT_ARROW_WITH_DOUBLE_VERTICAL_STROKE 0x21FC #define T_UTF_32_LEFTWARDS_OPEN_HEADED_ARROW 0x21FD #define T_UTF_32_RIGHTWARDS_OPEN_HEADED_ARROW 0x21FE #define T_UTF_32_LEFT_RIGHT_OPEN_HEADED_ARROW 0x21FF #define T_UTF_32_FOR_ALL 0x2200 #define T_UTF_32_COMPLEMENT 0x2201 #define T_UTF_32_PARTIAL_DIFFERENTIAL 0x2202 #define T_UTF_32_THERE_EXISTS 0x2203 #define T_UTF_32_THERE_DOES_NOT_EXIST 0x2204 #define T_UTF_32_EMPTY_SET 0x2205 #define T_UTF_32_INCREMENT 0x2206 #define T_UTF_32_NABLA 0x2207 #define T_UTF_32_ELEMENT_OF 0x2208 #define T_UTF_32_NOT_AN_ELEMENT_OF 0x2209 #define T_UTF_32_SMALL_ELEMENT_OF 0x220A #define T_UTF_32_CONTAINS_AS_MEMBER 0x220B #define T_UTF_32_DOES_NOT_CONTAIN_AS_MEMBER 0x220C #define T_UTF_32_SMALL_CONTAINS_AS_MEMBER 0x220D #define T_UTF_32_END_OF_PROOF 0x220E #define T_UTF_32_N_ARY_PRODUCT 0x220F #define T_UTF_32_N_ARY_COPRODUCT 0x2210 #define T_UTF_32_N_ARY_SUMMATION 0x2211 #define T_UTF_32_MINUS_SIGN 0x2212 #define T_UTF_32_MINUS_OR_PLUS_SIGN 0x2213 #define T_UTF_32_DOT_PLUS 0x2214 #define T_UTF_32_DIVISION_SLASH 0x2215 #define T_UTF_32_SET_MINUS 0x2216 #define T_UTF_32_ASTERISK_OPERATOR 0x2217 #define T_UTF_32_RING_OPERATOR 0x2218 #define T_UTF_32_BULLET_OPERATOR 0x2219 #define T_UTF_32_SQUARE_ROOT 0x221A #define T_UTF_32_CUBE_ROOT 0x221B #define T_UTF_32_FOURTH_ROOT 0x221C #define T_UTF_32_PROPORTIONAL_TO 0x221D #define T_UTF_32_INFINITY 0x221E #define T_UTF_32_RIGHT_ANGLE 0x221F #define T_UTF_32_ANGLE 0x2220 #define T_UTF_32_MEASURED_ANGLE 0x2221 #define T_UTF_32_SPHERICAL_ANGLE 0x2222 #define T_UTF_32_DIVIDES 0x2223 #define T_UTF_32_DOES_NOT_DIVIDE 0x2224 #define T_UTF_32_PARALLEL_TO 0x2225 #define T_UTF_32_NOT_PARALLEL_TO 0x2226 #define T_UTF_32_LOGICAL_AND 0x2227 #define T_UTF_32_LOGICAL_OR 0x2228 #define T_UTF_32_INTERSECTION 0x2229 #define T_UTF_32_UNION 0x222A #define T_UTF_32_INTEGRAL 0x222B #define T_UTF_32_DOUBLE_INTEGRAL 0x222C #define T_UTF_32_TRIPLE_INTEGRAL 0x222D #define T_UTF_32_CONTOUR_INTEGRAL 0x222E #define T_UTF_32_SURFACE_INTEGRAL 0x222F #define T_UTF_32_VOLUME_INTEGRAL 0x2230 #define T_UTF_32_CLOCKWISE_INTEGRAL 0x2231 #define T_UTF_32_CLOCKWISE_CONTOUR_INTEGRAL 0x2232 #define T_UTF_32_ANTICLOCKWISE_CONTOUR_INTEGRAL 0x2233 #define T_UTF_32_THEREFORE 0x2234 #define T_UTF_32_BECAUSE 0x2235 #define T_UTF_32_RATIO 0x2236 #define T_UTF_32_PROPORTION 0x2237 #define T_UTF_32_DOT_MINUS 0x2238 #define T_UTF_32_EXCESS 0x2239 #define T_UTF_32_GEOMETRIC_PROPORTION 0x223A #define T_UTF_32_HOMOTHETIC 0x223B #define T_UTF_32_TILDE_OPERATOR 0x223C #define T_UTF_32_REVERSED_TILDE 0x223D #define T_UTF_32_INVERTED_LAZY_S 0x223E #define T_UTF_32_SINE_WAVE 0x223F #define T_UTF_32_WREATH_PRODUCT 0x2240 #define T_UTF_32_NOT_TILDE 0x2241 #define T_UTF_32_MINUS_TILDE 0x2242 #define T_UTF_32_ASYMPTOTICALLY_EQUAL_TO 0x2243 #define T_UTF_32_NOT_ASYMPTOTICALLY_EQUAL_TO 0x2244 #define T_UTF_32_APPROXIMATELY_EQUAL_TO 0x2245 #define T_UTF_32_APPROXIMATELY_BUT_NOT_ACTUALLY_EQUAL_TO 0x2246 #define T_UTF_32_NEITHER_APPROXIMATELY_NOR_ACTUALLY_EQUAL_TO 0x2247 #define T_UTF_32_ALMOST_EQUAL_TO 0x2248 #define T_UTF_32_NOT_ALMOST_EQUAL_TO 0x2249 #define T_UTF_32_ALMOST_EQUAL_OR_EQUAL_TO 0x224A #define T_UTF_32_TRIPLE_TILDE 0x224B #define T_UTF_32_ALL_EQUAL_TO 0x224C #define T_UTF_32_EQUIVALENT_TO 0x224D #define T_UTF_32_GEOMETRICALLY_EQUIVALENT_TO 0x224E #define T_UTF_32_DIFFERENCE_BETWEEN 0x224F #define T_UTF_32_APPROACHES_THE_LIMIT 0x2250 #define T_UTF_32_GEOMETRICALLY_EQUAL_TO 0x2251 #define T_UTF_32_APPROXIMATELY_EQUAL_TO_OR_THE_IMAGE_OF 0x2252 #define T_UTF_32_IMAGE_OF_OR_APPROXIMATELY_EQUAL_TO 0x2253 #define T_UTF_32_COLON_EQUALS 0x2254 #define T_UTF_32_EQUALS_COLON 0x2255 #define T_UTF_32_RING_IN_EQUAL_TO 0x2256 #define T_UTF_32_RING_EQUAL_TO 0x2257 #define T_UTF_32_CORRESPONDS_TO 0x2258 #define T_UTF_32_ESTIMATES 0x2259 #define T_UTF_32_EQUIANGULAR_TO 0x225A #define T_UTF_32_STAR_EQUALS 0x225B #define T_UTF_32_DELTA_EQUAL_TO 0x225C #define T_UTF_32_EQUAL_TO_BY_DEFINITION 0x225D #define T_UTF_32_MEASURED_BY 0x225E #define T_UTF_32_QUESTIONED_EQUAL_TO 0x225F #define T_UTF_32_NOT_EQUAL_TO 0x2260 #define T_UTF_32_IDENTICAL_TO 0x2261 #define T_UTF_32_NOT_IDENTICAL_TO 0x2262 #define T_UTF_32_STRICTLY_EQUIVALENT_TO 0x2263 #define T_UTF_32_LESS_THAN_OR_EQUAL_TO 0x2264 #define T_UTF_32_GREATER_THAN_OR_EQUAL_TO 0x2265 #define T_UTF_32_LESS_THAN_OVER_EQUAL_TO 0x2266 #define T_UTF_32_GREATER_THAN_OVER_EQUAL_TO 0x2267 #define T_UTF_32_LESS_THAN_BUT_NOT_EQUAL_TO 0x2268 #define T_UTF_32_GREATER_THAN_BUT_NOT_EQUAL_TO 0x2269 #define T_UTF_32_MUCH_LESS_THAN 0x226A #define T_UTF_32_MUCH_GREATER_THAN 0x226B #define T_UTF_32_BETWEEN 0x226C #define T_UTF_32_NOT_EQUIVALENT_TO 0x226D #define T_UTF_32_NOT_LESS_THAN 0x226E #define T_UTF_32_NOT_GREATER_THAN 0x226F #define T_UTF_32_NEITHER_LESS_THAN_NOR_EQUAL_TO 0x2270 #define T_UTF_32_NEITHER_GREATER_THAN_NOR_EQUAL_TO 0x2271 #define T_UTF_32_LESS_THAN_OR_EQUIVALENT_TO 0x2272 #define T_UTF_32_GREATER_THAN_OR_EQUIVALENT_TO 0x2273 #define T_UTF_32_NEITHER_LESS_THAN_NOR_EQUIVALENT_TO 0x2274 #define T_UTF_32_NEITHER_GREATER_THAN_NOR_EQUIVALENT_TO 0x2275 #define T_UTF_32_LESS_THAN_OR_GREATER_THAN 0x2276 #define T_UTF_32_GREATER_THAN_OR_LESS_THAN 0x2277 #define T_UTF_32_NEITHER_LESS_THAN_NOR_GREATER_THAN 0x2278 #define T_UTF_32_NEITHER_GREATER_THAN_NOR_LESS_THAN 0x2279 #define T_UTF_32_PRECEDES 0x227A #define T_UTF_32_SUCCEEDS 0x227B #define T_UTF_32_PRECEDES_OR_EQUAL_TO 0x227C #define T_UTF_32_SUCCEEDS_OR_EQUAL_TO 0x227D #define T_UTF_32_PRECEDES_OR_EQUIVALENT_TO 0x227E #define T_UTF_32_SUCCEEDS_OR_EQUIVALENT_TO 0x227F #define T_UTF_32_DOES_NOT_PRECEDE 0x2280 #define T_UTF_32_DOES_NOT_SUCCEED 0x2281 #define T_UTF_32_SUBSET_OF 0x2282 #define T_UTF_32_SUPERSET_OF 0x2283 #define T_UTF_32_NOT_A_SUBSET_OF 0x2284 #define T_UTF_32_NOT_A_SUPERSET_OF 0x2285 #define T_UTF_32_SUBSET_OF_OR_EQUAL_TO 0x2286 #define T_UTF_32_SUPERSET_OF_OR_EQUAL_TO 0x2287 #define T_UTF_32_NEITHER_A_SUBSET_OF_NOR_EQUAL_TO 0x2288 #define T_UTF_32_NEITHER_A_SUPERSET_OF_NOR_EQUAL_TO 0x2289 #define T_UTF_32_SUBSET_OF_WITH_NOT_EQUAL_TO 0x228A #define T_UTF_32_SUPERSET_OF_WITH_NOT_EQUAL_TO 0x228B #define T_UTF_32_MULTISET 0x228C #define T_UTF_32_MULTISET_MULTIPLICATION 0x228D #define T_UTF_32_MULTISET_UNION 0x228E #define T_UTF_32_SQUARE_IMAGE_OF 0x228F #define T_UTF_32_SQUARE_ORIGINAL_OF 0x2290 #define T_UTF_32_SQUARE_IMAGE_OF_OR_EQUAL_TO 0x2291 #define T_UTF_32_SQUARE_ORIGINAL_OF_OR_EQUAL_TO 0x2292 #define T_UTF_32_SQUARE_CAP 0x2293 #define T_UTF_32_SQUARE_CUP 0x2294 #define T_UTF_32_CIRCLED_PLUS 0x2295 #define T_UTF_32_CIRCLED_MINUS 0x2296 #define T_UTF_32_CIRCLED_TIMES 0x2297 #define T_UTF_32_CIRCLED_DIVISION_SLASH 0x2298 #define T_UTF_32_CIRCLED_DOT_OPERATOR 0x2299 #define T_UTF_32_CIRCLED_RING_OPERATOR 0x229A #define T_UTF_32_CIRCLED_ASTERISK_OPERATOR 0x229B #define T_UTF_32_CIRCLED_EQUALS 0x229C #define T_UTF_32_CIRCLED_DASH 0x229D #define T_UTF_32_SQUARED_PLUS 0x229E #define T_UTF_32_SQUARED_MINUS 0x229F #define T_UTF_32_SQUARED_TIMES 0x22A0 #define T_UTF_32_SQUARED_DOT_OPERATOR 0x22A1 #define T_UTF_32_RIGHT_TACK 0x22A2 #define T_UTF_32_LEFT_TACK 0x22A3 #define T_UTF_32_DOWN_TACK 0x22A4 #define T_UTF_32_UP_TACK 0x22A5 #define T_UTF_32_ASSERTION 0x22A6 #define T_UTF_32_MODELS 0x22A7 #define T_UTF_32_TRUE 0x22A8 #define T_UTF_32_FORCES 0x22A9 #define T_UTF_32_TRIPLE_VERTICAL_BAR_RIGHT_TURNSTILE 0x22AA #define T_UTF_32_DOUBLE_VERTICAL_BAR_DOUBLE_RIGHT_TURNSTILE 0x22AB #define T_UTF_32_DOES_NOT_PROVE 0x22AC #define T_UTF_32_NOT_TRUE 0x22AD #define T_UTF_32_DOES_NOT_FORCE 0x22AE #define T_UTF_32_NEGATED_DOUBLE_VERTICAL_BAR_DOUBLE_RIGHT_TURNSTILE 0x22AF #define T_UTF_32_PRECEDES_UNDER_RELATION 0x22B0 #define T_UTF_32_SUCCEEDS_UNDER_RELATION 0x22B1 #define T_UTF_32_NORMAL_SUBGROUP_OF 0x22B2 #define T_UTF_32_CONTAINS_AS_NORMAL_SUBGROUP 0x22B3 #define T_UTF_32_NORMAL_SUBGROUP_OF_OR_EQUAL_TO 0x22B4 #define T_UTF_32_CONTAINS_AS_NORMAL_SUBGROUP_OR_EQUAL_TO 0x22B5 #define T_UTF_32_ORIGINAL_OF 0x22B6 #define T_UTF_32_IMAGE_OF 0x22B7 #define T_UTF_32_MULTIMAP 0x22B8 #define T_UTF_32_HERMITIAN_CONJUGATE_MATRIX 0x22B9 #define T_UTF_32_INTERCALATE 0x22BA #define T_UTF_32_XOR 0x22BB #define T_UTF_32_NAND 0x22BC #define T_UTF_32_NOR 0x22BD #define T_UTF_32_RIGHT_ANGLE_WITH_ARC 0x22BE #define T_UTF_32_RIGHT_TRIANGLE 0x22BF #define T_UTF_32_N_ARY_LOGICAL_AND 0x22C0 #define T_UTF_32_N_ARY_LOGICAL_OR 0x22C1 #define T_UTF_32_N_ARY_INTERSECTION 0x22C2 #define T_UTF_32_N_ARY_UNION 0x22C3 #define T_UTF_32_DIAMOND_OPERATOR 0x22C4 #define T_UTF_32_DOT_OPERATOR 0x22C5 #define T_UTF_32_STAR_OPERATOR 0x22C6 #define T_UTF_32_DIVISION_TIMES 0x22C7 #define T_UTF_32_BOWTIE 0x22C8 #define T_UTF_32_LEFT_NORMAL_FACTOR_SEMIDIRECT_PRODUCT 0x22C9 #define T_UTF_32_RIGHT_NORMAL_FACTOR_SEMIDIRECT_PRODUCT 0x22CA #define T_UTF_32_LEFT_SEMIDIRECT_PRODUCT 0x22CB #define T_UTF_32_RIGHT_SEMIDIRECT_PRODUCT 0x22CC #define T_UTF_32_REVERSED_TILDE_EQUALS 0x22CD #define T_UTF_32_CURLY_LOGICAL_OR 0x22CE #define T_UTF_32_CURLY_LOGICAL_AND 0x22CF #define T_UTF_32_DOUBLE_SUBSET 0x22D0 #define T_UTF_32_DOUBLE_SUPERSET 0x22D1 #define T_UTF_32_DOUBLE_INTERSECTION 0x22D2 #define T_UTF_32_DOUBLE_UNION 0x22D3 #define T_UTF_32_PITCHFORK 0x22D4 #define T_UTF_32_EQUAL_AND_PARALLEL_TO 0x22D5 #define T_UTF_32_LESS_THAN_WITH_DOT 0x22D6 #define T_UTF_32_GREATER_THAN_WITH_DOT 0x22D7 #define T_UTF_32_VERY_MUCH_LESS_THAN 0x22D8 #define T_UTF_32_VERY_MUCH_GREATER_THAN 0x22D9 #define T_UTF_32_LESS_THAN_EQUAL_TO_OR_GREATER_THAN 0x22DA #define T_UTF_32_GREATER_THAN_EQUAL_TO_OR_LESS_THAN 0x22DB #define T_UTF_32_EQUAL_TO_OR_LESS_THAN 0x22DC #define T_UTF_32_EQUAL_TO_OR_GREATER_THAN 0x22DD #define T_UTF_32_EQUAL_TO_OR_PRECEDES 0x22DE #define T_UTF_32_EQUAL_TO_OR_SUCCEEDS 0x22DF #define T_UTF_32_DOES_NOT_PRECEDE_OR_EQUAL 0x22E0 #define T_UTF_32_DOES_NOT_SUCCEED_OR_EQUAL 0x22E1 #define T_UTF_32_NOT_SQUARE_IMAGE_OF_OR_EQUAL_TO 0x22E2 #define T_UTF_32_NOT_SQUARE_ORIGINAL_OF_OR_EQUAL_TO 0x22E3 #define T_UTF_32_SQUARE_IMAGE_OF_OR_NOT_EQUAL_TO 0x22E4 #define T_UTF_32_SQUARE_ORIGINAL_OF_OR_NOT_EQUAL_TO 0x22E5 #define T_UTF_32_LESS_THAN_BUT_NOT_EQUIVALENT_TO 0x22E6 #define T_UTF_32_GREATER_THAN_BUT_NOT_EQUIVALENT_TO 0x22E7 #define T_UTF_32_PRECEDES_BUT_NOT_EQUIVALENT_TO 0x22E8 #define T_UTF_32_SUCCEEDS_BUT_NOT_EQUIVALENT_TO 0x22E9 #define T_UTF_32_NOT_NORMAL_SUBGROUP_OF 0x22EA #define T_UTF_32_DOES_NOT_CONTAIN_AS_NORMAL_SUBGROUP 0x22EB #define T_UTF_32_NOT_NORMAL_SUBGROUP_OF_OR_EQUAL_TO 0x22EC #define T_UTF_32_DOES_NOT_CONTAIN_AS_NORMAL_SUBGROUP_OR_EQUAL 0x22ED #define T_UTF_32_VERTICAL_ELLIPSIS 0x22EE #define T_UTF_32_MIDLINE_HORIZONTAL_ELLIPSIS 0x22EF #define T_UTF_32_UP_RIGHT_DIAGONAL_ELLIPSIS 0x22F0 #define T_UTF_32_DOWN_RIGHT_DIAGONAL_ELLIPSIS 0x22F1 #define T_UTF_32_ELEMENT_OF_WITH_LONG_HORIZONTAL_STROKE 0x22F2 #define T_UTF_32_ELEMENT_OF_WITH_VERTICAL_BAR_AT_END_OF_HORIZONTAL_STROKE 0x22F3 #define T_UTF_32_SMALL_ELEMENT_OF_WITH_VERTICAL_BAR_AT_END_OF_HORIZONTAL_STROKE 0x22F4 #define T_UTF_32_ELEMENT_OF_WITH_DOT_ABOVE 0x22F5 #define T_UTF_32_ELEMENT_OF_WITH_OVERBAR 0x22F6 #define T_UTF_32_SMALL_ELEMENT_OF_WITH_OVERBAR 0x22F7 #define T_UTF_32_ELEMENT_OF_WITH_UNDERBAR 0x22F8 #define T_UTF_32_ELEMENT_OF_WITH_TWO_HORIZONTAL_STROKES 0x22F9 #define T_UTF_32_CONTAINS_WITH_LONG_HORIZONTAL_STROKE 0x22FA #define T_UTF_32_CONTAINS_WITH_VERTICAL_BAR_AT_END_OF_HORIZONTAL_STROKE 0x22FB #define T_UTF_32_SMALL_CONTAINS_WITH_VERTICAL_BAR_AT_END_OF_HORIZONTAL_STROKE 0x22FC #define T_UTF_32_CONTAINS_WITH_OVERBAR 0x22FD #define T_UTF_32_SMALL_CONTAINS_WITH_OVERBAR 0x22FE #define T_UTF_32_Z_NOTATION_BAG_MEMBERSHIP 0x22FF #define T_UTF_32_DIAMETER_SIGN 0x2300 #define T_UTF_32_ELECTRIC_ARROW 0x2301 #define T_UTF_32_HOUSE 0x2302 #define T_UTF_32_UP_ARROWHEAD 0x2303 #define T_UTF_32_DOWN_ARROWHEAD 0x2304 #define T_UTF_32_PROJECTIVE 0x2305 #define T_UTF_32_PERSPECTIVE 0x2306 #define T_UTF_32_WAVY_LINE 0x2307 #define T_UTF_32_LEFT_CEILING 0x2308 #define T_UTF_32_RIGHT_CEILING 0x2309 #define T_UTF_32_LEFT_FLOOR 0x230A #define T_UTF_32_RIGHT_FLOOR 0x230B #define T_UTF_32_BOTTOM_RIGHT_CROP 0x230C #define T_UTF_32_BOTTOM_LEFT_CROP 0x230D #define T_UTF_32_TOP_RIGHT_CROP 0x230E #define T_UTF_32_TOP_LEFT_CROP 0x230F #define T_UTF_32_REVERSED_NOT_SIGN 0x2310 #define T_UTF_32_SQUARE_LOZENGE 0x2311 #define T_UTF_32_ARC 0x2312 #define T_UTF_32_SEGMENT 0x2313 #define T_UTF_32_SECTOR 0x2314 #define T_UTF_32_TELEPHONE_RECORDER 0x2315 #define T_UTF_32_POSITION_INDICATOR 0x2316 #define T_UTF_32_VIEWDATA_SQUARE 0x2317 #define T_UTF_32_PLACE_OF_INTEREST_SIGN 0x2318 #define T_UTF_32_TURNED_NOT_SIGN 0x2319 #define T_UTF_32_WATCH 0x231A #define T_UTF_32_HOURGLASS 0x231B #define T_UTF_32_TOP_LEFT_CORNER 0x231C #define T_UTF_32_TOP_RIGHT_CORNER 0x231D #define T_UTF_32_BOTTOM_LEFT_CORNER 0x231E #define T_UTF_32_BOTTOM_RIGHT_CORNER 0x231F #define T_UTF_32_TOP_HALF_INTEGRAL 0x2320 #define T_UTF_32_BOTTOM_HALF_INTEGRAL 0x2321 #define T_UTF_32_FROWN 0x2322 #define T_UTF_32_SMILE 0x2323 #define T_UTF_32_UP_ARROWHEAD_BETWEEN_TWO_HORIZONTAL_BARS 0x2324 #define T_UTF_32_OPTION_KEY 0x2325 #define T_UTF_32_ERASE_TO_THE_RIGHT 0x2326 #define T_UTF_32_X_IN_A_RECTANGLE_BOX 0x2327 #define T_UTF_32_KEYBOARD 0x2328 #define T_UTF_32_LEFT_POINTING_ANGLE_BRACKET 0x2329 #define T_UTF_32_RIGHT_POINTING_ANGLE_BRACKET 0x232A #define T_UTF_32_ERASE_TO_THE_LEFT 0x232B #define T_UTF_32_BENZENE_RING 0x232C #define T_UTF_32_CYLINDRICITY 0x232D #define T_UTF_32_ALL_AROUND_PROFILE 0x232E #define T_UTF_32_SYMMETRY 0x232F #define T_UTF_32_TOTAL_RUNOUT 0x2330 #define T_UTF_32_DIMENSION_ORIGIN 0x2331 #define T_UTF_32_CONICAL_TAPER 0x2332 #define T_UTF_32_SLOPE 0x2333 #define T_UTF_32_COUNTERBORE 0x2334 #define T_UTF_32_COUNTERSINK 0x2335 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_I_BEAM 0x2336 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_SQUISH_QUAD 0x2337 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_EQUAL 0x2338 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_DIVIDE 0x2339 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_DIAMOND 0x233A #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_JOT 0x233B #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_CIRCLE 0x233C #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_CIRCLE_STILE 0x233D #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_CIRCLE_JOT 0x233E #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_SLASH_BAR 0x233F #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_BACKSLASH_BAR 0x2340 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_SLASH 0x2341 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_BACKSLASH 0x2342 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_LESS_THAN 0x2343 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_GREATER_THAN 0x2344 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_LEFTWARDS_VANE 0x2345 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_RIGHTWARDS_VANE 0x2346 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_LEFTWARDS_ARROW 0x2347 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_RIGHTWARDS_ARROW 0x2348 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_CIRCLE_BACKSLASH 0x2349 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DOWN_TACK_UNDERBAR 0x234A #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DELTA_STILE 0x234B #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_DOWN_CARET 0x234C #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_DELTA 0x234D #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DOWN_TACK_JOT 0x234E #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_UPWARDS_VANE 0x234F #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_UPWARDS_ARROW 0x2350 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_UP_TACK_OVERBAR 0x2351 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DEL_STILE 0x2352 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_UP_CARET 0x2353 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_DEL 0x2354 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_UP_TACK_JOT 0x2355 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DOWNWARDS_VANE 0x2356 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_DOWNWARDS_ARROW 0x2357 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUOTE_UNDERBAR 0x2358 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DELTA_UNDERBAR 0x2359 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DIAMOND_UNDERBAR 0x235A #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_JOT_UNDERBAR 0x235B #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_CIRCLE_UNDERBAR 0x235C #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_UP_SHOE_JOT 0x235D #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUOTE_QUAD 0x235E #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_CIRCLE_STAR 0x235F #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_COLON 0x2360 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_UP_TACK_DIAERESIS 0x2361 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DEL_DIAERESIS 0x2362 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_STAR_DIAERESIS 0x2363 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_JOT_DIAERESIS 0x2364 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_CIRCLE_DIAERESIS 0x2365 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DOWN_SHOE_STILE 0x2366 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_LEFT_SHOE_STILE 0x2367 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_TILDE_DIAERESIS 0x2368 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_GREATER_THAN_DIAERESIS 0x2369 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_COMMA_BAR 0x236A #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DEL_TILDE 0x236B #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_ZILDE 0x236C #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_STILE_TILDE 0x236D #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_SEMICOLON_UNDERBAR 0x236E #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_NOT_EQUAL 0x236F #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD_QUESTION 0x2370 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_DOWN_CARET_TILDE 0x2371 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_UP_CARET_TILDE 0x2372 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_IOTA 0x2373 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_RHO 0x2374 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_OMEGA 0x2375 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_ALPHA_UNDERBAR 0x2376 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_EPSILON_UNDERBAR 0x2377 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_IOTA_UNDERBAR 0x2378 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_OMEGA_UNDERBAR 0x2379 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_ALPHA 0x237A #define T_UTF_32_NOT_CHECK_MARK 0x237B #define T_UTF_32_RIGHT_ANGLE_WITH_DOWNWARDS_ZIGZAG_ARROW 0x237C #define T_UTF_32_SHOULDERED_OPEN_BOX 0x237D #define T_UTF_32_BELL_SYMBOL 0x237E #define T_UTF_32_VERTICAL_LINE_WITH_MIDDLE_DOT 0x237F #define T_UTF_32_INSERTION_SYMBOL 0x2380 #define T_UTF_32_CONTINUOUS_UNDERLINE_SYMBOL 0x2381 #define T_UTF_32_DISCONTINUOUS_UNDERLINE_SYMBOL 0x2382 #define T_UTF_32_EMPHASIS_SYMBOL 0x2383 #define T_UTF_32_COMPOSITION_SYMBOL 0x2384 #define T_UTF_32_WHITE_SQUARE_WITH_CENTRE_VERTICAL_LINE 0x2385 #define T_UTF_32_ENTER_SYMBOL 0x2386 #define T_UTF_32_ALTERNATIVE_KEY_SYMBOL 0x2387 #define T_UTF_32_HELM_SYMBOL 0x2388 #define T_UTF_32_CIRCLED_HORIZONTAL_BAR_WITH_NOTCH 0x2389 #define T_UTF_32_CIRCLED_TRIANGLE_DOWN 0x238A #define T_UTF_32_BROKEN_CIRCLE_WITH_NORTHWEST_ARROW 0x238B #define T_UTF_32_UNDO_SYMBOL 0x238C #define T_UTF_32_MONOSTABLE_SYMBOL 0x238D #define T_UTF_32_HYSTERESIS_SYMBOL 0x238E #define T_UTF_32_OPEN_CIRCUIT_OUTPUT_H_TYPE_SYMBOL 0x238F #define T_UTF_32_OPEN_CIRCUIT_OUTPUT_L_TYPE_SYMBOL 0x2390 #define T_UTF_32_PASSIVE_PULL_DOWN_OUTPUT_SYMBOL 0x2391 #define T_UTF_32_PASSIVE_PULL_UP_OUTPUT_SYMBOL 0x2392 #define T_UTF_32_DIRECT_CURRENT_SYMBOL_FORM_TWO 0x2393 #define T_UTF_32_SOFTWARE_FUNCTION_SYMBOL 0x2394 #define T_UTF_32_APL_FUNCTIONAL_SYMBOL_QUAD 0x2395 #define T_UTF_32_DECIMAL_SEPARATOR_KEY_SYMBOL 0x2396 #define T_UTF_32_PREVIOUS_PAGE 0x2397 #define T_UTF_32_NEXT_PAGE 0x2398 #define T_UTF_32_PRINT_SCREEN_SYMBOL 0x2399 #define T_UTF_32_CLEAR_SCREEN_SYMBOL 0x239A #define T_UTF_32_LEFT_PARENTHESIS_UPPER_HOOK 0x239B #define T_UTF_32_LEFT_PARENTHESIS_EXTENSION 0x239C #define T_UTF_32_LEFT_PARENTHESIS_LOWER_HOOK 0x239D #define T_UTF_32_RIGHT_PARENTHESIS_UPPER_HOOK 0x239E #define T_UTF_32_RIGHT_PARENTHESIS_EXTENSION 0x239F #define T_UTF_32_RIGHT_PARENTHESIS_LOWER_HOOK 0x23A0 #define T_UTF_32_LEFT_SQUARE_BRACKET_UPPER_CORNER 0x23A1 #define T_UTF_32_LEFT_SQUARE_BRACKET_EXTENSION 0x23A2 #define T_UTF_32_LEFT_SQUARE_BRACKET_LOWER_CORNER 0x23A3 #define T_UTF_32_RIGHT_SQUARE_BRACKET_UPPER_CORNER 0x23A4 #define T_UTF_32_RIGHT_SQUARE_BRACKET_EXTENSION 0x23A5 #define T_UTF_32_RIGHT_SQUARE_BRACKET_LOWER_CORNER 0x23A6 #define T_UTF_32_LEFT_CURLY_BRACKET_UPPER_HOOK 0x23A7 #define T_UTF_32_LEFT_CURLY_BRACKET_MIDDLE_PIECE 0x23A8 #define T_UTF_32_LEFT_CURLY_BRACKET_LOWER_HOOK 0x23A9 #define T_UTF_32_CURLY_BRACKET_EXTENSION 0x23AA #define T_UTF_32_RIGHT_CURLY_BRACKET_UPPER_HOOK 0x23AB #define T_UTF_32_RIGHT_CURLY_BRACKET_MIDDLE_PIECE 0x23AC #define T_UTF_32_RIGHT_CURLY_BRACKET_LOWER_HOOK 0x23AD #define T_UTF_32_INTEGRAL_EXTENSION 0x23AE #define T_UTF_32_HORIZONTAL_LINE_EXTENSION 0x23AF #define T_UTF_32_UPPER_LEFT_OR_LOWER_RIGHT_CURLY_BRACKET_SECTION 0x23B0 #define T_UTF_32_UPPER_RIGHT_OR_LOWER_LEFT_CURLY_BRACKET_SECTION 0x23B1 #define T_UTF_32_SUMMATION_TOP 0x23B2 #define T_UTF_32_SUMMATION_BOTTOM 0x23B3 #define T_UTF_32_TOP_SQUARE_BRACKET 0x23B4 #define T_UTF_32_BOTTOM_SQUARE_BRACKET 0x23B5 #define T_UTF_32_BOTTOM_SQUARE_BRACKET_OVER_TOP_SQUARE_BRACKET 0x23B6 #define T_UTF_32_RADICAL_SYMBOL_BOTTOM 0x23B7 #define T_UTF_32_LEFT_VERTICAL_BOX_LINE 0x23B8 #define T_UTF_32_RIGHT_VERTICAL_BOX_LINE 0x23B9 #define T_UTF_32_HORIZONTAL_SCAN_LINE_1 0x23BA #define T_UTF_32_HORIZONTAL_SCAN_LINE_3 0x23BB #define T_UTF_32_HORIZONTAL_SCAN_LINE_7 0x23BC #define T_UTF_32_HORIZONTAL_SCAN_LINE_9 0x23BD #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_VERTICAL_AND_TOP_RIGHT 0x23BE #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_VERTICAL_AND_BOTTOM_RIGHT 0x23BF #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_VERTICAL_WITH_CIRCLE 0x23C0 #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_DOWN_AND_HORIZONTAL_WITH_CIRCLE 0x23C1 #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_UP_AND_HORIZONTAL_WITH_CIRCLE 0x23C2 #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_VERTICAL_WITH_TRIANGLE 0x23C3 #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_DOWN_AND_HORIZONTAL_WITH_TRIANGLE 0x23C4 #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_UP_AND_HORIZONTAL_WITH_TRIANGLE 0x23C5 #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_VERTICAL_AND_WAVE 0x23C6 #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_DOWN_AND_HORIZONTAL_WITH_WAVE 0x23C7 #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_UP_AND_HORIZONTAL_WITH_WAVE 0x23C8 #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_DOWN_AND_HORIZONTAL 0x23C9 #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_UP_AND_HORIZONTAL 0x23CA #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_VERTICAL_AND_TOP_LEFT 0x23CB #define T_UTF_32_DENTISTRY_SYMBOL_LIGHT_VERTICAL_AND_BOTTOM_LEFT 0x23CC #define T_UTF_32_SQUARE_FOOT 0x23CD #define T_UTF_32_RETURN_SYMBOL 0x23CE #define T_UTF_32_EJECT_SYMBOL 0x23CF #define T_UTF_32_VERTICAL_LINE_EXTENSION 0x23D0 #define T_UTF_32_METRICAL_BREVE 0x23D1 #define T_UTF_32_METRICAL_LONG_OVER_SHORT 0x23D2 #define T_UTF_32_METRICAL_SHORT_OVER_LONG 0x23D3 #define T_UTF_32_METRICAL_LONG_OVER_TWO_SHORTS 0x23D4 #define T_UTF_32_METRICAL_TWO_SHORTS_OVER_LONG 0x23D5 #define T_UTF_32_METRICAL_TWO_SHORTS_JOINED 0x23D6 #define T_UTF_32_METRICAL_TRISEME 0x23D7 #define T_UTF_32_METRICAL_TETRASEME 0x23D8 #define T_UTF_32_METRICAL_PENTASEME 0x23D9 #define T_UTF_32_EARTH_GROUND 0x23DA #define T_UTF_32_FUSE 0x23DB #define T_UTF_32_TOP_PARENTHESIS 0x23DC #define T_UTF_32_BOTTOM_PARENTHESIS 0x23DD #define T_UTF_32_TOP_CURLY_BRACKET 0x23DE #define T_UTF_32_BOTTOM_CURLY_BRACKET 0x23DF #define T_UTF_32_TOP_TORTOISE_SHELL_BRACKET 0x23E0 #define T_UTF_32_BOTTOM_TORTOISE_SHELL_BRACKET 0x23E1 #define T_UTF_32_WHITE_TRAPEZIUM 0x23E2 #define T_UTF_32_BENZENE_RING_WITH_CIRCLE 0x23E3 #define T_UTF_32_STRAIGHTNESS 0x23E4 #define T_UTF_32_FLATNESS 0x23E5 #define T_UTF_32_AC_CURRENT 0x23E6 #define T_UTF_32_ELECTRICAL_INTERSECTION 0x23E7 #define T_UTF_32_DECIMAL_EXPONENT_SYMBOL 0x23E8 #define T_UTF_32_BLACK_RIGHT_POINTING_DOUBLE_TRIANGLE 0x23E9 #define T_UTF_32_BLACK_LEFT_POINTING_DOUBLE_TRIANGLE 0x23EA #define T_UTF_32_BLACK_UP_POINTING_DOUBLE_TRIANGLE 0x23EB #define T_UTF_32_BLACK_DOWN_POINTING_DOUBLE_TRIANGLE 0x23EC #define T_UTF_32_BLACK_RIGHT_POINTING_DOUBLE_TRIANGLE_WITH_VERTICAL_BAR 0x23ED #define T_UTF_32_BLACK_LEFT_POINTING_DOUBLE_TRIANGLE_WITH_VERTICAL_BAR 0x23EE #define T_UTF_32_BLACK_RIGHT_POINTING_TRIANGLE_WITH_DOUBLE_VERTICAL_BAR 0x23EF #define T_UTF_32_ALARM_CLOCK 0x23F0 #define T_UTF_32_STOPWATCH 0x23F1 #define T_UTF_32_TIMER_CLOCK 0x23F2 #define T_UTF_32_HOURGLASS_WITH_FLOWING_SAND 0x23F3 #define T_UTF_32_BLACK_MEDIUM_LEFT_POINTING_TRIANGLE 0x23F4 #define T_UTF_32_BLACK_MEDIUM_RIGHT_POINTING_TRIANGLE 0x23F5 #define T_UTF_32_BLACK_MEDIUM_UP_POINTING_TRIANGLE 0x23F6 #define T_UTF_32_BLACK_MEDIUM_DOWN_POINTING_TRIANGLE 0x23F7 #define T_UTF_32_DOUBLE_VERTICAL_BAR 0x23F8 #define T_UTF_32_BLACK_SQUARE_FOR_STOP 0x23F9 #define T_UTF_32_BLACK_CIRCLE_FOR_RECORD 0x23FA #define T_UTF_32_POWER_SYMBOL 0x23FB #define T_UTF_32_POWER_ON_OFF_SYMBOL 0x23FC #define T_UTF_32_POWER_ON_SYMBOL 0x23FD #define T_UTF_32_POWER_SLEEP_SYMBOL 0x23FE #define T_UTF_32_OBSERVER_EYE_SYMBOL 0x23FF #define T_UTF_32_SYMBOL_FOR_NULL 0x2400 #define T_UTF_32_SYMBOL_FOR_START_OF_HEADING 0x2401 #define T_UTF_32_SYMBOL_FOR_START_OF_TEXT 0x2402 #define T_UTF_32_SYMBOL_FOR_END_OF_TEXT 0x2403 #define T_UTF_32_SYMBOL_FOR_END_OF_TRANSMISSION 0x2404 #define T_UTF_32_SYMBOL_FOR_ENQUIRY 0x2405 #define T_UTF_32_SYMBOL_FOR_ACKNOWLEDGE 0x2406 #define T_UTF_32_SYMBOL_FOR_BELL 0x2407 #define T_UTF_32_SYMBOL_FOR_BACKSPACE 0x2408 #define T_UTF_32_SYMBOL_FOR_HORIZONTAL_TABULATION 0x2409 #define T_UTF_32_SYMBOL_FOR_LINE_FEED 0x240A #define T_UTF_32_SYMBOL_FOR_VERTICAL_TABULATION 0x240B #define T_UTF_32_SYMBOL_FOR_FORM_FEED 0x240C #define T_UTF_32_SYMBOL_FOR_CARRIAGE_RETURN 0x240D #define T_UTF_32_SYMBOL_FOR_SHIFT_OUT 0x240E #define T_UTF_32_SYMBOL_FOR_SHIFT_IN 0x240F #define T_UTF_32_SYMBOL_FOR_DATA_LINK_ESCAPE 0x2410 #define T_UTF_32_SYMBOL_FOR_DEVICE_CONTROL_ONE 0x2411 #define T_UTF_32_SYMBOL_FOR_DEVICE_CONTROL_TWO 0x2412 #define T_UTF_32_SYMBOL_FOR_DEVICE_CONTROL_THREE 0x2413 #define T_UTF_32_SYMBOL_FOR_DEVICE_CONTROL_FOUR 0x2414 #define T_UTF_32_SYMBOL_FOR_NEGATIVE_ACKNOWLEDGE 0x2415 #define T_UTF_32_SYMBOL_FOR_SYNCHRONOUS_IDLE 0x2416 #define T_UTF_32_SYMBOL_FOR_END_OF_TRANSMISSION_BLOCK 0x2417 #define T_UTF_32_SYMBOL_FOR_CANCEL 0x2418 #define T_UTF_32_SYMBOL_FOR_END_OF_MEDIUM 0x2419 #define T_UTF_32_SYMBOL_FOR_SUBSTITUTE 0x241A #define T_UTF_32_SYMBOL_FOR_ESCAPE 0x241B #define T_UTF_32_SYMBOL_FOR_FILE_SEPARATOR 0x241C #define T_UTF_32_SYMBOL_FOR_GROUP_SEPARATOR 0x241D #define T_UTF_32_SYMBOL_FOR_RECORD_SEPARATOR 0x241E #define T_UTF_32_SYMBOL_FOR_UNIT_SEPARATOR 0x241F #define T_UTF_32_SYMBOL_FOR_SPACE 0x2420 #define T_UTF_32_SYMBOL_FOR_DELETE 0x2421 #define T_UTF_32_BLANK_SYMBOL 0x2422 #define T_UTF_32_OPEN_BOX 0x2423 #define T_UTF_32_SYMBOL_FOR_NEWLINE 0x2424 #define T_UTF_32_SYMBOL_FOR_DELETE_FORM_TWO 0x2425 #define T_UTF_32_SYMBOL_FOR_SUBSTITUTE_FORM_TWO 0x2426 #define T_UTF_32_OCR_HOOK 0x2440 #define T_UTF_32_OCR_CHAIR 0x2441 #define T_UTF_32_OCR_FORK 0x2442 #define T_UTF_32_OCR_INVERTED_FORK 0x2443 #define T_UTF_32_OCR_BELT_BUCKLE 0x2444 #define T_UTF_32_OCR_BOW_TIE 0x2445 #define T_UTF_32_OCR_BRANCH_BANK_IDENTIFICATION 0x2446 #define T_UTF_32_OCR_AMOUNT_OF_CHECK 0x2447 #define T_UTF_32_OCR_DASH 0x2448 #define T_UTF_32_OCR_CUSTOMER_ACCOUNT_NUMBER 0x2449 #define T_UTF_32_OCR_DOUBLE_BACKSLASH 0x244A #define T_UTF_32_CIRCLED_DIGIT_ONE 0x2460 #define T_UTF_32_CIRCLED_DIGIT_TWO 0x2461 #define T_UTF_32_CIRCLED_DIGIT_THREE 0x2462 #define T_UTF_32_CIRCLED_DIGIT_FOUR 0x2463 #define T_UTF_32_CIRCLED_DIGIT_FIVE 0x2464 #define T_UTF_32_CIRCLED_DIGIT_SIX 0x2465 #define T_UTF_32_CIRCLED_DIGIT_SEVEN 0x2466 #define T_UTF_32_CIRCLED_DIGIT_EIGHT 0x2467 #define T_UTF_32_CIRCLED_DIGIT_NINE 0x2468 #define T_UTF_32_CIRCLED_NUMBER_TEN 0x2469 #define T_UTF_32_CIRCLED_NUMBER_ELEVEN 0x246A #define T_UTF_32_CIRCLED_NUMBER_TWELVE 0x246B #define T_UTF_32_CIRCLED_NUMBER_THIRTEEN 0x246C #define T_UTF_32_CIRCLED_NUMBER_FOURTEEN 0x246D #define T_UTF_32_CIRCLED_NUMBER_FIFTEEN 0x246E #define T_UTF_32_CIRCLED_NUMBER_SIXTEEN 0x246F #define T_UTF_32_CIRCLED_NUMBER_SEVENTEEN 0x2470 #define T_UTF_32_CIRCLED_NUMBER_EIGHTEEN 0x2471 #define T_UTF_32_CIRCLED_NUMBER_NINETEEN 0x2472 #define T_UTF_32_CIRCLED_NUMBER_TWENTY 0x2473 #define T_UTF_32_PARENTHESIZED_DIGIT_ONE 0x2474 #define T_UTF_32_PARENTHESIZED_DIGIT_TWO 0x2475 #define T_UTF_32_PARENTHESIZED_DIGIT_THREE 0x2476 #define T_UTF_32_PARENTHESIZED_DIGIT_FOUR 0x2477 #define T_UTF_32_PARENTHESIZED_DIGIT_FIVE 0x2478 #define T_UTF_32_PARENTHESIZED_DIGIT_SIX 0x2479 #define T_UTF_32_PARENTHESIZED_DIGIT_SEVEN 0x247A #define T_UTF_32_PARENTHESIZED_DIGIT_EIGHT 0x247B #define T_UTF_32_PARENTHESIZED_DIGIT_NINE 0x247C #define T_UTF_32_PARENTHESIZED_NUMBER_TEN 0x247D #define T_UTF_32_PARENTHESIZED_NUMBER_ELEVEN 0x247E #define T_UTF_32_PARENTHESIZED_NUMBER_TWELVE 0x247F #define T_UTF_32_PARENTHESIZED_NUMBER_THIRTEEN 0x2480 #define T_UTF_32_PARENTHESIZED_NUMBER_FOURTEEN 0x2481 #define T_UTF_32_PARENTHESIZED_NUMBER_FIFTEEN 0x2482 #define T_UTF_32_PARENTHESIZED_NUMBER_SIXTEEN 0x2483 #define T_UTF_32_PARENTHESIZED_NUMBER_SEVENTEEN 0x2484 #define T_UTF_32_PARENTHESIZED_NUMBER_EIGHTEEN 0x2485 #define T_UTF_32_PARENTHESIZED_NUMBER_NINETEEN 0x2486 #define T_UTF_32_PARENTHESIZED_NUMBER_TWENTY 0x2487 #define T_UTF_32_DIGIT_ONE_FULL_STOP 0x2488 #define T_UTF_32_DIGIT_TWO_FULL_STOP 0x2489 #define T_UTF_32_DIGIT_THREE_FULL_STOP 0x248A #define T_UTF_32_DIGIT_FOUR_FULL_STOP 0x248B #define T_UTF_32_DIGIT_FIVE_FULL_STOP 0x248C #define T_UTF_32_DIGIT_SIX_FULL_STOP 0x248D #define T_UTF_32_DIGIT_SEVEN_FULL_STOP 0x248E #define T_UTF_32_DIGIT_EIGHT_FULL_STOP 0x248F #define T_UTF_32_DIGIT_NINE_FULL_STOP 0x2490 #define T_UTF_32_NUMBER_TEN_FULL_STOP 0x2491 #define T_UTF_32_NUMBER_ELEVEN_FULL_STOP 0x2492 #define T_UTF_32_NUMBER_TWELVE_FULL_STOP 0x2493 #define T_UTF_32_NUMBER_THIRTEEN_FULL_STOP 0x2494 #define T_UTF_32_NUMBER_FOURTEEN_FULL_STOP 0x2495 #define T_UTF_32_NUMBER_FIFTEEN_FULL_STOP 0x2496 #define T_UTF_32_NUMBER_SIXTEEN_FULL_STOP 0x2497 #define T_UTF_32_NUMBER_SEVENTEEN_FULL_STOP 0x2498 #define T_UTF_32_NUMBER_EIGHTEEN_FULL_STOP 0x2499 #define T_UTF_32_NUMBER_NINETEEN_FULL_STOP 0x249A #define T_UTF_32_NUMBER_TWENTY_FULL_STOP 0x249B #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_A 0x249C #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_B 0x249D #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_C 0x249E #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_D 0x249F #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_E 0x24A0 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_F 0x24A1 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_G 0x24A2 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_H 0x24A3 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_I 0x24A4 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_J 0x24A5 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_K 0x24A6 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_L 0x24A7 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_M 0x24A8 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_N 0x24A9 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_O 0x24AA #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_P 0x24AB #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_Q 0x24AC #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_R 0x24AD #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_S 0x24AE #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_T 0x24AF #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_U 0x24B0 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_V 0x24B1 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_W 0x24B2 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_X 0x24B3 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_Y 0x24B4 #define T_UTF_32_PARENTHESIZED_LATIN_SMALL_LETTER_Z 0x24B5 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_A 0x24B6 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_B 0x24B7 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_C 0x24B8 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_D 0x24B9 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_E 0x24BA #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_F 0x24BB #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_G 0x24BC #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_H 0x24BD #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_I 0x24BE #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_J 0x24BF #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_K 0x24C0 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_L 0x24C1 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_M 0x24C2 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_N 0x24C3 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_O 0x24C4 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_P 0x24C5 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_Q 0x24C6 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_R 0x24C7 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_S 0x24C8 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_T 0x24C9 #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_U 0x24CA #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_V 0x24CB #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_W 0x24CC #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_X 0x24CD #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_Y 0x24CE #define T_UTF_32_CIRCLED_LATIN_CAPITAL_LETTER_Z 0x24CF #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_A 0x24D0 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_B 0x24D1 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_C 0x24D2 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_D 0x24D3 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_E 0x24D4 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_F 0x24D5 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_G 0x24D6 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_H 0x24D7 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_I 0x24D8 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_J 0x24D9 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_K 0x24DA #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_L 0x24DB #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_M 0x24DC #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_N 0x24DD #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_O 0x24DE #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_P 0x24DF #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_Q 0x24E0 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_R 0x24E1 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_S 0x24E2 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_T 0x24E3 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_U 0x24E4 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_V 0x24E5 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_W 0x24E6 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_X 0x24E7 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_Y 0x24E8 #define T_UTF_32_CIRCLED_LATIN_SMALL_LETTER_Z 0x24E9 #define T_UTF_32_CIRCLED_DIGIT_ZERO 0x24EA #define T_UTF_32_NEGATIVE_CIRCLED_NUMBER_ELEVEN 0x24EB #define T_UTF_32_NEGATIVE_CIRCLED_NUMBER_TWELVE 0x24EC #define T_UTF_32_NEGATIVE_CIRCLED_NUMBER_THIRTEEN 0x24ED #define T_UTF_32_NEGATIVE_CIRCLED_NUMBER_FOURTEEN 0x24EE #define T_UTF_32_NEGATIVE_CIRCLED_NUMBER_FIFTEEN 0x24EF #define T_UTF_32_NEGATIVE_CIRCLED_NUMBER_SIXTEEN 0x24F0 #define T_UTF_32_NEGATIVE_CIRCLED_NUMBER_SEVENTEEN 0x24F1 #define T_UTF_32_NEGATIVE_CIRCLED_NUMBER_EIGHTEEN 0x24F2 #define T_UTF_32_NEGATIVE_CIRCLED_NUMBER_NINETEEN 0x24F3 #define T_UTF_32_NEGATIVE_CIRCLED_NUMBER_TWENTY 0x24F4 #define T_UTF_32_DOUBLE_CIRCLED_DIGIT_ONE 0x24F5 #define T_UTF_32_DOUBLE_CIRCLED_DIGIT_TWO 0x24F6 #define T_UTF_32_DOUBLE_CIRCLED_DIGIT_THREE 0x24F7 #define T_UTF_32_DOUBLE_CIRCLED_DIGIT_FOUR 0x24F8 #define T_UTF_32_DOUBLE_CIRCLED_DIGIT_FIVE 0x24F9 #define T_UTF_32_DOUBLE_CIRCLED_DIGIT_SIX 0x24FA #define T_UTF_32_DOUBLE_CIRCLED_DIGIT_SEVEN 0x24FB #define T_UTF_32_DOUBLE_CIRCLED_DIGIT_EIGHT 0x24FC #define T_UTF_32_DOUBLE_CIRCLED_DIGIT_NINE 0x24FD #define T_UTF_32_DOUBLE_CIRCLED_NUMBER_TEN 0x24FE #define T_UTF_32_NEGATIVE_CIRCLED_DIGIT_ZERO 0x24FF #define T_UTF_32_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x2500 #define T_UTF_32_BOX_DRAWINGS_HEAVY_HORIZONTAL 0x2501 #define T_UTF_32_BOX_DRAWINGS_LIGHT_VERTICAL 0x2502 #define T_UTF_32_BOX_DRAWINGS_HEAVY_VERTICAL 0x2503 #define T_UTF_32_BOX_DRAWINGS_LIGHT_TRIPLE_DASH_HORIZONTAL 0x2504 #define T_UTF_32_BOX_DRAWINGS_HEAVY_TRIPLE_DASH_HORIZONTAL 0x2505 #define T_UTF_32_BOX_DRAWINGS_LIGHT_TRIPLE_DASH_VERTICAL 0x2506 #define T_UTF_32_BOX_DRAWINGS_HEAVY_TRIPLE_DASH_VERTICAL 0x2507 #define T_UTF_32_BOX_DRAWINGS_LIGHT_QUADRUPLE_DASH_HORIZONTAL 0x2508 #define T_UTF_32_BOX_DRAWINGS_HEAVY_QUADRUPLE_DASH_HORIZONTAL 0x2509 #define T_UTF_32_BOX_DRAWINGS_LIGHT_QUADRUPLE_DASH_VERTICAL 0x250A #define T_UTF_32_BOX_DRAWINGS_HEAVY_QUADRUPLE_DASH_VERTICAL 0x250B #define T_UTF_32_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x250C #define T_UTF_32_BOX_DRAWINGS_DOWN_LIGHT_AND_RIGHT_HEAVY 0x250D #define T_UTF_32_BOX_DRAWINGS_DOWN_HEAVY_AND_RIGHT_LIGHT 0x250E #define T_UTF_32_BOX_DRAWINGS_HEAVY_DOWN_AND_RIGHT 0x250F #define T_UTF_32_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x2510 #define T_UTF_32_BOX_DRAWINGS_DOWN_LIGHT_AND_LEFT_HEAVY 0x2511 #define T_UTF_32_BOX_DRAWINGS_DOWN_HEAVY_AND_LEFT_LIGHT 0x2512 #define T_UTF_32_BOX_DRAWINGS_HEAVY_DOWN_AND_LEFT 0x2513 #define T_UTF_32_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x2514 #define T_UTF_32_BOX_DRAWINGS_UP_LIGHT_AND_RIGHT_HEAVY 0x2515 #define T_UTF_32_BOX_DRAWINGS_UP_HEAVY_AND_RIGHT_LIGHT 0x2516 #define T_UTF_32_BOX_DRAWINGS_HEAVY_UP_AND_RIGHT 0x2517 #define T_UTF_32_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x2518 #define T_UTF_32_BOX_DRAWINGS_UP_LIGHT_AND_LEFT_HEAVY 0x2519 #define T_UTF_32_BOX_DRAWINGS_UP_HEAVY_AND_LEFT_LIGHT 0x251A #define T_UTF_32_BOX_DRAWINGS_HEAVY_UP_AND_LEFT 0x251B #define T_UTF_32_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x251C #define T_UTF_32_BOX_DRAWINGS_VERTICAL_LIGHT_AND_RIGHT_HEAVY 0x251D #define T_UTF_32_BOX_DRAWINGS_UP_HEAVY_AND_RIGHT_DOWN_LIGHT 0x251E #define T_UTF_32_BOX_DRAWINGS_DOWN_HEAVY_AND_RIGHT_UP_LIGHT 0x251F #define T_UTF_32_BOX_DRAWINGS_VERTICAL_HEAVY_AND_RIGHT_LIGHT 0x2520 #define T_UTF_32_BOX_DRAWINGS_DOWN_LIGHT_AND_RIGHT_UP_HEAVY 0x2521 #define T_UTF_32_BOX_DRAWINGS_UP_LIGHT_AND_RIGHT_DOWN_HEAVY 0x2522 #define T_UTF_32_BOX_DRAWINGS_HEAVY_VERTICAL_AND_RIGHT 0x2523 #define T_UTF_32_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x2524 #define T_UTF_32_BOX_DRAWINGS_VERTICAL_LIGHT_AND_LEFT_HEAVY 0x2525 #define T_UTF_32_BOX_DRAWINGS_UP_HEAVY_AND_LEFT_DOWN_LIGHT 0x2526 #define T_UTF_32_BOX_DRAWINGS_DOWN_HEAVY_AND_LEFT_UP_LIGHT 0x2527 #define T_UTF_32_BOX_DRAWINGS_VERTICAL_HEAVY_AND_LEFT_LIGHT 0x2528 #define T_UTF_32_BOX_DRAWINGS_DOWN_LIGHT_AND_LEFT_UP_HEAVY 0x2529 #define T_UTF_32_BOX_DRAWINGS_UP_LIGHT_AND_LEFT_DOWN_HEAVY 0x252A #define T_UTF_32_BOX_DRAWINGS_HEAVY_VERTICAL_AND_LEFT 0x252B #define T_UTF_32_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x252C #define T_UTF_32_BOX_DRAWINGS_LEFT_HEAVY_AND_RIGHT_DOWN_LIGHT 0x252D #define T_UTF_32_BOX_DRAWINGS_RIGHT_HEAVY_AND_LEFT_DOWN_LIGHT 0x252E #define T_UTF_32_BOX_DRAWINGS_DOWN_LIGHT_AND_HORIZONTAL_HEAVY 0x252F #define T_UTF_32_BOX_DRAWINGS_DOWN_HEAVY_AND_HORIZONTAL_LIGHT 0x2530 #define T_UTF_32_BOX_DRAWINGS_RIGHT_LIGHT_AND_LEFT_DOWN_HEAVY 0x2531 #define T_UTF_32_BOX_DRAWINGS_LEFT_LIGHT_AND_RIGHT_DOWN_HEAVY 0x2532 #define T_UTF_32_BOX_DRAWINGS_HEAVY_DOWN_AND_HORIZONTAL 0x2533 #define T_UTF_32_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x2534 #define T_UTF_32_BOX_DRAWINGS_LEFT_HEAVY_AND_RIGHT_UP_LIGHT 0x2535 #define T_UTF_32_BOX_DRAWINGS_RIGHT_HEAVY_AND_LEFT_UP_LIGHT 0x2536 #define T_UTF_32_BOX_DRAWINGS_UP_LIGHT_AND_HORIZONTAL_HEAVY 0x2537 #define T_UTF_32_BOX_DRAWINGS_UP_HEAVY_AND_HORIZONTAL_LIGHT 0x2538 #define T_UTF_32_BOX_DRAWINGS_RIGHT_LIGHT_AND_LEFT_UP_HEAVY 0x2539 #define T_UTF_32_BOX_DRAWINGS_LEFT_LIGHT_AND_RIGHT_UP_HEAVY 0x253A #define T_UTF_32_BOX_DRAWINGS_HEAVY_UP_AND_HORIZONTAL 0x253B #define T_UTF_32_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x253C #define T_UTF_32_BOX_DRAWINGS_LEFT_HEAVY_AND_RIGHT_VERTICAL_LIGHT 0x253D #define T_UTF_32_BOX_DRAWINGS_RIGHT_HEAVY_AND_LEFT_VERTICAL_LIGHT 0x253E #define T_UTF_32_BOX_DRAWINGS_VERTICAL_LIGHT_AND_HORIZONTAL_HEAVY 0x253F #define T_UTF_32_BOX_DRAWINGS_UP_HEAVY_AND_DOWN_HORIZONTAL_LIGHT 0x2540 #define T_UTF_32_BOX_DRAWINGS_DOWN_HEAVY_AND_UP_HORIZONTAL_LIGHT 0x2541 #define T_UTF_32_BOX_DRAWINGS_VERTICAL_HEAVY_AND_HORIZONTAL_LIGHT 0x2542 #define T_UTF_32_BOX_DRAWINGS_LEFT_UP_HEAVY_AND_RIGHT_DOWN_LIGHT 0x2543 #define T_UTF_32_BOX_DRAWINGS_RIGHT_UP_HEAVY_AND_LEFT_DOWN_LIGHT 0x2544 #define T_UTF_32_BOX_DRAWINGS_LEFT_DOWN_HEAVY_AND_RIGHT_UP_LIGHT 0x2545 #define T_UTF_32_BOX_DRAWINGS_RIGHT_DOWN_HEAVY_AND_LEFT_UP_LIGHT 0x2546 #define T_UTF_32_BOX_DRAWINGS_DOWN_LIGHT_AND_UP_HORIZONTAL_HEAVY 0x2547 #define T_UTF_32_BOX_DRAWINGS_UP_LIGHT_AND_DOWN_HORIZONTAL_HEAVY 0x2548 #define T_UTF_32_BOX_DRAWINGS_RIGHT_LIGHT_AND_LEFT_VERTICAL_HEAVY 0x2549 #define T_UTF_32_BOX_DRAWINGS_LEFT_LIGHT_AND_RIGHT_VERTICAL_HEAVY 0x254A #define T_UTF_32_BOX_DRAWINGS_HEAVY_VERTICAL_AND_HORIZONTAL 0x254B #define T_UTF_32_BOX_DRAWINGS_LIGHT_DOUBLE_DASH_HORIZONTAL 0x254C #define T_UTF_32_BOX_DRAWINGS_HEAVY_DOUBLE_DASH_HORIZONTAL 0x254D #define T_UTF_32_BOX_DRAWINGS_LIGHT_DOUBLE_DASH_VERTICAL 0x254E #define T_UTF_32_BOX_DRAWINGS_HEAVY_DOUBLE_DASH_VERTICAL 0x254F #define T_UTF_32_BOX_DRAWINGS_DOUBLE_HORIZONTAL 0x2550 #define T_UTF_32_BOX_DRAWINGS_DOUBLE_VERTICAL 0x2551 #define T_UTF_32_BOX_DRAWINGS_DOWN_SINGLE_AND_RIGHT_DOUBLE 0x2552 #define T_UTF_32_BOX_DRAWINGS_DOWN_DOUBLE_AND_RIGHT_SINGLE 0x2553 #define T_UTF_32_BOX_DRAWINGS_DOUBLE_DOWN_AND_RIGHT 0x2554 #define T_UTF_32_BOX_DRAWINGS_DOWN_SINGLE_AND_LEFT_DOUBLE 0x2555 #define T_UTF_32_BOX_DRAWINGS_DOWN_DOUBLE_AND_LEFT_SINGLE 0x2556 #define T_UTF_32_BOX_DRAWINGS_DOUBLE_DOWN_AND_LEFT 0x2557 #define T_UTF_32_BOX_DRAWINGS_UP_SINGLE_AND_RIGHT_DOUBLE 0x2558 #define T_UTF_32_BOX_DRAWINGS_UP_DOUBLE_AND_RIGHT_SINGLE 0x2559 #define T_UTF_32_BOX_DRAWINGS_DOUBLE_UP_AND_RIGHT 0x255A #define T_UTF_32_BOX_DRAWINGS_UP_SINGLE_AND_LEFT_DOUBLE 0x255B #define T_UTF_32_BOX_DRAWINGS_UP_DOUBLE_AND_LEFT_SINGLE 0x255C #define T_UTF_32_BOX_DRAWINGS_DOUBLE_UP_AND_LEFT 0x255D #define T_UTF_32_BOX_DRAWINGS_VERTICAL_SINGLE_AND_RIGHT_DOUBLE 0x255E #define T_UTF_32_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_RIGHT_SINGLE 0x255F #define T_UTF_32_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_RIGHT 0x2560 #define T_UTF_32_BOX_DRAWINGS_VERTICAL_SINGLE_AND_LEFT_DOUBLE 0x2561 #define T_UTF_32_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_LEFT_SINGLE 0x2562 #define T_UTF_32_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_LEFT 0x2563 #define T_UTF_32_BOX_DRAWINGS_DOWN_SINGLE_AND_HORIZONTAL_DOUBLE 0x2564 #define T_UTF_32_BOX_DRAWINGS_DOWN_DOUBLE_AND_HORIZONTAL_SINGLE 0x2565 #define T_UTF_32_BOX_DRAWINGS_DOUBLE_DOWN_AND_HORIZONTAL 0x2566 #define T_UTF_32_BOX_DRAWINGS_UP_SINGLE_AND_HORIZONTAL_DOUBLE 0x2567 #define T_UTF_32_BOX_DRAWINGS_UP_DOUBLE_AND_HORIZONTAL_SINGLE 0x2568 #define T_UTF_32_BOX_DRAWINGS_DOUBLE_UP_AND_HORIZONTAL 0x2569 #define T_UTF_32_BOX_DRAWINGS_VERTICAL_SINGLE_AND_HORIZONTAL_DOUBLE 0x256A #define T_UTF_32_BOX_DRAWINGS_VERTICAL_DOUBLE_AND_HORIZONTAL_SINGLE 0x256B #define T_UTF_32_BOX_DRAWINGS_DOUBLE_VERTICAL_AND_HORIZONTAL 0x256C #define T_UTF_32_BOX_DRAWINGS_LIGHT_ARC_DOWN_AND_RIGHT 0x256D #define T_UTF_32_BOX_DRAWINGS_LIGHT_ARC_DOWN_AND_LEFT 0x256E #define T_UTF_32_BOX_DRAWINGS_LIGHT_ARC_UP_AND_LEFT 0x256F #define T_UTF_32_BOX_DRAWINGS_LIGHT_ARC_UP_AND_RIGHT 0x2570 #define T_UTF_32_BOX_DRAWINGS_LIGHT_DIAGONAL_UPPER_RIGHT_TO_LOWER_LEFT 0x2571 #define T_UTF_32_BOX_DRAWINGS_LIGHT_DIAGONAL_UPPER_LEFT_TO_LOWER_RIGHT 0x2572 #define T_UTF_32_BOX_DRAWINGS_LIGHT_DIAGONAL_CROSS 0x2573 #define T_UTF_32_BOX_DRAWINGS_LIGHT_LEFT 0x2574 #define T_UTF_32_BOX_DRAWINGS_LIGHT_UP 0x2575 #define T_UTF_32_BOX_DRAWINGS_LIGHT_RIGHT 0x2576 #define T_UTF_32_BOX_DRAWINGS_LIGHT_DOWN 0x2577 #define T_UTF_32_BOX_DRAWINGS_HEAVY_LEFT 0x2578 #define T_UTF_32_BOX_DRAWINGS_HEAVY_UP 0x2579 #define T_UTF_32_BOX_DRAWINGS_HEAVY_RIGHT 0x257A #define T_UTF_32_BOX_DRAWINGS_HEAVY_DOWN 0x257B #define T_UTF_32_BOX_DRAWINGS_LIGHT_LEFT_AND_HEAVY_RIGHT 0x257C #define T_UTF_32_BOX_DRAWINGS_LIGHT_UP_AND_HEAVY_DOWN 0x257D #define T_UTF_32_BOX_DRAWINGS_HEAVY_LEFT_AND_LIGHT_RIGHT 0x257E #define T_UTF_32_BOX_DRAWINGS_HEAVY_UP_AND_LIGHT_DOWN 0x257F #define T_UTF_32_UPPER_HALF_BLOCK 0x2580 #define T_UTF_32_LOWER_ONE_EIGHTH_BLOCK 0x2581 #define T_UTF_32_LOWER_ONE_QUARTER_BLOCK 0x2582 #define T_UTF_32_LOWER_THREE_EIGHTHS_BLOCK 0x2583 #define T_UTF_32_LOWER_HALF_BLOCK 0x2584 #define T_UTF_32_LOWER_FIVE_EIGHTHS_BLOCK 0x2585 #define T_UTF_32_LOWER_THREE_QUARTERS_BLOCK 0x2586 #define T_UTF_32_LOWER_SEVEN_EIGHTHS_BLOCK 0x2587 #define T_UTF_32_FULL_BLOCK 0x2588 #define T_UTF_32_LEFT_SEVEN_EIGHTHS_BLOCK 0x2589 #define T_UTF_32_LEFT_THREE_QUARTERS_BLOCK 0x258A #define T_UTF_32_LEFT_FIVE_EIGHTHS_BLOCK 0x258B #define T_UTF_32_LEFT_HALF_BLOCK 0x258C #define T_UTF_32_LEFT_THREE_EIGHTHS_BLOCK 0x258D #define T_UTF_32_LEFT_ONE_QUARTER_BLOCK 0x258E #define T_UTF_32_LEFT_ONE_EIGHTH_BLOCK 0x258F #define T_UTF_32_RIGHT_HALF_BLOCK 0x2590 #define T_UTF_32_LIGHT_SHADE 0x2591 #define T_UTF_32_MEDIUM_SHADE 0x2592 #define T_UTF_32_DARK_SHADE 0x2593 #define T_UTF_32_UPPER_ONE_EIGHTH_BLOCK 0x2594 #define T_UTF_32_RIGHT_ONE_EIGHTH_BLOCK 0x2595 #define T_UTF_32_QUADRANT_LOWER_LEFT 0x2596 #define T_UTF_32_QUADRANT_LOWER_RIGHT 0x2597 #define T_UTF_32_QUADRANT_UPPER_LEFT 0x2598 #define T_UTF_32_QUADRANT_UPPER_LEFT_AND_LOWER_LEFT_AND_LOWER_RIGHT 0x2599 #define T_UTF_32_QUADRANT_UPPER_LEFT_AND_LOWER_RIGHT 0x259A #define T_UTF_32_QUADRANT_UPPER_LEFT_AND_UPPER_RIGHT_AND_LOWER_LEFT 0x259B #define T_UTF_32_QUADRANT_UPPER_LEFT_AND_UPPER_RIGHT_AND_LOWER_RIGHT 0x259C #define T_UTF_32_QUADRANT_UPPER_RIGHT 0x259D #define T_UTF_32_QUADRANT_UPPER_RIGHT_AND_LOWER_LEFT 0x259E #define T_UTF_32_QUADRANT_UPPER_RIGHT_AND_LOWER_LEFT_AND_LOWER_RIGHT 0x259F #define T_UTF_32_BLACK_SQUARE 0x25A0 #define T_UTF_32_WHITE_SQUARE 0x25A1 #define T_UTF_32_WHITE_SQUARE_WITH_ROUNDED_CORNERS 0x25A2 #define T_UTF_32_WHITE_SQUARE_CONTAINING_BLACK_SMALL_SQUARE 0x25A3 #define T_UTF_32_SQUARE_WITH_HORIZONTAL_FILL 0x25A4 #define T_UTF_32_SQUARE_WITH_VERTICAL_FILL 0x25A5 #define T_UTF_32_SQUARE_WITH_ORTHOGONAL_CROSSHATCH_FILL 0x25A6 #define T_UTF_32_SQUARE_WITH_UPPER_LEFT_TO_LOWER_RIGHT_FILL 0x25A7 #define T_UTF_32_SQUARE_WITH_UPPER_RIGHT_TO_LOWER_LEFT_FILL 0x25A8 #define T_UTF_32_SQUARE_WITH_DIAGONAL_CROSSHATCH_FILL 0x25A9 #define T_UTF_32_BLACK_SMALL_SQUARE 0x25AA #define T_UTF_32_WHITE_SMALL_SQUARE 0x25AB #define T_UTF_32_BLACK_RECTANGLE 0x25AC #define T_UTF_32_WHITE_RECTANGLE 0x25AD #define T_UTF_32_BLACK_VERTICAL_RECTANGLE 0x25AE #define T_UTF_32_WHITE_VERTICAL_RECTANGLE 0x25AF #define T_UTF_32_BLACK_PARALLELOGRAM 0x25B0 #define T_UTF_32_WHITE_PARALLELOGRAM 0x25B1 #define T_UTF_32_BLACK_UP_POINTING_TRIANGLE 0x25B2 #define T_UTF_32_WHITE_UP_POINTING_TRIANGLE 0x25B3 #define T_UTF_32_BLACK_UP_POINTING_SMALL_TRIANGLE 0x25B4 #define T_UTF_32_WHITE_UP_POINTING_SMALL_TRIANGLE 0x25B5 #define T_UTF_32_BLACK_RIGHT_POINTING_TRIANGLE 0x25B6 #define T_UTF_32_WHITE_RIGHT_POINTING_TRIANGLE 0x25B7 #define T_UTF_32_BLACK_RIGHT_POINTING_SMALL_TRIANGLE 0x25B8 #define T_UTF_32_WHITE_RIGHT_POINTING_SMALL_TRIANGLE 0x25B9 #define T_UTF_32_BLACK_RIGHT_POINTING_POINTER 0x25BA #define T_UTF_32_WHITE_RIGHT_POINTING_POINTER 0x25BB #define T_UTF_32_BLACK_DOWN_POINTING_TRIANGLE 0x25BC #define T_UTF_32_WHITE_DOWN_POINTING_TRIANGLE 0x25BD #define T_UTF_32_BLACK_DOWN_POINTING_SMALL_TRIANGLE 0x25BE #define T_UTF_32_WHITE_DOWN_POINTING_SMALL_TRIANGLE 0x25BF #define T_UTF_32_BLACK_LEFT_POINTING_TRIANGLE 0x25C0 #define T_UTF_32_WHITE_LEFT_POINTING_TRIANGLE 0x25C1 #define T_UTF_32_BLACK_LEFT_POINTING_SMALL_TRIANGLE 0x25C2 #define T_UTF_32_WHITE_LEFT_POINTING_SMALL_TRIANGLE 0x25C3 #define T_UTF_32_BLACK_LEFT_POINTING_POINTER 0x25C4 #define T_UTF_32_WHITE_LEFT_POINTING_POINTER 0x25C5 #define T_UTF_32_BLACK_DIAMOND 0x25C6 #define T_UTF_32_WHITE_DIAMOND 0x25C7 #define T_UTF_32_WHITE_DIAMOND_CONTAINING_BLACK_SMALL_DIAMOND 0x25C8 #define T_UTF_32_FISHEYE 0x25C9 #define T_UTF_32_LOZENGE 0x25CA #define T_UTF_32_WHITE_CIRCLE 0x25CB #define T_UTF_32_DOTTED_CIRCLE 0x25CC #define T_UTF_32_CIRCLE_WITH_VERTICAL_FILL 0x25CD #define T_UTF_32_BULLSEYE 0x25CE #define T_UTF_32_BLACK_CIRCLE 0x25CF #define T_UTF_32_CIRCLE_WITH_LEFT_HALF_BLACK 0x25D0 #define T_UTF_32_CIRCLE_WITH_RIGHT_HALF_BLACK 0x25D1 #define T_UTF_32_CIRCLE_WITH_LOWER_HALF_BLACK 0x25D2 #define T_UTF_32_CIRCLE_WITH_UPPER_HALF_BLACK 0x25D3 #define T_UTF_32_CIRCLE_WITH_UPPER_RIGHT_QUADRANT_BLACK 0x25D4 #define T_UTF_32_CIRCLE_WITH_ALL_BUT_UPPER_LEFT_QUADRANT_BLACK 0x25D5 #define T_UTF_32_LEFT_HALF_BLACK_CIRCLE 0x25D6 #define T_UTF_32_RIGHT_HALF_BLACK_CIRCLE 0x25D7 #define T_UTF_32_INVERSE_BULLET 0x25D8 #define T_UTF_32_INVERSE_WHITE_CIRCLE 0x25D9 #define T_UTF_32_UPPER_HALF_INVERSE_WHITE_CIRCLE 0x25DA #define T_UTF_32_LOWER_HALF_INVERSE_WHITE_CIRCLE 0x25DB #define T_UTF_32_UPPER_LEFT_QUADRANT_CIRCULAR_ARC 0x25DC #define T_UTF_32_UPPER_RIGHT_QUADRANT_CIRCULAR_ARC 0x25DD #define T_UTF_32_LOWER_RIGHT_QUADRANT_CIRCULAR_ARC 0x25DE #define T_UTF_32_LOWER_LEFT_QUADRANT_CIRCULAR_ARC 0x25DF #define T_UTF_32_UPPER_HALF_CIRCLE 0x25E0 #define T_UTF_32_LOWER_HALF_CIRCLE 0x25E1 #define T_UTF_32_BLACK_LOWER_RIGHT_TRIANGLE 0x25E2 #define T_UTF_32_BLACK_LOWER_LEFT_TRIANGLE 0x25E3 #define T_UTF_32_BLACK_UPPER_LEFT_TRIANGLE 0x25E4 #define T_UTF_32_BLACK_UPPER_RIGHT_TRIANGLE 0x25E5 #define T_UTF_32_WHITE_BULLET 0x25E6 #define T_UTF_32_SQUARE_WITH_LEFT_HALF_BLACK 0x25E7 #define T_UTF_32_SQUARE_WITH_RIGHT_HALF_BLACK 0x25E8 #define T_UTF_32_SQUARE_WITH_UPPER_LEFT_DIAGONAL_HALF_BLACK 0x25E9 #define T_UTF_32_SQUARE_WITH_LOWER_RIGHT_DIAGONAL_HALF_BLACK 0x25EA #define T_UTF_32_WHITE_SQUARE_WITH_VERTICAL_BISECTING_LINE 0x25EB #define T_UTF_32_WHITE_UP_POINTING_TRIANGLE_WITH_DOT 0x25EC #define T_UTF_32_UP_POINTING_TRIANGLE_WITH_LEFT_HALF_BLACK 0x25ED #define T_UTF_32_UP_POINTING_TRIANGLE_WITH_RIGHT_HALF_BLACK 0x25EE #define T_UTF_32_LARGE_CIRCLE 0x25EF #define T_UTF_32_WHITE_SQUARE_WITH_UPPER_LEFT_QUADRANT 0x25F0 #define T_UTF_32_WHITE_SQUARE_WITH_LOWER_LEFT_QUADRANT 0x25F1 #define T_UTF_32_WHITE_SQUARE_WITH_LOWER_RIGHT_QUADRANT 0x25F2 #define T_UTF_32_WHITE_SQUARE_WITH_UPPER_RIGHT_QUADRANT 0x25F3 #define T_UTF_32_WHITE_CIRCLE_WITH_UPPER_LEFT_QUADRANT 0x25F4 #define T_UTF_32_WHITE_CIRCLE_WITH_LOWER_LEFT_QUADRANT 0x25F5 #define T_UTF_32_WHITE_CIRCLE_WITH_LOWER_RIGHT_QUADRANT 0x25F6 #define T_UTF_32_WHITE_CIRCLE_WITH_UPPER_RIGHT_QUADRANT 0x25F7 #define T_UTF_32_UPPER_LEFT_TRIANGLE 0x25F8 #define T_UTF_32_UPPER_RIGHT_TRIANGLE 0x25F9 #define T_UTF_32_LOWER_LEFT_TRIANGLE 0x25FA #define T_UTF_32_WHITE_MEDIUM_SQUARE 0x25FB #define T_UTF_32_BLACK_MEDIUM_SQUARE 0x25FC #define T_UTF_32_WHITE_MEDIUM_SMALL_SQUARE 0x25FD #define T_UTF_32_BLACK_MEDIUM_SMALL_SQUARE 0x25FE #define T_UTF_32_LOWER_RIGHT_TRIANGLE 0x25FF #define T_UTF_32_BLACK_SUN_WITH_RAYS 0x2600 #define T_UTF_32_CLOUD 0x2601 #define T_UTF_32_UMBRELLA 0x2602 #define T_UTF_32_SNOWMAN 0x2603 #define T_UTF_32_COMET 0x2604 #define T_UTF_32_BLACK_STAR 0x2605 #define T_UTF_32_WHITE_STAR 0x2606 #define T_UTF_32_LIGHTNING 0x2607 #define T_UTF_32_THUNDERSTORM 0x2608 #define T_UTF_32_SUN 0x2609 #define T_UTF_32_ASCENDING_NODE 0x260A #define T_UTF_32_DESCENDING_NODE 0x260B #define T_UTF_32_CONJUNCTION 0x260C #define T_UTF_32_OPPOSITION 0x260D #define T_UTF_32_BLACK_TELEPHONE 0x260E #define T_UTF_32_WHITE_TELEPHONE 0x260F #define T_UTF_32_BALLOT_BOX 0x2610 #define T_UTF_32_BALLOT_BOX_WITH_CHECK 0x2611 #define T_UTF_32_BALLOT_BOX_WITH_X 0x2612 #define T_UTF_32_SALTIRE 0x2613 #define T_UTF_32_UMBRELLA_WITH_RAIN_DROPS 0x2614 #define T_UTF_32_HOT_BEVERAGE 0x2615 #define T_UTF_32_WHITE_SHOGI_PIECE 0x2616 #define T_UTF_32_BLACK_SHOGI_PIECE 0x2617 #define T_UTF_32_SHAMROCK 0x2618 #define T_UTF_32_REVERSED_ROTATED_FLORAL_HEART_BULLET 0x2619 #define T_UTF_32_BLACK_LEFT_POINTING_INDEX 0x261A #define T_UTF_32_BLACK_RIGHT_POINTING_INDEX 0x261B #define T_UTF_32_WHITE_LEFT_POINTING_INDEX 0x261C #define T_UTF_32_WHITE_UP_POINTING_INDEX 0x261D #define T_UTF_32_WHITE_RIGHT_POINTING_INDEX 0x261E #define T_UTF_32_WHITE_DOWN_POINTING_INDEX 0x261F #define T_UTF_32_SKULL_AND_CROSSBONES 0x2620 #define T_UTF_32_CAUTION_SIGN 0x2621 #define T_UTF_32_RADIOACTIVE_SIGN 0x2622 #define T_UTF_32_BIOHAZARD_SIGN 0x2623 #define T_UTF_32_CADUCEUS 0x2624 #define T_UTF_32_ANKH 0x2625 #define T_UTF_32_ORTHODOX_CROSS 0x2626 #define T_UTF_32_CHI_RHO 0x2627 #define T_UTF_32_CROSS_OF_LORRAINE 0x2628 #define T_UTF_32_CROSS_OF_JERUSALEM 0x2629 #define T_UTF_32_STAR_AND_CRESCENT 0x262A #define T_UTF_32_FARSI_SYMBOL 0x262B #define T_UTF_32_ADI_SHAKTI 0x262C #define T_UTF_32_HAMMER_AND_SICKLE 0x262D #define T_UTF_32_PEACE_SYMBOL 0x262E #define T_UTF_32_YIN_YANG 0x262F #define T_UTF_32_TRIGRAM_FOR_HEAVEN 0x2630 #define T_UTF_32_TRIGRAM_FOR_LAKE 0x2631 #define T_UTF_32_TRIGRAM_FOR_FIRE 0x2632 #define T_UTF_32_TRIGRAM_FOR_THUNDER 0x2633 #define T_UTF_32_TRIGRAM_FOR_WIND 0x2634 #define T_UTF_32_TRIGRAM_FOR_WATER 0x2635 #define T_UTF_32_TRIGRAM_FOR_MOUNTAIN 0x2636 #define T_UTF_32_TRIGRAM_FOR_EARTH 0x2637 #define T_UTF_32_WHEEL_OF_DHARMA 0x2638 #define T_UTF_32_WHITE_FROWNING_FACE 0x2639 #define T_UTF_32_WHITE_SMILING_FACE 0x263A #define T_UTF_32_BLACK_SMILING_FACE 0x263B #define T_UTF_32_WHITE_SUN_WITH_RAYS 0x263C #define T_UTF_32_FIRST_QUARTER_MOON 0x263D #define T_UTF_32_LAST_QUARTER_MOON 0x263E #define T_UTF_32_MERCURY 0x263F #define T_UTF_32_FEMALE_SIGN 0x2640 #define T_UTF_32_EARTH 0x2641 #define T_UTF_32_MALE_SIGN 0x2642 #define T_UTF_32_JUPITER 0x2643 #define T_UTF_32_SATURN 0x2644 #define T_UTF_32_URANUS 0x2645 #define T_UTF_32_NEPTUNE 0x2646 #define T_UTF_32_PLUTO 0x2647 #define T_UTF_32_ARIES 0x2648 #define T_UTF_32_TAURUS 0x2649 #define T_UTF_32_GEMINI 0x264A #define T_UTF_32_CANCER 0x264B #define T_UTF_32_LEO 0x264C #define T_UTF_32_VIRGO 0x264D #define T_UTF_32_LIBRA 0x264E #define T_UTF_32_SCORPIUS 0x264F #define T_UTF_32_SAGITTARIUS 0x2650 #define T_UTF_32_CAPRICORN 0x2651 #define T_UTF_32_AQUARIUS 0x2652 #define T_UTF_32_PISCES 0x2653 #define T_UTF_32_WHITE_CHESS_KING 0x2654 #define T_UTF_32_WHITE_CHESS_QUEEN 0x2655 #define T_UTF_32_WHITE_CHESS_ROOK 0x2656 #define T_UTF_32_WHITE_CHESS_BISHOP 0x2657 #define T_UTF_32_WHITE_CHESS_KNIGHT 0x2658 #define T_UTF_32_WHITE_CHESS_PAWN 0x2659 #define T_UTF_32_BLACK_CHESS_KING 0x265A #define T_UTF_32_BLACK_CHESS_QUEEN 0x265B #define T_UTF_32_BLACK_CHESS_ROOK 0x265C #define T_UTF_32_BLACK_CHESS_BISHOP 0x265D #define T_UTF_32_BLACK_CHESS_KNIGHT 0x265E #define T_UTF_32_BLACK_CHESS_PAWN 0x265F #define T_UTF_32_BLACK_SPADE_SUIT 0x2660 #define T_UTF_32_WHITE_HEART_SUIT 0x2661 #define T_UTF_32_WHITE_DIAMOND_SUIT 0x2662 #define T_UTF_32_BLACK_CLUB_SUIT 0x2663 #define T_UTF_32_WHITE_SPADE_SUIT 0x2664 #define T_UTF_32_BLACK_HEART_SUIT 0x2665 #define T_UTF_32_BLACK_DIAMOND_SUIT 0x2666 #define T_UTF_32_WHITE_CLUB_SUIT 0x2667 #define T_UTF_32_HOT_SPRINGS 0x2668 #define T_UTF_32_QUARTER_NOTE 0x2669 #define T_UTF_32_EIGHTH_NOTE 0x266A #define T_UTF_32_BEAMED_EIGHTH_NOTES 0x266B #define T_UTF_32_BEAMED_SIXTEENTH_NOTES 0x266C #define T_UTF_32_MUSIC_FLAT_SIGN 0x266D #define T_UTF_32_MUSIC_NATURAL_SIGN 0x266E #define T_UTF_32_MUSIC_SHARP_SIGN 0x266F #define T_UTF_32_WEST_SYRIAC_CROSS 0x2670 #define T_UTF_32_EAST_SYRIAC_CROSS 0x2671 #define T_UTF_32_UNIVERSAL_RECYCLING_SYMBOL 0x2672 #define T_UTF_32_RECYCLING_SYMBOL_FOR_TYPE_1_PLASTICS 0x2673 #define T_UTF_32_RECYCLING_SYMBOL_FOR_TYPE_2_PLASTICS 0x2674 #define T_UTF_32_RECYCLING_SYMBOL_FOR_TYPE_3_PLASTICS 0x2675 #define T_UTF_32_RECYCLING_SYMBOL_FOR_TYPE_4_PLASTICS 0x2676 #define T_UTF_32_RECYCLING_SYMBOL_FOR_TYPE_5_PLASTICS 0x2677 #define T_UTF_32_RECYCLING_SYMBOL_FOR_TYPE_6_PLASTICS 0x2678 #define T_UTF_32_RECYCLING_SYMBOL_FOR_TYPE_7_PLASTICS 0x2679 #define T_UTF_32_RECYCLING_SYMBOL_FOR_GENERIC_MATERIALS 0x267A #define T_UTF_32_BLACK_UNIVERSAL_RECYCLING_SYMBOL 0x267B #define T_UTF_32_RECYCLED_PAPER_SYMBOL 0x267C #define T_UTF_32_PARTIALLY_RECYCLED_PAPER_SYMBOL 0x267D #define T_UTF_32_PERMANENT_PAPER_SIGN 0x267E #define T_UTF_32_WHEELCHAIR_SYMBOL 0x267F #define T_UTF_32_DIE_FACE_1 0x2680 #define T_UTF_32_DIE_FACE_2 0x2681 #define T_UTF_32_DIE_FACE_3 0x2682 #define T_UTF_32_DIE_FACE_4 0x2683 #define T_UTF_32_DIE_FACE_5 0x2684 #define T_UTF_32_DIE_FACE_6 0x2685 #define T_UTF_32_WHITE_CIRCLE_WITH_DOT_RIGHT 0x2686 #define T_UTF_32_WHITE_CIRCLE_WITH_TWO_DOTS 0x2687 #define T_UTF_32_BLACK_CIRCLE_WITH_WHITE_DOT_RIGHT 0x2688 #define T_UTF_32_BLACK_CIRCLE_WITH_TWO_WHITE_DOTS 0x2689 #define T_UTF_32_MONOGRAM_FOR_YANG 0x268A #define T_UTF_32_MONOGRAM_FOR_YIN 0x268B #define T_UTF_32_DIGRAM_FOR_GREATER_YANG 0x268C #define T_UTF_32_DIGRAM_FOR_LESSER_YIN 0x268D #define T_UTF_32_DIGRAM_FOR_LESSER_YANG 0x268E #define T_UTF_32_DIGRAM_FOR_GREATER_YIN 0x268F #define T_UTF_32_WHITE_FLAG 0x2690 #define T_UTF_32_BLACK_FLAG 0x2691 #define T_UTF_32_HAMMER_AND_PICK 0x2692 #define T_UTF_32_ANCHOR 0x2693 #define T_UTF_32_CROSSED_SWORDS 0x2694 #define T_UTF_32_STAFF_OF_AESCULAPIUS 0x2695 #define T_UTF_32_SCALES 0x2696 #define T_UTF_32_ALEMBIC 0x2697 #define T_UTF_32_FLOWER 0x2698 #define T_UTF_32_GEAR 0x2699 #define T_UTF_32_STAFF_OF_HERMES 0x269A #define T_UTF_32_ATOM_SYMBOL 0x269B #define T_UTF_32_FLEUR_DE_LIS 0x269C #define T_UTF_32_OUTLINED_WHITE_STAR 0x269D #define T_UTF_32_THREE_LINES_CONVERGING_RIGHT 0x269E #define T_UTF_32_THREE_LINES_CONVERGING_LEFT 0x269F #define T_UTF_32_WARNING_SIGN 0x26A0 #define T_UTF_32_HIGH_VOLTAGE_SIGN 0x26A1 #define T_UTF_32_DOUBLED_FEMALE_SIGN 0x26A2 #define T_UTF_32_DOUBLED_MALE_SIGN 0x26A3 #define T_UTF_32_INTERLOCKED_FEMALE_AND_MALE_SIGN 0x26A4 #define T_UTF_32_MALE_AND_FEMALE_SIGN 0x26A5 #define T_UTF_32_MALE_WITH_STROKE_SIGN 0x26A6 #define T_UTF_32_MALE_WITH_STROKE_AND_MALE_AND_FEMALE_SIGN 0x26A7 #define T_UTF_32_VERTICAL_MALE_WITH_STROKE_SIGN 0x26A8 #define T_UTF_32_HORIZONTAL_MALE_WITH_STROKE_SIGN 0x26A9 #define T_UTF_32_MEDIUM_WHITE_CIRCLE 0x26AA #define T_UTF_32_MEDIUM_BLACK_CIRCLE 0x26AB #define T_UTF_32_MEDIUM_SMALL_WHITE_CIRCLE 0x26AC #define T_UTF_32_MARRIAGE_SYMBOL 0x26AD #define T_UTF_32_DIVORCE_SYMBOL 0x26AE #define T_UTF_32_UNMARRIED_PARTNERSHIP_SYMBOL 0x26AF #define T_UTF_32_COFFIN 0x26B0 #define T_UTF_32_FUNERAL_URN 0x26B1 #define T_UTF_32_NEUTER 0x26B2 #define T_UTF_32_CERES 0x26B3 #define T_UTF_32_PALLAS 0x26B4 #define T_UTF_32_JUNO 0x26B5 #define T_UTF_32_VESTA 0x26B6 #define T_UTF_32_CHIRON 0x26B7 #define T_UTF_32_BLACK_MOON_LILITH 0x26B8 #define T_UTF_32_SEXTILE 0x26B9 #define T_UTF_32_SEMISEXTILE 0x26BA #define T_UTF_32_QUINCUNX 0x26BB #define T_UTF_32_SESQUIQUADRATE 0x26BC #define T_UTF_32_SOCCER_BALL 0x26BD #define T_UTF_32_BASEBALL 0x26BE #define T_UTF_32_SQUARED_KEY 0x26BF #define T_UTF_32_WHITE_DRAUGHTS_MAN 0x26C0 #define T_UTF_32_WHITE_DRAUGHTS_KING 0x26C1 #define T_UTF_32_BLACK_DRAUGHTS_MAN 0x26C2 #define T_UTF_32_BLACK_DRAUGHTS_KING 0x26C3 #define T_UTF_32_SNOWMAN_WITHOUT_SNOW 0x26C4 #define T_UTF_32_SUN_BEHIND_CLOUD 0x26C5 #define T_UTF_32_RAIN 0x26C6 #define T_UTF_32_BLACK_SNOWMAN 0x26C7 #define T_UTF_32_THUNDER_CLOUD_AND_RAIN 0x26C8 #define T_UTF_32_TURNED_WHITE_SHOGI_PIECE 0x26C9 #define T_UTF_32_TURNED_BLACK_SHOGI_PIECE 0x26CA #define T_UTF_32_WHITE_DIAMOND_IN_SQUARE 0x26CB #define T_UTF_32_CROSSING_LANES 0x26CC #define T_UTF_32_DISABLED_CAR 0x26CD #define T_UTF_32_OPHIUCHUS 0x26CE #define T_UTF_32_PICK 0x26CF #define T_UTF_32_CAR_SLIDING 0x26D0 #define T_UTF_32_HELMET_WITH_WHITE_CROSS 0x26D1 #define T_UTF_32_CIRCLED_CROSSING_LANES 0x26D2 #define T_UTF_32_CHAINS 0x26D3 #define T_UTF_32_NO_ENTRY 0x26D4 #define T_UTF_32_ALTERNATE_ONE_WAY_LEFT_WAY_TRAFFIC 0x26D5 #define T_UTF_32_BLACK_TWO_WAY_LEFT_WAY_TRAFFIC 0x26D6 #define T_UTF_32_WHITE_TWO_WAY_LEFT_WAY_TRAFFIC 0x26D7 #define T_UTF_32_BLACK_LEFT_LANE_MERGE 0x26D8 #define T_UTF_32_WHITE_LEFT_LANE_MERGE 0x26D9 #define T_UTF_32_DRIVE_SLOW_SIGN 0x26DA #define T_UTF_32_HEAVY_WHITE_DOWN_POINTING_TRIANGLE 0x26DB #define T_UTF_32_LEFT_CLOSED_ENTRY 0x26DC #define T_UTF_32_SQUARED_SALTIRE 0x26DD #define T_UTF_32_FALLING_DIAGONAL_IN_WHITE_CIRCLE_IN_BLACK_SQUARE 0x26DE #define T_UTF_32_BLACK_TRUCK 0x26DF #define T_UTF_32_RESTRICTED_LEFT_ENTRY_1 0x26E0 #define T_UTF_32_RESTRICTED_LEFT_ENTRY_2 0x26E1 #define T_UTF_32_ASTRONOMICAL_SYMBOL_FOR_URANUS 0x26E2 #define T_UTF_32_HEAVY_CIRCLE_WITH_STROKE_AND_TWO_DOTS_ABOVE 0x26E3 #define T_UTF_32_PENTAGRAM 0x26E4 #define T_UTF_32_RIGHT_HANDED_INTERLACED_PENTAGRAM 0x26E5 #define T_UTF_32_LEFT_HANDED_INTERLACED_PENTAGRAM 0x26E6 #define T_UTF_32_INVERTED_PENTAGRAM 0x26E7 #define T_UTF_32_BLACK_CROSS_ON_SHIELD 0x26E8 #define T_UTF_32_SHINTO_SHRINE 0x26E9 #define T_UTF_32_CHURCH 0x26EA #define T_UTF_32_CASTLE 0x26EB #define T_UTF_32_HISTORIC_SITE 0x26EC #define T_UTF_32_GEAR_WITHOUT_HUB 0x26ED #define T_UTF_32_GEAR_WITH_HANDLES 0x26EE #define T_UTF_32_MAP_SYMBOL_FOR_LIGHTHOUSE 0x26EF #define T_UTF_32_MOUNTAIN 0x26F0 #define T_UTF_32_UMBRELLA_ON_GROUND 0x26F1 #define T_UTF_32_FOUNTAIN 0x26F2 #define T_UTF_32_FLAG_IN_HOLE 0x26F3 #define T_UTF_32_FERRY 0x26F4 #define T_UTF_32_SAILBOAT 0x26F5 #define T_UTF_32_SQUARE_FOUR_CORNERS 0x26F6 #define T_UTF_32_SKIER 0x26F7 #define T_UTF_32_ICE_SKATE 0x26F8 #define T_UTF_32_PERSON_WITH_BALL 0x26F9 #define T_UTF_32_TENT 0x26FA #define T_UTF_32_JAPANESE_BANK_SYMBOL 0x26FB #define T_UTF_32_HEADSTONE_GRAVEYARD_SYMBOL 0x26FC #define T_UTF_32_FUEL_PUMP 0x26FD #define T_UTF_32_CUP_ON_BLACK_SQUARE 0x26FE #define T_UTF_32_WHITE_FLAG_WITH_HORIZONTAL_MIDDLE_BLACK_STRIPE 0x26FF #define T_UTF_32_BLACK_SAFETY_SCISSORS 0x2700 #define T_UTF_32_UPPER_BLADE_SCISSORS 0x2701 #define T_UTF_32_BLACK_SCISSORS 0x2702 #define T_UTF_32_LOWER_BLADE_SCISSORS 0x2703 #define T_UTF_32_WHITE_SCISSORS 0x2704 #define T_UTF_32_WHITE_HEAVY_CHECK_MARK 0x2705 #define T_UTF_32_TELEPHONE_LOCATION_SIGN 0x2706 #define T_UTF_32_TAPE_DRIVE 0x2707 #define T_UTF_32_AIRPLANE 0x2708 #define T_UTF_32_ENVELOPE 0x2709 #define T_UTF_32_RAISED_FIST 0x270A #define T_UTF_32_RAISED_HAND 0x270B #define T_UTF_32_VICTORY_HAND 0x270C #define T_UTF_32_WRITING_HAND 0x270D #define T_UTF_32_LOWER_RIGHT_PENCIL 0x270E #define T_UTF_32_PENCIL 0x270F #define T_UTF_32_UPPER_RIGHT_PENCIL 0x2710 #define T_UTF_32_WHITE_NIB 0x2711 #define T_UTF_32_BLACK_NIB 0x2712 #define T_UTF_32_CHECK_MARK 0x2713 #define T_UTF_32_HEAVY_CHECK_MARK 0x2714 #define T_UTF_32_MULTIPLICATION_X 0x2715 #define T_UTF_32_HEAVY_MULTIPLICATION_X 0x2716 #define T_UTF_32_BALLOT_X 0x2717 #define T_UTF_32_HEAVY_BALLOT_X 0x2718 #define T_UTF_32_OUTLINED_GREEK_CROSS 0x2719 #define T_UTF_32_HEAVY_GREEK_CROSS 0x271A #define T_UTF_32_OPEN_CENTRE_CROSS 0x271B #define T_UTF_32_HEAVY_OPEN_CENTRE_CROSS 0x271C #define T_UTF_32_LATIN_CROSS 0x271D #define T_UTF_32_SHADOWED_WHITE_LATIN_CROSS 0x271E #define T_UTF_32_OUTLINED_LATIN_CROSS 0x271F #define T_UTF_32_MALTESE_CROSS 0x2720 #define T_UTF_32_STAR_OF_DAVID 0x2721 #define T_UTF_32_FOUR_TEARDROP_SPOKED_ASTERISK 0x2722 #define T_UTF_32_FOUR_BALLOON_SPOKED_ASTERISK 0x2723 #define T_UTF_32_HEAVY_FOUR_BALLOON_SPOKED_ASTERISK 0x2724 #define T_UTF_32_FOUR_CLUB_SPOKED_ASTERISK 0x2725 #define T_UTF_32_BLACK_FOUR_POINTED_STAR 0x2726 #define T_UTF_32_WHITE_FOUR_POINTED_STAR 0x2727 #define T_UTF_32_SPARKLES 0x2728 #define T_UTF_32_STRESS_OUTLINED_WHITE_STAR 0x2729 #define T_UTF_32_CIRCLED_WHITE_STAR 0x272A #define T_UTF_32_OPEN_CENTRE_BLACK_STAR 0x272B #define T_UTF_32_BLACK_CENTRE_WHITE_STAR 0x272C #define T_UTF_32_OUTLINED_BLACK_STAR 0x272D #define T_UTF_32_HEAVY_OUTLINED_BLACK_STAR 0x272E #define T_UTF_32_PINWHEEL_STAR 0x272F #define T_UTF_32_SHADOWED_WHITE_STAR 0x2730 #define T_UTF_32_HEAVY_ASTERISK 0x2731 #define T_UTF_32_OPEN_CENTRE_ASTERISK 0x2732 #define T_UTF_32_EIGHT_SPOKED_ASTERISK 0x2733 #define T_UTF_32_EIGHT_POINTED_BLACK_STAR 0x2734 #define T_UTF_32_EIGHT_POINTED_PINWHEEL_STAR 0x2735 #define T_UTF_32_SIX_POINTED_BLACK_STAR 0x2736 #define T_UTF_32_EIGHT_POINTED_RECTILINEAR_BLACK_STAR 0x2737 #define T_UTF_32_HEAVY_EIGHT_POINTED_RECTILINEAR_BLACK_STAR 0x2738 #define T_UTF_32_TWELVE_POINTED_BLACK_STAR 0x2739 #define T_UTF_32_SIXTEEN_POINTED_ASTERISK 0x273A #define T_UTF_32_TEARDROP_SPOKED_ASTERISK 0x273B #define T_UTF_32_OPEN_CENTRE_TEARDROP_SPOKED_ASTERISK 0x273C #define T_UTF_32_HEAVY_TEARDROP_SPOKED_ASTERISK 0x273D #define T_UTF_32_SIX_PETALLED_BLACK_AND_WHITE_FLORETTE 0x273E #define T_UTF_32_BLACK_FLORETTE 0x273F #define T_UTF_32_WHITE_FLORETTE 0x2740 #define T_UTF_32_EIGHT_PETALLED_OUTLINED_BLACK_FLORETTE 0x2741 #define T_UTF_32_CIRCLED_OPEN_CENTRE_EIGHT_POINTED_STAR 0x2742 #define T_UTF_32_HEAVY_TEARDROP_SPOKED_PINWHEEL_ASTERISK 0x2743 #define T_UTF_32_SNOWFLAKE 0x2744 #define T_UTF_32_TIGHT_TRIFOLIATE_SNOWFLAKE 0x2745 #define T_UTF_32_HEAVY_CHEVRON_SNOWFLAKE 0x2746 #define T_UTF_32_SPARKLE 0x2747 #define T_UTF_32_HEAVY_SPARKLE 0x2748 #define T_UTF_32_BALLOON_SPOKED_ASTERISK 0x2749 #define T_UTF_32_EIGHT_TEARDROP_SPOKED_PROPELLER_ASTERISK 0x274A #define T_UTF_32_HEAVY_EIGHT_TEARDROP_SPOKED_PROPELLER_ASTERISK 0x274B #define T_UTF_32_CROSS_MARK 0x274C #define T_UTF_32_SHADOWED_WHITE_CIRCLE 0x274D #define T_UTF_32_NEGATIVE_SQUARED_CROSS_MARK 0x274E #define T_UTF_32_LOWER_RIGHT_DROP_SHADOWED_WHITE_SQUARE 0x274F #define T_UTF_32_UPPER_RIGHT_DROP_SHADOWED_WHITE_SQUARE 0x2750 #define T_UTF_32_LOWER_RIGHT_SHADOWED_WHITE_SQUARE 0x2751 #define T_UTF_32_UPPER_RIGHT_SHADOWED_WHITE_SQUARE 0x2752 #define T_UTF_32_BLACK_QUESTION_MARK_ORNAMENT 0x2753 #define T_UTF_32_WHITE_QUESTION_MARK_ORNAMENT 0x2754 #define T_UTF_32_WHITE_EXCLAMATION_MARK_ORNAMENT 0x2755 #define T_UTF_32_BLACK_DIAMOND_MINUS_WHITE_X 0x2756 #define T_UTF_32_HEAVY_EXCLAMATION_MARK_SYMBOL 0x2757 #define T_UTF_32_LIGHT_VERTICAL_BAR 0x2758 #define T_UTF_32_MEDIUM_VERTICAL_BAR 0x2759 #define T_UTF_32_HEAVY_VERTICAL_BAR 0x275A #define T_UTF_32_HEAVY_SINGLE_TURNED_COMMA_QUOTATION_MARK_ORNAMENT 0x275B #define T_UTF_32_HEAVY_SINGLE_COMMA_QUOTATION_MARK_ORNAMENT 0x275C #define T_UTF_32_HEAVY_DOUBLE_TURNED_COMMA_QUOTATION_MARK_ORNAMENT 0x275D #define T_UTF_32_HEAVY_DOUBLE_COMMA_QUOTATION_MARK_ORNAMENT 0x275E #define T_UTF_32_HEAVY_LOW_SINGLE_COMMA_QUOTATION_MARK_ORNAMENT 0x275F #define T_UTF_32_HEAVY_LOW_DOUBLE_COMMA_QUOTATION_MARK_ORNAMENT 0x2760 #define T_UTF_32_CURVED_STEM_PARAGRAPH_SIGN_ORNAMENT 0x2761 #define T_UTF_32_HEAVY_EXCLAMATION_MARK_ORNAMENT 0x2762 #define T_UTF_32_HEAVY_HEART_EXCLAMATION_MARK_ORNAMENT 0x2763 #define T_UTF_32_HEAVY_BLACK_HEART 0x2764 #define T_UTF_32_ROTATED_HEAVY_BLACK_HEART_BULLET 0x2765 #define T_UTF_32_FLORAL_HEART 0x2766 #define T_UTF_32_ROTATED_FLORAL_HEART_BULLET 0x2767 #define T_UTF_32_MEDIUM_LEFT_PARENTHESIS_ORNAMENT 0x2768 #define T_UTF_32_MEDIUM_RIGHT_PARENTHESIS_ORNAMENT 0x2769 #define T_UTF_32_MEDIUM_FLATTENED_LEFT_PARENTHESIS_ORNAMENT 0x276A #define T_UTF_32_MEDIUM_FLATTENED_RIGHT_PARENTHESIS_ORNAMENT 0x276B #define T_UTF_32_MEDIUM_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT 0x276C #define T_UTF_32_MEDIUM_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT 0x276D #define T_UTF_32_HEAVY_LEFT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT 0x276E #define T_UTF_32_HEAVY_RIGHT_POINTING_ANGLE_QUOTATION_MARK_ORNAMENT 0x276F #define T_UTF_32_HEAVY_LEFT_POINTING_ANGLE_BRACKET_ORNAMENT 0x2770 #define T_UTF_32_HEAVY_RIGHT_POINTING_ANGLE_BRACKET_ORNAMENT 0x2771 #define T_UTF_32_LIGHT_LEFT_TORTOISE_SHELL_BRACKET_ORNAMENT 0x2772 #define T_UTF_32_LIGHT_RIGHT_TORTOISE_SHELL_BRACKET_ORNAMENT 0x2773 #define T_UTF_32_MEDIUM_LEFT_CURLY_BRACKET_ORNAMENT 0x2774 #define T_UTF_32_MEDIUM_RIGHT_CURLY_BRACKET_ORNAMENT 0x2775 #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_DIGIT_ONE 0x2776 #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_DIGIT_TWO 0x2777 #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_DIGIT_THREE 0x2778 #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_DIGIT_FOUR 0x2779 #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_DIGIT_FIVE 0x277A #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_DIGIT_SIX 0x277B #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_DIGIT_SEVEN 0x277C #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_DIGIT_EIGHT 0x277D #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_DIGIT_NINE 0x277E #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_NUMBER_TEN 0x277F #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_ONE 0x2780 #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_TWO 0x2781 #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_THREE 0x2782 #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_FOUR 0x2783 #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_FIVE 0x2784 #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_SIX 0x2785 #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_SEVEN 0x2786 #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_EIGHT 0x2787 #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_NINE 0x2788 #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_NUMBER_TEN 0x2789 #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_ONE 0x278A #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_TWO 0x278B #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_THREE 0x278C #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_FOUR 0x278D #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_FIVE 0x278E #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_SIX 0x278F #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_SEVEN 0x2790 #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_EIGHT 0x2791 #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_NINE 0x2792 #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_NUMBER_TEN 0x2793 #define T_UTF_32_HEAVY_WIDE_HEADED_RIGHTWARDS_ARROW 0x2794 #define T_UTF_32_HEAVY_PLUS_SIGN 0x2795 #define T_UTF_32_HEAVY_MINUS_SIGN 0x2796 #define T_UTF_32_HEAVY_DIVISION_SIGN 0x2797 #define T_UTF_32_HEAVY_SOUTH_EAST_ARROW 0x2798 #define T_UTF_32_HEAVY_RIGHTWARDS_ARROW 0x2799 #define T_UTF_32_HEAVY_NORTH_EAST_ARROW 0x279A #define T_UTF_32_DRAFTING_POINT_RIGHTWARDS_ARROW 0x279B #define T_UTF_32_HEAVY_ROUND_TIPPED_RIGHTWARDS_ARROW 0x279C #define T_UTF_32_TRIANGLE_HEADED_RIGHTWARDS_ARROW 0x279D #define T_UTF_32_HEAVY_TRIANGLE_HEADED_RIGHTWARDS_ARROW 0x279E #define T_UTF_32_DASHED_TRIANGLE_HEADED_RIGHTWARDS_ARROW 0x279F #define T_UTF_32_HEAVY_DASHED_TRIANGLE_HEADED_RIGHTWARDS_ARROW 0x27A0 #define T_UTF_32_BLACK_RIGHTWARDS_ARROW 0x27A1 #define T_UTF_32_THREE_D_TOP_LIGHTED_RIGHTWARDS_ARROWHEAD 0x27A2 #define T_UTF_32_THREE_D_BOTTOM_LIGHTED_RIGHTWARDS_ARROWHEAD 0x27A3 #define T_UTF_32_BLACK_RIGHTWARDS_ARROWHEAD 0x27A4 #define T_UTF_32_HEAVY_BLACK_CURVED_DOWNWARDS_AND_RIGHTWARDS_ARROW 0x27A5 #define T_UTF_32_HEAVY_BLACK_CURVED_UPWARDS_AND_RIGHTWARDS_ARROW 0x27A6 #define T_UTF_32_SQUAT_BLACK_RIGHTWARDS_ARROW 0x27A7 #define T_UTF_32_HEAVY_CONCAVE_POINTED_BLACK_RIGHTWARDS_ARROW 0x27A8 #define T_UTF_32_RIGHT_SHADED_WHITE_RIGHTWARDS_ARROW 0x27A9 #define T_UTF_32_LEFT_SHADED_WHITE_RIGHTWARDS_ARROW 0x27AA #define T_UTF_32_BACK_TILTED_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x27AB #define T_UTF_32_FRONT_TILTED_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x27AC #define T_UTF_32_HEAVY_LOWER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x27AD #define T_UTF_32_HEAVY_UPPER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x27AE #define T_UTF_32_NOTCHED_LOWER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x27AF #define T_UTF_32_CURLY_LOOP 0x27B0 #define T_UTF_32_NOTCHED_UPPER_RIGHT_SHADOWED_WHITE_RIGHTWARDS_ARROW 0x27B1 #define T_UTF_32_CIRCLED_HEAVY_WHITE_RIGHTWARDS_ARROW 0x27B2 #define T_UTF_32_WHITE_FEATHERED_RIGHTWARDS_ARROW 0x27B3 #define T_UTF_32_BLACK_FEATHERED_SOUTH_EAST_ARROW 0x27B4 #define T_UTF_32_BLACK_FEATHERED_RIGHTWARDS_ARROW 0x27B5 #define T_UTF_32_BLACK_FEATHERED_NORTH_EAST_ARROW 0x27B6 #define T_UTF_32_HEAVY_BLACK_FEATHERED_SOUTH_EAST_ARROW 0x27B7 #define T_UTF_32_HEAVY_BLACK_FEATHERED_RIGHTWARDS_ARROW 0x27B8 #define T_UTF_32_HEAVY_BLACK_FEATHERED_NORTH_EAST_ARROW 0x27B9 #define T_UTF_32_TEARDROP_BARBED_RIGHTWARDS_ARROW 0x27BA #define T_UTF_32_HEAVY_TEARDROP_SHANKED_RIGHTWARDS_ARROW 0x27BB #define T_UTF_32_WEDGE_TAILED_RIGHTWARDS_ARROW 0x27BC #define T_UTF_32_HEAVY_WEDGE_TAILED_RIGHTWARDS_ARROW 0x27BD #define T_UTF_32_OPEN_OUTLINED_RIGHTWARDS_ARROW 0x27BE #define T_UTF_32_DOUBLE_CURLY_LOOP 0x27BF #define T_UTF_32_THREE_DIMENSIONAL_ANGLE 0x27C0 #define T_UTF_32_WHITE_TRIANGLE_CONTAINING_SMALL_WHITE_TRIANGLE 0x27C1 #define T_UTF_32_PERPENDICULAR 0x27C2 #define T_UTF_32_OPEN_SUBSET 0x27C3 #define T_UTF_32_OPEN_SUPERSET 0x27C4 #define T_UTF_32_LEFT_S_SHAPED_BAG_DELIMITER 0x27C5 #define T_UTF_32_RIGHT_S_SHAPED_BAG_DELIMITER 0x27C6 #define T_UTF_32_OR_WITH_DOT_INSIDE 0x27C7 #define T_UTF_32_REVERSE_SOLIDUS_PRECEDING_SUBSET 0x27C8 #define T_UTF_32_SUPERSET_PRECEDING_SOLIDUS 0x27C9 #define T_UTF_32_VERTICAL_BAR_WITH_HORIZONTAL_STROKE 0x27CA #define T_UTF_32_MATHEMATICAL_RISING_DIAGONAL 0x27CB #define T_UTF_32_LONG_DIVISION 0x27CC #define T_UTF_32_MATHEMATICAL_FALLING_DIAGONAL 0x27CD #define T_UTF_32_SQUARED_LOGICAL_AND 0x27CE #define T_UTF_32_SQUARED_LOGICAL_OR 0x27CF #define T_UTF_32_WHITE_DIAMOND_WITH_CENTRED_DOT 0x27D0 #define T_UTF_32_AND_WITH_DOT 0x27D1 #define T_UTF_32_ELEMENT_OF_OPENING_UPWARDS 0x27D2 #define T_UTF_32_LOWER_RIGHT_CORNER_WITH_DOT 0x27D3 #define T_UTF_32_UPPER_LEFT_CORNER_WITH_DOT 0x27D4 #define T_UTF_32_LEFT_OUTER_JOIN 0x27D5 #define T_UTF_32_RIGHT_OUTER_JOIN 0x27D6 #define T_UTF_32_FULL_OUTER_JOIN 0x27D7 #define T_UTF_32_LARGE_UP_TACK 0x27D8 #define T_UTF_32_LARGE_DOWN_TACK 0x27D9 #define T_UTF_32_LEFT_AND_RIGHT_DOUBLE_TURNSTILE 0x27DA #define T_UTF_32_LEFT_AND_RIGHT_TACK 0x27DB #define T_UTF_32_LEFT_MULTIMAP 0x27DC #define T_UTF_32_LONG_RIGHT_TACK 0x27DD #define T_UTF_32_LONG_LEFT_TACK 0x27DE #define T_UTF_32_UP_TACK_WITH_CIRCLE_ABOVE 0x27DF #define T_UTF_32_LOZENGE_DIVIDED_BY_HORIZONTAL_RULE 0x27E0 #define T_UTF_32_WHITE_CONCAVE_SIDED_DIAMOND 0x27E1 #define T_UTF_32_WHITE_CONCAVE_SIDED_DIAMOND_WITH_LEFTWARDS_TICK 0x27E2 #define T_UTF_32_WHITE_CONCAVE_SIDED_DIAMOND_WITH_RIGHTWARDS_TICK 0x27E3 #define T_UTF_32_WHITE_SQUARE_WITH_LEFTWARDS_TICK 0x27E4 #define T_UTF_32_WHITE_SQUARE_WITH_RIGHTWARDS_TICK 0x27E5 #define T_UTF_32_MATHEMATICAL_LEFT_WHITE_SQUARE_BRACKET 0x27E6 #define T_UTF_32_MATHEMATICAL_RIGHT_WHITE_SQUARE_BRACKET 0x27E7 #define T_UTF_32_MATHEMATICAL_LEFT_ANGLE_BRACKET 0x27E8 #define T_UTF_32_MATHEMATICAL_RIGHT_ANGLE_BRACKET 0x27E9 #define T_UTF_32_MATHEMATICAL_LEFT_DOUBLE_ANGLE_BRACKET 0x27EA #define T_UTF_32_MATHEMATICAL_RIGHT_DOUBLE_ANGLE_BRACKET 0x27EB #define T_UTF_32_MATHEMATICAL_LEFT_WHITE_TORTOISE_SHELL_BRACKET 0x27EC #define T_UTF_32_MATHEMATICAL_RIGHT_WHITE_TORTOISE_SHELL_BRACKET 0x27ED #define T_UTF_32_MATHEMATICAL_LEFT_FLATTENED_PARENTHESIS 0x27EE #define T_UTF_32_MATHEMATICAL_RIGHT_FLATTENED_PARENTHESIS 0x27EF #define T_UTF_32_UPWARDS_QUADRUPLE_ARROW 0x27F0 #define T_UTF_32_DOWNWARDS_QUADRUPLE_ARROW 0x27F1 #define T_UTF_32_ANTICLOCKWISE_GAPPED_CIRCLE_ARROW 0x27F2 #define T_UTF_32_CLOCKWISE_GAPPED_CIRCLE_ARROW 0x27F3 #define T_UTF_32_RIGHT_ARROW_WITH_CIRCLED_PLUS 0x27F4 #define T_UTF_32_LONG_LEFTWARDS_ARROW 0x27F5 #define T_UTF_32_LONG_RIGHTWARDS_ARROW 0x27F6 #define T_UTF_32_LONG_LEFT_RIGHT_ARROW 0x27F7 #define T_UTF_32_LONG_LEFTWARDS_DOUBLE_ARROW 0x27F8 #define T_UTF_32_LONG_RIGHTWARDS_DOUBLE_ARROW 0x27F9 #define T_UTF_32_LONG_LEFT_RIGHT_DOUBLE_ARROW 0x27FA #define T_UTF_32_LONG_LEFTWARDS_ARROW_FROM_BAR 0x27FB #define T_UTF_32_LONG_RIGHTWARDS_ARROW_FROM_BAR 0x27FC #define T_UTF_32_LONG_LEFTWARDS_DOUBLE_ARROW_FROM_BAR 0x27FD #define T_UTF_32_LONG_RIGHTWARDS_DOUBLE_ARROW_FROM_BAR 0x27FE #define T_UTF_32_LONG_RIGHTWARDS_SQUIGGLE_ARROW 0x27FF #define T_UTF_32_BRAILLE_PATTERN_BLANK 0x2800 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1 0x2801 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2 0x2802 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12 0x2803 #define T_UTF_32_BRAILLE_PATTERN_DOTS_3 0x2804 #define T_UTF_32_BRAILLE_PATTERN_DOTS_13 0x2805 #define T_UTF_32_BRAILLE_PATTERN_DOTS_23 0x2806 #define T_UTF_32_BRAILLE_PATTERN_DOTS_123 0x2807 #define T_UTF_32_BRAILLE_PATTERN_DOTS_4 0x2808 #define T_UTF_32_BRAILLE_PATTERN_DOTS_14 0x2809 #define T_UTF_32_BRAILLE_PATTERN_DOTS_24 0x280A #define T_UTF_32_BRAILLE_PATTERN_DOTS_124 0x280B #define T_UTF_32_BRAILLE_PATTERN_DOTS_34 0x280C #define T_UTF_32_BRAILLE_PATTERN_DOTS_134 0x280D #define T_UTF_32_BRAILLE_PATTERN_DOTS_234 0x280E #define T_UTF_32_BRAILLE_PATTERN_DOTS_1234 0x280F #define T_UTF_32_BRAILLE_PATTERN_DOTS_5 0x2810 #define T_UTF_32_BRAILLE_PATTERN_DOTS_15 0x2811 #define T_UTF_32_BRAILLE_PATTERN_DOTS_25 0x2812 #define T_UTF_32_BRAILLE_PATTERN_DOTS_125 0x2813 #define T_UTF_32_BRAILLE_PATTERN_DOTS_35 0x2814 #define T_UTF_32_BRAILLE_PATTERN_DOTS_135 0x2815 #define T_UTF_32_BRAILLE_PATTERN_DOTS_235 0x2816 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1235 0x2817 #define T_UTF_32_BRAILLE_PATTERN_DOTS_45 0x2818 #define T_UTF_32_BRAILLE_PATTERN_DOTS_145 0x2819 #define T_UTF_32_BRAILLE_PATTERN_DOTS_245 0x281A #define T_UTF_32_BRAILLE_PATTERN_DOTS_1245 0x281B #define T_UTF_32_BRAILLE_PATTERN_DOTS_345 0x281C #define T_UTF_32_BRAILLE_PATTERN_DOTS_1345 0x281D #define T_UTF_32_BRAILLE_PATTERN_DOTS_2345 0x281E #define T_UTF_32_BRAILLE_PATTERN_DOTS_12345 0x281F #define T_UTF_32_BRAILLE_PATTERN_DOTS_6 0x2820 #define T_UTF_32_BRAILLE_PATTERN_DOTS_16 0x2821 #define T_UTF_32_BRAILLE_PATTERN_DOTS_26 0x2822 #define T_UTF_32_BRAILLE_PATTERN_DOTS_126 0x2823 #define T_UTF_32_BRAILLE_PATTERN_DOTS_36 0x2824 #define T_UTF_32_BRAILLE_PATTERN_DOTS_136 0x2825 #define T_UTF_32_BRAILLE_PATTERN_DOTS_236 0x2826 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1236 0x2827 #define T_UTF_32_BRAILLE_PATTERN_DOTS_46 0x2828 #define T_UTF_32_BRAILLE_PATTERN_DOTS_146 0x2829 #define T_UTF_32_BRAILLE_PATTERN_DOTS_246 0x282A #define T_UTF_32_BRAILLE_PATTERN_DOTS_1246 0x282B #define T_UTF_32_BRAILLE_PATTERN_DOTS_346 0x282C #define T_UTF_32_BRAILLE_PATTERN_DOTS_1346 0x282D #define T_UTF_32_BRAILLE_PATTERN_DOTS_2346 0x282E #define T_UTF_32_BRAILLE_PATTERN_DOTS_12346 0x282F #define T_UTF_32_BRAILLE_PATTERN_DOTS_56 0x2830 #define T_UTF_32_BRAILLE_PATTERN_DOTS_156 0x2831 #define T_UTF_32_BRAILLE_PATTERN_DOTS_256 0x2832 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1256 0x2833 #define T_UTF_32_BRAILLE_PATTERN_DOTS_356 0x2834 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1356 0x2835 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2356 0x2836 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12356 0x2837 #define T_UTF_32_BRAILLE_PATTERN_DOTS_456 0x2838 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1456 0x2839 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2456 0x283A #define T_UTF_32_BRAILLE_PATTERN_DOTS_12456 0x283B #define T_UTF_32_BRAILLE_PATTERN_DOTS_3456 0x283C #define T_UTF_32_BRAILLE_PATTERN_DOTS_13456 0x283D #define T_UTF_32_BRAILLE_PATTERN_DOTS_23456 0x283E #define T_UTF_32_BRAILLE_PATTERN_DOTS_123456 0x283F #define T_UTF_32_BRAILLE_PATTERN_DOTS_7 0x2840 #define T_UTF_32_BRAILLE_PATTERN_DOTS_17 0x2841 #define T_UTF_32_BRAILLE_PATTERN_DOTS_27 0x2842 #define T_UTF_32_BRAILLE_PATTERN_DOTS_127 0x2843 #define T_UTF_32_BRAILLE_PATTERN_DOTS_37 0x2844 #define T_UTF_32_BRAILLE_PATTERN_DOTS_137 0x2845 #define T_UTF_32_BRAILLE_PATTERN_DOTS_237 0x2846 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1237 0x2847 #define T_UTF_32_BRAILLE_PATTERN_DOTS_47 0x2848 #define T_UTF_32_BRAILLE_PATTERN_DOTS_147 0x2849 #define T_UTF_32_BRAILLE_PATTERN_DOTS_247 0x284A #define T_UTF_32_BRAILLE_PATTERN_DOTS_1247 0x284B #define T_UTF_32_BRAILLE_PATTERN_DOTS_347 0x284C #define T_UTF_32_BRAILLE_PATTERN_DOTS_1347 0x284D #define T_UTF_32_BRAILLE_PATTERN_DOTS_2347 0x284E #define T_UTF_32_BRAILLE_PATTERN_DOTS_12347 0x284F #define T_UTF_32_BRAILLE_PATTERN_DOTS_57 0x2850 #define T_UTF_32_BRAILLE_PATTERN_DOTS_157 0x2851 #define T_UTF_32_BRAILLE_PATTERN_DOTS_257 0x2852 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1257 0x2853 #define T_UTF_32_BRAILLE_PATTERN_DOTS_357 0x2854 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1357 0x2855 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2357 0x2856 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12357 0x2857 #define T_UTF_32_BRAILLE_PATTERN_DOTS_457 0x2858 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1457 0x2859 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2457 0x285A #define T_UTF_32_BRAILLE_PATTERN_DOTS_12457 0x285B #define T_UTF_32_BRAILLE_PATTERN_DOTS_3457 0x285C #define T_UTF_32_BRAILLE_PATTERN_DOTS_13457 0x285D #define T_UTF_32_BRAILLE_PATTERN_DOTS_23457 0x285E #define T_UTF_32_BRAILLE_PATTERN_DOTS_123457 0x285F #define T_UTF_32_BRAILLE_PATTERN_DOTS_67 0x2860 #define T_UTF_32_BRAILLE_PATTERN_DOTS_167 0x2861 #define T_UTF_32_BRAILLE_PATTERN_DOTS_267 0x2862 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1267 0x2863 #define T_UTF_32_BRAILLE_PATTERN_DOTS_367 0x2864 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1367 0x2865 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2367 0x2866 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12367 0x2867 #define T_UTF_32_BRAILLE_PATTERN_DOTS_467 0x2868 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1467 0x2869 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2467 0x286A #define T_UTF_32_BRAILLE_PATTERN_DOTS_12467 0x286B #define T_UTF_32_BRAILLE_PATTERN_DOTS_3467 0x286C #define T_UTF_32_BRAILLE_PATTERN_DOTS_13467 0x286D #define T_UTF_32_BRAILLE_PATTERN_DOTS_23467 0x286E #define T_UTF_32_BRAILLE_PATTERN_DOTS_123467 0x286F #define T_UTF_32_BRAILLE_PATTERN_DOTS_567 0x2870 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1567 0x2871 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2567 0x2872 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12567 0x2873 #define T_UTF_32_BRAILLE_PATTERN_DOTS_3567 0x2874 #define T_UTF_32_BRAILLE_PATTERN_DOTS_13567 0x2875 #define T_UTF_32_BRAILLE_PATTERN_DOTS_23567 0x2876 #define T_UTF_32_BRAILLE_PATTERN_DOTS_123567 0x2877 #define T_UTF_32_BRAILLE_PATTERN_DOTS_4567 0x2878 #define T_UTF_32_BRAILLE_PATTERN_DOTS_14567 0x2879 #define T_UTF_32_BRAILLE_PATTERN_DOTS_24567 0x287A #define T_UTF_32_BRAILLE_PATTERN_DOTS_124567 0x287B #define T_UTF_32_BRAILLE_PATTERN_DOTS_34567 0x287C #define T_UTF_32_BRAILLE_PATTERN_DOTS_134567 0x287D #define T_UTF_32_BRAILLE_PATTERN_DOTS_234567 0x287E #define T_UTF_32_BRAILLE_PATTERN_DOTS_1234567 0x287F #define T_UTF_32_BRAILLE_PATTERN_DOTS_8 0x2880 #define T_UTF_32_BRAILLE_PATTERN_DOTS_18 0x2881 #define T_UTF_32_BRAILLE_PATTERN_DOTS_28 0x2882 #define T_UTF_32_BRAILLE_PATTERN_DOTS_128 0x2883 #define T_UTF_32_BRAILLE_PATTERN_DOTS_38 0x2884 #define T_UTF_32_BRAILLE_PATTERN_DOTS_138 0x2885 #define T_UTF_32_BRAILLE_PATTERN_DOTS_238 0x2886 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1238 0x2887 #define T_UTF_32_BRAILLE_PATTERN_DOTS_48 0x2888 #define T_UTF_32_BRAILLE_PATTERN_DOTS_148 0x2889 #define T_UTF_32_BRAILLE_PATTERN_DOTS_248 0x288A #define T_UTF_32_BRAILLE_PATTERN_DOTS_1248 0x288B #define T_UTF_32_BRAILLE_PATTERN_DOTS_348 0x288C #define T_UTF_32_BRAILLE_PATTERN_DOTS_1348 0x288D #define T_UTF_32_BRAILLE_PATTERN_DOTS_2348 0x288E #define T_UTF_32_BRAILLE_PATTERN_DOTS_12348 0x288F #define T_UTF_32_BRAILLE_PATTERN_DOTS_58 0x2890 #define T_UTF_32_BRAILLE_PATTERN_DOTS_158 0x2891 #define T_UTF_32_BRAILLE_PATTERN_DOTS_258 0x2892 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1258 0x2893 #define T_UTF_32_BRAILLE_PATTERN_DOTS_358 0x2894 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1358 0x2895 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2358 0x2896 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12358 0x2897 #define T_UTF_32_BRAILLE_PATTERN_DOTS_458 0x2898 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1458 0x2899 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2458 0x289A #define T_UTF_32_BRAILLE_PATTERN_DOTS_12458 0x289B #define T_UTF_32_BRAILLE_PATTERN_DOTS_3458 0x289C #define T_UTF_32_BRAILLE_PATTERN_DOTS_13458 0x289D #define T_UTF_32_BRAILLE_PATTERN_DOTS_23458 0x289E #define T_UTF_32_BRAILLE_PATTERN_DOTS_123458 0x289F #define T_UTF_32_BRAILLE_PATTERN_DOTS_68 0x28A0 #define T_UTF_32_BRAILLE_PATTERN_DOTS_168 0x28A1 #define T_UTF_32_BRAILLE_PATTERN_DOTS_268 0x28A2 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1268 0x28A3 #define T_UTF_32_BRAILLE_PATTERN_DOTS_368 0x28A4 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1368 0x28A5 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2368 0x28A6 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12368 0x28A7 #define T_UTF_32_BRAILLE_PATTERN_DOTS_468 0x28A8 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1468 0x28A9 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2468 0x28AA #define T_UTF_32_BRAILLE_PATTERN_DOTS_12468 0x28AB #define T_UTF_32_BRAILLE_PATTERN_DOTS_3468 0x28AC #define T_UTF_32_BRAILLE_PATTERN_DOTS_13468 0x28AD #define T_UTF_32_BRAILLE_PATTERN_DOTS_23468 0x28AE #define T_UTF_32_BRAILLE_PATTERN_DOTS_123468 0x28AF #define T_UTF_32_BRAILLE_PATTERN_DOTS_568 0x28B0 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1568 0x28B1 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2568 0x28B2 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12568 0x28B3 #define T_UTF_32_BRAILLE_PATTERN_DOTS_3568 0x28B4 #define T_UTF_32_BRAILLE_PATTERN_DOTS_13568 0x28B5 #define T_UTF_32_BRAILLE_PATTERN_DOTS_23568 0x28B6 #define T_UTF_32_BRAILLE_PATTERN_DOTS_123568 0x28B7 #define T_UTF_32_BRAILLE_PATTERN_DOTS_4568 0x28B8 #define T_UTF_32_BRAILLE_PATTERN_DOTS_14568 0x28B9 #define T_UTF_32_BRAILLE_PATTERN_DOTS_24568 0x28BA #define T_UTF_32_BRAILLE_PATTERN_DOTS_124568 0x28BB #define T_UTF_32_BRAILLE_PATTERN_DOTS_34568 0x28BC #define T_UTF_32_BRAILLE_PATTERN_DOTS_134568 0x28BD #define T_UTF_32_BRAILLE_PATTERN_DOTS_234568 0x28BE #define T_UTF_32_BRAILLE_PATTERN_DOTS_1234568 0x28BF #define T_UTF_32_BRAILLE_PATTERN_DOTS_78 0x28C0 #define T_UTF_32_BRAILLE_PATTERN_DOTS_178 0x28C1 #define T_UTF_32_BRAILLE_PATTERN_DOTS_278 0x28C2 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1278 0x28C3 #define T_UTF_32_BRAILLE_PATTERN_DOTS_378 0x28C4 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1378 0x28C5 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2378 0x28C6 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12378 0x28C7 #define T_UTF_32_BRAILLE_PATTERN_DOTS_478 0x28C8 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1478 0x28C9 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2478 0x28CA #define T_UTF_32_BRAILLE_PATTERN_DOTS_12478 0x28CB #define T_UTF_32_BRAILLE_PATTERN_DOTS_3478 0x28CC #define T_UTF_32_BRAILLE_PATTERN_DOTS_13478 0x28CD #define T_UTF_32_BRAILLE_PATTERN_DOTS_23478 0x28CE #define T_UTF_32_BRAILLE_PATTERN_DOTS_123478 0x28CF #define T_UTF_32_BRAILLE_PATTERN_DOTS_578 0x28D0 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1578 0x28D1 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2578 0x28D2 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12578 0x28D3 #define T_UTF_32_BRAILLE_PATTERN_DOTS_3578 0x28D4 #define T_UTF_32_BRAILLE_PATTERN_DOTS_13578 0x28D5 #define T_UTF_32_BRAILLE_PATTERN_DOTS_23578 0x28D6 #define T_UTF_32_BRAILLE_PATTERN_DOTS_123578 0x28D7 #define T_UTF_32_BRAILLE_PATTERN_DOTS_4578 0x28D8 #define T_UTF_32_BRAILLE_PATTERN_DOTS_14578 0x28D9 #define T_UTF_32_BRAILLE_PATTERN_DOTS_24578 0x28DA #define T_UTF_32_BRAILLE_PATTERN_DOTS_124578 0x28DB #define T_UTF_32_BRAILLE_PATTERN_DOTS_34578 0x28DC #define T_UTF_32_BRAILLE_PATTERN_DOTS_134578 0x28DD #define T_UTF_32_BRAILLE_PATTERN_DOTS_234578 0x28DE #define T_UTF_32_BRAILLE_PATTERN_DOTS_1234578 0x28DF #define T_UTF_32_BRAILLE_PATTERN_DOTS_678 0x28E0 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1678 0x28E1 #define T_UTF_32_BRAILLE_PATTERN_DOTS_2678 0x28E2 #define T_UTF_32_BRAILLE_PATTERN_DOTS_12678 0x28E3 #define T_UTF_32_BRAILLE_PATTERN_DOTS_3678 0x28E4 #define T_UTF_32_BRAILLE_PATTERN_DOTS_13678 0x28E5 #define T_UTF_32_BRAILLE_PATTERN_DOTS_23678 0x28E6 #define T_UTF_32_BRAILLE_PATTERN_DOTS_123678 0x28E7 #define T_UTF_32_BRAILLE_PATTERN_DOTS_4678 0x28E8 #define T_UTF_32_BRAILLE_PATTERN_DOTS_14678 0x28E9 #define T_UTF_32_BRAILLE_PATTERN_DOTS_24678 0x28EA #define T_UTF_32_BRAILLE_PATTERN_DOTS_124678 0x28EB #define T_UTF_32_BRAILLE_PATTERN_DOTS_34678 0x28EC #define T_UTF_32_BRAILLE_PATTERN_DOTS_134678 0x28ED #define T_UTF_32_BRAILLE_PATTERN_DOTS_234678 0x28EE #define T_UTF_32_BRAILLE_PATTERN_DOTS_1234678 0x28EF #define T_UTF_32_BRAILLE_PATTERN_DOTS_5678 0x28F0 #define T_UTF_32_BRAILLE_PATTERN_DOTS_15678 0x28F1 #define T_UTF_32_BRAILLE_PATTERN_DOTS_25678 0x28F2 #define T_UTF_32_BRAILLE_PATTERN_DOTS_125678 0x28F3 #define T_UTF_32_BRAILLE_PATTERN_DOTS_35678 0x28F4 #define T_UTF_32_BRAILLE_PATTERN_DOTS_135678 0x28F5 #define T_UTF_32_BRAILLE_PATTERN_DOTS_235678 0x28F6 #define T_UTF_32_BRAILLE_PATTERN_DOTS_1235678 0x28F7 #define T_UTF_32_BRAILLE_PATTERN_DOTS_45678 0x28F8 #define T_UTF_32_BRAILLE_PATTERN_DOTS_145678 0x28F9 #define T_UTF_32_BRAILLE_PATTERN_DOTS_245678 0x28FA #define T_UTF_32_BRAILLE_PATTERN_DOTS_1245678 0x28FB #define T_UTF_32_BRAILLE_PATTERN_DOTS_345678 0x28FC #define T_UTF_32_BRAILLE_PATTERN_DOTS_1345678 0x28FD #define T_UTF_32_BRAILLE_PATTERN_DOTS_2345678 0x28FE #define T_UTF_32_BRAILLE_PATTERN_DOTS_12345678 0x28FF #define T_UTF_32_RIGHTWARDS_TWO_HEADED_ARROW_WITH_VERTICAL_STROKE 0x2900 #define T_UTF_32_RIGHTWARDS_TWO_HEADED_ARROW_WITH_DOUBLE_VERTICAL_STROKE 0x2901 #define T_UTF_32_LEFTWARDS_DOUBLE_ARROW_WITH_VERTICAL_STROKE 0x2902 #define T_UTF_32_RIGHTWARDS_DOUBLE_ARROW_WITH_VERTICAL_STROKE 0x2903 #define T_UTF_32_LEFT_RIGHT_DOUBLE_ARROW_WITH_VERTICAL_STROKE 0x2904 #define T_UTF_32_RIGHTWARDS_TWO_HEADED_ARROW_FROM_BAR 0x2905 #define T_UTF_32_LEFTWARDS_DOUBLE_ARROW_FROM_BAR 0x2906 #define T_UTF_32_RIGHTWARDS_DOUBLE_ARROW_FROM_BAR 0x2907 #define T_UTF_32_DOWNWARDS_ARROW_WITH_HORIZONTAL_STROKE 0x2908 #define T_UTF_32_UPWARDS_ARROW_WITH_HORIZONTAL_STROKE 0x2909 #define T_UTF_32_UPWARDS_TRIPLE_ARROW 0x290A #define T_UTF_32_DOWNWARDS_TRIPLE_ARROW 0x290B #define T_UTF_32_LEFTWARDS_DOUBLE_DASH_ARROW 0x290C #define T_UTF_32_RIGHTWARDS_DOUBLE_DASH_ARROW 0x290D #define T_UTF_32_LEFTWARDS_TRIPLE_DASH_ARROW 0x290E #define T_UTF_32_RIGHTWARDS_TRIPLE_DASH_ARROW 0x290F #define T_UTF_32_RIGHTWARDS_TWO_HEADED_TRIPLE_DASH_ARROW 0x2910 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_DOTTED_STEM 0x2911 #define T_UTF_32_UPWARDS_ARROW_TO_BAR 0x2912 #define T_UTF_32_DOWNWARDS_ARROW_TO_BAR 0x2913 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_TAIL_WITH_VERTICAL_STROKE 0x2914 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_TAIL_WITH_DOUBLE_VERTICAL_STROKE 0x2915 #define T_UTF_32_RIGHTWARDS_TWO_HEADED_ARROW_WITH_TAIL 0x2916 #define T_UTF_32_RIGHTWARDS_TWO_HEADED_ARROW_WITH_TAIL_WITH_VERTICAL_STROKE 0x2917 #define T_UTF_32_RIGHTWARDS_TWO_HEADED_ARROW_WITH_TAIL_WITH_DOUBLE_VERTICAL_STROKE 0x2918 #define T_UTF_32_LEFTWARDS_ARROW_TAIL 0x2919 #define T_UTF_32_RIGHTWARDS_ARROW_TAIL 0x291A #define T_UTF_32_LEFTWARDS_DOUBLE_ARROW_TAIL 0x291B #define T_UTF_32_RIGHTWARDS_DOUBLE_ARROW_TAIL 0x291C #define T_UTF_32_LEFTWARDS_ARROW_TO_BLACK_DIAMOND 0x291D #define T_UTF_32_RIGHTWARDS_ARROW_TO_BLACK_DIAMOND 0x291E #define T_UTF_32_LEFTWARDS_ARROW_FROM_BAR_TO_BLACK_DIAMOND 0x291F #define T_UTF_32_RIGHTWARDS_ARROW_FROM_BAR_TO_BLACK_DIAMOND 0x2920 #define T_UTF_32_NORTH_WEST_AND_SOUTH_EAST_ARROW 0x2921 #define T_UTF_32_NORTH_EAST_AND_SOUTH_WEST_ARROW 0x2922 #define T_UTF_32_NORTH_WEST_ARROW_WITH_HOOK 0x2923 #define T_UTF_32_NORTH_EAST_ARROW_WITH_HOOK 0x2924 #define T_UTF_32_SOUTH_EAST_ARROW_WITH_HOOK 0x2925 #define T_UTF_32_SOUTH_WEST_ARROW_WITH_HOOK 0x2926 #define T_UTF_32_NORTH_WEST_ARROW_AND_NORTH_EAST_ARROW 0x2927 #define T_UTF_32_NORTH_EAST_ARROW_AND_SOUTH_EAST_ARROW 0x2928 #define T_UTF_32_SOUTH_EAST_ARROW_AND_SOUTH_WEST_ARROW 0x2929 #define T_UTF_32_SOUTH_WEST_ARROW_AND_NORTH_WEST_ARROW 0x292A #define T_UTF_32_RISING_DIAGONAL_CROSSING_FALLING_DIAGONAL 0x292B #define T_UTF_32_FALLING_DIAGONAL_CROSSING_RISING_DIAGONAL 0x292C #define T_UTF_32_SOUTH_EAST_ARROW_CROSSING_NORTH_EAST_ARROW 0x292D #define T_UTF_32_NORTH_EAST_ARROW_CROSSING_SOUTH_EAST_ARROW 0x292E #define T_UTF_32_FALLING_DIAGONAL_CROSSING_NORTH_EAST_ARROW 0x292F #define T_UTF_32_RISING_DIAGONAL_CROSSING_SOUTH_EAST_ARROW 0x2930 #define T_UTF_32_NORTH_EAST_ARROW_CROSSING_NORTH_WEST_ARROW 0x2931 #define T_UTF_32_NORTH_WEST_ARROW_CROSSING_NORTH_EAST_ARROW 0x2932 #define T_UTF_32_WAVE_ARROW_POINTING_DIRECTLY_RIGHT 0x2933 #define T_UTF_32_ARROW_POINTING_RIGHTWARDS_THEN_CURVING_UPWARDS 0x2934 #define T_UTF_32_ARROW_POINTING_RIGHTWARDS_THEN_CURVING_DOWNWARDS 0x2935 #define T_UTF_32_ARROW_POINTING_DOWNWARDS_THEN_CURVING_LEFTWARDS 0x2936 #define T_UTF_32_ARROW_POINTING_DOWNWARDS_THEN_CURVING_RIGHTWARDS 0x2937 #define T_UTF_32_RIGHT_SIDE_ARC_CLOCKWISE_ARROW 0x2938 #define T_UTF_32_LEFT_SIDE_ARC_ANTICLOCKWISE_ARROW 0x2939 #define T_UTF_32_TOP_ARC_ANTICLOCKWISE_ARROW 0x293A #define T_UTF_32_BOTTOM_ARC_ANTICLOCKWISE_ARROW 0x293B #define T_UTF_32_TOP_ARC_CLOCKWISE_ARROW_WITH_MINUS 0x293C #define T_UTF_32_TOP_ARC_ANTICLOCKWISE_ARROW_WITH_PLUS 0x293D #define T_UTF_32_LOWER_RIGHT_SEMICIRCULAR_CLOCKWISE_ARROW 0x293E #define T_UTF_32_LOWER_LEFT_SEMICIRCULAR_ANTICLOCKWISE_ARROW 0x293F #define T_UTF_32_ANTICLOCKWISE_CLOSED_CIRCLE_ARROW 0x2940 #define T_UTF_32_CLOCKWISE_CLOSED_CIRCLE_ARROW 0x2941 #define T_UTF_32_RIGHTWARDS_ARROW_ABOVE_SHORT_LEFTWARDS_ARROW 0x2942 #define T_UTF_32_LEFTWARDS_ARROW_ABOVE_SHORT_RIGHTWARDS_ARROW 0x2943 #define T_UTF_32_SHORT_RIGHTWARDS_ARROW_ABOVE_LEFTWARDS_ARROW 0x2944 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_PLUS_BELOW 0x2945 #define T_UTF_32_LEFTWARDS_ARROW_WITH_PLUS_BELOW 0x2946 #define T_UTF_32_RIGHTWARDS_ARROW_THROUGH_X 0x2947 #define T_UTF_32_LEFT_RIGHT_ARROW_THROUGH_SMALL_CIRCLE 0x2948 #define T_UTF_32_UPWARDS_TWO_HEADED_ARROW_FROM_SMALL_CIRCLE 0x2949 #define T_UTF_32_LEFT_BARB_UP_RIGHT_BARB_DOWN_HARPOON 0x294A #define T_UTF_32_LEFT_BARB_DOWN_RIGHT_BARB_UP_HARPOON 0x294B #define T_UTF_32_UP_BARB_RIGHT_DOWN_BARB_LEFT_HARPOON 0x294C #define T_UTF_32_UP_BARB_LEFT_DOWN_BARB_RIGHT_HARPOON 0x294D #define T_UTF_32_LEFT_BARB_UP_RIGHT_BARB_UP_HARPOON 0x294E #define T_UTF_32_UP_BARB_RIGHT_DOWN_BARB_RIGHT_HARPOON 0x294F #define T_UTF_32_LEFT_BARB_DOWN_RIGHT_BARB_DOWN_HARPOON 0x2950 #define T_UTF_32_UP_BARB_LEFT_DOWN_BARB_LEFT_HARPOON 0x2951 #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_UP_TO_BAR 0x2952 #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_UP_TO_BAR 0x2953 #define T_UTF_32_UPWARDS_HARPOON_WITH_BARB_RIGHT_TO_BAR 0x2954 #define T_UTF_32_DOWNWARDS_HARPOON_WITH_BARB_RIGHT_TO_BAR 0x2955 #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_DOWN_TO_BAR 0x2956 #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_DOWN_TO_BAR 0x2957 #define T_UTF_32_UPWARDS_HARPOON_WITH_BARB_LEFT_TO_BAR 0x2958 #define T_UTF_32_DOWNWARDS_HARPOON_WITH_BARB_LEFT_TO_BAR 0x2959 #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_UP_FROM_BAR 0x295A #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_UP_FROM_BAR 0x295B #define T_UTF_32_UPWARDS_HARPOON_WITH_BARB_RIGHT_FROM_BAR 0x295C #define T_UTF_32_DOWNWARDS_HARPOON_WITH_BARB_RIGHT_FROM_BAR 0x295D #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_DOWN_FROM_BAR 0x295E #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_DOWN_FROM_BAR 0x295F #define T_UTF_32_UPWARDS_HARPOON_WITH_BARB_LEFT_FROM_BAR 0x2960 #define T_UTF_32_DOWNWARDS_HARPOON_WITH_BARB_LEFT_FROM_BAR 0x2961 #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_UP_ABOVE_LEFTWARDS_HARPOON_WITH_BARB_DOWN 0x2962 #define T_UTF_32_UPWARDS_HARPOON_WITH_BARB_LEFT_BESIDE_UPWARDS_HARPOON_WITH_BARB_RIGHT 0x2963 #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_UP_ABOVE_RIGHTWARDS_HARPOON_WITH_BARB_DOWN 0x2964 #define T_UTF_32_DOWNWARDS_HARPOON_WITH_BARB_LEFT_BESIDE_DOWNWARDS_HARPOON_WITH_BARB_RIGHT 0x2965 #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_UP_ABOVE_RIGHTWARDS_HARPOON_WITH_BARB_UP 0x2966 #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_DOWN_ABOVE_RIGHTWARDS_HARPOON_WITH_BARB_DOWN 0x2967 #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_UP_ABOVE_LEFTWARDS_HARPOON_WITH_BARB_UP 0x2968 #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_DOWN_ABOVE_LEFTWARDS_HARPOON_WITH_BARB_DOWN 0x2969 #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_UP_ABOVE_LONG_DASH 0x296A #define T_UTF_32_LEFTWARDS_HARPOON_WITH_BARB_DOWN_BELOW_LONG_DASH 0x296B #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_UP_ABOVE_LONG_DASH 0x296C #define T_UTF_32_RIGHTWARDS_HARPOON_WITH_BARB_DOWN_BELOW_LONG_DASH 0x296D #define T_UTF_32_UPWARDS_HARPOON_WITH_BARB_LEFT_BESIDE_DOWNWARDS_HARPOON_WITH_BARB_RIGHT 0x296E #define T_UTF_32_DOWNWARDS_HARPOON_WITH_BARB_LEFT_BESIDE_UPWARDS_HARPOON_WITH_BARB_RIGHT 0x296F #define T_UTF_32_RIGHT_DOUBLE_ARROW_WITH_ROUNDED_HEAD 0x2970 #define T_UTF_32_EQUALS_SIGN_ABOVE_RIGHTWARDS_ARROW 0x2971 #define T_UTF_32_TILDE_OPERATOR_ABOVE_RIGHTWARDS_ARROW 0x2972 #define T_UTF_32_LEFTWARDS_ARROW_ABOVE_TILDE_OPERATOR 0x2973 #define T_UTF_32_RIGHTWARDS_ARROW_ABOVE_TILDE_OPERATOR 0x2974 #define T_UTF_32_RIGHTWARDS_ARROW_ABOVE_ALMOST_EQUAL_TO 0x2975 #define T_UTF_32_LESS_THAN_ABOVE_LEFTWARDS_ARROW 0x2976 #define T_UTF_32_LEFTWARDS_ARROW_THROUGH_LESS_THAN 0x2977 #define T_UTF_32_GREATER_THAN_ABOVE_RIGHTWARDS_ARROW 0x2978 #define T_UTF_32_SUBSET_ABOVE_RIGHTWARDS_ARROW 0x2979 #define T_UTF_32_LEFTWARDS_ARROW_THROUGH_SUBSET 0x297A #define T_UTF_32_SUPERSET_ABOVE_LEFTWARDS_ARROW 0x297B #define T_UTF_32_LEFT_FISH_TAIL 0x297C #define T_UTF_32_RIGHT_FISH_TAIL 0x297D #define T_UTF_32_UP_FISH_TAIL 0x297E #define T_UTF_32_DOWN_FISH_TAIL 0x297F #define T_UTF_32_TRIPLE_VERTICAL_BAR_DELIMITER 0x2980 #define T_UTF_32_Z_NOTATION_SPOT 0x2981 #define T_UTF_32_Z_NOTATION_TYPE_COLON 0x2982 #define T_UTF_32_LEFT_WHITE_CURLY_BRACKET 0x2983 #define T_UTF_32_RIGHT_WHITE_CURLY_BRACKET 0x2984 #define T_UTF_32_LEFT_WHITE_PARENTHESIS 0x2985 #define T_UTF_32_RIGHT_WHITE_PARENTHESIS 0x2986 #define T_UTF_32_Z_NOTATION_LEFT_IMAGE_BRACKET 0x2987 #define T_UTF_32_Z_NOTATION_RIGHT_IMAGE_BRACKET 0x2988 #define T_UTF_32_Z_NOTATION_LEFT_BINDING_BRACKET 0x2989 #define T_UTF_32_Z_NOTATION_RIGHT_BINDING_BRACKET 0x298A #define T_UTF_32_LEFT_SQUARE_BRACKET_WITH_UNDERBAR 0x298B #define T_UTF_32_RIGHT_SQUARE_BRACKET_WITH_UNDERBAR 0x298C #define T_UTF_32_LEFT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER 0x298D #define T_UTF_32_RIGHT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER 0x298E #define T_UTF_32_LEFT_SQUARE_BRACKET_WITH_TICK_IN_BOTTOM_CORNER 0x298F #define T_UTF_32_RIGHT_SQUARE_BRACKET_WITH_TICK_IN_TOP_CORNER 0x2990 #define T_UTF_32_LEFT_ANGLE_BRACKET_WITH_DOT 0x2991 #define T_UTF_32_RIGHT_ANGLE_BRACKET_WITH_DOT 0x2992 #define T_UTF_32_LEFT_ARC_LESS_THAN_BRACKET 0x2993 #define T_UTF_32_RIGHT_ARC_GREATER_THAN_BRACKET 0x2994 #define T_UTF_32_DOUBLE_LEFT_ARC_GREATER_THAN_BRACKET 0x2995 #define T_UTF_32_DOUBLE_RIGHT_ARC_LESS_THAN_BRACKET 0x2996 #define T_UTF_32_LEFT_BLACK_TORTOISE_SHELL_BRACKET 0x2997 #define T_UTF_32_RIGHT_BLACK_TORTOISE_SHELL_BRACKET 0x2998 #define T_UTF_32_DOTTED_FENCE 0x2999 #define T_UTF_32_VERTICAL_ZIGZAG_LINE 0x299A #define T_UTF_32_MEASURED_ANGLE_OPENING_LEFT 0x299B #define T_UTF_32_RIGHT_ANGLE_VARIANT_WITH_SQUARE 0x299C #define T_UTF_32_MEASURED_RIGHT_ANGLE_WITH_DOT 0x299D #define T_UTF_32_ANGLE_WITH_S_INSIDE 0x299E #define T_UTF_32_ACUTE_ANGLE 0x299F #define T_UTF_32_SPHERICAL_ANGLE_OPENING_LEFT 0x29A0 #define T_UTF_32_SPHERICAL_ANGLE_OPENING_UP 0x29A1 #define T_UTF_32_TURNED_ANGLE 0x29A2 #define T_UTF_32_REVERSED_ANGLE 0x29A3 #define T_UTF_32_ANGLE_WITH_UNDERBAR 0x29A4 #define T_UTF_32_REVERSED_ANGLE_WITH_UNDERBAR 0x29A5 #define T_UTF_32_OBLIQUE_ANGLE_OPENING_UP 0x29A6 #define T_UTF_32_OBLIQUE_ANGLE_OPENING_DOWN 0x29A7 #define T_UTF_32_MEASURED_ANGLE_WITH_OPEN_ARM_ENDING_IN_ARROW_POINTING_UP_AND_RIGHT 0x29A8 #define T_UTF_32_MEASURED_ANGLE_WITH_OPEN_ARM_ENDING_IN_ARROW_POINTING_UP_AND_LEFT 0x29A9 #define T_UTF_32_MEASURED_ANGLE_WITH_OPEN_ARM_ENDING_IN_ARROW_POINTING_DOWN_AND_RIGHT 0x29AA #define T_UTF_32_MEASURED_ANGLE_WITH_OPEN_ARM_ENDING_IN_ARROW_POINTING_DOWN_AND_LEFT 0x29AB #define T_UTF_32_MEASURED_ANGLE_WITH_OPEN_ARM_ENDING_IN_ARROW_POINTING_RIGHT_AND_UP 0x29AC #define T_UTF_32_MEASURED_ANGLE_WITH_OPEN_ARM_ENDING_IN_ARROW_POINTING_LEFT_AND_UP 0x29AD #define T_UTF_32_MEASURED_ANGLE_WITH_OPEN_ARM_ENDING_IN_ARROW_POINTING_RIGHT_AND_DOWN 0x29AE #define T_UTF_32_MEASURED_ANGLE_WITH_OPEN_ARM_ENDING_IN_ARROW_POINTING_LEFT_AND_DOWN 0x29AF #define T_UTF_32_REVERSED_EMPTY_SET 0x29B0 #define T_UTF_32_EMPTY_SET_WITH_OVERBAR 0x29B1 #define T_UTF_32_EMPTY_SET_WITH_SMALL_CIRCLE_ABOVE 0x29B2 #define T_UTF_32_EMPTY_SET_WITH_RIGHT_ARROW_ABOVE 0x29B3 #define T_UTF_32_EMPTY_SET_WITH_LEFT_ARROW_ABOVE 0x29B4 #define T_UTF_32_CIRCLE_WITH_HORIZONTAL_BAR 0x29B5 #define T_UTF_32_CIRCLED_VERTICAL_BAR 0x29B6 #define T_UTF_32_CIRCLED_PARALLEL 0x29B7 #define T_UTF_32_CIRCLED_REVERSE_SOLIDUS 0x29B8 #define T_UTF_32_CIRCLED_PERPENDICULAR 0x29B9 #define T_UTF_32_CIRCLE_DIVIDED_BY_HORIZONTAL_BAR_AND_TOP_HALF_DIVIDED_BY_VERTICAL_BAR 0x29BA #define T_UTF_32_CIRCLE_WITH_SUPERIMPOSED_X 0x29BB #define T_UTF_32_CIRCLED_ANTICLOCKWISE_ROTATED_DIVISION_SIGN 0x29BC #define T_UTF_32_UP_ARROW_THROUGH_CIRCLE 0x29BD #define T_UTF_32_CIRCLED_WHITE_BULLET 0x29BE #define T_UTF_32_CIRCLED_BULLET 0x29BF #define T_UTF_32_CIRCLED_LESS_THAN 0x29C0 #define T_UTF_32_CIRCLED_GREATER_THAN 0x29C1 #define T_UTF_32_CIRCLE_WITH_SMALL_CIRCLE_TO_THE_RIGHT 0x29C2 #define T_UTF_32_CIRCLE_WITH_TWO_HORIZONTAL_STROKES_TO_THE_RIGHT 0x29C3 #define T_UTF_32_SQUARED_RISING_DIAGONAL_SLASH 0x29C4 #define T_UTF_32_SQUARED_FALLING_DIAGONAL_SLASH 0x29C5 #define T_UTF_32_SQUARED_ASTERISK 0x29C6 #define T_UTF_32_SQUARED_SMALL_CIRCLE 0x29C7 #define T_UTF_32_SQUARED_SQUARE 0x29C8 #define T_UTF_32_TWO_JOINED_SQUARES 0x29C9 #define T_UTF_32_TRIANGLE_WITH_DOT_ABOVE 0x29CA #define T_UTF_32_TRIANGLE_WITH_UNDERBAR 0x29CB #define T_UTF_32_S_IN_TRIANGLE 0x29CC #define T_UTF_32_TRIANGLE_WITH_SERIFS_AT_BOTTOM 0x29CD #define T_UTF_32_RIGHT_TRIANGLE_ABOVE_LEFT_TRIANGLE 0x29CE #define T_UTF_32_LEFT_TRIANGLE_BESIDE_VERTICAL_BAR 0x29CF #define T_UTF_32_VERTICAL_BAR_BESIDE_RIGHT_TRIANGLE 0x29D0 #define T_UTF_32_BOWTIE_WITH_LEFT_HALF_BLACK 0x29D1 #define T_UTF_32_BOWTIE_WITH_RIGHT_HALF_BLACK 0x29D2 #define T_UTF_32_BLACK_BOWTIE 0x29D3 #define T_UTF_32_TIMES_WITH_LEFT_HALF_BLACK 0x29D4 #define T_UTF_32_TIMES_WITH_RIGHT_HALF_BLACK 0x29D5 #define T_UTF_32_WHITE_HOURGLASS 0x29D6 #define T_UTF_32_BLACK_HOURGLASS 0x29D7 #define T_UTF_32_LEFT_WIGGLY_FENCE 0x29D8 #define T_UTF_32_RIGHT_WIGGLY_FENCE 0x29D9 #define T_UTF_32_LEFT_DOUBLE_WIGGLY_FENCE 0x29DA #define T_UTF_32_RIGHT_DOUBLE_WIGGLY_FENCE 0x29DB #define T_UTF_32_INCOMPLETE_INFINITY 0x29DC #define T_UTF_32_TIE_OVER_INFINITY 0x29DD #define T_UTF_32_INFINITY_NEGATED_WITH_VERTICAL_BAR 0x29DE #define T_UTF_32_DOUBLE_ENDED_MULTIMAP 0x29DF #define T_UTF_32_SQUARE_WITH_CONTOURED_OUTLINE 0x29E0 #define T_UTF_32_INCREASES_AS 0x29E1 #define T_UTF_32_SHUFFLE_PRODUCT 0x29E2 #define T_UTF_32_EQUALS_SIGN_AND_SLANTED_PARALLEL 0x29E3 #define T_UTF_32_EQUALS_SIGN_AND_SLANTED_PARALLEL_WITH_TILDE_ABOVE 0x29E4 #define T_UTF_32_IDENTICAL_TO_AND_SLANTED_PARALLEL 0x29E5 #define T_UTF_32_GLEICH_STARK 0x29E6 #define T_UTF_32_THERMODYNAMIC 0x29E7 #define T_UTF_32_DOWN_POINTING_TRIANGLE_WITH_LEFT_HALF_BLACK 0x29E8 #define T_UTF_32_DOWN_POINTING_TRIANGLE_WITH_RIGHT_HALF_BLACK 0x29E9 #define T_UTF_32_BLACK_DIAMOND_WITH_DOWN_ARROW 0x29EA #define T_UTF_32_BLACK_LOZENGE 0x29EB #define T_UTF_32_WHITE_CIRCLE_WITH_DOWN_ARROW 0x29EC #define T_UTF_32_BLACK_CIRCLE_WITH_DOWN_ARROW 0x29ED #define T_UTF_32_ERROR_BARRED_WHITE_SQUARE 0x29EE #define T_UTF_32_ERROR_BARRED_BLACK_SQUARE 0x29EF #define T_UTF_32_ERROR_BARRED_WHITE_DIAMOND 0x29F0 #define T_UTF_32_ERROR_BARRED_BLACK_DIAMOND 0x29F1 #define T_UTF_32_ERROR_BARRED_WHITE_CIRCLE 0x29F2 #define T_UTF_32_ERROR_BARRED_BLACK_CIRCLE 0x29F3 #define T_UTF_32_RULE_DELAYED 0x29F4 #define T_UTF_32_REVERSE_SOLIDUS_OPERATOR 0x29F5 #define T_UTF_32_SOLIDUS_WITH_OVERBAR 0x29F6 #define T_UTF_32_REVERSE_SOLIDUS_WITH_HORIZONTAL_STROKE 0x29F7 #define T_UTF_32_BIG_SOLIDUS 0x29F8 #define T_UTF_32_BIG_REVERSE_SOLIDUS 0x29F9 #define T_UTF_32_DOUBLE_PLUS 0x29FA #define T_UTF_32_TRIPLE_PLUS 0x29FB #define T_UTF_32_LEFT_POINTING_CURVED_ANGLE_BRACKET 0x29FC #define T_UTF_32_RIGHT_POINTING_CURVED_ANGLE_BRACKET 0x29FD #define T_UTF_32_TINY 0x29FE #define T_UTF_32_MINY 0x29FF #define T_UTF_32_N_ARY_CIRCLED_DOT_OPERATOR 0x2A00 #define T_UTF_32_N_ARY_CIRCLED_PLUS_OPERATOR 0x2A01 #define T_UTF_32_N_ARY_CIRCLED_TIMES_OPERATOR 0x2A02 #define T_UTF_32_N_ARY_UNION_OPERATOR_WITH_DOT 0x2A03 #define T_UTF_32_N_ARY_UNION_OPERATOR_WITH_PLUS 0x2A04 #define T_UTF_32_N_ARY_SQUARE_INTERSECTION_OPERATOR 0x2A05 #define T_UTF_32_N_ARY_SQUARE_UNION_OPERATOR 0x2A06 #define T_UTF_32_TWO_LOGICAL_AND_OPERATOR 0x2A07 #define T_UTF_32_TWO_LOGICAL_OR_OPERATOR 0x2A08 #define T_UTF_32_N_ARY_TIMES_OPERATOR 0x2A09 #define T_UTF_32_MODULO_TWO_SUM 0x2A0A #define T_UTF_32_SUMMATION_WITH_INTEGRAL 0x2A0B #define T_UTF_32_QUADRUPLE_INTEGRAL_OPERATOR 0x2A0C #define T_UTF_32_FINITE_PART_INTEGRAL 0x2A0D #define T_UTF_32_INTEGRAL_WITH_DOUBLE_STROKE 0x2A0E #define T_UTF_32_INTEGRAL_AVERAGE_WITH_SLASH 0x2A0F #define T_UTF_32_CIRCULATION_FUNCTION 0x2A10 #define T_UTF_32_ANTICLOCKWISE_INTEGRATION 0x2A11 #define T_UTF_32_LINE_INTEGRATION_WITH_RECTANGULAR_PATH_AROUND_POLE 0x2A12 #define T_UTF_32_LINE_INTEGRATION_WITH_SEMICIRCULAR_PATH_AROUND_POLE 0x2A13 #define T_UTF_32_LINE_INTEGRATION_NOT_INCLUDING_THE_POLE 0x2A14 #define T_UTF_32_INTEGRAL_AROUND_A_POINT_OPERATOR 0x2A15 #define T_UTF_32_QUATERNION_INTEGRAL_OPERATOR 0x2A16 #define T_UTF_32_INTEGRAL_WITH_LEFTWARDS_ARROW_WITH_HOOK 0x2A17 #define T_UTF_32_INTEGRAL_WITH_TIMES_SIGN 0x2A18 #define T_UTF_32_INTEGRAL_WITH_INTERSECTION 0x2A19 #define T_UTF_32_INTEGRAL_WITH_UNION 0x2A1A #define T_UTF_32_INTEGRAL_WITH_OVERBAR 0x2A1B #define T_UTF_32_INTEGRAL_WITH_UNDERBAR 0x2A1C #define T_UTF_32_JOIN 0x2A1D #define T_UTF_32_LARGE_LEFT_TRIANGLE_OPERATOR 0x2A1E #define T_UTF_32_Z_NOTATION_SCHEMA_COMPOSITION 0x2A1F #define T_UTF_32_Z_NOTATION_SCHEMA_PIPING 0x2A20 #define T_UTF_32_Z_NOTATION_SCHEMA_PROJECTION 0x2A21 #define T_UTF_32_PLUS_SIGN_WITH_SMALL_CIRCLE_ABOVE 0x2A22 #define T_UTF_32_PLUS_SIGN_WITH_CIRCUMFLEX_ACCENT_ABOVE 0x2A23 #define T_UTF_32_PLUS_SIGN_WITH_TILDE_ABOVE 0x2A24 #define T_UTF_32_PLUS_SIGN_WITH_DOT_BELOW 0x2A25 #define T_UTF_32_PLUS_SIGN_WITH_TILDE_BELOW 0x2A26 #define T_UTF_32_PLUS_SIGN_WITH_SUBSCRIPT_TWO 0x2A27 #define T_UTF_32_PLUS_SIGN_WITH_BLACK_TRIANGLE 0x2A28 #define T_UTF_32_MINUS_SIGN_WITH_COMMA_ABOVE 0x2A29 #define T_UTF_32_MINUS_SIGN_WITH_DOT_BELOW 0x2A2A #define T_UTF_32_MINUS_SIGN_WITH_FALLING_DOTS 0x2A2B #define T_UTF_32_MINUS_SIGN_WITH_RISING_DOTS 0x2A2C #define T_UTF_32_PLUS_SIGN_IN_LEFT_HALF_CIRCLE 0x2A2D #define T_UTF_32_PLUS_SIGN_IN_RIGHT_HALF_CIRCLE 0x2A2E #define T_UTF_32_VECTOR_OR_CROSS_PRODUCT 0x2A2F #define T_UTF_32_MULTIPLICATION_SIGN_WITH_DOT_ABOVE 0x2A30 #define T_UTF_32_MULTIPLICATION_SIGN_WITH_UNDERBAR 0x2A31 #define T_UTF_32_SEMIDIRECT_PRODUCT_WITH_BOTTOM_CLOSED 0x2A32 #define T_UTF_32_SMASH_PRODUCT 0x2A33 #define T_UTF_32_MULTIPLICATION_SIGN_IN_LEFT_HALF_CIRCLE 0x2A34 #define T_UTF_32_MULTIPLICATION_SIGN_IN_RIGHT_HALF_CIRCLE 0x2A35 #define T_UTF_32_CIRCLED_MULTIPLICATION_SIGN_WITH_CIRCUMFLEX_ACCENT 0x2A36 #define T_UTF_32_MULTIPLICATION_SIGN_IN_DOUBLE_CIRCLE 0x2A37 #define T_UTF_32_CIRCLED_DIVISION_SIGN 0x2A38 #define T_UTF_32_PLUS_SIGN_IN_TRIANGLE 0x2A39 #define T_UTF_32_MINUS_SIGN_IN_TRIANGLE 0x2A3A #define T_UTF_32_MULTIPLICATION_SIGN_IN_TRIANGLE 0x2A3B #define T_UTF_32_INTERIOR_PRODUCT 0x2A3C #define T_UTF_32_RIGHTHAND_INTERIOR_PRODUCT 0x2A3D #define T_UTF_32_Z_NOTATION_RELATIONAL_COMPOSITION 0x2A3E #define T_UTF_32_AMALGAMATION_OR_COPRODUCT 0x2A3F #define T_UTF_32_INTERSECTION_WITH_DOT 0x2A40 #define T_UTF_32_UNION_WITH_MINUS_SIGN 0x2A41 #define T_UTF_32_UNION_WITH_OVERBAR 0x2A42 #define T_UTF_32_INTERSECTION_WITH_OVERBAR 0x2A43 #define T_UTF_32_INTERSECTION_WITH_LOGICAL_AND 0x2A44 #define T_UTF_32_UNION_WITH_LOGICAL_OR 0x2A45 #define T_UTF_32_UNION_ABOVE_INTERSECTION 0x2A46 #define T_UTF_32_INTERSECTION_ABOVE_UNION 0x2A47 #define T_UTF_32_UNION_ABOVE_BAR_ABOVE_INTERSECTION 0x2A48 #define T_UTF_32_INTERSECTION_ABOVE_BAR_ABOVE_UNION 0x2A49 #define T_UTF_32_UNION_BESIDE_AND_JOINED_WITH_UNION 0x2A4A #define T_UTF_32_INTERSECTION_BESIDE_AND_JOINED_WITH_INTERSECTION 0x2A4B #define T_UTF_32_CLOSED_UNION_WITH_SERIFS 0x2A4C #define T_UTF_32_CLOSED_INTERSECTION_WITH_SERIFS 0x2A4D #define T_UTF_32_DOUBLE_SQUARE_INTERSECTION 0x2A4E #define T_UTF_32_DOUBLE_SQUARE_UNION 0x2A4F #define T_UTF_32_CLOSED_UNION_WITH_SERIFS_AND_SMASH_PRODUCT 0x2A50 #define T_UTF_32_LOGICAL_AND_WITH_DOT_ABOVE 0x2A51 #define T_UTF_32_LOGICAL_OR_WITH_DOT_ABOVE 0x2A52 #define T_UTF_32_DOUBLE_LOGICAL_AND 0x2A53 #define T_UTF_32_DOUBLE_LOGICAL_OR 0x2A54 #define T_UTF_32_TWO_INTERSECTING_LOGICAL_AND 0x2A55 #define T_UTF_32_TWO_INTERSECTING_LOGICAL_OR 0x2A56 #define T_UTF_32_SLOPING_LARGE_OR 0x2A57 #define T_UTF_32_SLOPING_LARGE_AND 0x2A58 #define T_UTF_32_LOGICAL_OR_OVERLAPPING_LOGICAL_AND 0x2A59 #define T_UTF_32_LOGICAL_AND_WITH_MIDDLE_STEM 0x2A5A #define T_UTF_32_LOGICAL_OR_WITH_MIDDLE_STEM 0x2A5B #define T_UTF_32_LOGICAL_AND_WITH_HORIZONTAL_DASH 0x2A5C #define T_UTF_32_LOGICAL_OR_WITH_HORIZONTAL_DASH 0x2A5D #define T_UTF_32_LOGICAL_AND_WITH_DOUBLE_OVERBAR 0x2A5E #define T_UTF_32_LOGICAL_AND_WITH_UNDERBAR 0x2A5F #define T_UTF_32_LOGICAL_AND_WITH_DOUBLE_UNDERBAR 0x2A60 #define T_UTF_32_SMALL_VEE_WITH_UNDERBAR 0x2A61 #define T_UTF_32_LOGICAL_OR_WITH_DOUBLE_OVERBAR 0x2A62 #define T_UTF_32_LOGICAL_OR_WITH_DOUBLE_UNDERBAR 0x2A63 #define T_UTF_32_Z_NOTATION_DOMAIN_ANTIRESTRICTION 0x2A64 #define T_UTF_32_Z_NOTATION_RANGE_ANTIRESTRICTION 0x2A65 #define T_UTF_32_EQUALS_SIGN_WITH_DOT_BELOW 0x2A66 #define T_UTF_32_IDENTICAL_WITH_DOT_ABOVE 0x2A67 #define T_UTF_32_TRIPLE_HORIZONTAL_BAR_WITH_DOUBLE_VERTICAL_STROKE 0x2A68 #define T_UTF_32_TRIPLE_HORIZONTAL_BAR_WITH_TRIPLE_VERTICAL_STROKE 0x2A69 #define T_UTF_32_TILDE_OPERATOR_WITH_DOT_ABOVE 0x2A6A #define T_UTF_32_TILDE_OPERATOR_WITH_RISING_DOTS 0x2A6B #define T_UTF_32_SIMILAR_MINUS_SIMILAR 0x2A6C #define T_UTF_32_CONGRUENT_WITH_DOT_ABOVE 0x2A6D #define T_UTF_32_EQUALS_WITH_ASTERISK 0x2A6E #define T_UTF_32_ALMOST_EQUAL_TO_WITH_CIRCUMFLEX_ACCENT 0x2A6F #define T_UTF_32_APPROXIMATELY_EQUAL_OR_EQUAL_TO 0x2A70 #define T_UTF_32_EQUALS_SIGN_ABOVE_PLUS_SIGN 0x2A71 #define T_UTF_32_PLUS_SIGN_ABOVE_EQUALS_SIGN 0x2A72 #define T_UTF_32_EQUALS_SIGN_ABOVE_TILDE_OPERATOR 0x2A73 #define T_UTF_32_DOUBLE_COLON_EQUAL 0x2A74 #define T_UTF_32_TWO_CONSECUTIVE_EQUALS_SIGNS 0x2A75 #define T_UTF_32_THREE_CONSECUTIVE_EQUALS_SIGNS 0x2A76 #define T_UTF_32_EQUALS_SIGN_WITH_TWO_DOTS_ABOVE_AND_TWO_DOTS_BELOW 0x2A77 #define T_UTF_32_EQUIVALENT_WITH_FOUR_DOTS_ABOVE 0x2A78 #define T_UTF_32_LESS_THAN_WITH_CIRCLE_INSIDE 0x2A79 #define T_UTF_32_GREATER_THAN_WITH_CIRCLE_INSIDE 0x2A7A #define T_UTF_32_LESS_THAN_WITH_QUESTION_MARK_ABOVE 0x2A7B #define T_UTF_32_GREATER_THAN_WITH_QUESTION_MARK_ABOVE 0x2A7C #define T_UTF_32_LESS_THAN_OR_SLANTED_EQUAL_TO 0x2A7D #define T_UTF_32_GREATER_THAN_OR_SLANTED_EQUAL_TO 0x2A7E #define T_UTF_32_LESS_THAN_OR_SLANTED_EQUAL_TO_WITH_DOT_INSIDE 0x2A7F #define T_UTF_32_GREATER_THAN_OR_SLANTED_EQUAL_TO_WITH_DOT_INSIDE 0x2A80 #define T_UTF_32_LESS_THAN_OR_SLANTED_EQUAL_TO_WITH_DOT_ABOVE 0x2A81 #define T_UTF_32_GREATER_THAN_OR_SLANTED_EQUAL_TO_WITH_DOT_ABOVE 0x2A82 #define T_UTF_32_LESS_THAN_OR_SLANTED_EQUAL_TO_WITH_DOT_ABOVE_RIGHT 0x2A83 #define T_UTF_32_GREATER_THAN_OR_SLANTED_EQUAL_TO_WITH_DOT_ABOVE_LEFT 0x2A84 #define T_UTF_32_LESS_THAN_OR_APPROXIMATE 0x2A85 #define T_UTF_32_GREATER_THAN_OR_APPROXIMATE 0x2A86 #define T_UTF_32_LESS_THAN_AND_SINGLE_LINE_NOT_EQUAL_TO 0x2A87 #define T_UTF_32_GREATER_THAN_AND_SINGLE_LINE_NOT_EQUAL_TO 0x2A88 #define T_UTF_32_LESS_THAN_AND_NOT_APPROXIMATE 0x2A89 #define T_UTF_32_GREATER_THAN_AND_NOT_APPROXIMATE 0x2A8A #define T_UTF_32_LESS_THAN_ABOVE_DOUBLE_LINE_EQUAL_ABOVE_GREATER_THAN 0x2A8B #define T_UTF_32_GREATER_THAN_ABOVE_DOUBLE_LINE_EQUAL_ABOVE_LESS_THAN 0x2A8C #define T_UTF_32_LESS_THAN_ABOVE_SIMILAR_OR_EQUAL 0x2A8D #define T_UTF_32_GREATER_THAN_ABOVE_SIMILAR_OR_EQUAL 0x2A8E #define T_UTF_32_LESS_THAN_ABOVE_SIMILAR_ABOVE_GREATER_THAN 0x2A8F #define T_UTF_32_GREATER_THAN_ABOVE_SIMILAR_ABOVE_LESS_THAN 0x2A90 #define T_UTF_32_LESS_THAN_ABOVE_GREATER_THAN_ABOVE_DOUBLE_LINE_EQUAL 0x2A91 #define T_UTF_32_GREATER_THAN_ABOVE_LESS_THAN_ABOVE_DOUBLE_LINE_EQUAL 0x2A92 #define T_UTF_32_LESS_THAN_ABOVE_SLANTED_EQUAL_ABOVE_GREATER_THAN_ABOVE_SLANTED_EQUAL 0x2A93 #define T_UTF_32_GREATER_THAN_ABOVE_SLANTED_EQUAL_ABOVE_LESS_THAN_ABOVE_SLANTED_EQUAL 0x2A94 #define T_UTF_32_SLANTED_EQUAL_TO_OR_LESS_THAN 0x2A95 #define T_UTF_32_SLANTED_EQUAL_TO_OR_GREATER_THAN 0x2A96 #define T_UTF_32_SLANTED_EQUAL_TO_OR_LESS_THAN_WITH_DOT_INSIDE 0x2A97 #define T_UTF_32_SLANTED_EQUAL_TO_OR_GREATER_THAN_WITH_DOT_INSIDE 0x2A98 #define T_UTF_32_DOUBLE_LINE_EQUAL_TO_OR_LESS_THAN 0x2A99 #define T_UTF_32_DOUBLE_LINE_EQUAL_TO_OR_GREATER_THAN 0x2A9A #define T_UTF_32_DOUBLE_LINE_SLANTED_EQUAL_TO_OR_LESS_THAN 0x2A9B #define T_UTF_32_DOUBLE_LINE_SLANTED_EQUAL_TO_OR_GREATER_THAN 0x2A9C #define T_UTF_32_SIMILAR_OR_LESS_THAN 0x2A9D #define T_UTF_32_SIMILAR_OR_GREATER_THAN 0x2A9E #define T_UTF_32_SIMILAR_ABOVE_LESS_THAN_ABOVE_EQUALS_SIGN 0x2A9F #define T_UTF_32_SIMILAR_ABOVE_GREATER_THAN_ABOVE_EQUALS_SIGN 0x2AA0 #define T_UTF_32_DOUBLE_NESTED_LESS_THAN 0x2AA1 #define T_UTF_32_DOUBLE_NESTED_GREATER_THAN 0x2AA2 #define T_UTF_32_DOUBLE_NESTED_LESS_THAN_WITH_UNDERBAR 0x2AA3 #define T_UTF_32_GREATER_THAN_OVERLAPPING_LESS_THAN 0x2AA4 #define T_UTF_32_GREATER_THAN_BESIDE_LESS_THAN 0x2AA5 #define T_UTF_32_LESS_THAN_CLOSED_BY_CURVE 0x2AA6 #define T_UTF_32_GREATER_THAN_CLOSED_BY_CURVE 0x2AA7 #define T_UTF_32_LESS_THAN_CLOSED_BY_CURVE_ABOVE_SLANTED_EQUAL 0x2AA8 #define T_UTF_32_GREATER_THAN_CLOSED_BY_CURVE_ABOVE_SLANTED_EQUAL 0x2AA9 #define T_UTF_32_SMALLER_THAN 0x2AAA #define T_UTF_32_LARGER_THAN 0x2AAB #define T_UTF_32_SMALLER_THAN_OR_EQUAL_TO 0x2AAC #define T_UTF_32_LARGER_THAN_OR_EQUAL_TO 0x2AAD #define T_UTF_32_EQUALS_SIGN_WITH_BUMPY_ABOVE 0x2AAE #define T_UTF_32_PRECEDES_ABOVE_SINGLE_LINE_EQUALS_SIGN 0x2AAF #define T_UTF_32_SUCCEEDS_ABOVE_SINGLE_LINE_EQUALS_SIGN 0x2AB0 #define T_UTF_32_PRECEDES_ABOVE_SINGLE_LINE_NOT_EQUAL_TO 0x2AB1 #define T_UTF_32_SUCCEEDS_ABOVE_SINGLE_LINE_NOT_EQUAL_TO 0x2AB2 #define T_UTF_32_PRECEDES_ABOVE_EQUALS_SIGN 0x2AB3 #define T_UTF_32_SUCCEEDS_ABOVE_EQUALS_SIGN 0x2AB4 #define T_UTF_32_PRECEDES_ABOVE_NOT_EQUAL_TO 0x2AB5 #define T_UTF_32_SUCCEEDS_ABOVE_NOT_EQUAL_TO 0x2AB6 #define T_UTF_32_PRECEDES_ABOVE_ALMOST_EQUAL_TO 0x2AB7 #define T_UTF_32_SUCCEEDS_ABOVE_ALMOST_EQUAL_TO 0x2AB8 #define T_UTF_32_PRECEDES_ABOVE_NOT_ALMOST_EQUAL_TO 0x2AB9 #define T_UTF_32_SUCCEEDS_ABOVE_NOT_ALMOST_EQUAL_TO 0x2ABA #define T_UTF_32_DOUBLE_PRECEDES 0x2ABB #define T_UTF_32_DOUBLE_SUCCEEDS 0x2ABC #define T_UTF_32_SUBSET_WITH_DOT 0x2ABD #define T_UTF_32_SUPERSET_WITH_DOT 0x2ABE #define T_UTF_32_SUBSET_WITH_PLUS_SIGN_BELOW 0x2ABF #define T_UTF_32_SUPERSET_WITH_PLUS_SIGN_BELOW 0x2AC0 #define T_UTF_32_SUBSET_WITH_MULTIPLICATION_SIGN_BELOW 0x2AC1 #define T_UTF_32_SUPERSET_WITH_MULTIPLICATION_SIGN_BELOW 0x2AC2 #define T_UTF_32_SUBSET_OF_OR_EQUAL_TO_WITH_DOT_ABOVE 0x2AC3 #define T_UTF_32_SUPERSET_OF_OR_EQUAL_TO_WITH_DOT_ABOVE 0x2AC4 #define T_UTF_32_SUBSET_OF_ABOVE_EQUALS_SIGN 0x2AC5 #define T_UTF_32_SUPERSET_OF_ABOVE_EQUALS_SIGN 0x2AC6 #define T_UTF_32_SUBSET_OF_ABOVE_TILDE_OPERATOR 0x2AC7 #define T_UTF_32_SUPERSET_OF_ABOVE_TILDE_OPERATOR 0x2AC8 #define T_UTF_32_SUBSET_OF_ABOVE_ALMOST_EQUAL_TO 0x2AC9 #define T_UTF_32_SUPERSET_OF_ABOVE_ALMOST_EQUAL_TO 0x2ACA #define T_UTF_32_SUBSET_OF_ABOVE_NOT_EQUAL_TO 0x2ACB #define T_UTF_32_SUPERSET_OF_ABOVE_NOT_EQUAL_TO 0x2ACC #define T_UTF_32_SQUARE_LEFT_OPEN_BOX_OPERATOR 0x2ACD #define T_UTF_32_SQUARE_RIGHT_OPEN_BOX_OPERATOR 0x2ACE #define T_UTF_32_CLOSED_SUBSET 0x2ACF #define T_UTF_32_CLOSED_SUPERSET 0x2AD0 #define T_UTF_32_CLOSED_SUBSET_OR_EQUAL_TO 0x2AD1 #define T_UTF_32_CLOSED_SUPERSET_OR_EQUAL_TO 0x2AD2 #define T_UTF_32_SUBSET_ABOVE_SUPERSET 0x2AD3 #define T_UTF_32_SUPERSET_ABOVE_SUBSET 0x2AD4 #define T_UTF_32_SUBSET_ABOVE_SUBSET 0x2AD5 #define T_UTF_32_SUPERSET_ABOVE_SUPERSET 0x2AD6 #define T_UTF_32_SUPERSET_BESIDE_SUBSET 0x2AD7 #define T_UTF_32_SUPERSET_BESIDE_AND_JOINED_BY_DASH_WITH_SUBSET 0x2AD8 #define T_UTF_32_ELEMENT_OF_OPENING_DOWNWARDS 0x2AD9 #define T_UTF_32_PITCHFORK_WITH_TEE_TOP 0x2ADA #define T_UTF_32_TRANSVERSAL_INTERSECTION 0x2ADB #define T_UTF_32_FORKING 0x2ADC #define T_UTF_32_NONFORKING 0x2ADD #define T_UTF_32_SHORT_LEFT_TACK 0x2ADE #define T_UTF_32_SHORT_DOWN_TACK 0x2ADF #define T_UTF_32_SHORT_UP_TACK 0x2AE0 #define T_UTF_32_PERPENDICULAR_WITH_S 0x2AE1 #define T_UTF_32_VERTICAL_BAR_TRIPLE_RIGHT_TURNSTILE 0x2AE2 #define T_UTF_32_DOUBLE_VERTICAL_BAR_LEFT_TURNSTILE 0x2AE3 #define T_UTF_32_VERTICAL_BAR_DOUBLE_LEFT_TURNSTILE 0x2AE4 #define T_UTF_32_DOUBLE_VERTICAL_BAR_DOUBLE_LEFT_TURNSTILE 0x2AE5 #define T_UTF_32_LONG_DASH_FROM_LEFT_MEMBER_OF_DOUBLE_VERTICAL 0x2AE6 #define T_UTF_32_SHORT_DOWN_TACK_WITH_OVERBAR 0x2AE7 #define T_UTF_32_SHORT_UP_TACK_WITH_UNDERBAR 0x2AE8 #define T_UTF_32_SHORT_UP_TACK_ABOVE_SHORT_DOWN_TACK 0x2AE9 #define T_UTF_32_DOUBLE_DOWN_TACK 0x2AEA #define T_UTF_32_DOUBLE_UP_TACK 0x2AEB #define T_UTF_32_DOUBLE_STROKE_NOT_SIGN 0x2AEC #define T_UTF_32_REVERSED_DOUBLE_STROKE_NOT_SIGN 0x2AED #define T_UTF_32_DOES_NOT_DIVIDE_WITH_REVERSED_NEGATION_SLASH 0x2AEE #define T_UTF_32_VERTICAL_LINE_WITH_CIRCLE_ABOVE 0x2AEF #define T_UTF_32_VERTICAL_LINE_WITH_CIRCLE_BELOW 0x2AF0 #define T_UTF_32_DOWN_TACK_WITH_CIRCLE_BELOW 0x2AF1 #define T_UTF_32_PARALLEL_WITH_HORIZONTAL_STROKE 0x2AF2 #define T_UTF_32_PARALLEL_WITH_TILDE_OPERATOR 0x2AF3 #define T_UTF_32_TRIPLE_VERTICAL_BAR_BINARY_RELATION 0x2AF4 #define T_UTF_32_TRIPLE_VERTICAL_BAR_WITH_HORIZONTAL_STROKE 0x2AF5 #define T_UTF_32_TRIPLE_COLON_OPERATOR 0x2AF6 #define T_UTF_32_TRIPLE_NESTED_LESS_THAN 0x2AF7 #define T_UTF_32_TRIPLE_NESTED_GREATER_THAN 0x2AF8 #define T_UTF_32_DOUBLE_LINE_SLANTED_LESS_THAN_OR_EQUAL_TO 0x2AF9 #define T_UTF_32_DOUBLE_LINE_SLANTED_GREATER_THAN_OR_EQUAL_TO 0x2AFA #define T_UTF_32_TRIPLE_SOLIDUS_BINARY_RELATION 0x2AFB #define T_UTF_32_LARGE_TRIPLE_VERTICAL_BAR_OPERATOR 0x2AFC #define T_UTF_32_DOUBLE_SOLIDUS_OPERATOR 0x2AFD #define T_UTF_32_WHITE_VERTICAL_BAR 0x2AFE #define T_UTF_32_N_ARY_WHITE_VERTICAL_BAR 0x2AFF #define T_UTF_32_NORTH_EAST_WHITE_ARROW 0x2B00 #define T_UTF_32_NORTH_WEST_WHITE_ARROW 0x2B01 #define T_UTF_32_SOUTH_EAST_WHITE_ARROW 0x2B02 #define T_UTF_32_SOUTH_WEST_WHITE_ARROW 0x2B03 #define T_UTF_32_LEFT_RIGHT_WHITE_ARROW 0x2B04 #define T_UTF_32_LEFTWARDS_BLACK_ARROW 0x2B05 #define T_UTF_32_UPWARDS_BLACK_ARROW 0x2B06 #define T_UTF_32_DOWNWARDS_BLACK_ARROW 0x2B07 #define T_UTF_32_NORTH_EAST_BLACK_ARROW 0x2B08 #define T_UTF_32_NORTH_WEST_BLACK_ARROW 0x2B09 #define T_UTF_32_SOUTH_EAST_BLACK_ARROW 0x2B0A #define T_UTF_32_SOUTH_WEST_BLACK_ARROW 0x2B0B #define T_UTF_32_LEFT_RIGHT_BLACK_ARROW 0x2B0C #define T_UTF_32_UP_DOWN_BLACK_ARROW 0x2B0D #define T_UTF_32_RIGHTWARDS_ARROW_WITH_TIP_DOWNWARDS 0x2B0E #define T_UTF_32_RIGHTWARDS_ARROW_WITH_TIP_UPWARDS 0x2B0F #define T_UTF_32_LEFTWARDS_ARROW_WITH_TIP_DOWNWARDS 0x2B10 #define T_UTF_32_LEFTWARDS_ARROW_WITH_TIP_UPWARDS 0x2B11 #define T_UTF_32_SQUARE_WITH_TOP_HALF_BLACK 0x2B12 #define T_UTF_32_SQUARE_WITH_BOTTOM_HALF_BLACK 0x2B13 #define T_UTF_32_SQUARE_WITH_UPPER_RIGHT_DIAGONAL_HALF_BLACK 0x2B14 #define T_UTF_32_SQUARE_WITH_LOWER_LEFT_DIAGONAL_HALF_BLACK 0x2B15 #define T_UTF_32_DIAMOND_WITH_LEFT_HALF_BLACK 0x2B16 #define T_UTF_32_DIAMOND_WITH_RIGHT_HALF_BLACK 0x2B17 #define T_UTF_32_DIAMOND_WITH_TOP_HALF_BLACK 0x2B18 #define T_UTF_32_DIAMOND_WITH_BOTTOM_HALF_BLACK 0x2B19 #define T_UTF_32_DOTTED_SQUARE 0x2B1A #define T_UTF_32_BLACK_LARGE_SQUARE 0x2B1B #define T_UTF_32_WHITE_LARGE_SQUARE 0x2B1C #define T_UTF_32_BLACK_VERY_SMALL_SQUARE 0x2B1D #define T_UTF_32_WHITE_VERY_SMALL_SQUARE 0x2B1E #define T_UTF_32_BLACK_PENTAGON 0x2B1F #define T_UTF_32_WHITE_PENTAGON 0x2B20 #define T_UTF_32_WHITE_HEXAGON 0x2B21 #define T_UTF_32_BLACK_HEXAGON 0x2B22 #define T_UTF_32_HORIZONTAL_BLACK_HEXAGON 0x2B23 #define T_UTF_32_BLACK_LARGE_CIRCLE 0x2B24 #define T_UTF_32_BLACK_MEDIUM_DIAMOND 0x2B25 #define T_UTF_32_WHITE_MEDIUM_DIAMOND 0x2B26 #define T_UTF_32_BLACK_MEDIUM_LOZENGE 0x2B27 #define T_UTF_32_WHITE_MEDIUM_LOZENGE 0x2B28 #define T_UTF_32_BLACK_SMALL_DIAMOND 0x2B29 #define T_UTF_32_BLACK_SMALL_LOZENGE 0x2B2A #define T_UTF_32_WHITE_SMALL_LOZENGE 0x2B2B #define T_UTF_32_BLACK_HORIZONTAL_ELLIPSE 0x2B2C #define T_UTF_32_WHITE_HORIZONTAL_ELLIPSE 0x2B2D #define T_UTF_32_BLACK_VERTICAL_ELLIPSE 0x2B2E #define T_UTF_32_WHITE_VERTICAL_ELLIPSE 0x2B2F #define T_UTF_32_LEFT_ARROW_WITH_SMALL_CIRCLE 0x2B30 #define T_UTF_32_THREE_LEFTWARDS_ARROWS 0x2B31 #define T_UTF_32_LEFT_ARROW_WITH_CIRCLED_PLUS 0x2B32 #define T_UTF_32_LONG_LEFTWARDS_SQUIGGLE_ARROW 0x2B33 #define T_UTF_32_LEFTWARDS_TWO_HEADED_ARROW_WITH_VERTICAL_STROKE 0x2B34 #define T_UTF_32_LEFTWARDS_TWO_HEADED_ARROW_WITH_DOUBLE_VERTICAL_STROKE 0x2B35 #define T_UTF_32_LEFTWARDS_TWO_HEADED_ARROW_FROM_BAR 0x2B36 #define T_UTF_32_LEFTWARDS_TWO_HEADED_TRIPLE_DASH_ARROW 0x2B37 #define T_UTF_32_LEFTWARDS_ARROW_WITH_DOTTED_STEM 0x2B38 #define T_UTF_32_LEFTWARDS_ARROW_WITH_TAIL_WITH_VERTICAL_STROKE 0x2B39 #define T_UTF_32_LEFTWARDS_ARROW_WITH_TAIL_WITH_DOUBLE_VERTICAL_STROKE 0x2B3A #define T_UTF_32_LEFTWARDS_TWO_HEADED_ARROW_WITH_TAIL 0x2B3B #define T_UTF_32_LEFTWARDS_TWO_HEADED_ARROW_WITH_TAIL_WITH_VERTICAL_STROKE 0x2B3C #define T_UTF_32_LEFTWARDS_TWO_HEADED_ARROW_WITH_TAIL_WITH_DOUBLE_VERTICAL_STROKE 0x2B3D #define T_UTF_32_LEFTWARDS_ARROW_THROUGH_X 0x2B3E #define T_UTF_32_WAVE_ARROW_POINTING_DIRECTLY_LEFT 0x2B3F #define T_UTF_32_EQUALS_SIGN_ABOVE_LEFTWARDS_ARROW 0x2B40 #define T_UTF_32_REVERSE_TILDE_OPERATOR_ABOVE_LEFTWARDS_ARROW 0x2B41 #define T_UTF_32_LEFTWARDS_ARROW_ABOVE_REVERSE_ALMOST_EQUAL_TO 0x2B42 #define T_UTF_32_RIGHTWARDS_ARROW_THROUGH_GREATER_THAN 0x2B43 #define T_UTF_32_RIGHTWARDS_ARROW_THROUGH_SUPERSET 0x2B44 #define T_UTF_32_LEFTWARDS_QUADRUPLE_ARROW 0x2B45 #define T_UTF_32_RIGHTWARDS_QUADRUPLE_ARROW 0x2B46 #define T_UTF_32_REVERSE_TILDE_OPERATOR_ABOVE_RIGHTWARDS_ARROW 0x2B47 #define T_UTF_32_RIGHTWARDS_ARROW_ABOVE_REVERSE_ALMOST_EQUAL_TO 0x2B48 #define T_UTF_32_TILDE_OPERATOR_ABOVE_LEFTWARDS_ARROW 0x2B49 #define T_UTF_32_LEFTWARDS_ARROW_ABOVE_ALMOST_EQUAL_TO 0x2B4A #define T_UTF_32_LEFTWARDS_ARROW_ABOVE_REVERSE_TILDE_OPERATOR 0x2B4B #define T_UTF_32_RIGHTWARDS_ARROW_ABOVE_REVERSE_TILDE_OPERATOR 0x2B4C #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ZIGZAG_ARROW 0x2B4D #define T_UTF_32_SHORT_SLANTED_NORTH_ARROW 0x2B4E #define T_UTF_32_SHORT_BACKSLANTED_SOUTH_ARROW 0x2B4F #define T_UTF_32_WHITE_MEDIUM_STAR 0x2B50 #define T_UTF_32_BLACK_SMALL_STAR 0x2B51 #define T_UTF_32_WHITE_SMALL_STAR 0x2B52 #define T_UTF_32_BLACK_RIGHT_POINTING_PENTAGON 0x2B53 #define T_UTF_32_WHITE_RIGHT_POINTING_PENTAGON 0x2B54 #define T_UTF_32_HEAVY_LARGE_CIRCLE 0x2B55 #define T_UTF_32_HEAVY_OVAL_WITH_OVAL_INSIDE 0x2B56 #define T_UTF_32_HEAVY_CIRCLE_WITH_CIRCLE_INSIDE 0x2B57 #define T_UTF_32_HEAVY_CIRCLE 0x2B58 #define T_UTF_32_HEAVY_CIRCLED_SALTIRE 0x2B59 #define T_UTF_32_SLANTED_NORTH_ARROW_WITH_HOOKED_HEAD 0x2B5A #define T_UTF_32_BACKSLANTED_SOUTH_ARROW_WITH_HOOKED_TAIL 0x2B5B #define T_UTF_32_SLANTED_NORTH_ARROW_WITH_HORIZONTAL_TAIL 0x2B5C #define T_UTF_32_BACKSLANTED_SOUTH_ARROW_WITH_HORIZONTAL_TAIL 0x2B5D #define T_UTF_32_BENT_ARROW_POINTING_DOWNWARDS_THEN_NORTH_EAST 0x2B5E #define T_UTF_32_SHORT_BENT_ARROW_POINTING_DOWNWARDS_THEN_NORTH_EAST 0x2B5F #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW 0x2B60 #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW 0x2B61 #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW 0x2B62 #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW 0x2B63 #define T_UTF_32_LEFT_RIGHT_TRIANGLE_HEADED_ARROW 0x2B64 #define T_UTF_32_UP_DOWN_TRIANGLE_HEADED_ARROW 0x2B65 #define T_UTF_32_NORTH_WEST_TRIANGLE_HEADED_ARROW 0x2B66 #define T_UTF_32_NORTH_EAST_TRIANGLE_HEADED_ARROW 0x2B67 #define T_UTF_32_SOUTH_EAST_TRIANGLE_HEADED_ARROW 0x2B68 #define T_UTF_32_SOUTH_WEST_TRIANGLE_HEADED_ARROW 0x2B69 #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_DASHED_ARROW 0x2B6A #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_DASHED_ARROW 0x2B6B #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_DASHED_ARROW 0x2B6C #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_DASHED_ARROW 0x2B6D #define T_UTF_32_CLOCKWISE_TRIANGLE_HEADED_OPEN_CIRCLE_ARROW 0x2B6E #define T_UTF_32_ANTICLOCKWISE_TRIANGLE_HEADED_OPEN_CIRCLE_ARROW 0x2B6F #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW_TO_BAR 0x2B70 #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW_TO_BAR 0x2B71 #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW_TO_BAR 0x2B72 #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW_TO_BAR 0x2B73 #define T_UTF_32_NORTH_WEST_TRIANGLE_HEADED_ARROW_TO_BAR 0x2B76 #define T_UTF_32_NORTH_EAST_TRIANGLE_HEADED_ARROW_TO_BAR 0x2B77 #define T_UTF_32_SOUTH_EAST_TRIANGLE_HEADED_ARROW_TO_BAR 0x2B78 #define T_UTF_32_SOUTH_WEST_TRIANGLE_HEADED_ARROW_TO_BAR 0x2B79 #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW_WITH_DOUBLE_HORIZONTAL_STROKE 0x2B7A #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW_WITH_DOUBLE_HORIZONTAL_STROKE 0x2B7B #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW_WITH_DOUBLE_HORIZONTAL_STROKE 0x2B7C #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW_WITH_DOUBLE_HORIZONTAL_STROKE 0x2B7D #define T_UTF_32_HORIZONTAL_TAB_KEY 0x2B7E #define T_UTF_32_VERTICAL_TAB_KEY 0x2B7F #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW_OVER_RIGHTWARDS_TRIANGLE_HEADED_ARROW 0x2B80 #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW_LEFTWARDS_OF_DOWNWARDS_TRIANGLE_HEADED_ARROW 0x2B81 #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW_OVER_LEFTWARDS_TRIANGLE_HEADED_ARROW 0x2B82 #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW_LEFTWARDS_OF_UPWARDS_TRIANGLE_HEADED_ARROW 0x2B83 #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_PAIRED_ARROWS 0x2B84 #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_PAIRED_ARROWS 0x2B85 #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_PAIRED_ARROWS 0x2B86 #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_PAIRED_ARROWS 0x2B87 #define T_UTF_32_LEFTWARDS_BLACK_CIRCLED_WHITE_ARROW 0x2B88 #define T_UTF_32_UPWARDS_BLACK_CIRCLED_WHITE_ARROW 0x2B89 #define T_UTF_32_RIGHTWARDS_BLACK_CIRCLED_WHITE_ARROW 0x2B8A #define T_UTF_32_DOWNWARDS_BLACK_CIRCLED_WHITE_ARROW 0x2B8B #define T_UTF_32_ANTICLOCKWISE_TRIANGLE_HEADED_RIGHT_U_SHAPED_ARROW 0x2B8C #define T_UTF_32_ANTICLOCKWISE_TRIANGLE_HEADED_BOTTOM_U_SHAPED_ARROW 0x2B8D #define T_UTF_32_ANTICLOCKWISE_TRIANGLE_HEADED_LEFT_U_SHAPED_ARROW 0x2B8E #define T_UTF_32_ANTICLOCKWISE_TRIANGLE_HEADED_TOP_U_SHAPED_ARROW 0x2B8F #define T_UTF_32_RETURN_LEFT 0x2B90 #define T_UTF_32_RETURN_RIGHT 0x2B91 #define T_UTF_32_NEWLINE_LEFT 0x2B92 #define T_UTF_32_NEWLINE_RIGHT 0x2B93 #define T_UTF_32_FOUR_CORNER_ARROWS_CIRCLING_ANTICLOCKWISE 0x2B94 #define T_UTF_32_RIGHTWARDS_BLACK_ARROW 0x2B95 #define T_UTF_32_THREE_D_TOP_LIGHTED_LEFTWARDS_EQUILATERAL_ARROWHEAD 0x2B98 #define T_UTF_32_THREE_D_RIGHT_LIGHTED_UPWARDS_EQUILATERAL_ARROWHEAD 0x2B99 #define T_UTF_32_THREE_D_TOP_LIGHTED_RIGHTWARDS_EQUILATERAL_ARROWHEAD 0x2B9A #define T_UTF_32_THREE_D_LEFT_LIGHTED_DOWNWARDS_EQUILATERAL_ARROWHEAD 0x2B9B #define T_UTF_32_BLACK_LEFTWARDS_EQUILATERAL_ARROWHEAD 0x2B9C #define T_UTF_32_BLACK_UPWARDS_EQUILATERAL_ARROWHEAD 0x2B9D #define T_UTF_32_BLACK_RIGHTWARDS_EQUILATERAL_ARROWHEAD 0x2B9E #define T_UTF_32_BLACK_DOWNWARDS_EQUILATERAL_ARROWHEAD 0x2B9F #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW_WITH_LONG_TIP_LEFTWARDS 0x2BA0 #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW_WITH_LONG_TIP_RIGHTWARDS 0x2BA1 #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW_WITH_LONG_TIP_LEFTWARDS 0x2BA2 #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW_WITH_LONG_TIP_RIGHTWARDS 0x2BA3 #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW_WITH_LONG_TIP_UPWARDS 0x2BA4 #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW_WITH_LONG_TIP_UPWARDS 0x2BA5 #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW_WITH_LONG_TIP_DOWNWARDS 0x2BA6 #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW_WITH_LONG_TIP_DOWNWARDS 0x2BA7 #define T_UTF_32_BLACK_CURVED_DOWNWARDS_AND_LEFTWARDS_ARROW 0x2BA8 #define T_UTF_32_BLACK_CURVED_DOWNWARDS_AND_RIGHTWARDS_ARROW 0x2BA9 #define T_UTF_32_BLACK_CURVED_UPWARDS_AND_LEFTWARDS_ARROW 0x2BAA #define T_UTF_32_BLACK_CURVED_UPWARDS_AND_RIGHTWARDS_ARROW 0x2BAB #define T_UTF_32_BLACK_CURVED_LEFTWARDS_AND_UPWARDS_ARROW 0x2BAC #define T_UTF_32_BLACK_CURVED_RIGHTWARDS_AND_UPWARDS_ARROW 0x2BAD #define T_UTF_32_BLACK_CURVED_LEFTWARDS_AND_DOWNWARDS_ARROW 0x2BAE #define T_UTF_32_BLACK_CURVED_RIGHTWARDS_AND_DOWNWARDS_ARROW 0x2BAF #define T_UTF_32_RIBBON_ARROW_DOWN_LEFT 0x2BB0 #define T_UTF_32_RIBBON_ARROW_DOWN_RIGHT 0x2BB1 #define T_UTF_32_RIBBON_ARROW_UP_LEFT 0x2BB2 #define T_UTF_32_RIBBON_ARROW_UP_RIGHT 0x2BB3 #define T_UTF_32_RIBBON_ARROW_LEFT_UP 0x2BB4 #define T_UTF_32_RIBBON_ARROW_RIGHT_UP 0x2BB5 #define T_UTF_32_RIBBON_ARROW_LEFT_DOWN 0x2BB6 #define T_UTF_32_RIBBON_ARROW_RIGHT_DOWN 0x2BB7 #define T_UTF_32_UPWARDS_WHITE_ARROW_FROM_BAR_WITH_HORIZONTAL_BAR 0x2BB8 #define T_UTF_32_UP_ARROWHEAD_IN_A_RECTANGLE_BOX 0x2BB9 #define T_UTF_32_BALLOT_BOX_WITH_LIGHT_X 0x2BBD #define T_UTF_32_CIRCLED_X 0x2BBE #define T_UTF_32_CIRCLED_BOLD_X 0x2BBF #define T_UTF_32_BLACK_SQUARE_CENTRED 0x2BC0 #define T_UTF_32_BLACK_DIAMOND_CENTRED 0x2BC1 #define T_UTF_32_TURNED_BLACK_PENTAGON 0x2BC2 #define T_UTF_32_HORIZONTAL_BLACK_OCTAGON 0x2BC3 #define T_UTF_32_BLACK_OCTAGON 0x2BC4 #define T_UTF_32_BLACK_MEDIUM_UP_POINTING_TRIANGLE_CENTRED 0x2BC5 #define T_UTF_32_BLACK_MEDIUM_DOWN_POINTING_TRIANGLE_CENTRED 0x2BC6 #define T_UTF_32_BLACK_MEDIUM_LEFT_POINTING_TRIANGLE_CENTRED 0x2BC7 #define T_UTF_32_BLACK_MEDIUM_RIGHT_POINTING_TRIANGLE_CENTRED 0x2BC8 #define T_UTF_32_TOP_HALF_BLACK_CIRCLE 0x2BCA #define T_UTF_32_BOTTOM_HALF_BLACK_CIRCLE 0x2BCB #define T_UTF_32_LIGHT_FOUR_POINTED_BLACK_CUSP 0x2BCC #define T_UTF_32_ROTATED_LIGHT_FOUR_POINTED_BLACK_CUSP 0x2BCD #define T_UTF_32_WHITE_FOUR_POINTED_CUSP 0x2BCE #define T_UTF_32_ROTATED_WHITE_FOUR_POINTED_CUSP 0x2BCF #define T_UTF_32_SQUARE_POSITION_INDICATOR 0x2BD0 #define T_UTF_32_UNCERTAINTY_SIGN 0x2BD1 #define T_UTF_32_GROUP_MARK 0x2BD2 #define T_UTF_32_LEFTWARDS_TWO_HEADED_ARROW_WITH_TRIANGLE_ARROWHEADS 0x2BEC #define T_UTF_32_UPWARDS_TWO_HEADED_ARROW_WITH_TRIANGLE_ARROWHEADS 0x2BED #define T_UTF_32_RIGHTWARDS_TWO_HEADED_ARROW_WITH_TRIANGLE_ARROWHEADS 0x2BEE #define T_UTF_32_DOWNWARDS_TWO_HEADED_ARROW_WITH_TRIANGLE_ARROWHEADS 0x2BEF #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_AZU 0x2C00 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_BUKY 0x2C01 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_VEDE 0x2C02 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_GLAGOLI 0x2C03 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_DOBRO 0x2C04 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_YESTU 0x2C05 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_ZHIVETE 0x2C06 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_DZELO 0x2C07 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_ZEMLJA 0x2C08 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_IZHE 0x2C09 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_INITIAL_IZHE 0x2C0A #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_I 0x2C0B #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_DJERVI 0x2C0C #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_KAKO 0x2C0D #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_LJUDIJE 0x2C0E #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_MYSLITE 0x2C0F #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_NASHI 0x2C10 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_ONU 0x2C11 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_POKOJI 0x2C12 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_RITSI 0x2C13 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_SLOVO 0x2C14 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_TVRIDO 0x2C15 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_UKU 0x2C16 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_FRITU 0x2C17 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_HERU 0x2C18 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_OTU 0x2C19 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_PE 0x2C1A #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_SHTA 0x2C1B #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_TSI 0x2C1C #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_CHRIVI 0x2C1D #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_SHA 0x2C1E #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_YERU 0x2C1F #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_YERI 0x2C20 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_YATI 0x2C21 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_SPIDERY_HA 0x2C22 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_YU 0x2C23 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_SMALL_YUS 0x2C24 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_SMALL_YUS_WITH_TAIL 0x2C25 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_YO 0x2C26 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_IOTATED_SMALL_YUS 0x2C27 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_BIG_YUS 0x2C28 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_IOTATED_BIG_YUS 0x2C29 #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_FITA 0x2C2A #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_IZHITSA 0x2C2B #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_SHTAPIC 0x2C2C #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_TROKUTASTI_A 0x2C2D #define T_UTF_32_GLAGOLITIC_CAPITAL_LETTER_LATINATE_MYSLITE 0x2C2E #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_AZU 0x2C30 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_BUKY 0x2C31 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_VEDE 0x2C32 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_GLAGOLI 0x2C33 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_DOBRO 0x2C34 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_YESTU 0x2C35 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_ZHIVETE 0x2C36 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_DZELO 0x2C37 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_ZEMLJA 0x2C38 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_IZHE 0x2C39 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_INITIAL_IZHE 0x2C3A #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_I 0x2C3B #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_DJERVI 0x2C3C #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_KAKO 0x2C3D #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_LJUDIJE 0x2C3E #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_MYSLITE 0x2C3F #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_NASHI 0x2C40 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_ONU 0x2C41 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_POKOJI 0x2C42 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_RITSI 0x2C43 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_SLOVO 0x2C44 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_TVRIDO 0x2C45 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_UKU 0x2C46 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_FRITU 0x2C47 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_HERU 0x2C48 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_OTU 0x2C49 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_PE 0x2C4A #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_SHTA 0x2C4B #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_TSI 0x2C4C #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_CHRIVI 0x2C4D #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_SHA 0x2C4E #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_YERU 0x2C4F #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_YERI 0x2C50 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_YATI 0x2C51 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_SPIDERY_HA 0x2C52 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_YU 0x2C53 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_SMALL_YUS 0x2C54 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_SMALL_YUS_WITH_TAIL 0x2C55 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_YO 0x2C56 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_IOTATED_SMALL_YUS 0x2C57 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_BIG_YUS 0x2C58 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_IOTATED_BIG_YUS 0x2C59 #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_FITA 0x2C5A #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_IZHITSA 0x2C5B #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_SHTAPIC 0x2C5C #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_TROKUTASTI_A 0x2C5D #define T_UTF_32_GLAGOLITIC_SMALL_LETTER_LATINATE_MYSLITE 0x2C5E #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_DOUBLE_BAR 0x2C60 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_DOUBLE_BAR 0x2C61 #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_MIDDLE_TILDE 0x2C62 #define T_UTF_32_LATIN_CAPITAL_LETTER_P_WITH_STROKE 0x2C63 #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_TAIL 0x2C64 #define T_UTF_32_LATIN_SMALL_LETTER_A_WITH_STROKE 0x2C65 #define T_UTF_32_LATIN_SMALL_LETTER_T_WITH_DIAGONAL_STROKE 0x2C66 #define T_UTF_32_LATIN_CAPITAL_LETTER_H_WITH_DESCENDER 0x2C67 #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_DESCENDER 0x2C68 #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_DESCENDER 0x2C69 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_DESCENDER 0x2C6A #define T_UTF_32_LATIN_CAPITAL_LETTER_Z_WITH_DESCENDER 0x2C6B #define T_UTF_32_LATIN_SMALL_LETTER_Z_WITH_DESCENDER 0x2C6C #define T_UTF_32_LATIN_CAPITAL_LETTER_ALPHA 0x2C6D #define T_UTF_32_LATIN_CAPITAL_LETTER_M_WITH_HOOK 0x2C6E #define T_UTF_32_LATIN_CAPITAL_LETTER_TURNED_A 0x2C6F #define T_UTF_32_LATIN_CAPITAL_LETTER_TURNED_ALPHA 0x2C70 #define T_UTF_32_LATIN_SMALL_LETTER_V_WITH_RIGHT_HOOK 0x2C71 #define T_UTF_32_LATIN_CAPITAL_LETTER_W_WITH_HOOK 0x2C72 #define T_UTF_32_LATIN_SMALL_LETTER_W_WITH_HOOK 0x2C73 #define T_UTF_32_LATIN_SMALL_LETTER_V_WITH_CURL 0x2C74 #define T_UTF_32_LATIN_CAPITAL_LETTER_HALF_H 0x2C75 #define T_UTF_32_LATIN_SMALL_LETTER_HALF_H 0x2C76 #define T_UTF_32_LATIN_SMALL_LETTER_TAILLESS_PHI 0x2C77 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_NOTCH 0x2C78 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_R_WITH_TAIL 0x2C79 #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_LOW_RING_INSIDE 0x2C7A #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_TURNED_E 0x2C7B #define T_UTF_32_LATIN_SUBSCRIPT_SMALL_LETTER_J 0x2C7C #define T_UTF_32_MODIFIER_LETTER_CAPITAL_V 0x2C7D #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_SWASH_TAIL 0x2C7E #define T_UTF_32_LATIN_CAPITAL_LETTER_Z_WITH_SWASH_TAIL 0x2C7F #define T_UTF_32_COPTIC_CAPITAL_LETTER_ALFA 0x2C80 #define T_UTF_32_COPTIC_SMALL_LETTER_ALFA 0x2C81 #define T_UTF_32_COPTIC_CAPITAL_LETTER_VIDA 0x2C82 #define T_UTF_32_COPTIC_SMALL_LETTER_VIDA 0x2C83 #define T_UTF_32_COPTIC_CAPITAL_LETTER_GAMMA 0x2C84 #define T_UTF_32_COPTIC_SMALL_LETTER_GAMMA 0x2C85 #define T_UTF_32_COPTIC_CAPITAL_LETTER_DALDA 0x2C86 #define T_UTF_32_COPTIC_SMALL_LETTER_DALDA 0x2C87 #define T_UTF_32_COPTIC_CAPITAL_LETTER_EIE 0x2C88 #define T_UTF_32_COPTIC_SMALL_LETTER_EIE 0x2C89 #define T_UTF_32_COPTIC_CAPITAL_LETTER_SOU 0x2C8A #define T_UTF_32_COPTIC_SMALL_LETTER_SOU 0x2C8B #define T_UTF_32_COPTIC_CAPITAL_LETTER_ZATA 0x2C8C #define T_UTF_32_COPTIC_SMALL_LETTER_ZATA 0x2C8D #define T_UTF_32_COPTIC_CAPITAL_LETTER_HATE 0x2C8E #define T_UTF_32_COPTIC_SMALL_LETTER_HATE 0x2C8F #define T_UTF_32_COPTIC_CAPITAL_LETTER_THETHE 0x2C90 #define T_UTF_32_COPTIC_SMALL_LETTER_THETHE 0x2C91 #define T_UTF_32_COPTIC_CAPITAL_LETTER_IAUDA 0x2C92 #define T_UTF_32_COPTIC_SMALL_LETTER_IAUDA 0x2C93 #define T_UTF_32_COPTIC_CAPITAL_LETTER_KAPA 0x2C94 #define T_UTF_32_COPTIC_SMALL_LETTER_KAPA 0x2C95 #define T_UTF_32_COPTIC_CAPITAL_LETTER_LAULA 0x2C96 #define T_UTF_32_COPTIC_SMALL_LETTER_LAULA 0x2C97 #define T_UTF_32_COPTIC_CAPITAL_LETTER_MI 0x2C98 #define T_UTF_32_COPTIC_SMALL_LETTER_MI 0x2C99 #define T_UTF_32_COPTIC_CAPITAL_LETTER_NI 0x2C9A #define T_UTF_32_COPTIC_SMALL_LETTER_NI 0x2C9B #define T_UTF_32_COPTIC_CAPITAL_LETTER_KSI 0x2C9C #define T_UTF_32_COPTIC_SMALL_LETTER_KSI 0x2C9D #define T_UTF_32_COPTIC_CAPITAL_LETTER_O 0x2C9E #define T_UTF_32_COPTIC_SMALL_LETTER_O 0x2C9F #define T_UTF_32_COPTIC_CAPITAL_LETTER_PI 0x2CA0 #define T_UTF_32_COPTIC_SMALL_LETTER_PI 0x2CA1 #define T_UTF_32_COPTIC_CAPITAL_LETTER_RO 0x2CA2 #define T_UTF_32_COPTIC_SMALL_LETTER_RO 0x2CA3 #define T_UTF_32_COPTIC_CAPITAL_LETTER_SIMA 0x2CA4 #define T_UTF_32_COPTIC_SMALL_LETTER_SIMA 0x2CA5 #define T_UTF_32_COPTIC_CAPITAL_LETTER_TAU 0x2CA6 #define T_UTF_32_COPTIC_SMALL_LETTER_TAU 0x2CA7 #define T_UTF_32_COPTIC_CAPITAL_LETTER_UA 0x2CA8 #define T_UTF_32_COPTIC_SMALL_LETTER_UA 0x2CA9 #define T_UTF_32_COPTIC_CAPITAL_LETTER_FI 0x2CAA #define T_UTF_32_COPTIC_SMALL_LETTER_FI 0x2CAB #define T_UTF_32_COPTIC_CAPITAL_LETTER_KHI 0x2CAC #define T_UTF_32_COPTIC_SMALL_LETTER_KHI 0x2CAD #define T_UTF_32_COPTIC_CAPITAL_LETTER_PSI 0x2CAE #define T_UTF_32_COPTIC_SMALL_LETTER_PSI 0x2CAF #define T_UTF_32_COPTIC_CAPITAL_LETTER_OOU 0x2CB0 #define T_UTF_32_COPTIC_SMALL_LETTER_OOU 0x2CB1 #define T_UTF_32_COPTIC_CAPITAL_LETTER_DIALECT_P_ALEF 0x2CB2 #define T_UTF_32_COPTIC_SMALL_LETTER_DIALECT_P_ALEF 0x2CB3 #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_AIN 0x2CB4 #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_AIN 0x2CB5 #define T_UTF_32_COPTIC_CAPITAL_LETTER_CRYPTOGRAMMIC_EIE 0x2CB6 #define T_UTF_32_COPTIC_SMALL_LETTER_CRYPTOGRAMMIC_EIE 0x2CB7 #define T_UTF_32_COPTIC_CAPITAL_LETTER_DIALECT_P_KAPA 0x2CB8 #define T_UTF_32_COPTIC_SMALL_LETTER_DIALECT_P_KAPA 0x2CB9 #define T_UTF_32_COPTIC_CAPITAL_LETTER_DIALECT_P_NI 0x2CBA #define T_UTF_32_COPTIC_SMALL_LETTER_DIALECT_P_NI 0x2CBB #define T_UTF_32_COPTIC_CAPITAL_LETTER_CRYPTOGRAMMIC_NI 0x2CBC #define T_UTF_32_COPTIC_SMALL_LETTER_CRYPTOGRAMMIC_NI 0x2CBD #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_OOU 0x2CBE #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_OOU 0x2CBF #define T_UTF_32_COPTIC_CAPITAL_LETTER_SAMPI 0x2CC0 #define T_UTF_32_COPTIC_SMALL_LETTER_SAMPI 0x2CC1 #define T_UTF_32_COPTIC_CAPITAL_LETTER_CROSSED_SHEI 0x2CC2 #define T_UTF_32_COPTIC_SMALL_LETTER_CROSSED_SHEI 0x2CC3 #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_SHEI 0x2CC4 #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_SHEI 0x2CC5 #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_ESH 0x2CC6 #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_ESH 0x2CC7 #define T_UTF_32_COPTIC_CAPITAL_LETTER_AKHMIMIC_KHEI 0x2CC8 #define T_UTF_32_COPTIC_SMALL_LETTER_AKHMIMIC_KHEI 0x2CC9 #define T_UTF_32_COPTIC_CAPITAL_LETTER_DIALECT_P_HORI 0x2CCA #define T_UTF_32_COPTIC_SMALL_LETTER_DIALECT_P_HORI 0x2CCB #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_HORI 0x2CCC #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_HORI 0x2CCD #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_HA 0x2CCE #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_HA 0x2CCF #define T_UTF_32_COPTIC_CAPITAL_LETTER_L_SHAPED_HA 0x2CD0 #define T_UTF_32_COPTIC_SMALL_LETTER_L_SHAPED_HA 0x2CD1 #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_HEI 0x2CD2 #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_HEI 0x2CD3 #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_HAT 0x2CD4 #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_HAT 0x2CD5 #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_GANGIA 0x2CD6 #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_GANGIA 0x2CD7 #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_DJA 0x2CD8 #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_DJA 0x2CD9 #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_COPTIC_SHIMA 0x2CDA #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_COPTIC_SHIMA 0x2CDB #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_NUBIAN_SHIMA 0x2CDC #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_NUBIAN_SHIMA 0x2CDD #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_NUBIAN_NGI 0x2CDE #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_NUBIAN_NGI 0x2CDF #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_NUBIAN_NYI 0x2CE0 #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_NUBIAN_NYI 0x2CE1 #define T_UTF_32_COPTIC_CAPITAL_LETTER_OLD_NUBIAN_WAU 0x2CE2 #define T_UTF_32_COPTIC_SMALL_LETTER_OLD_NUBIAN_WAU 0x2CE3 #define T_UTF_32_COPTIC_SYMBOL_KAI 0x2CE4 #define T_UTF_32_COPTIC_SYMBOL_MI_RO 0x2CE5 #define T_UTF_32_COPTIC_SYMBOL_PI_RO 0x2CE6 #define T_UTF_32_COPTIC_SYMBOL_STAUROS 0x2CE7 #define T_UTF_32_COPTIC_SYMBOL_TAU_RO 0x2CE8 #define T_UTF_32_COPTIC_SYMBOL_KHI_RO 0x2CE9 #define T_UTF_32_COPTIC_SYMBOL_SHIMA_SIMA 0x2CEA #define T_UTF_32_COPTIC_CAPITAL_LETTER_CRYPTOGRAMMIC_SHEI 0x2CEB #define T_UTF_32_COPTIC_SMALL_LETTER_CRYPTOGRAMMIC_SHEI 0x2CEC #define T_UTF_32_COPTIC_CAPITAL_LETTER_CRYPTOGRAMMIC_GANGIA 0x2CED #define T_UTF_32_COPTIC_SMALL_LETTER_CRYPTOGRAMMIC_GANGIA 0x2CEE #define T_UTF_32_COPTIC_COMBINING_NI_ABOVE 0x2CEF #define T_UTF_32_COPTIC_COMBINING_SPIRITUS_ASPER 0x2CF0 #define T_UTF_32_COPTIC_COMBINING_SPIRITUS_LENIS 0x2CF1 #define T_UTF_32_COPTIC_CAPITAL_LETTER_BOHAIRIC_KHEI 0x2CF2 #define T_UTF_32_COPTIC_SMALL_LETTER_BOHAIRIC_KHEI 0x2CF3 #define T_UTF_32_COPTIC_OLD_NUBIAN_FULL_STOP 0x2CF9 #define T_UTF_32_COPTIC_OLD_NUBIAN_DIRECT_QUESTION_MARK 0x2CFA #define T_UTF_32_COPTIC_OLD_NUBIAN_INDIRECT_QUESTION_MARK 0x2CFB #define T_UTF_32_COPTIC_OLD_NUBIAN_VERSE_DIVIDER 0x2CFC #define T_UTF_32_COPTIC_FRACTION_ONE_HALF 0x2CFD #define T_UTF_32_COPTIC_FULL_STOP 0x2CFE #define T_UTF_32_COPTIC_MORPHOLOGICAL_DIVIDER 0x2CFF #define T_UTF_32_GEORGIAN_SMALL_LETTER_AN 0x2D00 #define T_UTF_32_GEORGIAN_SMALL_LETTER_BAN 0x2D01 #define T_UTF_32_GEORGIAN_SMALL_LETTER_GAN 0x2D02 #define T_UTF_32_GEORGIAN_SMALL_LETTER_DON 0x2D03 #define T_UTF_32_GEORGIAN_SMALL_LETTER_EN 0x2D04 #define T_UTF_32_GEORGIAN_SMALL_LETTER_VIN 0x2D05 #define T_UTF_32_GEORGIAN_SMALL_LETTER_ZEN 0x2D06 #define T_UTF_32_GEORGIAN_SMALL_LETTER_TAN 0x2D07 #define T_UTF_32_GEORGIAN_SMALL_LETTER_IN 0x2D08 #define T_UTF_32_GEORGIAN_SMALL_LETTER_KAN 0x2D09 #define T_UTF_32_GEORGIAN_SMALL_LETTER_LAS 0x2D0A #define T_UTF_32_GEORGIAN_SMALL_LETTER_MAN 0x2D0B #define T_UTF_32_GEORGIAN_SMALL_LETTER_NAR 0x2D0C #define T_UTF_32_GEORGIAN_SMALL_LETTER_ON 0x2D0D #define T_UTF_32_GEORGIAN_SMALL_LETTER_PAR 0x2D0E #define T_UTF_32_GEORGIAN_SMALL_LETTER_ZHAR 0x2D0F #define T_UTF_32_GEORGIAN_SMALL_LETTER_RAE 0x2D10 #define T_UTF_32_GEORGIAN_SMALL_LETTER_SAN 0x2D11 #define T_UTF_32_GEORGIAN_SMALL_LETTER_TAR 0x2D12 #define T_UTF_32_GEORGIAN_SMALL_LETTER_UN 0x2D13 #define T_UTF_32_GEORGIAN_SMALL_LETTER_PHAR 0x2D14 #define T_UTF_32_GEORGIAN_SMALL_LETTER_KHAR 0x2D15 #define T_UTF_32_GEORGIAN_SMALL_LETTER_GHAN 0x2D16 #define T_UTF_32_GEORGIAN_SMALL_LETTER_QAR 0x2D17 #define T_UTF_32_GEORGIAN_SMALL_LETTER_SHIN 0x2D18 #define T_UTF_32_GEORGIAN_SMALL_LETTER_CHIN 0x2D19 #define T_UTF_32_GEORGIAN_SMALL_LETTER_CAN 0x2D1A #define T_UTF_32_GEORGIAN_SMALL_LETTER_JIL 0x2D1B #define T_UTF_32_GEORGIAN_SMALL_LETTER_CIL 0x2D1C #define T_UTF_32_GEORGIAN_SMALL_LETTER_CHAR 0x2D1D #define T_UTF_32_GEORGIAN_SMALL_LETTER_XAN 0x2D1E #define T_UTF_32_GEORGIAN_SMALL_LETTER_JHAN 0x2D1F #define T_UTF_32_GEORGIAN_SMALL_LETTER_HAE 0x2D20 #define T_UTF_32_GEORGIAN_SMALL_LETTER_HE 0x2D21 #define T_UTF_32_GEORGIAN_SMALL_LETTER_HIE 0x2D22 #define T_UTF_32_GEORGIAN_SMALL_LETTER_WE 0x2D23 #define T_UTF_32_GEORGIAN_SMALL_LETTER_HAR 0x2D24 #define T_UTF_32_GEORGIAN_SMALL_LETTER_HOE 0x2D25 #define T_UTF_32_GEORGIAN_SMALL_LETTER_YN 0x2D27 #define T_UTF_32_GEORGIAN_SMALL_LETTER_AEN 0x2D2D #define T_UTF_32_TIFINAGH_LETTER_YA 0x2D30 #define T_UTF_32_TIFINAGH_LETTER_YAB 0x2D31 #define T_UTF_32_TIFINAGH_LETTER_YABH 0x2D32 #define T_UTF_32_TIFINAGH_LETTER_YAG 0x2D33 #define T_UTF_32_TIFINAGH_LETTER_YAGHH 0x2D34 #define T_UTF_32_TIFINAGH_LETTER_BERBER_ACADEMY_YAJ 0x2D35 #define T_UTF_32_TIFINAGH_LETTER_YAJ 0x2D36 #define T_UTF_32_TIFINAGH_LETTER_YAD 0x2D37 #define T_UTF_32_TIFINAGH_LETTER_YADH 0x2D38 #define T_UTF_32_TIFINAGH_LETTER_YADD 0x2D39 #define T_UTF_32_TIFINAGH_LETTER_YADDH 0x2D3A #define T_UTF_32_TIFINAGH_LETTER_YEY 0x2D3B #define T_UTF_32_TIFINAGH_LETTER_YAF 0x2D3C #define T_UTF_32_TIFINAGH_LETTER_YAK 0x2D3D #define T_UTF_32_TIFINAGH_LETTER_TUAREG_YAK 0x2D3E #define T_UTF_32_TIFINAGH_LETTER_YAKHH 0x2D3F #define T_UTF_32_TIFINAGH_LETTER_YAH 0x2D40 #define T_UTF_32_TIFINAGH_LETTER_BERBER_ACADEMY_YAH 0x2D41 #define T_UTF_32_TIFINAGH_LETTER_TUAREG_YAH 0x2D42 #define T_UTF_32_TIFINAGH_LETTER_YAHH 0x2D43 #define T_UTF_32_TIFINAGH_LETTER_YAA 0x2D44 #define T_UTF_32_TIFINAGH_LETTER_YAKH 0x2D45 #define T_UTF_32_TIFINAGH_LETTER_TUAREG_YAKH 0x2D46 #define T_UTF_32_TIFINAGH_LETTER_YAQ 0x2D47 #define T_UTF_32_TIFINAGH_LETTER_TUAREG_YAQ 0x2D48 #define T_UTF_32_TIFINAGH_LETTER_YI 0x2D49 #define T_UTF_32_TIFINAGH_LETTER_YAZH 0x2D4A #define T_UTF_32_TIFINAGH_LETTER_AHAGGAR_YAZH 0x2D4B #define T_UTF_32_TIFINAGH_LETTER_TUAREG_YAZH 0x2D4C #define T_UTF_32_TIFINAGH_LETTER_YAL 0x2D4D #define T_UTF_32_TIFINAGH_LETTER_YAM 0x2D4E #define T_UTF_32_TIFINAGH_LETTER_YAN 0x2D4F #define T_UTF_32_TIFINAGH_LETTER_TUAREG_YAGN 0x2D50 #define T_UTF_32_TIFINAGH_LETTER_TUAREG_YANG 0x2D51 #define T_UTF_32_TIFINAGH_LETTER_YAP 0x2D52 #define T_UTF_32_TIFINAGH_LETTER_YU 0x2D53 #define T_UTF_32_TIFINAGH_LETTER_YAR 0x2D54 #define T_UTF_32_TIFINAGH_LETTER_YARR 0x2D55 #define T_UTF_32_TIFINAGH_LETTER_YAGH 0x2D56 #define T_UTF_32_TIFINAGH_LETTER_TUAREG_YAGH 0x2D57 #define T_UTF_32_TIFINAGH_LETTER_AYER_YAGH 0x2D58 #define T_UTF_32_TIFINAGH_LETTER_YAS 0x2D59 #define T_UTF_32_TIFINAGH_LETTER_YASS 0x2D5A #define T_UTF_32_TIFINAGH_LETTER_YASH 0x2D5B #define T_UTF_32_TIFINAGH_LETTER_YAT 0x2D5C #define T_UTF_32_TIFINAGH_LETTER_YATH 0x2D5D #define T_UTF_32_TIFINAGH_LETTER_YACH 0x2D5E #define T_UTF_32_TIFINAGH_LETTER_YATT 0x2D5F #define T_UTF_32_TIFINAGH_LETTER_YAV 0x2D60 #define T_UTF_32_TIFINAGH_LETTER_YAW 0x2D61 #define T_UTF_32_TIFINAGH_LETTER_YAY 0x2D62 #define T_UTF_32_TIFINAGH_LETTER_YAZ 0x2D63 #define T_UTF_32_TIFINAGH_LETTER_TAWELLEMET_YAZ 0x2D64 #define T_UTF_32_TIFINAGH_LETTER_YAZZ 0x2D65 #define T_UTF_32_TIFINAGH_LETTER_YE 0x2D66 #define T_UTF_32_TIFINAGH_LETTER_YO 0x2D67 #define T_UTF_32_TIFINAGH_MODIFIER_LETTER_LABIALIZATION_MARK 0x2D6F #define T_UTF_32_TIFINAGH_SEPARATOR_MARK 0x2D70 #define T_UTF_32_TIFINAGH_CONSONANT_JOINER 0x2D7F #define T_UTF_32_ETHIOPIC_SYLLABLE_LOA 0x2D80 #define T_UTF_32_ETHIOPIC_SYLLABLE_MOA 0x2D81 #define T_UTF_32_ETHIOPIC_SYLLABLE_ROA 0x2D82 #define T_UTF_32_ETHIOPIC_SYLLABLE_SOA 0x2D83 #define T_UTF_32_ETHIOPIC_SYLLABLE_SHOA 0x2D84 #define T_UTF_32_ETHIOPIC_SYLLABLE_BOA 0x2D85 #define T_UTF_32_ETHIOPIC_SYLLABLE_TOA 0x2D86 #define T_UTF_32_ETHIOPIC_SYLLABLE_COA 0x2D87 #define T_UTF_32_ETHIOPIC_SYLLABLE_NOA 0x2D88 #define T_UTF_32_ETHIOPIC_SYLLABLE_NYOA 0x2D89 #define T_UTF_32_ETHIOPIC_SYLLABLE_GLOTTAL_OA 0x2D8A #define T_UTF_32_ETHIOPIC_SYLLABLE_ZOA 0x2D8B #define T_UTF_32_ETHIOPIC_SYLLABLE_DOA 0x2D8C #define T_UTF_32_ETHIOPIC_SYLLABLE_DDOA 0x2D8D #define T_UTF_32_ETHIOPIC_SYLLABLE_JOA 0x2D8E #define T_UTF_32_ETHIOPIC_SYLLABLE_THOA 0x2D8F #define T_UTF_32_ETHIOPIC_SYLLABLE_CHOA 0x2D90 #define T_UTF_32_ETHIOPIC_SYLLABLE_PHOA 0x2D91 #define T_UTF_32_ETHIOPIC_SYLLABLE_POA 0x2D92 #define T_UTF_32_ETHIOPIC_SYLLABLE_GGWA 0x2D93 #define T_UTF_32_ETHIOPIC_SYLLABLE_GGWI 0x2D94 #define T_UTF_32_ETHIOPIC_SYLLABLE_GGWEE 0x2D95 #define T_UTF_32_ETHIOPIC_SYLLABLE_GGWE 0x2D96 #define T_UTF_32_ETHIOPIC_SYLLABLE_SSA 0x2DA0 #define T_UTF_32_ETHIOPIC_SYLLABLE_SSU 0x2DA1 #define T_UTF_32_ETHIOPIC_SYLLABLE_SSI 0x2DA2 #define T_UTF_32_ETHIOPIC_SYLLABLE_SSAA 0x2DA3 #define T_UTF_32_ETHIOPIC_SYLLABLE_SSEE 0x2DA4 #define T_UTF_32_ETHIOPIC_SYLLABLE_SSE 0x2DA5 #define T_UTF_32_ETHIOPIC_SYLLABLE_SSO 0x2DA6 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCA 0x2DA8 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCU 0x2DA9 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCI 0x2DAA #define T_UTF_32_ETHIOPIC_SYLLABLE_CCAA 0x2DAB #define T_UTF_32_ETHIOPIC_SYLLABLE_CCEE 0x2DAC #define T_UTF_32_ETHIOPIC_SYLLABLE_CCE 0x2DAD #define T_UTF_32_ETHIOPIC_SYLLABLE_CCO 0x2DAE #define T_UTF_32_ETHIOPIC_SYLLABLE_ZZA 0x2DB0 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZZU 0x2DB1 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZZI 0x2DB2 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZZAA 0x2DB3 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZZEE 0x2DB4 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZZE 0x2DB5 #define T_UTF_32_ETHIOPIC_SYLLABLE_ZZO 0x2DB6 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHA 0x2DB8 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHU 0x2DB9 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHI 0x2DBA #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHAA 0x2DBB #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHEE 0x2DBC #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHE 0x2DBD #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHO 0x2DBE #define T_UTF_32_ETHIOPIC_SYLLABLE_QYA 0x2DC0 #define T_UTF_32_ETHIOPIC_SYLLABLE_QYU 0x2DC1 #define T_UTF_32_ETHIOPIC_SYLLABLE_QYI 0x2DC2 #define T_UTF_32_ETHIOPIC_SYLLABLE_QYAA 0x2DC3 #define T_UTF_32_ETHIOPIC_SYLLABLE_QYEE 0x2DC4 #define T_UTF_32_ETHIOPIC_SYLLABLE_QYE 0x2DC5 #define T_UTF_32_ETHIOPIC_SYLLABLE_QYO 0x2DC6 #define T_UTF_32_ETHIOPIC_SYLLABLE_KYA 0x2DC8 #define T_UTF_32_ETHIOPIC_SYLLABLE_KYU 0x2DC9 #define T_UTF_32_ETHIOPIC_SYLLABLE_KYI 0x2DCA #define T_UTF_32_ETHIOPIC_SYLLABLE_KYAA 0x2DCB #define T_UTF_32_ETHIOPIC_SYLLABLE_KYEE 0x2DCC #define T_UTF_32_ETHIOPIC_SYLLABLE_KYE 0x2DCD #define T_UTF_32_ETHIOPIC_SYLLABLE_KYO 0x2DCE #define T_UTF_32_ETHIOPIC_SYLLABLE_XYA 0x2DD0 #define T_UTF_32_ETHIOPIC_SYLLABLE_XYU 0x2DD1 #define T_UTF_32_ETHIOPIC_SYLLABLE_XYI 0x2DD2 #define T_UTF_32_ETHIOPIC_SYLLABLE_XYAA 0x2DD3 #define T_UTF_32_ETHIOPIC_SYLLABLE_XYEE 0x2DD4 #define T_UTF_32_ETHIOPIC_SYLLABLE_XYE 0x2DD5 #define T_UTF_32_ETHIOPIC_SYLLABLE_XYO 0x2DD6 #define T_UTF_32_ETHIOPIC_SYLLABLE_GYA 0x2DD8 #define T_UTF_32_ETHIOPIC_SYLLABLE_GYU 0x2DD9 #define T_UTF_32_ETHIOPIC_SYLLABLE_GYI 0x2DDA #define T_UTF_32_ETHIOPIC_SYLLABLE_GYAA 0x2DDB #define T_UTF_32_ETHIOPIC_SYLLABLE_GYEE 0x2DDC #define T_UTF_32_ETHIOPIC_SYLLABLE_GYE 0x2DDD #define T_UTF_32_ETHIOPIC_SYLLABLE_GYO 0x2DDE #define T_UTF_32_COMBINING_CYRILLIC_LETTER_BE 0x2DE0 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_VE 0x2DE1 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_GHE 0x2DE2 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_DE 0x2DE3 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_ZHE 0x2DE4 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_ZE 0x2DE5 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_KA 0x2DE6 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_EL 0x2DE7 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_EM 0x2DE8 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_EN 0x2DE9 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_O 0x2DEA #define T_UTF_32_COMBINING_CYRILLIC_LETTER_PE 0x2DEB #define T_UTF_32_COMBINING_CYRILLIC_LETTER_ER 0x2DEC #define T_UTF_32_COMBINING_CYRILLIC_LETTER_ES 0x2DED #define T_UTF_32_COMBINING_CYRILLIC_LETTER_TE 0x2DEE #define T_UTF_32_COMBINING_CYRILLIC_LETTER_HA 0x2DEF #define T_UTF_32_COMBINING_CYRILLIC_LETTER_TSE 0x2DF0 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_CHE 0x2DF1 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_SHA 0x2DF2 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_SHCHA 0x2DF3 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_FITA 0x2DF4 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_ES_TE 0x2DF5 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_A 0x2DF6 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_IE 0x2DF7 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_DJERV 0x2DF8 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_MONOGRAPH_UK 0x2DF9 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_YAT 0x2DFA #define T_UTF_32_COMBINING_CYRILLIC_LETTER_YU 0x2DFB #define T_UTF_32_COMBINING_CYRILLIC_LETTER_IOTIFIED_A 0x2DFC #define T_UTF_32_COMBINING_CYRILLIC_LETTER_LITTLE_YUS 0x2DFD #define T_UTF_32_COMBINING_CYRILLIC_LETTER_BIG_YUS 0x2DFE #define T_UTF_32_COMBINING_CYRILLIC_LETTER_IOTIFIED_BIG_YUS 0x2DFF #define T_UTF_32_RIGHT_ANGLE_SUBSTITUTION_MARKER 0x2E00 #define T_UTF_32_RIGHT_ANGLE_DOTTED_SUBSTITUTION_MARKER 0x2E01 #define T_UTF_32_LEFT_SUBSTITUTION_BRACKET 0x2E02 #define T_UTF_32_RIGHT_SUBSTITUTION_BRACKET 0x2E03 #define T_UTF_32_LEFT_DOTTED_SUBSTITUTION_BRACKET 0x2E04 #define T_UTF_32_RIGHT_DOTTED_SUBSTITUTION_BRACKET 0x2E05 #define T_UTF_32_RAISED_INTERPOLATION_MARKER 0x2E06 #define T_UTF_32_RAISED_DOTTED_INTERPOLATION_MARKER 0x2E07 #define T_UTF_32_DOTTED_TRANSPOSITION_MARKER 0x2E08 #define T_UTF_32_LEFT_TRANSPOSITION_BRACKET 0x2E09 #define T_UTF_32_RIGHT_TRANSPOSITION_BRACKET 0x2E0A #define T_UTF_32_RAISED_SQUARE 0x2E0B #define T_UTF_32_LEFT_RAISED_OMISSION_BRACKET 0x2E0C #define T_UTF_32_RIGHT_RAISED_OMISSION_BRACKET 0x2E0D #define T_UTF_32_EDITORIAL_CORONIS 0x2E0E #define T_UTF_32_PARAGRAPHOS 0x2E0F #define T_UTF_32_FORKED_PARAGRAPHOS 0x2E10 #define T_UTF_32_REVERSED_FORKED_PARAGRAPHOS 0x2E11 #define T_UTF_32_HYPODIASTOLE 0x2E12 #define T_UTF_32_DOTTED_OBELOS 0x2E13 #define T_UTF_32_DOWNWARDS_ANCORA 0x2E14 #define T_UTF_32_UPWARDS_ANCORA 0x2E15 #define T_UTF_32_DOTTED_RIGHT_POINTING_ANGLE 0x2E16 #define T_UTF_32_DOUBLE_OBLIQUE_HYPHEN 0x2E17 #define T_UTF_32_INVERTED_INTERROBANG 0x2E18 #define T_UTF_32_PALM_BRANCH 0x2E19 #define T_UTF_32_HYPHEN_WITH_DIAERESIS 0x2E1A #define T_UTF_32_TILDE_WITH_RING_ABOVE 0x2E1B #define T_UTF_32_LEFT_LOW_PARAPHRASE_BRACKET 0x2E1C #define T_UTF_32_RIGHT_LOW_PARAPHRASE_BRACKET 0x2E1D #define T_UTF_32_TILDE_WITH_DOT_ABOVE 0x2E1E #define T_UTF_32_TILDE_WITH_DOT_BELOW 0x2E1F #define T_UTF_32_LEFT_VERTICAL_BAR_WITH_QUILL 0x2E20 #define T_UTF_32_RIGHT_VERTICAL_BAR_WITH_QUILL 0x2E21 #define T_UTF_32_TOP_LEFT_HALF_BRACKET 0x2E22 #define T_UTF_32_TOP_RIGHT_HALF_BRACKET 0x2E23 #define T_UTF_32_BOTTOM_LEFT_HALF_BRACKET 0x2E24 #define T_UTF_32_BOTTOM_RIGHT_HALF_BRACKET 0x2E25 #define T_UTF_32_LEFT_SIDEWAYS_U_BRACKET 0x2E26 #define T_UTF_32_RIGHT_SIDEWAYS_U_BRACKET 0x2E27 #define T_UTF_32_LEFT_DOUBLE_PARENTHESIS 0x2E28 #define T_UTF_32_RIGHT_DOUBLE_PARENTHESIS 0x2E29 #define T_UTF_32_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION 0x2E2A #define T_UTF_32_ONE_DOT_OVER_TWO_DOTS_PUNCTUATION 0x2E2B #define T_UTF_32_SQUARED_FOUR_DOT_PUNCTUATION 0x2E2C #define T_UTF_32_FIVE_DOT_MARK 0x2E2D #define T_UTF_32_REVERSED_QUESTION_MARK 0x2E2E #define T_UTF_32_VERTICAL_TILDE 0x2E2F #define T_UTF_32_RING_POINT 0x2E30 #define T_UTF_32_WORD_SEPARATOR_MIDDLE_DOT 0x2E31 #define T_UTF_32_TURNED_COMMA 0x2E32 #define T_UTF_32_RAISED_DOT 0x2E33 #define T_UTF_32_RAISED_COMMA 0x2E34 #define T_UTF_32_TURNED_SEMICOLON 0x2E35 #define T_UTF_32_DAGGER_WITH_LEFT_GUARD 0x2E36 #define T_UTF_32_DAGGER_WITH_RIGHT_GUARD 0x2E37 #define T_UTF_32_TURNED_DAGGER 0x2E38 #define T_UTF_32_TOP_HALF_SECTION_SIGN 0x2E39 #define T_UTF_32_TWO_EM_DASH 0x2E3A #define T_UTF_32_THREE_EM_DASH 0x2E3B #define T_UTF_32_STENOGRAPHIC_FULL_STOP 0x2E3C #define T_UTF_32_VERTICAL_SIX_DOTS 0x2E3D #define T_UTF_32_WIGGLY_VERTICAL_LINE 0x2E3E #define T_UTF_32_CAPITULUM 0x2E3F #define T_UTF_32_DOUBLE_HYPHEN 0x2E40 #define T_UTF_32_REVERSED_COMMA 0x2E41 #define T_UTF_32_DOUBLE_LOW_REVERSED_9_QUOTATION_MARK 0x2E42 #define T_UTF_32_DASH_WITH_LEFT_UPTURN 0x2E43 #define T_UTF_32_DOUBLE_SUSPENSION_MARK 0x2E44 #define T_UTF_32_INVERTED_LOW_KAVYKA 0x2E45 #define T_UTF_32_INVERTED_LOW_KAVYKA_WITH_KAVYKA_ABOVE 0x2E46 #define T_UTF_32_LOW_KAVYKA 0x2E47 #define T_UTF_32_LOW_KAVYKA_WITH_DOT 0x2E48 #define T_UTF_32_DOUBLE_STACKED_COMMA 0x2E49 #define T_UTF_32_CJK_RADICAL_REPEAT 0x2E80 #define T_UTF_32_CJK_RADICAL_CLIFF 0x2E81 #define T_UTF_32_CJK_RADICAL_SECOND_ONE 0x2E82 #define T_UTF_32_CJK_RADICAL_SECOND_TWO 0x2E83 #define T_UTF_32_CJK_RADICAL_SECOND_THREE 0x2E84 #define T_UTF_32_CJK_RADICAL_PERSON 0x2E85 #define T_UTF_32_CJK_RADICAL_BOX 0x2E86 #define T_UTF_32_CJK_RADICAL_TABLE 0x2E87 #define T_UTF_32_CJK_RADICAL_KNIFE_ONE 0x2E88 #define T_UTF_32_CJK_RADICAL_KNIFE_TWO 0x2E89 #define T_UTF_32_CJK_RADICAL_DIVINATION 0x2E8A #define T_UTF_32_CJK_RADICAL_SEAL 0x2E8B #define T_UTF_32_CJK_RADICAL_SMALL_ONE 0x2E8C #define T_UTF_32_CJK_RADICAL_SMALL_TWO 0x2E8D #define T_UTF_32_CJK_RADICAL_LAME_ONE 0x2E8E #define T_UTF_32_CJK_RADICAL_LAME_TWO 0x2E8F #define T_UTF_32_CJK_RADICAL_LAME_THREE 0x2E90 #define T_UTF_32_CJK_RADICAL_LAME_FOUR 0x2E91 #define T_UTF_32_CJK_RADICAL_SNAKE 0x2E92 #define T_UTF_32_CJK_RADICAL_THREAD 0x2E93 #define T_UTF_32_CJK_RADICAL_SNOUT_ONE 0x2E94 #define T_UTF_32_CJK_RADICAL_SNOUT_TWO 0x2E95 #define T_UTF_32_CJK_RADICAL_HEART_ONE 0x2E96 #define T_UTF_32_CJK_RADICAL_HEART_TWO 0x2E97 #define T_UTF_32_CJK_RADICAL_HAND 0x2E98 #define T_UTF_32_CJK_RADICAL_RAP 0x2E99 #define T_UTF_32_CJK_RADICAL_CHOKE 0x2E9B #define T_UTF_32_CJK_RADICAL_SUN 0x2E9C #define T_UTF_32_CJK_RADICAL_MOON 0x2E9D #define T_UTF_32_CJK_RADICAL_DEATH 0x2E9E #define T_UTF_32_CJK_RADICAL_MOTHER 0x2E9F #define T_UTF_32_CJK_RADICAL_CIVILIAN 0x2EA0 #define T_UTF_32_CJK_RADICAL_WATER_ONE 0x2EA1 #define T_UTF_32_CJK_RADICAL_WATER_TWO 0x2EA2 #define T_UTF_32_CJK_RADICAL_FIRE 0x2EA3 #define T_UTF_32_CJK_RADICAL_PAW_ONE 0x2EA4 #define T_UTF_32_CJK_RADICAL_PAW_TWO 0x2EA5 #define T_UTF_32_CJK_RADICAL_SIMPLIFIED_HALF_TREE_TRUNK 0x2EA6 #define T_UTF_32_CJK_RADICAL_COW 0x2EA7 #define T_UTF_32_CJK_RADICAL_DOG 0x2EA8 #define T_UTF_32_CJK_RADICAL_JADE 0x2EA9 #define T_UTF_32_CJK_RADICAL_BOLT_OF_CLOTH 0x2EAA #define T_UTF_32_CJK_RADICAL_EYE 0x2EAB #define T_UTF_32_CJK_RADICAL_SPIRIT_ONE 0x2EAC #define T_UTF_32_CJK_RADICAL_SPIRIT_TWO 0x2EAD #define T_UTF_32_CJK_RADICAL_BAMBOO 0x2EAE #define T_UTF_32_CJK_RADICAL_SILK 0x2EAF #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_SILK 0x2EB0 #define T_UTF_32_CJK_RADICAL_NET_ONE 0x2EB1 #define T_UTF_32_CJK_RADICAL_NET_TWO 0x2EB2 #define T_UTF_32_CJK_RADICAL_NET_THREE 0x2EB3 #define T_UTF_32_CJK_RADICAL_NET_FOUR 0x2EB4 #define T_UTF_32_CJK_RADICAL_MESH 0x2EB5 #define T_UTF_32_CJK_RADICAL_SHEEP 0x2EB6 #define T_UTF_32_CJK_RADICAL_RAM 0x2EB7 #define T_UTF_32_CJK_RADICAL_EWE 0x2EB8 #define T_UTF_32_CJK_RADICAL_OLD 0x2EB9 #define T_UTF_32_CJK_RADICAL_BRUSH_ONE 0x2EBA #define T_UTF_32_CJK_RADICAL_BRUSH_TWO 0x2EBB #define T_UTF_32_CJK_RADICAL_MEAT 0x2EBC #define T_UTF_32_CJK_RADICAL_MORTAR 0x2EBD #define T_UTF_32_CJK_RADICAL_GRASS_ONE 0x2EBE #define T_UTF_32_CJK_RADICAL_GRASS_TWO 0x2EBF #define T_UTF_32_CJK_RADICAL_GRASS_THREE 0x2EC0 #define T_UTF_32_CJK_RADICAL_TIGER 0x2EC1 #define T_UTF_32_CJK_RADICAL_CLOTHES 0x2EC2 #define T_UTF_32_CJK_RADICAL_WEST_ONE 0x2EC3 #define T_UTF_32_CJK_RADICAL_WEST_TWO 0x2EC4 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_SEE 0x2EC5 #define T_UTF_32_CJK_RADICAL_SIMPLIFIED_HORN 0x2EC6 #define T_UTF_32_CJK_RADICAL_HORN 0x2EC7 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_SPEECH 0x2EC8 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_SHELL 0x2EC9 #define T_UTF_32_CJK_RADICAL_FOOT 0x2ECA #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_CART 0x2ECB #define T_UTF_32_CJK_RADICAL_SIMPLIFIED_WALK 0x2ECC #define T_UTF_32_CJK_RADICAL_WALK_ONE 0x2ECD #define T_UTF_32_CJK_RADICAL_WALK_TWO 0x2ECE #define T_UTF_32_CJK_RADICAL_CITY 0x2ECF #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_GOLD 0x2ED0 #define T_UTF_32_CJK_RADICAL_LONG_ONE 0x2ED1 #define T_UTF_32_CJK_RADICAL_LONG_TWO 0x2ED2 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_LONG 0x2ED3 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_GATE 0x2ED4 #define T_UTF_32_CJK_RADICAL_MOUND_ONE 0x2ED5 #define T_UTF_32_CJK_RADICAL_MOUND_TWO 0x2ED6 #define T_UTF_32_CJK_RADICAL_RAIN 0x2ED7 #define T_UTF_32_CJK_RADICAL_BLUE 0x2ED8 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_TANNED_LEATHER 0x2ED9 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_LEAF 0x2EDA #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_WIND 0x2EDB #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_FLY 0x2EDC #define T_UTF_32_CJK_RADICAL_EAT_ONE 0x2EDD #define T_UTF_32_CJK_RADICAL_EAT_TWO 0x2EDE #define T_UTF_32_CJK_RADICAL_EAT_THREE 0x2EDF #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_EAT 0x2EE0 #define T_UTF_32_CJK_RADICAL_HEAD 0x2EE1 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_HORSE 0x2EE2 #define T_UTF_32_CJK_RADICAL_BONE 0x2EE3 #define T_UTF_32_CJK_RADICAL_GHOST 0x2EE4 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_FISH 0x2EE5 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_BIRD 0x2EE6 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_SALT 0x2EE7 #define T_UTF_32_CJK_RADICAL_SIMPLIFIED_WHEAT 0x2EE8 #define T_UTF_32_CJK_RADICAL_SIMPLIFIED_YELLOW 0x2EE9 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_FROG 0x2EEA #define T_UTF_32_CJK_RADICAL_J_SIMPLIFIED_EVEN 0x2EEB #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_EVEN 0x2EEC #define T_UTF_32_CJK_RADICAL_J_SIMPLIFIED_TOOTH 0x2EED #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_TOOTH 0x2EEE #define T_UTF_32_CJK_RADICAL_J_SIMPLIFIED_DRAGON 0x2EEF #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_DRAGON 0x2EF0 #define T_UTF_32_CJK_RADICAL_TURTLE 0x2EF1 #define T_UTF_32_CJK_RADICAL_J_SIMPLIFIED_TURTLE 0x2EF2 #define T_UTF_32_CJK_RADICAL_C_SIMPLIFIED_TURTLE 0x2EF3 #define T_UTF_32_KANGXI_RADICAL_ONE 0x2F00 #define T_UTF_32_KANGXI_RADICAL_LINE 0x2F01 #define T_UTF_32_KANGXI_RADICAL_DOT 0x2F02 #define T_UTF_32_KANGXI_RADICAL_SLASH 0x2F03 #define T_UTF_32_KANGXI_RADICAL_SECOND 0x2F04 #define T_UTF_32_KANGXI_RADICAL_HOOK 0x2F05 #define T_UTF_32_KANGXI_RADICAL_TWO 0x2F06 #define T_UTF_32_KANGXI_RADICAL_LID 0x2F07 #define T_UTF_32_KANGXI_RADICAL_MAN 0x2F08 #define T_UTF_32_KANGXI_RADICAL_LEGS 0x2F09 #define T_UTF_32_KANGXI_RADICAL_ENTER 0x2F0A #define T_UTF_32_KANGXI_RADICAL_EIGHT 0x2F0B #define T_UTF_32_KANGXI_RADICAL_DOWN_BOX 0x2F0C #define T_UTF_32_KANGXI_RADICAL_COVER 0x2F0D #define T_UTF_32_KANGXI_RADICAL_ICE 0x2F0E #define T_UTF_32_KANGXI_RADICAL_TABLE 0x2F0F #define T_UTF_32_KANGXI_RADICAL_OPEN_BOX 0x2F10 #define T_UTF_32_KANGXI_RADICAL_KNIFE 0x2F11 #define T_UTF_32_KANGXI_RADICAL_POWER 0x2F12 #define T_UTF_32_KANGXI_RADICAL_WRAP 0x2F13 #define T_UTF_32_KANGXI_RADICAL_SPOON 0x2F14 #define T_UTF_32_KANGXI_RADICAL_RIGHT_OPEN_BOX 0x2F15 #define T_UTF_32_KANGXI_RADICAL_HIDING_ENCLOSURE 0x2F16 #define T_UTF_32_KANGXI_RADICAL_TEN 0x2F17 #define T_UTF_32_KANGXI_RADICAL_DIVINATION 0x2F18 #define T_UTF_32_KANGXI_RADICAL_SEAL 0x2F19 #define T_UTF_32_KANGXI_RADICAL_CLIFF 0x2F1A #define T_UTF_32_KANGXI_RADICAL_PRIVATE 0x2F1B #define T_UTF_32_KANGXI_RADICAL_AGAIN 0x2F1C #define T_UTF_32_KANGXI_RADICAL_MOUTH 0x2F1D #define T_UTF_32_KANGXI_RADICAL_ENCLOSURE 0x2F1E #define T_UTF_32_KANGXI_RADICAL_EARTH 0x2F1F #define T_UTF_32_KANGXI_RADICAL_SCHOLAR 0x2F20 #define T_UTF_32_KANGXI_RADICAL_GO 0x2F21 #define T_UTF_32_KANGXI_RADICAL_GO_SLOWLY 0x2F22 #define T_UTF_32_KANGXI_RADICAL_EVENING 0x2F23 #define T_UTF_32_KANGXI_RADICAL_BIG 0x2F24 #define T_UTF_32_KANGXI_RADICAL_WOMAN 0x2F25 #define T_UTF_32_KANGXI_RADICAL_CHILD 0x2F26 #define T_UTF_32_KANGXI_RADICAL_ROOF 0x2F27 #define T_UTF_32_KANGXI_RADICAL_INCH 0x2F28 #define T_UTF_32_KANGXI_RADICAL_SMALL 0x2F29 #define T_UTF_32_KANGXI_RADICAL_LAME 0x2F2A #define T_UTF_32_KANGXI_RADICAL_CORPSE 0x2F2B #define T_UTF_32_KANGXI_RADICAL_SPROUT 0x2F2C #define T_UTF_32_KANGXI_RADICAL_MOUNTAIN 0x2F2D #define T_UTF_32_KANGXI_RADICAL_RIVER 0x2F2E #define T_UTF_32_KANGXI_RADICAL_WORK 0x2F2F #define T_UTF_32_KANGXI_RADICAL_ONESELF 0x2F30 #define T_UTF_32_KANGXI_RADICAL_TURBAN 0x2F31 #define T_UTF_32_KANGXI_RADICAL_DRY 0x2F32 #define T_UTF_32_KANGXI_RADICAL_SHORT_THREAD 0x2F33 #define T_UTF_32_KANGXI_RADICAL_DOTTED_CLIFF 0x2F34 #define T_UTF_32_KANGXI_RADICAL_LONG_STRIDE 0x2F35 #define T_UTF_32_KANGXI_RADICAL_TWO_HANDS 0x2F36 #define T_UTF_32_KANGXI_RADICAL_SHOOT 0x2F37 #define T_UTF_32_KANGXI_RADICAL_BOW 0x2F38 #define T_UTF_32_KANGXI_RADICAL_SNOUT 0x2F39 #define T_UTF_32_KANGXI_RADICAL_BRISTLE 0x2F3A #define T_UTF_32_KANGXI_RADICAL_STEP 0x2F3B #define T_UTF_32_KANGXI_RADICAL_HEART 0x2F3C #define T_UTF_32_KANGXI_RADICAL_HALBERD 0x2F3D #define T_UTF_32_KANGXI_RADICAL_DOOR 0x2F3E #define T_UTF_32_KANGXI_RADICAL_HAND 0x2F3F #define T_UTF_32_KANGXI_RADICAL_BRANCH 0x2F40 #define T_UTF_32_KANGXI_RADICAL_RAP 0x2F41 #define T_UTF_32_KANGXI_RADICAL_SCRIPT 0x2F42 #define T_UTF_32_KANGXI_RADICAL_DIPPER 0x2F43 #define T_UTF_32_KANGXI_RADICAL_AXE 0x2F44 #define T_UTF_32_KANGXI_RADICAL_SQUARE 0x2F45 #define T_UTF_32_KANGXI_RADICAL_NOT 0x2F46 #define T_UTF_32_KANGXI_RADICAL_SUN 0x2F47 #define T_UTF_32_KANGXI_RADICAL_SAY 0x2F48 #define T_UTF_32_KANGXI_RADICAL_MOON 0x2F49 #define T_UTF_32_KANGXI_RADICAL_TREE 0x2F4A #define T_UTF_32_KANGXI_RADICAL_LACK 0x2F4B #define T_UTF_32_KANGXI_RADICAL_STOP 0x2F4C #define T_UTF_32_KANGXI_RADICAL_DEATH 0x2F4D #define T_UTF_32_KANGXI_RADICAL_WEAPON 0x2F4E #define T_UTF_32_KANGXI_RADICAL_DO_NOT 0x2F4F #define T_UTF_32_KANGXI_RADICAL_COMPARE 0x2F50 #define T_UTF_32_KANGXI_RADICAL_FUR 0x2F51 #define T_UTF_32_KANGXI_RADICAL_CLAN 0x2F52 #define T_UTF_32_KANGXI_RADICAL_STEAM 0x2F53 #define T_UTF_32_KANGXI_RADICAL_WATER 0x2F54 #define T_UTF_32_KANGXI_RADICAL_FIRE 0x2F55 #define T_UTF_32_KANGXI_RADICAL_CLAW 0x2F56 #define T_UTF_32_KANGXI_RADICAL_FATHER 0x2F57 #define T_UTF_32_KANGXI_RADICAL_DOUBLE_X 0x2F58 #define T_UTF_32_KANGXI_RADICAL_HALF_TREE_TRUNK 0x2F59 #define T_UTF_32_KANGXI_RADICAL_SLICE 0x2F5A #define T_UTF_32_KANGXI_RADICAL_FANG 0x2F5B #define T_UTF_32_KANGXI_RADICAL_COW 0x2F5C #define T_UTF_32_KANGXI_RADICAL_DOG 0x2F5D #define T_UTF_32_KANGXI_RADICAL_PROFOUND 0x2F5E #define T_UTF_32_KANGXI_RADICAL_JADE 0x2F5F #define T_UTF_32_KANGXI_RADICAL_MELON 0x2F60 #define T_UTF_32_KANGXI_RADICAL_TILE 0x2F61 #define T_UTF_32_KANGXI_RADICAL_SWEET 0x2F62 #define T_UTF_32_KANGXI_RADICAL_LIFE 0x2F63 #define T_UTF_32_KANGXI_RADICAL_USE 0x2F64 #define T_UTF_32_KANGXI_RADICAL_FIELD 0x2F65 #define T_UTF_32_KANGXI_RADICAL_BOLT_OF_CLOTH 0x2F66 #define T_UTF_32_KANGXI_RADICAL_SICKNESS 0x2F67 #define T_UTF_32_KANGXI_RADICAL_DOTTED_TENT 0x2F68 #define T_UTF_32_KANGXI_RADICAL_WHITE 0x2F69 #define T_UTF_32_KANGXI_RADICAL_SKIN 0x2F6A #define T_UTF_32_KANGXI_RADICAL_DISH 0x2F6B #define T_UTF_32_KANGXI_RADICAL_EYE 0x2F6C #define T_UTF_32_KANGXI_RADICAL_SPEAR 0x2F6D #define T_UTF_32_KANGXI_RADICAL_ARROW 0x2F6E #define T_UTF_32_KANGXI_RADICAL_STONE 0x2F6F #define T_UTF_32_KANGXI_RADICAL_SPIRIT 0x2F70 #define T_UTF_32_KANGXI_RADICAL_TRACK 0x2F71 #define T_UTF_32_KANGXI_RADICAL_GRAIN 0x2F72 #define T_UTF_32_KANGXI_RADICAL_CAVE 0x2F73 #define T_UTF_32_KANGXI_RADICAL_STAND 0x2F74 #define T_UTF_32_KANGXI_RADICAL_BAMBOO 0x2F75 #define T_UTF_32_KANGXI_RADICAL_RICE 0x2F76 #define T_UTF_32_KANGXI_RADICAL_SILK 0x2F77 #define T_UTF_32_KANGXI_RADICAL_JAR 0x2F78 #define T_UTF_32_KANGXI_RADICAL_NET 0x2F79 #define T_UTF_32_KANGXI_RADICAL_SHEEP 0x2F7A #define T_UTF_32_KANGXI_RADICAL_FEATHER 0x2F7B #define T_UTF_32_KANGXI_RADICAL_OLD 0x2F7C #define T_UTF_32_KANGXI_RADICAL_AND 0x2F7D #define T_UTF_32_KANGXI_RADICAL_PLOW 0x2F7E #define T_UTF_32_KANGXI_RADICAL_EAR 0x2F7F #define T_UTF_32_KANGXI_RADICAL_BRUSH 0x2F80 #define T_UTF_32_KANGXI_RADICAL_MEAT 0x2F81 #define T_UTF_32_KANGXI_RADICAL_MINISTER 0x2F82 #define T_UTF_32_KANGXI_RADICAL_SELF 0x2F83 #define T_UTF_32_KANGXI_RADICAL_ARRIVE 0x2F84 #define T_UTF_32_KANGXI_RADICAL_MORTAR 0x2F85 #define T_UTF_32_KANGXI_RADICAL_TONGUE 0x2F86 #define T_UTF_32_KANGXI_RADICAL_OPPOSE 0x2F87 #define T_UTF_32_KANGXI_RADICAL_BOAT 0x2F88 #define T_UTF_32_KANGXI_RADICAL_STOPPING 0x2F89 #define T_UTF_32_KANGXI_RADICAL_COLOR 0x2F8A #define T_UTF_32_KANGXI_RADICAL_GRASS 0x2F8B #define T_UTF_32_KANGXI_RADICAL_TIGER 0x2F8C #define T_UTF_32_KANGXI_RADICAL_INSECT 0x2F8D #define T_UTF_32_KANGXI_RADICAL_BLOOD 0x2F8E #define T_UTF_32_KANGXI_RADICAL_WALK_ENCLOSURE 0x2F8F #define T_UTF_32_KANGXI_RADICAL_CLOTHES 0x2F90 #define T_UTF_32_KANGXI_RADICAL_WEST 0x2F91 #define T_UTF_32_KANGXI_RADICAL_SEE 0x2F92 #define T_UTF_32_KANGXI_RADICAL_HORN 0x2F93 #define T_UTF_32_KANGXI_RADICAL_SPEECH 0x2F94 #define T_UTF_32_KANGXI_RADICAL_VALLEY 0x2F95 #define T_UTF_32_KANGXI_RADICAL_BEAN 0x2F96 #define T_UTF_32_KANGXI_RADICAL_PIG 0x2F97 #define T_UTF_32_KANGXI_RADICAL_BADGER 0x2F98 #define T_UTF_32_KANGXI_RADICAL_SHELL 0x2F99 #define T_UTF_32_KANGXI_RADICAL_RED 0x2F9A #define T_UTF_32_KANGXI_RADICAL_RUN 0x2F9B #define T_UTF_32_KANGXI_RADICAL_FOOT 0x2F9C #define T_UTF_32_KANGXI_RADICAL_BODY 0x2F9D #define T_UTF_32_KANGXI_RADICAL_CART 0x2F9E #define T_UTF_32_KANGXI_RADICAL_BITTER 0x2F9F #define T_UTF_32_KANGXI_RADICAL_MORNING 0x2FA0 #define T_UTF_32_KANGXI_RADICAL_WALK 0x2FA1 #define T_UTF_32_KANGXI_RADICAL_CITY 0x2FA2 #define T_UTF_32_KANGXI_RADICAL_WINE 0x2FA3 #define T_UTF_32_KANGXI_RADICAL_DISTINGUISH 0x2FA4 #define T_UTF_32_KANGXI_RADICAL_VILLAGE 0x2FA5 #define T_UTF_32_KANGXI_RADICAL_GOLD 0x2FA6 #define T_UTF_32_KANGXI_RADICAL_LONG 0x2FA7 #define T_UTF_32_KANGXI_RADICAL_GATE 0x2FA8 #define T_UTF_32_KANGXI_RADICAL_MOUND 0x2FA9 #define T_UTF_32_KANGXI_RADICAL_SLAVE 0x2FAA #define T_UTF_32_KANGXI_RADICAL_SHORT_TAILED_BIRD 0x2FAB #define T_UTF_32_KANGXI_RADICAL_RAIN 0x2FAC #define T_UTF_32_KANGXI_RADICAL_BLUE 0x2FAD #define T_UTF_32_KANGXI_RADICAL_WRONG 0x2FAE #define T_UTF_32_KANGXI_RADICAL_FACE 0x2FAF #define T_UTF_32_KANGXI_RADICAL_LEATHER 0x2FB0 #define T_UTF_32_KANGXI_RADICAL_TANNED_LEATHER 0x2FB1 #define T_UTF_32_KANGXI_RADICAL_LEEK 0x2FB2 #define T_UTF_32_KANGXI_RADICAL_SOUND 0x2FB3 #define T_UTF_32_KANGXI_RADICAL_LEAF 0x2FB4 #define T_UTF_32_KANGXI_RADICAL_WIND 0x2FB5 #define T_UTF_32_KANGXI_RADICAL_FLY 0x2FB6 #define T_UTF_32_KANGXI_RADICAL_EAT 0x2FB7 #define T_UTF_32_KANGXI_RADICAL_HEAD 0x2FB8 #define T_UTF_32_KANGXI_RADICAL_FRAGRANT 0x2FB9 #define T_UTF_32_KANGXI_RADICAL_HORSE 0x2FBA #define T_UTF_32_KANGXI_RADICAL_BONE 0x2FBB #define T_UTF_32_KANGXI_RADICAL_TALL 0x2FBC #define T_UTF_32_KANGXI_RADICAL_HAIR 0x2FBD #define T_UTF_32_KANGXI_RADICAL_FIGHT 0x2FBE #define T_UTF_32_KANGXI_RADICAL_SACRIFICIAL_WINE 0x2FBF #define T_UTF_32_KANGXI_RADICAL_CAULDRON 0x2FC0 #define T_UTF_32_KANGXI_RADICAL_GHOST 0x2FC1 #define T_UTF_32_KANGXI_RADICAL_FISH 0x2FC2 #define T_UTF_32_KANGXI_RADICAL_BIRD 0x2FC3 #define T_UTF_32_KANGXI_RADICAL_SALT 0x2FC4 #define T_UTF_32_KANGXI_RADICAL_DEER 0x2FC5 #define T_UTF_32_KANGXI_RADICAL_WHEAT 0x2FC6 #define T_UTF_32_KANGXI_RADICAL_HEMP 0x2FC7 #define T_UTF_32_KANGXI_RADICAL_YELLOW 0x2FC8 #define T_UTF_32_KANGXI_RADICAL_MILLET 0x2FC9 #define T_UTF_32_KANGXI_RADICAL_BLACK 0x2FCA #define T_UTF_32_KANGXI_RADICAL_EMBROIDERY 0x2FCB #define T_UTF_32_KANGXI_RADICAL_FROG 0x2FCC #define T_UTF_32_KANGXI_RADICAL_TRIPOD 0x2FCD #define T_UTF_32_KANGXI_RADICAL_DRUM 0x2FCE #define T_UTF_32_KANGXI_RADICAL_RAT 0x2FCF #define T_UTF_32_KANGXI_RADICAL_NOSE 0x2FD0 #define T_UTF_32_KANGXI_RADICAL_EVEN 0x2FD1 #define T_UTF_32_KANGXI_RADICAL_TOOTH 0x2FD2 #define T_UTF_32_KANGXI_RADICAL_DRAGON 0x2FD3 #define T_UTF_32_KANGXI_RADICAL_TURTLE 0x2FD4 #define T_UTF_32_KANGXI_RADICAL_FLUTE 0x2FD5 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_LEFT_TO_RIGHT 0x2FF0 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_ABOVE_TO_BELOW 0x2FF1 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_LEFT_TO_MIDDLE_AND_RIGHT 0x2FF2 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_ABOVE_TO_MIDDLE_AND_BELOW 0x2FF3 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_FULL_SURROUND 0x2FF4 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_SURROUND_FROM_ABOVE 0x2FF5 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_SURROUND_FROM_BELOW 0x2FF6 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_SURROUND_FROM_LEFT 0x2FF7 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_SURROUND_FROM_UPPER_LEFT 0x2FF8 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_SURROUND_FROM_UPPER_RIGHT 0x2FF9 #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_SURROUND_FROM_LOWER_LEFT 0x2FFA #define T_UTF_32_IDEOGRAPHIC_DESCRIPTION_CHARACTER_OVERLAID 0x2FFB #define T_UTF_32_IDEOGRAPHIC_SPACE 0x3000 #define T_UTF_32_IDEOGRAPHIC_COMMA 0x3001 #define T_UTF_32_IDEOGRAPHIC_FULL_STOP 0x3002 #define T_UTF_32_DITTO_MARK 0x3003 #define T_UTF_32_JAPANESE_INDUSTRIAL_STANDARD_SYMBOL 0x3004 #define T_UTF_32_IDEOGRAPHIC_ITERATION_MARK 0x3005 #define T_UTF_32_IDEOGRAPHIC_CLOSING_MARK 0x3006 #define T_UTF_32_IDEOGRAPHIC_NUMBER_ZERO 0x3007 #define T_UTF_32_LEFT_ANGLE_BRACKET 0x3008 #define T_UTF_32_RIGHT_ANGLE_BRACKET 0x3009 #define T_UTF_32_LEFT_DOUBLE_ANGLE_BRACKET 0x300A #define T_UTF_32_RIGHT_DOUBLE_ANGLE_BRACKET 0x300B #define T_UTF_32_LEFT_CORNER_BRACKET 0x300C #define T_UTF_32_RIGHT_CORNER_BRACKET 0x300D #define T_UTF_32_LEFT_WHITE_CORNER_BRACKET 0x300E #define T_UTF_32_RIGHT_WHITE_CORNER_BRACKET 0x300F #define T_UTF_32_LEFT_BLACK_LENTICULAR_BRACKET 0x3010 #define T_UTF_32_RIGHT_BLACK_LENTICULAR_BRACKET 0x3011 #define T_UTF_32_POSTAL_MARK 0x3012 #define T_UTF_32_GETA_MARK 0x3013 #define T_UTF_32_LEFT_TORTOISE_SHELL_BRACKET 0x3014 #define T_UTF_32_RIGHT_TORTOISE_SHELL_BRACKET 0x3015 #define T_UTF_32_LEFT_WHITE_LENTICULAR_BRACKET 0x3016 #define T_UTF_32_RIGHT_WHITE_LENTICULAR_BRACKET 0x3017 #define T_UTF_32_LEFT_WHITE_TORTOISE_SHELL_BRACKET 0x3018 #define T_UTF_32_RIGHT_WHITE_TORTOISE_SHELL_BRACKET 0x3019 #define T_UTF_32_LEFT_WHITE_SQUARE_BRACKET 0x301A #define T_UTF_32_RIGHT_WHITE_SQUARE_BRACKET 0x301B #define T_UTF_32_WAVE_DASH 0x301C #define T_UTF_32_REVERSED_DOUBLE_PRIME_QUOTATION_MARK 0x301D #define T_UTF_32_DOUBLE_PRIME_QUOTATION_MARK 0x301E #define T_UTF_32_LOW_DOUBLE_PRIME_QUOTATION_MARK 0x301F #define T_UTF_32_POSTAL_MARK_FACE 0x3020 #define T_UTF_32_HANGZHOU_NUMERAL_ONE 0x3021 #define T_UTF_32_HANGZHOU_NUMERAL_TWO 0x3022 #define T_UTF_32_HANGZHOU_NUMERAL_THREE 0x3023 #define T_UTF_32_HANGZHOU_NUMERAL_FOUR 0x3024 #define T_UTF_32_HANGZHOU_NUMERAL_FIVE 0x3025 #define T_UTF_32_HANGZHOU_NUMERAL_SIX 0x3026 #define T_UTF_32_HANGZHOU_NUMERAL_SEVEN 0x3027 #define T_UTF_32_HANGZHOU_NUMERAL_EIGHT 0x3028 #define T_UTF_32_HANGZHOU_NUMERAL_NINE 0x3029 #define T_UTF_32_IDEOGRAPHIC_LEVEL_TONE_MARK 0x302A #define T_UTF_32_IDEOGRAPHIC_RISING_TONE_MARK 0x302B #define T_UTF_32_IDEOGRAPHIC_DEPARTING_TONE_MARK 0x302C #define T_UTF_32_IDEOGRAPHIC_ENTERING_TONE_MARK 0x302D #define T_UTF_32_HANGUL_SINGLE_DOT_TONE_MARK 0x302E #define T_UTF_32_HANGUL_DOUBLE_DOT_TONE_MARK 0x302F #define T_UTF_32_WAVY_DASH 0x3030 #define T_UTF_32_VERTICAL_KANA_REPEAT_MARK 0x3031 #define T_UTF_32_VERTICAL_KANA_REPEAT_WITH_VOICED_SOUND_MARK 0x3032 #define T_UTF_32_VERTICAL_KANA_REPEAT_MARK_UPPER_HALF 0x3033 #define T_UTF_32_VERTICAL_KANA_REPEAT_WITH_VOICED_SOUND_MARK_UPPER_HALF 0x3034 #define T_UTF_32_VERTICAL_KANA_REPEAT_MARK_LOWER_HALF 0x3035 #define T_UTF_32_CIRCLED_POSTAL_MARK 0x3036 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_LINE_FEED_SEPARATOR_SYMBOL 0x3037 #define T_UTF_32_HANGZHOU_NUMERAL_TEN 0x3038 #define T_UTF_32_HANGZHOU_NUMERAL_TWENTY 0x3039 #define T_UTF_32_HANGZHOU_NUMERAL_THIRTY 0x303A #define T_UTF_32_VERTICAL_IDEOGRAPHIC_ITERATION_MARK 0x303B #define T_UTF_32_MASU_MARK 0x303C #define T_UTF_32_PART_ALTERNATION_MARK 0x303D #define T_UTF_32_IDEOGRAPHIC_VARIATION_INDICATOR 0x303E #define T_UTF_32_IDEOGRAPHIC_HALF_FILL_SPACE 0x303F #define T_UTF_32_HIRAGANA_LETTER_SMALL_A 0x3041 #define T_UTF_32_HIRAGANA_LETTER_A 0x3042 #define T_UTF_32_HIRAGANA_LETTER_SMALL_I 0x3043 #define T_UTF_32_HIRAGANA_LETTER_I 0x3044 #define T_UTF_32_HIRAGANA_LETTER_SMALL_U 0x3045 #define T_UTF_32_HIRAGANA_LETTER_U 0x3046 #define T_UTF_32_HIRAGANA_LETTER_SMALL_E 0x3047 #define T_UTF_32_HIRAGANA_LETTER_E 0x3048 #define T_UTF_32_HIRAGANA_LETTER_SMALL_O 0x3049 #define T_UTF_32_HIRAGANA_LETTER_O 0x304A #define T_UTF_32_HIRAGANA_LETTER_KA 0x304B #define T_UTF_32_HIRAGANA_LETTER_GA 0x304C #define T_UTF_32_HIRAGANA_LETTER_KI 0x304D #define T_UTF_32_HIRAGANA_LETTER_GI 0x304E #define T_UTF_32_HIRAGANA_LETTER_KU 0x304F #define T_UTF_32_HIRAGANA_LETTER_GU 0x3050 #define T_UTF_32_HIRAGANA_LETTER_KE 0x3051 #define T_UTF_32_HIRAGANA_LETTER_GE 0x3052 #define T_UTF_32_HIRAGANA_LETTER_KO 0x3053 #define T_UTF_32_HIRAGANA_LETTER_GO 0x3054 #define T_UTF_32_HIRAGANA_LETTER_SA 0x3055 #define T_UTF_32_HIRAGANA_LETTER_ZA 0x3056 #define T_UTF_32_HIRAGANA_LETTER_SI 0x3057 #define T_UTF_32_HIRAGANA_LETTER_ZI 0x3058 #define T_UTF_32_HIRAGANA_LETTER_SU 0x3059 #define T_UTF_32_HIRAGANA_LETTER_ZU 0x305A #define T_UTF_32_HIRAGANA_LETTER_SE 0x305B #define T_UTF_32_HIRAGANA_LETTER_ZE 0x305C #define T_UTF_32_HIRAGANA_LETTER_SO 0x305D #define T_UTF_32_HIRAGANA_LETTER_ZO 0x305E #define T_UTF_32_HIRAGANA_LETTER_TA 0x305F #define T_UTF_32_HIRAGANA_LETTER_DA 0x3060 #define T_UTF_32_HIRAGANA_LETTER_TI 0x3061 #define T_UTF_32_HIRAGANA_LETTER_DI 0x3062 #define T_UTF_32_HIRAGANA_LETTER_SMALL_TU 0x3063 #define T_UTF_32_HIRAGANA_LETTER_TU 0x3064 #define T_UTF_32_HIRAGANA_LETTER_DU 0x3065 #define T_UTF_32_HIRAGANA_LETTER_TE 0x3066 #define T_UTF_32_HIRAGANA_LETTER_DE 0x3067 #define T_UTF_32_HIRAGANA_LETTER_TO 0x3068 #define T_UTF_32_HIRAGANA_LETTER_DO 0x3069 #define T_UTF_32_HIRAGANA_LETTER_NA 0x306A #define T_UTF_32_HIRAGANA_LETTER_NI 0x306B #define T_UTF_32_HIRAGANA_LETTER_NU 0x306C #define T_UTF_32_HIRAGANA_LETTER_NE 0x306D #define T_UTF_32_HIRAGANA_LETTER_NO 0x306E #define T_UTF_32_HIRAGANA_LETTER_HA 0x306F #define T_UTF_32_HIRAGANA_LETTER_BA 0x3070 #define T_UTF_32_HIRAGANA_LETTER_PA 0x3071 #define T_UTF_32_HIRAGANA_LETTER_HI 0x3072 #define T_UTF_32_HIRAGANA_LETTER_BI 0x3073 #define T_UTF_32_HIRAGANA_LETTER_PI 0x3074 #define T_UTF_32_HIRAGANA_LETTER_HU 0x3075 #define T_UTF_32_HIRAGANA_LETTER_BU 0x3076 #define T_UTF_32_HIRAGANA_LETTER_PU 0x3077 #define T_UTF_32_HIRAGANA_LETTER_HE 0x3078 #define T_UTF_32_HIRAGANA_LETTER_BE 0x3079 #define T_UTF_32_HIRAGANA_LETTER_PE 0x307A #define T_UTF_32_HIRAGANA_LETTER_HO 0x307B #define T_UTF_32_HIRAGANA_LETTER_BO 0x307C #define T_UTF_32_HIRAGANA_LETTER_PO 0x307D #define T_UTF_32_HIRAGANA_LETTER_MA 0x307E #define T_UTF_32_HIRAGANA_LETTER_MI 0x307F #define T_UTF_32_HIRAGANA_LETTER_MU 0x3080 #define T_UTF_32_HIRAGANA_LETTER_ME 0x3081 #define T_UTF_32_HIRAGANA_LETTER_MO 0x3082 #define T_UTF_32_HIRAGANA_LETTER_SMALL_YA 0x3083 #define T_UTF_32_HIRAGANA_LETTER_YA 0x3084 #define T_UTF_32_HIRAGANA_LETTER_SMALL_YU 0x3085 #define T_UTF_32_HIRAGANA_LETTER_YU 0x3086 #define T_UTF_32_HIRAGANA_LETTER_SMALL_YO 0x3087 #define T_UTF_32_HIRAGANA_LETTER_YO 0x3088 #define T_UTF_32_HIRAGANA_LETTER_RA 0x3089 #define T_UTF_32_HIRAGANA_LETTER_RI 0x308A #define T_UTF_32_HIRAGANA_LETTER_RU 0x308B #define T_UTF_32_HIRAGANA_LETTER_RE 0x308C #define T_UTF_32_HIRAGANA_LETTER_RO 0x308D #define T_UTF_32_HIRAGANA_LETTER_SMALL_WA 0x308E #define T_UTF_32_HIRAGANA_LETTER_WA 0x308F #define T_UTF_32_HIRAGANA_LETTER_WI 0x3090 #define T_UTF_32_HIRAGANA_LETTER_WE 0x3091 #define T_UTF_32_HIRAGANA_LETTER_WO 0x3092 #define T_UTF_32_HIRAGANA_LETTER_N 0x3093 #define T_UTF_32_HIRAGANA_LETTER_VU 0x3094 #define T_UTF_32_HIRAGANA_LETTER_SMALL_KA 0x3095 #define T_UTF_32_HIRAGANA_LETTER_SMALL_KE 0x3096 #define T_UTF_32_COMBINING_KATAKANA_HIRAGANA_VOICED_SOUND_MARK 0x3099 #define T_UTF_32_COMBINING_KATAKANA_HIRAGANA_SEMI_VOICED_SOUND_MARK 0x309A #define T_UTF_32_KATAKANA_HIRAGANA_VOICED_SOUND_MARK 0x309B #define T_UTF_32_KATAKANA_HIRAGANA_SEMI_VOICED_SOUND_MARK 0x309C #define T_UTF_32_HIRAGANA_ITERATION_MARK 0x309D #define T_UTF_32_HIRAGANA_VOICED_ITERATION_MARK 0x309E #define T_UTF_32_HIRAGANA_DIGRAPH_YORI 0x309F #define T_UTF_32_KATAKANA_HIRAGANA_DOUBLE_HYPHEN 0x30A0 #define T_UTF_32_KATAKANA_LETTER_SMALL_A 0x30A1 #define T_UTF_32_KATAKANA_LETTER_A 0x30A2 #define T_UTF_32_KATAKANA_LETTER_SMALL_I 0x30A3 #define T_UTF_32_KATAKANA_LETTER_I 0x30A4 #define T_UTF_32_KATAKANA_LETTER_SMALL_U 0x30A5 #define T_UTF_32_KATAKANA_LETTER_U 0x30A6 #define T_UTF_32_KATAKANA_LETTER_SMALL_E 0x30A7 #define T_UTF_32_KATAKANA_LETTER_E 0x30A8 #define T_UTF_32_KATAKANA_LETTER_SMALL_O 0x30A9 #define T_UTF_32_KATAKANA_LETTER_O 0x30AA #define T_UTF_32_KATAKANA_LETTER_KA 0x30AB #define T_UTF_32_KATAKANA_LETTER_GA 0x30AC #define T_UTF_32_KATAKANA_LETTER_KI 0x30AD #define T_UTF_32_KATAKANA_LETTER_GI 0x30AE #define T_UTF_32_KATAKANA_LETTER_KU 0x30AF #define T_UTF_32_KATAKANA_LETTER_GU 0x30B0 #define T_UTF_32_KATAKANA_LETTER_KE 0x30B1 #define T_UTF_32_KATAKANA_LETTER_GE 0x30B2 #define T_UTF_32_KATAKANA_LETTER_KO 0x30B3 #define T_UTF_32_KATAKANA_LETTER_GO 0x30B4 #define T_UTF_32_KATAKANA_LETTER_SA 0x30B5 #define T_UTF_32_KATAKANA_LETTER_ZA 0x30B6 #define T_UTF_32_KATAKANA_LETTER_SI 0x30B7 #define T_UTF_32_KATAKANA_LETTER_ZI 0x30B8 #define T_UTF_32_KATAKANA_LETTER_SU 0x30B9 #define T_UTF_32_KATAKANA_LETTER_ZU 0x30BA #define T_UTF_32_KATAKANA_LETTER_SE 0x30BB #define T_UTF_32_KATAKANA_LETTER_ZE 0x30BC #define T_UTF_32_KATAKANA_LETTER_SO 0x30BD #define T_UTF_32_KATAKANA_LETTER_ZO 0x30BE #define T_UTF_32_KATAKANA_LETTER_TA 0x30BF #define T_UTF_32_KATAKANA_LETTER_DA 0x30C0 #define T_UTF_32_KATAKANA_LETTER_TI 0x30C1 #define T_UTF_32_KATAKANA_LETTER_DI 0x30C2 #define T_UTF_32_KATAKANA_LETTER_SMALL_TU 0x30C3 #define T_UTF_32_KATAKANA_LETTER_TU 0x30C4 #define T_UTF_32_KATAKANA_LETTER_DU 0x30C5 #define T_UTF_32_KATAKANA_LETTER_TE 0x30C6 #define T_UTF_32_KATAKANA_LETTER_DE 0x30C7 #define T_UTF_32_KATAKANA_LETTER_TO 0x30C8 #define T_UTF_32_KATAKANA_LETTER_DO 0x30C9 #define T_UTF_32_KATAKANA_LETTER_NA 0x30CA #define T_UTF_32_KATAKANA_LETTER_NI 0x30CB #define T_UTF_32_KATAKANA_LETTER_NU 0x30CC #define T_UTF_32_KATAKANA_LETTER_NE 0x30CD #define T_UTF_32_KATAKANA_LETTER_NO 0x30CE #define T_UTF_32_KATAKANA_LETTER_HA 0x30CF #define T_UTF_32_KATAKANA_LETTER_BA 0x30D0 #define T_UTF_32_KATAKANA_LETTER_PA 0x30D1 #define T_UTF_32_KATAKANA_LETTER_HI 0x30D2 #define T_UTF_32_KATAKANA_LETTER_BI 0x30D3 #define T_UTF_32_KATAKANA_LETTER_PI 0x30D4 #define T_UTF_32_KATAKANA_LETTER_HU 0x30D5 #define T_UTF_32_KATAKANA_LETTER_BU 0x30D6 #define T_UTF_32_KATAKANA_LETTER_PU 0x30D7 #define T_UTF_32_KATAKANA_LETTER_HE 0x30D8 #define T_UTF_32_KATAKANA_LETTER_BE 0x30D9 #define T_UTF_32_KATAKANA_LETTER_PE 0x30DA #define T_UTF_32_KATAKANA_LETTER_HO 0x30DB #define T_UTF_32_KATAKANA_LETTER_BO 0x30DC #define T_UTF_32_KATAKANA_LETTER_PO 0x30DD #define T_UTF_32_KATAKANA_LETTER_MA 0x30DE #define T_UTF_32_KATAKANA_LETTER_MI 0x30DF #define T_UTF_32_KATAKANA_LETTER_MU 0x30E0 #define T_UTF_32_KATAKANA_LETTER_ME 0x30E1 #define T_UTF_32_KATAKANA_LETTER_MO 0x30E2 #define T_UTF_32_KATAKANA_LETTER_SMALL_YA 0x30E3 #define T_UTF_32_KATAKANA_LETTER_YA 0x30E4 #define T_UTF_32_KATAKANA_LETTER_SMALL_YU 0x30E5 #define T_UTF_32_KATAKANA_LETTER_YU 0x30E6 #define T_UTF_32_KATAKANA_LETTER_SMALL_YO 0x30E7 #define T_UTF_32_KATAKANA_LETTER_YO 0x30E8 #define T_UTF_32_KATAKANA_LETTER_RA 0x30E9 #define T_UTF_32_KATAKANA_LETTER_RI 0x30EA #define T_UTF_32_KATAKANA_LETTER_RU 0x30EB #define T_UTF_32_KATAKANA_LETTER_RE 0x30EC #define T_UTF_32_KATAKANA_LETTER_RO 0x30ED #define T_UTF_32_KATAKANA_LETTER_SMALL_WA 0x30EE #define T_UTF_32_KATAKANA_LETTER_WA 0x30EF #define T_UTF_32_KATAKANA_LETTER_WI 0x30F0 #define T_UTF_32_KATAKANA_LETTER_WE 0x30F1 #define T_UTF_32_KATAKANA_LETTER_WO 0x30F2 #define T_UTF_32_KATAKANA_LETTER_N 0x30F3 #define T_UTF_32_KATAKANA_LETTER_VU 0x30F4 #define T_UTF_32_KATAKANA_LETTER_SMALL_KA 0x30F5 #define T_UTF_32_KATAKANA_LETTER_SMALL_KE 0x30F6 #define T_UTF_32_KATAKANA_LETTER_VA 0x30F7 #define T_UTF_32_KATAKANA_LETTER_VI 0x30F8 #define T_UTF_32_KATAKANA_LETTER_VE 0x30F9 #define T_UTF_32_KATAKANA_LETTER_VO 0x30FA #define T_UTF_32_KATAKANA_MIDDLE_DOT 0x30FB #define T_UTF_32_KATAKANA_HIRAGANA_PROLONGED_SOUND_MARK 0x30FC #define T_UTF_32_KATAKANA_ITERATION_MARK 0x30FD #define T_UTF_32_KATAKANA_VOICED_ITERATION_MARK 0x30FE #define T_UTF_32_KATAKANA_DIGRAPH_KOTO 0x30FF #define T_UTF_32_BOPOMOFO_LETTER_B 0x3105 #define T_UTF_32_BOPOMOFO_LETTER_P 0x3106 #define T_UTF_32_BOPOMOFO_LETTER_M 0x3107 #define T_UTF_32_BOPOMOFO_LETTER_F 0x3108 #define T_UTF_32_BOPOMOFO_LETTER_D 0x3109 #define T_UTF_32_BOPOMOFO_LETTER_T 0x310A #define T_UTF_32_BOPOMOFO_LETTER_N 0x310B #define T_UTF_32_BOPOMOFO_LETTER_L 0x310C #define T_UTF_32_BOPOMOFO_LETTER_G 0x310D #define T_UTF_32_BOPOMOFO_LETTER_K 0x310E #define T_UTF_32_BOPOMOFO_LETTER_H 0x310F #define T_UTF_32_BOPOMOFO_LETTER_J 0x3110 #define T_UTF_32_BOPOMOFO_LETTER_Q 0x3111 #define T_UTF_32_BOPOMOFO_LETTER_X 0x3112 #define T_UTF_32_BOPOMOFO_LETTER_ZH 0x3113 #define T_UTF_32_BOPOMOFO_LETTER_CH 0x3114 #define T_UTF_32_BOPOMOFO_LETTER_SH 0x3115 #define T_UTF_32_BOPOMOFO_LETTER_R 0x3116 #define T_UTF_32_BOPOMOFO_LETTER_Z 0x3117 #define T_UTF_32_BOPOMOFO_LETTER_C 0x3118 #define T_UTF_32_BOPOMOFO_LETTER_S 0x3119 #define T_UTF_32_BOPOMOFO_LETTER_A 0x311A #define T_UTF_32_BOPOMOFO_LETTER_O 0x311B #define T_UTF_32_BOPOMOFO_LETTER_E 0x311C #define T_UTF_32_BOPOMOFO_LETTER_EH 0x311D #define T_UTF_32_BOPOMOFO_LETTER_AI 0x311E #define T_UTF_32_BOPOMOFO_LETTER_EI 0x311F #define T_UTF_32_BOPOMOFO_LETTER_AU 0x3120 #define T_UTF_32_BOPOMOFO_LETTER_OU 0x3121 #define T_UTF_32_BOPOMOFO_LETTER_AN 0x3122 #define T_UTF_32_BOPOMOFO_LETTER_EN 0x3123 #define T_UTF_32_BOPOMOFO_LETTER_ANG 0x3124 #define T_UTF_32_BOPOMOFO_LETTER_ENG 0x3125 #define T_UTF_32_BOPOMOFO_LETTER_ER 0x3126 #define T_UTF_32_BOPOMOFO_LETTER_I 0x3127 #define T_UTF_32_BOPOMOFO_LETTER_U 0x3128 #define T_UTF_32_BOPOMOFO_LETTER_IU 0x3129 #define T_UTF_32_BOPOMOFO_LETTER_V 0x312A #define T_UTF_32_BOPOMOFO_LETTER_NG 0x312B #define T_UTF_32_BOPOMOFO_LETTER_GN 0x312C #define T_UTF_32_BOPOMOFO_LETTER_IH 0x312D #define T_UTF_32_BOPOMOFO_LETTER_O_WITH_DOT_ABOVE 0x312E #define T_UTF_32_HANGUL_LETTER_KIYEOK 0x3131 #define T_UTF_32_HANGUL_LETTER_SSANGKIYEOK 0x3132 #define T_UTF_32_HANGUL_LETTER_KIYEOK_SIOS 0x3133 #define T_UTF_32_HANGUL_LETTER_NIEUN 0x3134 #define T_UTF_32_HANGUL_LETTER_NIEUN_CIEUC 0x3135 #define T_UTF_32_HANGUL_LETTER_NIEUN_HIEUH 0x3136 #define T_UTF_32_HANGUL_LETTER_TIKEUT 0x3137 #define T_UTF_32_HANGUL_LETTER_SSANGTIKEUT 0x3138 #define T_UTF_32_HANGUL_LETTER_RIEUL 0x3139 #define T_UTF_32_HANGUL_LETTER_RIEUL_KIYEOK 0x313A #define T_UTF_32_HANGUL_LETTER_RIEUL_MIEUM 0x313B #define T_UTF_32_HANGUL_LETTER_RIEUL_PIEUP 0x313C #define T_UTF_32_HANGUL_LETTER_RIEUL_SIOS 0x313D #define T_UTF_32_HANGUL_LETTER_RIEUL_THIEUTH 0x313E #define T_UTF_32_HANGUL_LETTER_RIEUL_PHIEUPH 0x313F #define T_UTF_32_HANGUL_LETTER_RIEUL_HIEUH 0x3140 #define T_UTF_32_HANGUL_LETTER_MIEUM 0x3141 #define T_UTF_32_HANGUL_LETTER_PIEUP 0x3142 #define T_UTF_32_HANGUL_LETTER_SSANGPIEUP 0x3143 #define T_UTF_32_HANGUL_LETTER_PIEUP_SIOS 0x3144 #define T_UTF_32_HANGUL_LETTER_SIOS 0x3145 #define T_UTF_32_HANGUL_LETTER_SSANGSIOS 0x3146 #define T_UTF_32_HANGUL_LETTER_IEUNG 0x3147 #define T_UTF_32_HANGUL_LETTER_CIEUC 0x3148 #define T_UTF_32_HANGUL_LETTER_SSANGCIEUC 0x3149 #define T_UTF_32_HANGUL_LETTER_CHIEUCH 0x314A #define T_UTF_32_HANGUL_LETTER_KHIEUKH 0x314B #define T_UTF_32_HANGUL_LETTER_THIEUTH 0x314C #define T_UTF_32_HANGUL_LETTER_PHIEUPH 0x314D #define T_UTF_32_HANGUL_LETTER_HIEUH 0x314E #define T_UTF_32_HANGUL_LETTER_A 0x314F #define T_UTF_32_HANGUL_LETTER_AE 0x3150 #define T_UTF_32_HANGUL_LETTER_YA 0x3151 #define T_UTF_32_HANGUL_LETTER_YAE 0x3152 #define T_UTF_32_HANGUL_LETTER_EO 0x3153 #define T_UTF_32_HANGUL_LETTER_E 0x3154 #define T_UTF_32_HANGUL_LETTER_YEO 0x3155 #define T_UTF_32_HANGUL_LETTER_YE 0x3156 #define T_UTF_32_HANGUL_LETTER_O 0x3157 #define T_UTF_32_HANGUL_LETTER_WA 0x3158 #define T_UTF_32_HANGUL_LETTER_WAE 0x3159 #define T_UTF_32_HANGUL_LETTER_OE 0x315A #define T_UTF_32_HANGUL_LETTER_YO 0x315B #define T_UTF_32_HANGUL_LETTER_U 0x315C #define T_UTF_32_HANGUL_LETTER_WEO 0x315D #define T_UTF_32_HANGUL_LETTER_WE 0x315E #define T_UTF_32_HANGUL_LETTER_WI 0x315F #define T_UTF_32_HANGUL_LETTER_YU 0x3160 #define T_UTF_32_HANGUL_LETTER_EU 0x3161 #define T_UTF_32_HANGUL_LETTER_YI 0x3162 #define T_UTF_32_HANGUL_LETTER_I 0x3163 #define T_UTF_32_HANGUL_FILLER 0x3164 #define T_UTF_32_HANGUL_LETTER_SSANGNIEUN 0x3165 #define T_UTF_32_HANGUL_LETTER_NIEUN_TIKEUT 0x3166 #define T_UTF_32_HANGUL_LETTER_NIEUN_SIOS 0x3167 #define T_UTF_32_HANGUL_LETTER_NIEUN_PANSIOS 0x3168 #define T_UTF_32_HANGUL_LETTER_RIEUL_KIYEOK_SIOS 0x3169 #define T_UTF_32_HANGUL_LETTER_RIEUL_TIKEUT 0x316A #define T_UTF_32_HANGUL_LETTER_RIEUL_PIEUP_SIOS 0x316B #define T_UTF_32_HANGUL_LETTER_RIEUL_PANSIOS 0x316C #define T_UTF_32_HANGUL_LETTER_RIEUL_YEORINHIEUH 0x316D #define T_UTF_32_HANGUL_LETTER_MIEUM_PIEUP 0x316E #define T_UTF_32_HANGUL_LETTER_MIEUM_SIOS 0x316F #define T_UTF_32_HANGUL_LETTER_MIEUM_PANSIOS 0x3170 #define T_UTF_32_HANGUL_LETTER_KAPYEOUNMIEUM 0x3171 #define T_UTF_32_HANGUL_LETTER_PIEUP_KIYEOK 0x3172 #define T_UTF_32_HANGUL_LETTER_PIEUP_TIKEUT 0x3173 #define T_UTF_32_HANGUL_LETTER_PIEUP_SIOS_KIYEOK 0x3174 #define T_UTF_32_HANGUL_LETTER_PIEUP_SIOS_TIKEUT 0x3175 #define T_UTF_32_HANGUL_LETTER_PIEUP_CIEUC 0x3176 #define T_UTF_32_HANGUL_LETTER_PIEUP_THIEUTH 0x3177 #define T_UTF_32_HANGUL_LETTER_KAPYEOUNPIEUP 0x3178 #define T_UTF_32_HANGUL_LETTER_KAPYEOUNSSANGPIEUP 0x3179 #define T_UTF_32_HANGUL_LETTER_SIOS_KIYEOK 0x317A #define T_UTF_32_HANGUL_LETTER_SIOS_NIEUN 0x317B #define T_UTF_32_HANGUL_LETTER_SIOS_TIKEUT 0x317C #define T_UTF_32_HANGUL_LETTER_SIOS_PIEUP 0x317D #define T_UTF_32_HANGUL_LETTER_SIOS_CIEUC 0x317E #define T_UTF_32_HANGUL_LETTER_PANSIOS 0x317F #define T_UTF_32_HANGUL_LETTER_SSANGIEUNG 0x3180 #define T_UTF_32_HANGUL_LETTER_YESIEUNG 0x3181 #define T_UTF_32_HANGUL_LETTER_YESIEUNG_SIOS 0x3182 #define T_UTF_32_HANGUL_LETTER_YESIEUNG_PANSIOS 0x3183 #define T_UTF_32_HANGUL_LETTER_KAPYEOUNPHIEUPH 0x3184 #define T_UTF_32_HANGUL_LETTER_SSANGHIEUH 0x3185 #define T_UTF_32_HANGUL_LETTER_YEORINHIEUH 0x3186 #define T_UTF_32_HANGUL_LETTER_YO_YA 0x3187 #define T_UTF_32_HANGUL_LETTER_YO_YAE 0x3188 #define T_UTF_32_HANGUL_LETTER_YO_I 0x3189 #define T_UTF_32_HANGUL_LETTER_YU_YEO 0x318A #define T_UTF_32_HANGUL_LETTER_YU_YE 0x318B #define T_UTF_32_HANGUL_LETTER_YU_I 0x318C #define T_UTF_32_HANGUL_LETTER_ARAEA 0x318D #define T_UTF_32_HANGUL_LETTER_ARAEAE 0x318E #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_LINKING_MARK 0x3190 #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_REVERSE_MARK 0x3191 #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_ONE_MARK 0x3192 #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_TWO_MARK 0x3193 #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_THREE_MARK 0x3194 #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_FOUR_MARK 0x3195 #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_TOP_MARK 0x3196 #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_MIDDLE_MARK 0x3197 #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_BOTTOM_MARK 0x3198 #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_FIRST_MARK 0x3199 #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_SECOND_MARK 0x319A #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_THIRD_MARK 0x319B #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_FOURTH_MARK 0x319C #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_HEAVEN_MARK 0x319D #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_EARTH_MARK 0x319E #define T_UTF_32_IDEOGRAPHIC_ANNOTATION_MAN_MARK 0x319F #define T_UTF_32_BOPOMOFO_LETTER_BU 0x31A0 #define T_UTF_32_BOPOMOFO_LETTER_ZI 0x31A1 #define T_UTF_32_BOPOMOFO_LETTER_JI 0x31A2 #define T_UTF_32_BOPOMOFO_LETTER_GU 0x31A3 #define T_UTF_32_BOPOMOFO_LETTER_EE 0x31A4 #define T_UTF_32_BOPOMOFO_LETTER_ENN 0x31A5 #define T_UTF_32_BOPOMOFO_LETTER_OO 0x31A6 #define T_UTF_32_BOPOMOFO_LETTER_ONN 0x31A7 #define T_UTF_32_BOPOMOFO_LETTER_IR 0x31A8 #define T_UTF_32_BOPOMOFO_LETTER_ANN 0x31A9 #define T_UTF_32_BOPOMOFO_LETTER_INN 0x31AA #define T_UTF_32_BOPOMOFO_LETTER_UNN 0x31AB #define T_UTF_32_BOPOMOFO_LETTER_IM 0x31AC #define T_UTF_32_BOPOMOFO_LETTER_NGG 0x31AD #define T_UTF_32_BOPOMOFO_LETTER_AINN 0x31AE #define T_UTF_32_BOPOMOFO_LETTER_AUNN 0x31AF #define T_UTF_32_BOPOMOFO_LETTER_AM 0x31B0 #define T_UTF_32_BOPOMOFO_LETTER_OM 0x31B1 #define T_UTF_32_BOPOMOFO_LETTER_ONG 0x31B2 #define T_UTF_32_BOPOMOFO_LETTER_INNN 0x31B3 #define T_UTF_32_BOPOMOFO_FINAL_LETTER_P 0x31B4 #define T_UTF_32_BOPOMOFO_FINAL_LETTER_T 0x31B5 #define T_UTF_32_BOPOMOFO_FINAL_LETTER_K 0x31B6 #define T_UTF_32_BOPOMOFO_FINAL_LETTER_H 0x31B7 #define T_UTF_32_BOPOMOFO_LETTER_GH 0x31B8 #define T_UTF_32_BOPOMOFO_LETTER_LH 0x31B9 #define T_UTF_32_BOPOMOFO_LETTER_ZY 0x31BA #define T_UTF_32_CJK_STROKE_T 0x31C0 #define T_UTF_32_CJK_STROKE_WG 0x31C1 #define T_UTF_32_CJK_STROKE_XG 0x31C2 #define T_UTF_32_CJK_STROKE_BXG 0x31C3 #define T_UTF_32_CJK_STROKE_SW 0x31C4 #define T_UTF_32_CJK_STROKE_HZZ 0x31C5 #define T_UTF_32_CJK_STROKE_HZG 0x31C6 #define T_UTF_32_CJK_STROKE_HP 0x31C7 #define T_UTF_32_CJK_STROKE_HZWG 0x31C8 #define T_UTF_32_CJK_STROKE_SZWG 0x31C9 #define T_UTF_32_CJK_STROKE_HZT 0x31CA #define T_UTF_32_CJK_STROKE_HZZP 0x31CB #define T_UTF_32_CJK_STROKE_HPWG 0x31CC #define T_UTF_32_CJK_STROKE_HZW 0x31CD #define T_UTF_32_CJK_STROKE_HZZZ 0x31CE #define T_UTF_32_CJK_STROKE_N 0x31CF #define T_UTF_32_CJK_STROKE_H 0x31D0 #define T_UTF_32_CJK_STROKE_S 0x31D1 #define T_UTF_32_CJK_STROKE_P 0x31D2 #define T_UTF_32_CJK_STROKE_SP 0x31D3 #define T_UTF_32_CJK_STROKE_D 0x31D4 #define T_UTF_32_CJK_STROKE_HZ 0x31D5 #define T_UTF_32_CJK_STROKE_HG 0x31D6 #define T_UTF_32_CJK_STROKE_SZ 0x31D7 #define T_UTF_32_CJK_STROKE_SWZ 0x31D8 #define T_UTF_32_CJK_STROKE_ST 0x31D9 #define T_UTF_32_CJK_STROKE_SG 0x31DA #define T_UTF_32_CJK_STROKE_PD 0x31DB #define T_UTF_32_CJK_STROKE_PZ 0x31DC #define T_UTF_32_CJK_STROKE_TN 0x31DD #define T_UTF_32_CJK_STROKE_SZZ 0x31DE #define T_UTF_32_CJK_STROKE_SWG 0x31DF #define T_UTF_32_CJK_STROKE_HXWG 0x31E0 #define T_UTF_32_CJK_STROKE_HZZZG 0x31E1 #define T_UTF_32_CJK_STROKE_PG 0x31E2 #define T_UTF_32_CJK_STROKE_Q 0x31E3 #define T_UTF_32_KATAKANA_LETTER_SMALL_KU 0x31F0 #define T_UTF_32_KATAKANA_LETTER_SMALL_SI 0x31F1 #define T_UTF_32_KATAKANA_LETTER_SMALL_SU 0x31F2 #define T_UTF_32_KATAKANA_LETTER_SMALL_TO 0x31F3 #define T_UTF_32_KATAKANA_LETTER_SMALL_NU 0x31F4 #define T_UTF_32_KATAKANA_LETTER_SMALL_HA 0x31F5 #define T_UTF_32_KATAKANA_LETTER_SMALL_HI 0x31F6 #define T_UTF_32_KATAKANA_LETTER_SMALL_HU 0x31F7 #define T_UTF_32_KATAKANA_LETTER_SMALL_HE 0x31F8 #define T_UTF_32_KATAKANA_LETTER_SMALL_HO 0x31F9 #define T_UTF_32_KATAKANA_LETTER_SMALL_MU 0x31FA #define T_UTF_32_KATAKANA_LETTER_SMALL_RA 0x31FB #define T_UTF_32_KATAKANA_LETTER_SMALL_RI 0x31FC #define T_UTF_32_KATAKANA_LETTER_SMALL_RU 0x31FD #define T_UTF_32_KATAKANA_LETTER_SMALL_RE 0x31FE #define T_UTF_32_KATAKANA_LETTER_SMALL_RO 0x31FF #define T_UTF_32_PARENTHESIZED_HANGUL_KIYEOK 0x3200 #define T_UTF_32_PARENTHESIZED_HANGUL_NIEUN 0x3201 #define T_UTF_32_PARENTHESIZED_HANGUL_TIKEUT 0x3202 #define T_UTF_32_PARENTHESIZED_HANGUL_RIEUL 0x3203 #define T_UTF_32_PARENTHESIZED_HANGUL_MIEUM 0x3204 #define T_UTF_32_PARENTHESIZED_HANGUL_PIEUP 0x3205 #define T_UTF_32_PARENTHESIZED_HANGUL_SIOS 0x3206 #define T_UTF_32_PARENTHESIZED_HANGUL_IEUNG 0x3207 #define T_UTF_32_PARENTHESIZED_HANGUL_CIEUC 0x3208 #define T_UTF_32_PARENTHESIZED_HANGUL_CHIEUCH 0x3209 #define T_UTF_32_PARENTHESIZED_HANGUL_KHIEUKH 0x320A #define T_UTF_32_PARENTHESIZED_HANGUL_THIEUTH 0x320B #define T_UTF_32_PARENTHESIZED_HANGUL_PHIEUPH 0x320C #define T_UTF_32_PARENTHESIZED_HANGUL_HIEUH 0x320D #define T_UTF_32_PARENTHESIZED_HANGUL_KIYEOK_A 0x320E #define T_UTF_32_PARENTHESIZED_HANGUL_NIEUN_A 0x320F #define T_UTF_32_PARENTHESIZED_HANGUL_TIKEUT_A 0x3210 #define T_UTF_32_PARENTHESIZED_HANGUL_RIEUL_A 0x3211 #define T_UTF_32_PARENTHESIZED_HANGUL_MIEUM_A 0x3212 #define T_UTF_32_PARENTHESIZED_HANGUL_PIEUP_A 0x3213 #define T_UTF_32_PARENTHESIZED_HANGUL_SIOS_A 0x3214 #define T_UTF_32_PARENTHESIZED_HANGUL_IEUNG_A 0x3215 #define T_UTF_32_PARENTHESIZED_HANGUL_CIEUC_A 0x3216 #define T_UTF_32_PARENTHESIZED_HANGUL_CHIEUCH_A 0x3217 #define T_UTF_32_PARENTHESIZED_HANGUL_KHIEUKH_A 0x3218 #define T_UTF_32_PARENTHESIZED_HANGUL_THIEUTH_A 0x3219 #define T_UTF_32_PARENTHESIZED_HANGUL_PHIEUPH_A 0x321A #define T_UTF_32_PARENTHESIZED_HANGUL_HIEUH_A 0x321B #define T_UTF_32_PARENTHESIZED_HANGUL_CIEUC_U 0x321C #define T_UTF_32_PARENTHESIZED_KOREAN_CHARACTER_OJEON 0x321D #define T_UTF_32_PARENTHESIZED_KOREAN_CHARACTER_O_HU 0x321E #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_ONE 0x3220 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_TWO 0x3221 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_THREE 0x3222 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_FOUR 0x3223 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_FIVE 0x3224 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_SIX 0x3225 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_SEVEN 0x3226 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_EIGHT 0x3227 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_NINE 0x3228 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_TEN 0x3229 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_MOON 0x322A #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_FIRE 0x322B #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_WATER 0x322C #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_WOOD 0x322D #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_METAL 0x322E #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_EARTH 0x322F #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_SUN 0x3230 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_STOCK 0x3231 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_HAVE 0x3232 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_SOCIETY 0x3233 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_NAME 0x3234 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_SPECIAL 0x3235 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_FINANCIAL 0x3236 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_CONGRATULATION 0x3237 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_LABOR 0x3238 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_REPRESENT 0x3239 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_CALL 0x323A #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_STUDY 0x323B #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_SUPERVISE 0x323C #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_ENTERPRISE 0x323D #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_RESOURCE 0x323E #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_ALLIANCE 0x323F #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_FESTIVAL 0x3240 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_REST 0x3241 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_SELF 0x3242 #define T_UTF_32_PARENTHESIZED_IDEOGRAPH_REACH 0x3243 #define T_UTF_32_CIRCLED_IDEOGRAPH_QUESTION 0x3244 #define T_UTF_32_CIRCLED_IDEOGRAPH_KINDERGARTEN 0x3245 #define T_UTF_32_CIRCLED_IDEOGRAPH_SCHOOL 0x3246 #define T_UTF_32_CIRCLED_IDEOGRAPH_KOTO 0x3247 #define T_UTF_32_CIRCLED_NUMBER_TEN_ON_BLACK_SQUARE 0x3248 #define T_UTF_32_CIRCLED_NUMBER_TWENTY_ON_BLACK_SQUARE 0x3249 #define T_UTF_32_CIRCLED_NUMBER_THIRTY_ON_BLACK_SQUARE 0x324A #define T_UTF_32_CIRCLED_NUMBER_FORTY_ON_BLACK_SQUARE 0x324B #define T_UTF_32_CIRCLED_NUMBER_FIFTY_ON_BLACK_SQUARE 0x324C #define T_UTF_32_CIRCLED_NUMBER_SIXTY_ON_BLACK_SQUARE 0x324D #define T_UTF_32_CIRCLED_NUMBER_SEVENTY_ON_BLACK_SQUARE 0x324E #define T_UTF_32_CIRCLED_NUMBER_EIGHTY_ON_BLACK_SQUARE 0x324F #define T_UTF_32_PARTNERSHIP_SIGN 0x3250 #define T_UTF_32_CIRCLED_NUMBER_TWENTY_ONE 0x3251 #define T_UTF_32_CIRCLED_NUMBER_TWENTY_TWO 0x3252 #define T_UTF_32_CIRCLED_NUMBER_TWENTY_THREE 0x3253 #define T_UTF_32_CIRCLED_NUMBER_TWENTY_FOUR 0x3254 #define T_UTF_32_CIRCLED_NUMBER_TWENTY_FIVE 0x3255 #define T_UTF_32_CIRCLED_NUMBER_TWENTY_SIX 0x3256 #define T_UTF_32_CIRCLED_NUMBER_TWENTY_SEVEN 0x3257 #define T_UTF_32_CIRCLED_NUMBER_TWENTY_EIGHT 0x3258 #define T_UTF_32_CIRCLED_NUMBER_TWENTY_NINE 0x3259 #define T_UTF_32_CIRCLED_NUMBER_THIRTY 0x325A #define T_UTF_32_CIRCLED_NUMBER_THIRTY_ONE 0x325B #define T_UTF_32_CIRCLED_NUMBER_THIRTY_TWO 0x325C #define T_UTF_32_CIRCLED_NUMBER_THIRTY_THREE 0x325D #define T_UTF_32_CIRCLED_NUMBER_THIRTY_FOUR 0x325E #define T_UTF_32_CIRCLED_NUMBER_THIRTY_FIVE 0x325F #define T_UTF_32_CIRCLED_HANGUL_KIYEOK 0x3260 #define T_UTF_32_CIRCLED_HANGUL_NIEUN 0x3261 #define T_UTF_32_CIRCLED_HANGUL_TIKEUT 0x3262 #define T_UTF_32_CIRCLED_HANGUL_RIEUL 0x3263 #define T_UTF_32_CIRCLED_HANGUL_MIEUM 0x3264 #define T_UTF_32_CIRCLED_HANGUL_PIEUP 0x3265 #define T_UTF_32_CIRCLED_HANGUL_SIOS 0x3266 #define T_UTF_32_CIRCLED_HANGUL_IEUNG 0x3267 #define T_UTF_32_CIRCLED_HANGUL_CIEUC 0x3268 #define T_UTF_32_CIRCLED_HANGUL_CHIEUCH 0x3269 #define T_UTF_32_CIRCLED_HANGUL_KHIEUKH 0x326A #define T_UTF_32_CIRCLED_HANGUL_THIEUTH 0x326B #define T_UTF_32_CIRCLED_HANGUL_PHIEUPH 0x326C #define T_UTF_32_CIRCLED_HANGUL_HIEUH 0x326D #define T_UTF_32_CIRCLED_HANGUL_KIYEOK_A 0x326E #define T_UTF_32_CIRCLED_HANGUL_NIEUN_A 0x326F #define T_UTF_32_CIRCLED_HANGUL_TIKEUT_A 0x3270 #define T_UTF_32_CIRCLED_HANGUL_RIEUL_A 0x3271 #define T_UTF_32_CIRCLED_HANGUL_MIEUM_A 0x3272 #define T_UTF_32_CIRCLED_HANGUL_PIEUP_A 0x3273 #define T_UTF_32_CIRCLED_HANGUL_SIOS_A 0x3274 #define T_UTF_32_CIRCLED_HANGUL_IEUNG_A 0x3275 #define T_UTF_32_CIRCLED_HANGUL_CIEUC_A 0x3276 #define T_UTF_32_CIRCLED_HANGUL_CHIEUCH_A 0x3277 #define T_UTF_32_CIRCLED_HANGUL_KHIEUKH_A 0x3278 #define T_UTF_32_CIRCLED_HANGUL_THIEUTH_A 0x3279 #define T_UTF_32_CIRCLED_HANGUL_PHIEUPH_A 0x327A #define T_UTF_32_CIRCLED_HANGUL_HIEUH_A 0x327B #define T_UTF_32_CIRCLED_KOREAN_CHARACTER_CHAMKO 0x327C #define T_UTF_32_CIRCLED_KOREAN_CHARACTER_JUEUI 0x327D #define T_UTF_32_CIRCLED_HANGUL_IEUNG_U 0x327E #define T_UTF_32_KOREAN_STANDARD_SYMBOL 0x327F #define T_UTF_32_CIRCLED_IDEOGRAPH_ONE 0x3280 #define T_UTF_32_CIRCLED_IDEOGRAPH_TWO 0x3281 #define T_UTF_32_CIRCLED_IDEOGRAPH_THREE 0x3282 #define T_UTF_32_CIRCLED_IDEOGRAPH_FOUR 0x3283 #define T_UTF_32_CIRCLED_IDEOGRAPH_FIVE 0x3284 #define T_UTF_32_CIRCLED_IDEOGRAPH_SIX 0x3285 #define T_UTF_32_CIRCLED_IDEOGRAPH_SEVEN 0x3286 #define T_UTF_32_CIRCLED_IDEOGRAPH_EIGHT 0x3287 #define T_UTF_32_CIRCLED_IDEOGRAPH_NINE 0x3288 #define T_UTF_32_CIRCLED_IDEOGRAPH_TEN 0x3289 #define T_UTF_32_CIRCLED_IDEOGRAPH_MOON 0x328A #define T_UTF_32_CIRCLED_IDEOGRAPH_FIRE 0x328B #define T_UTF_32_CIRCLED_IDEOGRAPH_WATER 0x328C #define T_UTF_32_CIRCLED_IDEOGRAPH_WOOD 0x328D #define T_UTF_32_CIRCLED_IDEOGRAPH_METAL 0x328E #define T_UTF_32_CIRCLED_IDEOGRAPH_EARTH 0x328F #define T_UTF_32_CIRCLED_IDEOGRAPH_SUN 0x3290 #define T_UTF_32_CIRCLED_IDEOGRAPH_STOCK 0x3291 #define T_UTF_32_CIRCLED_IDEOGRAPH_HAVE 0x3292 #define T_UTF_32_CIRCLED_IDEOGRAPH_SOCIETY 0x3293 #define T_UTF_32_CIRCLED_IDEOGRAPH_NAME 0x3294 #define T_UTF_32_CIRCLED_IDEOGRAPH_SPECIAL 0x3295 #define T_UTF_32_CIRCLED_IDEOGRAPH_FINANCIAL 0x3296 #define T_UTF_32_CIRCLED_IDEOGRAPH_CONGRATULATION 0x3297 #define T_UTF_32_CIRCLED_IDEOGRAPH_LABOR 0x3298 #define T_UTF_32_CIRCLED_IDEOGRAPH_SECRET 0x3299 #define T_UTF_32_CIRCLED_IDEOGRAPH_MALE 0x329A #define T_UTF_32_CIRCLED_IDEOGRAPH_FEMALE 0x329B #define T_UTF_32_CIRCLED_IDEOGRAPH_SUITABLE 0x329C #define T_UTF_32_CIRCLED_IDEOGRAPH_EXCELLENT 0x329D #define T_UTF_32_CIRCLED_IDEOGRAPH_PRINT 0x329E #define T_UTF_32_CIRCLED_IDEOGRAPH_ATTENTION 0x329F #define T_UTF_32_CIRCLED_IDEOGRAPH_ITEM 0x32A0 #define T_UTF_32_CIRCLED_IDEOGRAPH_REST 0x32A1 #define T_UTF_32_CIRCLED_IDEOGRAPH_COPY 0x32A2 #define T_UTF_32_CIRCLED_IDEOGRAPH_CORRECT 0x32A3 #define T_UTF_32_CIRCLED_IDEOGRAPH_HIGH 0x32A4 #define T_UTF_32_CIRCLED_IDEOGRAPH_CENTRE 0x32A5 #define T_UTF_32_CIRCLED_IDEOGRAPH_LOW 0x32A6 #define T_UTF_32_CIRCLED_IDEOGRAPH_LEFT 0x32A7 #define T_UTF_32_CIRCLED_IDEOGRAPH_RIGHT 0x32A8 #define T_UTF_32_CIRCLED_IDEOGRAPH_MEDICINE 0x32A9 #define T_UTF_32_CIRCLED_IDEOGRAPH_RELIGION 0x32AA #define T_UTF_32_CIRCLED_IDEOGRAPH_STUDY 0x32AB #define T_UTF_32_CIRCLED_IDEOGRAPH_SUPERVISE 0x32AC #define T_UTF_32_CIRCLED_IDEOGRAPH_ENTERPRISE 0x32AD #define T_UTF_32_CIRCLED_IDEOGRAPH_RESOURCE 0x32AE #define T_UTF_32_CIRCLED_IDEOGRAPH_ALLIANCE 0x32AF #define T_UTF_32_CIRCLED_IDEOGRAPH_NIGHT 0x32B0 #define T_UTF_32_CIRCLED_NUMBER_THIRTY_SIX 0x32B1 #define T_UTF_32_CIRCLED_NUMBER_THIRTY_SEVEN 0x32B2 #define T_UTF_32_CIRCLED_NUMBER_THIRTY_EIGHT 0x32B3 #define T_UTF_32_CIRCLED_NUMBER_THIRTY_NINE 0x32B4 #define T_UTF_32_CIRCLED_NUMBER_FORTY 0x32B5 #define T_UTF_32_CIRCLED_NUMBER_FORTY_ONE 0x32B6 #define T_UTF_32_CIRCLED_NUMBER_FORTY_TWO 0x32B7 #define T_UTF_32_CIRCLED_NUMBER_FORTY_THREE 0x32B8 #define T_UTF_32_CIRCLED_NUMBER_FORTY_FOUR 0x32B9 #define T_UTF_32_CIRCLED_NUMBER_FORTY_FIVE 0x32BA #define T_UTF_32_CIRCLED_NUMBER_FORTY_SIX 0x32BB #define T_UTF_32_CIRCLED_NUMBER_FORTY_SEVEN 0x32BC #define T_UTF_32_CIRCLED_NUMBER_FORTY_EIGHT 0x32BD #define T_UTF_32_CIRCLED_NUMBER_FORTY_NINE 0x32BE #define T_UTF_32_CIRCLED_NUMBER_FIFTY 0x32BF #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_JANUARY 0x32C0 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_FEBRUARY 0x32C1 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_MARCH 0x32C2 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_APRIL 0x32C3 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_MAY 0x32C4 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_JUNE 0x32C5 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_JULY 0x32C6 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_AUGUST 0x32C7 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_SEPTEMBER 0x32C8 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_OCTOBER 0x32C9 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_NOVEMBER 0x32CA #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DECEMBER 0x32CB #define T_UTF_32_SQUARE_HG 0x32CC #define T_UTF_32_SQUARE_ERG 0x32CD #define T_UTF_32_SQUARE_EV 0x32CE #define T_UTF_32_LIMITED_LIABILITY_SIGN 0x32CF #define T_UTF_32_CIRCLED_KATAKANA_A 0x32D0 #define T_UTF_32_CIRCLED_KATAKANA_I 0x32D1 #define T_UTF_32_CIRCLED_KATAKANA_U 0x32D2 #define T_UTF_32_CIRCLED_KATAKANA_E 0x32D3 #define T_UTF_32_CIRCLED_KATAKANA_O 0x32D4 #define T_UTF_32_CIRCLED_KATAKANA_KA 0x32D5 #define T_UTF_32_CIRCLED_KATAKANA_KI 0x32D6 #define T_UTF_32_CIRCLED_KATAKANA_KU 0x32D7 #define T_UTF_32_CIRCLED_KATAKANA_KE 0x32D8 #define T_UTF_32_CIRCLED_KATAKANA_KO 0x32D9 #define T_UTF_32_CIRCLED_KATAKANA_SA 0x32DA #define T_UTF_32_CIRCLED_KATAKANA_SI 0x32DB #define T_UTF_32_CIRCLED_KATAKANA_SU 0x32DC #define T_UTF_32_CIRCLED_KATAKANA_SE 0x32DD #define T_UTF_32_CIRCLED_KATAKANA_SO 0x32DE #define T_UTF_32_CIRCLED_KATAKANA_TA 0x32DF #define T_UTF_32_CIRCLED_KATAKANA_TI 0x32E0 #define T_UTF_32_CIRCLED_KATAKANA_TU 0x32E1 #define T_UTF_32_CIRCLED_KATAKANA_TE 0x32E2 #define T_UTF_32_CIRCLED_KATAKANA_TO 0x32E3 #define T_UTF_32_CIRCLED_KATAKANA_NA 0x32E4 #define T_UTF_32_CIRCLED_KATAKANA_NI 0x32E5 #define T_UTF_32_CIRCLED_KATAKANA_NU 0x32E6 #define T_UTF_32_CIRCLED_KATAKANA_NE 0x32E7 #define T_UTF_32_CIRCLED_KATAKANA_NO 0x32E8 #define T_UTF_32_CIRCLED_KATAKANA_HA 0x32E9 #define T_UTF_32_CIRCLED_KATAKANA_HI 0x32EA #define T_UTF_32_CIRCLED_KATAKANA_HU 0x32EB #define T_UTF_32_CIRCLED_KATAKANA_HE 0x32EC #define T_UTF_32_CIRCLED_KATAKANA_HO 0x32ED #define T_UTF_32_CIRCLED_KATAKANA_MA 0x32EE #define T_UTF_32_CIRCLED_KATAKANA_MI 0x32EF #define T_UTF_32_CIRCLED_KATAKANA_MU 0x32F0 #define T_UTF_32_CIRCLED_KATAKANA_ME 0x32F1 #define T_UTF_32_CIRCLED_KATAKANA_MO 0x32F2 #define T_UTF_32_CIRCLED_KATAKANA_YA 0x32F3 #define T_UTF_32_CIRCLED_KATAKANA_YU 0x32F4 #define T_UTF_32_CIRCLED_KATAKANA_YO 0x32F5 #define T_UTF_32_CIRCLED_KATAKANA_RA 0x32F6 #define T_UTF_32_CIRCLED_KATAKANA_RI 0x32F7 #define T_UTF_32_CIRCLED_KATAKANA_RU 0x32F8 #define T_UTF_32_CIRCLED_KATAKANA_RE 0x32F9 #define T_UTF_32_CIRCLED_KATAKANA_RO 0x32FA #define T_UTF_32_CIRCLED_KATAKANA_WA 0x32FB #define T_UTF_32_CIRCLED_KATAKANA_WI 0x32FC #define T_UTF_32_CIRCLED_KATAKANA_WE 0x32FD #define T_UTF_32_CIRCLED_KATAKANA_WO 0x32FE #define T_UTF_32_SQUARE_APAATO 0x3300 #define T_UTF_32_SQUARE_ARUHUA 0x3301 #define T_UTF_32_SQUARE_ANPEA 0x3302 #define T_UTF_32_SQUARE_AARU 0x3303 #define T_UTF_32_SQUARE_ININGU 0x3304 #define T_UTF_32_SQUARE_INTI 0x3305 #define T_UTF_32_SQUARE_UON 0x3306 #define T_UTF_32_SQUARE_ESUKUUDO 0x3307 #define T_UTF_32_SQUARE_EEKAA 0x3308 #define T_UTF_32_SQUARE_ONSU 0x3309 #define T_UTF_32_SQUARE_OOMU 0x330A #define T_UTF_32_SQUARE_KAIRI 0x330B #define T_UTF_32_SQUARE_KARATTO 0x330C #define T_UTF_32_SQUARE_KARORII 0x330D #define T_UTF_32_SQUARE_GARON 0x330E #define T_UTF_32_SQUARE_GANMA 0x330F #define T_UTF_32_SQUARE_GIGA 0x3310 #define T_UTF_32_SQUARE_GINII 0x3311 #define T_UTF_32_SQUARE_KYURII 0x3312 #define T_UTF_32_SQUARE_GIRUDAA 0x3313 #define T_UTF_32_SQUARE_KIRO 0x3314 #define T_UTF_32_SQUARE_KIROGURAMU 0x3315 #define T_UTF_32_SQUARE_KIROMEETORU 0x3316 #define T_UTF_32_SQUARE_KIROWATTO 0x3317 #define T_UTF_32_SQUARE_GURAMU 0x3318 #define T_UTF_32_SQUARE_GURAMUTON 0x3319 #define T_UTF_32_SQUARE_KURUZEIRO 0x331A #define T_UTF_32_SQUARE_KUROONE 0x331B #define T_UTF_32_SQUARE_KEESU 0x331C #define T_UTF_32_SQUARE_KORUNA 0x331D #define T_UTF_32_SQUARE_KOOPO 0x331E #define T_UTF_32_SQUARE_SAIKURU 0x331F #define T_UTF_32_SQUARE_SANTIIMU 0x3320 #define T_UTF_32_SQUARE_SIRINGU 0x3321 #define T_UTF_32_SQUARE_SENTI 0x3322 #define T_UTF_32_SQUARE_SENTO 0x3323 #define T_UTF_32_SQUARE_DAASU 0x3324 #define T_UTF_32_SQUARE_DESI 0x3325 #define T_UTF_32_SQUARE_DORU 0x3326 #define T_UTF_32_SQUARE_TON 0x3327 #define T_UTF_32_SQUARE_NANO 0x3328 #define T_UTF_32_SQUARE_NOTTO 0x3329 #define T_UTF_32_SQUARE_HAITU 0x332A #define T_UTF_32_SQUARE_PAASENTO 0x332B #define T_UTF_32_SQUARE_PAATU 0x332C #define T_UTF_32_SQUARE_BAARERU 0x332D #define T_UTF_32_SQUARE_PIASUTORU 0x332E #define T_UTF_32_SQUARE_PIKURU 0x332F #define T_UTF_32_SQUARE_PIKO 0x3330 #define T_UTF_32_SQUARE_BIRU 0x3331 #define T_UTF_32_SQUARE_HUARADDO 0x3332 #define T_UTF_32_SQUARE_HUIITO 0x3333 #define T_UTF_32_SQUARE_BUSSYERU 0x3334 #define T_UTF_32_SQUARE_HURAN 0x3335 #define T_UTF_32_SQUARE_HEKUTAARU 0x3336 #define T_UTF_32_SQUARE_PESO 0x3337 #define T_UTF_32_SQUARE_PENIHI 0x3338 #define T_UTF_32_SQUARE_HERUTU 0x3339 #define T_UTF_32_SQUARE_PENSU 0x333A #define T_UTF_32_SQUARE_PEEZI 0x333B #define T_UTF_32_SQUARE_BEETA 0x333C #define T_UTF_32_SQUARE_POINTO 0x333D #define T_UTF_32_SQUARE_BORUTO 0x333E #define T_UTF_32_SQUARE_HON 0x333F #define T_UTF_32_SQUARE_PONDO 0x3340 #define T_UTF_32_SQUARE_HOORU 0x3341 #define T_UTF_32_SQUARE_HOON 0x3342 #define T_UTF_32_SQUARE_MAIKURO 0x3343 #define T_UTF_32_SQUARE_MAIRU 0x3344 #define T_UTF_32_SQUARE_MAHHA 0x3345 #define T_UTF_32_SQUARE_MARUKU 0x3346 #define T_UTF_32_SQUARE_MANSYON 0x3347 #define T_UTF_32_SQUARE_MIKURON 0x3348 #define T_UTF_32_SQUARE_MIRI 0x3349 #define T_UTF_32_SQUARE_MIRIBAARU 0x334A #define T_UTF_32_SQUARE_MEGA 0x334B #define T_UTF_32_SQUARE_MEGATON 0x334C #define T_UTF_32_SQUARE_MEETORU 0x334D #define T_UTF_32_SQUARE_YAADO 0x334E #define T_UTF_32_SQUARE_YAARU 0x334F #define T_UTF_32_SQUARE_YUAN 0x3350 #define T_UTF_32_SQUARE_RITTORU 0x3351 #define T_UTF_32_SQUARE_RIRA 0x3352 #define T_UTF_32_SQUARE_RUPII 0x3353 #define T_UTF_32_SQUARE_RUUBURU 0x3354 #define T_UTF_32_SQUARE_REMU 0x3355 #define T_UTF_32_SQUARE_RENTOGEN 0x3356 #define T_UTF_32_SQUARE_WATTO 0x3357 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_ZERO 0x3358 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_ONE 0x3359 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_TWO 0x335A #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_THREE 0x335B #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_FOUR 0x335C #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_FIVE 0x335D #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_SIX 0x335E #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_SEVEN 0x335F #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_EIGHT 0x3360 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_NINE 0x3361 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_TEN 0x3362 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_ELEVEN 0x3363 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_TWELVE 0x3364 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_THIRTEEN 0x3365 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_FOURTEEN 0x3366 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_FIFTEEN 0x3367 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_SIXTEEN 0x3368 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_SEVENTEEN 0x3369 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_EIGHTEEN 0x336A #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_NINETEEN 0x336B #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_TWENTY 0x336C #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_TWENTY_ONE 0x336D #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_TWENTY_TWO 0x336E #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_TWENTY_THREE 0x336F #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_HOUR_TWENTY_FOUR 0x3370 #define T_UTF_32_SQUARE_HPA 0x3371 #define T_UTF_32_SQUARE_DA 0x3372 #define T_UTF_32_SQUARE_AU 0x3373 #define T_UTF_32_SQUARE_BAR 0x3374 #define T_UTF_32_SQUARE_OV 0x3375 #define T_UTF_32_SQUARE_PC 0x3376 #define T_UTF_32_SQUARE_DM 0x3377 #define T_UTF_32_SQUARE_DM_SQUARED 0x3378 #define T_UTF_32_SQUARE_DM_CUBED 0x3379 #define T_UTF_32_SQUARE_IU 0x337A #define T_UTF_32_SQUARE_ERA_NAME_HEISEI 0x337B #define T_UTF_32_SQUARE_ERA_NAME_SYOUWA 0x337C #define T_UTF_32_SQUARE_ERA_NAME_TAISYOU 0x337D #define T_UTF_32_SQUARE_ERA_NAME_MEIZI 0x337E #define T_UTF_32_SQUARE_CORPORATION 0x337F #define T_UTF_32_SQUARE_PA_AMPS 0x3380 #define T_UTF_32_SQUARE_NA 0x3381 #define T_UTF_32_SQUARE_MU_A 0x3382 #define T_UTF_32_SQUARE_MA 0x3383 #define T_UTF_32_SQUARE_KA 0x3384 #define T_UTF_32_SQUARE_KB 0x3385 #define T_UTF_32_SQUARE_MB 0x3386 #define T_UTF_32_SQUARE_GB 0x3387 #define T_UTF_32_SQUARE_CAL 0x3388 #define T_UTF_32_SQUARE_KCAL 0x3389 #define T_UTF_32_SQUARE_PF 0x338A #define T_UTF_32_SQUARE_NF 0x338B #define T_UTF_32_SQUARE_MU_F 0x338C #define T_UTF_32_SQUARE_MU_G 0x338D #define T_UTF_32_SQUARE_MG 0x338E #define T_UTF_32_SQUARE_KG 0x338F #define T_UTF_32_SQUARE_HZ 0x3390 #define T_UTF_32_SQUARE_KHZ 0x3391 #define T_UTF_32_SQUARE_MHZ 0x3392 #define T_UTF_32_SQUARE_GHZ 0x3393 #define T_UTF_32_SQUARE_THZ 0x3394 #define T_UTF_32_SQUARE_MU_L 0x3395 #define T_UTF_32_SQUARE_ML 0x3396 #define T_UTF_32_SQUARE_DL 0x3397 #define T_UTF_32_SQUARE_KL 0x3398 #define T_UTF_32_SQUARE_FM 0x3399 #define T_UTF_32_SQUARE_NM 0x339A #define T_UTF_32_SQUARE_MU_M 0x339B #define T_UTF_32_SQUARE_MM 0x339C #define T_UTF_32_SQUARE_CM 0x339D #define T_UTF_32_SQUARE_KM 0x339E #define T_UTF_32_SQUARE_MM_SQUARED 0x339F #define T_UTF_32_SQUARE_CM_SQUARED 0x33A0 #define T_UTF_32_SQUARE_M_SQUARED 0x33A1 #define T_UTF_32_SQUARE_KM_SQUARED 0x33A2 #define T_UTF_32_SQUARE_MM_CUBED 0x33A3 #define T_UTF_32_SQUARE_CM_CUBED 0x33A4 #define T_UTF_32_SQUARE_M_CUBED 0x33A5 #define T_UTF_32_SQUARE_KM_CUBED 0x33A6 #define T_UTF_32_SQUARE_M_OVER_S 0x33A7 #define T_UTF_32_SQUARE_M_OVER_S_SQUARED 0x33A8 #define T_UTF_32_SQUARE_PA 0x33A9 #define T_UTF_32_SQUARE_KPA 0x33AA #define T_UTF_32_SQUARE_MPA 0x33AB #define T_UTF_32_SQUARE_GPA 0x33AC #define T_UTF_32_SQUARE_RAD 0x33AD #define T_UTF_32_SQUARE_RAD_OVER_S 0x33AE #define T_UTF_32_SQUARE_RAD_OVER_S_SQUARED 0x33AF #define T_UTF_32_SQUARE_PS 0x33B0 #define T_UTF_32_SQUARE_NS 0x33B1 #define T_UTF_32_SQUARE_MU_S 0x33B2 #define T_UTF_32_SQUARE_MS 0x33B3 #define T_UTF_32_SQUARE_PV 0x33B4 #define T_UTF_32_SQUARE_NV 0x33B5 #define T_UTF_32_SQUARE_MU_V 0x33B6 #define T_UTF_32_SQUARE_MV 0x33B7 #define T_UTF_32_SQUARE_KV 0x33B8 #define T_UTF_32_SQUARE_MV_MEGA 0x33B9 #define T_UTF_32_SQUARE_PW 0x33BA #define T_UTF_32_SQUARE_NW 0x33BB #define T_UTF_32_SQUARE_MU_W 0x33BC #define T_UTF_32_SQUARE_MW 0x33BD #define T_UTF_32_SQUARE_KW 0x33BE #define T_UTF_32_SQUARE_MW_MEGA 0x33BF #define T_UTF_32_SQUARE_K_OHM 0x33C0 #define T_UTF_32_SQUARE_M_OHM 0x33C1 #define T_UTF_32_SQUARE_AM 0x33C2 #define T_UTF_32_SQUARE_BQ 0x33C3 #define T_UTF_32_SQUARE_CC 0x33C4 #define T_UTF_32_SQUARE_CD 0x33C5 #define T_UTF_32_SQUARE_C_OVER_KG 0x33C6 #define T_UTF_32_SQUARE_CO 0x33C7 #define T_UTF_32_SQUARE_DB 0x33C8 #define T_UTF_32_SQUARE_GY 0x33C9 #define T_UTF_32_SQUARE_HA 0x33CA #define T_UTF_32_SQUARE_HP 0x33CB #define T_UTF_32_SQUARE_IN 0x33CC #define T_UTF_32_SQUARE_KK 0x33CD #define T_UTF_32_SQUARE_KM_CAPITAL 0x33CE #define T_UTF_32_SQUARE_KT 0x33CF #define T_UTF_32_SQUARE_LM 0x33D0 #define T_UTF_32_SQUARE_LN 0x33D1 #define T_UTF_32_SQUARE_LOG 0x33D2 #define T_UTF_32_SQUARE_LX 0x33D3 #define T_UTF_32_SQUARE_MB_SMALL 0x33D4 #define T_UTF_32_SQUARE_MIL 0x33D5 #define T_UTF_32_SQUARE_MOL 0x33D6 #define T_UTF_32_SQUARE_PH 0x33D7 #define T_UTF_32_SQUARE_PM 0x33D8 #define T_UTF_32_SQUARE_PPM 0x33D9 #define T_UTF_32_SQUARE_PR 0x33DA #define T_UTF_32_SQUARE_SR 0x33DB #define T_UTF_32_SQUARE_SV 0x33DC #define T_UTF_32_SQUARE_WB 0x33DD #define T_UTF_32_SQUARE_V_OVER_M 0x33DE #define T_UTF_32_SQUARE_A_OVER_M 0x33DF #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_ONE 0x33E0 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWO 0x33E1 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_THREE 0x33E2 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_FOUR 0x33E3 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_FIVE 0x33E4 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_SIX 0x33E5 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_SEVEN 0x33E6 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_EIGHT 0x33E7 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_NINE 0x33E8 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TEN 0x33E9 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_ELEVEN 0x33EA #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWELVE 0x33EB #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_THIRTEEN 0x33EC #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_FOURTEEN 0x33ED #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_FIFTEEN 0x33EE #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_SIXTEEN 0x33EF #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_SEVENTEEN 0x33F0 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_EIGHTEEN 0x33F1 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_NINETEEN 0x33F2 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWENTY 0x33F3 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWENTY_ONE 0x33F4 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWENTY_TWO 0x33F5 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWENTY_THREE 0x33F6 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWENTY_FOUR 0x33F7 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWENTY_FIVE 0x33F8 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWENTY_SIX 0x33F9 #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWENTY_SEVEN 0x33FA #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWENTY_EIGHT 0x33FB #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_TWENTY_NINE 0x33FC #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_THIRTY 0x33FD #define T_UTF_32_IDEOGRAPHIC_TELEGRAPH_SYMBOL_FOR_DAY_THIRTY_ONE 0x33FE #define T_UTF_32_SQUARE_GAL 0x33FF #define T_UTF_32_HEXAGRAM_FOR_THE_CREATIVE_HEAVEN 0x4DC0 #define T_UTF_32_HEXAGRAM_FOR_THE_RECEPTIVE_EARTH 0x4DC1 #define T_UTF_32_HEXAGRAM_FOR_DIFFICULTY_AT_THE_BEGINNING 0x4DC2 #define T_UTF_32_HEXAGRAM_FOR_YOUTHFUL_FOLLY 0x4DC3 #define T_UTF_32_HEXAGRAM_FOR_WAITING 0x4DC4 #define T_UTF_32_HEXAGRAM_FOR_CONFLICT 0x4DC5 #define T_UTF_32_HEXAGRAM_FOR_THE_ARMY 0x4DC6 #define T_UTF_32_HEXAGRAM_FOR_HOLDING_TOGETHER 0x4DC7 #define T_UTF_32_HEXAGRAM_FOR_SMALL_TAMING 0x4DC8 #define T_UTF_32_HEXAGRAM_FOR_TREADING 0x4DC9 #define T_UTF_32_HEXAGRAM_FOR_PEACE 0x4DCA #define T_UTF_32_HEXAGRAM_FOR_STANDSTILL 0x4DCB #define T_UTF_32_HEXAGRAM_FOR_FELLOWSHIP 0x4DCC #define T_UTF_32_HEXAGRAM_FOR_GREAT_POSSESSION 0x4DCD #define T_UTF_32_HEXAGRAM_FOR_MODESTY 0x4DCE #define T_UTF_32_HEXAGRAM_FOR_ENTHUSIASM 0x4DCF #define T_UTF_32_HEXAGRAM_FOR_FOLLOWING 0x4DD0 #define T_UTF_32_HEXAGRAM_FOR_WORK_ON_THE_DECAYED 0x4DD1 #define T_UTF_32_HEXAGRAM_FOR_APPROACH 0x4DD2 #define T_UTF_32_HEXAGRAM_FOR_CONTEMPLATION 0x4DD3 #define T_UTF_32_HEXAGRAM_FOR_BITING_THROUGH 0x4DD4 #define T_UTF_32_HEXAGRAM_FOR_GRACE 0x4DD5 #define T_UTF_32_HEXAGRAM_FOR_SPLITTING_APART 0x4DD6 #define T_UTF_32_HEXAGRAM_FOR_RETURN 0x4DD7 #define T_UTF_32_HEXAGRAM_FOR_INNOCENCE 0x4DD8 #define T_UTF_32_HEXAGRAM_FOR_GREAT_TAMING 0x4DD9 #define T_UTF_32_HEXAGRAM_FOR_MOUTH_CORNERS 0x4DDA #define T_UTF_32_HEXAGRAM_FOR_GREAT_PREPONDERANCE 0x4DDB #define T_UTF_32_HEXAGRAM_FOR_THE_ABYSMAL_WATER 0x4DDC #define T_UTF_32_HEXAGRAM_FOR_THE_CLINGING_FIRE 0x4DDD #define T_UTF_32_HEXAGRAM_FOR_INFLUENCE 0x4DDE #define T_UTF_32_HEXAGRAM_FOR_DURATION 0x4DDF #define T_UTF_32_HEXAGRAM_FOR_RETREAT 0x4DE0 #define T_UTF_32_HEXAGRAM_FOR_GREAT_POWER 0x4DE1 #define T_UTF_32_HEXAGRAM_FOR_PROGRESS 0x4DE2 #define T_UTF_32_HEXAGRAM_FOR_DARKENING_OF_THE_LIGHT 0x4DE3 #define T_UTF_32_HEXAGRAM_FOR_THE_FAMILY 0x4DE4 #define T_UTF_32_HEXAGRAM_FOR_OPPOSITION 0x4DE5 #define T_UTF_32_HEXAGRAM_FOR_OBSTRUCTION 0x4DE6 #define T_UTF_32_HEXAGRAM_FOR_DELIVERANCE 0x4DE7 #define T_UTF_32_HEXAGRAM_FOR_DECREASE 0x4DE8 #define T_UTF_32_HEXAGRAM_FOR_INCREASE 0x4DE9 #define T_UTF_32_HEXAGRAM_FOR_BREAKTHROUGH 0x4DEA #define T_UTF_32_HEXAGRAM_FOR_COMING_TO_MEET 0x4DEB #define T_UTF_32_HEXAGRAM_FOR_GATHERING_TOGETHER 0x4DEC #define T_UTF_32_HEXAGRAM_FOR_PUSHING_UPWARD 0x4DED #define T_UTF_32_HEXAGRAM_FOR_OPPRESSION 0x4DEE #define T_UTF_32_HEXAGRAM_FOR_THE_WELL 0x4DEF #define T_UTF_32_HEXAGRAM_FOR_REVOLUTION 0x4DF0 #define T_UTF_32_HEXAGRAM_FOR_THE_CAULDRON 0x4DF1 #define T_UTF_32_HEXAGRAM_FOR_THE_AROUSING_THUNDER 0x4DF2 #define T_UTF_32_HEXAGRAM_FOR_THE_KEEPING_STILL_MOUNTAIN 0x4DF3 #define T_UTF_32_HEXAGRAM_FOR_DEVELOPMENT 0x4DF4 #define T_UTF_32_HEXAGRAM_FOR_THE_MARRYING_MAIDEN 0x4DF5 #define T_UTF_32_HEXAGRAM_FOR_ABUNDANCE 0x4DF6 #define T_UTF_32_HEXAGRAM_FOR_THE_WANDERER 0x4DF7 #define T_UTF_32_HEXAGRAM_FOR_THE_GENTLE_WIND 0x4DF8 #define T_UTF_32_HEXAGRAM_FOR_THE_JOYOUS_LAKE 0x4DF9 #define T_UTF_32_HEXAGRAM_FOR_DISPERSION 0x4DFA #define T_UTF_32_HEXAGRAM_FOR_LIMITATION 0x4DFB #define T_UTF_32_HEXAGRAM_FOR_INNER_TRUTH 0x4DFC #define T_UTF_32_HEXAGRAM_FOR_SMALL_PREPONDERANCE 0x4DFD #define T_UTF_32_HEXAGRAM_FOR_AFTER_COMPLETION 0x4DFE #define T_UTF_32_HEXAGRAM_FOR_BEFORE_COMPLETION 0x4DFF #define T_UTF_32_YI_SYLLABLE_IT 0xA000 #define T_UTF_32_YI_SYLLABLE_IX 0xA001 #define T_UTF_32_YI_SYLLABLE_I 0xA002 #define T_UTF_32_YI_SYLLABLE_IP 0xA003 #define T_UTF_32_YI_SYLLABLE_IET 0xA004 #define T_UTF_32_YI_SYLLABLE_IEX 0xA005 #define T_UTF_32_YI_SYLLABLE_IE 0xA006 #define T_UTF_32_YI_SYLLABLE_IEP 0xA007 #define T_UTF_32_YI_SYLLABLE_AT 0xA008 #define T_UTF_32_YI_SYLLABLE_AX 0xA009 #define T_UTF_32_YI_SYLLABLE_A 0xA00A #define T_UTF_32_YI_SYLLABLE_AP 0xA00B #define T_UTF_32_YI_SYLLABLE_UOX 0xA00C #define T_UTF_32_YI_SYLLABLE_UO 0xA00D #define T_UTF_32_YI_SYLLABLE_UOP 0xA00E #define T_UTF_32_YI_SYLLABLE_OT 0xA00F #define T_UTF_32_YI_SYLLABLE_OX 0xA010 #define T_UTF_32_YI_SYLLABLE_O 0xA011 #define T_UTF_32_YI_SYLLABLE_OP 0xA012 #define T_UTF_32_YI_SYLLABLE_EX 0xA013 #define T_UTF_32_YI_SYLLABLE_E 0xA014 #define T_UTF_32_YI_SYLLABLE_WU 0xA015 #define T_UTF_32_YI_SYLLABLE_BIT 0xA016 #define T_UTF_32_YI_SYLLABLE_BIX 0xA017 #define T_UTF_32_YI_SYLLABLE_BI 0xA018 #define T_UTF_32_YI_SYLLABLE_BIP 0xA019 #define T_UTF_32_YI_SYLLABLE_BIET 0xA01A #define T_UTF_32_YI_SYLLABLE_BIEX 0xA01B #define T_UTF_32_YI_SYLLABLE_BIE 0xA01C #define T_UTF_32_YI_SYLLABLE_BIEP 0xA01D #define T_UTF_32_YI_SYLLABLE_BAT 0xA01E #define T_UTF_32_YI_SYLLABLE_BAX 0xA01F #define T_UTF_32_YI_SYLLABLE_BA 0xA020 #define T_UTF_32_YI_SYLLABLE_BAP 0xA021 #define T_UTF_32_YI_SYLLABLE_BUOX 0xA022 #define T_UTF_32_YI_SYLLABLE_BUO 0xA023 #define T_UTF_32_YI_SYLLABLE_BUOP 0xA024 #define T_UTF_32_YI_SYLLABLE_BOT 0xA025 #define T_UTF_32_YI_SYLLABLE_BOX 0xA026 #define T_UTF_32_YI_SYLLABLE_BO 0xA027 #define T_UTF_32_YI_SYLLABLE_BOP 0xA028 #define T_UTF_32_YI_SYLLABLE_BEX 0xA029 #define T_UTF_32_YI_SYLLABLE_BE 0xA02A #define T_UTF_32_YI_SYLLABLE_BEP 0xA02B #define T_UTF_32_YI_SYLLABLE_BUT 0xA02C #define T_UTF_32_YI_SYLLABLE_BUX 0xA02D #define T_UTF_32_YI_SYLLABLE_BU 0xA02E #define T_UTF_32_YI_SYLLABLE_BUP 0xA02F #define T_UTF_32_YI_SYLLABLE_BURX 0xA030 #define T_UTF_32_YI_SYLLABLE_BUR 0xA031 #define T_UTF_32_YI_SYLLABLE_BYT 0xA032 #define T_UTF_32_YI_SYLLABLE_BYX 0xA033 #define T_UTF_32_YI_SYLLABLE_BY 0xA034 #define T_UTF_32_YI_SYLLABLE_BYP 0xA035 #define T_UTF_32_YI_SYLLABLE_BYRX 0xA036 #define T_UTF_32_YI_SYLLABLE_BYR 0xA037 #define T_UTF_32_YI_SYLLABLE_PIT 0xA038 #define T_UTF_32_YI_SYLLABLE_PIX 0xA039 #define T_UTF_32_YI_SYLLABLE_PI 0xA03A #define T_UTF_32_YI_SYLLABLE_PIP 0xA03B #define T_UTF_32_YI_SYLLABLE_PIEX 0xA03C #define T_UTF_32_YI_SYLLABLE_PIE 0xA03D #define T_UTF_32_YI_SYLLABLE_PIEP 0xA03E #define T_UTF_32_YI_SYLLABLE_PAT 0xA03F #define T_UTF_32_YI_SYLLABLE_PAX 0xA040 #define T_UTF_32_YI_SYLLABLE_PA 0xA041 #define T_UTF_32_YI_SYLLABLE_PAP 0xA042 #define T_UTF_32_YI_SYLLABLE_PUOX 0xA043 #define T_UTF_32_YI_SYLLABLE_PUO 0xA044 #define T_UTF_32_YI_SYLLABLE_PUOP 0xA045 #define T_UTF_32_YI_SYLLABLE_POT 0xA046 #define T_UTF_32_YI_SYLLABLE_POX 0xA047 #define T_UTF_32_YI_SYLLABLE_PO 0xA048 #define T_UTF_32_YI_SYLLABLE_POP 0xA049 #define T_UTF_32_YI_SYLLABLE_PUT 0xA04A #define T_UTF_32_YI_SYLLABLE_PUX 0xA04B #define T_UTF_32_YI_SYLLABLE_PU 0xA04C #define T_UTF_32_YI_SYLLABLE_PUP 0xA04D #define T_UTF_32_YI_SYLLABLE_PURX 0xA04E #define T_UTF_32_YI_SYLLABLE_PUR 0xA04F #define T_UTF_32_YI_SYLLABLE_PYT 0xA050 #define T_UTF_32_YI_SYLLABLE_PYX 0xA051 #define T_UTF_32_YI_SYLLABLE_PY 0xA052 #define T_UTF_32_YI_SYLLABLE_PYP 0xA053 #define T_UTF_32_YI_SYLLABLE_PYRX 0xA054 #define T_UTF_32_YI_SYLLABLE_PYR 0xA055 #define T_UTF_32_YI_SYLLABLE_BBIT 0xA056 #define T_UTF_32_YI_SYLLABLE_BBIX 0xA057 #define T_UTF_32_YI_SYLLABLE_BBI 0xA058 #define T_UTF_32_YI_SYLLABLE_BBIP 0xA059 #define T_UTF_32_YI_SYLLABLE_BBIET 0xA05A #define T_UTF_32_YI_SYLLABLE_BBIEX 0xA05B #define T_UTF_32_YI_SYLLABLE_BBIE 0xA05C #define T_UTF_32_YI_SYLLABLE_BBIEP 0xA05D #define T_UTF_32_YI_SYLLABLE_BBAT 0xA05E #define T_UTF_32_YI_SYLLABLE_BBAX 0xA05F #define T_UTF_32_YI_SYLLABLE_BBA 0xA060 #define T_UTF_32_YI_SYLLABLE_BBAP 0xA061 #define T_UTF_32_YI_SYLLABLE_BBUOX 0xA062 #define T_UTF_32_YI_SYLLABLE_BBUO 0xA063 #define T_UTF_32_YI_SYLLABLE_BBUOP 0xA064 #define T_UTF_32_YI_SYLLABLE_BBOT 0xA065 #define T_UTF_32_YI_SYLLABLE_BBOX 0xA066 #define T_UTF_32_YI_SYLLABLE_BBO 0xA067 #define T_UTF_32_YI_SYLLABLE_BBOP 0xA068 #define T_UTF_32_YI_SYLLABLE_BBEX 0xA069 #define T_UTF_32_YI_SYLLABLE_BBE 0xA06A #define T_UTF_32_YI_SYLLABLE_BBEP 0xA06B #define T_UTF_32_YI_SYLLABLE_BBUT 0xA06C #define T_UTF_32_YI_SYLLABLE_BBUX 0xA06D #define T_UTF_32_YI_SYLLABLE_BBU 0xA06E #define T_UTF_32_YI_SYLLABLE_BBUP 0xA06F #define T_UTF_32_YI_SYLLABLE_BBURX 0xA070 #define T_UTF_32_YI_SYLLABLE_BBUR 0xA071 #define T_UTF_32_YI_SYLLABLE_BBYT 0xA072 #define T_UTF_32_YI_SYLLABLE_BBYX 0xA073 #define T_UTF_32_YI_SYLLABLE_BBY 0xA074 #define T_UTF_32_YI_SYLLABLE_BBYP 0xA075 #define T_UTF_32_YI_SYLLABLE_NBIT 0xA076 #define T_UTF_32_YI_SYLLABLE_NBIX 0xA077 #define T_UTF_32_YI_SYLLABLE_NBI 0xA078 #define T_UTF_32_YI_SYLLABLE_NBIP 0xA079 #define T_UTF_32_YI_SYLLABLE_NBIEX 0xA07A #define T_UTF_32_YI_SYLLABLE_NBIE 0xA07B #define T_UTF_32_YI_SYLLABLE_NBIEP 0xA07C #define T_UTF_32_YI_SYLLABLE_NBAT 0xA07D #define T_UTF_32_YI_SYLLABLE_NBAX 0xA07E #define T_UTF_32_YI_SYLLABLE_NBA 0xA07F #define T_UTF_32_YI_SYLLABLE_NBAP 0xA080 #define T_UTF_32_YI_SYLLABLE_NBOT 0xA081 #define T_UTF_32_YI_SYLLABLE_NBOX 0xA082 #define T_UTF_32_YI_SYLLABLE_NBO 0xA083 #define T_UTF_32_YI_SYLLABLE_NBOP 0xA084 #define T_UTF_32_YI_SYLLABLE_NBUT 0xA085 #define T_UTF_32_YI_SYLLABLE_NBUX 0xA086 #define T_UTF_32_YI_SYLLABLE_NBU 0xA087 #define T_UTF_32_YI_SYLLABLE_NBUP 0xA088 #define T_UTF_32_YI_SYLLABLE_NBURX 0xA089 #define T_UTF_32_YI_SYLLABLE_NBUR 0xA08A #define T_UTF_32_YI_SYLLABLE_NBYT 0xA08B #define T_UTF_32_YI_SYLLABLE_NBYX 0xA08C #define T_UTF_32_YI_SYLLABLE_NBY 0xA08D #define T_UTF_32_YI_SYLLABLE_NBYP 0xA08E #define T_UTF_32_YI_SYLLABLE_NBYRX 0xA08F #define T_UTF_32_YI_SYLLABLE_NBYR 0xA090 #define T_UTF_32_YI_SYLLABLE_HMIT 0xA091 #define T_UTF_32_YI_SYLLABLE_HMIX 0xA092 #define T_UTF_32_YI_SYLLABLE_HMI 0xA093 #define T_UTF_32_YI_SYLLABLE_HMIP 0xA094 #define T_UTF_32_YI_SYLLABLE_HMIEX 0xA095 #define T_UTF_32_YI_SYLLABLE_HMIE 0xA096 #define T_UTF_32_YI_SYLLABLE_HMIEP 0xA097 #define T_UTF_32_YI_SYLLABLE_HMAT 0xA098 #define T_UTF_32_YI_SYLLABLE_HMAX 0xA099 #define T_UTF_32_YI_SYLLABLE_HMA 0xA09A #define T_UTF_32_YI_SYLLABLE_HMAP 0xA09B #define T_UTF_32_YI_SYLLABLE_HMUOX 0xA09C #define T_UTF_32_YI_SYLLABLE_HMUO 0xA09D #define T_UTF_32_YI_SYLLABLE_HMUOP 0xA09E #define T_UTF_32_YI_SYLLABLE_HMOT 0xA09F #define T_UTF_32_YI_SYLLABLE_HMOX 0xA0A0 #define T_UTF_32_YI_SYLLABLE_HMO 0xA0A1 #define T_UTF_32_YI_SYLLABLE_HMOP 0xA0A2 #define T_UTF_32_YI_SYLLABLE_HMUT 0xA0A3 #define T_UTF_32_YI_SYLLABLE_HMUX 0xA0A4 #define T_UTF_32_YI_SYLLABLE_HMU 0xA0A5 #define T_UTF_32_YI_SYLLABLE_HMUP 0xA0A6 #define T_UTF_32_YI_SYLLABLE_HMURX 0xA0A7 #define T_UTF_32_YI_SYLLABLE_HMUR 0xA0A8 #define T_UTF_32_YI_SYLLABLE_HMYX 0xA0A9 #define T_UTF_32_YI_SYLLABLE_HMY 0xA0AA #define T_UTF_32_YI_SYLLABLE_HMYP 0xA0AB #define T_UTF_32_YI_SYLLABLE_HMYRX 0xA0AC #define T_UTF_32_YI_SYLLABLE_HMYR 0xA0AD #define T_UTF_32_YI_SYLLABLE_MIT 0xA0AE #define T_UTF_32_YI_SYLLABLE_MIX 0xA0AF #define T_UTF_32_YI_SYLLABLE_MI 0xA0B0 #define T_UTF_32_YI_SYLLABLE_MIP 0xA0B1 #define T_UTF_32_YI_SYLLABLE_MIEX 0xA0B2 #define T_UTF_32_YI_SYLLABLE_MIE 0xA0B3 #define T_UTF_32_YI_SYLLABLE_MIEP 0xA0B4 #define T_UTF_32_YI_SYLLABLE_MAT 0xA0B5 #define T_UTF_32_YI_SYLLABLE_MAX 0xA0B6 #define T_UTF_32_YI_SYLLABLE_MA 0xA0B7 #define T_UTF_32_YI_SYLLABLE_MAP 0xA0B8 #define T_UTF_32_YI_SYLLABLE_MUOT 0xA0B9 #define T_UTF_32_YI_SYLLABLE_MUOX 0xA0BA #define T_UTF_32_YI_SYLLABLE_MUO 0xA0BB #define T_UTF_32_YI_SYLLABLE_MUOP 0xA0BC #define T_UTF_32_YI_SYLLABLE_MOT 0xA0BD #define T_UTF_32_YI_SYLLABLE_MOX 0xA0BE #define T_UTF_32_YI_SYLLABLE_MO 0xA0BF #define T_UTF_32_YI_SYLLABLE_MOP 0xA0C0 #define T_UTF_32_YI_SYLLABLE_MEX 0xA0C1 #define T_UTF_32_YI_SYLLABLE_ME 0xA0C2 #define T_UTF_32_YI_SYLLABLE_MUT 0xA0C3 #define T_UTF_32_YI_SYLLABLE_MUX 0xA0C4 #define T_UTF_32_YI_SYLLABLE_MU 0xA0C5 #define T_UTF_32_YI_SYLLABLE_MUP 0xA0C6 #define T_UTF_32_YI_SYLLABLE_MURX 0xA0C7 #define T_UTF_32_YI_SYLLABLE_MUR 0xA0C8 #define T_UTF_32_YI_SYLLABLE_MYT 0xA0C9 #define T_UTF_32_YI_SYLLABLE_MYX 0xA0CA #define T_UTF_32_YI_SYLLABLE_MY 0xA0CB #define T_UTF_32_YI_SYLLABLE_MYP 0xA0CC #define T_UTF_32_YI_SYLLABLE_FIT 0xA0CD #define T_UTF_32_YI_SYLLABLE_FIX 0xA0CE #define T_UTF_32_YI_SYLLABLE_FI 0xA0CF #define T_UTF_32_YI_SYLLABLE_FIP 0xA0D0 #define T_UTF_32_YI_SYLLABLE_FAT 0xA0D1 #define T_UTF_32_YI_SYLLABLE_FAX 0xA0D2 #define T_UTF_32_YI_SYLLABLE_FA 0xA0D3 #define T_UTF_32_YI_SYLLABLE_FAP 0xA0D4 #define T_UTF_32_YI_SYLLABLE_FOX 0xA0D5 #define T_UTF_32_YI_SYLLABLE_FO 0xA0D6 #define T_UTF_32_YI_SYLLABLE_FOP 0xA0D7 #define T_UTF_32_YI_SYLLABLE_FUT 0xA0D8 #define T_UTF_32_YI_SYLLABLE_FUX 0xA0D9 #define T_UTF_32_YI_SYLLABLE_FU 0xA0DA #define T_UTF_32_YI_SYLLABLE_FUP 0xA0DB #define T_UTF_32_YI_SYLLABLE_FURX 0xA0DC #define T_UTF_32_YI_SYLLABLE_FUR 0xA0DD #define T_UTF_32_YI_SYLLABLE_FYT 0xA0DE #define T_UTF_32_YI_SYLLABLE_FYX 0xA0DF #define T_UTF_32_YI_SYLLABLE_FY 0xA0E0 #define T_UTF_32_YI_SYLLABLE_FYP 0xA0E1 #define T_UTF_32_YI_SYLLABLE_VIT 0xA0E2 #define T_UTF_32_YI_SYLLABLE_VIX 0xA0E3 #define T_UTF_32_YI_SYLLABLE_VI 0xA0E4 #define T_UTF_32_YI_SYLLABLE_VIP 0xA0E5 #define T_UTF_32_YI_SYLLABLE_VIET 0xA0E6 #define T_UTF_32_YI_SYLLABLE_VIEX 0xA0E7 #define T_UTF_32_YI_SYLLABLE_VIE 0xA0E8 #define T_UTF_32_YI_SYLLABLE_VIEP 0xA0E9 #define T_UTF_32_YI_SYLLABLE_VAT 0xA0EA #define T_UTF_32_YI_SYLLABLE_VAX 0xA0EB #define T_UTF_32_YI_SYLLABLE_VA 0xA0EC #define T_UTF_32_YI_SYLLABLE_VAP 0xA0ED #define T_UTF_32_YI_SYLLABLE_VOT 0xA0EE #define T_UTF_32_YI_SYLLABLE_VOX 0xA0EF #define T_UTF_32_YI_SYLLABLE_VO 0xA0F0 #define T_UTF_32_YI_SYLLABLE_VOP 0xA0F1 #define T_UTF_32_YI_SYLLABLE_VEX 0xA0F2 #define T_UTF_32_YI_SYLLABLE_VEP 0xA0F3 #define T_UTF_32_YI_SYLLABLE_VUT 0xA0F4 #define T_UTF_32_YI_SYLLABLE_VUX 0xA0F5 #define T_UTF_32_YI_SYLLABLE_VU 0xA0F6 #define T_UTF_32_YI_SYLLABLE_VUP 0xA0F7 #define T_UTF_32_YI_SYLLABLE_VURX 0xA0F8 #define T_UTF_32_YI_SYLLABLE_VUR 0xA0F9 #define T_UTF_32_YI_SYLLABLE_VYT 0xA0FA #define T_UTF_32_YI_SYLLABLE_VYX 0xA0FB #define T_UTF_32_YI_SYLLABLE_VY 0xA0FC #define T_UTF_32_YI_SYLLABLE_VYP 0xA0FD #define T_UTF_32_YI_SYLLABLE_VYRX 0xA0FE #define T_UTF_32_YI_SYLLABLE_VYR 0xA0FF #define T_UTF_32_YI_SYLLABLE_DIT 0xA100 #define T_UTF_32_YI_SYLLABLE_DIX 0xA101 #define T_UTF_32_YI_SYLLABLE_DI 0xA102 #define T_UTF_32_YI_SYLLABLE_DIP 0xA103 #define T_UTF_32_YI_SYLLABLE_DIEX 0xA104 #define T_UTF_32_YI_SYLLABLE_DIE 0xA105 #define T_UTF_32_YI_SYLLABLE_DIEP 0xA106 #define T_UTF_32_YI_SYLLABLE_DAT 0xA107 #define T_UTF_32_YI_SYLLABLE_DAX 0xA108 #define T_UTF_32_YI_SYLLABLE_DA 0xA109 #define T_UTF_32_YI_SYLLABLE_DAP 0xA10A #define T_UTF_32_YI_SYLLABLE_DUOX 0xA10B #define T_UTF_32_YI_SYLLABLE_DUO 0xA10C #define T_UTF_32_YI_SYLLABLE_DOT 0xA10D #define T_UTF_32_YI_SYLLABLE_DOX 0xA10E #define T_UTF_32_YI_SYLLABLE_DO 0xA10F #define T_UTF_32_YI_SYLLABLE_DOP 0xA110 #define T_UTF_32_YI_SYLLABLE_DEX 0xA111 #define T_UTF_32_YI_SYLLABLE_DE 0xA112 #define T_UTF_32_YI_SYLLABLE_DEP 0xA113 #define T_UTF_32_YI_SYLLABLE_DUT 0xA114 #define T_UTF_32_YI_SYLLABLE_DUX 0xA115 #define T_UTF_32_YI_SYLLABLE_DU 0xA116 #define T_UTF_32_YI_SYLLABLE_DUP 0xA117 #define T_UTF_32_YI_SYLLABLE_DURX 0xA118 #define T_UTF_32_YI_SYLLABLE_DUR 0xA119 #define T_UTF_32_YI_SYLLABLE_TIT 0xA11A #define T_UTF_32_YI_SYLLABLE_TIX 0xA11B #define T_UTF_32_YI_SYLLABLE_TI 0xA11C #define T_UTF_32_YI_SYLLABLE_TIP 0xA11D #define T_UTF_32_YI_SYLLABLE_TIEX 0xA11E #define T_UTF_32_YI_SYLLABLE_TIE 0xA11F #define T_UTF_32_YI_SYLLABLE_TIEP 0xA120 #define T_UTF_32_YI_SYLLABLE_TAT 0xA121 #define T_UTF_32_YI_SYLLABLE_TAX 0xA122 #define T_UTF_32_YI_SYLLABLE_TA 0xA123 #define T_UTF_32_YI_SYLLABLE_TAP 0xA124 #define T_UTF_32_YI_SYLLABLE_TUOT 0xA125 #define T_UTF_32_YI_SYLLABLE_TUOX 0xA126 #define T_UTF_32_YI_SYLLABLE_TUO 0xA127 #define T_UTF_32_YI_SYLLABLE_TUOP 0xA128 #define T_UTF_32_YI_SYLLABLE_TOT 0xA129 #define T_UTF_32_YI_SYLLABLE_TOX 0xA12A #define T_UTF_32_YI_SYLLABLE_TO 0xA12B #define T_UTF_32_YI_SYLLABLE_TOP 0xA12C #define T_UTF_32_YI_SYLLABLE_TEX 0xA12D #define T_UTF_32_YI_SYLLABLE_TE 0xA12E #define T_UTF_32_YI_SYLLABLE_TEP 0xA12F #define T_UTF_32_YI_SYLLABLE_TUT 0xA130 #define T_UTF_32_YI_SYLLABLE_TUX 0xA131 #define T_UTF_32_YI_SYLLABLE_TU 0xA132 #define T_UTF_32_YI_SYLLABLE_TUP 0xA133 #define T_UTF_32_YI_SYLLABLE_TURX 0xA134 #define T_UTF_32_YI_SYLLABLE_TUR 0xA135 #define T_UTF_32_YI_SYLLABLE_DDIT 0xA136 #define T_UTF_32_YI_SYLLABLE_DDIX 0xA137 #define T_UTF_32_YI_SYLLABLE_DDI 0xA138 #define T_UTF_32_YI_SYLLABLE_DDIP 0xA139 #define T_UTF_32_YI_SYLLABLE_DDIEX 0xA13A #define T_UTF_32_YI_SYLLABLE_DDIE 0xA13B #define T_UTF_32_YI_SYLLABLE_DDIEP 0xA13C #define T_UTF_32_YI_SYLLABLE_DDAT 0xA13D #define T_UTF_32_YI_SYLLABLE_DDAX 0xA13E #define T_UTF_32_YI_SYLLABLE_DDA 0xA13F #define T_UTF_32_YI_SYLLABLE_DDAP 0xA140 #define T_UTF_32_YI_SYLLABLE_DDUOX 0xA141 #define T_UTF_32_YI_SYLLABLE_DDUO 0xA142 #define T_UTF_32_YI_SYLLABLE_DDUOP 0xA143 #define T_UTF_32_YI_SYLLABLE_DDOT 0xA144 #define T_UTF_32_YI_SYLLABLE_DDOX 0xA145 #define T_UTF_32_YI_SYLLABLE_DDO 0xA146 #define T_UTF_32_YI_SYLLABLE_DDOP 0xA147 #define T_UTF_32_YI_SYLLABLE_DDEX 0xA148 #define T_UTF_32_YI_SYLLABLE_DDE 0xA149 #define T_UTF_32_YI_SYLLABLE_DDEP 0xA14A #define T_UTF_32_YI_SYLLABLE_DDUT 0xA14B #define T_UTF_32_YI_SYLLABLE_DDUX 0xA14C #define T_UTF_32_YI_SYLLABLE_DDU 0xA14D #define T_UTF_32_YI_SYLLABLE_DDUP 0xA14E #define T_UTF_32_YI_SYLLABLE_DDURX 0xA14F #define T_UTF_32_YI_SYLLABLE_DDUR 0xA150 #define T_UTF_32_YI_SYLLABLE_NDIT 0xA151 #define T_UTF_32_YI_SYLLABLE_NDIX 0xA152 #define T_UTF_32_YI_SYLLABLE_NDI 0xA153 #define T_UTF_32_YI_SYLLABLE_NDIP 0xA154 #define T_UTF_32_YI_SYLLABLE_NDIEX 0xA155 #define T_UTF_32_YI_SYLLABLE_NDIE 0xA156 #define T_UTF_32_YI_SYLLABLE_NDAT 0xA157 #define T_UTF_32_YI_SYLLABLE_NDAX 0xA158 #define T_UTF_32_YI_SYLLABLE_NDA 0xA159 #define T_UTF_32_YI_SYLLABLE_NDAP 0xA15A #define T_UTF_32_YI_SYLLABLE_NDOT 0xA15B #define T_UTF_32_YI_SYLLABLE_NDOX 0xA15C #define T_UTF_32_YI_SYLLABLE_NDO 0xA15D #define T_UTF_32_YI_SYLLABLE_NDOP 0xA15E #define T_UTF_32_YI_SYLLABLE_NDEX 0xA15F #define T_UTF_32_YI_SYLLABLE_NDE 0xA160 #define T_UTF_32_YI_SYLLABLE_NDEP 0xA161 #define T_UTF_32_YI_SYLLABLE_NDUT 0xA162 #define T_UTF_32_YI_SYLLABLE_NDUX 0xA163 #define T_UTF_32_YI_SYLLABLE_NDU 0xA164 #define T_UTF_32_YI_SYLLABLE_NDUP 0xA165 #define T_UTF_32_YI_SYLLABLE_NDURX 0xA166 #define T_UTF_32_YI_SYLLABLE_NDUR 0xA167 #define T_UTF_32_YI_SYLLABLE_HNIT 0xA168 #define T_UTF_32_YI_SYLLABLE_HNIX 0xA169 #define T_UTF_32_YI_SYLLABLE_HNI 0xA16A #define T_UTF_32_YI_SYLLABLE_HNIP 0xA16B #define T_UTF_32_YI_SYLLABLE_HNIET 0xA16C #define T_UTF_32_YI_SYLLABLE_HNIEX 0xA16D #define T_UTF_32_YI_SYLLABLE_HNIE 0xA16E #define T_UTF_32_YI_SYLLABLE_HNIEP 0xA16F #define T_UTF_32_YI_SYLLABLE_HNAT 0xA170 #define T_UTF_32_YI_SYLLABLE_HNAX 0xA171 #define T_UTF_32_YI_SYLLABLE_HNA 0xA172 #define T_UTF_32_YI_SYLLABLE_HNAP 0xA173 #define T_UTF_32_YI_SYLLABLE_HNUOX 0xA174 #define T_UTF_32_YI_SYLLABLE_HNUO 0xA175 #define T_UTF_32_YI_SYLLABLE_HNOT 0xA176 #define T_UTF_32_YI_SYLLABLE_HNOX 0xA177 #define T_UTF_32_YI_SYLLABLE_HNOP 0xA178 #define T_UTF_32_YI_SYLLABLE_HNEX 0xA179 #define T_UTF_32_YI_SYLLABLE_HNE 0xA17A #define T_UTF_32_YI_SYLLABLE_HNEP 0xA17B #define T_UTF_32_YI_SYLLABLE_HNUT 0xA17C #define T_UTF_32_YI_SYLLABLE_NIT 0xA17D #define T_UTF_32_YI_SYLLABLE_NIX 0xA17E #define T_UTF_32_YI_SYLLABLE_NI 0xA17F #define T_UTF_32_YI_SYLLABLE_NIP 0xA180 #define T_UTF_32_YI_SYLLABLE_NIEX 0xA181 #define T_UTF_32_YI_SYLLABLE_NIE 0xA182 #define T_UTF_32_YI_SYLLABLE_NIEP 0xA183 #define T_UTF_32_YI_SYLLABLE_NAX 0xA184 #define T_UTF_32_YI_SYLLABLE_NA 0xA185 #define T_UTF_32_YI_SYLLABLE_NAP 0xA186 #define T_UTF_32_YI_SYLLABLE_NUOX 0xA187 #define T_UTF_32_YI_SYLLABLE_NUO 0xA188 #define T_UTF_32_YI_SYLLABLE_NUOP 0xA189 #define T_UTF_32_YI_SYLLABLE_NOT 0xA18A #define T_UTF_32_YI_SYLLABLE_NOX 0xA18B #define T_UTF_32_YI_SYLLABLE_NO 0xA18C #define T_UTF_32_YI_SYLLABLE_NOP 0xA18D #define T_UTF_32_YI_SYLLABLE_NEX 0xA18E #define T_UTF_32_YI_SYLLABLE_NE 0xA18F #define T_UTF_32_YI_SYLLABLE_NEP 0xA190 #define T_UTF_32_YI_SYLLABLE_NUT 0xA191 #define T_UTF_32_YI_SYLLABLE_NUX 0xA192 #define T_UTF_32_YI_SYLLABLE_NU 0xA193 #define T_UTF_32_YI_SYLLABLE_NUP 0xA194 #define T_UTF_32_YI_SYLLABLE_NURX 0xA195 #define T_UTF_32_YI_SYLLABLE_NUR 0xA196 #define T_UTF_32_YI_SYLLABLE_HLIT 0xA197 #define T_UTF_32_YI_SYLLABLE_HLIX 0xA198 #define T_UTF_32_YI_SYLLABLE_HLI 0xA199 #define T_UTF_32_YI_SYLLABLE_HLIP 0xA19A #define T_UTF_32_YI_SYLLABLE_HLIEX 0xA19B #define T_UTF_32_YI_SYLLABLE_HLIE 0xA19C #define T_UTF_32_YI_SYLLABLE_HLIEP 0xA19D #define T_UTF_32_YI_SYLLABLE_HLAT 0xA19E #define T_UTF_32_YI_SYLLABLE_HLAX 0xA19F #define T_UTF_32_YI_SYLLABLE_HLA 0xA1A0 #define T_UTF_32_YI_SYLLABLE_HLAP 0xA1A1 #define T_UTF_32_YI_SYLLABLE_HLUOX 0xA1A2 #define T_UTF_32_YI_SYLLABLE_HLUO 0xA1A3 #define T_UTF_32_YI_SYLLABLE_HLUOP 0xA1A4 #define T_UTF_32_YI_SYLLABLE_HLOX 0xA1A5 #define T_UTF_32_YI_SYLLABLE_HLO 0xA1A6 #define T_UTF_32_YI_SYLLABLE_HLOP 0xA1A7 #define T_UTF_32_YI_SYLLABLE_HLEX 0xA1A8 #define T_UTF_32_YI_SYLLABLE_HLE 0xA1A9 #define T_UTF_32_YI_SYLLABLE_HLEP 0xA1AA #define T_UTF_32_YI_SYLLABLE_HLUT 0xA1AB #define T_UTF_32_YI_SYLLABLE_HLUX 0xA1AC #define T_UTF_32_YI_SYLLABLE_HLU 0xA1AD #define T_UTF_32_YI_SYLLABLE_HLUP 0xA1AE #define T_UTF_32_YI_SYLLABLE_HLURX 0xA1AF #define T_UTF_32_YI_SYLLABLE_HLUR 0xA1B0 #define T_UTF_32_YI_SYLLABLE_HLYT 0xA1B1 #define T_UTF_32_YI_SYLLABLE_HLYX 0xA1B2 #define T_UTF_32_YI_SYLLABLE_HLY 0xA1B3 #define T_UTF_32_YI_SYLLABLE_HLYP 0xA1B4 #define T_UTF_32_YI_SYLLABLE_HLYRX 0xA1B5 #define T_UTF_32_YI_SYLLABLE_HLYR 0xA1B6 #define T_UTF_32_YI_SYLLABLE_LIT 0xA1B7 #define T_UTF_32_YI_SYLLABLE_LIX 0xA1B8 #define T_UTF_32_YI_SYLLABLE_LI 0xA1B9 #define T_UTF_32_YI_SYLLABLE_LIP 0xA1BA #define T_UTF_32_YI_SYLLABLE_LIET 0xA1BB #define T_UTF_32_YI_SYLLABLE_LIEX 0xA1BC #define T_UTF_32_YI_SYLLABLE_LIE 0xA1BD #define T_UTF_32_YI_SYLLABLE_LIEP 0xA1BE #define T_UTF_32_YI_SYLLABLE_LAT 0xA1BF #define T_UTF_32_YI_SYLLABLE_LAX 0xA1C0 #define T_UTF_32_YI_SYLLABLE_LA 0xA1C1 #define T_UTF_32_YI_SYLLABLE_LAP 0xA1C2 #define T_UTF_32_YI_SYLLABLE_LUOT 0xA1C3 #define T_UTF_32_YI_SYLLABLE_LUOX 0xA1C4 #define T_UTF_32_YI_SYLLABLE_LUO 0xA1C5 #define T_UTF_32_YI_SYLLABLE_LUOP 0xA1C6 #define T_UTF_32_YI_SYLLABLE_LOT 0xA1C7 #define T_UTF_32_YI_SYLLABLE_LOX 0xA1C8 #define T_UTF_32_YI_SYLLABLE_LO 0xA1C9 #define T_UTF_32_YI_SYLLABLE_LOP 0xA1CA #define T_UTF_32_YI_SYLLABLE_LEX 0xA1CB #define T_UTF_32_YI_SYLLABLE_LE 0xA1CC #define T_UTF_32_YI_SYLLABLE_LEP 0xA1CD #define T_UTF_32_YI_SYLLABLE_LUT 0xA1CE #define T_UTF_32_YI_SYLLABLE_LUX 0xA1CF #define T_UTF_32_YI_SYLLABLE_LU 0xA1D0 #define T_UTF_32_YI_SYLLABLE_LUP 0xA1D1 #define T_UTF_32_YI_SYLLABLE_LURX 0xA1D2 #define T_UTF_32_YI_SYLLABLE_LUR 0xA1D3 #define T_UTF_32_YI_SYLLABLE_LYT 0xA1D4 #define T_UTF_32_YI_SYLLABLE_LYX 0xA1D5 #define T_UTF_32_YI_SYLLABLE_LY 0xA1D6 #define T_UTF_32_YI_SYLLABLE_LYP 0xA1D7 #define T_UTF_32_YI_SYLLABLE_LYRX 0xA1D8 #define T_UTF_32_YI_SYLLABLE_LYR 0xA1D9 #define T_UTF_32_YI_SYLLABLE_GIT 0xA1DA #define T_UTF_32_YI_SYLLABLE_GIX 0xA1DB #define T_UTF_32_YI_SYLLABLE_GI 0xA1DC #define T_UTF_32_YI_SYLLABLE_GIP 0xA1DD #define T_UTF_32_YI_SYLLABLE_GIET 0xA1DE #define T_UTF_32_YI_SYLLABLE_GIEX 0xA1DF #define T_UTF_32_YI_SYLLABLE_GIE 0xA1E0 #define T_UTF_32_YI_SYLLABLE_GIEP 0xA1E1 #define T_UTF_32_YI_SYLLABLE_GAT 0xA1E2 #define T_UTF_32_YI_SYLLABLE_GAX 0xA1E3 #define T_UTF_32_YI_SYLLABLE_GA 0xA1E4 #define T_UTF_32_YI_SYLLABLE_GAP 0xA1E5 #define T_UTF_32_YI_SYLLABLE_GUOT 0xA1E6 #define T_UTF_32_YI_SYLLABLE_GUOX 0xA1E7 #define T_UTF_32_YI_SYLLABLE_GUO 0xA1E8 #define T_UTF_32_YI_SYLLABLE_GUOP 0xA1E9 #define T_UTF_32_YI_SYLLABLE_GOT 0xA1EA #define T_UTF_32_YI_SYLLABLE_GOX 0xA1EB #define T_UTF_32_YI_SYLLABLE_GO 0xA1EC #define T_UTF_32_YI_SYLLABLE_GOP 0xA1ED #define T_UTF_32_YI_SYLLABLE_GET 0xA1EE #define T_UTF_32_YI_SYLLABLE_GEX 0xA1EF #define T_UTF_32_YI_SYLLABLE_GE 0xA1F0 #define T_UTF_32_YI_SYLLABLE_GEP 0xA1F1 #define T_UTF_32_YI_SYLLABLE_GUT 0xA1F2 #define T_UTF_32_YI_SYLLABLE_GUX 0xA1F3 #define T_UTF_32_YI_SYLLABLE_GU 0xA1F4 #define T_UTF_32_YI_SYLLABLE_GUP 0xA1F5 #define T_UTF_32_YI_SYLLABLE_GURX 0xA1F6 #define T_UTF_32_YI_SYLLABLE_GUR 0xA1F7 #define T_UTF_32_YI_SYLLABLE_KIT 0xA1F8 #define T_UTF_32_YI_SYLLABLE_KIX 0xA1F9 #define T_UTF_32_YI_SYLLABLE_KI 0xA1FA #define T_UTF_32_YI_SYLLABLE_KIP 0xA1FB #define T_UTF_32_YI_SYLLABLE_KIEX 0xA1FC #define T_UTF_32_YI_SYLLABLE_KIE 0xA1FD #define T_UTF_32_YI_SYLLABLE_KIEP 0xA1FE #define T_UTF_32_YI_SYLLABLE_KAT 0xA1FF #define T_UTF_32_YI_SYLLABLE_KAX 0xA200 #define T_UTF_32_YI_SYLLABLE_KA 0xA201 #define T_UTF_32_YI_SYLLABLE_KAP 0xA202 #define T_UTF_32_YI_SYLLABLE_KUOX 0xA203 #define T_UTF_32_YI_SYLLABLE_KUO 0xA204 #define T_UTF_32_YI_SYLLABLE_KUOP 0xA205 #define T_UTF_32_YI_SYLLABLE_KOT 0xA206 #define T_UTF_32_YI_SYLLABLE_KOX 0xA207 #define T_UTF_32_YI_SYLLABLE_KO 0xA208 #define T_UTF_32_YI_SYLLABLE_KOP 0xA209 #define T_UTF_32_YI_SYLLABLE_KET 0xA20A #define T_UTF_32_YI_SYLLABLE_KEX 0xA20B #define T_UTF_32_YI_SYLLABLE_KE 0xA20C #define T_UTF_32_YI_SYLLABLE_KEP 0xA20D #define T_UTF_32_YI_SYLLABLE_KUT 0xA20E #define T_UTF_32_YI_SYLLABLE_KUX 0xA20F #define T_UTF_32_YI_SYLLABLE_KU 0xA210 #define T_UTF_32_YI_SYLLABLE_KUP 0xA211 #define T_UTF_32_YI_SYLLABLE_KURX 0xA212 #define T_UTF_32_YI_SYLLABLE_KUR 0xA213 #define T_UTF_32_YI_SYLLABLE_GGIT 0xA214 #define T_UTF_32_YI_SYLLABLE_GGIX 0xA215 #define T_UTF_32_YI_SYLLABLE_GGI 0xA216 #define T_UTF_32_YI_SYLLABLE_GGIEX 0xA217 #define T_UTF_32_YI_SYLLABLE_GGIE 0xA218 #define T_UTF_32_YI_SYLLABLE_GGIEP 0xA219 #define T_UTF_32_YI_SYLLABLE_GGAT 0xA21A #define T_UTF_32_YI_SYLLABLE_GGAX 0xA21B #define T_UTF_32_YI_SYLLABLE_GGA 0xA21C #define T_UTF_32_YI_SYLLABLE_GGAP 0xA21D #define T_UTF_32_YI_SYLLABLE_GGUOT 0xA21E #define T_UTF_32_YI_SYLLABLE_GGUOX 0xA21F #define T_UTF_32_YI_SYLLABLE_GGUO 0xA220 #define T_UTF_32_YI_SYLLABLE_GGUOP 0xA221 #define T_UTF_32_YI_SYLLABLE_GGOT 0xA222 #define T_UTF_32_YI_SYLLABLE_GGOX 0xA223 #define T_UTF_32_YI_SYLLABLE_GGO 0xA224 #define T_UTF_32_YI_SYLLABLE_GGOP 0xA225 #define T_UTF_32_YI_SYLLABLE_GGET 0xA226 #define T_UTF_32_YI_SYLLABLE_GGEX 0xA227 #define T_UTF_32_YI_SYLLABLE_GGE 0xA228 #define T_UTF_32_YI_SYLLABLE_GGEP 0xA229 #define T_UTF_32_YI_SYLLABLE_GGUT 0xA22A #define T_UTF_32_YI_SYLLABLE_GGUX 0xA22B #define T_UTF_32_YI_SYLLABLE_GGU 0xA22C #define T_UTF_32_YI_SYLLABLE_GGUP 0xA22D #define T_UTF_32_YI_SYLLABLE_GGURX 0xA22E #define T_UTF_32_YI_SYLLABLE_GGUR 0xA22F #define T_UTF_32_YI_SYLLABLE_MGIEX 0xA230 #define T_UTF_32_YI_SYLLABLE_MGIE 0xA231 #define T_UTF_32_YI_SYLLABLE_MGAT 0xA232 #define T_UTF_32_YI_SYLLABLE_MGAX 0xA233 #define T_UTF_32_YI_SYLLABLE_MGA 0xA234 #define T_UTF_32_YI_SYLLABLE_MGAP 0xA235 #define T_UTF_32_YI_SYLLABLE_MGUOX 0xA236 #define T_UTF_32_YI_SYLLABLE_MGUO 0xA237 #define T_UTF_32_YI_SYLLABLE_MGUOP 0xA238 #define T_UTF_32_YI_SYLLABLE_MGOT 0xA239 #define T_UTF_32_YI_SYLLABLE_MGOX 0xA23A #define T_UTF_32_YI_SYLLABLE_MGO 0xA23B #define T_UTF_32_YI_SYLLABLE_MGOP 0xA23C #define T_UTF_32_YI_SYLLABLE_MGEX 0xA23D #define T_UTF_32_YI_SYLLABLE_MGE 0xA23E #define T_UTF_32_YI_SYLLABLE_MGEP 0xA23F #define T_UTF_32_YI_SYLLABLE_MGUT 0xA240 #define T_UTF_32_YI_SYLLABLE_MGUX 0xA241 #define T_UTF_32_YI_SYLLABLE_MGU 0xA242 #define T_UTF_32_YI_SYLLABLE_MGUP 0xA243 #define T_UTF_32_YI_SYLLABLE_MGURX 0xA244 #define T_UTF_32_YI_SYLLABLE_MGUR 0xA245 #define T_UTF_32_YI_SYLLABLE_HXIT 0xA246 #define T_UTF_32_YI_SYLLABLE_HXIX 0xA247 #define T_UTF_32_YI_SYLLABLE_HXI 0xA248 #define T_UTF_32_YI_SYLLABLE_HXIP 0xA249 #define T_UTF_32_YI_SYLLABLE_HXIET 0xA24A #define T_UTF_32_YI_SYLLABLE_HXIEX 0xA24B #define T_UTF_32_YI_SYLLABLE_HXIE 0xA24C #define T_UTF_32_YI_SYLLABLE_HXIEP 0xA24D #define T_UTF_32_YI_SYLLABLE_HXAT 0xA24E #define T_UTF_32_YI_SYLLABLE_HXAX 0xA24F #define T_UTF_32_YI_SYLLABLE_HXA 0xA250 #define T_UTF_32_YI_SYLLABLE_HXAP 0xA251 #define T_UTF_32_YI_SYLLABLE_HXUOT 0xA252 #define T_UTF_32_YI_SYLLABLE_HXUOX 0xA253 #define T_UTF_32_YI_SYLLABLE_HXUO 0xA254 #define T_UTF_32_YI_SYLLABLE_HXUOP 0xA255 #define T_UTF_32_YI_SYLLABLE_HXOT 0xA256 #define T_UTF_32_YI_SYLLABLE_HXOX 0xA257 #define T_UTF_32_YI_SYLLABLE_HXO 0xA258 #define T_UTF_32_YI_SYLLABLE_HXOP 0xA259 #define T_UTF_32_YI_SYLLABLE_HXEX 0xA25A #define T_UTF_32_YI_SYLLABLE_HXE 0xA25B #define T_UTF_32_YI_SYLLABLE_HXEP 0xA25C #define T_UTF_32_YI_SYLLABLE_NGIEX 0xA25D #define T_UTF_32_YI_SYLLABLE_NGIE 0xA25E #define T_UTF_32_YI_SYLLABLE_NGIEP 0xA25F #define T_UTF_32_YI_SYLLABLE_NGAT 0xA260 #define T_UTF_32_YI_SYLLABLE_NGAX 0xA261 #define T_UTF_32_YI_SYLLABLE_NGA 0xA262 #define T_UTF_32_YI_SYLLABLE_NGAP 0xA263 #define T_UTF_32_YI_SYLLABLE_NGUOT 0xA264 #define T_UTF_32_YI_SYLLABLE_NGUOX 0xA265 #define T_UTF_32_YI_SYLLABLE_NGUO 0xA266 #define T_UTF_32_YI_SYLLABLE_NGOT 0xA267 #define T_UTF_32_YI_SYLLABLE_NGOX 0xA268 #define T_UTF_32_YI_SYLLABLE_NGO 0xA269 #define T_UTF_32_YI_SYLLABLE_NGOP 0xA26A #define T_UTF_32_YI_SYLLABLE_NGEX 0xA26B #define T_UTF_32_YI_SYLLABLE_NGE 0xA26C #define T_UTF_32_YI_SYLLABLE_NGEP 0xA26D #define T_UTF_32_YI_SYLLABLE_HIT 0xA26E #define T_UTF_32_YI_SYLLABLE_HIEX 0xA26F #define T_UTF_32_YI_SYLLABLE_HIE 0xA270 #define T_UTF_32_YI_SYLLABLE_HAT 0xA271 #define T_UTF_32_YI_SYLLABLE_HAX 0xA272 #define T_UTF_32_YI_SYLLABLE_HA 0xA273 #define T_UTF_32_YI_SYLLABLE_HAP 0xA274 #define T_UTF_32_YI_SYLLABLE_HUOT 0xA275 #define T_UTF_32_YI_SYLLABLE_HUOX 0xA276 #define T_UTF_32_YI_SYLLABLE_HUO 0xA277 #define T_UTF_32_YI_SYLLABLE_HUOP 0xA278 #define T_UTF_32_YI_SYLLABLE_HOT 0xA279 #define T_UTF_32_YI_SYLLABLE_HOX 0xA27A #define T_UTF_32_YI_SYLLABLE_HO 0xA27B #define T_UTF_32_YI_SYLLABLE_HOP 0xA27C #define T_UTF_32_YI_SYLLABLE_HEX 0xA27D #define T_UTF_32_YI_SYLLABLE_HE 0xA27E #define T_UTF_32_YI_SYLLABLE_HEP 0xA27F #define T_UTF_32_YI_SYLLABLE_WAT 0xA280 #define T_UTF_32_YI_SYLLABLE_WAX 0xA281 #define T_UTF_32_YI_SYLLABLE_WA 0xA282 #define T_UTF_32_YI_SYLLABLE_WAP 0xA283 #define T_UTF_32_YI_SYLLABLE_WUOX 0xA284 #define T_UTF_32_YI_SYLLABLE_WUO 0xA285 #define T_UTF_32_YI_SYLLABLE_WUOP 0xA286 #define T_UTF_32_YI_SYLLABLE_WOX 0xA287 #define T_UTF_32_YI_SYLLABLE_WO 0xA288 #define T_UTF_32_YI_SYLLABLE_WOP 0xA289 #define T_UTF_32_YI_SYLLABLE_WEX 0xA28A #define T_UTF_32_YI_SYLLABLE_WE 0xA28B #define T_UTF_32_YI_SYLLABLE_WEP 0xA28C #define T_UTF_32_YI_SYLLABLE_ZIT 0xA28D #define T_UTF_32_YI_SYLLABLE_ZIX 0xA28E #define T_UTF_32_YI_SYLLABLE_ZI 0xA28F #define T_UTF_32_YI_SYLLABLE_ZIP 0xA290 #define T_UTF_32_YI_SYLLABLE_ZIEX 0xA291 #define T_UTF_32_YI_SYLLABLE_ZIE 0xA292 #define T_UTF_32_YI_SYLLABLE_ZIEP 0xA293 #define T_UTF_32_YI_SYLLABLE_ZAT 0xA294 #define T_UTF_32_YI_SYLLABLE_ZAX 0xA295 #define T_UTF_32_YI_SYLLABLE_ZA 0xA296 #define T_UTF_32_YI_SYLLABLE_ZAP 0xA297 #define T_UTF_32_YI_SYLLABLE_ZUOX 0xA298 #define T_UTF_32_YI_SYLLABLE_ZUO 0xA299 #define T_UTF_32_YI_SYLLABLE_ZUOP 0xA29A #define T_UTF_32_YI_SYLLABLE_ZOT 0xA29B #define T_UTF_32_YI_SYLLABLE_ZOX 0xA29C #define T_UTF_32_YI_SYLLABLE_ZO 0xA29D #define T_UTF_32_YI_SYLLABLE_ZOP 0xA29E #define T_UTF_32_YI_SYLLABLE_ZEX 0xA29F #define T_UTF_32_YI_SYLLABLE_ZE 0xA2A0 #define T_UTF_32_YI_SYLLABLE_ZEP 0xA2A1 #define T_UTF_32_YI_SYLLABLE_ZUT 0xA2A2 #define T_UTF_32_YI_SYLLABLE_ZUX 0xA2A3 #define T_UTF_32_YI_SYLLABLE_ZU 0xA2A4 #define T_UTF_32_YI_SYLLABLE_ZUP 0xA2A5 #define T_UTF_32_YI_SYLLABLE_ZURX 0xA2A6 #define T_UTF_32_YI_SYLLABLE_ZUR 0xA2A7 #define T_UTF_32_YI_SYLLABLE_ZYT 0xA2A8 #define T_UTF_32_YI_SYLLABLE_ZYX 0xA2A9 #define T_UTF_32_YI_SYLLABLE_ZY 0xA2AA #define T_UTF_32_YI_SYLLABLE_ZYP 0xA2AB #define T_UTF_32_YI_SYLLABLE_ZYRX 0xA2AC #define T_UTF_32_YI_SYLLABLE_ZYR 0xA2AD #define T_UTF_32_YI_SYLLABLE_CIT 0xA2AE #define T_UTF_32_YI_SYLLABLE_CIX 0xA2AF #define T_UTF_32_YI_SYLLABLE_CI 0xA2B0 #define T_UTF_32_YI_SYLLABLE_CIP 0xA2B1 #define T_UTF_32_YI_SYLLABLE_CIET 0xA2B2 #define T_UTF_32_YI_SYLLABLE_CIEX 0xA2B3 #define T_UTF_32_YI_SYLLABLE_CIE 0xA2B4 #define T_UTF_32_YI_SYLLABLE_CIEP 0xA2B5 #define T_UTF_32_YI_SYLLABLE_CAT 0xA2B6 #define T_UTF_32_YI_SYLLABLE_CAX 0xA2B7 #define T_UTF_32_YI_SYLLABLE_CA 0xA2B8 #define T_UTF_32_YI_SYLLABLE_CAP 0xA2B9 #define T_UTF_32_YI_SYLLABLE_CUOX 0xA2BA #define T_UTF_32_YI_SYLLABLE_CUO 0xA2BB #define T_UTF_32_YI_SYLLABLE_CUOP 0xA2BC #define T_UTF_32_YI_SYLLABLE_COT 0xA2BD #define T_UTF_32_YI_SYLLABLE_COX 0xA2BE #define T_UTF_32_YI_SYLLABLE_CO 0xA2BF #define T_UTF_32_YI_SYLLABLE_COP 0xA2C0 #define T_UTF_32_YI_SYLLABLE_CEX 0xA2C1 #define T_UTF_32_YI_SYLLABLE_CE 0xA2C2 #define T_UTF_32_YI_SYLLABLE_CEP 0xA2C3 #define T_UTF_32_YI_SYLLABLE_CUT 0xA2C4 #define T_UTF_32_YI_SYLLABLE_CUX 0xA2C5 #define T_UTF_32_YI_SYLLABLE_CU 0xA2C6 #define T_UTF_32_YI_SYLLABLE_CUP 0xA2C7 #define T_UTF_32_YI_SYLLABLE_CURX 0xA2C8 #define T_UTF_32_YI_SYLLABLE_CUR 0xA2C9 #define T_UTF_32_YI_SYLLABLE_CYT 0xA2CA #define T_UTF_32_YI_SYLLABLE_CYX 0xA2CB #define T_UTF_32_YI_SYLLABLE_CY 0xA2CC #define T_UTF_32_YI_SYLLABLE_CYP 0xA2CD #define T_UTF_32_YI_SYLLABLE_CYRX 0xA2CE #define T_UTF_32_YI_SYLLABLE_CYR 0xA2CF #define T_UTF_32_YI_SYLLABLE_ZZIT 0xA2D0 #define T_UTF_32_YI_SYLLABLE_ZZIX 0xA2D1 #define T_UTF_32_YI_SYLLABLE_ZZI 0xA2D2 #define T_UTF_32_YI_SYLLABLE_ZZIP 0xA2D3 #define T_UTF_32_YI_SYLLABLE_ZZIET 0xA2D4 #define T_UTF_32_YI_SYLLABLE_ZZIEX 0xA2D5 #define T_UTF_32_YI_SYLLABLE_ZZIE 0xA2D6 #define T_UTF_32_YI_SYLLABLE_ZZIEP 0xA2D7 #define T_UTF_32_YI_SYLLABLE_ZZAT 0xA2D8 #define T_UTF_32_YI_SYLLABLE_ZZAX 0xA2D9 #define T_UTF_32_YI_SYLLABLE_ZZA 0xA2DA #define T_UTF_32_YI_SYLLABLE_ZZAP 0xA2DB #define T_UTF_32_YI_SYLLABLE_ZZOX 0xA2DC #define T_UTF_32_YI_SYLLABLE_ZZO 0xA2DD #define T_UTF_32_YI_SYLLABLE_ZZOP 0xA2DE #define T_UTF_32_YI_SYLLABLE_ZZEX 0xA2DF #define T_UTF_32_YI_SYLLABLE_ZZE 0xA2E0 #define T_UTF_32_YI_SYLLABLE_ZZEP 0xA2E1 #define T_UTF_32_YI_SYLLABLE_ZZUX 0xA2E2 #define T_UTF_32_YI_SYLLABLE_ZZU 0xA2E3 #define T_UTF_32_YI_SYLLABLE_ZZUP 0xA2E4 #define T_UTF_32_YI_SYLLABLE_ZZURX 0xA2E5 #define T_UTF_32_YI_SYLLABLE_ZZUR 0xA2E6 #define T_UTF_32_YI_SYLLABLE_ZZYT 0xA2E7 #define T_UTF_32_YI_SYLLABLE_ZZYX 0xA2E8 #define T_UTF_32_YI_SYLLABLE_ZZY 0xA2E9 #define T_UTF_32_YI_SYLLABLE_ZZYP 0xA2EA #define T_UTF_32_YI_SYLLABLE_ZZYRX 0xA2EB #define T_UTF_32_YI_SYLLABLE_ZZYR 0xA2EC #define T_UTF_32_YI_SYLLABLE_NZIT 0xA2ED #define T_UTF_32_YI_SYLLABLE_NZIX 0xA2EE #define T_UTF_32_YI_SYLLABLE_NZI 0xA2EF #define T_UTF_32_YI_SYLLABLE_NZIP 0xA2F0 #define T_UTF_32_YI_SYLLABLE_NZIEX 0xA2F1 #define T_UTF_32_YI_SYLLABLE_NZIE 0xA2F2 #define T_UTF_32_YI_SYLLABLE_NZIEP 0xA2F3 #define T_UTF_32_YI_SYLLABLE_NZAT 0xA2F4 #define T_UTF_32_YI_SYLLABLE_NZAX 0xA2F5 #define T_UTF_32_YI_SYLLABLE_NZA 0xA2F6 #define T_UTF_32_YI_SYLLABLE_NZAP 0xA2F7 #define T_UTF_32_YI_SYLLABLE_NZUOX 0xA2F8 #define T_UTF_32_YI_SYLLABLE_NZUO 0xA2F9 #define T_UTF_32_YI_SYLLABLE_NZOX 0xA2FA #define T_UTF_32_YI_SYLLABLE_NZOP 0xA2FB #define T_UTF_32_YI_SYLLABLE_NZEX 0xA2FC #define T_UTF_32_YI_SYLLABLE_NZE 0xA2FD #define T_UTF_32_YI_SYLLABLE_NZUX 0xA2FE #define T_UTF_32_YI_SYLLABLE_NZU 0xA2FF #define T_UTF_32_YI_SYLLABLE_NZUP 0xA300 #define T_UTF_32_YI_SYLLABLE_NZURX 0xA301 #define T_UTF_32_YI_SYLLABLE_NZUR 0xA302 #define T_UTF_32_YI_SYLLABLE_NZYT 0xA303 #define T_UTF_32_YI_SYLLABLE_NZYX 0xA304 #define T_UTF_32_YI_SYLLABLE_NZY 0xA305 #define T_UTF_32_YI_SYLLABLE_NZYP 0xA306 #define T_UTF_32_YI_SYLLABLE_NZYRX 0xA307 #define T_UTF_32_YI_SYLLABLE_NZYR 0xA308 #define T_UTF_32_YI_SYLLABLE_SIT 0xA309 #define T_UTF_32_YI_SYLLABLE_SIX 0xA30A #define T_UTF_32_YI_SYLLABLE_SI 0xA30B #define T_UTF_32_YI_SYLLABLE_SIP 0xA30C #define T_UTF_32_YI_SYLLABLE_SIEX 0xA30D #define T_UTF_32_YI_SYLLABLE_SIE 0xA30E #define T_UTF_32_YI_SYLLABLE_SIEP 0xA30F #define T_UTF_32_YI_SYLLABLE_SAT 0xA310 #define T_UTF_32_YI_SYLLABLE_SAX 0xA311 #define T_UTF_32_YI_SYLLABLE_SA 0xA312 #define T_UTF_32_YI_SYLLABLE_SAP 0xA313 #define T_UTF_32_YI_SYLLABLE_SUOX 0xA314 #define T_UTF_32_YI_SYLLABLE_SUO 0xA315 #define T_UTF_32_YI_SYLLABLE_SUOP 0xA316 #define T_UTF_32_YI_SYLLABLE_SOT 0xA317 #define T_UTF_32_YI_SYLLABLE_SOX 0xA318 #define T_UTF_32_YI_SYLLABLE_SO 0xA319 #define T_UTF_32_YI_SYLLABLE_SOP 0xA31A #define T_UTF_32_YI_SYLLABLE_SEX 0xA31B #define T_UTF_32_YI_SYLLABLE_SE 0xA31C #define T_UTF_32_YI_SYLLABLE_SEP 0xA31D #define T_UTF_32_YI_SYLLABLE_SUT 0xA31E #define T_UTF_32_YI_SYLLABLE_SUX 0xA31F #define T_UTF_32_YI_SYLLABLE_SU 0xA320 #define T_UTF_32_YI_SYLLABLE_SUP 0xA321 #define T_UTF_32_YI_SYLLABLE_SURX 0xA322 #define T_UTF_32_YI_SYLLABLE_SUR 0xA323 #define T_UTF_32_YI_SYLLABLE_SYT 0xA324 #define T_UTF_32_YI_SYLLABLE_SYX 0xA325 #define T_UTF_32_YI_SYLLABLE_SY 0xA326 #define T_UTF_32_YI_SYLLABLE_SYP 0xA327 #define T_UTF_32_YI_SYLLABLE_SYRX 0xA328 #define T_UTF_32_YI_SYLLABLE_SYR 0xA329 #define T_UTF_32_YI_SYLLABLE_SSIT 0xA32A #define T_UTF_32_YI_SYLLABLE_SSIX 0xA32B #define T_UTF_32_YI_SYLLABLE_SSI 0xA32C #define T_UTF_32_YI_SYLLABLE_SSIP 0xA32D #define T_UTF_32_YI_SYLLABLE_SSIEX 0xA32E #define T_UTF_32_YI_SYLLABLE_SSIE 0xA32F #define T_UTF_32_YI_SYLLABLE_SSIEP 0xA330 #define T_UTF_32_YI_SYLLABLE_SSAT 0xA331 #define T_UTF_32_YI_SYLLABLE_SSAX 0xA332 #define T_UTF_32_YI_SYLLABLE_SSA 0xA333 #define T_UTF_32_YI_SYLLABLE_SSAP 0xA334 #define T_UTF_32_YI_SYLLABLE_SSOT 0xA335 #define T_UTF_32_YI_SYLLABLE_SSOX 0xA336 #define T_UTF_32_YI_SYLLABLE_SSO 0xA337 #define T_UTF_32_YI_SYLLABLE_SSOP 0xA338 #define T_UTF_32_YI_SYLLABLE_SSEX 0xA339 #define T_UTF_32_YI_SYLLABLE_SSE 0xA33A #define T_UTF_32_YI_SYLLABLE_SSEP 0xA33B #define T_UTF_32_YI_SYLLABLE_SSUT 0xA33C #define T_UTF_32_YI_SYLLABLE_SSUX 0xA33D #define T_UTF_32_YI_SYLLABLE_SSU 0xA33E #define T_UTF_32_YI_SYLLABLE_SSUP 0xA33F #define T_UTF_32_YI_SYLLABLE_SSYT 0xA340 #define T_UTF_32_YI_SYLLABLE_SSYX 0xA341 #define T_UTF_32_YI_SYLLABLE_SSY 0xA342 #define T_UTF_32_YI_SYLLABLE_SSYP 0xA343 #define T_UTF_32_YI_SYLLABLE_SSYRX 0xA344 #define T_UTF_32_YI_SYLLABLE_SSYR 0xA345 #define T_UTF_32_YI_SYLLABLE_ZHAT 0xA346 #define T_UTF_32_YI_SYLLABLE_ZHAX 0xA347 #define T_UTF_32_YI_SYLLABLE_ZHA 0xA348 #define T_UTF_32_YI_SYLLABLE_ZHAP 0xA349 #define T_UTF_32_YI_SYLLABLE_ZHUOX 0xA34A #define T_UTF_32_YI_SYLLABLE_ZHUO 0xA34B #define T_UTF_32_YI_SYLLABLE_ZHUOP 0xA34C #define T_UTF_32_YI_SYLLABLE_ZHOT 0xA34D #define T_UTF_32_YI_SYLLABLE_ZHOX 0xA34E #define T_UTF_32_YI_SYLLABLE_ZHO 0xA34F #define T_UTF_32_YI_SYLLABLE_ZHOP 0xA350 #define T_UTF_32_YI_SYLLABLE_ZHET 0xA351 #define T_UTF_32_YI_SYLLABLE_ZHEX 0xA352 #define T_UTF_32_YI_SYLLABLE_ZHE 0xA353 #define T_UTF_32_YI_SYLLABLE_ZHEP 0xA354 #define T_UTF_32_YI_SYLLABLE_ZHUT 0xA355 #define T_UTF_32_YI_SYLLABLE_ZHUX 0xA356 #define T_UTF_32_YI_SYLLABLE_ZHU 0xA357 #define T_UTF_32_YI_SYLLABLE_ZHUP 0xA358 #define T_UTF_32_YI_SYLLABLE_ZHURX 0xA359 #define T_UTF_32_YI_SYLLABLE_ZHUR 0xA35A #define T_UTF_32_YI_SYLLABLE_ZHYT 0xA35B #define T_UTF_32_YI_SYLLABLE_ZHYX 0xA35C #define T_UTF_32_YI_SYLLABLE_ZHY 0xA35D #define T_UTF_32_YI_SYLLABLE_ZHYP 0xA35E #define T_UTF_32_YI_SYLLABLE_ZHYRX 0xA35F #define T_UTF_32_YI_SYLLABLE_ZHYR 0xA360 #define T_UTF_32_YI_SYLLABLE_CHAT 0xA361 #define T_UTF_32_YI_SYLLABLE_CHAX 0xA362 #define T_UTF_32_YI_SYLLABLE_CHA 0xA363 #define T_UTF_32_YI_SYLLABLE_CHAP 0xA364 #define T_UTF_32_YI_SYLLABLE_CHUOT 0xA365 #define T_UTF_32_YI_SYLLABLE_CHUOX 0xA366 #define T_UTF_32_YI_SYLLABLE_CHUO 0xA367 #define T_UTF_32_YI_SYLLABLE_CHUOP 0xA368 #define T_UTF_32_YI_SYLLABLE_CHOT 0xA369 #define T_UTF_32_YI_SYLLABLE_CHOX 0xA36A #define T_UTF_32_YI_SYLLABLE_CHO 0xA36B #define T_UTF_32_YI_SYLLABLE_CHOP 0xA36C #define T_UTF_32_YI_SYLLABLE_CHET 0xA36D #define T_UTF_32_YI_SYLLABLE_CHEX 0xA36E #define T_UTF_32_YI_SYLLABLE_CHE 0xA36F #define T_UTF_32_YI_SYLLABLE_CHEP 0xA370 #define T_UTF_32_YI_SYLLABLE_CHUX 0xA371 #define T_UTF_32_YI_SYLLABLE_CHU 0xA372 #define T_UTF_32_YI_SYLLABLE_CHUP 0xA373 #define T_UTF_32_YI_SYLLABLE_CHURX 0xA374 #define T_UTF_32_YI_SYLLABLE_CHUR 0xA375 #define T_UTF_32_YI_SYLLABLE_CHYT 0xA376 #define T_UTF_32_YI_SYLLABLE_CHYX 0xA377 #define T_UTF_32_YI_SYLLABLE_CHY 0xA378 #define T_UTF_32_YI_SYLLABLE_CHYP 0xA379 #define T_UTF_32_YI_SYLLABLE_CHYRX 0xA37A #define T_UTF_32_YI_SYLLABLE_CHYR 0xA37B #define T_UTF_32_YI_SYLLABLE_RRAX 0xA37C #define T_UTF_32_YI_SYLLABLE_RRA 0xA37D #define T_UTF_32_YI_SYLLABLE_RRUOX 0xA37E #define T_UTF_32_YI_SYLLABLE_RRUO 0xA37F #define T_UTF_32_YI_SYLLABLE_RROT 0xA380 #define T_UTF_32_YI_SYLLABLE_RROX 0xA381 #define T_UTF_32_YI_SYLLABLE_RRO 0xA382 #define T_UTF_32_YI_SYLLABLE_RROP 0xA383 #define T_UTF_32_YI_SYLLABLE_RRET 0xA384 #define T_UTF_32_YI_SYLLABLE_RREX 0xA385 #define T_UTF_32_YI_SYLLABLE_RRE 0xA386 #define T_UTF_32_YI_SYLLABLE_RREP 0xA387 #define T_UTF_32_YI_SYLLABLE_RRUT 0xA388 #define T_UTF_32_YI_SYLLABLE_RRUX 0xA389 #define T_UTF_32_YI_SYLLABLE_RRU 0xA38A #define T_UTF_32_YI_SYLLABLE_RRUP 0xA38B #define T_UTF_32_YI_SYLLABLE_RRURX 0xA38C #define T_UTF_32_YI_SYLLABLE_RRUR 0xA38D #define T_UTF_32_YI_SYLLABLE_RRYT 0xA38E #define T_UTF_32_YI_SYLLABLE_RRYX 0xA38F #define T_UTF_32_YI_SYLLABLE_RRY 0xA390 #define T_UTF_32_YI_SYLLABLE_RRYP 0xA391 #define T_UTF_32_YI_SYLLABLE_RRYRX 0xA392 #define T_UTF_32_YI_SYLLABLE_RRYR 0xA393 #define T_UTF_32_YI_SYLLABLE_NRAT 0xA394 #define T_UTF_32_YI_SYLLABLE_NRAX 0xA395 #define T_UTF_32_YI_SYLLABLE_NRA 0xA396 #define T_UTF_32_YI_SYLLABLE_NRAP 0xA397 #define T_UTF_32_YI_SYLLABLE_NROX 0xA398 #define T_UTF_32_YI_SYLLABLE_NRO 0xA399 #define T_UTF_32_YI_SYLLABLE_NROP 0xA39A #define T_UTF_32_YI_SYLLABLE_NRET 0xA39B #define T_UTF_32_YI_SYLLABLE_NREX 0xA39C #define T_UTF_32_YI_SYLLABLE_NRE 0xA39D #define T_UTF_32_YI_SYLLABLE_NREP 0xA39E #define T_UTF_32_YI_SYLLABLE_NRUT 0xA39F #define T_UTF_32_YI_SYLLABLE_NRUX 0xA3A0 #define T_UTF_32_YI_SYLLABLE_NRU 0xA3A1 #define T_UTF_32_YI_SYLLABLE_NRUP 0xA3A2 #define T_UTF_32_YI_SYLLABLE_NRURX 0xA3A3 #define T_UTF_32_YI_SYLLABLE_NRUR 0xA3A4 #define T_UTF_32_YI_SYLLABLE_NRYT 0xA3A5 #define T_UTF_32_YI_SYLLABLE_NRYX 0xA3A6 #define T_UTF_32_YI_SYLLABLE_NRY 0xA3A7 #define T_UTF_32_YI_SYLLABLE_NRYP 0xA3A8 #define T_UTF_32_YI_SYLLABLE_NRYRX 0xA3A9 #define T_UTF_32_YI_SYLLABLE_NRYR 0xA3AA #define T_UTF_32_YI_SYLLABLE_SHAT 0xA3AB #define T_UTF_32_YI_SYLLABLE_SHAX 0xA3AC #define T_UTF_32_YI_SYLLABLE_SHA 0xA3AD #define T_UTF_32_YI_SYLLABLE_SHAP 0xA3AE #define T_UTF_32_YI_SYLLABLE_SHUOX 0xA3AF #define T_UTF_32_YI_SYLLABLE_SHUO 0xA3B0 #define T_UTF_32_YI_SYLLABLE_SHUOP 0xA3B1 #define T_UTF_32_YI_SYLLABLE_SHOT 0xA3B2 #define T_UTF_32_YI_SYLLABLE_SHOX 0xA3B3 #define T_UTF_32_YI_SYLLABLE_SHO 0xA3B4 #define T_UTF_32_YI_SYLLABLE_SHOP 0xA3B5 #define T_UTF_32_YI_SYLLABLE_SHET 0xA3B6 #define T_UTF_32_YI_SYLLABLE_SHEX 0xA3B7 #define T_UTF_32_YI_SYLLABLE_SHE 0xA3B8 #define T_UTF_32_YI_SYLLABLE_SHEP 0xA3B9 #define T_UTF_32_YI_SYLLABLE_SHUT 0xA3BA #define T_UTF_32_YI_SYLLABLE_SHUX 0xA3BB #define T_UTF_32_YI_SYLLABLE_SHU 0xA3BC #define T_UTF_32_YI_SYLLABLE_SHUP 0xA3BD #define T_UTF_32_YI_SYLLABLE_SHURX 0xA3BE #define T_UTF_32_YI_SYLLABLE_SHUR 0xA3BF #define T_UTF_32_YI_SYLLABLE_SHYT 0xA3C0 #define T_UTF_32_YI_SYLLABLE_SHYX 0xA3C1 #define T_UTF_32_YI_SYLLABLE_SHY 0xA3C2 #define T_UTF_32_YI_SYLLABLE_SHYP 0xA3C3 #define T_UTF_32_YI_SYLLABLE_SHYRX 0xA3C4 #define T_UTF_32_YI_SYLLABLE_SHYR 0xA3C5 #define T_UTF_32_YI_SYLLABLE_RAT 0xA3C6 #define T_UTF_32_YI_SYLLABLE_RAX 0xA3C7 #define T_UTF_32_YI_SYLLABLE_RA 0xA3C8 #define T_UTF_32_YI_SYLLABLE_RAP 0xA3C9 #define T_UTF_32_YI_SYLLABLE_RUOX 0xA3CA #define T_UTF_32_YI_SYLLABLE_RUO 0xA3CB #define T_UTF_32_YI_SYLLABLE_RUOP 0xA3CC #define T_UTF_32_YI_SYLLABLE_ROT 0xA3CD #define T_UTF_32_YI_SYLLABLE_ROX 0xA3CE #define T_UTF_32_YI_SYLLABLE_RO 0xA3CF #define T_UTF_32_YI_SYLLABLE_ROP 0xA3D0 #define T_UTF_32_YI_SYLLABLE_REX 0xA3D1 #define T_UTF_32_YI_SYLLABLE_RE 0xA3D2 #define T_UTF_32_YI_SYLLABLE_REP 0xA3D3 #define T_UTF_32_YI_SYLLABLE_RUT 0xA3D4 #define T_UTF_32_YI_SYLLABLE_RUX 0xA3D5 #define T_UTF_32_YI_SYLLABLE_RU 0xA3D6 #define T_UTF_32_YI_SYLLABLE_RUP 0xA3D7 #define T_UTF_32_YI_SYLLABLE_RURX 0xA3D8 #define T_UTF_32_YI_SYLLABLE_RUR 0xA3D9 #define T_UTF_32_YI_SYLLABLE_RYT 0xA3DA #define T_UTF_32_YI_SYLLABLE_RYX 0xA3DB #define T_UTF_32_YI_SYLLABLE_RY 0xA3DC #define T_UTF_32_YI_SYLLABLE_RYP 0xA3DD #define T_UTF_32_YI_SYLLABLE_RYRX 0xA3DE #define T_UTF_32_YI_SYLLABLE_RYR 0xA3DF #define T_UTF_32_YI_SYLLABLE_JIT 0xA3E0 #define T_UTF_32_YI_SYLLABLE_JIX 0xA3E1 #define T_UTF_32_YI_SYLLABLE_JI 0xA3E2 #define T_UTF_32_YI_SYLLABLE_JIP 0xA3E3 #define T_UTF_32_YI_SYLLABLE_JIET 0xA3E4 #define T_UTF_32_YI_SYLLABLE_JIEX 0xA3E5 #define T_UTF_32_YI_SYLLABLE_JIE 0xA3E6 #define T_UTF_32_YI_SYLLABLE_JIEP 0xA3E7 #define T_UTF_32_YI_SYLLABLE_JUOT 0xA3E8 #define T_UTF_32_YI_SYLLABLE_JUOX 0xA3E9 #define T_UTF_32_YI_SYLLABLE_JUO 0xA3EA #define T_UTF_32_YI_SYLLABLE_JUOP 0xA3EB #define T_UTF_32_YI_SYLLABLE_JOT 0xA3EC #define T_UTF_32_YI_SYLLABLE_JOX 0xA3ED #define T_UTF_32_YI_SYLLABLE_JO 0xA3EE #define T_UTF_32_YI_SYLLABLE_JOP 0xA3EF #define T_UTF_32_YI_SYLLABLE_JUT 0xA3F0 #define T_UTF_32_YI_SYLLABLE_JUX 0xA3F1 #define T_UTF_32_YI_SYLLABLE_JU 0xA3F2 #define T_UTF_32_YI_SYLLABLE_JUP 0xA3F3 #define T_UTF_32_YI_SYLLABLE_JURX 0xA3F4 #define T_UTF_32_YI_SYLLABLE_JUR 0xA3F5 #define T_UTF_32_YI_SYLLABLE_JYT 0xA3F6 #define T_UTF_32_YI_SYLLABLE_JYX 0xA3F7 #define T_UTF_32_YI_SYLLABLE_JY 0xA3F8 #define T_UTF_32_YI_SYLLABLE_JYP 0xA3F9 #define T_UTF_32_YI_SYLLABLE_JYRX 0xA3FA #define T_UTF_32_YI_SYLLABLE_JYR 0xA3FB #define T_UTF_32_YI_SYLLABLE_QIT 0xA3FC #define T_UTF_32_YI_SYLLABLE_QIX 0xA3FD #define T_UTF_32_YI_SYLLABLE_QI 0xA3FE #define T_UTF_32_YI_SYLLABLE_QIP 0xA3FF #define T_UTF_32_YI_SYLLABLE_QIET 0xA400 #define T_UTF_32_YI_SYLLABLE_QIEX 0xA401 #define T_UTF_32_YI_SYLLABLE_QIE 0xA402 #define T_UTF_32_YI_SYLLABLE_QIEP 0xA403 #define T_UTF_32_YI_SYLLABLE_QUOT 0xA404 #define T_UTF_32_YI_SYLLABLE_QUOX 0xA405 #define T_UTF_32_YI_SYLLABLE_QUO 0xA406 #define T_UTF_32_YI_SYLLABLE_QUOP 0xA407 #define T_UTF_32_YI_SYLLABLE_QOT 0xA408 #define T_UTF_32_YI_SYLLABLE_QOX 0xA409 #define T_UTF_32_YI_SYLLABLE_QO 0xA40A #define T_UTF_32_YI_SYLLABLE_QOP 0xA40B #define T_UTF_32_YI_SYLLABLE_QUT 0xA40C #define T_UTF_32_YI_SYLLABLE_QUX 0xA40D #define T_UTF_32_YI_SYLLABLE_QU 0xA40E #define T_UTF_32_YI_SYLLABLE_QUP 0xA40F #define T_UTF_32_YI_SYLLABLE_QURX 0xA410 #define T_UTF_32_YI_SYLLABLE_QUR 0xA411 #define T_UTF_32_YI_SYLLABLE_QYT 0xA412 #define T_UTF_32_YI_SYLLABLE_QYX 0xA413 #define T_UTF_32_YI_SYLLABLE_QY 0xA414 #define T_UTF_32_YI_SYLLABLE_QYP 0xA415 #define T_UTF_32_YI_SYLLABLE_QYRX 0xA416 #define T_UTF_32_YI_SYLLABLE_QYR 0xA417 #define T_UTF_32_YI_SYLLABLE_JJIT 0xA418 #define T_UTF_32_YI_SYLLABLE_JJIX 0xA419 #define T_UTF_32_YI_SYLLABLE_JJI 0xA41A #define T_UTF_32_YI_SYLLABLE_JJIP 0xA41B #define T_UTF_32_YI_SYLLABLE_JJIET 0xA41C #define T_UTF_32_YI_SYLLABLE_JJIEX 0xA41D #define T_UTF_32_YI_SYLLABLE_JJIE 0xA41E #define T_UTF_32_YI_SYLLABLE_JJIEP 0xA41F #define T_UTF_32_YI_SYLLABLE_JJUOX 0xA420 #define T_UTF_32_YI_SYLLABLE_JJUO 0xA421 #define T_UTF_32_YI_SYLLABLE_JJUOP 0xA422 #define T_UTF_32_YI_SYLLABLE_JJOT 0xA423 #define T_UTF_32_YI_SYLLABLE_JJOX 0xA424 #define T_UTF_32_YI_SYLLABLE_JJO 0xA425 #define T_UTF_32_YI_SYLLABLE_JJOP 0xA426 #define T_UTF_32_YI_SYLLABLE_JJUT 0xA427 #define T_UTF_32_YI_SYLLABLE_JJUX 0xA428 #define T_UTF_32_YI_SYLLABLE_JJU 0xA429 #define T_UTF_32_YI_SYLLABLE_JJUP 0xA42A #define T_UTF_32_YI_SYLLABLE_JJURX 0xA42B #define T_UTF_32_YI_SYLLABLE_JJUR 0xA42C #define T_UTF_32_YI_SYLLABLE_JJYT 0xA42D #define T_UTF_32_YI_SYLLABLE_JJYX 0xA42E #define T_UTF_32_YI_SYLLABLE_JJY 0xA42F #define T_UTF_32_YI_SYLLABLE_JJYP 0xA430 #define T_UTF_32_YI_SYLLABLE_NJIT 0xA431 #define T_UTF_32_YI_SYLLABLE_NJIX 0xA432 #define T_UTF_32_YI_SYLLABLE_NJI 0xA433 #define T_UTF_32_YI_SYLLABLE_NJIP 0xA434 #define T_UTF_32_YI_SYLLABLE_NJIET 0xA435 #define T_UTF_32_YI_SYLLABLE_NJIEX 0xA436 #define T_UTF_32_YI_SYLLABLE_NJIE 0xA437 #define T_UTF_32_YI_SYLLABLE_NJIEP 0xA438 #define T_UTF_32_YI_SYLLABLE_NJUOX 0xA439 #define T_UTF_32_YI_SYLLABLE_NJUO 0xA43A #define T_UTF_32_YI_SYLLABLE_NJOT 0xA43B #define T_UTF_32_YI_SYLLABLE_NJOX 0xA43C #define T_UTF_32_YI_SYLLABLE_NJO 0xA43D #define T_UTF_32_YI_SYLLABLE_NJOP 0xA43E #define T_UTF_32_YI_SYLLABLE_NJUX 0xA43F #define T_UTF_32_YI_SYLLABLE_NJU 0xA440 #define T_UTF_32_YI_SYLLABLE_NJUP 0xA441 #define T_UTF_32_YI_SYLLABLE_NJURX 0xA442 #define T_UTF_32_YI_SYLLABLE_NJUR 0xA443 #define T_UTF_32_YI_SYLLABLE_NJYT 0xA444 #define T_UTF_32_YI_SYLLABLE_NJYX 0xA445 #define T_UTF_32_YI_SYLLABLE_NJY 0xA446 #define T_UTF_32_YI_SYLLABLE_NJYP 0xA447 #define T_UTF_32_YI_SYLLABLE_NJYRX 0xA448 #define T_UTF_32_YI_SYLLABLE_NJYR 0xA449 #define T_UTF_32_YI_SYLLABLE_NYIT 0xA44A #define T_UTF_32_YI_SYLLABLE_NYIX 0xA44B #define T_UTF_32_YI_SYLLABLE_NYI 0xA44C #define T_UTF_32_YI_SYLLABLE_NYIP 0xA44D #define T_UTF_32_YI_SYLLABLE_NYIET 0xA44E #define T_UTF_32_YI_SYLLABLE_NYIEX 0xA44F #define T_UTF_32_YI_SYLLABLE_NYIE 0xA450 #define T_UTF_32_YI_SYLLABLE_NYIEP 0xA451 #define T_UTF_32_YI_SYLLABLE_NYUOX 0xA452 #define T_UTF_32_YI_SYLLABLE_NYUO 0xA453 #define T_UTF_32_YI_SYLLABLE_NYUOP 0xA454 #define T_UTF_32_YI_SYLLABLE_NYOT 0xA455 #define T_UTF_32_YI_SYLLABLE_NYOX 0xA456 #define T_UTF_32_YI_SYLLABLE_NYO 0xA457 #define T_UTF_32_YI_SYLLABLE_NYOP 0xA458 #define T_UTF_32_YI_SYLLABLE_NYUT 0xA459 #define T_UTF_32_YI_SYLLABLE_NYUX 0xA45A #define T_UTF_32_YI_SYLLABLE_NYU 0xA45B #define T_UTF_32_YI_SYLLABLE_NYUP 0xA45C #define T_UTF_32_YI_SYLLABLE_XIT 0xA45D #define T_UTF_32_YI_SYLLABLE_XIX 0xA45E #define T_UTF_32_YI_SYLLABLE_XI 0xA45F #define T_UTF_32_YI_SYLLABLE_XIP 0xA460 #define T_UTF_32_YI_SYLLABLE_XIET 0xA461 #define T_UTF_32_YI_SYLLABLE_XIEX 0xA462 #define T_UTF_32_YI_SYLLABLE_XIE 0xA463 #define T_UTF_32_YI_SYLLABLE_XIEP 0xA464 #define T_UTF_32_YI_SYLLABLE_XUOX 0xA465 #define T_UTF_32_YI_SYLLABLE_XUO 0xA466 #define T_UTF_32_YI_SYLLABLE_XOT 0xA467 #define T_UTF_32_YI_SYLLABLE_XOX 0xA468 #define T_UTF_32_YI_SYLLABLE_XO 0xA469 #define T_UTF_32_YI_SYLLABLE_XOP 0xA46A #define T_UTF_32_YI_SYLLABLE_XYT 0xA46B #define T_UTF_32_YI_SYLLABLE_XYX 0xA46C #define T_UTF_32_YI_SYLLABLE_XY 0xA46D #define T_UTF_32_YI_SYLLABLE_XYP 0xA46E #define T_UTF_32_YI_SYLLABLE_XYRX 0xA46F #define T_UTF_32_YI_SYLLABLE_XYR 0xA470 #define T_UTF_32_YI_SYLLABLE_YIT 0xA471 #define T_UTF_32_YI_SYLLABLE_YIX 0xA472 #define T_UTF_32_YI_SYLLABLE_YI 0xA473 #define T_UTF_32_YI_SYLLABLE_YIP 0xA474 #define T_UTF_32_YI_SYLLABLE_YIET 0xA475 #define T_UTF_32_YI_SYLLABLE_YIEX 0xA476 #define T_UTF_32_YI_SYLLABLE_YIE 0xA477 #define T_UTF_32_YI_SYLLABLE_YIEP 0xA478 #define T_UTF_32_YI_SYLLABLE_YUOT 0xA479 #define T_UTF_32_YI_SYLLABLE_YUOX 0xA47A #define T_UTF_32_YI_SYLLABLE_YUO 0xA47B #define T_UTF_32_YI_SYLLABLE_YUOP 0xA47C #define T_UTF_32_YI_SYLLABLE_YOT 0xA47D #define T_UTF_32_YI_SYLLABLE_YOX 0xA47E #define T_UTF_32_YI_SYLLABLE_YO 0xA47F #define T_UTF_32_YI_SYLLABLE_YOP 0xA480 #define T_UTF_32_YI_SYLLABLE_YUT 0xA481 #define T_UTF_32_YI_SYLLABLE_YUX 0xA482 #define T_UTF_32_YI_SYLLABLE_YU 0xA483 #define T_UTF_32_YI_SYLLABLE_YUP 0xA484 #define T_UTF_32_YI_SYLLABLE_YURX 0xA485 #define T_UTF_32_YI_SYLLABLE_YUR 0xA486 #define T_UTF_32_YI_SYLLABLE_YYT 0xA487 #define T_UTF_32_YI_SYLLABLE_YYX 0xA488 #define T_UTF_32_YI_SYLLABLE_YY 0xA489 #define T_UTF_32_YI_SYLLABLE_YYP 0xA48A #define T_UTF_32_YI_SYLLABLE_YYRX 0xA48B #define T_UTF_32_YI_SYLLABLE_YYR 0xA48C #define T_UTF_32_YI_RADICAL_QOT 0xA490 #define T_UTF_32_YI_RADICAL_LI 0xA491 #define T_UTF_32_YI_RADICAL_KIT 0xA492 #define T_UTF_32_YI_RADICAL_NYIP 0xA493 #define T_UTF_32_YI_RADICAL_CYP 0xA494 #define T_UTF_32_YI_RADICAL_SSI 0xA495 #define T_UTF_32_YI_RADICAL_GGOP 0xA496 #define T_UTF_32_YI_RADICAL_GEP 0xA497 #define T_UTF_32_YI_RADICAL_MI 0xA498 #define T_UTF_32_YI_RADICAL_HXIT 0xA499 #define T_UTF_32_YI_RADICAL_LYR 0xA49A #define T_UTF_32_YI_RADICAL_BBUT 0xA49B #define T_UTF_32_YI_RADICAL_MOP 0xA49C #define T_UTF_32_YI_RADICAL_YO 0xA49D #define T_UTF_32_YI_RADICAL_PUT 0xA49E #define T_UTF_32_YI_RADICAL_HXUO 0xA49F #define T_UTF_32_YI_RADICAL_TAT 0xA4A0 #define T_UTF_32_YI_RADICAL_GA 0xA4A1 #define T_UTF_32_YI_RADICAL_ZUP 0xA4A2 #define T_UTF_32_YI_RADICAL_CYT 0xA4A3 #define T_UTF_32_YI_RADICAL_DDUR 0xA4A4 #define T_UTF_32_YI_RADICAL_BUR 0xA4A5 #define T_UTF_32_YI_RADICAL_GGUO 0xA4A6 #define T_UTF_32_YI_RADICAL_NYOP 0xA4A7 #define T_UTF_32_YI_RADICAL_TU 0xA4A8 #define T_UTF_32_YI_RADICAL_OP 0xA4A9 #define T_UTF_32_YI_RADICAL_JJUT 0xA4AA #define T_UTF_32_YI_RADICAL_ZOT 0xA4AB #define T_UTF_32_YI_RADICAL_PYT 0xA4AC #define T_UTF_32_YI_RADICAL_HMO 0xA4AD #define T_UTF_32_YI_RADICAL_YIT 0xA4AE #define T_UTF_32_YI_RADICAL_VUR 0xA4AF #define T_UTF_32_YI_RADICAL_SHY 0xA4B0 #define T_UTF_32_YI_RADICAL_VEP 0xA4B1 #define T_UTF_32_YI_RADICAL_ZA 0xA4B2 #define T_UTF_32_YI_RADICAL_JO 0xA4B3 #define T_UTF_32_YI_RADICAL_NZUP 0xA4B4 #define T_UTF_32_YI_RADICAL_JJY 0xA4B5 #define T_UTF_32_YI_RADICAL_GOT 0xA4B6 #define T_UTF_32_YI_RADICAL_JJIE 0xA4B7 #define T_UTF_32_YI_RADICAL_WO 0xA4B8 #define T_UTF_32_YI_RADICAL_DU 0xA4B9 #define T_UTF_32_YI_RADICAL_SHUR 0xA4BA #define T_UTF_32_YI_RADICAL_LIE 0xA4BB #define T_UTF_32_YI_RADICAL_CY 0xA4BC #define T_UTF_32_YI_RADICAL_CUOP 0xA4BD #define T_UTF_32_YI_RADICAL_CIP 0xA4BE #define T_UTF_32_YI_RADICAL_HXOP 0xA4BF #define T_UTF_32_YI_RADICAL_SHAT 0xA4C0 #define T_UTF_32_YI_RADICAL_ZUR 0xA4C1 #define T_UTF_32_YI_RADICAL_SHOP 0xA4C2 #define T_UTF_32_YI_RADICAL_CHE 0xA4C3 #define T_UTF_32_YI_RADICAL_ZZIET 0xA4C4 #define T_UTF_32_YI_RADICAL_NBIE 0xA4C5 #define T_UTF_32_YI_RADICAL_KE 0xA4C6 #define T_UTF_32_LISU_LETTER_BA 0xA4D0 #define T_UTF_32_LISU_LETTER_PA 0xA4D1 #define T_UTF_32_LISU_LETTER_PHA 0xA4D2 #define T_UTF_32_LISU_LETTER_DA 0xA4D3 #define T_UTF_32_LISU_LETTER_TA 0xA4D4 #define T_UTF_32_LISU_LETTER_THA 0xA4D5 #define T_UTF_32_LISU_LETTER_GA 0xA4D6 #define T_UTF_32_LISU_LETTER_KA 0xA4D7 #define T_UTF_32_LISU_LETTER_KHA 0xA4D8 #define T_UTF_32_LISU_LETTER_JA 0xA4D9 #define T_UTF_32_LISU_LETTER_CA 0xA4DA #define T_UTF_32_LISU_LETTER_CHA 0xA4DB #define T_UTF_32_LISU_LETTER_DZA 0xA4DC #define T_UTF_32_LISU_LETTER_TSA 0xA4DD #define T_UTF_32_LISU_LETTER_TSHA 0xA4DE #define T_UTF_32_LISU_LETTER_MA 0xA4DF #define T_UTF_32_LISU_LETTER_NA 0xA4E0 #define T_UTF_32_LISU_LETTER_LA 0xA4E1 #define T_UTF_32_LISU_LETTER_SA 0xA4E2 #define T_UTF_32_LISU_LETTER_ZHA 0xA4E3 #define T_UTF_32_LISU_LETTER_ZA 0xA4E4 #define T_UTF_32_LISU_LETTER_NGA 0xA4E5 #define T_UTF_32_LISU_LETTER_HA 0xA4E6 #define T_UTF_32_LISU_LETTER_XA 0xA4E7 #define T_UTF_32_LISU_LETTER_HHA 0xA4E8 #define T_UTF_32_LISU_LETTER_FA 0xA4E9 #define T_UTF_32_LISU_LETTER_WA 0xA4EA #define T_UTF_32_LISU_LETTER_SHA 0xA4EB #define T_UTF_32_LISU_LETTER_YA 0xA4EC #define T_UTF_32_LISU_LETTER_GHA 0xA4ED #define T_UTF_32_LISU_LETTER_A 0xA4EE #define T_UTF_32_LISU_LETTER_AE 0xA4EF #define T_UTF_32_LISU_LETTER_E 0xA4F0 #define T_UTF_32_LISU_LETTER_EU 0xA4F1 #define T_UTF_32_LISU_LETTER_I 0xA4F2 #define T_UTF_32_LISU_LETTER_O 0xA4F3 #define T_UTF_32_LISU_LETTER_U 0xA4F4 #define T_UTF_32_LISU_LETTER_UE 0xA4F5 #define T_UTF_32_LISU_LETTER_UH 0xA4F6 #define T_UTF_32_LISU_LETTER_OE 0xA4F7 #define T_UTF_32_LISU_LETTER_TONE_MYA_TI 0xA4F8 #define T_UTF_32_LISU_LETTER_TONE_NA_PO 0xA4F9 #define T_UTF_32_LISU_LETTER_TONE_MYA_CYA 0xA4FA #define T_UTF_32_LISU_LETTER_TONE_MYA_BO 0xA4FB #define T_UTF_32_LISU_LETTER_TONE_MYA_NA 0xA4FC #define T_UTF_32_LISU_LETTER_TONE_MYA_JEU 0xA4FD #define T_UTF_32_LISU_PUNCTUATION_COMMA 0xA4FE #define T_UTF_32_LISU_PUNCTUATION_FULL_STOP 0xA4FF #define T_UTF_32_VAI_SYLLABLE_EE 0xA500 #define T_UTF_32_VAI_SYLLABLE_EEN 0xA501 #define T_UTF_32_VAI_SYLLABLE_HEE 0xA502 #define T_UTF_32_VAI_SYLLABLE_WEE 0xA503 #define T_UTF_32_VAI_SYLLABLE_WEEN 0xA504 #define T_UTF_32_VAI_SYLLABLE_PEE 0xA505 #define T_UTF_32_VAI_SYLLABLE_BHEE 0xA506 #define T_UTF_32_VAI_SYLLABLE_BEE 0xA507 #define T_UTF_32_VAI_SYLLABLE_MBEE 0xA508 #define T_UTF_32_VAI_SYLLABLE_KPEE 0xA509 #define T_UTF_32_VAI_SYLLABLE_MGBEE 0xA50A #define T_UTF_32_VAI_SYLLABLE_GBEE 0xA50B #define T_UTF_32_VAI_SYLLABLE_FEE 0xA50C #define T_UTF_32_VAI_SYLLABLE_VEE 0xA50D #define T_UTF_32_VAI_SYLLABLE_TEE 0xA50E #define T_UTF_32_VAI_SYLLABLE_THEE 0xA50F #define T_UTF_32_VAI_SYLLABLE_DHEE 0xA510 #define T_UTF_32_VAI_SYLLABLE_DHHEE 0xA511 #define T_UTF_32_VAI_SYLLABLE_LEE 0xA512 #define T_UTF_32_VAI_SYLLABLE_REE 0xA513 #define T_UTF_32_VAI_SYLLABLE_DEE 0xA514 #define T_UTF_32_VAI_SYLLABLE_NDEE 0xA515 #define T_UTF_32_VAI_SYLLABLE_SEE 0xA516 #define T_UTF_32_VAI_SYLLABLE_SHEE 0xA517 #define T_UTF_32_VAI_SYLLABLE_ZEE 0xA518 #define T_UTF_32_VAI_SYLLABLE_ZHEE 0xA519 #define T_UTF_32_VAI_SYLLABLE_CEE 0xA51A #define T_UTF_32_VAI_SYLLABLE_JEE 0xA51B #define T_UTF_32_VAI_SYLLABLE_NJEE 0xA51C #define T_UTF_32_VAI_SYLLABLE_YEE 0xA51D #define T_UTF_32_VAI_SYLLABLE_KEE 0xA51E #define T_UTF_32_VAI_SYLLABLE_NGGEE 0xA51F #define T_UTF_32_VAI_SYLLABLE_GEE 0xA520 #define T_UTF_32_VAI_SYLLABLE_MEE 0xA521 #define T_UTF_32_VAI_SYLLABLE_NEE 0xA522 #define T_UTF_32_VAI_SYLLABLE_NYEE 0xA523 #define T_UTF_32_VAI_SYLLABLE_I 0xA524 #define T_UTF_32_VAI_SYLLABLE_IN 0xA525 #define T_UTF_32_VAI_SYLLABLE_HI 0xA526 #define T_UTF_32_VAI_SYLLABLE_HIN 0xA527 #define T_UTF_32_VAI_SYLLABLE_WI 0xA528 #define T_UTF_32_VAI_SYLLABLE_WIN 0xA529 #define T_UTF_32_VAI_SYLLABLE_PI 0xA52A #define T_UTF_32_VAI_SYLLABLE_BHI 0xA52B #define T_UTF_32_VAI_SYLLABLE_BI 0xA52C #define T_UTF_32_VAI_SYLLABLE_MBI 0xA52D #define T_UTF_32_VAI_SYLLABLE_KPI 0xA52E #define T_UTF_32_VAI_SYLLABLE_MGBI 0xA52F #define T_UTF_32_VAI_SYLLABLE_GBI 0xA530 #define T_UTF_32_VAI_SYLLABLE_FI 0xA531 #define T_UTF_32_VAI_SYLLABLE_VI 0xA532 #define T_UTF_32_VAI_SYLLABLE_TI 0xA533 #define T_UTF_32_VAI_SYLLABLE_THI 0xA534 #define T_UTF_32_VAI_SYLLABLE_DHI 0xA535 #define T_UTF_32_VAI_SYLLABLE_DHHI 0xA536 #define T_UTF_32_VAI_SYLLABLE_LI 0xA537 #define T_UTF_32_VAI_SYLLABLE_RI 0xA538 #define T_UTF_32_VAI_SYLLABLE_DI 0xA539 #define T_UTF_32_VAI_SYLLABLE_NDI 0xA53A #define T_UTF_32_VAI_SYLLABLE_SI 0xA53B #define T_UTF_32_VAI_SYLLABLE_SHI 0xA53C #define T_UTF_32_VAI_SYLLABLE_ZI 0xA53D #define T_UTF_32_VAI_SYLLABLE_ZHI 0xA53E #define T_UTF_32_VAI_SYLLABLE_CI 0xA53F #define T_UTF_32_VAI_SYLLABLE_JI 0xA540 #define T_UTF_32_VAI_SYLLABLE_NJI 0xA541 #define T_UTF_32_VAI_SYLLABLE_YI 0xA542 #define T_UTF_32_VAI_SYLLABLE_KI 0xA543 #define T_UTF_32_VAI_SYLLABLE_NGGI 0xA544 #define T_UTF_32_VAI_SYLLABLE_GI 0xA545 #define T_UTF_32_VAI_SYLLABLE_MI 0xA546 #define T_UTF_32_VAI_SYLLABLE_NI 0xA547 #define T_UTF_32_VAI_SYLLABLE_NYI 0xA548 #define T_UTF_32_VAI_SYLLABLE_A 0xA549 #define T_UTF_32_VAI_SYLLABLE_AN 0xA54A #define T_UTF_32_VAI_SYLLABLE_NGAN 0xA54B #define T_UTF_32_VAI_SYLLABLE_HA 0xA54C #define T_UTF_32_VAI_SYLLABLE_HAN 0xA54D #define T_UTF_32_VAI_SYLLABLE_WA 0xA54E #define T_UTF_32_VAI_SYLLABLE_WAN 0xA54F #define T_UTF_32_VAI_SYLLABLE_PA 0xA550 #define T_UTF_32_VAI_SYLLABLE_BHA 0xA551 #define T_UTF_32_VAI_SYLLABLE_BA 0xA552 #define T_UTF_32_VAI_SYLLABLE_MBA 0xA553 #define T_UTF_32_VAI_SYLLABLE_KPA 0xA554 #define T_UTF_32_VAI_SYLLABLE_KPAN 0xA555 #define T_UTF_32_VAI_SYLLABLE_MGBA 0xA556 #define T_UTF_32_VAI_SYLLABLE_GBA 0xA557 #define T_UTF_32_VAI_SYLLABLE_FA 0xA558 #define T_UTF_32_VAI_SYLLABLE_VA 0xA559 #define T_UTF_32_VAI_SYLLABLE_TA 0xA55A #define T_UTF_32_VAI_SYLLABLE_THA 0xA55B #define T_UTF_32_VAI_SYLLABLE_DHA 0xA55C #define T_UTF_32_VAI_SYLLABLE_DHHA 0xA55D #define T_UTF_32_VAI_SYLLABLE_LA 0xA55E #define T_UTF_32_VAI_SYLLABLE_RA 0xA55F #define T_UTF_32_VAI_SYLLABLE_DA 0xA560 #define T_UTF_32_VAI_SYLLABLE_NDA 0xA561 #define T_UTF_32_VAI_SYLLABLE_SA 0xA562 #define T_UTF_32_VAI_SYLLABLE_SHA 0xA563 #define T_UTF_32_VAI_SYLLABLE_ZA 0xA564 #define T_UTF_32_VAI_SYLLABLE_ZHA 0xA565 #define T_UTF_32_VAI_SYLLABLE_CA 0xA566 #define T_UTF_32_VAI_SYLLABLE_JA 0xA567 #define T_UTF_32_VAI_SYLLABLE_NJA 0xA568 #define T_UTF_32_VAI_SYLLABLE_YA 0xA569 #define T_UTF_32_VAI_SYLLABLE_KA 0xA56A #define T_UTF_32_VAI_SYLLABLE_KAN 0xA56B #define T_UTF_32_VAI_SYLLABLE_NGGA 0xA56C #define T_UTF_32_VAI_SYLLABLE_GA 0xA56D #define T_UTF_32_VAI_SYLLABLE_MA 0xA56E #define T_UTF_32_VAI_SYLLABLE_NA 0xA56F #define T_UTF_32_VAI_SYLLABLE_NYA 0xA570 #define T_UTF_32_VAI_SYLLABLE_OO 0xA571 #define T_UTF_32_VAI_SYLLABLE_OON 0xA572 #define T_UTF_32_VAI_SYLLABLE_HOO 0xA573 #define T_UTF_32_VAI_SYLLABLE_WOO 0xA574 #define T_UTF_32_VAI_SYLLABLE_WOON 0xA575 #define T_UTF_32_VAI_SYLLABLE_POO 0xA576 #define T_UTF_32_VAI_SYLLABLE_BHOO 0xA577 #define T_UTF_32_VAI_SYLLABLE_BOO 0xA578 #define T_UTF_32_VAI_SYLLABLE_MBOO 0xA579 #define T_UTF_32_VAI_SYLLABLE_KPOO 0xA57A #define T_UTF_32_VAI_SYLLABLE_MGBOO 0xA57B #define T_UTF_32_VAI_SYLLABLE_GBOO 0xA57C #define T_UTF_32_VAI_SYLLABLE_FOO 0xA57D #define T_UTF_32_VAI_SYLLABLE_VOO 0xA57E #define T_UTF_32_VAI_SYLLABLE_TOO 0xA57F #define T_UTF_32_VAI_SYLLABLE_THOO 0xA580 #define T_UTF_32_VAI_SYLLABLE_DHOO 0xA581 #define T_UTF_32_VAI_SYLLABLE_DHHOO 0xA582 #define T_UTF_32_VAI_SYLLABLE_LOO 0xA583 #define T_UTF_32_VAI_SYLLABLE_ROO 0xA584 #define T_UTF_32_VAI_SYLLABLE_DOO 0xA585 #define T_UTF_32_VAI_SYLLABLE_NDOO 0xA586 #define T_UTF_32_VAI_SYLLABLE_SOO 0xA587 #define T_UTF_32_VAI_SYLLABLE_SHOO 0xA588 #define T_UTF_32_VAI_SYLLABLE_ZOO 0xA589 #define T_UTF_32_VAI_SYLLABLE_ZHOO 0xA58A #define T_UTF_32_VAI_SYLLABLE_COO 0xA58B #define T_UTF_32_VAI_SYLLABLE_JOO 0xA58C #define T_UTF_32_VAI_SYLLABLE_NJOO 0xA58D #define T_UTF_32_VAI_SYLLABLE_YOO 0xA58E #define T_UTF_32_VAI_SYLLABLE_KOO 0xA58F #define T_UTF_32_VAI_SYLLABLE_NGGOO 0xA590 #define T_UTF_32_VAI_SYLLABLE_GOO 0xA591 #define T_UTF_32_VAI_SYLLABLE_MOO 0xA592 #define T_UTF_32_VAI_SYLLABLE_NOO 0xA593 #define T_UTF_32_VAI_SYLLABLE_NYOO 0xA594 #define T_UTF_32_VAI_SYLLABLE_U 0xA595 #define T_UTF_32_VAI_SYLLABLE_UN 0xA596 #define T_UTF_32_VAI_SYLLABLE_HU 0xA597 #define T_UTF_32_VAI_SYLLABLE_HUN 0xA598 #define T_UTF_32_VAI_SYLLABLE_WU 0xA599 #define T_UTF_32_VAI_SYLLABLE_WUN 0xA59A #define T_UTF_32_VAI_SYLLABLE_PU 0xA59B #define T_UTF_32_VAI_SYLLABLE_BHU 0xA59C #define T_UTF_32_VAI_SYLLABLE_BU 0xA59D #define T_UTF_32_VAI_SYLLABLE_MBU 0xA59E #define T_UTF_32_VAI_SYLLABLE_KPU 0xA59F #define T_UTF_32_VAI_SYLLABLE_MGBU 0xA5A0 #define T_UTF_32_VAI_SYLLABLE_GBU 0xA5A1 #define T_UTF_32_VAI_SYLLABLE_FU 0xA5A2 #define T_UTF_32_VAI_SYLLABLE_VU 0xA5A3 #define T_UTF_32_VAI_SYLLABLE_TU 0xA5A4 #define T_UTF_32_VAI_SYLLABLE_THU 0xA5A5 #define T_UTF_32_VAI_SYLLABLE_DHU 0xA5A6 #define T_UTF_32_VAI_SYLLABLE_DHHU 0xA5A7 #define T_UTF_32_VAI_SYLLABLE_LU 0xA5A8 #define T_UTF_32_VAI_SYLLABLE_RU 0xA5A9 #define T_UTF_32_VAI_SYLLABLE_DU 0xA5AA #define T_UTF_32_VAI_SYLLABLE_NDU 0xA5AB #define T_UTF_32_VAI_SYLLABLE_SU 0xA5AC #define T_UTF_32_VAI_SYLLABLE_SHU 0xA5AD #define T_UTF_32_VAI_SYLLABLE_ZU 0xA5AE #define T_UTF_32_VAI_SYLLABLE_ZHU 0xA5AF #define T_UTF_32_VAI_SYLLABLE_CU 0xA5B0 #define T_UTF_32_VAI_SYLLABLE_JU 0xA5B1 #define T_UTF_32_VAI_SYLLABLE_NJU 0xA5B2 #define T_UTF_32_VAI_SYLLABLE_YU 0xA5B3 #define T_UTF_32_VAI_SYLLABLE_KU 0xA5B4 #define T_UTF_32_VAI_SYLLABLE_NGGU 0xA5B5 #define T_UTF_32_VAI_SYLLABLE_GU 0xA5B6 #define T_UTF_32_VAI_SYLLABLE_MU 0xA5B7 #define T_UTF_32_VAI_SYLLABLE_NU 0xA5B8 #define T_UTF_32_VAI_SYLLABLE_NYU 0xA5B9 #define T_UTF_32_VAI_SYLLABLE_O 0xA5BA #define T_UTF_32_VAI_SYLLABLE_ON 0xA5BB #define T_UTF_32_VAI_SYLLABLE_NGON 0xA5BC #define T_UTF_32_VAI_SYLLABLE_HO 0xA5BD #define T_UTF_32_VAI_SYLLABLE_HON 0xA5BE #define T_UTF_32_VAI_SYLLABLE_WO 0xA5BF #define T_UTF_32_VAI_SYLLABLE_WON 0xA5C0 #define T_UTF_32_VAI_SYLLABLE_PO 0xA5C1 #define T_UTF_32_VAI_SYLLABLE_BHO 0xA5C2 #define T_UTF_32_VAI_SYLLABLE_BO 0xA5C3 #define T_UTF_32_VAI_SYLLABLE_MBO 0xA5C4 #define T_UTF_32_VAI_SYLLABLE_KPO 0xA5C5 #define T_UTF_32_VAI_SYLLABLE_MGBO 0xA5C6 #define T_UTF_32_VAI_SYLLABLE_GBO 0xA5C7 #define T_UTF_32_VAI_SYLLABLE_GBON 0xA5C8 #define T_UTF_32_VAI_SYLLABLE_FO 0xA5C9 #define T_UTF_32_VAI_SYLLABLE_VO 0xA5CA #define T_UTF_32_VAI_SYLLABLE_TO 0xA5CB #define T_UTF_32_VAI_SYLLABLE_THO 0xA5CC #define T_UTF_32_VAI_SYLLABLE_DHO 0xA5CD #define T_UTF_32_VAI_SYLLABLE_DHHO 0xA5CE #define T_UTF_32_VAI_SYLLABLE_LO 0xA5CF #define T_UTF_32_VAI_SYLLABLE_RO 0xA5D0 #define T_UTF_32_VAI_SYLLABLE_DO 0xA5D1 #define T_UTF_32_VAI_SYLLABLE_NDO 0xA5D2 #define T_UTF_32_VAI_SYLLABLE_SO 0xA5D3 #define T_UTF_32_VAI_SYLLABLE_SHO 0xA5D4 #define T_UTF_32_VAI_SYLLABLE_ZO 0xA5D5 #define T_UTF_32_VAI_SYLLABLE_ZHO 0xA5D6 #define T_UTF_32_VAI_SYLLABLE_CO 0xA5D7 #define T_UTF_32_VAI_SYLLABLE_JO 0xA5D8 #define T_UTF_32_VAI_SYLLABLE_NJO 0xA5D9 #define T_UTF_32_VAI_SYLLABLE_YO 0xA5DA #define T_UTF_32_VAI_SYLLABLE_KO 0xA5DB #define T_UTF_32_VAI_SYLLABLE_NGGO 0xA5DC #define T_UTF_32_VAI_SYLLABLE_GO 0xA5DD #define T_UTF_32_VAI_SYLLABLE_MO 0xA5DE #define T_UTF_32_VAI_SYLLABLE_NO 0xA5DF #define T_UTF_32_VAI_SYLLABLE_NYO 0xA5E0 #define T_UTF_32_VAI_SYLLABLE_E 0xA5E1 #define T_UTF_32_VAI_SYLLABLE_EN 0xA5E2 #define T_UTF_32_VAI_SYLLABLE_NGEN 0xA5E3 #define T_UTF_32_VAI_SYLLABLE_HE 0xA5E4 #define T_UTF_32_VAI_SYLLABLE_HEN 0xA5E5 #define T_UTF_32_VAI_SYLLABLE_WE 0xA5E6 #define T_UTF_32_VAI_SYLLABLE_WEN 0xA5E7 #define T_UTF_32_VAI_SYLLABLE_PE 0xA5E8 #define T_UTF_32_VAI_SYLLABLE_BHE 0xA5E9 #define T_UTF_32_VAI_SYLLABLE_BE 0xA5EA #define T_UTF_32_VAI_SYLLABLE_MBE 0xA5EB #define T_UTF_32_VAI_SYLLABLE_KPE 0xA5EC #define T_UTF_32_VAI_SYLLABLE_KPEN 0xA5ED #define T_UTF_32_VAI_SYLLABLE_MGBE 0xA5EE #define T_UTF_32_VAI_SYLLABLE_GBE 0xA5EF #define T_UTF_32_VAI_SYLLABLE_GBEN 0xA5F0 #define T_UTF_32_VAI_SYLLABLE_FE 0xA5F1 #define T_UTF_32_VAI_SYLLABLE_VE 0xA5F2 #define T_UTF_32_VAI_SYLLABLE_TE 0xA5F3 #define T_UTF_32_VAI_SYLLABLE_THE 0xA5F4 #define T_UTF_32_VAI_SYLLABLE_DHE 0xA5F5 #define T_UTF_32_VAI_SYLLABLE_DHHE 0xA5F6 #define T_UTF_32_VAI_SYLLABLE_LE 0xA5F7 #define T_UTF_32_VAI_SYLLABLE_RE 0xA5F8 #define T_UTF_32_VAI_SYLLABLE_DE 0xA5F9 #define T_UTF_32_VAI_SYLLABLE_NDE 0xA5FA #define T_UTF_32_VAI_SYLLABLE_SE 0xA5FB #define T_UTF_32_VAI_SYLLABLE_SHE 0xA5FC #define T_UTF_32_VAI_SYLLABLE_ZE 0xA5FD #define T_UTF_32_VAI_SYLLABLE_ZHE 0xA5FE #define T_UTF_32_VAI_SYLLABLE_CE 0xA5FF #define T_UTF_32_VAI_SYLLABLE_JE 0xA600 #define T_UTF_32_VAI_SYLLABLE_NJE 0xA601 #define T_UTF_32_VAI_SYLLABLE_YE 0xA602 #define T_UTF_32_VAI_SYLLABLE_KE 0xA603 #define T_UTF_32_VAI_SYLLABLE_NGGE 0xA604 #define T_UTF_32_VAI_SYLLABLE_NGGEN 0xA605 #define T_UTF_32_VAI_SYLLABLE_GE 0xA606 #define T_UTF_32_VAI_SYLLABLE_GEN 0xA607 #define T_UTF_32_VAI_SYLLABLE_ME 0xA608 #define T_UTF_32_VAI_SYLLABLE_NE 0xA609 #define T_UTF_32_VAI_SYLLABLE_NYE 0xA60A #define T_UTF_32_VAI_SYLLABLE_NG 0xA60B #define T_UTF_32_VAI_SYLLABLE_LENGTHENER 0xA60C #define T_UTF_32_VAI_COMMA 0xA60D #define T_UTF_32_VAI_FULL_STOP 0xA60E #define T_UTF_32_VAI_QUESTION_MARK 0xA60F #define T_UTF_32_VAI_SYLLABLE_NDOLE_FA 0xA610 #define T_UTF_32_VAI_SYLLABLE_NDOLE_KA 0xA611 #define T_UTF_32_VAI_SYLLABLE_NDOLE_SOO 0xA612 #define T_UTF_32_VAI_SYMBOL_FEENG 0xA613 #define T_UTF_32_VAI_SYMBOL_KEENG 0xA614 #define T_UTF_32_VAI_SYMBOL_TING 0xA615 #define T_UTF_32_VAI_SYMBOL_NII 0xA616 #define T_UTF_32_VAI_SYMBOL_BANG 0xA617 #define T_UTF_32_VAI_SYMBOL_FAA 0xA618 #define T_UTF_32_VAI_SYMBOL_TAA 0xA619 #define T_UTF_32_VAI_SYMBOL_DANG 0xA61A #define T_UTF_32_VAI_SYMBOL_DOONG 0xA61B #define T_UTF_32_VAI_SYMBOL_KUNG 0xA61C #define T_UTF_32_VAI_SYMBOL_TONG 0xA61D #define T_UTF_32_VAI_SYMBOL_DO_O 0xA61E #define T_UTF_32_VAI_SYMBOL_JONG 0xA61F #define T_UTF_32_VAI_DIGIT_ZERO 0xA620 #define T_UTF_32_VAI_DIGIT_ONE 0xA621 #define T_UTF_32_VAI_DIGIT_TWO 0xA622 #define T_UTF_32_VAI_DIGIT_THREE 0xA623 #define T_UTF_32_VAI_DIGIT_FOUR 0xA624 #define T_UTF_32_VAI_DIGIT_FIVE 0xA625 #define T_UTF_32_VAI_DIGIT_SIX 0xA626 #define T_UTF_32_VAI_DIGIT_SEVEN 0xA627 #define T_UTF_32_VAI_DIGIT_EIGHT 0xA628 #define T_UTF_32_VAI_DIGIT_NINE 0xA629 #define T_UTF_32_VAI_SYLLABLE_NDOLE_MA 0xA62A #define T_UTF_32_VAI_SYLLABLE_NDOLE_DO 0xA62B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ZEMLYA 0xA640 #define T_UTF_32_CYRILLIC_SMALL_LETTER_ZEMLYA 0xA641 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DZELO 0xA642 #define T_UTF_32_CYRILLIC_SMALL_LETTER_DZELO 0xA643 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_REVERSED_DZE 0xA644 #define T_UTF_32_CYRILLIC_SMALL_LETTER_REVERSED_DZE 0xA645 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IOTA 0xA646 #define T_UTF_32_CYRILLIC_SMALL_LETTER_IOTA 0xA647 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DJERV 0xA648 #define T_UTF_32_CYRILLIC_SMALL_LETTER_DJERV 0xA649 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_MONOGRAPH_UK 0xA64A #define T_UTF_32_CYRILLIC_SMALL_LETTER_MONOGRAPH_UK 0xA64B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_BROAD_OMEGA 0xA64C #define T_UTF_32_CYRILLIC_SMALL_LETTER_BROAD_OMEGA 0xA64D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_NEUTRAL_YER 0xA64E #define T_UTF_32_CYRILLIC_SMALL_LETTER_NEUTRAL_YER 0xA64F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_YERU_WITH_BACK_YER 0xA650 #define T_UTF_32_CYRILLIC_SMALL_LETTER_YERU_WITH_BACK_YER 0xA651 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IOTIFIED_YAT 0xA652 #define T_UTF_32_CYRILLIC_SMALL_LETTER_IOTIFIED_YAT 0xA653 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_REVERSED_YU 0xA654 #define T_UTF_32_CYRILLIC_SMALL_LETTER_REVERSED_YU 0xA655 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IOTIFIED_A 0xA656 #define T_UTF_32_CYRILLIC_SMALL_LETTER_IOTIFIED_A 0xA657 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_CLOSED_LITTLE_YUS 0xA658 #define T_UTF_32_CYRILLIC_SMALL_LETTER_CLOSED_LITTLE_YUS 0xA659 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_BLENDED_YUS 0xA65A #define T_UTF_32_CYRILLIC_SMALL_LETTER_BLENDED_YUS 0xA65B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_IOTIFIED_CLOSED_LITTLE_YUS 0xA65C #define T_UTF_32_CYRILLIC_SMALL_LETTER_IOTIFIED_CLOSED_LITTLE_YUS 0xA65D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_YN 0xA65E #define T_UTF_32_CYRILLIC_SMALL_LETTER_YN 0xA65F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_REVERSED_TSE 0xA660 #define T_UTF_32_CYRILLIC_SMALL_LETTER_REVERSED_TSE 0xA661 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SOFT_DE 0xA662 #define T_UTF_32_CYRILLIC_SMALL_LETTER_SOFT_DE 0xA663 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SOFT_EL 0xA664 #define T_UTF_32_CYRILLIC_SMALL_LETTER_SOFT_EL 0xA665 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SOFT_EM 0xA666 #define T_UTF_32_CYRILLIC_SMALL_LETTER_SOFT_EM 0xA667 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_MONOCULAR_O 0xA668 #define T_UTF_32_CYRILLIC_SMALL_LETTER_MONOCULAR_O 0xA669 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_BINOCULAR_O 0xA66A #define T_UTF_32_CYRILLIC_SMALL_LETTER_BINOCULAR_O 0xA66B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DOUBLE_MONOCULAR_O 0xA66C #define T_UTF_32_CYRILLIC_SMALL_LETTER_DOUBLE_MONOCULAR_O 0xA66D #define T_UTF_32_CYRILLIC_LETTER_MULTIOCULAR_O 0xA66E #define T_UTF_32_COMBINING_CYRILLIC_VZMET 0xA66F #define T_UTF_32_COMBINING_CYRILLIC_TEN_MILLIONS_SIGN 0xA670 #define T_UTF_32_COMBINING_CYRILLIC_HUNDRED_MILLIONS_SIGN 0xA671 #define T_UTF_32_COMBINING_CYRILLIC_THOUSAND_MILLIONS_SIGN 0xA672 #define T_UTF_32_SLAVONIC_ASTERISK 0xA673 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_UKRAINIAN_IE 0xA674 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_I 0xA675 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_YI 0xA676 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_U 0xA677 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_HARD_SIGN 0xA678 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_YERU 0xA679 #define T_UTF_32_COMBINING_CYRILLIC_LETTER_SOFT_SIGN 0xA67A #define T_UTF_32_COMBINING_CYRILLIC_LETTER_OMEGA 0xA67B #define T_UTF_32_COMBINING_CYRILLIC_KAVYKA 0xA67C #define T_UTF_32_COMBINING_CYRILLIC_PAYEROK 0xA67D #define T_UTF_32_CYRILLIC_KAVYKA 0xA67E #define T_UTF_32_CYRILLIC_PAYEROK 0xA67F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DWE 0xA680 #define T_UTF_32_CYRILLIC_SMALL_LETTER_DWE 0xA681 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DZWE 0xA682 #define T_UTF_32_CYRILLIC_SMALL_LETTER_DZWE 0xA683 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_ZHWE 0xA684 #define T_UTF_32_CYRILLIC_SMALL_LETTER_ZHWE 0xA685 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_CCHE 0xA686 #define T_UTF_32_CYRILLIC_SMALL_LETTER_CCHE 0xA687 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DZZE 0xA688 #define T_UTF_32_CYRILLIC_SMALL_LETTER_DZZE 0xA689 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_TE_WITH_MIDDLE_HOOK 0xA68A #define T_UTF_32_CYRILLIC_SMALL_LETTER_TE_WITH_MIDDLE_HOOK 0xA68B #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_TWE 0xA68C #define T_UTF_32_CYRILLIC_SMALL_LETTER_TWE 0xA68D #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_TSWE 0xA68E #define T_UTF_32_CYRILLIC_SMALL_LETTER_TSWE 0xA68F #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_TSSE 0xA690 #define T_UTF_32_CYRILLIC_SMALL_LETTER_TSSE 0xA691 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_TCHE 0xA692 #define T_UTF_32_CYRILLIC_SMALL_LETTER_TCHE 0xA693 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_HWE 0xA694 #define T_UTF_32_CYRILLIC_SMALL_LETTER_HWE 0xA695 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_SHWE 0xA696 #define T_UTF_32_CYRILLIC_SMALL_LETTER_SHWE 0xA697 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_DOUBLE_O 0xA698 #define T_UTF_32_CYRILLIC_SMALL_LETTER_DOUBLE_O 0xA699 #define T_UTF_32_CYRILLIC_CAPITAL_LETTER_CROSSED_O 0xA69A #define T_UTF_32_CYRILLIC_SMALL_LETTER_CROSSED_O 0xA69B #define T_UTF_32_MODIFIER_LETTER_CYRILLIC_HARD_SIGN 0xA69C #define T_UTF_32_MODIFIER_LETTER_CYRILLIC_SOFT_SIGN 0xA69D #define T_UTF_32_COMBINING_CYRILLIC_LETTER_EF 0xA69E #define T_UTF_32_COMBINING_CYRILLIC_LETTER_IOTIFIED_E 0xA69F #define T_UTF_32_BAMUM_LETTER_A 0xA6A0 #define T_UTF_32_BAMUM_LETTER_KA 0xA6A1 #define T_UTF_32_BAMUM_LETTER_U 0xA6A2 #define T_UTF_32_BAMUM_LETTER_KU 0xA6A3 #define T_UTF_32_BAMUM_LETTER_EE 0xA6A4 #define T_UTF_32_BAMUM_LETTER_REE 0xA6A5 #define T_UTF_32_BAMUM_LETTER_TAE 0xA6A6 #define T_UTF_32_BAMUM_LETTER_O 0xA6A7 #define T_UTF_32_BAMUM_LETTER_NYI 0xA6A8 #define T_UTF_32_BAMUM_LETTER_I 0xA6A9 #define T_UTF_32_BAMUM_LETTER_LA 0xA6AA #define T_UTF_32_BAMUM_LETTER_PA 0xA6AB #define T_UTF_32_BAMUM_LETTER_RII 0xA6AC #define T_UTF_32_BAMUM_LETTER_RIEE 0xA6AD #define T_UTF_32_BAMUM_LETTER_LEEEE 0xA6AE #define T_UTF_32_BAMUM_LETTER_MEEEE 0xA6AF #define T_UTF_32_BAMUM_LETTER_TAA 0xA6B0 #define T_UTF_32_BAMUM_LETTER_NDAA 0xA6B1 #define T_UTF_32_BAMUM_LETTER_NJAEM 0xA6B2 #define T_UTF_32_BAMUM_LETTER_M 0xA6B3 #define T_UTF_32_BAMUM_LETTER_SUU 0xA6B4 #define T_UTF_32_BAMUM_LETTER_MU 0xA6B5 #define T_UTF_32_BAMUM_LETTER_SHII 0xA6B6 #define T_UTF_32_BAMUM_LETTER_SI 0xA6B7 #define T_UTF_32_BAMUM_LETTER_SHEUX 0xA6B8 #define T_UTF_32_BAMUM_LETTER_SEUX 0xA6B9 #define T_UTF_32_BAMUM_LETTER_KYEE 0xA6BA #define T_UTF_32_BAMUM_LETTER_KET 0xA6BB #define T_UTF_32_BAMUM_LETTER_NUAE 0xA6BC #define T_UTF_32_BAMUM_LETTER_NU 0xA6BD #define T_UTF_32_BAMUM_LETTER_NJUAE 0xA6BE #define T_UTF_32_BAMUM_LETTER_YOQ 0xA6BF #define T_UTF_32_BAMUM_LETTER_SHU 0xA6C0 #define T_UTF_32_BAMUM_LETTER_YUQ 0xA6C1 #define T_UTF_32_BAMUM_LETTER_YA 0xA6C2 #define T_UTF_32_BAMUM_LETTER_NSHA 0xA6C3 #define T_UTF_32_BAMUM_LETTER_KEUX 0xA6C4 #define T_UTF_32_BAMUM_LETTER_PEUX 0xA6C5 #define T_UTF_32_BAMUM_LETTER_NJEE 0xA6C6 #define T_UTF_32_BAMUM_LETTER_NTEE 0xA6C7 #define T_UTF_32_BAMUM_LETTER_PUE 0xA6C8 #define T_UTF_32_BAMUM_LETTER_WUE 0xA6C9 #define T_UTF_32_BAMUM_LETTER_PEE 0xA6CA #define T_UTF_32_BAMUM_LETTER_FEE 0xA6CB #define T_UTF_32_BAMUM_LETTER_RU 0xA6CC #define T_UTF_32_BAMUM_LETTER_LU 0xA6CD #define T_UTF_32_BAMUM_LETTER_MI 0xA6CE #define T_UTF_32_BAMUM_LETTER_NI 0xA6CF #define T_UTF_32_BAMUM_LETTER_REUX 0xA6D0 #define T_UTF_32_BAMUM_LETTER_RAE 0xA6D1 #define T_UTF_32_BAMUM_LETTER_KEN 0xA6D2 #define T_UTF_32_BAMUM_LETTER_NGKWAEN 0xA6D3 #define T_UTF_32_BAMUM_LETTER_NGGA 0xA6D4 #define T_UTF_32_BAMUM_LETTER_NGA 0xA6D5 #define T_UTF_32_BAMUM_LETTER_SHO 0xA6D6 #define T_UTF_32_BAMUM_LETTER_PUAE 0xA6D7 #define T_UTF_32_BAMUM_LETTER_FU 0xA6D8 #define T_UTF_32_BAMUM_LETTER_FOM 0xA6D9 #define T_UTF_32_BAMUM_LETTER_WA 0xA6DA #define T_UTF_32_BAMUM_LETTER_NA 0xA6DB #define T_UTF_32_BAMUM_LETTER_LI 0xA6DC #define T_UTF_32_BAMUM_LETTER_PI 0xA6DD #define T_UTF_32_BAMUM_LETTER_LOQ 0xA6DE #define T_UTF_32_BAMUM_LETTER_KO 0xA6DF #define T_UTF_32_BAMUM_LETTER_MBEN 0xA6E0 #define T_UTF_32_BAMUM_LETTER_REN 0xA6E1 #define T_UTF_32_BAMUM_LETTER_MEN 0xA6E2 #define T_UTF_32_BAMUM_LETTER_MA 0xA6E3 #define T_UTF_32_BAMUM_LETTER_TI 0xA6E4 #define T_UTF_32_BAMUM_LETTER_KI 0xA6E5 #define T_UTF_32_BAMUM_LETTER_MO 0xA6E6 #define T_UTF_32_BAMUM_LETTER_MBAA 0xA6E7 #define T_UTF_32_BAMUM_LETTER_TET 0xA6E8 #define T_UTF_32_BAMUM_LETTER_KPA 0xA6E9 #define T_UTF_32_BAMUM_LETTER_TEN 0xA6EA #define T_UTF_32_BAMUM_LETTER_NTUU 0xA6EB #define T_UTF_32_BAMUM_LETTER_SAMBA 0xA6EC #define T_UTF_32_BAMUM_LETTER_FAAMAE 0xA6ED #define T_UTF_32_BAMUM_LETTER_KOVUU 0xA6EE #define T_UTF_32_BAMUM_LETTER_KOGHOM 0xA6EF #define T_UTF_32_BAMUM_COMBINING_MARK_KOQNDON 0xA6F0 #define T_UTF_32_BAMUM_COMBINING_MARK_TUKWENTIS 0xA6F1 #define T_UTF_32_BAMUM_NJAEMLI 0xA6F2 #define T_UTF_32_BAMUM_FULL_STOP 0xA6F3 #define T_UTF_32_BAMUM_COLON 0xA6F4 #define T_UTF_32_BAMUM_COMMA 0xA6F5 #define T_UTF_32_BAMUM_SEMICOLON 0xA6F6 #define T_UTF_32_BAMUM_QUESTION_MARK 0xA6F7 #define T_UTF_32_MODIFIER_LETTER_CHINESE_TONE_YIN_PING 0xA700 #define T_UTF_32_MODIFIER_LETTER_CHINESE_TONE_YANG_PING 0xA701 #define T_UTF_32_MODIFIER_LETTER_CHINESE_TONE_YIN_SHANG 0xA702 #define T_UTF_32_MODIFIER_LETTER_CHINESE_TONE_YANG_SHANG 0xA703 #define T_UTF_32_MODIFIER_LETTER_CHINESE_TONE_YIN_QU 0xA704 #define T_UTF_32_MODIFIER_LETTER_CHINESE_TONE_YANG_QU 0xA705 #define T_UTF_32_MODIFIER_LETTER_CHINESE_TONE_YIN_RU 0xA706 #define T_UTF_32_MODIFIER_LETTER_CHINESE_TONE_YANG_RU 0xA707 #define T_UTF_32_MODIFIER_LETTER_EXTRA_HIGH_DOTTED_TONE_BAR 0xA708 #define T_UTF_32_MODIFIER_LETTER_HIGH_DOTTED_TONE_BAR 0xA709 #define T_UTF_32_MODIFIER_LETTER_MID_DOTTED_TONE_BAR 0xA70A #define T_UTF_32_MODIFIER_LETTER_LOW_DOTTED_TONE_BAR 0xA70B #define T_UTF_32_MODIFIER_LETTER_EXTRA_LOW_DOTTED_TONE_BAR 0xA70C #define T_UTF_32_MODIFIER_LETTER_EXTRA_HIGH_DOTTED_LEFT_STEM_TONE_BAR 0xA70D #define T_UTF_32_MODIFIER_LETTER_HIGH_DOTTED_LEFT_STEM_TONE_BAR 0xA70E #define T_UTF_32_MODIFIER_LETTER_MID_DOTTED_LEFT_STEM_TONE_BAR 0xA70F #define T_UTF_32_MODIFIER_LETTER_LOW_DOTTED_LEFT_STEM_TONE_BAR 0xA710 #define T_UTF_32_MODIFIER_LETTER_EXTRA_LOW_DOTTED_LEFT_STEM_TONE_BAR 0xA711 #define T_UTF_32_MODIFIER_LETTER_EXTRA_HIGH_LEFT_STEM_TONE_BAR 0xA712 #define T_UTF_32_MODIFIER_LETTER_HIGH_LEFT_STEM_TONE_BAR 0xA713 #define T_UTF_32_MODIFIER_LETTER_MID_LEFT_STEM_TONE_BAR 0xA714 #define T_UTF_32_MODIFIER_LETTER_LOW_LEFT_STEM_TONE_BAR 0xA715 #define T_UTF_32_MODIFIER_LETTER_EXTRA_LOW_LEFT_STEM_TONE_BAR 0xA716 #define T_UTF_32_MODIFIER_LETTER_DOT_VERTICAL_BAR 0xA717 #define T_UTF_32_MODIFIER_LETTER_DOT_SLASH 0xA718 #define T_UTF_32_MODIFIER_LETTER_DOT_HORIZONTAL_BAR 0xA719 #define T_UTF_32_MODIFIER_LETTER_LOWER_RIGHT_CORNER_ANGLE 0xA71A #define T_UTF_32_MODIFIER_LETTER_RAISED_UP_ARROW 0xA71B #define T_UTF_32_MODIFIER_LETTER_RAISED_DOWN_ARROW 0xA71C #define T_UTF_32_MODIFIER_LETTER_RAISED_EXCLAMATION_MARK 0xA71D #define T_UTF_32_MODIFIER_LETTER_RAISED_INVERTED_EXCLAMATION_MARK 0xA71E #define T_UTF_32_MODIFIER_LETTER_LOW_INVERTED_EXCLAMATION_MARK 0xA71F #define T_UTF_32_MODIFIER_LETTER_STRESS_AND_HIGH_TONE 0xA720 #define T_UTF_32_MODIFIER_LETTER_STRESS_AND_LOW_TONE 0xA721 #define T_UTF_32_LATIN_CAPITAL_LETTER_EGYPTOLOGICAL_ALEF 0xA722 #define T_UTF_32_LATIN_SMALL_LETTER_EGYPTOLOGICAL_ALEF 0xA723 #define T_UTF_32_LATIN_CAPITAL_LETTER_EGYPTOLOGICAL_AIN 0xA724 #define T_UTF_32_LATIN_SMALL_LETTER_EGYPTOLOGICAL_AIN 0xA725 #define T_UTF_32_LATIN_CAPITAL_LETTER_HENG 0xA726 #define T_UTF_32_LATIN_SMALL_LETTER_HENG 0xA727 #define T_UTF_32_LATIN_CAPITAL_LETTER_TZ 0xA728 #define T_UTF_32_LATIN_SMALL_LETTER_TZ 0xA729 #define T_UTF_32_LATIN_CAPITAL_LETTER_TRESILLO 0xA72A #define T_UTF_32_LATIN_SMALL_LETTER_TRESILLO 0xA72B #define T_UTF_32_LATIN_CAPITAL_LETTER_CUATRILLO 0xA72C #define T_UTF_32_LATIN_SMALL_LETTER_CUATRILLO 0xA72D #define T_UTF_32_LATIN_CAPITAL_LETTER_CUATRILLO_WITH_COMMA 0xA72E #define T_UTF_32_LATIN_SMALL_LETTER_CUATRILLO_WITH_COMMA 0xA72F #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_F 0xA730 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_S 0xA731 #define T_UTF_32_LATIN_CAPITAL_LETTER_AA 0xA732 #define T_UTF_32_LATIN_SMALL_LETTER_AA 0xA733 #define T_UTF_32_LATIN_CAPITAL_LETTER_AO 0xA734 #define T_UTF_32_LATIN_SMALL_LETTER_AO 0xA735 #define T_UTF_32_LATIN_CAPITAL_LETTER_AU 0xA736 #define T_UTF_32_LATIN_SMALL_LETTER_AU 0xA737 #define T_UTF_32_LATIN_CAPITAL_LETTER_AV 0xA738 #define T_UTF_32_LATIN_SMALL_LETTER_AV 0xA739 #define T_UTF_32_LATIN_CAPITAL_LETTER_AV_WITH_HORIZONTAL_BAR 0xA73A #define T_UTF_32_LATIN_SMALL_LETTER_AV_WITH_HORIZONTAL_BAR 0xA73B #define T_UTF_32_LATIN_CAPITAL_LETTER_AY 0xA73C #define T_UTF_32_LATIN_SMALL_LETTER_AY 0xA73D #define T_UTF_32_LATIN_CAPITAL_LETTER_REVERSED_C_WITH_DOT 0xA73E #define T_UTF_32_LATIN_SMALL_LETTER_REVERSED_C_WITH_DOT 0xA73F #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_STROKE 0xA740 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_STROKE 0xA741 #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_DIAGONAL_STROKE 0xA742 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_DIAGONAL_STROKE 0xA743 #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_STROKE_AND_DIAGONAL_STROKE 0xA744 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_STROKE_AND_DIAGONAL_STROKE 0xA745 #define T_UTF_32_LATIN_CAPITAL_LETTER_BROKEN_L 0xA746 #define T_UTF_32_LATIN_SMALL_LETTER_BROKEN_L 0xA747 #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_HIGH_STROKE 0xA748 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_HIGH_STROKE 0xA749 #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_LONG_STROKE_OVERLAY 0xA74A #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_LONG_STROKE_OVERLAY 0xA74B #define T_UTF_32_LATIN_CAPITAL_LETTER_O_WITH_LOOP 0xA74C #define T_UTF_32_LATIN_SMALL_LETTER_O_WITH_LOOP 0xA74D #define T_UTF_32_LATIN_CAPITAL_LETTER_OO 0xA74E #define T_UTF_32_LATIN_SMALL_LETTER_OO 0xA74F #define T_UTF_32_LATIN_CAPITAL_LETTER_P_WITH_STROKE_THROUGH_DESCENDER 0xA750 #define T_UTF_32_LATIN_SMALL_LETTER_P_WITH_STROKE_THROUGH_DESCENDER 0xA751 #define T_UTF_32_LATIN_CAPITAL_LETTER_P_WITH_FLOURISH 0xA752 #define T_UTF_32_LATIN_SMALL_LETTER_P_WITH_FLOURISH 0xA753 #define T_UTF_32_LATIN_CAPITAL_LETTER_P_WITH_SQUIRREL_TAIL 0xA754 #define T_UTF_32_LATIN_SMALL_LETTER_P_WITH_SQUIRREL_TAIL 0xA755 #define T_UTF_32_LATIN_CAPITAL_LETTER_Q_WITH_STROKE_THROUGH_DESCENDER 0xA756 #define T_UTF_32_LATIN_SMALL_LETTER_Q_WITH_STROKE_THROUGH_DESCENDER 0xA757 #define T_UTF_32_LATIN_CAPITAL_LETTER_Q_WITH_DIAGONAL_STROKE 0xA758 #define T_UTF_32_LATIN_SMALL_LETTER_Q_WITH_DIAGONAL_STROKE 0xA759 #define T_UTF_32_LATIN_CAPITAL_LETTER_R_ROTUNDA 0xA75A #define T_UTF_32_LATIN_SMALL_LETTER_R_ROTUNDA 0xA75B #define T_UTF_32_LATIN_CAPITAL_LETTER_RUM_ROTUNDA 0xA75C #define T_UTF_32_LATIN_SMALL_LETTER_RUM_ROTUNDA 0xA75D #define T_UTF_32_LATIN_CAPITAL_LETTER_V_WITH_DIAGONAL_STROKE 0xA75E #define T_UTF_32_LATIN_SMALL_LETTER_V_WITH_DIAGONAL_STROKE 0xA75F #define T_UTF_32_LATIN_CAPITAL_LETTER_VY 0xA760 #define T_UTF_32_LATIN_SMALL_LETTER_VY 0xA761 #define T_UTF_32_LATIN_CAPITAL_LETTER_VISIGOTHIC_Z 0xA762 #define T_UTF_32_LATIN_SMALL_LETTER_VISIGOTHIC_Z 0xA763 #define T_UTF_32_LATIN_CAPITAL_LETTER_THORN_WITH_STROKE 0xA764 #define T_UTF_32_LATIN_SMALL_LETTER_THORN_WITH_STROKE 0xA765 #define T_UTF_32_LATIN_CAPITAL_LETTER_THORN_WITH_STROKE_THROUGH_DESCENDER 0xA766 #define T_UTF_32_LATIN_SMALL_LETTER_THORN_WITH_STROKE_THROUGH_DESCENDER 0xA767 #define T_UTF_32_LATIN_CAPITAL_LETTER_VEND 0xA768 #define T_UTF_32_LATIN_SMALL_LETTER_VEND 0xA769 #define T_UTF_32_LATIN_CAPITAL_LETTER_ET 0xA76A #define T_UTF_32_LATIN_SMALL_LETTER_ET 0xA76B #define T_UTF_32_LATIN_CAPITAL_LETTER_IS 0xA76C #define T_UTF_32_LATIN_SMALL_LETTER_IS 0xA76D #define T_UTF_32_LATIN_CAPITAL_LETTER_CON 0xA76E #define T_UTF_32_LATIN_SMALL_LETTER_CON 0xA76F #define T_UTF_32_MODIFIER_LETTER_US 0xA770 #define T_UTF_32_LATIN_SMALL_LETTER_DUM 0xA771 #define T_UTF_32_LATIN_SMALL_LETTER_LUM 0xA772 #define T_UTF_32_LATIN_SMALL_LETTER_MUM 0xA773 #define T_UTF_32_LATIN_SMALL_LETTER_NUM 0xA774 #define T_UTF_32_LATIN_SMALL_LETTER_RUM 0xA775 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_RUM 0xA776 #define T_UTF_32_LATIN_SMALL_LETTER_TUM 0xA777 #define T_UTF_32_LATIN_SMALL_LETTER_UM 0xA778 #define T_UTF_32_LATIN_CAPITAL_LETTER_INSULAR_D 0xA779 #define T_UTF_32_LATIN_SMALL_LETTER_INSULAR_D 0xA77A #define T_UTF_32_LATIN_CAPITAL_LETTER_INSULAR_F 0xA77B #define T_UTF_32_LATIN_SMALL_LETTER_INSULAR_F 0xA77C #define T_UTF_32_LATIN_CAPITAL_LETTER_INSULAR_G 0xA77D #define T_UTF_32_LATIN_CAPITAL_LETTER_TURNED_INSULAR_G 0xA77E #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_INSULAR_G 0xA77F #define T_UTF_32_LATIN_CAPITAL_LETTER_TURNED_L 0xA780 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_L 0xA781 #define T_UTF_32_LATIN_CAPITAL_LETTER_INSULAR_R 0xA782 #define T_UTF_32_LATIN_SMALL_LETTER_INSULAR_R 0xA783 #define T_UTF_32_LATIN_CAPITAL_LETTER_INSULAR_S 0xA784 #define T_UTF_32_LATIN_SMALL_LETTER_INSULAR_S 0xA785 #define T_UTF_32_LATIN_CAPITAL_LETTER_INSULAR_T 0xA786 #define T_UTF_32_LATIN_SMALL_LETTER_INSULAR_T 0xA787 #define T_UTF_32_MODIFIER_LETTER_LOW_CIRCUMFLEX_ACCENT 0xA788 #define T_UTF_32_MODIFIER_LETTER_COLON 0xA789 #define T_UTF_32_MODIFIER_LETTER_SHORT_EQUALS_SIGN 0xA78A #define T_UTF_32_LATIN_CAPITAL_LETTER_SALTILLO 0xA78B #define T_UTF_32_LATIN_SMALL_LETTER_SALTILLO 0xA78C #define T_UTF_32_LATIN_CAPITAL_LETTER_TURNED_H 0xA78D #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_RETROFLEX_HOOK_AND_BELT 0xA78E #define T_UTF_32_LATIN_LETTER_SINOLOGICAL_DOT 0xA78F #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_DESCENDER 0xA790 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_DESCENDER 0xA791 #define T_UTF_32_LATIN_CAPITAL_LETTER_C_WITH_BAR 0xA792 #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_BAR 0xA793 #define T_UTF_32_LATIN_SMALL_LETTER_C_WITH_PALATAL_HOOK 0xA794 #define T_UTF_32_LATIN_SMALL_LETTER_H_WITH_PALATAL_HOOK 0xA795 #define T_UTF_32_LATIN_CAPITAL_LETTER_B_WITH_FLOURISH 0xA796 #define T_UTF_32_LATIN_SMALL_LETTER_B_WITH_FLOURISH 0xA797 #define T_UTF_32_LATIN_CAPITAL_LETTER_F_WITH_STROKE 0xA798 #define T_UTF_32_LATIN_SMALL_LETTER_F_WITH_STROKE 0xA799 #define T_UTF_32_LATIN_CAPITAL_LETTER_VOLAPUK_AE 0xA79A #define T_UTF_32_LATIN_SMALL_LETTER_VOLAPUK_AE 0xA79B #define T_UTF_32_LATIN_CAPITAL_LETTER_VOLAPUK_OE 0xA79C #define T_UTF_32_LATIN_SMALL_LETTER_VOLAPUK_OE 0xA79D #define T_UTF_32_LATIN_CAPITAL_LETTER_VOLAPUK_UE 0xA79E #define T_UTF_32_LATIN_SMALL_LETTER_VOLAPUK_UE 0xA79F #define T_UTF_32_LATIN_CAPITAL_LETTER_G_WITH_OBLIQUE_STROKE 0xA7A0 #define T_UTF_32_LATIN_SMALL_LETTER_G_WITH_OBLIQUE_STROKE 0xA7A1 #define T_UTF_32_LATIN_CAPITAL_LETTER_K_WITH_OBLIQUE_STROKE 0xA7A2 #define T_UTF_32_LATIN_SMALL_LETTER_K_WITH_OBLIQUE_STROKE 0xA7A3 #define T_UTF_32_LATIN_CAPITAL_LETTER_N_WITH_OBLIQUE_STROKE 0xA7A4 #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_OBLIQUE_STROKE 0xA7A5 #define T_UTF_32_LATIN_CAPITAL_LETTER_R_WITH_OBLIQUE_STROKE 0xA7A6 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_OBLIQUE_STROKE 0xA7A7 #define T_UTF_32_LATIN_CAPITAL_LETTER_S_WITH_OBLIQUE_STROKE 0xA7A8 #define T_UTF_32_LATIN_SMALL_LETTER_S_WITH_OBLIQUE_STROKE 0xA7A9 #define T_UTF_32_LATIN_CAPITAL_LETTER_H_WITH_HOOK 0xA7AA #define T_UTF_32_LATIN_CAPITAL_LETTER_REVERSED_OPEN_E 0xA7AB #define T_UTF_32_LATIN_CAPITAL_LETTER_SCRIPT_G 0xA7AC #define T_UTF_32_LATIN_CAPITAL_LETTER_L_WITH_BELT 0xA7AD #define T_UTF_32_LATIN_CAPITAL_LETTER_SMALL_CAPITAL_I 0xA7AE #define T_UTF_32_LATIN_CAPITAL_LETTER_TURNED_K 0xA7B0 #define T_UTF_32_LATIN_CAPITAL_LETTER_TURNED_T 0xA7B1 #define T_UTF_32_LATIN_CAPITAL_LETTER_J_WITH_CROSSED_TAIL 0xA7B2 #define T_UTF_32_LATIN_CAPITAL_LETTER_CHI 0xA7B3 #define T_UTF_32_LATIN_CAPITAL_LETTER_BETA 0xA7B4 #define T_UTF_32_LATIN_SMALL_LETTER_BETA 0xA7B5 #define T_UTF_32_LATIN_CAPITAL_LETTER_OMEGA 0xA7B6 #define T_UTF_32_LATIN_SMALL_LETTER_OMEGA 0xA7B7 #define T_UTF_32_LATIN_EPIGRAPHIC_LETTER_SIDEWAYS_I 0xA7F7 #define T_UTF_32_MODIFIER_LETTER_CAPITAL_H_WITH_STROKE 0xA7F8 #define T_UTF_32_MODIFIER_LETTER_SMALL_LIGATURE_OE 0xA7F9 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_TURNED_M 0xA7FA #define T_UTF_32_LATIN_EPIGRAPHIC_LETTER_REVERSED_F 0xA7FB #define T_UTF_32_LATIN_EPIGRAPHIC_LETTER_REVERSED_P 0xA7FC #define T_UTF_32_LATIN_EPIGRAPHIC_LETTER_INVERTED_M 0xA7FD #define T_UTF_32_LATIN_EPIGRAPHIC_LETTER_I_LONGA 0xA7FE #define T_UTF_32_LATIN_EPIGRAPHIC_LETTER_ARCHAIC_M 0xA7FF #define T_UTF_32_SYLOTI_NAGRI_LETTER_A 0xA800 #define T_UTF_32_SYLOTI_NAGRI_LETTER_I 0xA801 #define T_UTF_32_SYLOTI_NAGRI_SIGN_DVISVARA 0xA802 #define T_UTF_32_SYLOTI_NAGRI_LETTER_U 0xA803 #define T_UTF_32_SYLOTI_NAGRI_LETTER_E 0xA804 #define T_UTF_32_SYLOTI_NAGRI_LETTER_O 0xA805 #define T_UTF_32_SYLOTI_NAGRI_SIGN_HASANTA 0xA806 #define T_UTF_32_SYLOTI_NAGRI_LETTER_KO 0xA807 #define T_UTF_32_SYLOTI_NAGRI_LETTER_KHO 0xA808 #define T_UTF_32_SYLOTI_NAGRI_LETTER_GO 0xA809 #define T_UTF_32_SYLOTI_NAGRI_LETTER_GHO 0xA80A #define T_UTF_32_SYLOTI_NAGRI_SIGN_ANUSVARA 0xA80B #define T_UTF_32_SYLOTI_NAGRI_LETTER_CO 0xA80C #define T_UTF_32_SYLOTI_NAGRI_LETTER_CHO 0xA80D #define T_UTF_32_SYLOTI_NAGRI_LETTER_JO 0xA80E #define T_UTF_32_SYLOTI_NAGRI_LETTER_JHO 0xA80F #define T_UTF_32_SYLOTI_NAGRI_LETTER_TTO 0xA810 #define T_UTF_32_SYLOTI_NAGRI_LETTER_TTHO 0xA811 #define T_UTF_32_SYLOTI_NAGRI_LETTER_DDO 0xA812 #define T_UTF_32_SYLOTI_NAGRI_LETTER_DDHO 0xA813 #define T_UTF_32_SYLOTI_NAGRI_LETTER_TO 0xA814 #define T_UTF_32_SYLOTI_NAGRI_LETTER_THO 0xA815 #define T_UTF_32_SYLOTI_NAGRI_LETTER_DO 0xA816 #define T_UTF_32_SYLOTI_NAGRI_LETTER_DHO 0xA817 #define T_UTF_32_SYLOTI_NAGRI_LETTER_NO 0xA818 #define T_UTF_32_SYLOTI_NAGRI_LETTER_PO 0xA819 #define T_UTF_32_SYLOTI_NAGRI_LETTER_PHO 0xA81A #define T_UTF_32_SYLOTI_NAGRI_LETTER_BO 0xA81B #define T_UTF_32_SYLOTI_NAGRI_LETTER_BHO 0xA81C #define T_UTF_32_SYLOTI_NAGRI_LETTER_MO 0xA81D #define T_UTF_32_SYLOTI_NAGRI_LETTER_RO 0xA81E #define T_UTF_32_SYLOTI_NAGRI_LETTER_LO 0xA81F #define T_UTF_32_SYLOTI_NAGRI_LETTER_RRO 0xA820 #define T_UTF_32_SYLOTI_NAGRI_LETTER_SO 0xA821 #define T_UTF_32_SYLOTI_NAGRI_LETTER_HO 0xA822 #define T_UTF_32_SYLOTI_NAGRI_VOWEL_SIGN_A 0xA823 #define T_UTF_32_SYLOTI_NAGRI_VOWEL_SIGN_I 0xA824 #define T_UTF_32_SYLOTI_NAGRI_VOWEL_SIGN_U 0xA825 #define T_UTF_32_SYLOTI_NAGRI_VOWEL_SIGN_E 0xA826 #define T_UTF_32_SYLOTI_NAGRI_VOWEL_SIGN_OO 0xA827 #define T_UTF_32_SYLOTI_NAGRI_POETRY_MARK_1 0xA828 #define T_UTF_32_SYLOTI_NAGRI_POETRY_MARK_2 0xA829 #define T_UTF_32_SYLOTI_NAGRI_POETRY_MARK_3 0xA82A #define T_UTF_32_SYLOTI_NAGRI_POETRY_MARK_4 0xA82B #define T_UTF_32_NORTH_INDIC_FRACTION_ONE_QUARTER 0xA830 #define T_UTF_32_NORTH_INDIC_FRACTION_ONE_HALF 0xA831 #define T_UTF_32_NORTH_INDIC_FRACTION_THREE_QUARTERS 0xA832 #define T_UTF_32_NORTH_INDIC_FRACTION_ONE_SIXTEENTH 0xA833 #define T_UTF_32_NORTH_INDIC_FRACTION_ONE_EIGHTH 0xA834 #define T_UTF_32_NORTH_INDIC_FRACTION_THREE_SIXTEENTHS 0xA835 #define T_UTF_32_NORTH_INDIC_QUARTER_MARK 0xA836 #define T_UTF_32_NORTH_INDIC_PLACEHOLDER_MARK 0xA837 #define T_UTF_32_NORTH_INDIC_RUPEE_MARK 0xA838 #define T_UTF_32_NORTH_INDIC_QUANTITY_MARK 0xA839 #define T_UTF_32_PHAGS_PA_LETTER_KA 0xA840 #define T_UTF_32_PHAGS_PA_LETTER_KHA 0xA841 #define T_UTF_32_PHAGS_PA_LETTER_GA 0xA842 #define T_UTF_32_PHAGS_PA_LETTER_NGA 0xA843 #define T_UTF_32_PHAGS_PA_LETTER_CA 0xA844 #define T_UTF_32_PHAGS_PA_LETTER_CHA 0xA845 #define T_UTF_32_PHAGS_PA_LETTER_JA 0xA846 #define T_UTF_32_PHAGS_PA_LETTER_NYA 0xA847 #define T_UTF_32_PHAGS_PA_LETTER_TA 0xA848 #define T_UTF_32_PHAGS_PA_LETTER_THA 0xA849 #define T_UTF_32_PHAGS_PA_LETTER_DA 0xA84A #define T_UTF_32_PHAGS_PA_LETTER_NA 0xA84B #define T_UTF_32_PHAGS_PA_LETTER_PA 0xA84C #define T_UTF_32_PHAGS_PA_LETTER_PHA 0xA84D #define T_UTF_32_PHAGS_PA_LETTER_BA 0xA84E #define T_UTF_32_PHAGS_PA_LETTER_MA 0xA84F #define T_UTF_32_PHAGS_PA_LETTER_TSA 0xA850 #define T_UTF_32_PHAGS_PA_LETTER_TSHA 0xA851 #define T_UTF_32_PHAGS_PA_LETTER_DZA 0xA852 #define T_UTF_32_PHAGS_PA_LETTER_WA 0xA853 #define T_UTF_32_PHAGS_PA_LETTER_ZHA 0xA854 #define T_UTF_32_PHAGS_PA_LETTER_ZA 0xA855 #define T_UTF_32_PHAGS_PA_LETTER_SMALL_A 0xA856 #define T_UTF_32_PHAGS_PA_LETTER_YA 0xA857 #define T_UTF_32_PHAGS_PA_LETTER_RA 0xA858 #define T_UTF_32_PHAGS_PA_LETTER_LA 0xA859 #define T_UTF_32_PHAGS_PA_LETTER_SHA 0xA85A #define T_UTF_32_PHAGS_PA_LETTER_SA 0xA85B #define T_UTF_32_PHAGS_PA_LETTER_HA 0xA85C #define T_UTF_32_PHAGS_PA_LETTER_A 0xA85D #define T_UTF_32_PHAGS_PA_LETTER_I 0xA85E #define T_UTF_32_PHAGS_PA_LETTER_U 0xA85F #define T_UTF_32_PHAGS_PA_LETTER_E 0xA860 #define T_UTF_32_PHAGS_PA_LETTER_O 0xA861 #define T_UTF_32_PHAGS_PA_LETTER_QA 0xA862 #define T_UTF_32_PHAGS_PA_LETTER_XA 0xA863 #define T_UTF_32_PHAGS_PA_LETTER_FA 0xA864 #define T_UTF_32_PHAGS_PA_LETTER_GGA 0xA865 #define T_UTF_32_PHAGS_PA_LETTER_EE 0xA866 #define T_UTF_32_PHAGS_PA_SUBJOINED_LETTER_WA 0xA867 #define T_UTF_32_PHAGS_PA_SUBJOINED_LETTER_YA 0xA868 #define T_UTF_32_PHAGS_PA_LETTER_TTA 0xA869 #define T_UTF_32_PHAGS_PA_LETTER_TTHA 0xA86A #define T_UTF_32_PHAGS_PA_LETTER_DDA 0xA86B #define T_UTF_32_PHAGS_PA_LETTER_NNA 0xA86C #define T_UTF_32_PHAGS_PA_LETTER_ALTERNATE_YA 0xA86D #define T_UTF_32_PHAGS_PA_LETTER_VOICELESS_SHA 0xA86E #define T_UTF_32_PHAGS_PA_LETTER_VOICED_HA 0xA86F #define T_UTF_32_PHAGS_PA_LETTER_ASPIRATED_FA 0xA870 #define T_UTF_32_PHAGS_PA_SUBJOINED_LETTER_RA 0xA871 #define T_UTF_32_PHAGS_PA_SUPERFIXED_LETTER_RA 0xA872 #define T_UTF_32_PHAGS_PA_LETTER_CANDRABINDU 0xA873 #define T_UTF_32_PHAGS_PA_SINGLE_HEAD_MARK 0xA874 #define T_UTF_32_PHAGS_PA_DOUBLE_HEAD_MARK 0xA875 #define T_UTF_32_PHAGS_PA_MARK_SHAD 0xA876 #define T_UTF_32_PHAGS_PA_MARK_DOUBLE_SHAD 0xA877 #define T_UTF_32_SAURASHTRA_SIGN_ANUSVARA 0xA880 #define T_UTF_32_SAURASHTRA_SIGN_VISARGA 0xA881 #define T_UTF_32_SAURASHTRA_LETTER_A 0xA882 #define T_UTF_32_SAURASHTRA_LETTER_AA 0xA883 #define T_UTF_32_SAURASHTRA_LETTER_I 0xA884 #define T_UTF_32_SAURASHTRA_LETTER_II 0xA885 #define T_UTF_32_SAURASHTRA_LETTER_U 0xA886 #define T_UTF_32_SAURASHTRA_LETTER_UU 0xA887 #define T_UTF_32_SAURASHTRA_LETTER_VOCALIC_R 0xA888 #define T_UTF_32_SAURASHTRA_LETTER_VOCALIC_RR 0xA889 #define T_UTF_32_SAURASHTRA_LETTER_VOCALIC_L 0xA88A #define T_UTF_32_SAURASHTRA_LETTER_VOCALIC_LL 0xA88B #define T_UTF_32_SAURASHTRA_LETTER_E 0xA88C #define T_UTF_32_SAURASHTRA_LETTER_EE 0xA88D #define T_UTF_32_SAURASHTRA_LETTER_AI 0xA88E #define T_UTF_32_SAURASHTRA_LETTER_O 0xA88F #define T_UTF_32_SAURASHTRA_LETTER_OO 0xA890 #define T_UTF_32_SAURASHTRA_LETTER_AU 0xA891 #define T_UTF_32_SAURASHTRA_LETTER_KA 0xA892 #define T_UTF_32_SAURASHTRA_LETTER_KHA 0xA893 #define T_UTF_32_SAURASHTRA_LETTER_GA 0xA894 #define T_UTF_32_SAURASHTRA_LETTER_GHA 0xA895 #define T_UTF_32_SAURASHTRA_LETTER_NGA 0xA896 #define T_UTF_32_SAURASHTRA_LETTER_CA 0xA897 #define T_UTF_32_SAURASHTRA_LETTER_CHA 0xA898 #define T_UTF_32_SAURASHTRA_LETTER_JA 0xA899 #define T_UTF_32_SAURASHTRA_LETTER_JHA 0xA89A #define T_UTF_32_SAURASHTRA_LETTER_NYA 0xA89B #define T_UTF_32_SAURASHTRA_LETTER_TTA 0xA89C #define T_UTF_32_SAURASHTRA_LETTER_TTHA 0xA89D #define T_UTF_32_SAURASHTRA_LETTER_DDA 0xA89E #define T_UTF_32_SAURASHTRA_LETTER_DDHA 0xA89F #define T_UTF_32_SAURASHTRA_LETTER_NNA 0xA8A0 #define T_UTF_32_SAURASHTRA_LETTER_TA 0xA8A1 #define T_UTF_32_SAURASHTRA_LETTER_THA 0xA8A2 #define T_UTF_32_SAURASHTRA_LETTER_DA 0xA8A3 #define T_UTF_32_SAURASHTRA_LETTER_DHA 0xA8A4 #define T_UTF_32_SAURASHTRA_LETTER_NA 0xA8A5 #define T_UTF_32_SAURASHTRA_LETTER_PA 0xA8A6 #define T_UTF_32_SAURASHTRA_LETTER_PHA 0xA8A7 #define T_UTF_32_SAURASHTRA_LETTER_BA 0xA8A8 #define T_UTF_32_SAURASHTRA_LETTER_BHA 0xA8A9 #define T_UTF_32_SAURASHTRA_LETTER_MA 0xA8AA #define T_UTF_32_SAURASHTRA_LETTER_YA 0xA8AB #define T_UTF_32_SAURASHTRA_LETTER_RA 0xA8AC #define T_UTF_32_SAURASHTRA_LETTER_LA 0xA8AD #define T_UTF_32_SAURASHTRA_LETTER_VA 0xA8AE #define T_UTF_32_SAURASHTRA_LETTER_SHA 0xA8AF #define T_UTF_32_SAURASHTRA_LETTER_SSA 0xA8B0 #define T_UTF_32_SAURASHTRA_LETTER_SA 0xA8B1 #define T_UTF_32_SAURASHTRA_LETTER_HA 0xA8B2 #define T_UTF_32_SAURASHTRA_LETTER_LLA 0xA8B3 #define T_UTF_32_SAURASHTRA_CONSONANT_SIGN_HAARU 0xA8B4 #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_AA 0xA8B5 #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_I 0xA8B6 #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_II 0xA8B7 #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_U 0xA8B8 #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_UU 0xA8B9 #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_VOCALIC_R 0xA8BA #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_VOCALIC_RR 0xA8BB #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_VOCALIC_L 0xA8BC #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_VOCALIC_LL 0xA8BD #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_E 0xA8BE #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_EE 0xA8BF #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_AI 0xA8C0 #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_O 0xA8C1 #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_OO 0xA8C2 #define T_UTF_32_SAURASHTRA_VOWEL_SIGN_AU 0xA8C3 #define T_UTF_32_SAURASHTRA_SIGN_VIRAMA 0xA8C4 #define T_UTF_32_SAURASHTRA_SIGN_CANDRABINDU 0xA8C5 #define T_UTF_32_SAURASHTRA_DANDA 0xA8CE #define T_UTF_32_SAURASHTRA_DOUBLE_DANDA 0xA8CF #define T_UTF_32_SAURASHTRA_DIGIT_ZERO 0xA8D0 #define T_UTF_32_SAURASHTRA_DIGIT_ONE 0xA8D1 #define T_UTF_32_SAURASHTRA_DIGIT_TWO 0xA8D2 #define T_UTF_32_SAURASHTRA_DIGIT_THREE 0xA8D3 #define T_UTF_32_SAURASHTRA_DIGIT_FOUR 0xA8D4 #define T_UTF_32_SAURASHTRA_DIGIT_FIVE 0xA8D5 #define T_UTF_32_SAURASHTRA_DIGIT_SIX 0xA8D6 #define T_UTF_32_SAURASHTRA_DIGIT_SEVEN 0xA8D7 #define T_UTF_32_SAURASHTRA_DIGIT_EIGHT 0xA8D8 #define T_UTF_32_SAURASHTRA_DIGIT_NINE 0xA8D9 #define T_UTF_32_COMBINING_DEVANAGARI_DIGIT_ZERO 0xA8E0 #define T_UTF_32_COMBINING_DEVANAGARI_DIGIT_ONE 0xA8E1 #define T_UTF_32_COMBINING_DEVANAGARI_DIGIT_TWO 0xA8E2 #define T_UTF_32_COMBINING_DEVANAGARI_DIGIT_THREE 0xA8E3 #define T_UTF_32_COMBINING_DEVANAGARI_DIGIT_FOUR 0xA8E4 #define T_UTF_32_COMBINING_DEVANAGARI_DIGIT_FIVE 0xA8E5 #define T_UTF_32_COMBINING_DEVANAGARI_DIGIT_SIX 0xA8E6 #define T_UTF_32_COMBINING_DEVANAGARI_DIGIT_SEVEN 0xA8E7 #define T_UTF_32_COMBINING_DEVANAGARI_DIGIT_EIGHT 0xA8E8 #define T_UTF_32_COMBINING_DEVANAGARI_DIGIT_NINE 0xA8E9 #define T_UTF_32_COMBINING_DEVANAGARI_LETTER_A 0xA8EA #define T_UTF_32_COMBINING_DEVANAGARI_LETTER_U 0xA8EB #define T_UTF_32_COMBINING_DEVANAGARI_LETTER_KA 0xA8EC #define T_UTF_32_COMBINING_DEVANAGARI_LETTER_NA 0xA8ED #define T_UTF_32_COMBINING_DEVANAGARI_LETTER_PA 0xA8EE #define T_UTF_32_COMBINING_DEVANAGARI_LETTER_RA 0xA8EF #define T_UTF_32_COMBINING_DEVANAGARI_LETTER_VI 0xA8F0 #define T_UTF_32_COMBINING_DEVANAGARI_SIGN_AVAGRAHA 0xA8F1 #define T_UTF_32_DEVANAGARI_SIGN_SPACING_CANDRABINDU 0xA8F2 #define T_UTF_32_DEVANAGARI_SIGN_CANDRABINDU_VIRAMA 0xA8F3 #define T_UTF_32_DEVANAGARI_SIGN_DOUBLE_CANDRABINDU_VIRAMA 0xA8F4 #define T_UTF_32_DEVANAGARI_SIGN_CANDRABINDU_TWO 0xA8F5 #define T_UTF_32_DEVANAGARI_SIGN_CANDRABINDU_THREE 0xA8F6 #define T_UTF_32_DEVANAGARI_SIGN_CANDRABINDU_AVAGRAHA 0xA8F7 #define T_UTF_32_DEVANAGARI_SIGN_PUSHPIKA 0xA8F8 #define T_UTF_32_DEVANAGARI_GAP_FILLER 0xA8F9 #define T_UTF_32_DEVANAGARI_CARET 0xA8FA #define T_UTF_32_DEVANAGARI_HEADSTROKE 0xA8FB #define T_UTF_32_DEVANAGARI_SIGN_SIDDHAM 0xA8FC #define T_UTF_32_DEVANAGARI_JAIN_OM 0xA8FD #define T_UTF_32_KAYAH_LI_DIGIT_ZERO 0xA900 #define T_UTF_32_KAYAH_LI_DIGIT_ONE 0xA901 #define T_UTF_32_KAYAH_LI_DIGIT_TWO 0xA902 #define T_UTF_32_KAYAH_LI_DIGIT_THREE 0xA903 #define T_UTF_32_KAYAH_LI_DIGIT_FOUR 0xA904 #define T_UTF_32_KAYAH_LI_DIGIT_FIVE 0xA905 #define T_UTF_32_KAYAH_LI_DIGIT_SIX 0xA906 #define T_UTF_32_KAYAH_LI_DIGIT_SEVEN 0xA907 #define T_UTF_32_KAYAH_LI_DIGIT_EIGHT 0xA908 #define T_UTF_32_KAYAH_LI_DIGIT_NINE 0xA909 #define T_UTF_32_KAYAH_LI_LETTER_KA 0xA90A #define T_UTF_32_KAYAH_LI_LETTER_KHA 0xA90B #define T_UTF_32_KAYAH_LI_LETTER_GA 0xA90C #define T_UTF_32_KAYAH_LI_LETTER_NGA 0xA90D #define T_UTF_32_KAYAH_LI_LETTER_SA 0xA90E #define T_UTF_32_KAYAH_LI_LETTER_SHA 0xA90F #define T_UTF_32_KAYAH_LI_LETTER_ZA 0xA910 #define T_UTF_32_KAYAH_LI_LETTER_NYA 0xA911 #define T_UTF_32_KAYAH_LI_LETTER_TA 0xA912 #define T_UTF_32_KAYAH_LI_LETTER_HTA 0xA913 #define T_UTF_32_KAYAH_LI_LETTER_NA 0xA914 #define T_UTF_32_KAYAH_LI_LETTER_PA 0xA915 #define T_UTF_32_KAYAH_LI_LETTER_PHA 0xA916 #define T_UTF_32_KAYAH_LI_LETTER_MA 0xA917 #define T_UTF_32_KAYAH_LI_LETTER_DA 0xA918 #define T_UTF_32_KAYAH_LI_LETTER_BA 0xA919 #define T_UTF_32_KAYAH_LI_LETTER_RA 0xA91A #define T_UTF_32_KAYAH_LI_LETTER_YA 0xA91B #define T_UTF_32_KAYAH_LI_LETTER_LA 0xA91C #define T_UTF_32_KAYAH_LI_LETTER_WA 0xA91D #define T_UTF_32_KAYAH_LI_LETTER_THA 0xA91E #define T_UTF_32_KAYAH_LI_LETTER_HA 0xA91F #define T_UTF_32_KAYAH_LI_LETTER_VA 0xA920 #define T_UTF_32_KAYAH_LI_LETTER_CA 0xA921 #define T_UTF_32_KAYAH_LI_LETTER_A 0xA922 #define T_UTF_32_KAYAH_LI_LETTER_OE 0xA923 #define T_UTF_32_KAYAH_LI_LETTER_I 0xA924 #define T_UTF_32_KAYAH_LI_LETTER_OO 0xA925 #define T_UTF_32_KAYAH_LI_VOWEL_UE 0xA926 #define T_UTF_32_KAYAH_LI_VOWEL_E 0xA927 #define T_UTF_32_KAYAH_LI_VOWEL_U 0xA928 #define T_UTF_32_KAYAH_LI_VOWEL_EE 0xA929 #define T_UTF_32_KAYAH_LI_VOWEL_O 0xA92A #define T_UTF_32_KAYAH_LI_TONE_PLOPHU 0xA92B #define T_UTF_32_KAYAH_LI_TONE_CALYA 0xA92C #define T_UTF_32_KAYAH_LI_TONE_CALYA_PLOPHU 0xA92D #define T_UTF_32_KAYAH_LI_SIGN_CWI 0xA92E #define T_UTF_32_KAYAH_LI_SIGN_SHYA 0xA92F #define T_UTF_32_REJANG_LETTER_KA 0xA930 #define T_UTF_32_REJANG_LETTER_GA 0xA931 #define T_UTF_32_REJANG_LETTER_NGA 0xA932 #define T_UTF_32_REJANG_LETTER_TA 0xA933 #define T_UTF_32_REJANG_LETTER_DA 0xA934 #define T_UTF_32_REJANG_LETTER_NA 0xA935 #define T_UTF_32_REJANG_LETTER_PA 0xA936 #define T_UTF_32_REJANG_LETTER_BA 0xA937 #define T_UTF_32_REJANG_LETTER_MA 0xA938 #define T_UTF_32_REJANG_LETTER_CA 0xA939 #define T_UTF_32_REJANG_LETTER_JA 0xA93A #define T_UTF_32_REJANG_LETTER_NYA 0xA93B #define T_UTF_32_REJANG_LETTER_SA 0xA93C #define T_UTF_32_REJANG_LETTER_RA 0xA93D #define T_UTF_32_REJANG_LETTER_LA 0xA93E #define T_UTF_32_REJANG_LETTER_YA 0xA93F #define T_UTF_32_REJANG_LETTER_WA 0xA940 #define T_UTF_32_REJANG_LETTER_HA 0xA941 #define T_UTF_32_REJANG_LETTER_MBA 0xA942 #define T_UTF_32_REJANG_LETTER_NGGA 0xA943 #define T_UTF_32_REJANG_LETTER_NDA 0xA944 #define T_UTF_32_REJANG_LETTER_NYJA 0xA945 #define T_UTF_32_REJANG_LETTER_A 0xA946 #define T_UTF_32_REJANG_VOWEL_SIGN_I 0xA947 #define T_UTF_32_REJANG_VOWEL_SIGN_U 0xA948 #define T_UTF_32_REJANG_VOWEL_SIGN_E 0xA949 #define T_UTF_32_REJANG_VOWEL_SIGN_AI 0xA94A #define T_UTF_32_REJANG_VOWEL_SIGN_O 0xA94B #define T_UTF_32_REJANG_VOWEL_SIGN_AU 0xA94C #define T_UTF_32_REJANG_VOWEL_SIGN_EU 0xA94D #define T_UTF_32_REJANG_VOWEL_SIGN_EA 0xA94E #define T_UTF_32_REJANG_CONSONANT_SIGN_NG 0xA94F #define T_UTF_32_REJANG_CONSONANT_SIGN_N 0xA950 #define T_UTF_32_REJANG_CONSONANT_SIGN_R 0xA951 #define T_UTF_32_REJANG_CONSONANT_SIGN_H 0xA952 #define T_UTF_32_REJANG_VIRAMA 0xA953 #define T_UTF_32_REJANG_SECTION_MARK 0xA95F #define T_UTF_32_HANGUL_CHOSEONG_TIKEUT_MIEUM 0xA960 #define T_UTF_32_HANGUL_CHOSEONG_TIKEUT_PIEUP 0xA961 #define T_UTF_32_HANGUL_CHOSEONG_TIKEUT_SIOS 0xA962 #define T_UTF_32_HANGUL_CHOSEONG_TIKEUT_CIEUC 0xA963 #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_KIYEOK 0xA964 #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_SSANGKIYEOK 0xA965 #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_TIKEUT 0xA966 #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_SSANGTIKEUT 0xA967 #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_MIEUM 0xA968 #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_PIEUP 0xA969 #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_SSANGPIEUP 0xA96A #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_KAPYEOUNPIEUP 0xA96B #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_SIOS 0xA96C #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_CIEUC 0xA96D #define T_UTF_32_HANGUL_CHOSEONG_RIEUL_KHIEUKH 0xA96E #define T_UTF_32_HANGUL_CHOSEONG_MIEUM_KIYEOK 0xA96F #define T_UTF_32_HANGUL_CHOSEONG_MIEUM_TIKEUT 0xA970 #define T_UTF_32_HANGUL_CHOSEONG_MIEUM_SIOS 0xA971 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_SIOS_THIEUTH 0xA972 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_KHIEUKH 0xA973 #define T_UTF_32_HANGUL_CHOSEONG_PIEUP_HIEUH 0xA974 #define T_UTF_32_HANGUL_CHOSEONG_SSANGSIOS_PIEUP 0xA975 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_RIEUL 0xA976 #define T_UTF_32_HANGUL_CHOSEONG_IEUNG_HIEUH 0xA977 #define T_UTF_32_HANGUL_CHOSEONG_SSANGCIEUC_HIEUH 0xA978 #define T_UTF_32_HANGUL_CHOSEONG_SSANGTHIEUTH 0xA979 #define T_UTF_32_HANGUL_CHOSEONG_PHIEUPH_HIEUH 0xA97A #define T_UTF_32_HANGUL_CHOSEONG_HIEUH_SIOS 0xA97B #define T_UTF_32_HANGUL_CHOSEONG_SSANGYEORINHIEUH 0xA97C #define T_UTF_32_JAVANESE_SIGN_PANYANGGA 0xA980 #define T_UTF_32_JAVANESE_SIGN_CECAK 0xA981 #define T_UTF_32_JAVANESE_SIGN_LAYAR 0xA982 #define T_UTF_32_JAVANESE_SIGN_WIGNYAN 0xA983 #define T_UTF_32_JAVANESE_LETTER_A 0xA984 #define T_UTF_32_JAVANESE_LETTER_I_KAWI 0xA985 #define T_UTF_32_JAVANESE_LETTER_I 0xA986 #define T_UTF_32_JAVANESE_LETTER_II 0xA987 #define T_UTF_32_JAVANESE_LETTER_U 0xA988 #define T_UTF_32_JAVANESE_LETTER_PA_CEREK 0xA989 #define T_UTF_32_JAVANESE_LETTER_NGA_LELET 0xA98A #define T_UTF_32_JAVANESE_LETTER_NGA_LELET_RASWADI 0xA98B #define T_UTF_32_JAVANESE_LETTER_E 0xA98C #define T_UTF_32_JAVANESE_LETTER_AI 0xA98D #define T_UTF_32_JAVANESE_LETTER_O 0xA98E #define T_UTF_32_JAVANESE_LETTER_KA 0xA98F #define T_UTF_32_JAVANESE_LETTER_KA_SASAK 0xA990 #define T_UTF_32_JAVANESE_LETTER_KA_MURDA 0xA991 #define T_UTF_32_JAVANESE_LETTER_GA 0xA992 #define T_UTF_32_JAVANESE_LETTER_GA_MURDA 0xA993 #define T_UTF_32_JAVANESE_LETTER_NGA 0xA994 #define T_UTF_32_JAVANESE_LETTER_CA 0xA995 #define T_UTF_32_JAVANESE_LETTER_CA_MURDA 0xA996 #define T_UTF_32_JAVANESE_LETTER_JA 0xA997 #define T_UTF_32_JAVANESE_LETTER_NYA_MURDA 0xA998 #define T_UTF_32_JAVANESE_LETTER_JA_MAHAPRANA 0xA999 #define T_UTF_32_JAVANESE_LETTER_NYA 0xA99A #define T_UTF_32_JAVANESE_LETTER_TTA 0xA99B #define T_UTF_32_JAVANESE_LETTER_TTA_MAHAPRANA 0xA99C #define T_UTF_32_JAVANESE_LETTER_DDA 0xA99D #define T_UTF_32_JAVANESE_LETTER_DDA_MAHAPRANA 0xA99E #define T_UTF_32_JAVANESE_LETTER_NA_MURDA 0xA99F #define T_UTF_32_JAVANESE_LETTER_TA 0xA9A0 #define T_UTF_32_JAVANESE_LETTER_TA_MURDA 0xA9A1 #define T_UTF_32_JAVANESE_LETTER_DA 0xA9A2 #define T_UTF_32_JAVANESE_LETTER_DA_MAHAPRANA 0xA9A3 #define T_UTF_32_JAVANESE_LETTER_NA 0xA9A4 #define T_UTF_32_JAVANESE_LETTER_PA 0xA9A5 #define T_UTF_32_JAVANESE_LETTER_PA_MURDA 0xA9A6 #define T_UTF_32_JAVANESE_LETTER_BA 0xA9A7 #define T_UTF_32_JAVANESE_LETTER_BA_MURDA 0xA9A8 #define T_UTF_32_JAVANESE_LETTER_MA 0xA9A9 #define T_UTF_32_JAVANESE_LETTER_YA 0xA9AA #define T_UTF_32_JAVANESE_LETTER_RA 0xA9AB #define T_UTF_32_JAVANESE_LETTER_RA_AGUNG 0xA9AC #define T_UTF_32_JAVANESE_LETTER_LA 0xA9AD #define T_UTF_32_JAVANESE_LETTER_WA 0xA9AE #define T_UTF_32_JAVANESE_LETTER_SA_MURDA 0xA9AF #define T_UTF_32_JAVANESE_LETTER_SA_MAHAPRANA 0xA9B0 #define T_UTF_32_JAVANESE_LETTER_SA 0xA9B1 #define T_UTF_32_JAVANESE_LETTER_HA 0xA9B2 #define T_UTF_32_JAVANESE_SIGN_CECAK_TELU 0xA9B3 #define T_UTF_32_JAVANESE_VOWEL_SIGN_TARUNG 0xA9B4 #define T_UTF_32_JAVANESE_VOWEL_SIGN_TOLONG 0xA9B5 #define T_UTF_32_JAVANESE_VOWEL_SIGN_WULU 0xA9B6 #define T_UTF_32_JAVANESE_VOWEL_SIGN_WULU_MELIK 0xA9B7 #define T_UTF_32_JAVANESE_VOWEL_SIGN_SUKU 0xA9B8 #define T_UTF_32_JAVANESE_VOWEL_SIGN_SUKU_MENDUT 0xA9B9 #define T_UTF_32_JAVANESE_VOWEL_SIGN_TALING 0xA9BA #define T_UTF_32_JAVANESE_VOWEL_SIGN_DIRGA_MURE 0xA9BB #define T_UTF_32_JAVANESE_VOWEL_SIGN_PEPET 0xA9BC #define T_UTF_32_JAVANESE_CONSONANT_SIGN_KERET 0xA9BD #define T_UTF_32_JAVANESE_CONSONANT_SIGN_PENGKAL 0xA9BE #define T_UTF_32_JAVANESE_CONSONANT_SIGN_CAKRA 0xA9BF #define T_UTF_32_JAVANESE_PANGKON 0xA9C0 #define T_UTF_32_JAVANESE_LEFT_RERENGGAN 0xA9C1 #define T_UTF_32_JAVANESE_RIGHT_RERENGGAN 0xA9C2 #define T_UTF_32_JAVANESE_PADA_ANDAP 0xA9C3 #define T_UTF_32_JAVANESE_PADA_MADYA 0xA9C4 #define T_UTF_32_JAVANESE_PADA_LUHUR 0xA9C5 #define T_UTF_32_JAVANESE_PADA_WINDU 0xA9C6 #define T_UTF_32_JAVANESE_PADA_PANGKAT 0xA9C7 #define T_UTF_32_JAVANESE_PADA_LINGSA 0xA9C8 #define T_UTF_32_JAVANESE_PADA_LUNGSI 0xA9C9 #define T_UTF_32_JAVANESE_PADA_ADEG 0xA9CA #define T_UTF_32_JAVANESE_PADA_ADEG_ADEG 0xA9CB #define T_UTF_32_JAVANESE_PADA_PISELEH 0xA9CC #define T_UTF_32_JAVANESE_TURNED_PADA_PISELEH 0xA9CD #define T_UTF_32_JAVANESE_PANGRANGKEP 0xA9CF #define T_UTF_32_JAVANESE_DIGIT_ZERO 0xA9D0 #define T_UTF_32_JAVANESE_DIGIT_ONE 0xA9D1 #define T_UTF_32_JAVANESE_DIGIT_TWO 0xA9D2 #define T_UTF_32_JAVANESE_DIGIT_THREE 0xA9D3 #define T_UTF_32_JAVANESE_DIGIT_FOUR 0xA9D4 #define T_UTF_32_JAVANESE_DIGIT_FIVE 0xA9D5 #define T_UTF_32_JAVANESE_DIGIT_SIX 0xA9D6 #define T_UTF_32_JAVANESE_DIGIT_SEVEN 0xA9D7 #define T_UTF_32_JAVANESE_DIGIT_EIGHT 0xA9D8 #define T_UTF_32_JAVANESE_DIGIT_NINE 0xA9D9 #define T_UTF_32_JAVANESE_PADA_TIRTA_TUMETES 0xA9DE #define T_UTF_32_JAVANESE_PADA_ISEN_ISEN 0xA9DF #define T_UTF_32_MYANMAR_LETTER_SHAN_GHA 0xA9E0 #define T_UTF_32_MYANMAR_LETTER_SHAN_CHA 0xA9E1 #define T_UTF_32_MYANMAR_LETTER_SHAN_JHA 0xA9E2 #define T_UTF_32_MYANMAR_LETTER_SHAN_NNA 0xA9E3 #define T_UTF_32_MYANMAR_LETTER_SHAN_BHA 0xA9E4 #define T_UTF_32_MYANMAR_SIGN_SHAN_SAW 0xA9E5 #define T_UTF_32_MYANMAR_MODIFIER_LETTER_SHAN_REDUPLICATION 0xA9E6 #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_NYA 0xA9E7 #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_FA 0xA9E8 #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_GA 0xA9E9 #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_GHA 0xA9EA #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_JA 0xA9EB #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_JHA 0xA9EC #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_DDA 0xA9ED #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_DDHA 0xA9EE #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_NNA 0xA9EF #define T_UTF_32_MYANMAR_TAI_LAING_DIGIT_ZERO 0xA9F0 #define T_UTF_32_MYANMAR_TAI_LAING_DIGIT_ONE 0xA9F1 #define T_UTF_32_MYANMAR_TAI_LAING_DIGIT_TWO 0xA9F2 #define T_UTF_32_MYANMAR_TAI_LAING_DIGIT_THREE 0xA9F3 #define T_UTF_32_MYANMAR_TAI_LAING_DIGIT_FOUR 0xA9F4 #define T_UTF_32_MYANMAR_TAI_LAING_DIGIT_FIVE 0xA9F5 #define T_UTF_32_MYANMAR_TAI_LAING_DIGIT_SIX 0xA9F6 #define T_UTF_32_MYANMAR_TAI_LAING_DIGIT_SEVEN 0xA9F7 #define T_UTF_32_MYANMAR_TAI_LAING_DIGIT_EIGHT 0xA9F8 #define T_UTF_32_MYANMAR_TAI_LAING_DIGIT_NINE 0xA9F9 #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_LLA 0xA9FA #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_DA 0xA9FB #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_DHA 0xA9FC #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_BA 0xA9FD #define T_UTF_32_MYANMAR_LETTER_TAI_LAING_BHA 0xA9FE #define T_UTF_32_CHAM_LETTER_A 0xAA00 #define T_UTF_32_CHAM_LETTER_I 0xAA01 #define T_UTF_32_CHAM_LETTER_U 0xAA02 #define T_UTF_32_CHAM_LETTER_E 0xAA03 #define T_UTF_32_CHAM_LETTER_AI 0xAA04 #define T_UTF_32_CHAM_LETTER_O 0xAA05 #define T_UTF_32_CHAM_LETTER_KA 0xAA06 #define T_UTF_32_CHAM_LETTER_KHA 0xAA07 #define T_UTF_32_CHAM_LETTER_GA 0xAA08 #define T_UTF_32_CHAM_LETTER_GHA 0xAA09 #define T_UTF_32_CHAM_LETTER_NGUE 0xAA0A #define T_UTF_32_CHAM_LETTER_NGA 0xAA0B #define T_UTF_32_CHAM_LETTER_CHA 0xAA0C #define T_UTF_32_CHAM_LETTER_CHHA 0xAA0D #define T_UTF_32_CHAM_LETTER_JA 0xAA0E #define T_UTF_32_CHAM_LETTER_JHA 0xAA0F #define T_UTF_32_CHAM_LETTER_NHUE 0xAA10 #define T_UTF_32_CHAM_LETTER_NHA 0xAA11 #define T_UTF_32_CHAM_LETTER_NHJA 0xAA12 #define T_UTF_32_CHAM_LETTER_TA 0xAA13 #define T_UTF_32_CHAM_LETTER_THA 0xAA14 #define T_UTF_32_CHAM_LETTER_DA 0xAA15 #define T_UTF_32_CHAM_LETTER_DHA 0xAA16 #define T_UTF_32_CHAM_LETTER_NUE 0xAA17 #define T_UTF_32_CHAM_LETTER_NA 0xAA18 #define T_UTF_32_CHAM_LETTER_DDA 0xAA19 #define T_UTF_32_CHAM_LETTER_PA 0xAA1A #define T_UTF_32_CHAM_LETTER_PPA 0xAA1B #define T_UTF_32_CHAM_LETTER_PHA 0xAA1C #define T_UTF_32_CHAM_LETTER_BA 0xAA1D #define T_UTF_32_CHAM_LETTER_BHA 0xAA1E #define T_UTF_32_CHAM_LETTER_MUE 0xAA1F #define T_UTF_32_CHAM_LETTER_MA 0xAA20 #define T_UTF_32_CHAM_LETTER_BBA 0xAA21 #define T_UTF_32_CHAM_LETTER_YA 0xAA22 #define T_UTF_32_CHAM_LETTER_RA 0xAA23 #define T_UTF_32_CHAM_LETTER_LA 0xAA24 #define T_UTF_32_CHAM_LETTER_VA 0xAA25 #define T_UTF_32_CHAM_LETTER_SSA 0xAA26 #define T_UTF_32_CHAM_LETTER_SA 0xAA27 #define T_UTF_32_CHAM_LETTER_HA 0xAA28 #define T_UTF_32_CHAM_VOWEL_SIGN_AA 0xAA29 #define T_UTF_32_CHAM_VOWEL_SIGN_I 0xAA2A #define T_UTF_32_CHAM_VOWEL_SIGN_II 0xAA2B #define T_UTF_32_CHAM_VOWEL_SIGN_EI 0xAA2C #define T_UTF_32_CHAM_VOWEL_SIGN_U 0xAA2D #define T_UTF_32_CHAM_VOWEL_SIGN_OE 0xAA2E #define T_UTF_32_CHAM_VOWEL_SIGN_O 0xAA2F #define T_UTF_32_CHAM_VOWEL_SIGN_AI 0xAA30 #define T_UTF_32_CHAM_VOWEL_SIGN_AU 0xAA31 #define T_UTF_32_CHAM_VOWEL_SIGN_UE 0xAA32 #define T_UTF_32_CHAM_CONSONANT_SIGN_YA 0xAA33 #define T_UTF_32_CHAM_CONSONANT_SIGN_RA 0xAA34 #define T_UTF_32_CHAM_CONSONANT_SIGN_LA 0xAA35 #define T_UTF_32_CHAM_CONSONANT_SIGN_WA 0xAA36 #define T_UTF_32_CHAM_LETTER_FINAL_K 0xAA40 #define T_UTF_32_CHAM_LETTER_FINAL_G 0xAA41 #define T_UTF_32_CHAM_LETTER_FINAL_NG 0xAA42 #define T_UTF_32_CHAM_CONSONANT_SIGN_FINAL_NG 0xAA43 #define T_UTF_32_CHAM_LETTER_FINAL_CH 0xAA44 #define T_UTF_32_CHAM_LETTER_FINAL_T 0xAA45 #define T_UTF_32_CHAM_LETTER_FINAL_N 0xAA46 #define T_UTF_32_CHAM_LETTER_FINAL_P 0xAA47 #define T_UTF_32_CHAM_LETTER_FINAL_Y 0xAA48 #define T_UTF_32_CHAM_LETTER_FINAL_R 0xAA49 #define T_UTF_32_CHAM_LETTER_FINAL_L 0xAA4A #define T_UTF_32_CHAM_LETTER_FINAL_SS 0xAA4B #define T_UTF_32_CHAM_CONSONANT_SIGN_FINAL_M 0xAA4C #define T_UTF_32_CHAM_CONSONANT_SIGN_FINAL_H 0xAA4D #define T_UTF_32_CHAM_DIGIT_ZERO 0xAA50 #define T_UTF_32_CHAM_DIGIT_ONE 0xAA51 #define T_UTF_32_CHAM_DIGIT_TWO 0xAA52 #define T_UTF_32_CHAM_DIGIT_THREE 0xAA53 #define T_UTF_32_CHAM_DIGIT_FOUR 0xAA54 #define T_UTF_32_CHAM_DIGIT_FIVE 0xAA55 #define T_UTF_32_CHAM_DIGIT_SIX 0xAA56 #define T_UTF_32_CHAM_DIGIT_SEVEN 0xAA57 #define T_UTF_32_CHAM_DIGIT_EIGHT 0xAA58 #define T_UTF_32_CHAM_DIGIT_NINE 0xAA59 #define T_UTF_32_CHAM_PUNCTUATION_SPIRAL 0xAA5C #define T_UTF_32_CHAM_PUNCTUATION_DANDA 0xAA5D #define T_UTF_32_CHAM_PUNCTUATION_DOUBLE_DANDA 0xAA5E #define T_UTF_32_CHAM_PUNCTUATION_TRIPLE_DANDA 0xAA5F #define T_UTF_32_MYANMAR_LETTER_KHAMTI_GA 0xAA60 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_CA 0xAA61 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_CHA 0xAA62 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_JA 0xAA63 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_JHA 0xAA64 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_NYA 0xAA65 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_TTA 0xAA66 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_TTHA 0xAA67 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_DDA 0xAA68 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_DDHA 0xAA69 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_DHA 0xAA6A #define T_UTF_32_MYANMAR_LETTER_KHAMTI_NA 0xAA6B #define T_UTF_32_MYANMAR_LETTER_KHAMTI_SA 0xAA6C #define T_UTF_32_MYANMAR_LETTER_KHAMTI_HA 0xAA6D #define T_UTF_32_MYANMAR_LETTER_KHAMTI_HHA 0xAA6E #define T_UTF_32_MYANMAR_LETTER_KHAMTI_FA 0xAA6F #define T_UTF_32_MYANMAR_MODIFIER_LETTER_KHAMTI_REDUPLICATION 0xAA70 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_XA 0xAA71 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_ZA 0xAA72 #define T_UTF_32_MYANMAR_LETTER_KHAMTI_RA 0xAA73 #define T_UTF_32_MYANMAR_LOGOGRAM_KHAMTI_OAY 0xAA74 #define T_UTF_32_MYANMAR_LOGOGRAM_KHAMTI_QN 0xAA75 #define T_UTF_32_MYANMAR_LOGOGRAM_KHAMTI_HM 0xAA76 #define T_UTF_32_MYANMAR_SYMBOL_AITON_EXCLAMATION 0xAA77 #define T_UTF_32_MYANMAR_SYMBOL_AITON_ONE 0xAA78 #define T_UTF_32_MYANMAR_SYMBOL_AITON_TWO 0xAA79 #define T_UTF_32_MYANMAR_LETTER_AITON_RA 0xAA7A #define T_UTF_32_MYANMAR_SIGN_PAO_KAREN_TONE 0xAA7B #define T_UTF_32_MYANMAR_SIGN_TAI_LAING_TONE_2 0xAA7C #define T_UTF_32_MYANMAR_SIGN_TAI_LAING_TONE_5 0xAA7D #define T_UTF_32_MYANMAR_LETTER_SHWE_PALAUNG_CHA 0xAA7E #define T_UTF_32_MYANMAR_LETTER_SHWE_PALAUNG_SHA 0xAA7F #define T_UTF_32_TAI_VIET_LETTER_LOW_KO 0xAA80 #define T_UTF_32_TAI_VIET_LETTER_HIGH_KO 0xAA81 #define T_UTF_32_TAI_VIET_LETTER_LOW_KHO 0xAA82 #define T_UTF_32_TAI_VIET_LETTER_HIGH_KHO 0xAA83 #define T_UTF_32_TAI_VIET_LETTER_LOW_KHHO 0xAA84 #define T_UTF_32_TAI_VIET_LETTER_HIGH_KHHO 0xAA85 #define T_UTF_32_TAI_VIET_LETTER_LOW_GO 0xAA86 #define T_UTF_32_TAI_VIET_LETTER_HIGH_GO 0xAA87 #define T_UTF_32_TAI_VIET_LETTER_LOW_NGO 0xAA88 #define T_UTF_32_TAI_VIET_LETTER_HIGH_NGO 0xAA89 #define T_UTF_32_TAI_VIET_LETTER_LOW_CO 0xAA8A #define T_UTF_32_TAI_VIET_LETTER_HIGH_CO 0xAA8B #define T_UTF_32_TAI_VIET_LETTER_LOW_CHO 0xAA8C #define T_UTF_32_TAI_VIET_LETTER_HIGH_CHO 0xAA8D #define T_UTF_32_TAI_VIET_LETTER_LOW_SO 0xAA8E #define T_UTF_32_TAI_VIET_LETTER_HIGH_SO 0xAA8F #define T_UTF_32_TAI_VIET_LETTER_LOW_NYO 0xAA90 #define T_UTF_32_TAI_VIET_LETTER_HIGH_NYO 0xAA91 #define T_UTF_32_TAI_VIET_LETTER_LOW_DO 0xAA92 #define T_UTF_32_TAI_VIET_LETTER_HIGH_DO 0xAA93 #define T_UTF_32_TAI_VIET_LETTER_LOW_TO 0xAA94 #define T_UTF_32_TAI_VIET_LETTER_HIGH_TO 0xAA95 #define T_UTF_32_TAI_VIET_LETTER_LOW_THO 0xAA96 #define T_UTF_32_TAI_VIET_LETTER_HIGH_THO 0xAA97 #define T_UTF_32_TAI_VIET_LETTER_LOW_NO 0xAA98 #define T_UTF_32_TAI_VIET_LETTER_HIGH_NO 0xAA99 #define T_UTF_32_TAI_VIET_LETTER_LOW_BO 0xAA9A #define T_UTF_32_TAI_VIET_LETTER_HIGH_BO 0xAA9B #define T_UTF_32_TAI_VIET_LETTER_LOW_PO 0xAA9C #define T_UTF_32_TAI_VIET_LETTER_HIGH_PO 0xAA9D #define T_UTF_32_TAI_VIET_LETTER_LOW_PHO 0xAA9E #define T_UTF_32_TAI_VIET_LETTER_HIGH_PHO 0xAA9F #define T_UTF_32_TAI_VIET_LETTER_LOW_FO 0xAAA0 #define T_UTF_32_TAI_VIET_LETTER_HIGH_FO 0xAAA1 #define T_UTF_32_TAI_VIET_LETTER_LOW_MO 0xAAA2 #define T_UTF_32_TAI_VIET_LETTER_HIGH_MO 0xAAA3 #define T_UTF_32_TAI_VIET_LETTER_LOW_YO 0xAAA4 #define T_UTF_32_TAI_VIET_LETTER_HIGH_YO 0xAAA5 #define T_UTF_32_TAI_VIET_LETTER_LOW_RO 0xAAA6 #define T_UTF_32_TAI_VIET_LETTER_HIGH_RO 0xAAA7 #define T_UTF_32_TAI_VIET_LETTER_LOW_LO 0xAAA8 #define T_UTF_32_TAI_VIET_LETTER_HIGH_LO 0xAAA9 #define T_UTF_32_TAI_VIET_LETTER_LOW_VO 0xAAAA #define T_UTF_32_TAI_VIET_LETTER_HIGH_VO 0xAAAB #define T_UTF_32_TAI_VIET_LETTER_LOW_HO 0xAAAC #define T_UTF_32_TAI_VIET_LETTER_HIGH_HO 0xAAAD #define T_UTF_32_TAI_VIET_LETTER_LOW_O 0xAAAE #define T_UTF_32_TAI_VIET_LETTER_HIGH_O 0xAAAF #define T_UTF_32_TAI_VIET_MAI_KANG 0xAAB0 #define T_UTF_32_TAI_VIET_VOWEL_AA 0xAAB1 #define T_UTF_32_TAI_VIET_VOWEL_I 0xAAB2 #define T_UTF_32_TAI_VIET_VOWEL_UE 0xAAB3 #define T_UTF_32_TAI_VIET_VOWEL_U 0xAAB4 #define T_UTF_32_TAI_VIET_VOWEL_E 0xAAB5 #define T_UTF_32_TAI_VIET_VOWEL_O 0xAAB6 #define T_UTF_32_TAI_VIET_MAI_KHIT 0xAAB7 #define T_UTF_32_TAI_VIET_VOWEL_IA 0xAAB8 #define T_UTF_32_TAI_VIET_VOWEL_UEA 0xAAB9 #define T_UTF_32_TAI_VIET_VOWEL_UA 0xAABA #define T_UTF_32_TAI_VIET_VOWEL_AUE 0xAABB #define T_UTF_32_TAI_VIET_VOWEL_AY 0xAABC #define T_UTF_32_TAI_VIET_VOWEL_AN 0xAABD #define T_UTF_32_TAI_VIET_VOWEL_AM 0xAABE #define T_UTF_32_TAI_VIET_TONE_MAI_EK 0xAABF #define T_UTF_32_TAI_VIET_TONE_MAI_NUENG 0xAAC0 #define T_UTF_32_TAI_VIET_TONE_MAI_THO 0xAAC1 #define T_UTF_32_TAI_VIET_TONE_MAI_SONG 0xAAC2 #define T_UTF_32_TAI_VIET_SYMBOL_KON 0xAADB #define T_UTF_32_TAI_VIET_SYMBOL_NUENG 0xAADC #define T_UTF_32_TAI_VIET_SYMBOL_SAM 0xAADD #define T_UTF_32_TAI_VIET_SYMBOL_HO_HOI 0xAADE #define T_UTF_32_TAI_VIET_SYMBOL_KOI_KOI 0xAADF #define T_UTF_32_MEETEI_MAYEK_LETTER_E 0xAAE0 #define T_UTF_32_MEETEI_MAYEK_LETTER_O 0xAAE1 #define T_UTF_32_MEETEI_MAYEK_LETTER_CHA 0xAAE2 #define T_UTF_32_MEETEI_MAYEK_LETTER_NYA 0xAAE3 #define T_UTF_32_MEETEI_MAYEK_LETTER_TTA 0xAAE4 #define T_UTF_32_MEETEI_MAYEK_LETTER_TTHA 0xAAE5 #define T_UTF_32_MEETEI_MAYEK_LETTER_DDA 0xAAE6 #define T_UTF_32_MEETEI_MAYEK_LETTER_DDHA 0xAAE7 #define T_UTF_32_MEETEI_MAYEK_LETTER_NNA 0xAAE8 #define T_UTF_32_MEETEI_MAYEK_LETTER_SHA 0xAAE9 #define T_UTF_32_MEETEI_MAYEK_LETTER_SSA 0xAAEA #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_II 0xAAEB #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_UU 0xAAEC #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_AAI 0xAAED #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_AU 0xAAEE #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_AAU 0xAAEF #define T_UTF_32_MEETEI_MAYEK_CHEIKHAN 0xAAF0 #define T_UTF_32_MEETEI_MAYEK_AHANG_KHUDAM 0xAAF1 #define T_UTF_32_MEETEI_MAYEK_ANJI 0xAAF2 #define T_UTF_32_MEETEI_MAYEK_SYLLABLE_REPETITION_MARK 0xAAF3 #define T_UTF_32_MEETEI_MAYEK_WORD_REPETITION_MARK 0xAAF4 #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_VISARGA 0xAAF5 #define T_UTF_32_MEETEI_MAYEK_VIRAMA 0xAAF6 #define T_UTF_32_ETHIOPIC_SYLLABLE_TTHU 0xAB01 #define T_UTF_32_ETHIOPIC_SYLLABLE_TTHI 0xAB02 #define T_UTF_32_ETHIOPIC_SYLLABLE_TTHAA 0xAB03 #define T_UTF_32_ETHIOPIC_SYLLABLE_TTHEE 0xAB04 #define T_UTF_32_ETHIOPIC_SYLLABLE_TTHE 0xAB05 #define T_UTF_32_ETHIOPIC_SYLLABLE_TTHO 0xAB06 #define T_UTF_32_ETHIOPIC_SYLLABLE_DDHU 0xAB09 #define T_UTF_32_ETHIOPIC_SYLLABLE_DDHI 0xAB0A #define T_UTF_32_ETHIOPIC_SYLLABLE_DDHAA 0xAB0B #define T_UTF_32_ETHIOPIC_SYLLABLE_DDHEE 0xAB0C #define T_UTF_32_ETHIOPIC_SYLLABLE_DDHE 0xAB0D #define T_UTF_32_ETHIOPIC_SYLLABLE_DDHO 0xAB0E #define T_UTF_32_ETHIOPIC_SYLLABLE_DZU 0xAB11 #define T_UTF_32_ETHIOPIC_SYLLABLE_DZI 0xAB12 #define T_UTF_32_ETHIOPIC_SYLLABLE_DZAA 0xAB13 #define T_UTF_32_ETHIOPIC_SYLLABLE_DZEE 0xAB14 #define T_UTF_32_ETHIOPIC_SYLLABLE_DZE 0xAB15 #define T_UTF_32_ETHIOPIC_SYLLABLE_DZO 0xAB16 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHHA 0xAB20 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHHU 0xAB21 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHHI 0xAB22 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHHAA 0xAB23 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHHEE 0xAB24 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHHE 0xAB25 #define T_UTF_32_ETHIOPIC_SYLLABLE_CCHHO 0xAB26 #define T_UTF_32_ETHIOPIC_SYLLABLE_BBA 0xAB28 #define T_UTF_32_ETHIOPIC_SYLLABLE_BBU 0xAB29 #define T_UTF_32_ETHIOPIC_SYLLABLE_BBI 0xAB2A #define T_UTF_32_ETHIOPIC_SYLLABLE_BBAA 0xAB2B #define T_UTF_32_ETHIOPIC_SYLLABLE_BBEE 0xAB2C #define T_UTF_32_ETHIOPIC_SYLLABLE_BBE 0xAB2D #define T_UTF_32_ETHIOPIC_SYLLABLE_BBO 0xAB2E #define T_UTF_32_LATIN_SMALL_LETTER_BARRED_ALPHA 0xAB30 #define T_UTF_32_LATIN_SMALL_LETTER_A_REVERSED_SCHWA 0xAB31 #define T_UTF_32_LATIN_SMALL_LETTER_BLACKLETTER_E 0xAB32 #define T_UTF_32_LATIN_SMALL_LETTER_BARRED_E 0xAB33 #define T_UTF_32_LATIN_SMALL_LETTER_E_WITH_FLOURISH 0xAB34 #define T_UTF_32_LATIN_SMALL_LETTER_LENIS_F 0xAB35 #define T_UTF_32_LATIN_SMALL_LETTER_SCRIPT_G_WITH_CROSSED_TAIL 0xAB36 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_INVERTED_LAZY_S 0xAB37 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_DOUBLE_MIDDLE_TILDE 0xAB38 #define T_UTF_32_LATIN_SMALL_LETTER_L_WITH_MIDDLE_RING 0xAB39 #define T_UTF_32_LATIN_SMALL_LETTER_M_WITH_CROSSED_TAIL 0xAB3A #define T_UTF_32_LATIN_SMALL_LETTER_N_WITH_CROSSED_TAIL 0xAB3B #define T_UTF_32_LATIN_SMALL_LETTER_ENG_WITH_CROSSED_TAIL 0xAB3C #define T_UTF_32_LATIN_SMALL_LETTER_BLACKLETTER_O 0xAB3D #define T_UTF_32_LATIN_SMALL_LETTER_BLACKLETTER_O_WITH_STROKE 0xAB3E #define T_UTF_32_LATIN_SMALL_LETTER_OPEN_O_WITH_STROKE 0xAB3F #define T_UTF_32_LATIN_SMALL_LETTER_INVERTED_OE 0xAB40 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_OE_WITH_STROKE 0xAB41 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_OE_WITH_HORIZONTAL_STROKE 0xAB42 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_O_OPEN_O 0xAB43 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_O_OPEN_O_WITH_STROKE 0xAB44 #define T_UTF_32_LATIN_SMALL_LETTER_STIRRUP_R 0xAB45 #define T_UTF_32_LATIN_LETTER_SMALL_CAPITAL_R_WITH_RIGHT_LEG 0xAB46 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITHOUT_HANDLE 0xAB47 #define T_UTF_32_LATIN_SMALL_LETTER_DOUBLE_R 0xAB48 #define T_UTF_32_LATIN_SMALL_LETTER_R_WITH_CROSSED_TAIL 0xAB49 #define T_UTF_32_LATIN_SMALL_LETTER_DOUBLE_R_WITH_CROSSED_TAIL 0xAB4A #define T_UTF_32_LATIN_SMALL_LETTER_SCRIPT_R 0xAB4B #define T_UTF_32_LATIN_SMALL_LETTER_SCRIPT_R_WITH_RING 0xAB4C #define T_UTF_32_LATIN_SMALL_LETTER_BASELINE_ESH 0xAB4D #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_SHORT_RIGHT_LEG 0xAB4E #define T_UTF_32_LATIN_SMALL_LETTER_U_BAR_WITH_SHORT_RIGHT_LEG 0xAB4F #define T_UTF_32_LATIN_SMALL_LETTER_UI 0xAB50 #define T_UTF_32_LATIN_SMALL_LETTER_TURNED_UI 0xAB51 #define T_UTF_32_LATIN_SMALL_LETTER_U_WITH_LEFT_HOOK 0xAB52 #define T_UTF_32_LATIN_SMALL_LETTER_CHI 0xAB53 #define T_UTF_32_LATIN_SMALL_LETTER_CHI_WITH_LOW_RIGHT_RING 0xAB54 #define T_UTF_32_LATIN_SMALL_LETTER_CHI_WITH_LOW_LEFT_SERIF 0xAB55 #define T_UTF_32_LATIN_SMALL_LETTER_X_WITH_LOW_RIGHT_RING 0xAB56 #define T_UTF_32_LATIN_SMALL_LETTER_X_WITH_LONG_LEFT_LEG 0xAB57 #define T_UTF_32_LATIN_SMALL_LETTER_X_WITH_LONG_LEFT_LEG_AND_LOW_RIGHT_RING 0xAB58 #define T_UTF_32_LATIN_SMALL_LETTER_X_WITH_LONG_LEFT_LEG_WITH_SERIF 0xAB59 #define T_UTF_32_LATIN_SMALL_LETTER_Y_WITH_SHORT_RIGHT_LEG 0xAB5A #define T_UTF_32_MODIFIER_BREVE_WITH_INVERTED_BREVE 0xAB5B #define T_UTF_32_MODIFIER_LETTER_SMALL_HENG 0xAB5C #define T_UTF_32_MODIFIER_LETTER_SMALL_L_WITH_INVERTED_LAZY_S 0xAB5D #define T_UTF_32_MODIFIER_LETTER_SMALL_L_WITH_MIDDLE_TILDE 0xAB5E #define T_UTF_32_MODIFIER_LETTER_SMALL_U_WITH_LEFT_HOOK 0xAB5F #define T_UTF_32_LATIN_SMALL_LETTER_SAKHA_YAT 0xAB60 #define T_UTF_32_LATIN_SMALL_LETTER_IOTIFIED_E 0xAB61 #define T_UTF_32_LATIN_SMALL_LETTER_OPEN_OE 0xAB62 #define T_UTF_32_LATIN_SMALL_LETTER_UO 0xAB63 #define T_UTF_32_LATIN_SMALL_LETTER_INVERTED_ALPHA 0xAB64 #define T_UTF_32_GREEK_LETTER_SMALL_CAPITAL_OMEGA 0xAB65 #define T_UTF_32_CHEROKEE_SMALL_LETTER_A 0xAB70 #define T_UTF_32_CHEROKEE_SMALL_LETTER_E 0xAB71 #define T_UTF_32_CHEROKEE_SMALL_LETTER_I 0xAB72 #define T_UTF_32_CHEROKEE_SMALL_LETTER_O 0xAB73 #define T_UTF_32_CHEROKEE_SMALL_LETTER_U 0xAB74 #define T_UTF_32_CHEROKEE_SMALL_LETTER_V 0xAB75 #define T_UTF_32_CHEROKEE_SMALL_LETTER_GA 0xAB76 #define T_UTF_32_CHEROKEE_SMALL_LETTER_KA 0xAB77 #define T_UTF_32_CHEROKEE_SMALL_LETTER_GE 0xAB78 #define T_UTF_32_CHEROKEE_SMALL_LETTER_GI 0xAB79 #define T_UTF_32_CHEROKEE_SMALL_LETTER_GO 0xAB7A #define T_UTF_32_CHEROKEE_SMALL_LETTER_GU 0xAB7B #define T_UTF_32_CHEROKEE_SMALL_LETTER_GV 0xAB7C #define T_UTF_32_CHEROKEE_SMALL_LETTER_HA 0xAB7D #define T_UTF_32_CHEROKEE_SMALL_LETTER_HE 0xAB7E #define T_UTF_32_CHEROKEE_SMALL_LETTER_HI 0xAB7F #define T_UTF_32_CHEROKEE_SMALL_LETTER_HO 0xAB80 #define T_UTF_32_CHEROKEE_SMALL_LETTER_HU 0xAB81 #define T_UTF_32_CHEROKEE_SMALL_LETTER_HV 0xAB82 #define T_UTF_32_CHEROKEE_SMALL_LETTER_LA 0xAB83 #define T_UTF_32_CHEROKEE_SMALL_LETTER_LE 0xAB84 #define T_UTF_32_CHEROKEE_SMALL_LETTER_LI 0xAB85 #define T_UTF_32_CHEROKEE_SMALL_LETTER_LO 0xAB86 #define T_UTF_32_CHEROKEE_SMALL_LETTER_LU 0xAB87 #define T_UTF_32_CHEROKEE_SMALL_LETTER_LV 0xAB88 #define T_UTF_32_CHEROKEE_SMALL_LETTER_MA 0xAB89 #define T_UTF_32_CHEROKEE_SMALL_LETTER_ME 0xAB8A #define T_UTF_32_CHEROKEE_SMALL_LETTER_MI 0xAB8B #define T_UTF_32_CHEROKEE_SMALL_LETTER_MO 0xAB8C #define T_UTF_32_CHEROKEE_SMALL_LETTER_MU 0xAB8D #define T_UTF_32_CHEROKEE_SMALL_LETTER_NA 0xAB8E #define T_UTF_32_CHEROKEE_SMALL_LETTER_HNA 0xAB8F #define T_UTF_32_CHEROKEE_SMALL_LETTER_NAH 0xAB90 #define T_UTF_32_CHEROKEE_SMALL_LETTER_NE 0xAB91 #define T_UTF_32_CHEROKEE_SMALL_LETTER_NI 0xAB92 #define T_UTF_32_CHEROKEE_SMALL_LETTER_NO 0xAB93 #define T_UTF_32_CHEROKEE_SMALL_LETTER_NU 0xAB94 #define T_UTF_32_CHEROKEE_SMALL_LETTER_NV 0xAB95 #define T_UTF_32_CHEROKEE_SMALL_LETTER_QUA 0xAB96 #define T_UTF_32_CHEROKEE_SMALL_LETTER_QUE 0xAB97 #define T_UTF_32_CHEROKEE_SMALL_LETTER_QUI 0xAB98 #define T_UTF_32_CHEROKEE_SMALL_LETTER_QUO 0xAB99 #define T_UTF_32_CHEROKEE_SMALL_LETTER_QUU 0xAB9A #define T_UTF_32_CHEROKEE_SMALL_LETTER_QUV 0xAB9B #define T_UTF_32_CHEROKEE_SMALL_LETTER_SA 0xAB9C #define T_UTF_32_CHEROKEE_SMALL_LETTER_S 0xAB9D #define T_UTF_32_CHEROKEE_SMALL_LETTER_SE 0xAB9E #define T_UTF_32_CHEROKEE_SMALL_LETTER_SI 0xAB9F #define T_UTF_32_CHEROKEE_SMALL_LETTER_SO 0xABA0 #define T_UTF_32_CHEROKEE_SMALL_LETTER_SU 0xABA1 #define T_UTF_32_CHEROKEE_SMALL_LETTER_SV 0xABA2 #define T_UTF_32_CHEROKEE_SMALL_LETTER_DA 0xABA3 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TA 0xABA4 #define T_UTF_32_CHEROKEE_SMALL_LETTER_DE 0xABA5 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TE 0xABA6 #define T_UTF_32_CHEROKEE_SMALL_LETTER_DI 0xABA7 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TI 0xABA8 #define T_UTF_32_CHEROKEE_SMALL_LETTER_DO 0xABA9 #define T_UTF_32_CHEROKEE_SMALL_LETTER_DU 0xABAA #define T_UTF_32_CHEROKEE_SMALL_LETTER_DV 0xABAB #define T_UTF_32_CHEROKEE_SMALL_LETTER_DLA 0xABAC #define T_UTF_32_CHEROKEE_SMALL_LETTER_TLA 0xABAD #define T_UTF_32_CHEROKEE_SMALL_LETTER_TLE 0xABAE #define T_UTF_32_CHEROKEE_SMALL_LETTER_TLI 0xABAF #define T_UTF_32_CHEROKEE_SMALL_LETTER_TLO 0xABB0 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TLU 0xABB1 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TLV 0xABB2 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TSA 0xABB3 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TSE 0xABB4 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TSI 0xABB5 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TSO 0xABB6 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TSU 0xABB7 #define T_UTF_32_CHEROKEE_SMALL_LETTER_TSV 0xABB8 #define T_UTF_32_CHEROKEE_SMALL_LETTER_WA 0xABB9 #define T_UTF_32_CHEROKEE_SMALL_LETTER_WE 0xABBA #define T_UTF_32_CHEROKEE_SMALL_LETTER_WI 0xABBB #define T_UTF_32_CHEROKEE_SMALL_LETTER_WO 0xABBC #define T_UTF_32_CHEROKEE_SMALL_LETTER_WU 0xABBD #define T_UTF_32_CHEROKEE_SMALL_LETTER_WV 0xABBE #define T_UTF_32_CHEROKEE_SMALL_LETTER_YA 0xABBF #define T_UTF_32_MEETEI_MAYEK_LETTER_KOK 0xABC0 #define T_UTF_32_MEETEI_MAYEK_LETTER_SAM 0xABC1 #define T_UTF_32_MEETEI_MAYEK_LETTER_LAI 0xABC2 #define T_UTF_32_MEETEI_MAYEK_LETTER_MIT 0xABC3 #define T_UTF_32_MEETEI_MAYEK_LETTER_PA 0xABC4 #define T_UTF_32_MEETEI_MAYEK_LETTER_NA 0xABC5 #define T_UTF_32_MEETEI_MAYEK_LETTER_CHIL 0xABC6 #define T_UTF_32_MEETEI_MAYEK_LETTER_TIL 0xABC7 #define T_UTF_32_MEETEI_MAYEK_LETTER_KHOU 0xABC8 #define T_UTF_32_MEETEI_MAYEK_LETTER_NGOU 0xABC9 #define T_UTF_32_MEETEI_MAYEK_LETTER_THOU 0xABCA #define T_UTF_32_MEETEI_MAYEK_LETTER_WAI 0xABCB #define T_UTF_32_MEETEI_MAYEK_LETTER_YANG 0xABCC #define T_UTF_32_MEETEI_MAYEK_LETTER_HUK 0xABCD #define T_UTF_32_MEETEI_MAYEK_LETTER_UN 0xABCE #define T_UTF_32_MEETEI_MAYEK_LETTER_I 0xABCF #define T_UTF_32_MEETEI_MAYEK_LETTER_PHAM 0xABD0 #define T_UTF_32_MEETEI_MAYEK_LETTER_ATIYA 0xABD1 #define T_UTF_32_MEETEI_MAYEK_LETTER_GOK 0xABD2 #define T_UTF_32_MEETEI_MAYEK_LETTER_JHAM 0xABD3 #define T_UTF_32_MEETEI_MAYEK_LETTER_RAI 0xABD4 #define T_UTF_32_MEETEI_MAYEK_LETTER_BA 0xABD5 #define T_UTF_32_MEETEI_MAYEK_LETTER_JIL 0xABD6 #define T_UTF_32_MEETEI_MAYEK_LETTER_DIL 0xABD7 #define T_UTF_32_MEETEI_MAYEK_LETTER_GHOU 0xABD8 #define T_UTF_32_MEETEI_MAYEK_LETTER_DHOU 0xABD9 #define T_UTF_32_MEETEI_MAYEK_LETTER_BHAM 0xABDA #define T_UTF_32_MEETEI_MAYEK_LETTER_KOK_LONSUM 0xABDB #define T_UTF_32_MEETEI_MAYEK_LETTER_LAI_LONSUM 0xABDC #define T_UTF_32_MEETEI_MAYEK_LETTER_MIT_LONSUM 0xABDD #define T_UTF_32_MEETEI_MAYEK_LETTER_PA_LONSUM 0xABDE #define T_UTF_32_MEETEI_MAYEK_LETTER_NA_LONSUM 0xABDF #define T_UTF_32_MEETEI_MAYEK_LETTER_TIL_LONSUM 0xABE0 #define T_UTF_32_MEETEI_MAYEK_LETTER_NGOU_LONSUM 0xABE1 #define T_UTF_32_MEETEI_MAYEK_LETTER_I_LONSUM 0xABE2 #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_ONAP 0xABE3 #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_INAP 0xABE4 #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_ANAP 0xABE5 #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_YENAP 0xABE6 #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_SOUNAP 0xABE7 #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_UNAP 0xABE8 #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_CHEINAP 0xABE9 #define T_UTF_32_MEETEI_MAYEK_VOWEL_SIGN_NUNG 0xABEA #define T_UTF_32_MEETEI_MAYEK_CHEIKHEI 0xABEB #define T_UTF_32_MEETEI_MAYEK_LUM_IYEK 0xABEC #define T_UTF_32_MEETEI_MAYEK_APUN_IYEK 0xABED #define T_UTF_32_MEETEI_MAYEK_DIGIT_ZERO 0xABF0 #define T_UTF_32_MEETEI_MAYEK_DIGIT_ONE 0xABF1 #define T_UTF_32_MEETEI_MAYEK_DIGIT_TWO 0xABF2 #define T_UTF_32_MEETEI_MAYEK_DIGIT_THREE 0xABF3 #define T_UTF_32_MEETEI_MAYEK_DIGIT_FOUR 0xABF4 #define T_UTF_32_MEETEI_MAYEK_DIGIT_FIVE 0xABF5 #define T_UTF_32_MEETEI_MAYEK_DIGIT_SIX 0xABF6 #define T_UTF_32_MEETEI_MAYEK_DIGIT_SEVEN 0xABF7 #define T_UTF_32_MEETEI_MAYEK_DIGIT_EIGHT 0xABF8 #define T_UTF_32_MEETEI_MAYEK_DIGIT_NINE 0xABF9 #define T_UTF_32_HANGUL_JUNGSEONG_O_YEO 0xD7B0 #define T_UTF_32_HANGUL_JUNGSEONG_O_O_I 0xD7B1 #define T_UTF_32_HANGUL_JUNGSEONG_YO_A 0xD7B2 #define T_UTF_32_HANGUL_JUNGSEONG_YO_AE 0xD7B3 #define T_UTF_32_HANGUL_JUNGSEONG_YO_EO 0xD7B4 #define T_UTF_32_HANGUL_JUNGSEONG_U_YEO 0xD7B5 #define T_UTF_32_HANGUL_JUNGSEONG_U_I_I 0xD7B6 #define T_UTF_32_HANGUL_JUNGSEONG_YU_AE 0xD7B7 #define T_UTF_32_HANGUL_JUNGSEONG_YU_O 0xD7B8 #define T_UTF_32_HANGUL_JUNGSEONG_EU_A 0xD7B9 #define T_UTF_32_HANGUL_JUNGSEONG_EU_EO 0xD7BA #define T_UTF_32_HANGUL_JUNGSEONG_EU_E 0xD7BB #define T_UTF_32_HANGUL_JUNGSEONG_EU_O 0xD7BC #define T_UTF_32_HANGUL_JUNGSEONG_I_YA_O 0xD7BD #define T_UTF_32_HANGUL_JUNGSEONG_I_YAE 0xD7BE #define T_UTF_32_HANGUL_JUNGSEONG_I_YEO 0xD7BF #define T_UTF_32_HANGUL_JUNGSEONG_I_YE 0xD7C0 #define T_UTF_32_HANGUL_JUNGSEONG_I_O_I 0xD7C1 #define T_UTF_32_HANGUL_JUNGSEONG_I_YO 0xD7C2 #define T_UTF_32_HANGUL_JUNGSEONG_I_YU 0xD7C3 #define T_UTF_32_HANGUL_JUNGSEONG_I_I 0xD7C4 #define T_UTF_32_HANGUL_JUNGSEONG_ARAEA_A 0xD7C5 #define T_UTF_32_HANGUL_JUNGSEONG_ARAEA_E 0xD7C6 #define T_UTF_32_HANGUL_JONGSEONG_NIEUN_RIEUL 0xD7CB #define T_UTF_32_HANGUL_JONGSEONG_NIEUN_CHIEUCH 0xD7CC #define T_UTF_32_HANGUL_JONGSEONG_SSANGTIKEUT 0xD7CD #define T_UTF_32_HANGUL_JONGSEONG_SSANGTIKEUT_PIEUP 0xD7CE #define T_UTF_32_HANGUL_JONGSEONG_TIKEUT_PIEUP 0xD7CF #define T_UTF_32_HANGUL_JONGSEONG_TIKEUT_SIOS 0xD7D0 #define T_UTF_32_HANGUL_JONGSEONG_TIKEUT_SIOS_KIYEOK 0xD7D1 #define T_UTF_32_HANGUL_JONGSEONG_TIKEUT_CIEUC 0xD7D2 #define T_UTF_32_HANGUL_JONGSEONG_TIKEUT_CHIEUCH 0xD7D3 #define T_UTF_32_HANGUL_JONGSEONG_TIKEUT_THIEUTH 0xD7D4 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_SSANGKIYEOK 0xD7D5 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_KIYEOK_HIEUH 0xD7D6 #define T_UTF_32_HANGUL_JONGSEONG_SSANGRIEUL_KHIEUKH 0xD7D7 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_MIEUM_HIEUH 0xD7D8 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_PIEUP_TIKEUT 0xD7D9 #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_PIEUP_PHIEUPH 0xD7DA #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_YESIEUNG 0xD7DB #define T_UTF_32_HANGUL_JONGSEONG_RIEUL_YEORINHIEUH_HIEUH 0xD7DC #define T_UTF_32_HANGUL_JONGSEONG_KAPYEOUNRIEUL 0xD7DD #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_NIEUN 0xD7DE #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_SSANGNIEUN 0xD7DF #define T_UTF_32_HANGUL_JONGSEONG_SSANGMIEUM 0xD7E0 #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_PIEUP_SIOS 0xD7E1 #define T_UTF_32_HANGUL_JONGSEONG_MIEUM_CIEUC 0xD7E2 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP_TIKEUT 0xD7E3 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP_RIEUL_PHIEUPH 0xD7E4 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP_MIEUM 0xD7E5 #define T_UTF_32_HANGUL_JONGSEONG_SSANGPIEUP 0xD7E6 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP_SIOS_TIKEUT 0xD7E7 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP_CIEUC 0xD7E8 #define T_UTF_32_HANGUL_JONGSEONG_PIEUP_CHIEUCH 0xD7E9 #define T_UTF_32_HANGUL_JONGSEONG_SIOS_MIEUM 0xD7EA #define T_UTF_32_HANGUL_JONGSEONG_SIOS_KAPYEOUNPIEUP 0xD7EB #define T_UTF_32_HANGUL_JONGSEONG_SSANGSIOS_KIYEOK 0xD7EC #define T_UTF_32_HANGUL_JONGSEONG_SSANGSIOS_TIKEUT 0xD7ED #define T_UTF_32_HANGUL_JONGSEONG_SIOS_PANSIOS 0xD7EE #define T_UTF_32_HANGUL_JONGSEONG_SIOS_CIEUC 0xD7EF #define T_UTF_32_HANGUL_JONGSEONG_SIOS_CHIEUCH 0xD7F0 #define T_UTF_32_HANGUL_JONGSEONG_SIOS_THIEUTH 0xD7F1 #define T_UTF_32_HANGUL_JONGSEONG_SIOS_HIEUH 0xD7F2 #define T_UTF_32_HANGUL_JONGSEONG_PANSIOS_PIEUP 0xD7F3 #define T_UTF_32_HANGUL_JONGSEONG_PANSIOS_KAPYEOUNPIEUP 0xD7F4 #define T_UTF_32_HANGUL_JONGSEONG_YESIEUNG_MIEUM 0xD7F5 #define T_UTF_32_HANGUL_JONGSEONG_YESIEUNG_HIEUH 0xD7F6 #define T_UTF_32_HANGUL_JONGSEONG_CIEUC_PIEUP 0xD7F7 #define T_UTF_32_HANGUL_JONGSEONG_CIEUC_SSANGPIEUP 0xD7F8 #define T_UTF_32_HANGUL_JONGSEONG_SSANGCIEUC 0xD7F9 #define T_UTF_32_HANGUL_JONGSEONG_PHIEUPH_SIOS 0xD7FA #define T_UTF_32_HANGUL_JONGSEONG_PHIEUPH_THIEUTH 0xD7FB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F900 0xF900 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F901 0xF901 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F902 0xF902 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F903 0xF903 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F904 0xF904 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F905 0xF905 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F906 0xF906 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F907 0xF907 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F908 0xF908 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F909 0xF909 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F90A 0xF90A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F90B 0xF90B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F90C 0xF90C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F90D 0xF90D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F90E 0xF90E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F90F 0xF90F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F910 0xF910 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F911 0xF911 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F912 0xF912 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F913 0xF913 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F914 0xF914 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F915 0xF915 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F916 0xF916 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F917 0xF917 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F918 0xF918 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F919 0xF919 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F91A 0xF91A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F91B 0xF91B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F91C 0xF91C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F91D 0xF91D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F91E 0xF91E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F91F 0xF91F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F920 0xF920 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F921 0xF921 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F922 0xF922 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F923 0xF923 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F924 0xF924 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F925 0xF925 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F926 0xF926 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F927 0xF927 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F928 0xF928 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F929 0xF929 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F92A 0xF92A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F92B 0xF92B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F92C 0xF92C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F92D 0xF92D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F92E 0xF92E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F92F 0xF92F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F930 0xF930 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F931 0xF931 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F932 0xF932 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F933 0xF933 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F934 0xF934 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F935 0xF935 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F936 0xF936 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F937 0xF937 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F938 0xF938 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F939 0xF939 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F93A 0xF93A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F93B 0xF93B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F93C 0xF93C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F93D 0xF93D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F93E 0xF93E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F93F 0xF93F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F940 0xF940 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F941 0xF941 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F942 0xF942 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F943 0xF943 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F944 0xF944 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F945 0xF945 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F946 0xF946 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F947 0xF947 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F948 0xF948 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F949 0xF949 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F94A 0xF94A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F94B 0xF94B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F94C 0xF94C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F94D 0xF94D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F94E 0xF94E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F94F 0xF94F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F950 0xF950 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F951 0xF951 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F952 0xF952 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F953 0xF953 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F954 0xF954 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F955 0xF955 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F956 0xF956 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F957 0xF957 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F958 0xF958 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F959 0xF959 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F95A 0xF95A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F95B 0xF95B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F95C 0xF95C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F95D 0xF95D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F95E 0xF95E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F95F 0xF95F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F960 0xF960 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F961 0xF961 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F962 0xF962 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F963 0xF963 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F964 0xF964 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F965 0xF965 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F966 0xF966 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F967 0xF967 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F968 0xF968 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F969 0xF969 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F96A 0xF96A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F96B 0xF96B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F96C 0xF96C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F96D 0xF96D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F96E 0xF96E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F96F 0xF96F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F970 0xF970 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F971 0xF971 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F972 0xF972 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F973 0xF973 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F974 0xF974 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F975 0xF975 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F976 0xF976 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F977 0xF977 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F978 0xF978 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F979 0xF979 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F97A 0xF97A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F97B 0xF97B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F97C 0xF97C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F97D 0xF97D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F97E 0xF97E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F97F 0xF97F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F980 0xF980 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F981 0xF981 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F982 0xF982 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F983 0xF983 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F984 0xF984 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F985 0xF985 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F986 0xF986 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F987 0xF987 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F988 0xF988 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F989 0xF989 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F98A 0xF98A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F98B 0xF98B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F98C 0xF98C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F98D 0xF98D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F98E 0xF98E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F98F 0xF98F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F990 0xF990 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F991 0xF991 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F992 0xF992 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F993 0xF993 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F994 0xF994 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F995 0xF995 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F996 0xF996 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F997 0xF997 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F998 0xF998 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F999 0xF999 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F99A 0xF99A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F99B 0xF99B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F99C 0xF99C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F99D 0xF99D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F99E 0xF99E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F99F 0xF99F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9A0 0xF9A0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9A1 0xF9A1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9A2 0xF9A2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9A3 0xF9A3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9A4 0xF9A4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9A5 0xF9A5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9A6 0xF9A6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9A7 0xF9A7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9A8 0xF9A8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9A9 0xF9A9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9AA 0xF9AA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9AB 0xF9AB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9AC 0xF9AC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9AD 0xF9AD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9AE 0xF9AE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9AF 0xF9AF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9B0 0xF9B0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9B1 0xF9B1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9B2 0xF9B2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9B3 0xF9B3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9B4 0xF9B4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9B5 0xF9B5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9B6 0xF9B6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9B7 0xF9B7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9B8 0xF9B8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9B9 0xF9B9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9BA 0xF9BA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9BB 0xF9BB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9BC 0xF9BC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9BD 0xF9BD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9BE 0xF9BE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9BF 0xF9BF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9C0 0xF9C0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9C1 0xF9C1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9C2 0xF9C2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9C3 0xF9C3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9C4 0xF9C4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9C5 0xF9C5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9C6 0xF9C6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9C7 0xF9C7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9C8 0xF9C8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9C9 0xF9C9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9CA 0xF9CA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9CB 0xF9CB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9CC 0xF9CC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9CD 0xF9CD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9CE 0xF9CE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9CF 0xF9CF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9D0 0xF9D0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9D1 0xF9D1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9D2 0xF9D2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9D3 0xF9D3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9D4 0xF9D4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9D5 0xF9D5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9D6 0xF9D6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9D7 0xF9D7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9D8 0xF9D8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9D9 0xF9D9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9DA 0xF9DA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9DB 0xF9DB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9DC 0xF9DC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9DD 0xF9DD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9DE 0xF9DE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9DF 0xF9DF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9E0 0xF9E0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9E1 0xF9E1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9E2 0xF9E2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9E3 0xF9E3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9E4 0xF9E4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9E5 0xF9E5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9E6 0xF9E6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9E7 0xF9E7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9E8 0xF9E8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9E9 0xF9E9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9EA 0xF9EA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9EB 0xF9EB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9EC 0xF9EC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9ED 0xF9ED #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9EE 0xF9EE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9EF 0xF9EF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9F0 0xF9F0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9F1 0xF9F1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9F2 0xF9F2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9F3 0xF9F3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9F4 0xF9F4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9F5 0xF9F5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9F6 0xF9F6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9F7 0xF9F7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9F8 0xF9F8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9F9 0xF9F9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9FA 0xF9FA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9FB 0xF9FB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9FC 0xF9FC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9FD 0xF9FD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9FE 0xF9FE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_F9FF 0xF9FF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA00 0xFA00 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA01 0xFA01 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA02 0xFA02 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA03 0xFA03 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA04 0xFA04 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA05 0xFA05 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA06 0xFA06 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA07 0xFA07 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA08 0xFA08 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA09 0xFA09 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA0A 0xFA0A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA0B 0xFA0B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA0C 0xFA0C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA0D 0xFA0D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA0E 0xFA0E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA0F 0xFA0F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA10 0xFA10 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA11 0xFA11 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA12 0xFA12 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA13 0xFA13 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA14 0xFA14 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA15 0xFA15 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA16 0xFA16 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA17 0xFA17 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA18 0xFA18 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA19 0xFA19 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA1A 0xFA1A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA1B 0xFA1B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA1C 0xFA1C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA1D 0xFA1D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA1E 0xFA1E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA1F 0xFA1F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA20 0xFA20 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA21 0xFA21 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA22 0xFA22 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA23 0xFA23 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA24 0xFA24 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA25 0xFA25 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA26 0xFA26 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA27 0xFA27 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA28 0xFA28 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA29 0xFA29 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA2A 0xFA2A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA2B 0xFA2B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA2C 0xFA2C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA2D 0xFA2D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA2E 0xFA2E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA2F 0xFA2F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA30 0xFA30 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA31 0xFA31 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA32 0xFA32 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA33 0xFA33 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA34 0xFA34 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA35 0xFA35 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA36 0xFA36 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA37 0xFA37 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA38 0xFA38 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA39 0xFA39 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA3A 0xFA3A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA3B 0xFA3B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA3C 0xFA3C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA3D 0xFA3D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA3E 0xFA3E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA3F 0xFA3F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA40 0xFA40 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA41 0xFA41 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA42 0xFA42 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA43 0xFA43 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA44 0xFA44 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA45 0xFA45 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA46 0xFA46 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA47 0xFA47 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA48 0xFA48 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA49 0xFA49 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA4A 0xFA4A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA4B 0xFA4B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA4C 0xFA4C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA4D 0xFA4D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA4E 0xFA4E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA4F 0xFA4F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA50 0xFA50 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA51 0xFA51 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA52 0xFA52 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA53 0xFA53 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA54 0xFA54 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA55 0xFA55 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA56 0xFA56 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA57 0xFA57 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA58 0xFA58 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA59 0xFA59 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA5A 0xFA5A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA5B 0xFA5B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA5C 0xFA5C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA5D 0xFA5D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA5E 0xFA5E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA5F 0xFA5F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA60 0xFA60 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA61 0xFA61 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA62 0xFA62 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA63 0xFA63 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA64 0xFA64 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA65 0xFA65 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA66 0xFA66 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA67 0xFA67 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA68 0xFA68 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA69 0xFA69 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA6A 0xFA6A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA6B 0xFA6B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA6C 0xFA6C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA6D 0xFA6D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA70 0xFA70 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA71 0xFA71 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA72 0xFA72 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA73 0xFA73 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA74 0xFA74 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA75 0xFA75 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA76 0xFA76 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA77 0xFA77 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA78 0xFA78 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA79 0xFA79 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA7A 0xFA7A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA7B 0xFA7B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA7C 0xFA7C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA7D 0xFA7D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA7E 0xFA7E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA7F 0xFA7F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA80 0xFA80 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA81 0xFA81 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA82 0xFA82 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA83 0xFA83 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA84 0xFA84 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA85 0xFA85 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA86 0xFA86 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA87 0xFA87 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA88 0xFA88 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA89 0xFA89 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA8A 0xFA8A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA8B 0xFA8B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA8C 0xFA8C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA8D 0xFA8D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA8E 0xFA8E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA8F 0xFA8F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA90 0xFA90 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA91 0xFA91 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA92 0xFA92 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA93 0xFA93 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA94 0xFA94 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA95 0xFA95 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA96 0xFA96 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA97 0xFA97 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA98 0xFA98 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA99 0xFA99 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA9A 0xFA9A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA9B 0xFA9B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA9C 0xFA9C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA9D 0xFA9D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA9E 0xFA9E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FA9F 0xFA9F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAA0 0xFAA0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAA1 0xFAA1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAA2 0xFAA2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAA3 0xFAA3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAA4 0xFAA4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAA5 0xFAA5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAA6 0xFAA6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAA7 0xFAA7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAA8 0xFAA8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAA9 0xFAA9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAAA 0xFAAA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAAB 0xFAAB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAAC 0xFAAC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAAD 0xFAAD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAAE 0xFAAE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAAF 0xFAAF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAB0 0xFAB0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAB1 0xFAB1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAB2 0xFAB2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAB3 0xFAB3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAB4 0xFAB4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAB5 0xFAB5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAB6 0xFAB6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAB7 0xFAB7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAB8 0xFAB8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAB9 0xFAB9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FABA 0xFABA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FABB 0xFABB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FABC 0xFABC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FABD 0xFABD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FABE 0xFABE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FABF 0xFABF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAC0 0xFAC0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAC1 0xFAC1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAC2 0xFAC2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAC3 0xFAC3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAC4 0xFAC4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAC5 0xFAC5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAC6 0xFAC6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAC7 0xFAC7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAC8 0xFAC8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAC9 0xFAC9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FACA 0xFACA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FACB 0xFACB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FACC 0xFACC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FACD 0xFACD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FACE 0xFACE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FACF 0xFACF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAD0 0xFAD0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAD1 0xFAD1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAD2 0xFAD2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAD3 0xFAD3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAD4 0xFAD4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAD5 0xFAD5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAD6 0xFAD6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAD7 0xFAD7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAD8 0xFAD8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_FAD9 0xFAD9 #define T_UTF_32_LATIN_SMALL_LIGATURE_FF 0xFB00 #define T_UTF_32_LATIN_SMALL_LIGATURE_FI 0xFB01 #define T_UTF_32_LATIN_SMALL_LIGATURE_FL 0xFB02 #define T_UTF_32_LATIN_SMALL_LIGATURE_FFI 0xFB03 #define T_UTF_32_LATIN_SMALL_LIGATURE_FFL 0xFB04 #define T_UTF_32_LATIN_SMALL_LIGATURE_LONG_S_T 0xFB05 #define T_UTF_32_LATIN_SMALL_LIGATURE_ST 0xFB06 #define T_UTF_32_ARMENIAN_SMALL_LIGATURE_MEN_NOW 0xFB13 #define T_UTF_32_ARMENIAN_SMALL_LIGATURE_MEN_ECH 0xFB14 #define T_UTF_32_ARMENIAN_SMALL_LIGATURE_MEN_INI 0xFB15 #define T_UTF_32_ARMENIAN_SMALL_LIGATURE_VEW_NOW 0xFB16 #define T_UTF_32_ARMENIAN_SMALL_LIGATURE_MEN_XEH 0xFB17 #define T_UTF_32_HEBREW_LETTER_YOD_WITH_HIRIQ 0xFB1D #define T_UTF_32_HEBREW_POINT_JUDEO_SPANISH_VARIKA 0xFB1E #define T_UTF_32_HEBREW_LIGATURE_YIDDISH_YOD_YOD_PATAH 0xFB1F #define T_UTF_32_HEBREW_LETTER_ALTERNATIVE_AYIN 0xFB20 #define T_UTF_32_HEBREW_LETTER_WIDE_ALEF 0xFB21 #define T_UTF_32_HEBREW_LETTER_WIDE_DALET 0xFB22 #define T_UTF_32_HEBREW_LETTER_WIDE_HE 0xFB23 #define T_UTF_32_HEBREW_LETTER_WIDE_KAF 0xFB24 #define T_UTF_32_HEBREW_LETTER_WIDE_LAMED 0xFB25 #define T_UTF_32_HEBREW_LETTER_WIDE_FINAL_MEM 0xFB26 #define T_UTF_32_HEBREW_LETTER_WIDE_RESH 0xFB27 #define T_UTF_32_HEBREW_LETTER_WIDE_TAV 0xFB28 #define T_UTF_32_HEBREW_LETTER_ALTERNATIVE_PLUS_SIGN 0xFB29 #define T_UTF_32_HEBREW_LETTER_SHIN_WITH_SHIN_DOT 0xFB2A #define T_UTF_32_HEBREW_LETTER_SHIN_WITH_SIN_DOT 0xFB2B #define T_UTF_32_HEBREW_LETTER_SHIN_WITH_DAGESH_AND_SHIN_DOT 0xFB2C #define T_UTF_32_HEBREW_LETTER_SHIN_WITH_DAGESH_AND_SIN_DOT 0xFB2D #define T_UTF_32_HEBREW_LETTER_ALEF_WITH_PATAH 0xFB2E #define T_UTF_32_HEBREW_LETTER_ALEF_WITH_QAMATS 0xFB2F #define T_UTF_32_HEBREW_LETTER_ALEF_WITH_MAPIQ 0xFB30 #define T_UTF_32_HEBREW_LETTER_BET_WITH_DAGESH 0xFB31 #define T_UTF_32_HEBREW_LETTER_GIMEL_WITH_DAGESH 0xFB32 #define T_UTF_32_HEBREW_LETTER_DALET_WITH_DAGESH 0xFB33 #define T_UTF_32_HEBREW_LETTER_HE_WITH_MAPIQ 0xFB34 #define T_UTF_32_HEBREW_LETTER_VAV_WITH_DAGESH 0xFB35 #define T_UTF_32_HEBREW_LETTER_ZAYIN_WITH_DAGESH 0xFB36 #define T_UTF_32_HEBREW_LETTER_TET_WITH_DAGESH 0xFB38 #define T_UTF_32_HEBREW_LETTER_YOD_WITH_DAGESH 0xFB39 #define T_UTF_32_HEBREW_LETTER_FINAL_KAF_WITH_DAGESH 0xFB3A #define T_UTF_32_HEBREW_LETTER_KAF_WITH_DAGESH 0xFB3B #define T_UTF_32_HEBREW_LETTER_LAMED_WITH_DAGESH 0xFB3C #define T_UTF_32_HEBREW_LETTER_MEM_WITH_DAGESH 0xFB3E #define T_UTF_32_HEBREW_LETTER_NUN_WITH_DAGESH 0xFB40 #define T_UTF_32_HEBREW_LETTER_SAMEKH_WITH_DAGESH 0xFB41 #define T_UTF_32_HEBREW_LETTER_FINAL_PE_WITH_DAGESH 0xFB43 #define T_UTF_32_HEBREW_LETTER_PE_WITH_DAGESH 0xFB44 #define T_UTF_32_HEBREW_LETTER_TSADI_WITH_DAGESH 0xFB46 #define T_UTF_32_HEBREW_LETTER_QOF_WITH_DAGESH 0xFB47 #define T_UTF_32_HEBREW_LETTER_RESH_WITH_DAGESH 0xFB48 #define T_UTF_32_HEBREW_LETTER_SHIN_WITH_DAGESH 0xFB49 #define T_UTF_32_HEBREW_LETTER_TAV_WITH_DAGESH 0xFB4A #define T_UTF_32_HEBREW_LETTER_VAV_WITH_HOLAM 0xFB4B #define T_UTF_32_HEBREW_LETTER_BET_WITH_RAFE 0xFB4C #define T_UTF_32_HEBREW_LETTER_KAF_WITH_RAFE 0xFB4D #define T_UTF_32_HEBREW_LETTER_PE_WITH_RAFE 0xFB4E #define T_UTF_32_HEBREW_LIGATURE_ALEF_LAMED 0xFB4F #define T_UTF_32_ARABIC_LETTER_ALEF_WASLA_ISOLATED_FORM 0xFB50 #define T_UTF_32_ARABIC_LETTER_ALEF_WASLA_FINAL_FORM 0xFB51 #define T_UTF_32_ARABIC_LETTER_BEEH_ISOLATED_FORM 0xFB52 #define T_UTF_32_ARABIC_LETTER_BEEH_FINAL_FORM 0xFB53 #define T_UTF_32_ARABIC_LETTER_BEEH_INITIAL_FORM 0xFB54 #define T_UTF_32_ARABIC_LETTER_BEEH_MEDIAL_FORM 0xFB55 #define T_UTF_32_ARABIC_LETTER_PEH_ISOLATED_FORM 0xFB56 #define T_UTF_32_ARABIC_LETTER_PEH_FINAL_FORM 0xFB57 #define T_UTF_32_ARABIC_LETTER_PEH_INITIAL_FORM 0xFB58 #define T_UTF_32_ARABIC_LETTER_PEH_MEDIAL_FORM 0xFB59 #define T_UTF_32_ARABIC_LETTER_BEHEH_ISOLATED_FORM 0xFB5A #define T_UTF_32_ARABIC_LETTER_BEHEH_FINAL_FORM 0xFB5B #define T_UTF_32_ARABIC_LETTER_BEHEH_INITIAL_FORM 0xFB5C #define T_UTF_32_ARABIC_LETTER_BEHEH_MEDIAL_FORM 0xFB5D #define T_UTF_32_ARABIC_LETTER_TTEHEH_ISOLATED_FORM 0xFB5E #define T_UTF_32_ARABIC_LETTER_TTEHEH_FINAL_FORM 0xFB5F #define T_UTF_32_ARABIC_LETTER_TTEHEH_INITIAL_FORM 0xFB60 #define T_UTF_32_ARABIC_LETTER_TTEHEH_MEDIAL_FORM 0xFB61 #define T_UTF_32_ARABIC_LETTER_TEHEH_ISOLATED_FORM 0xFB62 #define T_UTF_32_ARABIC_LETTER_TEHEH_FINAL_FORM 0xFB63 #define T_UTF_32_ARABIC_LETTER_TEHEH_INITIAL_FORM 0xFB64 #define T_UTF_32_ARABIC_LETTER_TEHEH_MEDIAL_FORM 0xFB65 #define T_UTF_32_ARABIC_LETTER_TTEH_ISOLATED_FORM 0xFB66 #define T_UTF_32_ARABIC_LETTER_TTEH_FINAL_FORM 0xFB67 #define T_UTF_32_ARABIC_LETTER_TTEH_INITIAL_FORM 0xFB68 #define T_UTF_32_ARABIC_LETTER_TTEH_MEDIAL_FORM 0xFB69 #define T_UTF_32_ARABIC_LETTER_VEH_ISOLATED_FORM 0xFB6A #define T_UTF_32_ARABIC_LETTER_VEH_FINAL_FORM 0xFB6B #define T_UTF_32_ARABIC_LETTER_VEH_INITIAL_FORM 0xFB6C #define T_UTF_32_ARABIC_LETTER_VEH_MEDIAL_FORM 0xFB6D #define T_UTF_32_ARABIC_LETTER_PEHEH_ISOLATED_FORM 0xFB6E #define T_UTF_32_ARABIC_LETTER_PEHEH_FINAL_FORM 0xFB6F #define T_UTF_32_ARABIC_LETTER_PEHEH_INITIAL_FORM 0xFB70 #define T_UTF_32_ARABIC_LETTER_PEHEH_MEDIAL_FORM 0xFB71 #define T_UTF_32_ARABIC_LETTER_DYEH_ISOLATED_FORM 0xFB72 #define T_UTF_32_ARABIC_LETTER_DYEH_FINAL_FORM 0xFB73 #define T_UTF_32_ARABIC_LETTER_DYEH_INITIAL_FORM 0xFB74 #define T_UTF_32_ARABIC_LETTER_DYEH_MEDIAL_FORM 0xFB75 #define T_UTF_32_ARABIC_LETTER_NYEH_ISOLATED_FORM 0xFB76 #define T_UTF_32_ARABIC_LETTER_NYEH_FINAL_FORM 0xFB77 #define T_UTF_32_ARABIC_LETTER_NYEH_INITIAL_FORM 0xFB78 #define T_UTF_32_ARABIC_LETTER_NYEH_MEDIAL_FORM 0xFB79 #define T_UTF_32_ARABIC_LETTER_TCHEH_ISOLATED_FORM 0xFB7A #define T_UTF_32_ARABIC_LETTER_TCHEH_FINAL_FORM 0xFB7B #define T_UTF_32_ARABIC_LETTER_TCHEH_INITIAL_FORM 0xFB7C #define T_UTF_32_ARABIC_LETTER_TCHEH_MEDIAL_FORM 0xFB7D #define T_UTF_32_ARABIC_LETTER_TCHEHEH_ISOLATED_FORM 0xFB7E #define T_UTF_32_ARABIC_LETTER_TCHEHEH_FINAL_FORM 0xFB7F #define T_UTF_32_ARABIC_LETTER_TCHEHEH_INITIAL_FORM 0xFB80 #define T_UTF_32_ARABIC_LETTER_TCHEHEH_MEDIAL_FORM 0xFB81 #define T_UTF_32_ARABIC_LETTER_DDAHAL_ISOLATED_FORM 0xFB82 #define T_UTF_32_ARABIC_LETTER_DDAHAL_FINAL_FORM 0xFB83 #define T_UTF_32_ARABIC_LETTER_DAHAL_ISOLATED_FORM 0xFB84 #define T_UTF_32_ARABIC_LETTER_DAHAL_FINAL_FORM 0xFB85 #define T_UTF_32_ARABIC_LETTER_DUL_ISOLATED_FORM 0xFB86 #define T_UTF_32_ARABIC_LETTER_DUL_FINAL_FORM 0xFB87 #define T_UTF_32_ARABIC_LETTER_DDAL_ISOLATED_FORM 0xFB88 #define T_UTF_32_ARABIC_LETTER_DDAL_FINAL_FORM 0xFB89 #define T_UTF_32_ARABIC_LETTER_JEH_ISOLATED_FORM 0xFB8A #define T_UTF_32_ARABIC_LETTER_JEH_FINAL_FORM 0xFB8B #define T_UTF_32_ARABIC_LETTER_RREH_ISOLATED_FORM 0xFB8C #define T_UTF_32_ARABIC_LETTER_RREH_FINAL_FORM 0xFB8D #define T_UTF_32_ARABIC_LETTER_KEHEH_ISOLATED_FORM 0xFB8E #define T_UTF_32_ARABIC_LETTER_KEHEH_FINAL_FORM 0xFB8F #define T_UTF_32_ARABIC_LETTER_KEHEH_INITIAL_FORM 0xFB90 #define T_UTF_32_ARABIC_LETTER_KEHEH_MEDIAL_FORM 0xFB91 #define T_UTF_32_ARABIC_LETTER_GAF_ISOLATED_FORM 0xFB92 #define T_UTF_32_ARABIC_LETTER_GAF_FINAL_FORM 0xFB93 #define T_UTF_32_ARABIC_LETTER_GAF_INITIAL_FORM 0xFB94 #define T_UTF_32_ARABIC_LETTER_GAF_MEDIAL_FORM 0xFB95 #define T_UTF_32_ARABIC_LETTER_GUEH_ISOLATED_FORM 0xFB96 #define T_UTF_32_ARABIC_LETTER_GUEH_FINAL_FORM 0xFB97 #define T_UTF_32_ARABIC_LETTER_GUEH_INITIAL_FORM 0xFB98 #define T_UTF_32_ARABIC_LETTER_GUEH_MEDIAL_FORM 0xFB99 #define T_UTF_32_ARABIC_LETTER_NGOEH_ISOLATED_FORM 0xFB9A #define T_UTF_32_ARABIC_LETTER_NGOEH_FINAL_FORM 0xFB9B #define T_UTF_32_ARABIC_LETTER_NGOEH_INITIAL_FORM 0xFB9C #define T_UTF_32_ARABIC_LETTER_NGOEH_MEDIAL_FORM 0xFB9D #define T_UTF_32_ARABIC_LETTER_NOON_GHUNNA_ISOLATED_FORM 0xFB9E #define T_UTF_32_ARABIC_LETTER_NOON_GHUNNA_FINAL_FORM 0xFB9F #define T_UTF_32_ARABIC_LETTER_RNOON_ISOLATED_FORM 0xFBA0 #define T_UTF_32_ARABIC_LETTER_RNOON_FINAL_FORM 0xFBA1 #define T_UTF_32_ARABIC_LETTER_RNOON_INITIAL_FORM 0xFBA2 #define T_UTF_32_ARABIC_LETTER_RNOON_MEDIAL_FORM 0xFBA3 #define T_UTF_32_ARABIC_LETTER_HEH_WITH_YEH_ABOVE_ISOLATED_FORM 0xFBA4 #define T_UTF_32_ARABIC_LETTER_HEH_WITH_YEH_ABOVE_FINAL_FORM 0xFBA5 #define T_UTF_32_ARABIC_LETTER_HEH_GOAL_ISOLATED_FORM 0xFBA6 #define T_UTF_32_ARABIC_LETTER_HEH_GOAL_FINAL_FORM 0xFBA7 #define T_UTF_32_ARABIC_LETTER_HEH_GOAL_INITIAL_FORM 0xFBA8 #define T_UTF_32_ARABIC_LETTER_HEH_GOAL_MEDIAL_FORM 0xFBA9 #define T_UTF_32_ARABIC_LETTER_HEH_DOACHASHMEE_ISOLATED_FORM 0xFBAA #define T_UTF_32_ARABIC_LETTER_HEH_DOACHASHMEE_FINAL_FORM 0xFBAB #define T_UTF_32_ARABIC_LETTER_HEH_DOACHASHMEE_INITIAL_FORM 0xFBAC #define T_UTF_32_ARABIC_LETTER_HEH_DOACHASHMEE_MEDIAL_FORM 0xFBAD #define T_UTF_32_ARABIC_LETTER_YEH_BARREE_ISOLATED_FORM 0xFBAE #define T_UTF_32_ARABIC_LETTER_YEH_BARREE_FINAL_FORM 0xFBAF #define T_UTF_32_ARABIC_LETTER_YEH_BARREE_WITH_HAMZA_ABOVE_ISOLATED_FORM 0xFBB0 #define T_UTF_32_ARABIC_LETTER_YEH_BARREE_WITH_HAMZA_ABOVE_FINAL_FORM 0xFBB1 #define T_UTF_32_ARABIC_SYMBOL_DOT_ABOVE 0xFBB2 #define T_UTF_32_ARABIC_SYMBOL_DOT_BELOW 0xFBB3 #define T_UTF_32_ARABIC_SYMBOL_TWO_DOTS_ABOVE 0xFBB4 #define T_UTF_32_ARABIC_SYMBOL_TWO_DOTS_BELOW 0xFBB5 #define T_UTF_32_ARABIC_SYMBOL_THREE_DOTS_ABOVE 0xFBB6 #define T_UTF_32_ARABIC_SYMBOL_THREE_DOTS_BELOW 0xFBB7 #define T_UTF_32_ARABIC_SYMBOL_THREE_DOTS_POINTING_DOWNWARDS_ABOVE 0xFBB8 #define T_UTF_32_ARABIC_SYMBOL_THREE_DOTS_POINTING_DOWNWARDS_BELOW 0xFBB9 #define T_UTF_32_ARABIC_SYMBOL_FOUR_DOTS_ABOVE 0xFBBA #define T_UTF_32_ARABIC_SYMBOL_FOUR_DOTS_BELOW 0xFBBB #define T_UTF_32_ARABIC_SYMBOL_DOUBLE_VERTICAL_BAR_BELOW 0xFBBC #define T_UTF_32_ARABIC_SYMBOL_TWO_DOTS_VERTICALLY_ABOVE 0xFBBD #define T_UTF_32_ARABIC_SYMBOL_TWO_DOTS_VERTICALLY_BELOW 0xFBBE #define T_UTF_32_ARABIC_SYMBOL_RING 0xFBBF #define T_UTF_32_ARABIC_SYMBOL_SMALL_TAH_ABOVE 0xFBC0 #define T_UTF_32_ARABIC_SYMBOL_SMALL_TAH_BELOW 0xFBC1 #define T_UTF_32_ARABIC_LETTER_NG_ISOLATED_FORM 0xFBD3 #define T_UTF_32_ARABIC_LETTER_NG_FINAL_FORM 0xFBD4 #define T_UTF_32_ARABIC_LETTER_NG_INITIAL_FORM 0xFBD5 #define T_UTF_32_ARABIC_LETTER_NG_MEDIAL_FORM 0xFBD6 #define T_UTF_32_ARABIC_LETTER_U_ISOLATED_FORM 0xFBD7 #define T_UTF_32_ARABIC_LETTER_U_FINAL_FORM 0xFBD8 #define T_UTF_32_ARABIC_LETTER_OE_ISOLATED_FORM 0xFBD9 #define T_UTF_32_ARABIC_LETTER_OE_FINAL_FORM 0xFBDA #define T_UTF_32_ARABIC_LETTER_YU_ISOLATED_FORM 0xFBDB #define T_UTF_32_ARABIC_LETTER_YU_FINAL_FORM 0xFBDC #define T_UTF_32_ARABIC_LETTER_U_WITH_HAMZA_ABOVE_ISOLATED_FORM 0xFBDD #define T_UTF_32_ARABIC_LETTER_VE_ISOLATED_FORM 0xFBDE #define T_UTF_32_ARABIC_LETTER_VE_FINAL_FORM 0xFBDF #define T_UTF_32_ARABIC_LETTER_KIRGHIZ_OE_ISOLATED_FORM 0xFBE0 #define T_UTF_32_ARABIC_LETTER_KIRGHIZ_OE_FINAL_FORM 0xFBE1 #define T_UTF_32_ARABIC_LETTER_KIRGHIZ_YU_ISOLATED_FORM 0xFBE2 #define T_UTF_32_ARABIC_LETTER_KIRGHIZ_YU_FINAL_FORM 0xFBE3 #define T_UTF_32_ARABIC_LETTER_E_ISOLATED_FORM 0xFBE4 #define T_UTF_32_ARABIC_LETTER_E_FINAL_FORM 0xFBE5 #define T_UTF_32_ARABIC_LETTER_E_INITIAL_FORM 0xFBE6 #define T_UTF_32_ARABIC_LETTER_E_MEDIAL_FORM 0xFBE7 #define T_UTF_32_ARABIC_LETTER_UIGHUR_KAZAKH_KIRGHIZ_ALEF_MAKSURA_INITIAL_FORM 0xFBE8 #define T_UTF_32_ARABIC_LETTER_UIGHUR_KAZAKH_KIRGHIZ_ALEF_MAKSURA_MEDIAL_FORM 0xFBE9 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_ALEF_ISOLATED_FORM 0xFBEA #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_ALEF_FINAL_FORM 0xFBEB #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_AE_ISOLATED_FORM 0xFBEC #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_AE_FINAL_FORM 0xFBED #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_WAW_ISOLATED_FORM 0xFBEE #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_WAW_FINAL_FORM 0xFBEF #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_U_ISOLATED_FORM 0xFBF0 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_U_FINAL_FORM 0xFBF1 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_OE_ISOLATED_FORM 0xFBF2 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_OE_FINAL_FORM 0xFBF3 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_YU_ISOLATED_FORM 0xFBF4 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_YU_FINAL_FORM 0xFBF5 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_E_ISOLATED_FORM 0xFBF6 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_E_FINAL_FORM 0xFBF7 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_E_INITIAL_FORM 0xFBF8 #define T_UTF_32_ARABIC_LIGATURE_UIGHUR_KIRGHIZ_YEH_WITH_HAMZA_ABOVE_WITH_ALEF_MAKSURA_ISOLATED_FORM \ 0xFBF9 #define T_UTF_32_ARABIC_LIGATURE_UIGHUR_KIRGHIZ_YEH_WITH_HAMZA_ABOVE_WITH_ALEF_MAKSURA_FINAL_FORM \ 0xFBFA #define T_UTF_32_ARABIC_LIGATURE_UIGHUR_KIRGHIZ_YEH_WITH_HAMZA_ABOVE_WITH_ALEF_MAKSURA_INITIAL_FORM \ 0xFBFB #define T_UTF_32_ARABIC_LETTER_FARSI_YEH_ISOLATED_FORM 0xFBFC #define T_UTF_32_ARABIC_LETTER_FARSI_YEH_FINAL_FORM 0xFBFD #define T_UTF_32_ARABIC_LETTER_FARSI_YEH_INITIAL_FORM 0xFBFE #define T_UTF_32_ARABIC_LETTER_FARSI_YEH_MEDIAL_FORM 0xFBFF #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_JEEM_ISOLATED_FORM 0xFC00 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_HAH_ISOLATED_FORM 0xFC01 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_MEEM_ISOLATED_FORM 0xFC02 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC03 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_YEH_ISOLATED_FORM 0xFC04 #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_JEEM_ISOLATED_FORM 0xFC05 #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_HAH_ISOLATED_FORM 0xFC06 #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_KHAH_ISOLATED_FORM 0xFC07 #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_MEEM_ISOLATED_FORM 0xFC08 #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC09 #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_YEH_ISOLATED_FORM 0xFC0A #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_JEEM_ISOLATED_FORM 0xFC0B #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_HAH_ISOLATED_FORM 0xFC0C #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_KHAH_ISOLATED_FORM 0xFC0D #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_MEEM_ISOLATED_FORM 0xFC0E #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC0F #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_YEH_ISOLATED_FORM 0xFC10 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_JEEM_ISOLATED_FORM 0xFC11 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_MEEM_ISOLATED_FORM 0xFC12 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC13 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_YEH_ISOLATED_FORM 0xFC14 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_HAH_ISOLATED_FORM 0xFC15 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_MEEM_ISOLATED_FORM 0xFC16 #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_JEEM_ISOLATED_FORM 0xFC17 #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_MEEM_ISOLATED_FORM 0xFC18 #define T_UTF_32_ARABIC_LIGATURE_KHAH_WITH_JEEM_ISOLATED_FORM 0xFC19 #define T_UTF_32_ARABIC_LIGATURE_KHAH_WITH_HAH_ISOLATED_FORM 0xFC1A #define T_UTF_32_ARABIC_LIGATURE_KHAH_WITH_MEEM_ISOLATED_FORM 0xFC1B #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_JEEM_ISOLATED_FORM 0xFC1C #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_HAH_ISOLATED_FORM 0xFC1D #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_KHAH_ISOLATED_FORM 0xFC1E #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_MEEM_ISOLATED_FORM 0xFC1F #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_HAH_ISOLATED_FORM 0xFC20 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_MEEM_ISOLATED_FORM 0xFC21 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_JEEM_ISOLATED_FORM 0xFC22 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_HAH_ISOLATED_FORM 0xFC23 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_KHAH_ISOLATED_FORM 0xFC24 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_MEEM_ISOLATED_FORM 0xFC25 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_HAH_ISOLATED_FORM 0xFC26 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_MEEM_ISOLATED_FORM 0xFC27 #define T_UTF_32_ARABIC_LIGATURE_ZAH_WITH_MEEM_ISOLATED_FORM 0xFC28 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_JEEM_ISOLATED_FORM 0xFC29 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_MEEM_ISOLATED_FORM 0xFC2A #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_JEEM_ISOLATED_FORM 0xFC2B #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_MEEM_ISOLATED_FORM 0xFC2C #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_JEEM_ISOLATED_FORM 0xFC2D #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_HAH_ISOLATED_FORM 0xFC2E #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_KHAH_ISOLATED_FORM 0xFC2F #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_MEEM_ISOLATED_FORM 0xFC30 #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC31 #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_YEH_ISOLATED_FORM 0xFC32 #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_HAH_ISOLATED_FORM 0xFC33 #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_MEEM_ISOLATED_FORM 0xFC34 #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC35 #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_YEH_ISOLATED_FORM 0xFC36 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_ALEF_ISOLATED_FORM 0xFC37 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_JEEM_ISOLATED_FORM 0xFC38 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_HAH_ISOLATED_FORM 0xFC39 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_KHAH_ISOLATED_FORM 0xFC3A #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_LAM_ISOLATED_FORM 0xFC3B #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_MEEM_ISOLATED_FORM 0xFC3C #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC3D #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_YEH_ISOLATED_FORM 0xFC3E #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_JEEM_ISOLATED_FORM 0xFC3F #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_HAH_ISOLATED_FORM 0xFC40 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_KHAH_ISOLATED_FORM 0xFC41 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_MEEM_ISOLATED_FORM 0xFC42 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC43 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_YEH_ISOLATED_FORM 0xFC44 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_JEEM_ISOLATED_FORM 0xFC45 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_HAH_ISOLATED_FORM 0xFC46 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_KHAH_ISOLATED_FORM 0xFC47 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_MEEM_ISOLATED_FORM 0xFC48 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC49 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_YEH_ISOLATED_FORM 0xFC4A #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_JEEM_ISOLATED_FORM 0xFC4B #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_HAH_ISOLATED_FORM 0xFC4C #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_KHAH_ISOLATED_FORM 0xFC4D #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_MEEM_ISOLATED_FORM 0xFC4E #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC4F #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_YEH_ISOLATED_FORM 0xFC50 #define T_UTF_32_ARABIC_LIGATURE_HEH_WITH_JEEM_ISOLATED_FORM 0xFC51 #define T_UTF_32_ARABIC_LIGATURE_HEH_WITH_MEEM_ISOLATED_FORM 0xFC52 #define T_UTF_32_ARABIC_LIGATURE_HEH_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC53 #define T_UTF_32_ARABIC_LIGATURE_HEH_WITH_YEH_ISOLATED_FORM 0xFC54 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_JEEM_ISOLATED_FORM 0xFC55 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAH_ISOLATED_FORM 0xFC56 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_KHAH_ISOLATED_FORM 0xFC57 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_MEEM_ISOLATED_FORM 0xFC58 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFC59 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_YEH_ISOLATED_FORM 0xFC5A #define T_UTF_32_ARABIC_LIGATURE_THAL_WITH_SUPERSCRIPT_ALEF_ISOLATED_FORM 0xFC5B #define T_UTF_32_ARABIC_LIGATURE_REH_WITH_SUPERSCRIPT_ALEF_ISOLATED_FORM 0xFC5C #define T_UTF_32_ARABIC_LIGATURE_ALEF_MAKSURA_WITH_SUPERSCRIPT_ALEF_ISOLATED_FORM 0xFC5D #define T_UTF_32_ARABIC_LIGATURE_SHADDA_WITH_DAMMATAN_ISOLATED_FORM 0xFC5E #define T_UTF_32_ARABIC_LIGATURE_SHADDA_WITH_KASRATAN_ISOLATED_FORM 0xFC5F #define T_UTF_32_ARABIC_LIGATURE_SHADDA_WITH_FATHA_ISOLATED_FORM 0xFC60 #define T_UTF_32_ARABIC_LIGATURE_SHADDA_WITH_DAMMA_ISOLATED_FORM 0xFC61 #define T_UTF_32_ARABIC_LIGATURE_SHADDA_WITH_KASRA_ISOLATED_FORM 0xFC62 #define T_UTF_32_ARABIC_LIGATURE_SHADDA_WITH_SUPERSCRIPT_ALEF_ISOLATED_FORM 0xFC63 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_REH_FINAL_FORM 0xFC64 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_ZAIN_FINAL_FORM 0xFC65 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_MEEM_FINAL_FORM 0xFC66 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_NOON_FINAL_FORM 0xFC67 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_ALEF_MAKSURA_FINAL_FORM 0xFC68 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_YEH_FINAL_FORM 0xFC69 #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_REH_FINAL_FORM 0xFC6A #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_ZAIN_FINAL_FORM 0xFC6B #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_MEEM_FINAL_FORM 0xFC6C #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_NOON_FINAL_FORM 0xFC6D #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFC6E #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_YEH_FINAL_FORM 0xFC6F #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_REH_FINAL_FORM 0xFC70 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_ZAIN_FINAL_FORM 0xFC71 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_MEEM_FINAL_FORM 0xFC72 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_NOON_FINAL_FORM 0xFC73 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFC74 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_YEH_FINAL_FORM 0xFC75 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_REH_FINAL_FORM 0xFC76 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_ZAIN_FINAL_FORM 0xFC77 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_MEEM_FINAL_FORM 0xFC78 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_NOON_FINAL_FORM 0xFC79 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFC7A #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_YEH_FINAL_FORM 0xFC7B #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFC7C #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_YEH_FINAL_FORM 0xFC7D #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_ALEF_MAKSURA_FINAL_FORM 0xFC7E #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_YEH_FINAL_FORM 0xFC7F #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_ALEF_FINAL_FORM 0xFC80 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_LAM_FINAL_FORM 0xFC81 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_MEEM_FINAL_FORM 0xFC82 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_ALEF_MAKSURA_FINAL_FORM 0xFC83 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_YEH_FINAL_FORM 0xFC84 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_MEEM_FINAL_FORM 0xFC85 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFC86 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_YEH_FINAL_FORM 0xFC87 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_ALEF_FINAL_FORM 0xFC88 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_MEEM_FINAL_FORM 0xFC89 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_REH_FINAL_FORM 0xFC8A #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_ZAIN_FINAL_FORM 0xFC8B #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_MEEM_FINAL_FORM 0xFC8C #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_NOON_FINAL_FORM 0xFC8D #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_ALEF_MAKSURA_FINAL_FORM 0xFC8E #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_YEH_FINAL_FORM 0xFC8F #define T_UTF_32_ARABIC_LIGATURE_ALEF_MAKSURA_WITH_SUPERSCRIPT_ALEF_FINAL_FORM 0xFC90 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_REH_FINAL_FORM 0xFC91 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_ZAIN_FINAL_FORM 0xFC92 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_MEEM_FINAL_FORM 0xFC93 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_NOON_FINAL_FORM 0xFC94 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFC95 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_YEH_FINAL_FORM 0xFC96 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_JEEM_INITIAL_FORM 0xFC97 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_HAH_INITIAL_FORM 0xFC98 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_KHAH_INITIAL_FORM 0xFC99 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_MEEM_INITIAL_FORM 0xFC9A #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_HEH_INITIAL_FORM 0xFC9B #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_JEEM_INITIAL_FORM 0xFC9C #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_HAH_INITIAL_FORM 0xFC9D #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_KHAH_INITIAL_FORM 0xFC9E #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_MEEM_INITIAL_FORM 0xFC9F #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_HEH_INITIAL_FORM 0xFCA0 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_JEEM_INITIAL_FORM 0xFCA1 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_HAH_INITIAL_FORM 0xFCA2 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_KHAH_INITIAL_FORM 0xFCA3 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_MEEM_INITIAL_FORM 0xFCA4 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_HEH_INITIAL_FORM 0xFCA5 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_MEEM_INITIAL_FORM 0xFCA6 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_HAH_INITIAL_FORM 0xFCA7 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_MEEM_INITIAL_FORM 0xFCA8 #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_JEEM_INITIAL_FORM 0xFCA9 #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_MEEM_INITIAL_FORM 0xFCAA #define T_UTF_32_ARABIC_LIGATURE_KHAH_WITH_JEEM_INITIAL_FORM 0xFCAB #define T_UTF_32_ARABIC_LIGATURE_KHAH_WITH_MEEM_INITIAL_FORM 0xFCAC #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_JEEM_INITIAL_FORM 0xFCAD #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_HAH_INITIAL_FORM 0xFCAE #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_KHAH_INITIAL_FORM 0xFCAF #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_MEEM_INITIAL_FORM 0xFCB0 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_HAH_INITIAL_FORM 0xFCB1 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_KHAH_INITIAL_FORM 0xFCB2 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_MEEM_INITIAL_FORM 0xFCB3 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_JEEM_INITIAL_FORM 0xFCB4 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_HAH_INITIAL_FORM 0xFCB5 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_KHAH_INITIAL_FORM 0xFCB6 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_MEEM_INITIAL_FORM 0xFCB7 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_HAH_INITIAL_FORM 0xFCB8 #define T_UTF_32_ARABIC_LIGATURE_ZAH_WITH_MEEM_INITIAL_FORM 0xFCB9 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_JEEM_INITIAL_FORM 0xFCBA #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_MEEM_INITIAL_FORM 0xFCBB #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_JEEM_INITIAL_FORM 0xFCBC #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_MEEM_INITIAL_FORM 0xFCBD #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_JEEM_INITIAL_FORM 0xFCBE #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_HAH_INITIAL_FORM 0xFCBF #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_KHAH_INITIAL_FORM 0xFCC0 #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_MEEM_INITIAL_FORM 0xFCC1 #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_HAH_INITIAL_FORM 0xFCC2 #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_MEEM_INITIAL_FORM 0xFCC3 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_JEEM_INITIAL_FORM 0xFCC4 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_HAH_INITIAL_FORM 0xFCC5 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_KHAH_INITIAL_FORM 0xFCC6 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_LAM_INITIAL_FORM 0xFCC7 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_MEEM_INITIAL_FORM 0xFCC8 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_JEEM_INITIAL_FORM 0xFCC9 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_HAH_INITIAL_FORM 0xFCCA #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_KHAH_INITIAL_FORM 0xFCCB #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_MEEM_INITIAL_FORM 0xFCCC #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_HEH_INITIAL_FORM 0xFCCD #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_JEEM_INITIAL_FORM 0xFCCE #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_HAH_INITIAL_FORM 0xFCCF #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_KHAH_INITIAL_FORM 0xFCD0 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_MEEM_INITIAL_FORM 0xFCD1 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_JEEM_INITIAL_FORM 0xFCD2 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_HAH_INITIAL_FORM 0xFCD3 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_KHAH_INITIAL_FORM 0xFCD4 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_MEEM_INITIAL_FORM 0xFCD5 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_HEH_INITIAL_FORM 0xFCD6 #define T_UTF_32_ARABIC_LIGATURE_HEH_WITH_JEEM_INITIAL_FORM 0xFCD7 #define T_UTF_32_ARABIC_LIGATURE_HEH_WITH_MEEM_INITIAL_FORM 0xFCD8 #define T_UTF_32_ARABIC_LIGATURE_HEH_WITH_SUPERSCRIPT_ALEF_INITIAL_FORM 0xFCD9 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_JEEM_INITIAL_FORM 0xFCDA #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAH_INITIAL_FORM 0xFCDB #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_KHAH_INITIAL_FORM 0xFCDC #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_MEEM_INITIAL_FORM 0xFCDD #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HEH_INITIAL_FORM 0xFCDE #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_MEEM_MEDIAL_FORM 0xFCDF #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAMZA_ABOVE_WITH_HEH_MEDIAL_FORM 0xFCE0 #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_MEEM_MEDIAL_FORM 0xFCE1 #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_HEH_MEDIAL_FORM 0xFCE2 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_MEEM_MEDIAL_FORM 0xFCE3 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_HEH_MEDIAL_FORM 0xFCE4 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_MEEM_MEDIAL_FORM 0xFCE5 #define T_UTF_32_ARABIC_LIGATURE_THEH_WITH_HEH_MEDIAL_FORM 0xFCE6 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_MEEM_MEDIAL_FORM 0xFCE7 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_HEH_MEDIAL_FORM 0xFCE8 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_MEEM_MEDIAL_FORM 0xFCE9 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_HEH_MEDIAL_FORM 0xFCEA #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_LAM_MEDIAL_FORM 0xFCEB #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_MEEM_MEDIAL_FORM 0xFCEC #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_MEEM_MEDIAL_FORM 0xFCED #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_MEEM_MEDIAL_FORM 0xFCEE #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_HEH_MEDIAL_FORM 0xFCEF #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_MEEM_MEDIAL_FORM 0xFCF0 #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HEH_MEDIAL_FORM 0xFCF1 #define T_UTF_32_ARABIC_LIGATURE_SHADDA_WITH_FATHA_MEDIAL_FORM 0xFCF2 #define T_UTF_32_ARABIC_LIGATURE_SHADDA_WITH_DAMMA_MEDIAL_FORM 0xFCF3 #define T_UTF_32_ARABIC_LIGATURE_SHADDA_WITH_KASRA_MEDIAL_FORM 0xFCF4 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFCF5 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_YEH_ISOLATED_FORM 0xFCF6 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFCF7 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_YEH_ISOLATED_FORM 0xFCF8 #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFCF9 #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_YEH_ISOLATED_FORM 0xFCFA #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFCFB #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_YEH_ISOLATED_FORM 0xFCFC #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFCFD #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_YEH_ISOLATED_FORM 0xFCFE #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFCFF #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_YEH_ISOLATED_FORM 0xFD00 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFD01 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_YEH_ISOLATED_FORM 0xFD02 #define T_UTF_32_ARABIC_LIGATURE_KHAH_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFD03 #define T_UTF_32_ARABIC_LIGATURE_KHAH_WITH_YEH_ISOLATED_FORM 0xFD04 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFD05 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_YEH_ISOLATED_FORM 0xFD06 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_ALEF_MAKSURA_ISOLATED_FORM 0xFD07 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_YEH_ISOLATED_FORM 0xFD08 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_JEEM_ISOLATED_FORM 0xFD09 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_HAH_ISOLATED_FORM 0xFD0A #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_KHAH_ISOLATED_FORM 0xFD0B #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_MEEM_ISOLATED_FORM 0xFD0C #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_REH_ISOLATED_FORM 0xFD0D #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_REH_ISOLATED_FORM 0xFD0E #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_REH_ISOLATED_FORM 0xFD0F #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_REH_ISOLATED_FORM 0xFD10 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD11 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_YEH_FINAL_FORM 0xFD12 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD13 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_YEH_FINAL_FORM 0xFD14 #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD15 #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_YEH_FINAL_FORM 0xFD16 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD17 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_YEH_FINAL_FORM 0xFD18 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD19 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_YEH_FINAL_FORM 0xFD1A #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD1B #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_YEH_FINAL_FORM 0xFD1C #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD1D #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_YEH_FINAL_FORM 0xFD1E #define T_UTF_32_ARABIC_LIGATURE_KHAH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD1F #define T_UTF_32_ARABIC_LIGATURE_KHAH_WITH_YEH_FINAL_FORM 0xFD20 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD21 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_YEH_FINAL_FORM 0xFD22 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD23 #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_YEH_FINAL_FORM 0xFD24 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_JEEM_FINAL_FORM 0xFD25 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_HAH_FINAL_FORM 0xFD26 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_KHAH_FINAL_FORM 0xFD27 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_MEEM_FINAL_FORM 0xFD28 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_REH_FINAL_FORM 0xFD29 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_REH_FINAL_FORM 0xFD2A #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_REH_FINAL_FORM 0xFD2B #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_REH_FINAL_FORM 0xFD2C #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_JEEM_INITIAL_FORM 0xFD2D #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_HAH_INITIAL_FORM 0xFD2E #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_KHAH_INITIAL_FORM 0xFD2F #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_MEEM_INITIAL_FORM 0xFD30 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_HEH_INITIAL_FORM 0xFD31 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_HEH_INITIAL_FORM 0xFD32 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_MEEM_INITIAL_FORM 0xFD33 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_JEEM_MEDIAL_FORM 0xFD34 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_HAH_MEDIAL_FORM 0xFD35 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_KHAH_MEDIAL_FORM 0xFD36 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_JEEM_MEDIAL_FORM 0xFD37 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_HAH_MEDIAL_FORM 0xFD38 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_KHAH_MEDIAL_FORM 0xFD39 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_MEEM_MEDIAL_FORM 0xFD3A #define T_UTF_32_ARABIC_LIGATURE_ZAH_WITH_MEEM_MEDIAL_FORM 0xFD3B #define T_UTF_32_ARABIC_LIGATURE_ALEF_WITH_FATHATAN_FINAL_FORM 0xFD3C #define T_UTF_32_ARABIC_LIGATURE_ALEF_WITH_FATHATAN_ISOLATED_FORM 0xFD3D #define T_UTF_32_ORNATE_LEFT_PARENTHESIS 0xFD3E #define T_UTF_32_ORNATE_RIGHT_PARENTHESIS 0xFD3F #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_JEEM_WITH_MEEM_INITIAL_FORM 0xFD50 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_HAH_WITH_JEEM_FINAL_FORM 0xFD51 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_HAH_WITH_JEEM_INITIAL_FORM 0xFD52 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_HAH_WITH_MEEM_INITIAL_FORM 0xFD53 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_KHAH_WITH_MEEM_INITIAL_FORM 0xFD54 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_MEEM_WITH_JEEM_INITIAL_FORM 0xFD55 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_MEEM_WITH_HAH_INITIAL_FORM 0xFD56 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_MEEM_WITH_KHAH_INITIAL_FORM 0xFD57 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_MEEM_WITH_HAH_FINAL_FORM 0xFD58 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_MEEM_WITH_HAH_INITIAL_FORM 0xFD59 #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFD5A #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_MEEM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD5B #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_HAH_WITH_JEEM_INITIAL_FORM 0xFD5C #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_JEEM_WITH_HAH_INITIAL_FORM 0xFD5D #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_JEEM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD5E #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_MEEM_WITH_HAH_FINAL_FORM 0xFD5F #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_MEEM_WITH_HAH_INITIAL_FORM 0xFD60 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_MEEM_WITH_JEEM_INITIAL_FORM 0xFD61 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_MEEM_WITH_MEEM_FINAL_FORM 0xFD62 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_MEEM_WITH_MEEM_INITIAL_FORM 0xFD63 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_HAH_WITH_HAH_FINAL_FORM 0xFD64 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_HAH_WITH_HAH_INITIAL_FORM 0xFD65 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_MEEM_WITH_MEEM_FINAL_FORM 0xFD66 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_HAH_WITH_MEEM_FINAL_FORM 0xFD67 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_HAH_WITH_MEEM_INITIAL_FORM 0xFD68 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_JEEM_WITH_YEH_FINAL_FORM 0xFD69 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_MEEM_WITH_KHAH_FINAL_FORM 0xFD6A #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_MEEM_WITH_KHAH_INITIAL_FORM 0xFD6B #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_MEEM_WITH_MEEM_FINAL_FORM 0xFD6C #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_MEEM_WITH_MEEM_INITIAL_FORM 0xFD6D #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_HAH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD6E #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_KHAH_WITH_MEEM_FINAL_FORM 0xFD6F #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_KHAH_WITH_MEEM_INITIAL_FORM 0xFD70 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_MEEM_WITH_HAH_FINAL_FORM 0xFD71 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_MEEM_WITH_HAH_INITIAL_FORM 0xFD72 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_MEEM_WITH_MEEM_INITIAL_FORM 0xFD73 #define T_UTF_32_ARABIC_LIGATURE_TAH_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFD74 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_JEEM_WITH_MEEM_FINAL_FORM 0xFD75 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_MEEM_WITH_MEEM_FINAL_FORM 0xFD76 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_MEEM_WITH_MEEM_INITIAL_FORM 0xFD77 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_MEEM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD78 #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_MEEM_WITH_MEEM_FINAL_FORM 0xFD79 #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFD7A #define T_UTF_32_ARABIC_LIGATURE_GHAIN_WITH_MEEM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD7B #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_KHAH_WITH_MEEM_FINAL_FORM 0xFD7C #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_KHAH_WITH_MEEM_INITIAL_FORM 0xFD7D #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_MEEM_WITH_HAH_FINAL_FORM 0xFD7E #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_MEEM_WITH_MEEM_FINAL_FORM 0xFD7F #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_HAH_WITH_MEEM_FINAL_FORM 0xFD80 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_HAH_WITH_YEH_FINAL_FORM 0xFD81 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_HAH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD82 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_JEEM_WITH_JEEM_INITIAL_FORM 0xFD83 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_JEEM_WITH_JEEM_FINAL_FORM 0xFD84 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_KHAH_WITH_MEEM_FINAL_FORM 0xFD85 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_KHAH_WITH_MEEM_INITIAL_FORM 0xFD86 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_MEEM_WITH_HAH_FINAL_FORM 0xFD87 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_MEEM_WITH_HAH_INITIAL_FORM 0xFD88 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_HAH_WITH_JEEM_INITIAL_FORM 0xFD89 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_HAH_WITH_MEEM_INITIAL_FORM 0xFD8A #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_HAH_WITH_YEH_FINAL_FORM 0xFD8B #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_JEEM_WITH_HAH_INITIAL_FORM 0xFD8C #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_JEEM_WITH_MEEM_INITIAL_FORM 0xFD8D #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_KHAH_WITH_JEEM_INITIAL_FORM 0xFD8E #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_KHAH_WITH_MEEM_INITIAL_FORM 0xFD8F #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_JEEM_WITH_KHAH_INITIAL_FORM 0xFD92 #define T_UTF_32_ARABIC_LIGATURE_HEH_WITH_MEEM_WITH_JEEM_INITIAL_FORM 0xFD93 #define T_UTF_32_ARABIC_LIGATURE_HEH_WITH_MEEM_WITH_MEEM_INITIAL_FORM 0xFD94 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_HAH_WITH_MEEM_INITIAL_FORM 0xFD95 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_HAH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD96 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_JEEM_WITH_MEEM_FINAL_FORM 0xFD97 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_JEEM_WITH_MEEM_INITIAL_FORM 0xFD98 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_JEEM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD99 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFD9A #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_MEEM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFD9B #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_MEEM_WITH_MEEM_FINAL_FORM 0xFD9C #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_MEEM_WITH_MEEM_INITIAL_FORM 0xFD9D #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_KHAH_WITH_YEH_FINAL_FORM 0xFD9E #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_JEEM_WITH_YEH_FINAL_FORM 0xFD9F #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_JEEM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFDA0 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_KHAH_WITH_YEH_FINAL_FORM 0xFDA1 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_KHAH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFDA2 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFDA3 #define T_UTF_32_ARABIC_LIGATURE_TEH_WITH_MEEM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFDA4 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFDA5 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_HAH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFDA6 #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_MEEM_WITH_ALEF_MAKSURA_FINAL_FORM 0xFDA7 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_KHAH_WITH_ALEF_MAKSURA_FINAL_FORM 0xFDA8 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_HAH_WITH_YEH_FINAL_FORM 0xFDA9 #define T_UTF_32_ARABIC_LIGATURE_SHEEN_WITH_HAH_WITH_YEH_FINAL_FORM 0xFDAA #define T_UTF_32_ARABIC_LIGATURE_DAD_WITH_HAH_WITH_YEH_FINAL_FORM 0xFDAB #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_JEEM_WITH_YEH_FINAL_FORM 0xFDAC #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFDAD #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_HAH_WITH_YEH_FINAL_FORM 0xFDAE #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_JEEM_WITH_YEH_FINAL_FORM 0xFDAF #define T_UTF_32_ARABIC_LIGATURE_YEH_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFDB0 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFDB1 #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFDB2 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_HAH_WITH_YEH_FINAL_FORM 0xFDB3 #define T_UTF_32_ARABIC_LIGATURE_QAF_WITH_MEEM_WITH_HAH_INITIAL_FORM 0xFDB4 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_HAH_WITH_MEEM_INITIAL_FORM 0xFDB5 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFDB6 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFDB7 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_JEEM_WITH_HAH_INITIAL_FORM 0xFDB8 #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_KHAH_WITH_YEH_FINAL_FORM 0xFDB9 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_JEEM_WITH_MEEM_INITIAL_FORM 0xFDBA #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_MEEM_WITH_MEEM_FINAL_FORM 0xFDBB #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_JEEM_WITH_MEEM_FINAL_FORM 0xFDBC #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_JEEM_WITH_HAH_FINAL_FORM 0xFDBD #define T_UTF_32_ARABIC_LIGATURE_JEEM_WITH_HAH_WITH_YEH_FINAL_FORM 0xFDBE #define T_UTF_32_ARABIC_LIGATURE_HAH_WITH_JEEM_WITH_YEH_FINAL_FORM 0xFDBF #define T_UTF_32_ARABIC_LIGATURE_MEEM_WITH_JEEM_WITH_YEH_FINAL_FORM 0xFDC0 #define T_UTF_32_ARABIC_LIGATURE_FEH_WITH_MEEM_WITH_YEH_FINAL_FORM 0xFDC1 #define T_UTF_32_ARABIC_LIGATURE_BEH_WITH_HAH_WITH_YEH_FINAL_FORM 0xFDC2 #define T_UTF_32_ARABIC_LIGATURE_KAF_WITH_MEEM_WITH_MEEM_INITIAL_FORM 0xFDC3 #define T_UTF_32_ARABIC_LIGATURE_AIN_WITH_JEEM_WITH_MEEM_INITIAL_FORM 0xFDC4 #define T_UTF_32_ARABIC_LIGATURE_SAD_WITH_MEEM_WITH_MEEM_INITIAL_FORM 0xFDC5 #define T_UTF_32_ARABIC_LIGATURE_SEEN_WITH_KHAH_WITH_YEH_FINAL_FORM 0xFDC6 #define T_UTF_32_ARABIC_LIGATURE_NOON_WITH_JEEM_WITH_YEH_FINAL_FORM 0xFDC7 #define T_UTF_32_ARABIC_LIGATURE_SALLA_USED_AS_KORANIC_STOP_SIGN_ISOLATED_FORM 0xFDF0 #define T_UTF_32_ARABIC_LIGATURE_QALA_USED_AS_KORANIC_STOP_SIGN_ISOLATED_FORM 0xFDF1 #define T_UTF_32_ARABIC_LIGATURE_ALLAH_ISOLATED_FORM 0xFDF2 #define T_UTF_32_ARABIC_LIGATURE_AKBAR_ISOLATED_FORM 0xFDF3 #define T_UTF_32_ARABIC_LIGATURE_MOHAMMAD_ISOLATED_FORM 0xFDF4 #define T_UTF_32_ARABIC_LIGATURE_SALAM_ISOLATED_FORM 0xFDF5 #define T_UTF_32_ARABIC_LIGATURE_RASOUL_ISOLATED_FORM 0xFDF6 #define T_UTF_32_ARABIC_LIGATURE_ALAYHE_ISOLATED_FORM 0xFDF7 #define T_UTF_32_ARABIC_LIGATURE_WASALLAM_ISOLATED_FORM 0xFDF8 #define T_UTF_32_ARABIC_LIGATURE_SALLA_ISOLATED_FORM 0xFDF9 #define T_UTF_32_ARABIC_LIGATURE_SALLALLAHOU_ALAYHE_WASALLAM 0xFDFA #define T_UTF_32_ARABIC_LIGATURE_JALLAJALALOUHOU 0xFDFB #define T_UTF_32_RIAL_SIGN 0xFDFC #define T_UTF_32_ARABIC_LIGATURE_BISMILLAH_AR_RAHMAN_AR_RAHEEM 0xFDFD #define T_UTF_32_VARIATION_SELECTOR_1 0xFE00 #define T_UTF_32_VARIATION_SELECTOR_2 0xFE01 #define T_UTF_32_VARIATION_SELECTOR_3 0xFE02 #define T_UTF_32_VARIATION_SELECTOR_4 0xFE03 #define T_UTF_32_VARIATION_SELECTOR_5 0xFE04 #define T_UTF_32_VARIATION_SELECTOR_6 0xFE05 #define T_UTF_32_VARIATION_SELECTOR_7 0xFE06 #define T_UTF_32_VARIATION_SELECTOR_8 0xFE07 #define T_UTF_32_VARIATION_SELECTOR_9 0xFE08 #define T_UTF_32_VARIATION_SELECTOR_10 0xFE09 #define T_UTF_32_VARIATION_SELECTOR_11 0xFE0A #define T_UTF_32_VARIATION_SELECTOR_12 0xFE0B #define T_UTF_32_VARIATION_SELECTOR_13 0xFE0C #define T_UTF_32_VARIATION_SELECTOR_14 0xFE0D #define T_UTF_32_VARIATION_SELECTOR_15 0xFE0E #define T_UTF_32_VARIATION_SELECTOR_16 0xFE0F #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_COMMA 0xFE10 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_COMMA 0xFE11 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_IDEOGRAPHIC_FULL_STOP 0xFE12 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_COLON 0xFE13 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_SEMICOLON 0xFE14 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_EXCLAMATION_MARK 0xFE15 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_QUESTION_MARK 0xFE16 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_LENTICULAR_BRACKET 0xFE17 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_LENTICULAR_BRAKCET 0xFE18 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_HORIZONTAL_ELLIPSIS 0xFE19 #define T_UTF_32_COMBINING_LIGATURE_LEFT_HALF 0xFE20 #define T_UTF_32_COMBINING_LIGATURE_RIGHT_HALF 0xFE21 #define T_UTF_32_COMBINING_DOUBLE_TILDE_LEFT_HALF 0xFE22 #define T_UTF_32_COMBINING_DOUBLE_TILDE_RIGHT_HALF 0xFE23 #define T_UTF_32_COMBINING_MACRON_LEFT_HALF 0xFE24 #define T_UTF_32_COMBINING_MACRON_RIGHT_HALF 0xFE25 #define T_UTF_32_COMBINING_CONJOINING_MACRON 0xFE26 #define T_UTF_32_COMBINING_LIGATURE_LEFT_HALF_BELOW 0xFE27 #define T_UTF_32_COMBINING_LIGATURE_RIGHT_HALF_BELOW 0xFE28 #define T_UTF_32_COMBINING_TILDE_LEFT_HALF_BELOW 0xFE29 #define T_UTF_32_COMBINING_TILDE_RIGHT_HALF_BELOW 0xFE2A #define T_UTF_32_COMBINING_MACRON_LEFT_HALF_BELOW 0xFE2B #define T_UTF_32_COMBINING_MACRON_RIGHT_HALF_BELOW 0xFE2C #define T_UTF_32_COMBINING_CONJOINING_MACRON_BELOW 0xFE2D #define T_UTF_32_COMBINING_CYRILLIC_TITLO_LEFT_HALF 0xFE2E #define T_UTF_32_COMBINING_CYRILLIC_TITLO_RIGHT_HALF 0xFE2F #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_TWO_DOT_LEADER 0xFE30 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_EM_DASH 0xFE31 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_EN_DASH 0xFE32 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LOW_LINE 0xFE33 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_WAVY_LOW_LINE 0xFE34 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LEFT_PARENTHESIS 0xFE35 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_RIGHT_PARENTHESIS 0xFE36 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LEFT_CURLY_BRACKET 0xFE37 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CURLY_BRACKET 0xFE38 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LEFT_TORTOISE_SHELL_BRACKET 0xFE39 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_RIGHT_TORTOISE_SHELL_BRACKET 0xFE3A #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LEFT_BLACK_LENTICULAR_BRACKET 0xFE3B #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_RIGHT_BLACK_LENTICULAR_BRACKET 0xFE3C #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LEFT_DOUBLE_ANGLE_BRACKET 0xFE3D #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_RIGHT_DOUBLE_ANGLE_BRACKET 0xFE3E #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LEFT_ANGLE_BRACKET 0xFE3F #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_RIGHT_ANGLE_BRACKET 0xFE40 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LEFT_CORNER_BRACKET 0xFE41 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_RIGHT_CORNER_BRACKET 0xFE42 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LEFT_WHITE_CORNER_BRACKET 0xFE43 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_RIGHT_WHITE_CORNER_BRACKET 0xFE44 #define T_UTF_32_SESAME_DOT 0xFE45 #define T_UTF_32_WHITE_SESAME_DOT 0xFE46 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_LEFT_SQUARE_BRACKET 0xFE47 #define T_UTF_32_PRESENTATION_FORM_FOR_VERTICAL_RIGHT_SQUARE_BRACKET 0xFE48 #define T_UTF_32_DASHED_OVERLINE 0xFE49 #define T_UTF_32_CENTRELINE_OVERLINE 0xFE4A #define T_UTF_32_WAVY_OVERLINE 0xFE4B #define T_UTF_32_DOUBLE_WAVY_OVERLINE 0xFE4C #define T_UTF_32_DASHED_LOW_LINE 0xFE4D #define T_UTF_32_CENTRELINE_LOW_LINE 0xFE4E #define T_UTF_32_WAVY_LOW_LINE 0xFE4F #define T_UTF_32_SMALL_COMMA 0xFE50 #define T_UTF_32_SMALL_IDEOGRAPHIC_COMMA 0xFE51 #define T_UTF_32_SMALL_FULL_STOP 0xFE52 #define T_UTF_32_SMALL_SEMICOLON 0xFE54 #define T_UTF_32_SMALL_COLON 0xFE55 #define T_UTF_32_SMALL_QUESTION_MARK 0xFE56 #define T_UTF_32_SMALL_EXCLAMATION_MARK 0xFE57 #define T_UTF_32_SMALL_EM_DASH 0xFE58 #define T_UTF_32_SMALL_LEFT_PARENTHESIS 0xFE59 #define T_UTF_32_SMALL_RIGHT_PARENTHESIS 0xFE5A #define T_UTF_32_SMALL_LEFT_CURLY_BRACKET 0xFE5B #define T_UTF_32_SMALL_RIGHT_CURLY_BRACKET 0xFE5C #define T_UTF_32_SMALL_LEFT_TORTOISE_SHELL_BRACKET 0xFE5D #define T_UTF_32_SMALL_RIGHT_TORTOISE_SHELL_BRACKET 0xFE5E #define T_UTF_32_SMALL_NUMBER_SIGN 0xFE5F #define T_UTF_32_SMALL_AMPERSAND 0xFE60 #define T_UTF_32_SMALL_ASTERISK 0xFE61 #define T_UTF_32_SMALL_PLUS_SIGN 0xFE62 #define T_UTF_32_SMALL_HYPHEN_MINUS 0xFE63 #define T_UTF_32_SMALL_LESS_THAN_SIGN 0xFE64 #define T_UTF_32_SMALL_GREATER_THAN_SIGN 0xFE65 #define T_UTF_32_SMALL_EQUALS_SIGN 0xFE66 #define T_UTF_32_SMALL_REVERSE_SOLIDUS 0xFE68 #define T_UTF_32_SMALL_DOLLAR_SIGN 0xFE69 #define T_UTF_32_SMALL_PERCENT_SIGN 0xFE6A #define T_UTF_32_SMALL_COMMERCIAL_AT 0xFE6B #define T_UTF_32_ARABIC_FATHATAN_ISOLATED_FORM 0xFE70 #define T_UTF_32_ARABIC_TATWEEL_WITH_FATHATAN_ABOVE 0xFE71 #define T_UTF_32_ARABIC_DAMMATAN_ISOLATED_FORM 0xFE72 #define T_UTF_32_ARABIC_TAIL_FRAGMENT 0xFE73 #define T_UTF_32_ARABIC_KASRATAN_ISOLATED_FORM 0xFE74 #define T_UTF_32_ARABIC_FATHA_ISOLATED_FORM 0xFE76 #define T_UTF_32_ARABIC_FATHA_MEDIAL_FORM 0xFE77 #define T_UTF_32_ARABIC_DAMMA_ISOLATED_FORM 0xFE78 #define T_UTF_32_ARABIC_DAMMA_MEDIAL_FORM 0xFE79 #define T_UTF_32_ARABIC_KASRA_ISOLATED_FORM 0xFE7A #define T_UTF_32_ARABIC_KASRA_MEDIAL_FORM 0xFE7B #define T_UTF_32_ARABIC_SHADDA_ISOLATED_FORM 0xFE7C #define T_UTF_32_ARABIC_SHADDA_MEDIAL_FORM 0xFE7D #define T_UTF_32_ARABIC_SUKUN_ISOLATED_FORM 0xFE7E #define T_UTF_32_ARABIC_SUKUN_MEDIAL_FORM 0xFE7F #define T_UTF_32_ARABIC_LETTER_HAMZA_ISOLATED_FORM 0xFE80 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM 0xFE81 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_MADDA_ABOVE_FINAL_FORM 0xFE82 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE_ISOLATED_FORM 0xFE83 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_HAMZA_ABOVE_FINAL_FORM 0xFE84 #define T_UTF_32_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE_ISOLATED_FORM 0xFE85 #define T_UTF_32_ARABIC_LETTER_WAW_WITH_HAMZA_ABOVE_FINAL_FORM 0xFE86 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW_ISOLATED_FORM 0xFE87 #define T_UTF_32_ARABIC_LETTER_ALEF_WITH_HAMZA_BELOW_FINAL_FORM 0xFE88 #define T_UTF_32_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_ISOLATED_FORM 0xFE89 #define T_UTF_32_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_FINAL_FORM 0xFE8A #define T_UTF_32_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_INITIAL_FORM 0xFE8B #define T_UTF_32_ARABIC_LETTER_YEH_WITH_HAMZA_ABOVE_MEDIAL_FORM 0xFE8C #define T_UTF_32_ARABIC_LETTER_ALEF_ISOLATED_FORM 0xFE8D #define T_UTF_32_ARABIC_LETTER_ALEF_FINAL_FORM 0xFE8E #define T_UTF_32_ARABIC_LETTER_BEH_ISOLATED_FORM 0xFE8F #define T_UTF_32_ARABIC_LETTER_BEH_FINAL_FORM 0xFE90 #define T_UTF_32_ARABIC_LETTER_BEH_INITIAL_FORM 0xFE91 #define T_UTF_32_ARABIC_LETTER_BEH_MEDIAL_FORM 0xFE92 #define T_UTF_32_ARABIC_LETTER_TEH_MARBUTA_ISOLATED_FORM 0xFE93 #define T_UTF_32_ARABIC_LETTER_TEH_MARBUTA_FINAL_FORM 0xFE94 #define T_UTF_32_ARABIC_LETTER_TEH_ISOLATED_FORM 0xFE95 #define T_UTF_32_ARABIC_LETTER_TEH_FINAL_FORM 0xFE96 #define T_UTF_32_ARABIC_LETTER_TEH_INITIAL_FORM 0xFE97 #define T_UTF_32_ARABIC_LETTER_TEH_MEDIAL_FORM 0xFE98 #define T_UTF_32_ARABIC_LETTER_THEH_ISOLATED_FORM 0xFE99 #define T_UTF_32_ARABIC_LETTER_THEH_FINAL_FORM 0xFE9A #define T_UTF_32_ARABIC_LETTER_THEH_INITIAL_FORM 0xFE9B #define T_UTF_32_ARABIC_LETTER_THEH_MEDIAL_FORM 0xFE9C #define T_UTF_32_ARABIC_LETTER_JEEM_ISOLATED_FORM 0xFE9D #define T_UTF_32_ARABIC_LETTER_JEEM_FINAL_FORM 0xFE9E #define T_UTF_32_ARABIC_LETTER_JEEM_INITIAL_FORM 0xFE9F #define T_UTF_32_ARABIC_LETTER_JEEM_MEDIAL_FORM 0xFEA0 #define T_UTF_32_ARABIC_LETTER_HAH_ISOLATED_FORM 0xFEA1 #define T_UTF_32_ARABIC_LETTER_HAH_FINAL_FORM 0xFEA2 #define T_UTF_32_ARABIC_LETTER_HAH_INITIAL_FORM 0xFEA3 #define T_UTF_32_ARABIC_LETTER_HAH_MEDIAL_FORM 0xFEA4 #define T_UTF_32_ARABIC_LETTER_KHAH_ISOLATED_FORM 0xFEA5 #define T_UTF_32_ARABIC_LETTER_KHAH_FINAL_FORM 0xFEA6 #define T_UTF_32_ARABIC_LETTER_KHAH_INITIAL_FORM 0xFEA7 #define T_UTF_32_ARABIC_LETTER_KHAH_MEDIAL_FORM 0xFEA8 #define T_UTF_32_ARABIC_LETTER_DAL_ISOLATED_FORM 0xFEA9 #define T_UTF_32_ARABIC_LETTER_DAL_FINAL_FORM 0xFEAA #define T_UTF_32_ARABIC_LETTER_THAL_ISOLATED_FORM 0xFEAB #define T_UTF_32_ARABIC_LETTER_THAL_FINAL_FORM 0xFEAC #define T_UTF_32_ARABIC_LETTER_REH_ISOLATED_FORM 0xFEAD #define T_UTF_32_ARABIC_LETTER_REH_FINAL_FORM 0xFEAE #define T_UTF_32_ARABIC_LETTER_ZAIN_ISOLATED_FORM 0xFEAF #define T_UTF_32_ARABIC_LETTER_ZAIN_FINAL_FORM 0xFEB0 #define T_UTF_32_ARABIC_LETTER_SEEN_ISOLATED_FORM 0xFEB1 #define T_UTF_32_ARABIC_LETTER_SEEN_FINAL_FORM 0xFEB2 #define T_UTF_32_ARABIC_LETTER_SEEN_INITIAL_FORM 0xFEB3 #define T_UTF_32_ARABIC_LETTER_SEEN_MEDIAL_FORM 0xFEB4 #define T_UTF_32_ARABIC_LETTER_SHEEN_ISOLATED_FORM 0xFEB5 #define T_UTF_32_ARABIC_LETTER_SHEEN_FINAL_FORM 0xFEB6 #define T_UTF_32_ARABIC_LETTER_SHEEN_INITIAL_FORM 0xFEB7 #define T_UTF_32_ARABIC_LETTER_SHEEN_MEDIAL_FORM 0xFEB8 #define T_UTF_32_ARABIC_LETTER_SAD_ISOLATED_FORM 0xFEB9 #define T_UTF_32_ARABIC_LETTER_SAD_FINAL_FORM 0xFEBA #define T_UTF_32_ARABIC_LETTER_SAD_INITIAL_FORM 0xFEBB #define T_UTF_32_ARABIC_LETTER_SAD_MEDIAL_FORM 0xFEBC #define T_UTF_32_ARABIC_LETTER_DAD_ISOLATED_FORM 0xFEBD #define T_UTF_32_ARABIC_LETTER_DAD_FINAL_FORM 0xFEBE #define T_UTF_32_ARABIC_LETTER_DAD_INITIAL_FORM 0xFEBF #define T_UTF_32_ARABIC_LETTER_DAD_MEDIAL_FORM 0xFEC0 #define T_UTF_32_ARABIC_LETTER_TAH_ISOLATED_FORM 0xFEC1 #define T_UTF_32_ARABIC_LETTER_TAH_FINAL_FORM 0xFEC2 #define T_UTF_32_ARABIC_LETTER_TAH_INITIAL_FORM 0xFEC3 #define T_UTF_32_ARABIC_LETTER_TAH_MEDIAL_FORM 0xFEC4 #define T_UTF_32_ARABIC_LETTER_ZAH_ISOLATED_FORM 0xFEC5 #define T_UTF_32_ARABIC_LETTER_ZAH_FINAL_FORM 0xFEC6 #define T_UTF_32_ARABIC_LETTER_ZAH_INITIAL_FORM 0xFEC7 #define T_UTF_32_ARABIC_LETTER_ZAH_MEDIAL_FORM 0xFEC8 #define T_UTF_32_ARABIC_LETTER_AIN_ISOLATED_FORM 0xFEC9 #define T_UTF_32_ARABIC_LETTER_AIN_FINAL_FORM 0xFECA #define T_UTF_32_ARABIC_LETTER_AIN_INITIAL_FORM 0xFECB #define T_UTF_32_ARABIC_LETTER_AIN_MEDIAL_FORM 0xFECC #define T_UTF_32_ARABIC_LETTER_GHAIN_ISOLATED_FORM 0xFECD #define T_UTF_32_ARABIC_LETTER_GHAIN_FINAL_FORM 0xFECE #define T_UTF_32_ARABIC_LETTER_GHAIN_INITIAL_FORM 0xFECF #define T_UTF_32_ARABIC_LETTER_GHAIN_MEDIAL_FORM 0xFED0 #define T_UTF_32_ARABIC_LETTER_FEH_ISOLATED_FORM 0xFED1 #define T_UTF_32_ARABIC_LETTER_FEH_FINAL_FORM 0xFED2 #define T_UTF_32_ARABIC_LETTER_FEH_INITIAL_FORM 0xFED3 #define T_UTF_32_ARABIC_LETTER_FEH_MEDIAL_FORM 0xFED4 #define T_UTF_32_ARABIC_LETTER_QAF_ISOLATED_FORM 0xFED5 #define T_UTF_32_ARABIC_LETTER_QAF_FINAL_FORM 0xFED6 #define T_UTF_32_ARABIC_LETTER_QAF_INITIAL_FORM 0xFED7 #define T_UTF_32_ARABIC_LETTER_QAF_MEDIAL_FORM 0xFED8 #define T_UTF_32_ARABIC_LETTER_KAF_ISOLATED_FORM 0xFED9 #define T_UTF_32_ARABIC_LETTER_KAF_FINAL_FORM 0xFEDA #define T_UTF_32_ARABIC_LETTER_KAF_INITIAL_FORM 0xFEDB #define T_UTF_32_ARABIC_LETTER_KAF_MEDIAL_FORM 0xFEDC #define T_UTF_32_ARABIC_LETTER_LAM_ISOLATED_FORM 0xFEDD #define T_UTF_32_ARABIC_LETTER_LAM_FINAL_FORM 0xFEDE #define T_UTF_32_ARABIC_LETTER_LAM_INITIAL_FORM 0xFEDF #define T_UTF_32_ARABIC_LETTER_LAM_MEDIAL_FORM 0xFEE0 #define T_UTF_32_ARABIC_LETTER_MEEM_ISOLATED_FORM 0xFEE1 #define T_UTF_32_ARABIC_LETTER_MEEM_FINAL_FORM 0xFEE2 #define T_UTF_32_ARABIC_LETTER_MEEM_INITIAL_FORM 0xFEE3 #define T_UTF_32_ARABIC_LETTER_MEEM_MEDIAL_FORM 0xFEE4 #define T_UTF_32_ARABIC_LETTER_NOON_ISOLATED_FORM 0xFEE5 #define T_UTF_32_ARABIC_LETTER_NOON_FINAL_FORM 0xFEE6 #define T_UTF_32_ARABIC_LETTER_NOON_INITIAL_FORM 0xFEE7 #define T_UTF_32_ARABIC_LETTER_NOON_MEDIAL_FORM 0xFEE8 #define T_UTF_32_ARABIC_LETTER_HEH_ISOLATED_FORM 0xFEE9 #define T_UTF_32_ARABIC_LETTER_HEH_FINAL_FORM 0xFEEA #define T_UTF_32_ARABIC_LETTER_HEH_INITIAL_FORM 0xFEEB #define T_UTF_32_ARABIC_LETTER_HEH_MEDIAL_FORM 0xFEEC #define T_UTF_32_ARABIC_LETTER_WAW_ISOLATED_FORM 0xFEED #define T_UTF_32_ARABIC_LETTER_WAW_FINAL_FORM 0xFEEE #define T_UTF_32_ARABIC_LETTER_ALEF_MAKSURA_ISOLATED_FORM 0xFEEF #define T_UTF_32_ARABIC_LETTER_ALEF_MAKSURA_FINAL_FORM 0xFEF0 #define T_UTF_32_ARABIC_LETTER_YEH_ISOLATED_FORM 0xFEF1 #define T_UTF_32_ARABIC_LETTER_YEH_FINAL_FORM 0xFEF2 #define T_UTF_32_ARABIC_LETTER_YEH_INITIAL_FORM 0xFEF3 #define T_UTF_32_ARABIC_LETTER_YEH_MEDIAL_FORM 0xFEF4 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_MADDA_ABOVE_ISOLATED_FORM 0xFEF5 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_MADDA_ABOVE_FINAL_FORM 0xFEF6 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_ABOVE_ISOLATED_FORM 0xFEF7 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_ABOVE_FINAL_FORM 0xFEF8 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_BELOW_ISOLATED_FORM 0xFEF9 #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_ALEF_WITH_HAMZA_BELOW_FINAL_FORM 0xFEFA #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_ALEF_ISOLATED_FORM 0xFEFB #define T_UTF_32_ARABIC_LIGATURE_LAM_WITH_ALEF_FINAL_FORM 0xFEFC #define T_UTF_32_ZERO_WIDTH_NO_BREAK_SPACE 0xFEFF #define T_UTF_32_FULLWIDTH_EXCLAMATION_MARK 0xFF01 #define T_UTF_32_FULLWIDTH_QUOTATION_MARK 0xFF02 #define T_UTF_32_FULLWIDTH_NUMBER_SIGN 0xFF03 #define T_UTF_32_FULLWIDTH_DOLLAR_SIGN 0xFF04 #define T_UTF_32_FULLWIDTH_PERCENT_SIGN 0xFF05 #define T_UTF_32_FULLWIDTH_AMPERSAND 0xFF06 #define T_UTF_32_FULLWIDTH_APOSTROPHE 0xFF07 #define T_UTF_32_FULLWIDTH_LEFT_PARENTHESIS 0xFF08 #define T_UTF_32_FULLWIDTH_RIGHT_PARENTHESIS 0xFF09 #define T_UTF_32_FULLWIDTH_ASTERISK 0xFF0A #define T_UTF_32_FULLWIDTH_PLUS_SIGN 0xFF0B #define T_UTF_32_FULLWIDTH_COMMA 0xFF0C #define T_UTF_32_FULLWIDTH_HYPHEN_MINUS 0xFF0D #define T_UTF_32_FULLWIDTH_FULL_STOP 0xFF0E #define T_UTF_32_FULLWIDTH_SOLIDUS 0xFF0F #define T_UTF_32_FULLWIDTH_DIGIT_ZERO 0xFF10 #define T_UTF_32_FULLWIDTH_DIGIT_ONE 0xFF11 #define T_UTF_32_FULLWIDTH_DIGIT_TWO 0xFF12 #define T_UTF_32_FULLWIDTH_DIGIT_THREE 0xFF13 #define T_UTF_32_FULLWIDTH_DIGIT_FOUR 0xFF14 #define T_UTF_32_FULLWIDTH_DIGIT_FIVE 0xFF15 #define T_UTF_32_FULLWIDTH_DIGIT_SIX 0xFF16 #define T_UTF_32_FULLWIDTH_DIGIT_SEVEN 0xFF17 #define T_UTF_32_FULLWIDTH_DIGIT_EIGHT 0xFF18 #define T_UTF_32_FULLWIDTH_DIGIT_NINE 0xFF19 #define T_UTF_32_FULLWIDTH_COLON 0xFF1A #define T_UTF_32_FULLWIDTH_SEMICOLON 0xFF1B #define T_UTF_32_FULLWIDTH_LESS_THAN_SIGN 0xFF1C #define T_UTF_32_FULLWIDTH_EQUALS_SIGN 0xFF1D #define T_UTF_32_FULLWIDTH_GREATER_THAN_SIGN 0xFF1E #define T_UTF_32_FULLWIDTH_QUESTION_MARK 0xFF1F #define T_UTF_32_FULLWIDTH_COMMERCIAL_AT 0xFF20 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_A 0xFF21 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_B 0xFF22 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_C 0xFF23 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_D 0xFF24 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_E 0xFF25 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_F 0xFF26 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_G 0xFF27 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_H 0xFF28 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_I 0xFF29 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_J 0xFF2A #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_K 0xFF2B #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_L 0xFF2C #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_M 0xFF2D #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_N 0xFF2E #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_O 0xFF2F #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_P 0xFF30 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_Q 0xFF31 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_R 0xFF32 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_S 0xFF33 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_T 0xFF34 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_U 0xFF35 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_V 0xFF36 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_W 0xFF37 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_X 0xFF38 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_Y 0xFF39 #define T_UTF_32_FULLWIDTH_LATIN_CAPITAL_LETTER_Z 0xFF3A #define T_UTF_32_FULLWIDTH_LEFT_SQUARE_BRACKET 0xFF3B #define T_UTF_32_FULLWIDTH_REVERSE_SOLIDUS 0xFF3C #define T_UTF_32_FULLWIDTH_RIGHT_SQUARE_BRACKET 0xFF3D #define T_UTF_32_FULLWIDTH_CIRCUMFLEX_ACCENT 0xFF3E #define T_UTF_32_FULLWIDTH_LOW_LINE 0xFF3F #define T_UTF_32_FULLWIDTH_GRAVE_ACCENT 0xFF40 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_A 0xFF41 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_B 0xFF42 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_C 0xFF43 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_D 0xFF44 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_E 0xFF45 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_F 0xFF46 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_G 0xFF47 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_H 0xFF48 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_I 0xFF49 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_J 0xFF4A #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_K 0xFF4B #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_L 0xFF4C #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_M 0xFF4D #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_N 0xFF4E #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_O 0xFF4F #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_P 0xFF50 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_Q 0xFF51 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_R 0xFF52 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_S 0xFF53 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_T 0xFF54 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_U 0xFF55 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_V 0xFF56 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_W 0xFF57 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_X 0xFF58 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_Y 0xFF59 #define T_UTF_32_FULLWIDTH_LATIN_SMALL_LETTER_Z 0xFF5A #define T_UTF_32_FULLWIDTH_LEFT_CURLY_BRACKET 0xFF5B #define T_UTF_32_FULLWIDTH_VERTICAL_LINE 0xFF5C #define T_UTF_32_FULLWIDTH_RIGHT_CURLY_BRACKET 0xFF5D #define T_UTF_32_FULLWIDTH_TILDE 0xFF5E #define T_UTF_32_FULLWIDTH_LEFT_WHITE_PARENTHESIS 0xFF5F #define T_UTF_32_FULLWIDTH_RIGHT_WHITE_PARENTHESIS 0xFF60 #define T_UTF_32_HALFWIDTH_IDEOGRAPHIC_FULL_STOP 0xFF61 #define T_UTF_32_HALFWIDTH_LEFT_CORNER_BRACKET 0xFF62 #define T_UTF_32_HALFWIDTH_RIGHT_CORNER_BRACKET 0xFF63 #define T_UTF_32_HALFWIDTH_IDEOGRAPHIC_COMMA 0xFF64 #define T_UTF_32_HALFWIDTH_KATAKANA_MIDDLE_DOT 0xFF65 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_WO 0xFF66 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SMALL_A 0xFF67 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SMALL_I 0xFF68 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SMALL_U 0xFF69 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SMALL_E 0xFF6A #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SMALL_O 0xFF6B #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SMALL_YA 0xFF6C #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SMALL_YU 0xFF6D #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SMALL_YO 0xFF6E #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SMALL_TU 0xFF6F #define T_UTF_32_HALFWIDTH_KATAKANA_HIRAGANA_PROLONGED_SOUND_MARK 0xFF70 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_A 0xFF71 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_I 0xFF72 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_U 0xFF73 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_E 0xFF74 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_O 0xFF75 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_KA 0xFF76 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_KI 0xFF77 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_KU 0xFF78 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_KE 0xFF79 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_KO 0xFF7A #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SA 0xFF7B #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SI 0xFF7C #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SU 0xFF7D #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SE 0xFF7E #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_SO 0xFF7F #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_TA 0xFF80 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_TI 0xFF81 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_TU 0xFF82 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_TE 0xFF83 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_TO 0xFF84 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_NA 0xFF85 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_NI 0xFF86 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_NU 0xFF87 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_NE 0xFF88 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_NO 0xFF89 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_HA 0xFF8A #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_HI 0xFF8B #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_HU 0xFF8C #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_HE 0xFF8D #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_HO 0xFF8E #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_MA 0xFF8F #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_MI 0xFF90 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_MU 0xFF91 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_ME 0xFF92 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_MO 0xFF93 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_YA 0xFF94 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_YU 0xFF95 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_YO 0xFF96 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_RA 0xFF97 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_RI 0xFF98 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_RU 0xFF99 #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_RE 0xFF9A #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_RO 0xFF9B #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_WA 0xFF9C #define T_UTF_32_HALFWIDTH_KATAKANA_LETTER_N 0xFF9D #define T_UTF_32_HALFWIDTH_KATAKANA_VOICED_SOUND_MARK 0xFF9E #define T_UTF_32_HALFWIDTH_KATAKANA_SEMI_VOICED_SOUND_MARK 0xFF9F #define T_UTF_32_HALFWIDTH_HANGUL_FILLER 0xFFA0 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_KIYEOK 0xFFA1 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_SSANGKIYEOK 0xFFA2 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_KIYEOK_SIOS 0xFFA3 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_NIEUN 0xFFA4 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_NIEUN_CIEUC 0xFFA5 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_NIEUN_HIEUH 0xFFA6 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_TIKEUT 0xFFA7 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_SSANGTIKEUT 0xFFA8 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_RIEUL 0xFFA9 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_RIEUL_KIYEOK 0xFFAA #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_RIEUL_MIEUM 0xFFAB #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_RIEUL_PIEUP 0xFFAC #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_RIEUL_SIOS 0xFFAD #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_RIEUL_THIEUTH 0xFFAE #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_RIEUL_PHIEUPH 0xFFAF #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_RIEUL_HIEUH 0xFFB0 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_MIEUM 0xFFB1 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_PIEUP 0xFFB2 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_SSANGPIEUP 0xFFB3 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_PIEUP_SIOS 0xFFB4 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_SIOS 0xFFB5 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_SSANGSIOS 0xFFB6 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_IEUNG 0xFFB7 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_CIEUC 0xFFB8 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_SSANGCIEUC 0xFFB9 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_CHIEUCH 0xFFBA #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_KHIEUKH 0xFFBB #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_THIEUTH 0xFFBC #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_PHIEUPH 0xFFBD #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_HIEUH 0xFFBE #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_A 0xFFC2 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_AE 0xFFC3 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_YA 0xFFC4 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_YAE 0xFFC5 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_EO 0xFFC6 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_E 0xFFC7 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_YEO 0xFFCA #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_YE 0xFFCB #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_O 0xFFCC #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_WA 0xFFCD #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_WAE 0xFFCE #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_OE 0xFFCF #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_YO 0xFFD2 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_U 0xFFD3 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_WEO 0xFFD4 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_WE 0xFFD5 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_WI 0xFFD6 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_YU 0xFFD7 #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_EU 0xFFDA #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_YI 0xFFDB #define T_UTF_32_HALFWIDTH_HANGUL_LETTER_I 0xFFDC #define T_UTF_32_FULLWIDTH_CENT_SIGN 0xFFE0 #define T_UTF_32_FULLWIDTH_POUND_SIGN 0xFFE1 #define T_UTF_32_FULLWIDTH_NOT_SIGN 0xFFE2 #define T_UTF_32_FULLWIDTH_MACRON 0xFFE3 #define T_UTF_32_FULLWIDTH_BROKEN_BAR 0xFFE4 #define T_UTF_32_FULLWIDTH_YEN_SIGN 0xFFE5 #define T_UTF_32_FULLWIDTH_WON_SIGN 0xFFE6 #define T_UTF_32_HALFWIDTH_FORMS_LIGHT_VERTICAL 0xFFE8 #define T_UTF_32_HALFWIDTH_LEFTWARDS_ARROW 0xFFE9 #define T_UTF_32_HALFWIDTH_UPWARDS_ARROW 0xFFEA #define T_UTF_32_HALFWIDTH_RIGHTWARDS_ARROW 0xFFEB #define T_UTF_32_HALFWIDTH_DOWNWARDS_ARROW 0xFFEC #define T_UTF_32_HALFWIDTH_BLACK_SQUARE 0xFFED #define T_UTF_32_HALFWIDTH_WHITE_CIRCLE 0xFFEE #define T_UTF_32_INTERLINEAR_ANNOTATION_ANCHOR 0xFFF9 #define T_UTF_32_INTERLINEAR_ANNOTATION_SEPARATOR 0xFFFA #define T_UTF_32_INTERLINEAR_ANNOTATION_TERMINATOR 0xFFFB #define T_UTF_32_OBJECT_REPLACEMENT_CHARACTER 0xFFFC #define T_UTF_32_REPLACEMENT_CHARACTER 0xFFFD #define T_UTF_32_LINEAR_B_SYLLABLE_B008_A 0x10000 #define T_UTF_32_LINEAR_B_SYLLABLE_B038_E 0x10001 #define T_UTF_32_LINEAR_B_SYLLABLE_B028_I 0x10002 #define T_UTF_32_LINEAR_B_SYLLABLE_B061_O 0x10003 #define T_UTF_32_LINEAR_B_SYLLABLE_B010_U 0x10004 #define T_UTF_32_LINEAR_B_SYLLABLE_B001_DA 0x10005 #define T_UTF_32_LINEAR_B_SYLLABLE_B045_DE 0x10006 #define T_UTF_32_LINEAR_B_SYLLABLE_B007_DI 0x10007 #define T_UTF_32_LINEAR_B_SYLLABLE_B014_DO 0x10008 #define T_UTF_32_LINEAR_B_SYLLABLE_B051_DU 0x10009 #define T_UTF_32_LINEAR_B_SYLLABLE_B057_JA 0x1000A #define T_UTF_32_LINEAR_B_SYLLABLE_B046_JE 0x1000B #define T_UTF_32_LINEAR_B_SYLLABLE_B036_JO 0x1000D #define T_UTF_32_LINEAR_B_SYLLABLE_B065_JU 0x1000E #define T_UTF_32_LINEAR_B_SYLLABLE_B077_KA 0x1000F #define T_UTF_32_LINEAR_B_SYLLABLE_B044_KE 0x10010 #define T_UTF_32_LINEAR_B_SYLLABLE_B067_KI 0x10011 #define T_UTF_32_LINEAR_B_SYLLABLE_B070_KO 0x10012 #define T_UTF_32_LINEAR_B_SYLLABLE_B081_KU 0x10013 #define T_UTF_32_LINEAR_B_SYLLABLE_B080_MA 0x10014 #define T_UTF_32_LINEAR_B_SYLLABLE_B013_ME 0x10015 #define T_UTF_32_LINEAR_B_SYLLABLE_B073_MI 0x10016 #define T_UTF_32_LINEAR_B_SYLLABLE_B015_MO 0x10017 #define T_UTF_32_LINEAR_B_SYLLABLE_B023_MU 0x10018 #define T_UTF_32_LINEAR_B_SYLLABLE_B006_NA 0x10019 #define T_UTF_32_LINEAR_B_SYLLABLE_B024_NE 0x1001A #define T_UTF_32_LINEAR_B_SYLLABLE_B030_NI 0x1001B #define T_UTF_32_LINEAR_B_SYLLABLE_B052_NO 0x1001C #define T_UTF_32_LINEAR_B_SYLLABLE_B055_NU 0x1001D #define T_UTF_32_LINEAR_B_SYLLABLE_B003_PA 0x1001E #define T_UTF_32_LINEAR_B_SYLLABLE_B072_PE 0x1001F #define T_UTF_32_LINEAR_B_SYLLABLE_B039_PI 0x10020 #define T_UTF_32_LINEAR_B_SYLLABLE_B011_PO 0x10021 #define T_UTF_32_LINEAR_B_SYLLABLE_B050_PU 0x10022 #define T_UTF_32_LINEAR_B_SYLLABLE_B016_QA 0x10023 #define T_UTF_32_LINEAR_B_SYLLABLE_B078_QE 0x10024 #define T_UTF_32_LINEAR_B_SYLLABLE_B021_QI 0x10025 #define T_UTF_32_LINEAR_B_SYLLABLE_B032_QO 0x10026 #define T_UTF_32_LINEAR_B_SYLLABLE_B060_RA 0x10028 #define T_UTF_32_LINEAR_B_SYLLABLE_B027_RE 0x10029 #define T_UTF_32_LINEAR_B_SYLLABLE_B053_RI 0x1002A #define T_UTF_32_LINEAR_B_SYLLABLE_B002_RO 0x1002B #define T_UTF_32_LINEAR_B_SYLLABLE_B026_RU 0x1002C #define T_UTF_32_LINEAR_B_SYLLABLE_B031_SA 0x1002D #define T_UTF_32_LINEAR_B_SYLLABLE_B009_SE 0x1002E #define T_UTF_32_LINEAR_B_SYLLABLE_B041_SI 0x1002F #define T_UTF_32_LINEAR_B_SYLLABLE_B012_SO 0x10030 #define T_UTF_32_LINEAR_B_SYLLABLE_B058_SU 0x10031 #define T_UTF_32_LINEAR_B_SYLLABLE_B059_TA 0x10032 #define T_UTF_32_LINEAR_B_SYLLABLE_B004_TE 0x10033 #define T_UTF_32_LINEAR_B_SYLLABLE_B037_TI 0x10034 #define T_UTF_32_LINEAR_B_SYLLABLE_B005_TO 0x10035 #define T_UTF_32_LINEAR_B_SYLLABLE_B069_TU 0x10036 #define T_UTF_32_LINEAR_B_SYLLABLE_B054_WA 0x10037 #define T_UTF_32_LINEAR_B_SYLLABLE_B075_WE 0x10038 #define T_UTF_32_LINEAR_B_SYLLABLE_B040_WI 0x10039 #define T_UTF_32_LINEAR_B_SYLLABLE_B042_WO 0x1003A #define T_UTF_32_LINEAR_B_SYLLABLE_B017_ZA 0x1003C #define T_UTF_32_LINEAR_B_SYLLABLE_B074_ZE 0x1003D #define T_UTF_32_LINEAR_B_SYLLABLE_B020_ZO 0x1003F #define T_UTF_32_LINEAR_B_SYLLABLE_B025_A2 0x10040 #define T_UTF_32_LINEAR_B_SYLLABLE_B043_A3 0x10041 #define T_UTF_32_LINEAR_B_SYLLABLE_B085_AU 0x10042 #define T_UTF_32_LINEAR_B_SYLLABLE_B071_DWE 0x10043 #define T_UTF_32_LINEAR_B_SYLLABLE_B090_DWO 0x10044 #define T_UTF_32_LINEAR_B_SYLLABLE_B048_NWA 0x10045 #define T_UTF_32_LINEAR_B_SYLLABLE_B029_PU2 0x10046 #define T_UTF_32_LINEAR_B_SYLLABLE_B062_PTE 0x10047 #define T_UTF_32_LINEAR_B_SYLLABLE_B076_RA2 0x10048 #define T_UTF_32_LINEAR_B_SYLLABLE_B033_RA3 0x10049 #define T_UTF_32_LINEAR_B_SYLLABLE_B068_RO2 0x1004A #define T_UTF_32_LINEAR_B_SYLLABLE_B066_TA2 0x1004B #define T_UTF_32_LINEAR_B_SYLLABLE_B087_TWE 0x1004C #define T_UTF_32_LINEAR_B_SYLLABLE_B091_TWO 0x1004D #define T_UTF_32_LINEAR_B_SYMBOL_B018 0x10050 #define T_UTF_32_LINEAR_B_SYMBOL_B019 0x10051 #define T_UTF_32_LINEAR_B_SYMBOL_B022 0x10052 #define T_UTF_32_LINEAR_B_SYMBOL_B034 0x10053 #define T_UTF_32_LINEAR_B_SYMBOL_B047 0x10054 #define T_UTF_32_LINEAR_B_SYMBOL_B049 0x10055 #define T_UTF_32_LINEAR_B_SYMBOL_B056 0x10056 #define T_UTF_32_LINEAR_B_SYMBOL_B063 0x10057 #define T_UTF_32_LINEAR_B_SYMBOL_B064 0x10058 #define T_UTF_32_LINEAR_B_SYMBOL_B079 0x10059 #define T_UTF_32_LINEAR_B_SYMBOL_B082 0x1005A #define T_UTF_32_LINEAR_B_SYMBOL_B083 0x1005B #define T_UTF_32_LINEAR_B_SYMBOL_B086 0x1005C #define T_UTF_32_LINEAR_B_SYMBOL_B089 0x1005D #define T_UTF_32_LINEAR_B_IDEOGRAM_B100_MAN 0x10080 #define T_UTF_32_LINEAR_B_IDEOGRAM_B102_WOMAN 0x10081 #define T_UTF_32_LINEAR_B_IDEOGRAM_B104_DEER 0x10082 #define T_UTF_32_LINEAR_B_IDEOGRAM_B105_EQUID 0x10083 #define T_UTF_32_LINEAR_B_IDEOGRAM_B105F_MARE 0x10084 #define T_UTF_32_LINEAR_B_IDEOGRAM_B105M_STALLION 0x10085 #define T_UTF_32_LINEAR_B_IDEOGRAM_B106F_EWE 0x10086 #define T_UTF_32_LINEAR_B_IDEOGRAM_B106M_RAM 0x10087 #define T_UTF_32_LINEAR_B_IDEOGRAM_B107F_SHE_GOAT 0x10088 #define T_UTF_32_LINEAR_B_IDEOGRAM_B107M_HE_GOAT 0x10089 #define T_UTF_32_LINEAR_B_IDEOGRAM_B108F_SOW 0x1008A #define T_UTF_32_LINEAR_B_IDEOGRAM_B108M_BOAR 0x1008B #define T_UTF_32_LINEAR_B_IDEOGRAM_B109F_COW 0x1008C #define T_UTF_32_LINEAR_B_IDEOGRAM_B109M_BULL 0x1008D #define T_UTF_32_LINEAR_B_IDEOGRAM_B120_WHEAT 0x1008E #define T_UTF_32_LINEAR_B_IDEOGRAM_B121_BARLEY 0x1008F #define T_UTF_32_LINEAR_B_IDEOGRAM_B122_OLIVE 0x10090 #define T_UTF_32_LINEAR_B_IDEOGRAM_B123_SPICE 0x10091 #define T_UTF_32_LINEAR_B_IDEOGRAM_B125_CYPERUS 0x10092 #define T_UTF_32_LINEAR_B_MONOGRAM_B127_KAPO 0x10093 #define T_UTF_32_LINEAR_B_MONOGRAM_B128_KANAKO 0x10094 #define T_UTF_32_LINEAR_B_IDEOGRAM_B130_OIL 0x10095 #define T_UTF_32_LINEAR_B_IDEOGRAM_B131_WINE 0x10096 #define T_UTF_32_LINEAR_B_IDEOGRAM_B132 0x10097 #define T_UTF_32_LINEAR_B_MONOGRAM_B133_AREPA 0x10098 #define T_UTF_32_LINEAR_B_MONOGRAM_B135_MERI 0x10099 #define T_UTF_32_LINEAR_B_IDEOGRAM_B140_BRONZE 0x1009A #define T_UTF_32_LINEAR_B_IDEOGRAM_B141_GOLD 0x1009B #define T_UTF_32_LINEAR_B_IDEOGRAM_B142 0x1009C #define T_UTF_32_LINEAR_B_IDEOGRAM_B145_WOOL 0x1009D #define T_UTF_32_LINEAR_B_IDEOGRAM_B146 0x1009E #define T_UTF_32_LINEAR_B_IDEOGRAM_B150 0x1009F #define T_UTF_32_LINEAR_B_IDEOGRAM_B151_HORN 0x100A0 #define T_UTF_32_LINEAR_B_IDEOGRAM_B152 0x100A1 #define T_UTF_32_LINEAR_B_IDEOGRAM_B153 0x100A2 #define T_UTF_32_LINEAR_B_IDEOGRAM_B154 0x100A3 #define T_UTF_32_LINEAR_B_MONOGRAM_B156_TURO2 0x100A4 #define T_UTF_32_LINEAR_B_IDEOGRAM_B157 0x100A5 #define T_UTF_32_LINEAR_B_IDEOGRAM_B158 0x100A6 #define T_UTF_32_LINEAR_B_IDEOGRAM_B159_CLOTH 0x100A7 #define T_UTF_32_LINEAR_B_IDEOGRAM_B160 0x100A8 #define T_UTF_32_LINEAR_B_IDEOGRAM_B161 0x100A9 #define T_UTF_32_LINEAR_B_IDEOGRAM_B162_GARMENT 0x100AA #define T_UTF_32_LINEAR_B_IDEOGRAM_B163_ARMOUR 0x100AB #define T_UTF_32_LINEAR_B_IDEOGRAM_B164 0x100AC #define T_UTF_32_LINEAR_B_IDEOGRAM_B165 0x100AD #define T_UTF_32_LINEAR_B_IDEOGRAM_B166 0x100AE #define T_UTF_32_LINEAR_B_IDEOGRAM_B167 0x100AF #define T_UTF_32_LINEAR_B_IDEOGRAM_B168 0x100B0 #define T_UTF_32_LINEAR_B_IDEOGRAM_B169 0x100B1 #define T_UTF_32_LINEAR_B_IDEOGRAM_B170 0x100B2 #define T_UTF_32_LINEAR_B_IDEOGRAM_B171 0x100B3 #define T_UTF_32_LINEAR_B_IDEOGRAM_B172 0x100B4 #define T_UTF_32_LINEAR_B_IDEOGRAM_B173_MONTH 0x100B5 #define T_UTF_32_LINEAR_B_IDEOGRAM_B174 0x100B6 #define T_UTF_32_LINEAR_B_IDEOGRAM_B176_TREE 0x100B7 #define T_UTF_32_LINEAR_B_IDEOGRAM_B177 0x100B8 #define T_UTF_32_LINEAR_B_IDEOGRAM_B178 0x100B9 #define T_UTF_32_LINEAR_B_IDEOGRAM_B179 0x100BA #define T_UTF_32_LINEAR_B_IDEOGRAM_B180 0x100BB #define T_UTF_32_LINEAR_B_IDEOGRAM_B181 0x100BC #define T_UTF_32_LINEAR_B_IDEOGRAM_B182 0x100BD #define T_UTF_32_LINEAR_B_IDEOGRAM_B183 0x100BE #define T_UTF_32_LINEAR_B_IDEOGRAM_B184 0x100BF #define T_UTF_32_LINEAR_B_IDEOGRAM_B185 0x100C0 #define T_UTF_32_LINEAR_B_IDEOGRAM_B189 0x100C1 #define T_UTF_32_LINEAR_B_IDEOGRAM_B190 0x100C2 #define T_UTF_32_LINEAR_B_IDEOGRAM_B191_HELMET 0x100C3 #define T_UTF_32_LINEAR_B_IDEOGRAM_B220_FOOTSTOOL 0x100C4 #define T_UTF_32_LINEAR_B_IDEOGRAM_B225_BATHTUB 0x100C5 #define T_UTF_32_LINEAR_B_IDEOGRAM_B230_SPEAR 0x100C6 #define T_UTF_32_LINEAR_B_IDEOGRAM_B231_ARROW 0x100C7 #define T_UTF_32_LINEAR_B_IDEOGRAM_B232 0x100C8 #define T_UTF_32_LINEAR_B_IDEOGRAM_B233_SWORD 0x100C9 #define T_UTF_32_LINEAR_B_IDEOGRAM_B234 0x100CA #define T_UTF_32_LINEAR_B_IDEOGRAM_B236 0x100CB #define T_UTF_32_LINEAR_B_IDEOGRAM_B240_WHEELED_CHARIOT 0x100CC #define T_UTF_32_LINEAR_B_IDEOGRAM_B241_CHARIOT 0x100CD #define T_UTF_32_LINEAR_B_IDEOGRAM_B242_CHARIOT_FRAME 0x100CE #define T_UTF_32_LINEAR_B_IDEOGRAM_B243_WHEEL 0x100CF #define T_UTF_32_LINEAR_B_IDEOGRAM_B245 0x100D0 #define T_UTF_32_LINEAR_B_IDEOGRAM_B246 0x100D1 #define T_UTF_32_LINEAR_B_MONOGRAM_B247_DIPTE 0x100D2 #define T_UTF_32_LINEAR_B_IDEOGRAM_B248 0x100D3 #define T_UTF_32_LINEAR_B_IDEOGRAM_B249 0x100D4 #define T_UTF_32_LINEAR_B_IDEOGRAM_B251 0x100D5 #define T_UTF_32_LINEAR_B_IDEOGRAM_B252 0x100D6 #define T_UTF_32_LINEAR_B_IDEOGRAM_B253 0x100D7 #define T_UTF_32_LINEAR_B_IDEOGRAM_B254_DART 0x100D8 #define T_UTF_32_LINEAR_B_IDEOGRAM_B255 0x100D9 #define T_UTF_32_LINEAR_B_IDEOGRAM_B256 0x100DA #define T_UTF_32_LINEAR_B_IDEOGRAM_B257 0x100DB #define T_UTF_32_LINEAR_B_IDEOGRAM_B258 0x100DC #define T_UTF_32_LINEAR_B_IDEOGRAM_B259 0x100DD #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B155 0x100DE #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B200 0x100DF #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B201 0x100E0 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B202 0x100E1 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B203 0x100E2 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B204 0x100E3 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B205 0x100E4 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B206 0x100E5 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B207 0x100E6 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B208 0x100E7 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B209 0x100E8 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B210 0x100E9 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B211 0x100EA #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B212 0x100EB #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B213 0x100EC #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B214 0x100ED #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B215 0x100EE #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B216 0x100EF #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B217 0x100F0 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B218 0x100F1 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B219 0x100F2 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B221 0x100F3 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B222 0x100F4 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B226 0x100F5 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B227 0x100F6 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B228 0x100F7 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B229 0x100F8 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B250 0x100F9 #define T_UTF_32_LINEAR_B_IDEOGRAM_VESSEL_B305 0x100FA #define T_UTF_32_AEGEAN_WORD_SEPARATOR_LINE 0x10100 #define T_UTF_32_AEGEAN_WORD_SEPARATOR_DOT 0x10101 #define T_UTF_32_AEGEAN_CHECK_MARK 0x10102 #define T_UTF_32_AEGEAN_NUMBER_ONE 0x10107 #define T_UTF_32_AEGEAN_NUMBER_TWO 0x10108 #define T_UTF_32_AEGEAN_NUMBER_THREE 0x10109 #define T_UTF_32_AEGEAN_NUMBER_FOUR 0x1010A #define T_UTF_32_AEGEAN_NUMBER_FIVE 0x1010B #define T_UTF_32_AEGEAN_NUMBER_SIX 0x1010C #define T_UTF_32_AEGEAN_NUMBER_SEVEN 0x1010D #define T_UTF_32_AEGEAN_NUMBER_EIGHT 0x1010E #define T_UTF_32_AEGEAN_NUMBER_NINE 0x1010F #define T_UTF_32_AEGEAN_NUMBER_TEN 0x10110 #define T_UTF_32_AEGEAN_NUMBER_TWENTY 0x10111 #define T_UTF_32_AEGEAN_NUMBER_THIRTY 0x10112 #define T_UTF_32_AEGEAN_NUMBER_FORTY 0x10113 #define T_UTF_32_AEGEAN_NUMBER_FIFTY 0x10114 #define T_UTF_32_AEGEAN_NUMBER_SIXTY 0x10115 #define T_UTF_32_AEGEAN_NUMBER_SEVENTY 0x10116 #define T_UTF_32_AEGEAN_NUMBER_EIGHTY 0x10117 #define T_UTF_32_AEGEAN_NUMBER_NINETY 0x10118 #define T_UTF_32_AEGEAN_NUMBER_ONE_HUNDRED 0x10119 #define T_UTF_32_AEGEAN_NUMBER_TWO_HUNDRED 0x1011A #define T_UTF_32_AEGEAN_NUMBER_THREE_HUNDRED 0x1011B #define T_UTF_32_AEGEAN_NUMBER_FOUR_HUNDRED 0x1011C #define T_UTF_32_AEGEAN_NUMBER_FIVE_HUNDRED 0x1011D #define T_UTF_32_AEGEAN_NUMBER_SIX_HUNDRED 0x1011E #define T_UTF_32_AEGEAN_NUMBER_SEVEN_HUNDRED 0x1011F #define T_UTF_32_AEGEAN_NUMBER_EIGHT_HUNDRED 0x10120 #define T_UTF_32_AEGEAN_NUMBER_NINE_HUNDRED 0x10121 #define T_UTF_32_AEGEAN_NUMBER_ONE_THOUSAND 0x10122 #define T_UTF_32_AEGEAN_NUMBER_TWO_THOUSAND 0x10123 #define T_UTF_32_AEGEAN_NUMBER_THREE_THOUSAND 0x10124 #define T_UTF_32_AEGEAN_NUMBER_FOUR_THOUSAND 0x10125 #define T_UTF_32_AEGEAN_NUMBER_FIVE_THOUSAND 0x10126 #define T_UTF_32_AEGEAN_NUMBER_SIX_THOUSAND 0x10127 #define T_UTF_32_AEGEAN_NUMBER_SEVEN_THOUSAND 0x10128 #define T_UTF_32_AEGEAN_NUMBER_EIGHT_THOUSAND 0x10129 #define T_UTF_32_AEGEAN_NUMBER_NINE_THOUSAND 0x1012A #define T_UTF_32_AEGEAN_NUMBER_TEN_THOUSAND 0x1012B #define T_UTF_32_AEGEAN_NUMBER_TWENTY_THOUSAND 0x1012C #define T_UTF_32_AEGEAN_NUMBER_THIRTY_THOUSAND 0x1012D #define T_UTF_32_AEGEAN_NUMBER_FORTY_THOUSAND 0x1012E #define T_UTF_32_AEGEAN_NUMBER_FIFTY_THOUSAND 0x1012F #define T_UTF_32_AEGEAN_NUMBER_SIXTY_THOUSAND 0x10130 #define T_UTF_32_AEGEAN_NUMBER_SEVENTY_THOUSAND 0x10131 #define T_UTF_32_AEGEAN_NUMBER_EIGHTY_THOUSAND 0x10132 #define T_UTF_32_AEGEAN_NUMBER_NINETY_THOUSAND 0x10133 #define T_UTF_32_AEGEAN_WEIGHT_BASE_UNIT 0x10137 #define T_UTF_32_AEGEAN_WEIGHT_FIRST_SUBUNIT 0x10138 #define T_UTF_32_AEGEAN_WEIGHT_SECOND_SUBUNIT 0x10139 #define T_UTF_32_AEGEAN_WEIGHT_THIRD_SUBUNIT 0x1013A #define T_UTF_32_AEGEAN_WEIGHT_FOURTH_SUBUNIT 0x1013B #define T_UTF_32_AEGEAN_DRY_MEASURE_FIRST_SUBUNIT 0x1013C #define T_UTF_32_AEGEAN_LIQUID_MEASURE_FIRST_SUBUNIT 0x1013D #define T_UTF_32_AEGEAN_MEASURE_SECOND_SUBUNIT 0x1013E #define T_UTF_32_AEGEAN_MEASURE_THIRD_SUBUNIT 0x1013F #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_ONE_QUARTER 0x10140 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_ONE_HALF 0x10141 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_ONE_DRACHMA 0x10142 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIVE 0x10143 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIFTY 0x10144 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIVE_HUNDRED 0x10145 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIVE_THOUSAND 0x10146 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIFTY_THOUSAND 0x10147 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIVE_TALENTS 0x10148 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_TEN_TALENTS 0x10149 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIFTY_TALENTS 0x1014A #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_ONE_HUNDRED_TALENTS 0x1014B #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIVE_HUNDRED_TALENTS 0x1014C #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_ONE_THOUSAND_TALENTS 0x1014D #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIVE_THOUSAND_TALENTS 0x1014E #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIVE_STATERS 0x1014F #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_TEN_STATERS 0x10150 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIFTY_STATERS 0x10151 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_ONE_HUNDRED_STATERS 0x10152 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIVE_HUNDRED_STATERS 0x10153 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_ONE_THOUSAND_STATERS 0x10154 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_TEN_THOUSAND_STATERS 0x10155 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_FIFTY_THOUSAND_STATERS 0x10156 #define T_UTF_32_GREEK_ACROPHONIC_ATTIC_TEN_MNAS 0x10157 #define T_UTF_32_GREEK_ACROPHONIC_HERAEUM_ONE_PLETHRON 0x10158 #define T_UTF_32_GREEK_ACROPHONIC_THESPIAN_ONE 0x10159 #define T_UTF_32_GREEK_ACROPHONIC_HERMIONIAN_ONE 0x1015A #define T_UTF_32_GREEK_ACROPHONIC_EPIDAUREAN_TWO 0x1015B #define T_UTF_32_GREEK_ACROPHONIC_THESPIAN_TWO 0x1015C #define T_UTF_32_GREEK_ACROPHONIC_CYRENAIC_TWO_DRACHMAS 0x1015D #define T_UTF_32_GREEK_ACROPHONIC_EPIDAUREAN_TWO_DRACHMAS 0x1015E #define T_UTF_32_GREEK_ACROPHONIC_TROEZENIAN_FIVE 0x1015F #define T_UTF_32_GREEK_ACROPHONIC_TROEZENIAN_TEN 0x10160 #define T_UTF_32_GREEK_ACROPHONIC_TROEZENIAN_TEN_ALTERNATE_FORM 0x10161 #define T_UTF_32_GREEK_ACROPHONIC_HERMIONIAN_TEN 0x10162 #define T_UTF_32_GREEK_ACROPHONIC_MESSENIAN_TEN 0x10163 #define T_UTF_32_GREEK_ACROPHONIC_THESPIAN_TEN 0x10164 #define T_UTF_32_GREEK_ACROPHONIC_THESPIAN_THIRTY 0x10165 #define T_UTF_32_GREEK_ACROPHONIC_TROEZENIAN_FIFTY 0x10166 #define T_UTF_32_GREEK_ACROPHONIC_TROEZENIAN_FIFTY_ALTERNATE_FORM 0x10167 #define T_UTF_32_GREEK_ACROPHONIC_HERMIONIAN_FIFTY 0x10168 #define T_UTF_32_GREEK_ACROPHONIC_THESPIAN_FIFTY 0x10169 #define T_UTF_32_GREEK_ACROPHONIC_THESPIAN_ONE_HUNDRED 0x1016A #define T_UTF_32_GREEK_ACROPHONIC_THESPIAN_THREE_HUNDRED 0x1016B #define T_UTF_32_GREEK_ACROPHONIC_EPIDAUREAN_FIVE_HUNDRED 0x1016C #define T_UTF_32_GREEK_ACROPHONIC_TROEZENIAN_FIVE_HUNDRED 0x1016D #define T_UTF_32_GREEK_ACROPHONIC_THESPIAN_FIVE_HUNDRED 0x1016E #define T_UTF_32_GREEK_ACROPHONIC_CARYSTIAN_FIVE_HUNDRED 0x1016F #define T_UTF_32_GREEK_ACROPHONIC_NAXIAN_FIVE_HUNDRED 0x10170 #define T_UTF_32_GREEK_ACROPHONIC_THESPIAN_ONE_THOUSAND 0x10171 #define T_UTF_32_GREEK_ACROPHONIC_THESPIAN_FIVE_THOUSAND 0x10172 #define T_UTF_32_GREEK_ACROPHONIC_DELPHIC_FIVE_MNAS 0x10173 #define T_UTF_32_GREEK_ACROPHONIC_STRATIAN_FIFTY_MNAS 0x10174 #define T_UTF_32_GREEK_ONE_HALF_SIGN 0x10175 #define T_UTF_32_GREEK_ONE_HALF_SIGN_ALTERNATE_FORM 0x10176 #define T_UTF_32_GREEK_TWO_THIRDS_SIGN 0x10177 #define T_UTF_32_GREEK_THREE_QUARTERS_SIGN 0x10178 #define T_UTF_32_GREEK_YEAR_SIGN 0x10179 #define T_UTF_32_GREEK_TALENT_SIGN 0x1017A #define T_UTF_32_GREEK_DRACHMA_SIGN 0x1017B #define T_UTF_32_GREEK_OBOL_SIGN 0x1017C #define T_UTF_32_GREEK_TWO_OBOLS_SIGN 0x1017D #define T_UTF_32_GREEK_THREE_OBOLS_SIGN 0x1017E #define T_UTF_32_GREEK_FOUR_OBOLS_SIGN 0x1017F #define T_UTF_32_GREEK_FIVE_OBOLS_SIGN 0x10180 #define T_UTF_32_GREEK_METRETES_SIGN 0x10181 #define T_UTF_32_GREEK_KYATHOS_BASE_SIGN 0x10182 #define T_UTF_32_GREEK_LITRA_SIGN 0x10183 #define T_UTF_32_GREEK_OUNKIA_SIGN 0x10184 #define T_UTF_32_GREEK_XESTES_SIGN 0x10185 #define T_UTF_32_GREEK_ARTABE_SIGN 0x10186 #define T_UTF_32_GREEK_AROURA_SIGN 0x10187 #define T_UTF_32_GREEK_GRAMMA_SIGN 0x10188 #define T_UTF_32_GREEK_TRYBLION_BASE_SIGN 0x10189 #define T_UTF_32_GREEK_ZERO_SIGN 0x1018A #define T_UTF_32_GREEK_ONE_QUARTER_SIGN 0x1018B #define T_UTF_32_GREEK_SINUSOID_SIGN 0x1018C #define T_UTF_32_GREEK_INDICTION_SIGN 0x1018D #define T_UTF_32_NOMISMA_SIGN 0x1018E #define T_UTF_32_ROMAN_SEXTANS_SIGN 0x10190 #define T_UTF_32_ROMAN_UNCIA_SIGN 0x10191 #define T_UTF_32_ROMAN_SEMUNCIA_SIGN 0x10192 #define T_UTF_32_ROMAN_SEXTULA_SIGN 0x10193 #define T_UTF_32_ROMAN_DIMIDIA_SEXTULA_SIGN 0x10194 #define T_UTF_32_ROMAN_SILIQUA_SIGN 0x10195 #define T_UTF_32_ROMAN_DENARIUS_SIGN 0x10196 #define T_UTF_32_ROMAN_QUINARIUS_SIGN 0x10197 #define T_UTF_32_ROMAN_SESTERTIUS_SIGN 0x10198 #define T_UTF_32_ROMAN_DUPONDIUS_SIGN 0x10199 #define T_UTF_32_ROMAN_AS_SIGN 0x1019A #define T_UTF_32_ROMAN_CENTURIAL_SIGN 0x1019B #define T_UTF_32_GREEK_SYMBOL_TAU_RHO 0x101A0 #define T_UTF_32_PHAISTOS_DISC_SIGN_PEDESTRIAN 0x101D0 #define T_UTF_32_PHAISTOS_DISC_SIGN_PLUMED_HEAD 0x101D1 #define T_UTF_32_PHAISTOS_DISC_SIGN_TATTOOED_HEAD 0x101D2 #define T_UTF_32_PHAISTOS_DISC_SIGN_CAPTIVE 0x101D3 #define T_UTF_32_PHAISTOS_DISC_SIGN_CHILD 0x101D4 #define T_UTF_32_PHAISTOS_DISC_SIGN_WOMAN 0x101D5 #define T_UTF_32_PHAISTOS_DISC_SIGN_HELMET 0x101D6 #define T_UTF_32_PHAISTOS_DISC_SIGN_GAUNTLET 0x101D7 #define T_UTF_32_PHAISTOS_DISC_SIGN_TIARA 0x101D8 #define T_UTF_32_PHAISTOS_DISC_SIGN_ARROW 0x101D9 #define T_UTF_32_PHAISTOS_DISC_SIGN_BOW 0x101DA #define T_UTF_32_PHAISTOS_DISC_SIGN_SHIELD 0x101DB #define T_UTF_32_PHAISTOS_DISC_SIGN_CLUB 0x101DC #define T_UTF_32_PHAISTOS_DISC_SIGN_MANACLES 0x101DD #define T_UTF_32_PHAISTOS_DISC_SIGN_MATTOCK 0x101DE #define T_UTF_32_PHAISTOS_DISC_SIGN_SAW 0x101DF #define T_UTF_32_PHAISTOS_DISC_SIGN_LID 0x101E0 #define T_UTF_32_PHAISTOS_DISC_SIGN_BOOMERANG 0x101E1 #define T_UTF_32_PHAISTOS_DISC_SIGN_CARPENTRY_PLANE 0x101E2 #define T_UTF_32_PHAISTOS_DISC_SIGN_DOLIUM 0x101E3 #define T_UTF_32_PHAISTOS_DISC_SIGN_COMB 0x101E4 #define T_UTF_32_PHAISTOS_DISC_SIGN_SLING 0x101E5 #define T_UTF_32_PHAISTOS_DISC_SIGN_COLUMN 0x101E6 #define T_UTF_32_PHAISTOS_DISC_SIGN_BEEHIVE 0x101E7 #define T_UTF_32_PHAISTOS_DISC_SIGN_SHIP 0x101E8 #define T_UTF_32_PHAISTOS_DISC_SIGN_HORN 0x101E9 #define T_UTF_32_PHAISTOS_DISC_SIGN_HIDE 0x101EA #define T_UTF_32_PHAISTOS_DISC_SIGN_BULLS_LEG 0x101EB #define T_UTF_32_PHAISTOS_DISC_SIGN_CAT 0x101EC #define T_UTF_32_PHAISTOS_DISC_SIGN_RAM 0x101ED #define T_UTF_32_PHAISTOS_DISC_SIGN_EAGLE 0x101EE #define T_UTF_32_PHAISTOS_DISC_SIGN_DOVE 0x101EF #define T_UTF_32_PHAISTOS_DISC_SIGN_TUNNY 0x101F0 #define T_UTF_32_PHAISTOS_DISC_SIGN_BEE 0x101F1 #define T_UTF_32_PHAISTOS_DISC_SIGN_PLANE_TREE 0x101F2 #define T_UTF_32_PHAISTOS_DISC_SIGN_VINE 0x101F3 #define T_UTF_32_PHAISTOS_DISC_SIGN_PAPYRUS 0x101F4 #define T_UTF_32_PHAISTOS_DISC_SIGN_ROSETTE 0x101F5 #define T_UTF_32_PHAISTOS_DISC_SIGN_LILY 0x101F6 #define T_UTF_32_PHAISTOS_DISC_SIGN_OX_BACK 0x101F7 #define T_UTF_32_PHAISTOS_DISC_SIGN_FLUTE 0x101F8 #define T_UTF_32_PHAISTOS_DISC_SIGN_GRATER 0x101F9 #define T_UTF_32_PHAISTOS_DISC_SIGN_STRAINER 0x101FA #define T_UTF_32_PHAISTOS_DISC_SIGN_SMALL_AXE 0x101FB #define T_UTF_32_PHAISTOS_DISC_SIGN_WAVY_BAND 0x101FC #define T_UTF_32_PHAISTOS_DISC_SIGN_COMBINING_OBLIQUE_STROKE 0x101FD #define T_UTF_32_LYCIAN_LETTER_A 0x10280 #define T_UTF_32_LYCIAN_LETTER_E 0x10281 #define T_UTF_32_LYCIAN_LETTER_B 0x10282 #define T_UTF_32_LYCIAN_LETTER_BH 0x10283 #define T_UTF_32_LYCIAN_LETTER_G 0x10284 #define T_UTF_32_LYCIAN_LETTER_D 0x10285 #define T_UTF_32_LYCIAN_LETTER_I 0x10286 #define T_UTF_32_LYCIAN_LETTER_W 0x10287 #define T_UTF_32_LYCIAN_LETTER_Z 0x10288 #define T_UTF_32_LYCIAN_LETTER_TH 0x10289 #define T_UTF_32_LYCIAN_LETTER_J 0x1028A #define T_UTF_32_LYCIAN_LETTER_K 0x1028B #define T_UTF_32_LYCIAN_LETTER_Q 0x1028C #define T_UTF_32_LYCIAN_LETTER_L 0x1028D #define T_UTF_32_LYCIAN_LETTER_M 0x1028E #define T_UTF_32_LYCIAN_LETTER_N 0x1028F #define T_UTF_32_LYCIAN_LETTER_MM 0x10290 #define T_UTF_32_LYCIAN_LETTER_NN 0x10291 #define T_UTF_32_LYCIAN_LETTER_U 0x10292 #define T_UTF_32_LYCIAN_LETTER_P 0x10293 #define T_UTF_32_LYCIAN_LETTER_KK 0x10294 #define T_UTF_32_LYCIAN_LETTER_R 0x10295 #define T_UTF_32_LYCIAN_LETTER_S 0x10296 #define T_UTF_32_LYCIAN_LETTER_T 0x10297 #define T_UTF_32_LYCIAN_LETTER_TT 0x10298 #define T_UTF_32_LYCIAN_LETTER_AN 0x10299 #define T_UTF_32_LYCIAN_LETTER_EN 0x1029A #define T_UTF_32_LYCIAN_LETTER_H 0x1029B #define T_UTF_32_LYCIAN_LETTER_X 0x1029C #define T_UTF_32_CARIAN_LETTER_A 0x102A0 #define T_UTF_32_CARIAN_LETTER_P2 0x102A1 #define T_UTF_32_CARIAN_LETTER_D 0x102A2 #define T_UTF_32_CARIAN_LETTER_L 0x102A3 #define T_UTF_32_CARIAN_LETTER_UUU 0x102A4 #define T_UTF_32_CARIAN_LETTER_R 0x102A5 #define T_UTF_32_CARIAN_LETTER_LD 0x102A6 #define T_UTF_32_CARIAN_LETTER_A2 0x102A7 #define T_UTF_32_CARIAN_LETTER_Q 0x102A8 #define T_UTF_32_CARIAN_LETTER_B 0x102A9 #define T_UTF_32_CARIAN_LETTER_M 0x102AA #define T_UTF_32_CARIAN_LETTER_O 0x102AB #define T_UTF_32_CARIAN_LETTER_D2 0x102AC #define T_UTF_32_CARIAN_LETTER_T 0x102AD #define T_UTF_32_CARIAN_LETTER_SH 0x102AE #define T_UTF_32_CARIAN_LETTER_SH2 0x102AF #define T_UTF_32_CARIAN_LETTER_S 0x102B0 #define T_UTF_32_CARIAN_LETTER_C_18 0x102B1 #define T_UTF_32_CARIAN_LETTER_U 0x102B2 #define T_UTF_32_CARIAN_LETTER_NN 0x102B3 #define T_UTF_32_CARIAN_LETTER_X 0x102B4 #define T_UTF_32_CARIAN_LETTER_N 0x102B5 #define T_UTF_32_CARIAN_LETTER_TT2 0x102B6 #define T_UTF_32_CARIAN_LETTER_P 0x102B7 #define T_UTF_32_CARIAN_LETTER_SS 0x102B8 #define T_UTF_32_CARIAN_LETTER_I 0x102B9 #define T_UTF_32_CARIAN_LETTER_E 0x102BA #define T_UTF_32_CARIAN_LETTER_UUUU 0x102BB #define T_UTF_32_CARIAN_LETTER_K 0x102BC #define T_UTF_32_CARIAN_LETTER_K2 0x102BD #define T_UTF_32_CARIAN_LETTER_ND 0x102BE #define T_UTF_32_CARIAN_LETTER_UU 0x102BF #define T_UTF_32_CARIAN_LETTER_G 0x102C0 #define T_UTF_32_CARIAN_LETTER_G2 0x102C1 #define T_UTF_32_CARIAN_LETTER_ST 0x102C2 #define T_UTF_32_CARIAN_LETTER_ST2 0x102C3 #define T_UTF_32_CARIAN_LETTER_NG 0x102C4 #define T_UTF_32_CARIAN_LETTER_II 0x102C5 #define T_UTF_32_CARIAN_LETTER_C_39 0x102C6 #define T_UTF_32_CARIAN_LETTER_TT 0x102C7 #define T_UTF_32_CARIAN_LETTER_UUU2 0x102C8 #define T_UTF_32_CARIAN_LETTER_RR 0x102C9 #define T_UTF_32_CARIAN_LETTER_MB 0x102CA #define T_UTF_32_CARIAN_LETTER_MB2 0x102CB #define T_UTF_32_CARIAN_LETTER_MB3 0x102CC #define T_UTF_32_CARIAN_LETTER_MB4 0x102CD #define T_UTF_32_CARIAN_LETTER_LD2 0x102CE #define T_UTF_32_CARIAN_LETTER_E2 0x102CF #define T_UTF_32_CARIAN_LETTER_UUU3 0x102D0 #define T_UTF_32_COPTIC_EPACT_THOUSANDS_MARK 0x102E0 #define T_UTF_32_COPTIC_EPACT_DIGIT_ONE 0x102E1 #define T_UTF_32_COPTIC_EPACT_DIGIT_TWO 0x102E2 #define T_UTF_32_COPTIC_EPACT_DIGIT_THREE 0x102E3 #define T_UTF_32_COPTIC_EPACT_DIGIT_FOUR 0x102E4 #define T_UTF_32_COPTIC_EPACT_DIGIT_FIVE 0x102E5 #define T_UTF_32_COPTIC_EPACT_DIGIT_SIX 0x102E6 #define T_UTF_32_COPTIC_EPACT_DIGIT_SEVEN 0x102E7 #define T_UTF_32_COPTIC_EPACT_DIGIT_EIGHT 0x102E8 #define T_UTF_32_COPTIC_EPACT_DIGIT_NINE 0x102E9 #define T_UTF_32_COPTIC_EPACT_NUMBER_TEN 0x102EA #define T_UTF_32_COPTIC_EPACT_NUMBER_TWENTY 0x102EB #define T_UTF_32_COPTIC_EPACT_NUMBER_THIRTY 0x102EC #define T_UTF_32_COPTIC_EPACT_NUMBER_FORTY 0x102ED #define T_UTF_32_COPTIC_EPACT_NUMBER_FIFTY 0x102EE #define T_UTF_32_COPTIC_EPACT_NUMBER_SIXTY 0x102EF #define T_UTF_32_COPTIC_EPACT_NUMBER_SEVENTY 0x102F0 #define T_UTF_32_COPTIC_EPACT_NUMBER_EIGHTY 0x102F1 #define T_UTF_32_COPTIC_EPACT_NUMBER_NINETY 0x102F2 #define T_UTF_32_COPTIC_EPACT_NUMBER_ONE_HUNDRED 0x102F3 #define T_UTF_32_COPTIC_EPACT_NUMBER_TWO_HUNDRED 0x102F4 #define T_UTF_32_COPTIC_EPACT_NUMBER_THREE_HUNDRED 0x102F5 #define T_UTF_32_COPTIC_EPACT_NUMBER_FOUR_HUNDRED 0x102F6 #define T_UTF_32_COPTIC_EPACT_NUMBER_FIVE_HUNDRED 0x102F7 #define T_UTF_32_COPTIC_EPACT_NUMBER_SIX_HUNDRED 0x102F8 #define T_UTF_32_COPTIC_EPACT_NUMBER_SEVEN_HUNDRED 0x102F9 #define T_UTF_32_COPTIC_EPACT_NUMBER_EIGHT_HUNDRED 0x102FA #define T_UTF_32_COPTIC_EPACT_NUMBER_NINE_HUNDRED 0x102FB #define T_UTF_32_OLD_ITALIC_LETTER_A 0x10300 #define T_UTF_32_OLD_ITALIC_LETTER_BE 0x10301 #define T_UTF_32_OLD_ITALIC_LETTER_KE 0x10302 #define T_UTF_32_OLD_ITALIC_LETTER_DE 0x10303 #define T_UTF_32_OLD_ITALIC_LETTER_E 0x10304 #define T_UTF_32_OLD_ITALIC_LETTER_VE 0x10305 #define T_UTF_32_OLD_ITALIC_LETTER_ZE 0x10306 #define T_UTF_32_OLD_ITALIC_LETTER_HE 0x10307 #define T_UTF_32_OLD_ITALIC_LETTER_THE 0x10308 #define T_UTF_32_OLD_ITALIC_LETTER_I 0x10309 #define T_UTF_32_OLD_ITALIC_LETTER_KA 0x1030A #define T_UTF_32_OLD_ITALIC_LETTER_EL 0x1030B #define T_UTF_32_OLD_ITALIC_LETTER_EM 0x1030C #define T_UTF_32_OLD_ITALIC_LETTER_EN 0x1030D #define T_UTF_32_OLD_ITALIC_LETTER_ESH 0x1030E #define T_UTF_32_OLD_ITALIC_LETTER_O 0x1030F #define T_UTF_32_OLD_ITALIC_LETTER_PE 0x10310 #define T_UTF_32_OLD_ITALIC_LETTER_SHE 0x10311 #define T_UTF_32_OLD_ITALIC_LETTER_KU 0x10312 #define T_UTF_32_OLD_ITALIC_LETTER_ER 0x10313 #define T_UTF_32_OLD_ITALIC_LETTER_ES 0x10314 #define T_UTF_32_OLD_ITALIC_LETTER_TE 0x10315 #define T_UTF_32_OLD_ITALIC_LETTER_U 0x10316 #define T_UTF_32_OLD_ITALIC_LETTER_EKS 0x10317 #define T_UTF_32_OLD_ITALIC_LETTER_PHE 0x10318 #define T_UTF_32_OLD_ITALIC_LETTER_KHE 0x10319 #define T_UTF_32_OLD_ITALIC_LETTER_EF 0x1031A #define T_UTF_32_OLD_ITALIC_LETTER_ERS 0x1031B #define T_UTF_32_OLD_ITALIC_LETTER_CHE 0x1031C #define T_UTF_32_OLD_ITALIC_LETTER_II 0x1031D #define T_UTF_32_OLD_ITALIC_LETTER_UU 0x1031E #define T_UTF_32_OLD_ITALIC_LETTER_ESS 0x1031F #define T_UTF_32_OLD_ITALIC_NUMERAL_ONE 0x10320 #define T_UTF_32_OLD_ITALIC_NUMERAL_FIVE 0x10321 #define T_UTF_32_OLD_ITALIC_NUMERAL_TEN 0x10322 #define T_UTF_32_OLD_ITALIC_NUMERAL_FIFTY 0x10323 #define T_UTF_32_OLD_ITALIC_LETTER_YE 0x1032D #define T_UTF_32_OLD_ITALIC_LETTER_NORTHERN_TSE 0x1032E #define T_UTF_32_OLD_ITALIC_LETTER_SOUTHERN_TSE 0x1032F #define T_UTF_32_GOTHIC_LETTER_AHSA 0x10330 #define T_UTF_32_GOTHIC_LETTER_BAIRKAN 0x10331 #define T_UTF_32_GOTHIC_LETTER_GIBA 0x10332 #define T_UTF_32_GOTHIC_LETTER_DAGS 0x10333 #define T_UTF_32_GOTHIC_LETTER_AIHVUS 0x10334 #define T_UTF_32_GOTHIC_LETTER_QAIRTHRA 0x10335 #define T_UTF_32_GOTHIC_LETTER_IUJA 0x10336 #define T_UTF_32_GOTHIC_LETTER_HAGL 0x10337 #define T_UTF_32_GOTHIC_LETTER_THIUTH 0x10338 #define T_UTF_32_GOTHIC_LETTER_EIS 0x10339 #define T_UTF_32_GOTHIC_LETTER_KUSMA 0x1033A #define T_UTF_32_GOTHIC_LETTER_LAGUS 0x1033B #define T_UTF_32_GOTHIC_LETTER_MANNA 0x1033C #define T_UTF_32_GOTHIC_LETTER_NAUTHS 0x1033D #define T_UTF_32_GOTHIC_LETTER_JER 0x1033E #define T_UTF_32_GOTHIC_LETTER_URUS 0x1033F #define T_UTF_32_GOTHIC_LETTER_PAIRTHRA 0x10340 #define T_UTF_32_GOTHIC_LETTER_NINETY 0x10341 #define T_UTF_32_GOTHIC_LETTER_RAIDA 0x10342 #define T_UTF_32_GOTHIC_LETTER_SAUIL 0x10343 #define T_UTF_32_GOTHIC_LETTER_TEIWS 0x10344 #define T_UTF_32_GOTHIC_LETTER_WINJA 0x10345 #define T_UTF_32_GOTHIC_LETTER_FAIHU 0x10346 #define T_UTF_32_GOTHIC_LETTER_IGGWS 0x10347 #define T_UTF_32_GOTHIC_LETTER_HWAIR 0x10348 #define T_UTF_32_GOTHIC_LETTER_OTHAL 0x10349 #define T_UTF_32_GOTHIC_LETTER_NINE_HUNDRED 0x1034A #define T_UTF_32_OLD_PERMIC_LETTER_AN 0x10350 #define T_UTF_32_OLD_PERMIC_LETTER_BUR 0x10351 #define T_UTF_32_OLD_PERMIC_LETTER_GAI 0x10352 #define T_UTF_32_OLD_PERMIC_LETTER_DOI 0x10353 #define T_UTF_32_OLD_PERMIC_LETTER_E 0x10354 #define T_UTF_32_OLD_PERMIC_LETTER_ZHOI 0x10355 #define T_UTF_32_OLD_PERMIC_LETTER_DZHOI 0x10356 #define T_UTF_32_OLD_PERMIC_LETTER_ZATA 0x10357 #define T_UTF_32_OLD_PERMIC_LETTER_DZITA 0x10358 #define T_UTF_32_OLD_PERMIC_LETTER_I 0x10359 #define T_UTF_32_OLD_PERMIC_LETTER_KOKE 0x1035A #define T_UTF_32_OLD_PERMIC_LETTER_LEI 0x1035B #define T_UTF_32_OLD_PERMIC_LETTER_MENOE 0x1035C #define T_UTF_32_OLD_PERMIC_LETTER_NENOE 0x1035D #define T_UTF_32_OLD_PERMIC_LETTER_VOOI 0x1035E #define T_UTF_32_OLD_PERMIC_LETTER_PEEI 0x1035F #define T_UTF_32_OLD_PERMIC_LETTER_REI 0x10360 #define T_UTF_32_OLD_PERMIC_LETTER_SII 0x10361 #define T_UTF_32_OLD_PERMIC_LETTER_TAI 0x10362 #define T_UTF_32_OLD_PERMIC_LETTER_U 0x10363 #define T_UTF_32_OLD_PERMIC_LETTER_CHERY 0x10364 #define T_UTF_32_OLD_PERMIC_LETTER_SHOOI 0x10365 #define T_UTF_32_OLD_PERMIC_LETTER_SHCHOOI 0x10366 #define T_UTF_32_OLD_PERMIC_LETTER_YRY 0x10367 #define T_UTF_32_OLD_PERMIC_LETTER_YERU 0x10368 #define T_UTF_32_OLD_PERMIC_LETTER_O 0x10369 #define T_UTF_32_OLD_PERMIC_LETTER_OO 0x1036A #define T_UTF_32_OLD_PERMIC_LETTER_EF 0x1036B #define T_UTF_32_OLD_PERMIC_LETTER_HA 0x1036C #define T_UTF_32_OLD_PERMIC_LETTER_TSIU 0x1036D #define T_UTF_32_OLD_PERMIC_LETTER_VER 0x1036E #define T_UTF_32_OLD_PERMIC_LETTER_YER 0x1036F #define T_UTF_32_OLD_PERMIC_LETTER_YERI 0x10370 #define T_UTF_32_OLD_PERMIC_LETTER_YAT 0x10371 #define T_UTF_32_OLD_PERMIC_LETTER_IE 0x10372 #define T_UTF_32_OLD_PERMIC_LETTER_YU 0x10373 #define T_UTF_32_OLD_PERMIC_LETTER_YA 0x10374 #define T_UTF_32_OLD_PERMIC_LETTER_IA 0x10375 #define T_UTF_32_COMBINING_OLD_PERMIC_LETTER_AN 0x10376 #define T_UTF_32_COMBINING_OLD_PERMIC_LETTER_DOI 0x10377 #define T_UTF_32_COMBINING_OLD_PERMIC_LETTER_ZATA 0x10378 #define T_UTF_32_COMBINING_OLD_PERMIC_LETTER_NENOE 0x10379 #define T_UTF_32_COMBINING_OLD_PERMIC_LETTER_SII 0x1037A #define T_UTF_32_UGARITIC_LETTER_ALPA 0x10380 #define T_UTF_32_UGARITIC_LETTER_BETA 0x10381 #define T_UTF_32_UGARITIC_LETTER_GAMLA 0x10382 #define T_UTF_32_UGARITIC_LETTER_KHA 0x10383 #define T_UTF_32_UGARITIC_LETTER_DELTA 0x10384 #define T_UTF_32_UGARITIC_LETTER_HO 0x10385 #define T_UTF_32_UGARITIC_LETTER_WO 0x10386 #define T_UTF_32_UGARITIC_LETTER_ZETA 0x10387 #define T_UTF_32_UGARITIC_LETTER_HOTA 0x10388 #define T_UTF_32_UGARITIC_LETTER_TET 0x10389 #define T_UTF_32_UGARITIC_LETTER_YOD 0x1038A #define T_UTF_32_UGARITIC_LETTER_KAF 0x1038B #define T_UTF_32_UGARITIC_LETTER_SHIN 0x1038C #define T_UTF_32_UGARITIC_LETTER_LAMDA 0x1038D #define T_UTF_32_UGARITIC_LETTER_MEM 0x1038E #define T_UTF_32_UGARITIC_LETTER_DHAL 0x1038F #define T_UTF_32_UGARITIC_LETTER_NUN 0x10390 #define T_UTF_32_UGARITIC_LETTER_ZU 0x10391 #define T_UTF_32_UGARITIC_LETTER_SAMKA 0x10392 #define T_UTF_32_UGARITIC_LETTER_AIN 0x10393 #define T_UTF_32_UGARITIC_LETTER_PU 0x10394 #define T_UTF_32_UGARITIC_LETTER_SADE 0x10395 #define T_UTF_32_UGARITIC_LETTER_QOPA 0x10396 #define T_UTF_32_UGARITIC_LETTER_RASHA 0x10397 #define T_UTF_32_UGARITIC_LETTER_THANNA 0x10398 #define T_UTF_32_UGARITIC_LETTER_GHAIN 0x10399 #define T_UTF_32_UGARITIC_LETTER_TO 0x1039A #define T_UTF_32_UGARITIC_LETTER_I 0x1039B #define T_UTF_32_UGARITIC_LETTER_U 0x1039C #define T_UTF_32_UGARITIC_LETTER_SSU 0x1039D #define T_UTF_32_UGARITIC_WORD_DIVIDER 0x1039F #define T_UTF_32_OLD_PERSIAN_SIGN_A 0x103A0 #define T_UTF_32_OLD_PERSIAN_SIGN_I 0x103A1 #define T_UTF_32_OLD_PERSIAN_SIGN_U 0x103A2 #define T_UTF_32_OLD_PERSIAN_SIGN_KA 0x103A3 #define T_UTF_32_OLD_PERSIAN_SIGN_KU 0x103A4 #define T_UTF_32_OLD_PERSIAN_SIGN_GA 0x103A5 #define T_UTF_32_OLD_PERSIAN_SIGN_GU 0x103A6 #define T_UTF_32_OLD_PERSIAN_SIGN_XA 0x103A7 #define T_UTF_32_OLD_PERSIAN_SIGN_CA 0x103A8 #define T_UTF_32_OLD_PERSIAN_SIGN_JA 0x103A9 #define T_UTF_32_OLD_PERSIAN_SIGN_JI 0x103AA #define T_UTF_32_OLD_PERSIAN_SIGN_TA 0x103AB #define T_UTF_32_OLD_PERSIAN_SIGN_TU 0x103AC #define T_UTF_32_OLD_PERSIAN_SIGN_DA 0x103AD #define T_UTF_32_OLD_PERSIAN_SIGN_DI 0x103AE #define T_UTF_32_OLD_PERSIAN_SIGN_DU 0x103AF #define T_UTF_32_OLD_PERSIAN_SIGN_THA 0x103B0 #define T_UTF_32_OLD_PERSIAN_SIGN_PA 0x103B1 #define T_UTF_32_OLD_PERSIAN_SIGN_BA 0x103B2 #define T_UTF_32_OLD_PERSIAN_SIGN_FA 0x103B3 #define T_UTF_32_OLD_PERSIAN_SIGN_NA 0x103B4 #define T_UTF_32_OLD_PERSIAN_SIGN_NU 0x103B5 #define T_UTF_32_OLD_PERSIAN_SIGN_MA 0x103B6 #define T_UTF_32_OLD_PERSIAN_SIGN_MI 0x103B7 #define T_UTF_32_OLD_PERSIAN_SIGN_MU 0x103B8 #define T_UTF_32_OLD_PERSIAN_SIGN_YA 0x103B9 #define T_UTF_32_OLD_PERSIAN_SIGN_VA 0x103BA #define T_UTF_32_OLD_PERSIAN_SIGN_VI 0x103BB #define T_UTF_32_OLD_PERSIAN_SIGN_RA 0x103BC #define T_UTF_32_OLD_PERSIAN_SIGN_RU 0x103BD #define T_UTF_32_OLD_PERSIAN_SIGN_LA 0x103BE #define T_UTF_32_OLD_PERSIAN_SIGN_SA 0x103BF #define T_UTF_32_OLD_PERSIAN_SIGN_ZA 0x103C0 #define T_UTF_32_OLD_PERSIAN_SIGN_SHA 0x103C1 #define T_UTF_32_OLD_PERSIAN_SIGN_SSA 0x103C2 #define T_UTF_32_OLD_PERSIAN_SIGN_HA 0x103C3 #define T_UTF_32_OLD_PERSIAN_SIGN_AURAMAZDAA 0x103C8 #define T_UTF_32_OLD_PERSIAN_SIGN_AURAMAZDAA_2 0x103C9 #define T_UTF_32_OLD_PERSIAN_SIGN_AURAMAZDAAHA 0x103CA #define T_UTF_32_OLD_PERSIAN_SIGN_XSHAAYATHIYA 0x103CB #define T_UTF_32_OLD_PERSIAN_SIGN_DAHYAAUSH 0x103CC #define T_UTF_32_OLD_PERSIAN_SIGN_DAHYAAUSH_2 0x103CD #define T_UTF_32_OLD_PERSIAN_SIGN_BAGA 0x103CE #define T_UTF_32_OLD_PERSIAN_SIGN_BUUMISH 0x103CF #define T_UTF_32_OLD_PERSIAN_WORD_DIVIDER 0x103D0 #define T_UTF_32_OLD_PERSIAN_NUMBER_ONE 0x103D1 #define T_UTF_32_OLD_PERSIAN_NUMBER_TWO 0x103D2 #define T_UTF_32_OLD_PERSIAN_NUMBER_TEN 0x103D3 #define T_UTF_32_OLD_PERSIAN_NUMBER_TWENTY 0x103D4 #define T_UTF_32_OLD_PERSIAN_NUMBER_HUNDRED 0x103D5 #define T_UTF_32_DESERET_CAPITAL_LETTER_LONG_I 0x10400 #define T_UTF_32_DESERET_CAPITAL_LETTER_LONG_E 0x10401 #define T_UTF_32_DESERET_CAPITAL_LETTER_LONG_A 0x10402 #define T_UTF_32_DESERET_CAPITAL_LETTER_LONG_AH 0x10403 #define T_UTF_32_DESERET_CAPITAL_LETTER_LONG_O 0x10404 #define T_UTF_32_DESERET_CAPITAL_LETTER_LONG_OO 0x10405 #define T_UTF_32_DESERET_CAPITAL_LETTER_SHORT_I 0x10406 #define T_UTF_32_DESERET_CAPITAL_LETTER_SHORT_E 0x10407 #define T_UTF_32_DESERET_CAPITAL_LETTER_SHORT_A 0x10408 #define T_UTF_32_DESERET_CAPITAL_LETTER_SHORT_AH 0x10409 #define T_UTF_32_DESERET_CAPITAL_LETTER_SHORT_O 0x1040A #define T_UTF_32_DESERET_CAPITAL_LETTER_SHORT_OO 0x1040B #define T_UTF_32_DESERET_CAPITAL_LETTER_AY 0x1040C #define T_UTF_32_DESERET_CAPITAL_LETTER_OW 0x1040D #define T_UTF_32_DESERET_CAPITAL_LETTER_WU 0x1040E #define T_UTF_32_DESERET_CAPITAL_LETTER_YEE 0x1040F #define T_UTF_32_DESERET_CAPITAL_LETTER_H 0x10410 #define T_UTF_32_DESERET_CAPITAL_LETTER_PEE 0x10411 #define T_UTF_32_DESERET_CAPITAL_LETTER_BEE 0x10412 #define T_UTF_32_DESERET_CAPITAL_LETTER_TEE 0x10413 #define T_UTF_32_DESERET_CAPITAL_LETTER_DEE 0x10414 #define T_UTF_32_DESERET_CAPITAL_LETTER_CHEE 0x10415 #define T_UTF_32_DESERET_CAPITAL_LETTER_JEE 0x10416 #define T_UTF_32_DESERET_CAPITAL_LETTER_KAY 0x10417 #define T_UTF_32_DESERET_CAPITAL_LETTER_GAY 0x10418 #define T_UTF_32_DESERET_CAPITAL_LETTER_EF 0x10419 #define T_UTF_32_DESERET_CAPITAL_LETTER_VEE 0x1041A #define T_UTF_32_DESERET_CAPITAL_LETTER_ETH 0x1041B #define T_UTF_32_DESERET_CAPITAL_LETTER_THEE 0x1041C #define T_UTF_32_DESERET_CAPITAL_LETTER_ES 0x1041D #define T_UTF_32_DESERET_CAPITAL_LETTER_ZEE 0x1041E #define T_UTF_32_DESERET_CAPITAL_LETTER_ESH 0x1041F #define T_UTF_32_DESERET_CAPITAL_LETTER_ZHEE 0x10420 #define T_UTF_32_DESERET_CAPITAL_LETTER_ER 0x10421 #define T_UTF_32_DESERET_CAPITAL_LETTER_EL 0x10422 #define T_UTF_32_DESERET_CAPITAL_LETTER_EM 0x10423 #define T_UTF_32_DESERET_CAPITAL_LETTER_EN 0x10424 #define T_UTF_32_DESERET_CAPITAL_LETTER_ENG 0x10425 #define T_UTF_32_DESERET_CAPITAL_LETTER_OI 0x10426 #define T_UTF_32_DESERET_CAPITAL_LETTER_EW 0x10427 #define T_UTF_32_DESERET_SMALL_LETTER_LONG_I 0x10428 #define T_UTF_32_DESERET_SMALL_LETTER_LONG_E 0x10429 #define T_UTF_32_DESERET_SMALL_LETTER_LONG_A 0x1042A #define T_UTF_32_DESERET_SMALL_LETTER_LONG_AH 0x1042B #define T_UTF_32_DESERET_SMALL_LETTER_LONG_O 0x1042C #define T_UTF_32_DESERET_SMALL_LETTER_LONG_OO 0x1042D #define T_UTF_32_DESERET_SMALL_LETTER_SHORT_I 0x1042E #define T_UTF_32_DESERET_SMALL_LETTER_SHORT_E 0x1042F #define T_UTF_32_DESERET_SMALL_LETTER_SHORT_A 0x10430 #define T_UTF_32_DESERET_SMALL_LETTER_SHORT_AH 0x10431 #define T_UTF_32_DESERET_SMALL_LETTER_SHORT_O 0x10432 #define T_UTF_32_DESERET_SMALL_LETTER_SHORT_OO 0x10433 #define T_UTF_32_DESERET_SMALL_LETTER_AY 0x10434 #define T_UTF_32_DESERET_SMALL_LETTER_OW 0x10435 #define T_UTF_32_DESERET_SMALL_LETTER_WU 0x10436 #define T_UTF_32_DESERET_SMALL_LETTER_YEE 0x10437 #define T_UTF_32_DESERET_SMALL_LETTER_H 0x10438 #define T_UTF_32_DESERET_SMALL_LETTER_PEE 0x10439 #define T_UTF_32_DESERET_SMALL_LETTER_BEE 0x1043A #define T_UTF_32_DESERET_SMALL_LETTER_TEE 0x1043B #define T_UTF_32_DESERET_SMALL_LETTER_DEE 0x1043C #define T_UTF_32_DESERET_SMALL_LETTER_CHEE 0x1043D #define T_UTF_32_DESERET_SMALL_LETTER_JEE 0x1043E #define T_UTF_32_DESERET_SMALL_LETTER_KAY 0x1043F #define T_UTF_32_DESERET_SMALL_LETTER_GAY 0x10440 #define T_UTF_32_DESERET_SMALL_LETTER_EF 0x10441 #define T_UTF_32_DESERET_SMALL_LETTER_VEE 0x10442 #define T_UTF_32_DESERET_SMALL_LETTER_ETH 0x10443 #define T_UTF_32_DESERET_SMALL_LETTER_THEE 0x10444 #define T_UTF_32_DESERET_SMALL_LETTER_ES 0x10445 #define T_UTF_32_DESERET_SMALL_LETTER_ZEE 0x10446 #define T_UTF_32_DESERET_SMALL_LETTER_ESH 0x10447 #define T_UTF_32_DESERET_SMALL_LETTER_ZHEE 0x10448 #define T_UTF_32_DESERET_SMALL_LETTER_ER 0x10449 #define T_UTF_32_DESERET_SMALL_LETTER_EL 0x1044A #define T_UTF_32_DESERET_SMALL_LETTER_EM 0x1044B #define T_UTF_32_DESERET_SMALL_LETTER_EN 0x1044C #define T_UTF_32_DESERET_SMALL_LETTER_ENG 0x1044D #define T_UTF_32_DESERET_SMALL_LETTER_OI 0x1044E #define T_UTF_32_DESERET_SMALL_LETTER_EW 0x1044F #define T_UTF_32_SHAVIAN_LETTER_PEEP 0x10450 #define T_UTF_32_SHAVIAN_LETTER_TOT 0x10451 #define T_UTF_32_SHAVIAN_LETTER_KICK 0x10452 #define T_UTF_32_SHAVIAN_LETTER_FEE 0x10453 #define T_UTF_32_SHAVIAN_LETTER_THIGH 0x10454 #define T_UTF_32_SHAVIAN_LETTER_SO 0x10455 #define T_UTF_32_SHAVIAN_LETTER_SURE 0x10456 #define T_UTF_32_SHAVIAN_LETTER_CHURCH 0x10457 #define T_UTF_32_SHAVIAN_LETTER_YEA 0x10458 #define T_UTF_32_SHAVIAN_LETTER_HUNG 0x10459 #define T_UTF_32_SHAVIAN_LETTER_BIB 0x1045A #define T_UTF_32_SHAVIAN_LETTER_DEAD 0x1045B #define T_UTF_32_SHAVIAN_LETTER_GAG 0x1045C #define T_UTF_32_SHAVIAN_LETTER_VOW 0x1045D #define T_UTF_32_SHAVIAN_LETTER_THEY 0x1045E #define T_UTF_32_SHAVIAN_LETTER_ZOO 0x1045F #define T_UTF_32_SHAVIAN_LETTER_MEASURE 0x10460 #define T_UTF_32_SHAVIAN_LETTER_JUDGE 0x10461 #define T_UTF_32_SHAVIAN_LETTER_WOE 0x10462 #define T_UTF_32_SHAVIAN_LETTER_HA_HA 0x10463 #define T_UTF_32_SHAVIAN_LETTER_LOLL 0x10464 #define T_UTF_32_SHAVIAN_LETTER_MIME 0x10465 #define T_UTF_32_SHAVIAN_LETTER_IF 0x10466 #define T_UTF_32_SHAVIAN_LETTER_EGG 0x10467 #define T_UTF_32_SHAVIAN_LETTER_ASH 0x10468 #define T_UTF_32_SHAVIAN_LETTER_ADO 0x10469 #define T_UTF_32_SHAVIAN_LETTER_ON 0x1046A #define T_UTF_32_SHAVIAN_LETTER_WOOL 0x1046B #define T_UTF_32_SHAVIAN_LETTER_OUT 0x1046C #define T_UTF_32_SHAVIAN_LETTER_AH 0x1046D #define T_UTF_32_SHAVIAN_LETTER_ROAR 0x1046E #define T_UTF_32_SHAVIAN_LETTER_NUN 0x1046F #define T_UTF_32_SHAVIAN_LETTER_EAT 0x10470 #define T_UTF_32_SHAVIAN_LETTER_AGE 0x10471 #define T_UTF_32_SHAVIAN_LETTER_ICE 0x10472 #define T_UTF_32_SHAVIAN_LETTER_UP 0x10473 #define T_UTF_32_SHAVIAN_LETTER_OAK 0x10474 #define T_UTF_32_SHAVIAN_LETTER_OOZE 0x10475 #define T_UTF_32_SHAVIAN_LETTER_OIL 0x10476 #define T_UTF_32_SHAVIAN_LETTER_AWE 0x10477 #define T_UTF_32_SHAVIAN_LETTER_ARE 0x10478 #define T_UTF_32_SHAVIAN_LETTER_OR 0x10479 #define T_UTF_32_SHAVIAN_LETTER_AIR 0x1047A #define T_UTF_32_SHAVIAN_LETTER_ERR 0x1047B #define T_UTF_32_SHAVIAN_LETTER_ARRAY 0x1047C #define T_UTF_32_SHAVIAN_LETTER_EAR 0x1047D #define T_UTF_32_SHAVIAN_LETTER_IAN 0x1047E #define T_UTF_32_SHAVIAN_LETTER_YEW 0x1047F #define T_UTF_32_OSMANYA_LETTER_ALEF 0x10480 #define T_UTF_32_OSMANYA_LETTER_BA 0x10481 #define T_UTF_32_OSMANYA_LETTER_TA 0x10482 #define T_UTF_32_OSMANYA_LETTER_JA 0x10483 #define T_UTF_32_OSMANYA_LETTER_XA 0x10484 #define T_UTF_32_OSMANYA_LETTER_KHA 0x10485 #define T_UTF_32_OSMANYA_LETTER_DEEL 0x10486 #define T_UTF_32_OSMANYA_LETTER_RA 0x10487 #define T_UTF_32_OSMANYA_LETTER_SA 0x10488 #define T_UTF_32_OSMANYA_LETTER_SHIIN 0x10489 #define T_UTF_32_OSMANYA_LETTER_DHA 0x1048A #define T_UTF_32_OSMANYA_LETTER_CAYN 0x1048B #define T_UTF_32_OSMANYA_LETTER_GA 0x1048C #define T_UTF_32_OSMANYA_LETTER_FA 0x1048D #define T_UTF_32_OSMANYA_LETTER_QAAF 0x1048E #define T_UTF_32_OSMANYA_LETTER_KAAF 0x1048F #define T_UTF_32_OSMANYA_LETTER_LAAN 0x10490 #define T_UTF_32_OSMANYA_LETTER_MIIN 0x10491 #define T_UTF_32_OSMANYA_LETTER_NUUN 0x10492 #define T_UTF_32_OSMANYA_LETTER_WAW 0x10493 #define T_UTF_32_OSMANYA_LETTER_HA 0x10494 #define T_UTF_32_OSMANYA_LETTER_YA 0x10495 #define T_UTF_32_OSMANYA_LETTER_A 0x10496 #define T_UTF_32_OSMANYA_LETTER_E 0x10497 #define T_UTF_32_OSMANYA_LETTER_I 0x10498 #define T_UTF_32_OSMANYA_LETTER_O 0x10499 #define T_UTF_32_OSMANYA_LETTER_U 0x1049A #define T_UTF_32_OSMANYA_LETTER_AA 0x1049B #define T_UTF_32_OSMANYA_LETTER_EE 0x1049C #define T_UTF_32_OSMANYA_LETTER_OO 0x1049D #define T_UTF_32_OSMANYA_DIGIT_ZERO 0x104A0 #define T_UTF_32_OSMANYA_DIGIT_ONE 0x104A1 #define T_UTF_32_OSMANYA_DIGIT_TWO 0x104A2 #define T_UTF_32_OSMANYA_DIGIT_THREE 0x104A3 #define T_UTF_32_OSMANYA_DIGIT_FOUR 0x104A4 #define T_UTF_32_OSMANYA_DIGIT_FIVE 0x104A5 #define T_UTF_32_OSMANYA_DIGIT_SIX 0x104A6 #define T_UTF_32_OSMANYA_DIGIT_SEVEN 0x104A7 #define T_UTF_32_OSMANYA_DIGIT_EIGHT 0x104A8 #define T_UTF_32_OSMANYA_DIGIT_NINE 0x104A9 #define T_UTF_32_OSAGE_CAPITAL_LETTER_A 0x104B0 #define T_UTF_32_OSAGE_CAPITAL_LETTER_AI 0x104B1 #define T_UTF_32_OSAGE_CAPITAL_LETTER_AIN 0x104B2 #define T_UTF_32_OSAGE_CAPITAL_LETTER_AH 0x104B3 #define T_UTF_32_OSAGE_CAPITAL_LETTER_BRA 0x104B4 #define T_UTF_32_OSAGE_CAPITAL_LETTER_CHA 0x104B5 #define T_UTF_32_OSAGE_CAPITAL_LETTER_EHCHA 0x104B6 #define T_UTF_32_OSAGE_CAPITAL_LETTER_E 0x104B7 #define T_UTF_32_OSAGE_CAPITAL_LETTER_EIN 0x104B8 #define T_UTF_32_OSAGE_CAPITAL_LETTER_HA 0x104B9 #define T_UTF_32_OSAGE_CAPITAL_LETTER_HYA 0x104BA #define T_UTF_32_OSAGE_CAPITAL_LETTER_I 0x104BB #define T_UTF_32_OSAGE_CAPITAL_LETTER_KA 0x104BC #define T_UTF_32_OSAGE_CAPITAL_LETTER_EHKA 0x104BD #define T_UTF_32_OSAGE_CAPITAL_LETTER_KYA 0x104BE #define T_UTF_32_OSAGE_CAPITAL_LETTER_LA 0x104BF #define T_UTF_32_OSAGE_CAPITAL_LETTER_MA 0x104C0 #define T_UTF_32_OSAGE_CAPITAL_LETTER_NA 0x104C1 #define T_UTF_32_OSAGE_CAPITAL_LETTER_O 0x104C2 #define T_UTF_32_OSAGE_CAPITAL_LETTER_OIN 0x104C3 #define T_UTF_32_OSAGE_CAPITAL_LETTER_PA 0x104C4 #define T_UTF_32_OSAGE_CAPITAL_LETTER_EHPA 0x104C5 #define T_UTF_32_OSAGE_CAPITAL_LETTER_SA 0x104C6 #define T_UTF_32_OSAGE_CAPITAL_LETTER_SHA 0x104C7 #define T_UTF_32_OSAGE_CAPITAL_LETTER_TA 0x104C8 #define T_UTF_32_OSAGE_CAPITAL_LETTER_EHTA 0x104C9 #define T_UTF_32_OSAGE_CAPITAL_LETTER_TSA 0x104CA #define T_UTF_32_OSAGE_CAPITAL_LETTER_EHTSA 0x104CB #define T_UTF_32_OSAGE_CAPITAL_LETTER_TSHA 0x104CC #define T_UTF_32_OSAGE_CAPITAL_LETTER_DHA 0x104CD #define T_UTF_32_OSAGE_CAPITAL_LETTER_U 0x104CE #define T_UTF_32_OSAGE_CAPITAL_LETTER_WA 0x104CF #define T_UTF_32_OSAGE_CAPITAL_LETTER_KHA 0x104D0 #define T_UTF_32_OSAGE_CAPITAL_LETTER_GHA 0x104D1 #define T_UTF_32_OSAGE_CAPITAL_LETTER_ZA 0x104D2 #define T_UTF_32_OSAGE_CAPITAL_LETTER_ZHA 0x104D3 #define T_UTF_32_OSAGE_SMALL_LETTER_A 0x104D8 #define T_UTF_32_OSAGE_SMALL_LETTER_AI 0x104D9 #define T_UTF_32_OSAGE_SMALL_LETTER_AIN 0x104DA #define T_UTF_32_OSAGE_SMALL_LETTER_AH 0x104DB #define T_UTF_32_OSAGE_SMALL_LETTER_BRA 0x104DC #define T_UTF_32_OSAGE_SMALL_LETTER_CHA 0x104DD #define T_UTF_32_OSAGE_SMALL_LETTER_EHCHA 0x104DE #define T_UTF_32_OSAGE_SMALL_LETTER_E 0x104DF #define T_UTF_32_OSAGE_SMALL_LETTER_EIN 0x104E0 #define T_UTF_32_OSAGE_SMALL_LETTER_HA 0x104E1 #define T_UTF_32_OSAGE_SMALL_LETTER_HYA 0x104E2 #define T_UTF_32_OSAGE_SMALL_LETTER_I 0x104E3 #define T_UTF_32_OSAGE_SMALL_LETTER_KA 0x104E4 #define T_UTF_32_OSAGE_SMALL_LETTER_EHKA 0x104E5 #define T_UTF_32_OSAGE_SMALL_LETTER_KYA 0x104E6 #define T_UTF_32_OSAGE_SMALL_LETTER_LA 0x104E7 #define T_UTF_32_OSAGE_SMALL_LETTER_MA 0x104E8 #define T_UTF_32_OSAGE_SMALL_LETTER_NA 0x104E9 #define T_UTF_32_OSAGE_SMALL_LETTER_O 0x104EA #define T_UTF_32_OSAGE_SMALL_LETTER_OIN 0x104EB #define T_UTF_32_OSAGE_SMALL_LETTER_PA 0x104EC #define T_UTF_32_OSAGE_SMALL_LETTER_EHPA 0x104ED #define T_UTF_32_OSAGE_SMALL_LETTER_SA 0x104EE #define T_UTF_32_OSAGE_SMALL_LETTER_SHA 0x104EF #define T_UTF_32_OSAGE_SMALL_LETTER_TA 0x104F0 #define T_UTF_32_OSAGE_SMALL_LETTER_EHTA 0x104F1 #define T_UTF_32_OSAGE_SMALL_LETTER_TSA 0x104F2 #define T_UTF_32_OSAGE_SMALL_LETTER_EHTSA 0x104F3 #define T_UTF_32_OSAGE_SMALL_LETTER_TSHA 0x104F4 #define T_UTF_32_OSAGE_SMALL_LETTER_DHA 0x104F5 #define T_UTF_32_OSAGE_SMALL_LETTER_U 0x104F6 #define T_UTF_32_OSAGE_SMALL_LETTER_WA 0x104F7 #define T_UTF_32_OSAGE_SMALL_LETTER_KHA 0x104F8 #define T_UTF_32_OSAGE_SMALL_LETTER_GHA 0x104F9 #define T_UTF_32_OSAGE_SMALL_LETTER_ZA 0x104FA #define T_UTF_32_OSAGE_SMALL_LETTER_ZHA 0x104FB #define T_UTF_32_ELBASAN_LETTER_A 0x10500 #define T_UTF_32_ELBASAN_LETTER_BE 0x10501 #define T_UTF_32_ELBASAN_LETTER_CE 0x10502 #define T_UTF_32_ELBASAN_LETTER_CHE 0x10503 #define T_UTF_32_ELBASAN_LETTER_DE 0x10504 #define T_UTF_32_ELBASAN_LETTER_NDE 0x10505 #define T_UTF_32_ELBASAN_LETTER_DHE 0x10506 #define T_UTF_32_ELBASAN_LETTER_EI 0x10507 #define T_UTF_32_ELBASAN_LETTER_E 0x10508 #define T_UTF_32_ELBASAN_LETTER_FE 0x10509 #define T_UTF_32_ELBASAN_LETTER_GE 0x1050A #define T_UTF_32_ELBASAN_LETTER_GJE 0x1050B #define T_UTF_32_ELBASAN_LETTER_HE 0x1050C #define T_UTF_32_ELBASAN_LETTER_I 0x1050D #define T_UTF_32_ELBASAN_LETTER_JE 0x1050E #define T_UTF_32_ELBASAN_LETTER_KE 0x1050F #define T_UTF_32_ELBASAN_LETTER_LE 0x10510 #define T_UTF_32_ELBASAN_LETTER_LLE 0x10511 #define T_UTF_32_ELBASAN_LETTER_ME 0x10512 #define T_UTF_32_ELBASAN_LETTER_NE 0x10513 #define T_UTF_32_ELBASAN_LETTER_NA 0x10514 #define T_UTF_32_ELBASAN_LETTER_NJE 0x10515 #define T_UTF_32_ELBASAN_LETTER_O 0x10516 #define T_UTF_32_ELBASAN_LETTER_PE 0x10517 #define T_UTF_32_ELBASAN_LETTER_QE 0x10518 #define T_UTF_32_ELBASAN_LETTER_RE 0x10519 #define T_UTF_32_ELBASAN_LETTER_RRE 0x1051A #define T_UTF_32_ELBASAN_LETTER_SE 0x1051B #define T_UTF_32_ELBASAN_LETTER_SHE 0x1051C #define T_UTF_32_ELBASAN_LETTER_TE 0x1051D #define T_UTF_32_ELBASAN_LETTER_THE 0x1051E #define T_UTF_32_ELBASAN_LETTER_U 0x1051F #define T_UTF_32_ELBASAN_LETTER_VE 0x10520 #define T_UTF_32_ELBASAN_LETTER_XE 0x10521 #define T_UTF_32_ELBASAN_LETTER_Y 0x10522 #define T_UTF_32_ELBASAN_LETTER_ZE 0x10523 #define T_UTF_32_ELBASAN_LETTER_ZHE 0x10524 #define T_UTF_32_ELBASAN_LETTER_GHE 0x10525 #define T_UTF_32_ELBASAN_LETTER_GHAMMA 0x10526 #define T_UTF_32_ELBASAN_LETTER_KHE 0x10527 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_ALT 0x10530 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_BET 0x10531 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_GIM 0x10532 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_DAT 0x10533 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_EB 0x10534 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_ZARL 0x10535 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_EYN 0x10536 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_ZHIL 0x10537 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_TAS 0x10538 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_CHA 0x10539 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_YOWD 0x1053A #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_ZHA 0x1053B #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_IRB 0x1053C #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_SHA 0x1053D #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_LAN 0x1053E #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_INYA 0x1053F #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_XEYN 0x10540 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_DYAN 0x10541 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_CAR 0x10542 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_JHOX 0x10543 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_KAR 0x10544 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_LYIT 0x10545 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_HEYT 0x10546 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_QAY 0x10547 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_AOR 0x10548 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_CHOY 0x10549 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_CHI 0x1054A #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_CYAY 0x1054B #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_MAQ 0x1054C #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_QAR 0x1054D #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_NOWC 0x1054E #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_DZYAY 0x1054F #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_SHAK 0x10550 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_JAYN 0x10551 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_ON 0x10552 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_TYAY 0x10553 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_FAM 0x10554 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_DZAY 0x10555 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_CHAT 0x10556 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_PEN 0x10557 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_GHEYS 0x10558 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_RAT 0x10559 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_SEYK 0x1055A #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_VEYZ 0x1055B #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_TIWR 0x1055C #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_SHOY 0x1055D #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_IWN 0x1055E #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_CYAW 0x1055F #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_CAYN 0x10560 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_YAYD 0x10561 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_PIWR 0x10562 #define T_UTF_32_CAUCASIAN_ALBANIAN_LETTER_KIW 0x10563 #define T_UTF_32_CAUCASIAN_ALBANIAN_CITATION_MARK 0x1056F #define T_UTF_32_LINEAR_A_SIGN_AB001 0x10600 #define T_UTF_32_LINEAR_A_SIGN_AB002 0x10601 #define T_UTF_32_LINEAR_A_SIGN_AB003 0x10602 #define T_UTF_32_LINEAR_A_SIGN_AB004 0x10603 #define T_UTF_32_LINEAR_A_SIGN_AB005 0x10604 #define T_UTF_32_LINEAR_A_SIGN_AB006 0x10605 #define T_UTF_32_LINEAR_A_SIGN_AB007 0x10606 #define T_UTF_32_LINEAR_A_SIGN_AB008 0x10607 #define T_UTF_32_LINEAR_A_SIGN_AB009 0x10608 #define T_UTF_32_LINEAR_A_SIGN_AB010 0x10609 #define T_UTF_32_LINEAR_A_SIGN_AB011 0x1060A #define T_UTF_32_LINEAR_A_SIGN_AB013 0x1060B #define T_UTF_32_LINEAR_A_SIGN_AB016 0x1060C #define T_UTF_32_LINEAR_A_SIGN_AB017 0x1060D #define T_UTF_32_LINEAR_A_SIGN_AB020 0x1060E #define T_UTF_32_LINEAR_A_SIGN_AB021 0x1060F #define T_UTF_32_LINEAR_A_SIGN_AB021F 0x10610 #define T_UTF_32_LINEAR_A_SIGN_AB021M 0x10611 #define T_UTF_32_LINEAR_A_SIGN_AB022 0x10612 #define T_UTF_32_LINEAR_A_SIGN_AB022F 0x10613 #define T_UTF_32_LINEAR_A_SIGN_AB022M 0x10614 #define T_UTF_32_LINEAR_A_SIGN_AB023 0x10615 #define T_UTF_32_LINEAR_A_SIGN_AB023M 0x10616 #define T_UTF_32_LINEAR_A_SIGN_AB024 0x10617 #define T_UTF_32_LINEAR_A_SIGN_AB026 0x10618 #define T_UTF_32_LINEAR_A_SIGN_AB027 0x10619 #define T_UTF_32_LINEAR_A_SIGN_AB028 0x1061A #define T_UTF_32_LINEAR_A_SIGN_A028B 0x1061B #define T_UTF_32_LINEAR_A_SIGN_AB029 0x1061C #define T_UTF_32_LINEAR_A_SIGN_AB030 0x1061D #define T_UTF_32_LINEAR_A_SIGN_AB031 0x1061E #define T_UTF_32_LINEAR_A_SIGN_AB034 0x1061F #define T_UTF_32_LINEAR_A_SIGN_AB037 0x10620 #define T_UTF_32_LINEAR_A_SIGN_AB038 0x10621 #define T_UTF_32_LINEAR_A_SIGN_AB039 0x10622 #define T_UTF_32_LINEAR_A_SIGN_AB040 0x10623 #define T_UTF_32_LINEAR_A_SIGN_AB041 0x10624 #define T_UTF_32_LINEAR_A_SIGN_AB044 0x10625 #define T_UTF_32_LINEAR_A_SIGN_AB045 0x10626 #define T_UTF_32_LINEAR_A_SIGN_AB046 0x10627 #define T_UTF_32_LINEAR_A_SIGN_AB047 0x10628 #define T_UTF_32_LINEAR_A_SIGN_AB048 0x10629 #define T_UTF_32_LINEAR_A_SIGN_AB049 0x1062A #define T_UTF_32_LINEAR_A_SIGN_AB050 0x1062B #define T_UTF_32_LINEAR_A_SIGN_AB051 0x1062C #define T_UTF_32_LINEAR_A_SIGN_AB053 0x1062D #define T_UTF_32_LINEAR_A_SIGN_AB054 0x1062E #define T_UTF_32_LINEAR_A_SIGN_AB055 0x1062F #define T_UTF_32_LINEAR_A_SIGN_AB056 0x10630 #define T_UTF_32_LINEAR_A_SIGN_AB057 0x10631 #define T_UTF_32_LINEAR_A_SIGN_AB058 0x10632 #define T_UTF_32_LINEAR_A_SIGN_AB059 0x10633 #define T_UTF_32_LINEAR_A_SIGN_AB060 0x10634 #define T_UTF_32_LINEAR_A_SIGN_AB061 0x10635 #define T_UTF_32_LINEAR_A_SIGN_AB065 0x10636 #define T_UTF_32_LINEAR_A_SIGN_AB066 0x10637 #define T_UTF_32_LINEAR_A_SIGN_AB067 0x10638 #define T_UTF_32_LINEAR_A_SIGN_AB069 0x10639 #define T_UTF_32_LINEAR_A_SIGN_AB070 0x1063A #define T_UTF_32_LINEAR_A_SIGN_AB073 0x1063B #define T_UTF_32_LINEAR_A_SIGN_AB074 0x1063C #define T_UTF_32_LINEAR_A_SIGN_AB076 0x1063D #define T_UTF_32_LINEAR_A_SIGN_AB077 0x1063E #define T_UTF_32_LINEAR_A_SIGN_AB078 0x1063F #define T_UTF_32_LINEAR_A_SIGN_AB079 0x10640 #define T_UTF_32_LINEAR_A_SIGN_AB080 0x10641 #define T_UTF_32_LINEAR_A_SIGN_AB081 0x10642 #define T_UTF_32_LINEAR_A_SIGN_AB082 0x10643 #define T_UTF_32_LINEAR_A_SIGN_AB085 0x10644 #define T_UTF_32_LINEAR_A_SIGN_AB086 0x10645 #define T_UTF_32_LINEAR_A_SIGN_AB087 0x10646 #define T_UTF_32_LINEAR_A_SIGN_A100_102 0x10647 #define T_UTF_32_LINEAR_A_SIGN_AB118 0x10648 #define T_UTF_32_LINEAR_A_SIGN_AB120 0x10649 #define T_UTF_32_LINEAR_A_SIGN_A120B 0x1064A #define T_UTF_32_LINEAR_A_SIGN_AB122 0x1064B #define T_UTF_32_LINEAR_A_SIGN_AB123 0x1064C #define T_UTF_32_LINEAR_A_SIGN_AB131A 0x1064D #define T_UTF_32_LINEAR_A_SIGN_AB131B 0x1064E #define T_UTF_32_LINEAR_A_SIGN_A131C 0x1064F #define T_UTF_32_LINEAR_A_SIGN_AB164 0x10650 #define T_UTF_32_LINEAR_A_SIGN_AB171 0x10651 #define T_UTF_32_LINEAR_A_SIGN_AB180 0x10652 #define T_UTF_32_LINEAR_A_SIGN_AB188 0x10653 #define T_UTF_32_LINEAR_A_SIGN_AB191 0x10654 #define T_UTF_32_LINEAR_A_SIGN_A301 0x10655 #define T_UTF_32_LINEAR_A_SIGN_A302 0x10656 #define T_UTF_32_LINEAR_A_SIGN_A303 0x10657 #define T_UTF_32_LINEAR_A_SIGN_A304 0x10658 #define T_UTF_32_LINEAR_A_SIGN_A305 0x10659 #define T_UTF_32_LINEAR_A_SIGN_A306 0x1065A #define T_UTF_32_LINEAR_A_SIGN_A307 0x1065B #define T_UTF_32_LINEAR_A_SIGN_A308 0x1065C #define T_UTF_32_LINEAR_A_SIGN_A309A 0x1065D #define T_UTF_32_LINEAR_A_SIGN_A309B 0x1065E #define T_UTF_32_LINEAR_A_SIGN_A309C 0x1065F #define T_UTF_32_LINEAR_A_SIGN_A310 0x10660 #define T_UTF_32_LINEAR_A_SIGN_A311 0x10661 #define T_UTF_32_LINEAR_A_SIGN_A312 0x10662 #define T_UTF_32_LINEAR_A_SIGN_A313A 0x10663 #define T_UTF_32_LINEAR_A_SIGN_A313B 0x10664 #define T_UTF_32_LINEAR_A_SIGN_A313C 0x10665 #define T_UTF_32_LINEAR_A_SIGN_A314 0x10666 #define T_UTF_32_LINEAR_A_SIGN_A315 0x10667 #define T_UTF_32_LINEAR_A_SIGN_A316 0x10668 #define T_UTF_32_LINEAR_A_SIGN_A317 0x10669 #define T_UTF_32_LINEAR_A_SIGN_A318 0x1066A #define T_UTF_32_LINEAR_A_SIGN_A319 0x1066B #define T_UTF_32_LINEAR_A_SIGN_A320 0x1066C #define T_UTF_32_LINEAR_A_SIGN_A321 0x1066D #define T_UTF_32_LINEAR_A_SIGN_A322 0x1066E #define T_UTF_32_LINEAR_A_SIGN_A323 0x1066F #define T_UTF_32_LINEAR_A_SIGN_A324 0x10670 #define T_UTF_32_LINEAR_A_SIGN_A325 0x10671 #define T_UTF_32_LINEAR_A_SIGN_A326 0x10672 #define T_UTF_32_LINEAR_A_SIGN_A327 0x10673 #define T_UTF_32_LINEAR_A_SIGN_A328 0x10674 #define T_UTF_32_LINEAR_A_SIGN_A329 0x10675 #define T_UTF_32_LINEAR_A_SIGN_A330 0x10676 #define T_UTF_32_LINEAR_A_SIGN_A331 0x10677 #define T_UTF_32_LINEAR_A_SIGN_A332 0x10678 #define T_UTF_32_LINEAR_A_SIGN_A333 0x10679 #define T_UTF_32_LINEAR_A_SIGN_A334 0x1067A #define T_UTF_32_LINEAR_A_SIGN_A335 0x1067B #define T_UTF_32_LINEAR_A_SIGN_A336 0x1067C #define T_UTF_32_LINEAR_A_SIGN_A337 0x1067D #define T_UTF_32_LINEAR_A_SIGN_A338 0x1067E #define T_UTF_32_LINEAR_A_SIGN_A339 0x1067F #define T_UTF_32_LINEAR_A_SIGN_A340 0x10680 #define T_UTF_32_LINEAR_A_SIGN_A341 0x10681 #define T_UTF_32_LINEAR_A_SIGN_A342 0x10682 #define T_UTF_32_LINEAR_A_SIGN_A343 0x10683 #define T_UTF_32_LINEAR_A_SIGN_A344 0x10684 #define T_UTF_32_LINEAR_A_SIGN_A345 0x10685 #define T_UTF_32_LINEAR_A_SIGN_A346 0x10686 #define T_UTF_32_LINEAR_A_SIGN_A347 0x10687 #define T_UTF_32_LINEAR_A_SIGN_A348 0x10688 #define T_UTF_32_LINEAR_A_SIGN_A349 0x10689 #define T_UTF_32_LINEAR_A_SIGN_A350 0x1068A #define T_UTF_32_LINEAR_A_SIGN_A351 0x1068B #define T_UTF_32_LINEAR_A_SIGN_A352 0x1068C #define T_UTF_32_LINEAR_A_SIGN_A353 0x1068D #define T_UTF_32_LINEAR_A_SIGN_A354 0x1068E #define T_UTF_32_LINEAR_A_SIGN_A355 0x1068F #define T_UTF_32_LINEAR_A_SIGN_A356 0x10690 #define T_UTF_32_LINEAR_A_SIGN_A357 0x10691 #define T_UTF_32_LINEAR_A_SIGN_A358 0x10692 #define T_UTF_32_LINEAR_A_SIGN_A359 0x10693 #define T_UTF_32_LINEAR_A_SIGN_A360 0x10694 #define T_UTF_32_LINEAR_A_SIGN_A361 0x10695 #define T_UTF_32_LINEAR_A_SIGN_A362 0x10696 #define T_UTF_32_LINEAR_A_SIGN_A363 0x10697 #define T_UTF_32_LINEAR_A_SIGN_A364 0x10698 #define T_UTF_32_LINEAR_A_SIGN_A365 0x10699 #define T_UTF_32_LINEAR_A_SIGN_A366 0x1069A #define T_UTF_32_LINEAR_A_SIGN_A367 0x1069B #define T_UTF_32_LINEAR_A_SIGN_A368 0x1069C #define T_UTF_32_LINEAR_A_SIGN_A369 0x1069D #define T_UTF_32_LINEAR_A_SIGN_A370 0x1069E #define T_UTF_32_LINEAR_A_SIGN_A371 0x1069F #define T_UTF_32_LINEAR_A_SIGN_A400_VAS 0x106A0 #define T_UTF_32_LINEAR_A_SIGN_A401_VAS 0x106A1 #define T_UTF_32_LINEAR_A_SIGN_A402_VAS 0x106A2 #define T_UTF_32_LINEAR_A_SIGN_A403_VAS 0x106A3 #define T_UTF_32_LINEAR_A_SIGN_A404_VAS 0x106A4 #define T_UTF_32_LINEAR_A_SIGN_A405_VAS 0x106A5 #define T_UTF_32_LINEAR_A_SIGN_A406_VAS 0x106A6 #define T_UTF_32_LINEAR_A_SIGN_A407_VAS 0x106A7 #define T_UTF_32_LINEAR_A_SIGN_A408_VAS 0x106A8 #define T_UTF_32_LINEAR_A_SIGN_A409_VAS 0x106A9 #define T_UTF_32_LINEAR_A_SIGN_A410_VAS 0x106AA #define T_UTF_32_LINEAR_A_SIGN_A411_VAS 0x106AB #define T_UTF_32_LINEAR_A_SIGN_A412_VAS 0x106AC #define T_UTF_32_LINEAR_A_SIGN_A413_VAS 0x106AD #define T_UTF_32_LINEAR_A_SIGN_A414_VAS 0x106AE #define T_UTF_32_LINEAR_A_SIGN_A415_VAS 0x106AF #define T_UTF_32_LINEAR_A_SIGN_A416_VAS 0x106B0 #define T_UTF_32_LINEAR_A_SIGN_A417_VAS 0x106B1 #define T_UTF_32_LINEAR_A_SIGN_A418_VAS 0x106B2 #define T_UTF_32_LINEAR_A_SIGN_A501 0x106B3 #define T_UTF_32_LINEAR_A_SIGN_A502 0x106B4 #define T_UTF_32_LINEAR_A_SIGN_A503 0x106B5 #define T_UTF_32_LINEAR_A_SIGN_A504 0x106B6 #define T_UTF_32_LINEAR_A_SIGN_A505 0x106B7 #define T_UTF_32_LINEAR_A_SIGN_A506 0x106B8 #define T_UTF_32_LINEAR_A_SIGN_A508 0x106B9 #define T_UTF_32_LINEAR_A_SIGN_A509 0x106BA #define T_UTF_32_LINEAR_A_SIGN_A510 0x106BB #define T_UTF_32_LINEAR_A_SIGN_A511 0x106BC #define T_UTF_32_LINEAR_A_SIGN_A512 0x106BD #define T_UTF_32_LINEAR_A_SIGN_A513 0x106BE #define T_UTF_32_LINEAR_A_SIGN_A515 0x106BF #define T_UTF_32_LINEAR_A_SIGN_A516 0x106C0 #define T_UTF_32_LINEAR_A_SIGN_A520 0x106C1 #define T_UTF_32_LINEAR_A_SIGN_A521 0x106C2 #define T_UTF_32_LINEAR_A_SIGN_A523 0x106C3 #define T_UTF_32_LINEAR_A_SIGN_A524 0x106C4 #define T_UTF_32_LINEAR_A_SIGN_A525 0x106C5 #define T_UTF_32_LINEAR_A_SIGN_A526 0x106C6 #define T_UTF_32_LINEAR_A_SIGN_A527 0x106C7 #define T_UTF_32_LINEAR_A_SIGN_A528 0x106C8 #define T_UTF_32_LINEAR_A_SIGN_A529 0x106C9 #define T_UTF_32_LINEAR_A_SIGN_A530 0x106CA #define T_UTF_32_LINEAR_A_SIGN_A531 0x106CB #define T_UTF_32_LINEAR_A_SIGN_A532 0x106CC #define T_UTF_32_LINEAR_A_SIGN_A534 0x106CD #define T_UTF_32_LINEAR_A_SIGN_A535 0x106CE #define T_UTF_32_LINEAR_A_SIGN_A536 0x106CF #define T_UTF_32_LINEAR_A_SIGN_A537 0x106D0 #define T_UTF_32_LINEAR_A_SIGN_A538 0x106D1 #define T_UTF_32_LINEAR_A_SIGN_A539 0x106D2 #define T_UTF_32_LINEAR_A_SIGN_A540 0x106D3 #define T_UTF_32_LINEAR_A_SIGN_A541 0x106D4 #define T_UTF_32_LINEAR_A_SIGN_A542 0x106D5 #define T_UTF_32_LINEAR_A_SIGN_A545 0x106D6 #define T_UTF_32_LINEAR_A_SIGN_A547 0x106D7 #define T_UTF_32_LINEAR_A_SIGN_A548 0x106D8 #define T_UTF_32_LINEAR_A_SIGN_A549 0x106D9 #define T_UTF_32_LINEAR_A_SIGN_A550 0x106DA #define T_UTF_32_LINEAR_A_SIGN_A551 0x106DB #define T_UTF_32_LINEAR_A_SIGN_A552 0x106DC #define T_UTF_32_LINEAR_A_SIGN_A553 0x106DD #define T_UTF_32_LINEAR_A_SIGN_A554 0x106DE #define T_UTF_32_LINEAR_A_SIGN_A555 0x106DF #define T_UTF_32_LINEAR_A_SIGN_A556 0x106E0 #define T_UTF_32_LINEAR_A_SIGN_A557 0x106E1 #define T_UTF_32_LINEAR_A_SIGN_A559 0x106E2 #define T_UTF_32_LINEAR_A_SIGN_A563 0x106E3 #define T_UTF_32_LINEAR_A_SIGN_A564 0x106E4 #define T_UTF_32_LINEAR_A_SIGN_A565 0x106E5 #define T_UTF_32_LINEAR_A_SIGN_A566 0x106E6 #define T_UTF_32_LINEAR_A_SIGN_A568 0x106E7 #define T_UTF_32_LINEAR_A_SIGN_A569 0x106E8 #define T_UTF_32_LINEAR_A_SIGN_A570 0x106E9 #define T_UTF_32_LINEAR_A_SIGN_A571 0x106EA #define T_UTF_32_LINEAR_A_SIGN_A572 0x106EB #define T_UTF_32_LINEAR_A_SIGN_A573 0x106EC #define T_UTF_32_LINEAR_A_SIGN_A574 0x106ED #define T_UTF_32_LINEAR_A_SIGN_A575 0x106EE #define T_UTF_32_LINEAR_A_SIGN_A576 0x106EF #define T_UTF_32_LINEAR_A_SIGN_A577 0x106F0 #define T_UTF_32_LINEAR_A_SIGN_A578 0x106F1 #define T_UTF_32_LINEAR_A_SIGN_A579 0x106F2 #define T_UTF_32_LINEAR_A_SIGN_A580 0x106F3 #define T_UTF_32_LINEAR_A_SIGN_A581 0x106F4 #define T_UTF_32_LINEAR_A_SIGN_A582 0x106F5 #define T_UTF_32_LINEAR_A_SIGN_A583 0x106F6 #define T_UTF_32_LINEAR_A_SIGN_A584 0x106F7 #define T_UTF_32_LINEAR_A_SIGN_A585 0x106F8 #define T_UTF_32_LINEAR_A_SIGN_A586 0x106F9 #define T_UTF_32_LINEAR_A_SIGN_A587 0x106FA #define T_UTF_32_LINEAR_A_SIGN_A588 0x106FB #define T_UTF_32_LINEAR_A_SIGN_A589 0x106FC #define T_UTF_32_LINEAR_A_SIGN_A591 0x106FD #define T_UTF_32_LINEAR_A_SIGN_A592 0x106FE #define T_UTF_32_LINEAR_A_SIGN_A594 0x106FF #define T_UTF_32_LINEAR_A_SIGN_A595 0x10700 #define T_UTF_32_LINEAR_A_SIGN_A596 0x10701 #define T_UTF_32_LINEAR_A_SIGN_A598 0x10702 #define T_UTF_32_LINEAR_A_SIGN_A600 0x10703 #define T_UTF_32_LINEAR_A_SIGN_A601 0x10704 #define T_UTF_32_LINEAR_A_SIGN_A602 0x10705 #define T_UTF_32_LINEAR_A_SIGN_A603 0x10706 #define T_UTF_32_LINEAR_A_SIGN_A604 0x10707 #define T_UTF_32_LINEAR_A_SIGN_A606 0x10708 #define T_UTF_32_LINEAR_A_SIGN_A608 0x10709 #define T_UTF_32_LINEAR_A_SIGN_A609 0x1070A #define T_UTF_32_LINEAR_A_SIGN_A610 0x1070B #define T_UTF_32_LINEAR_A_SIGN_A611 0x1070C #define T_UTF_32_LINEAR_A_SIGN_A612 0x1070D #define T_UTF_32_LINEAR_A_SIGN_A613 0x1070E #define T_UTF_32_LINEAR_A_SIGN_A614 0x1070F #define T_UTF_32_LINEAR_A_SIGN_A615 0x10710 #define T_UTF_32_LINEAR_A_SIGN_A616 0x10711 #define T_UTF_32_LINEAR_A_SIGN_A617 0x10712 #define T_UTF_32_LINEAR_A_SIGN_A618 0x10713 #define T_UTF_32_LINEAR_A_SIGN_A619 0x10714 #define T_UTF_32_LINEAR_A_SIGN_A620 0x10715 #define T_UTF_32_LINEAR_A_SIGN_A621 0x10716 #define T_UTF_32_LINEAR_A_SIGN_A622 0x10717 #define T_UTF_32_LINEAR_A_SIGN_A623 0x10718 #define T_UTF_32_LINEAR_A_SIGN_A624 0x10719 #define T_UTF_32_LINEAR_A_SIGN_A626 0x1071A #define T_UTF_32_LINEAR_A_SIGN_A627 0x1071B #define T_UTF_32_LINEAR_A_SIGN_A628 0x1071C #define T_UTF_32_LINEAR_A_SIGN_A629 0x1071D #define T_UTF_32_LINEAR_A_SIGN_A634 0x1071E #define T_UTF_32_LINEAR_A_SIGN_A637 0x1071F #define T_UTF_32_LINEAR_A_SIGN_A638 0x10720 #define T_UTF_32_LINEAR_A_SIGN_A640 0x10721 #define T_UTF_32_LINEAR_A_SIGN_A642 0x10722 #define T_UTF_32_LINEAR_A_SIGN_A643 0x10723 #define T_UTF_32_LINEAR_A_SIGN_A644 0x10724 #define T_UTF_32_LINEAR_A_SIGN_A645 0x10725 #define T_UTF_32_LINEAR_A_SIGN_A646 0x10726 #define T_UTF_32_LINEAR_A_SIGN_A648 0x10727 #define T_UTF_32_LINEAR_A_SIGN_A649 0x10728 #define T_UTF_32_LINEAR_A_SIGN_A651 0x10729 #define T_UTF_32_LINEAR_A_SIGN_A652 0x1072A #define T_UTF_32_LINEAR_A_SIGN_A653 0x1072B #define T_UTF_32_LINEAR_A_SIGN_A654 0x1072C #define T_UTF_32_LINEAR_A_SIGN_A655 0x1072D #define T_UTF_32_LINEAR_A_SIGN_A656 0x1072E #define T_UTF_32_LINEAR_A_SIGN_A657 0x1072F #define T_UTF_32_LINEAR_A_SIGN_A658 0x10730 #define T_UTF_32_LINEAR_A_SIGN_A659 0x10731 #define T_UTF_32_LINEAR_A_SIGN_A660 0x10732 #define T_UTF_32_LINEAR_A_SIGN_A661 0x10733 #define T_UTF_32_LINEAR_A_SIGN_A662 0x10734 #define T_UTF_32_LINEAR_A_SIGN_A663 0x10735 #define T_UTF_32_LINEAR_A_SIGN_A664 0x10736 #define T_UTF_32_LINEAR_A_SIGN_A701_A 0x10740 #define T_UTF_32_LINEAR_A_SIGN_A702_B 0x10741 #define T_UTF_32_LINEAR_A_SIGN_A703_D 0x10742 #define T_UTF_32_LINEAR_A_SIGN_A704_E 0x10743 #define T_UTF_32_LINEAR_A_SIGN_A705_F 0x10744 #define T_UTF_32_LINEAR_A_SIGN_A706_H 0x10745 #define T_UTF_32_LINEAR_A_SIGN_A707_J 0x10746 #define T_UTF_32_LINEAR_A_SIGN_A708_K 0x10747 #define T_UTF_32_LINEAR_A_SIGN_A709_L 0x10748 #define T_UTF_32_LINEAR_A_SIGN_A709_2_L2 0x10749 #define T_UTF_32_LINEAR_A_SIGN_A709_3_L3 0x1074A #define T_UTF_32_LINEAR_A_SIGN_A709_4_L4 0x1074B #define T_UTF_32_LINEAR_A_SIGN_A709_6_L6 0x1074C #define T_UTF_32_LINEAR_A_SIGN_A710_W 0x1074D #define T_UTF_32_LINEAR_A_SIGN_A711_X 0x1074E #define T_UTF_32_LINEAR_A_SIGN_A712_Y 0x1074F #define T_UTF_32_LINEAR_A_SIGN_A713_OMEGA 0x10750 #define T_UTF_32_LINEAR_A_SIGN_A714_ABB 0x10751 #define T_UTF_32_LINEAR_A_SIGN_A715_BB 0x10752 #define T_UTF_32_LINEAR_A_SIGN_A717_DD 0x10753 #define T_UTF_32_LINEAR_A_SIGN_A726_EYYY 0x10754 #define T_UTF_32_LINEAR_A_SIGN_A732_JE 0x10755 #define T_UTF_32_LINEAR_A_SIGN_A800 0x10760 #define T_UTF_32_LINEAR_A_SIGN_A801 0x10761 #define T_UTF_32_LINEAR_A_SIGN_A802 0x10762 #define T_UTF_32_LINEAR_A_SIGN_A803 0x10763 #define T_UTF_32_LINEAR_A_SIGN_A804 0x10764 #define T_UTF_32_LINEAR_A_SIGN_A805 0x10765 #define T_UTF_32_LINEAR_A_SIGN_A806 0x10766 #define T_UTF_32_LINEAR_A_SIGN_A807 0x10767 #define T_UTF_32_CYPRIOT_SYLLABLE_A 0x10800 #define T_UTF_32_CYPRIOT_SYLLABLE_E 0x10801 #define T_UTF_32_CYPRIOT_SYLLABLE_I 0x10802 #define T_UTF_32_CYPRIOT_SYLLABLE_O 0x10803 #define T_UTF_32_CYPRIOT_SYLLABLE_U 0x10804 #define T_UTF_32_CYPRIOT_SYLLABLE_JA 0x10805 #define T_UTF_32_CYPRIOT_SYLLABLE_JO 0x10808 #define T_UTF_32_CYPRIOT_SYLLABLE_KA 0x1080A #define T_UTF_32_CYPRIOT_SYLLABLE_KE 0x1080B #define T_UTF_32_CYPRIOT_SYLLABLE_KI 0x1080C #define T_UTF_32_CYPRIOT_SYLLABLE_KO 0x1080D #define T_UTF_32_CYPRIOT_SYLLABLE_KU 0x1080E #define T_UTF_32_CYPRIOT_SYLLABLE_LA 0x1080F #define T_UTF_32_CYPRIOT_SYLLABLE_LE 0x10810 #define T_UTF_32_CYPRIOT_SYLLABLE_LI 0x10811 #define T_UTF_32_CYPRIOT_SYLLABLE_LO 0x10812 #define T_UTF_32_CYPRIOT_SYLLABLE_LU 0x10813 #define T_UTF_32_CYPRIOT_SYLLABLE_MA 0x10814 #define T_UTF_32_CYPRIOT_SYLLABLE_ME 0x10815 #define T_UTF_32_CYPRIOT_SYLLABLE_MI 0x10816 #define T_UTF_32_CYPRIOT_SYLLABLE_MO 0x10817 #define T_UTF_32_CYPRIOT_SYLLABLE_MU 0x10818 #define T_UTF_32_CYPRIOT_SYLLABLE_NA 0x10819 #define T_UTF_32_CYPRIOT_SYLLABLE_NE 0x1081A #define T_UTF_32_CYPRIOT_SYLLABLE_NI 0x1081B #define T_UTF_32_CYPRIOT_SYLLABLE_NO 0x1081C #define T_UTF_32_CYPRIOT_SYLLABLE_NU 0x1081D #define T_UTF_32_CYPRIOT_SYLLABLE_PA 0x1081E #define T_UTF_32_CYPRIOT_SYLLABLE_PE 0x1081F #define T_UTF_32_CYPRIOT_SYLLABLE_PI 0x10820 #define T_UTF_32_CYPRIOT_SYLLABLE_PO 0x10821 #define T_UTF_32_CYPRIOT_SYLLABLE_PU 0x10822 #define T_UTF_32_CYPRIOT_SYLLABLE_RA 0x10823 #define T_UTF_32_CYPRIOT_SYLLABLE_RE 0x10824 #define T_UTF_32_CYPRIOT_SYLLABLE_RI 0x10825 #define T_UTF_32_CYPRIOT_SYLLABLE_RO 0x10826 #define T_UTF_32_CYPRIOT_SYLLABLE_RU 0x10827 #define T_UTF_32_CYPRIOT_SYLLABLE_SA 0x10828 #define T_UTF_32_CYPRIOT_SYLLABLE_SE 0x10829 #define T_UTF_32_CYPRIOT_SYLLABLE_SI 0x1082A #define T_UTF_32_CYPRIOT_SYLLABLE_SO 0x1082B #define T_UTF_32_CYPRIOT_SYLLABLE_SU 0x1082C #define T_UTF_32_CYPRIOT_SYLLABLE_TA 0x1082D #define T_UTF_32_CYPRIOT_SYLLABLE_TE 0x1082E #define T_UTF_32_CYPRIOT_SYLLABLE_TI 0x1082F #define T_UTF_32_CYPRIOT_SYLLABLE_TO 0x10830 #define T_UTF_32_CYPRIOT_SYLLABLE_TU 0x10831 #define T_UTF_32_CYPRIOT_SYLLABLE_WA 0x10832 #define T_UTF_32_CYPRIOT_SYLLABLE_WE 0x10833 #define T_UTF_32_CYPRIOT_SYLLABLE_WI 0x10834 #define T_UTF_32_CYPRIOT_SYLLABLE_WO 0x10835 #define T_UTF_32_CYPRIOT_SYLLABLE_XA 0x10837 #define T_UTF_32_CYPRIOT_SYLLABLE_XE 0x10838 #define T_UTF_32_CYPRIOT_SYLLABLE_ZA 0x1083C #define T_UTF_32_CYPRIOT_SYLLABLE_ZO 0x1083F #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_ALEPH 0x10840 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_BETH 0x10841 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_GIMEL 0x10842 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_DALETH 0x10843 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_HE 0x10844 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_WAW 0x10845 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_ZAYIN 0x10846 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_HETH 0x10847 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_TETH 0x10848 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_YODH 0x10849 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_KAPH 0x1084A #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_LAMEDH 0x1084B #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_MEM 0x1084C #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_NUN 0x1084D #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_SAMEKH 0x1084E #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_AYIN 0x1084F #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_PE 0x10850 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_SADHE 0x10851 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_QOPH 0x10852 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_RESH 0x10853 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_SHIN 0x10854 #define T_UTF_32_IMPERIAL_ARAMAIC_LETTER_TAW 0x10855 #define T_UTF_32_IMPERIAL_ARAMAIC_SECTION_SIGN 0x10857 #define T_UTF_32_IMPERIAL_ARAMAIC_NUMBER_ONE 0x10858 #define T_UTF_32_IMPERIAL_ARAMAIC_NUMBER_TWO 0x10859 #define T_UTF_32_IMPERIAL_ARAMAIC_NUMBER_THREE 0x1085A #define T_UTF_32_IMPERIAL_ARAMAIC_NUMBER_TEN 0x1085B #define T_UTF_32_IMPERIAL_ARAMAIC_NUMBER_TWENTY 0x1085C #define T_UTF_32_IMPERIAL_ARAMAIC_NUMBER_ONE_HUNDRED 0x1085D #define T_UTF_32_IMPERIAL_ARAMAIC_NUMBER_ONE_THOUSAND 0x1085E #define T_UTF_32_IMPERIAL_ARAMAIC_NUMBER_TEN_THOUSAND 0x1085F #define T_UTF_32_PALMYRENE_LETTER_ALEPH 0x10860 #define T_UTF_32_PALMYRENE_LETTER_BETH 0x10861 #define T_UTF_32_PALMYRENE_LETTER_GIMEL 0x10862 #define T_UTF_32_PALMYRENE_LETTER_DALETH 0x10863 #define T_UTF_32_PALMYRENE_LETTER_HE 0x10864 #define T_UTF_32_PALMYRENE_LETTER_WAW 0x10865 #define T_UTF_32_PALMYRENE_LETTER_ZAYIN 0x10866 #define T_UTF_32_PALMYRENE_LETTER_HETH 0x10867 #define T_UTF_32_PALMYRENE_LETTER_TETH 0x10868 #define T_UTF_32_PALMYRENE_LETTER_YODH 0x10869 #define T_UTF_32_PALMYRENE_LETTER_KAPH 0x1086A #define T_UTF_32_PALMYRENE_LETTER_LAMEDH 0x1086B #define T_UTF_32_PALMYRENE_LETTER_MEM 0x1086C #define T_UTF_32_PALMYRENE_LETTER_FINAL_NUN 0x1086D #define T_UTF_32_PALMYRENE_LETTER_NUN 0x1086E #define T_UTF_32_PALMYRENE_LETTER_SAMEKH 0x1086F #define T_UTF_32_PALMYRENE_LETTER_AYIN 0x10870 #define T_UTF_32_PALMYRENE_LETTER_PE 0x10871 #define T_UTF_32_PALMYRENE_LETTER_SADHE 0x10872 #define T_UTF_32_PALMYRENE_LETTER_QOPH 0x10873 #define T_UTF_32_PALMYRENE_LETTER_RESH 0x10874 #define T_UTF_32_PALMYRENE_LETTER_SHIN 0x10875 #define T_UTF_32_PALMYRENE_LETTER_TAW 0x10876 #define T_UTF_32_PALMYRENE_LEFT_POINTING_FLEURON 0x10877 #define T_UTF_32_PALMYRENE_RIGHT_POINTING_FLEURON 0x10878 #define T_UTF_32_PALMYRENE_NUMBER_ONE 0x10879 #define T_UTF_32_PALMYRENE_NUMBER_TWO 0x1087A #define T_UTF_32_PALMYRENE_NUMBER_THREE 0x1087B #define T_UTF_32_PALMYRENE_NUMBER_FOUR 0x1087C #define T_UTF_32_PALMYRENE_NUMBER_FIVE 0x1087D #define T_UTF_32_PALMYRENE_NUMBER_TEN 0x1087E #define T_UTF_32_PALMYRENE_NUMBER_TWENTY 0x1087F #define T_UTF_32_NABATAEAN_LETTER_FINAL_ALEPH 0x10880 #define T_UTF_32_NABATAEAN_LETTER_ALEPH 0x10881 #define T_UTF_32_NABATAEAN_LETTER_FINAL_BETH 0x10882 #define T_UTF_32_NABATAEAN_LETTER_BETH 0x10883 #define T_UTF_32_NABATAEAN_LETTER_GIMEL 0x10884 #define T_UTF_32_NABATAEAN_LETTER_DALETH 0x10885 #define T_UTF_32_NABATAEAN_LETTER_FINAL_HE 0x10886 #define T_UTF_32_NABATAEAN_LETTER_HE 0x10887 #define T_UTF_32_NABATAEAN_LETTER_WAW 0x10888 #define T_UTF_32_NABATAEAN_LETTER_ZAYIN 0x10889 #define T_UTF_32_NABATAEAN_LETTER_HETH 0x1088A #define T_UTF_32_NABATAEAN_LETTER_TETH 0x1088B #define T_UTF_32_NABATAEAN_LETTER_FINAL_YODH 0x1088C #define T_UTF_32_NABATAEAN_LETTER_YODH 0x1088D #define T_UTF_32_NABATAEAN_LETTER_FINAL_KAPH 0x1088E #define T_UTF_32_NABATAEAN_LETTER_KAPH 0x1088F #define T_UTF_32_NABATAEAN_LETTER_FINAL_LAMEDH 0x10890 #define T_UTF_32_NABATAEAN_LETTER_LAMEDH 0x10891 #define T_UTF_32_NABATAEAN_LETTER_FINAL_MEM 0x10892 #define T_UTF_32_NABATAEAN_LETTER_MEM 0x10893 #define T_UTF_32_NABATAEAN_LETTER_FINAL_NUN 0x10894 #define T_UTF_32_NABATAEAN_LETTER_NUN 0x10895 #define T_UTF_32_NABATAEAN_LETTER_SAMEKH 0x10896 #define T_UTF_32_NABATAEAN_LETTER_AYIN 0x10897 #define T_UTF_32_NABATAEAN_LETTER_PE 0x10898 #define T_UTF_32_NABATAEAN_LETTER_SADHE 0x10899 #define T_UTF_32_NABATAEAN_LETTER_QOPH 0x1089A #define T_UTF_32_NABATAEAN_LETTER_RESH 0x1089B #define T_UTF_32_NABATAEAN_LETTER_FINAL_SHIN 0x1089C #define T_UTF_32_NABATAEAN_LETTER_SHIN 0x1089D #define T_UTF_32_NABATAEAN_LETTER_TAW 0x1089E #define T_UTF_32_NABATAEAN_NUMBER_ONE 0x108A7 #define T_UTF_32_NABATAEAN_NUMBER_TWO 0x108A8 #define T_UTF_32_NABATAEAN_NUMBER_THREE 0x108A9 #define T_UTF_32_NABATAEAN_NUMBER_FOUR 0x108AA #define T_UTF_32_NABATAEAN_CRUCIFORM_NUMBER_FOUR 0x108AB #define T_UTF_32_NABATAEAN_NUMBER_FIVE 0x108AC #define T_UTF_32_NABATAEAN_NUMBER_TEN 0x108AD #define T_UTF_32_NABATAEAN_NUMBER_TWENTY 0x108AE #define T_UTF_32_NABATAEAN_NUMBER_ONE_HUNDRED 0x108AF #define T_UTF_32_HATRAN_LETTER_ALEPH 0x108E0 #define T_UTF_32_HATRAN_LETTER_BETH 0x108E1 #define T_UTF_32_HATRAN_LETTER_GIMEL 0x108E2 #define T_UTF_32_HATRAN_LETTER_DALETH_RESH 0x108E3 #define T_UTF_32_HATRAN_LETTER_HE 0x108E4 #define T_UTF_32_HATRAN_LETTER_WAW 0x108E5 #define T_UTF_32_HATRAN_LETTER_ZAYN 0x108E6 #define T_UTF_32_HATRAN_LETTER_HETH 0x108E7 #define T_UTF_32_HATRAN_LETTER_TETH 0x108E8 #define T_UTF_32_HATRAN_LETTER_YODH 0x108E9 #define T_UTF_32_HATRAN_LETTER_KAPH 0x108EA #define T_UTF_32_HATRAN_LETTER_LAMEDH 0x108EB #define T_UTF_32_HATRAN_LETTER_MEM 0x108EC #define T_UTF_32_HATRAN_LETTER_NUN 0x108ED #define T_UTF_32_HATRAN_LETTER_SAMEKH 0x108EE #define T_UTF_32_HATRAN_LETTER_AYN 0x108EF #define T_UTF_32_HATRAN_LETTER_PE 0x108F0 #define T_UTF_32_HATRAN_LETTER_SADHE 0x108F1 #define T_UTF_32_HATRAN_LETTER_QOPH 0x108F2 #define T_UTF_32_HATRAN_LETTER_SHIN 0x108F4 #define T_UTF_32_HATRAN_LETTER_TAW 0x108F5 #define T_UTF_32_HATRAN_NUMBER_ONE 0x108FB #define T_UTF_32_HATRAN_NUMBER_FIVE 0x108FC #define T_UTF_32_HATRAN_NUMBER_TEN 0x108FD #define T_UTF_32_HATRAN_NUMBER_TWENTY 0x108FE #define T_UTF_32_HATRAN_NUMBER_ONE_HUNDRED 0x108FF #define T_UTF_32_PHOENICIAN_LETTER_ALF 0x10900 #define T_UTF_32_PHOENICIAN_LETTER_BET 0x10901 #define T_UTF_32_PHOENICIAN_LETTER_GAML 0x10902 #define T_UTF_32_PHOENICIAN_LETTER_DELT 0x10903 #define T_UTF_32_PHOENICIAN_LETTER_HE 0x10904 #define T_UTF_32_PHOENICIAN_LETTER_WAU 0x10905 #define T_UTF_32_PHOENICIAN_LETTER_ZAI 0x10906 #define T_UTF_32_PHOENICIAN_LETTER_HET 0x10907 #define T_UTF_32_PHOENICIAN_LETTER_TET 0x10908 #define T_UTF_32_PHOENICIAN_LETTER_YOD 0x10909 #define T_UTF_32_PHOENICIAN_LETTER_KAF 0x1090A #define T_UTF_32_PHOENICIAN_LETTER_LAMD 0x1090B #define T_UTF_32_PHOENICIAN_LETTER_MEM 0x1090C #define T_UTF_32_PHOENICIAN_LETTER_NUN 0x1090D #define T_UTF_32_PHOENICIAN_LETTER_SEMK 0x1090E #define T_UTF_32_PHOENICIAN_LETTER_AIN 0x1090F #define T_UTF_32_PHOENICIAN_LETTER_PE 0x10910 #define T_UTF_32_PHOENICIAN_LETTER_SADE 0x10911 #define T_UTF_32_PHOENICIAN_LETTER_QOF 0x10912 #define T_UTF_32_PHOENICIAN_LETTER_ROSH 0x10913 #define T_UTF_32_PHOENICIAN_LETTER_SHIN 0x10914 #define T_UTF_32_PHOENICIAN_LETTER_TAU 0x10915 #define T_UTF_32_PHOENICIAN_NUMBER_ONE 0x10916 #define T_UTF_32_PHOENICIAN_NUMBER_TEN 0x10917 #define T_UTF_32_PHOENICIAN_NUMBER_TWENTY 0x10918 #define T_UTF_32_PHOENICIAN_NUMBER_ONE_HUNDRED 0x10919 #define T_UTF_32_PHOENICIAN_NUMBER_TWO 0x1091A #define T_UTF_32_PHOENICIAN_NUMBER_THREE 0x1091B #define T_UTF_32_PHOENICIAN_WORD_SEPARATOR 0x1091F #define T_UTF_32_LYDIAN_LETTER_A 0x10920 #define T_UTF_32_LYDIAN_LETTER_B 0x10921 #define T_UTF_32_LYDIAN_LETTER_G 0x10922 #define T_UTF_32_LYDIAN_LETTER_D 0x10923 #define T_UTF_32_LYDIAN_LETTER_E 0x10924 #define T_UTF_32_LYDIAN_LETTER_V 0x10925 #define T_UTF_32_LYDIAN_LETTER_I 0x10926 #define T_UTF_32_LYDIAN_LETTER_Y 0x10927 #define T_UTF_32_LYDIAN_LETTER_K 0x10928 #define T_UTF_32_LYDIAN_LETTER_L 0x10929 #define T_UTF_32_LYDIAN_LETTER_M 0x1092A #define T_UTF_32_LYDIAN_LETTER_N 0x1092B #define T_UTF_32_LYDIAN_LETTER_O 0x1092C #define T_UTF_32_LYDIAN_LETTER_R 0x1092D #define T_UTF_32_LYDIAN_LETTER_SS 0x1092E #define T_UTF_32_LYDIAN_LETTER_T 0x1092F #define T_UTF_32_LYDIAN_LETTER_U 0x10930 #define T_UTF_32_LYDIAN_LETTER_F 0x10931 #define T_UTF_32_LYDIAN_LETTER_Q 0x10932 #define T_UTF_32_LYDIAN_LETTER_S 0x10933 #define T_UTF_32_LYDIAN_LETTER_TT 0x10934 #define T_UTF_32_LYDIAN_LETTER_AN 0x10935 #define T_UTF_32_LYDIAN_LETTER_EN 0x10936 #define T_UTF_32_LYDIAN_LETTER_LY 0x10937 #define T_UTF_32_LYDIAN_LETTER_NN 0x10938 #define T_UTF_32_LYDIAN_LETTER_C 0x10939 #define T_UTF_32_LYDIAN_TRIANGULAR_MARK 0x1093F #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_A 0x10980 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_E 0x10981 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_I 0x10982 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_O 0x10983 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_YA 0x10984 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_WA 0x10985 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_BA 0x10986 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_BA_2 0x10987 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_PA 0x10988 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_MA 0x10989 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_NA 0x1098A #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_NA_2 0x1098B #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_NE 0x1098C #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_NE_2 0x1098D #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_RA 0x1098E #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_RA_2 0x1098F #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_LA 0x10990 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_KHA 0x10991 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_HHA 0x10992 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_SA 0x10993 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_SA_2 0x10994 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_SE 0x10995 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_KA 0x10996 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_QA 0x10997 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_TA 0x10998 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_TA_2 0x10999 #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_TE 0x1099A #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_TE_2 0x1099B #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_TO 0x1099C #define T_UTF_32_MEROITIC_HIEROGLYPHIC_LETTER_DA 0x1099D #define T_UTF_32_MEROITIC_HIEROGLYPHIC_SYMBOL_VIDJ 0x1099E #define T_UTF_32_MEROITIC_HIEROGLYPHIC_SYMBOL_VIDJ_2 0x1099F #define T_UTF_32_MEROITIC_CURSIVE_LETTER_A 0x109A0 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_E 0x109A1 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_I 0x109A2 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_O 0x109A3 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_YA 0x109A4 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_WA 0x109A5 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_BA 0x109A6 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_PA 0x109A7 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_MA 0x109A8 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_NA 0x109A9 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_NE 0x109AA #define T_UTF_32_MEROITIC_CURSIVE_LETTER_RA 0x109AB #define T_UTF_32_MEROITIC_CURSIVE_LETTER_LA 0x109AC #define T_UTF_32_MEROITIC_CURSIVE_LETTER_KHA 0x109AD #define T_UTF_32_MEROITIC_CURSIVE_LETTER_HHA 0x109AE #define T_UTF_32_MEROITIC_CURSIVE_LETTER_SA 0x109AF #define T_UTF_32_MEROITIC_CURSIVE_LETTER_ARCHAIC_SA 0x109B0 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_SE 0x109B1 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_KA 0x109B2 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_QA 0x109B3 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_TA 0x109B4 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_TE 0x109B5 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_TO 0x109B6 #define T_UTF_32_MEROITIC_CURSIVE_LETTER_DA 0x109B7 #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_ELEVEN_TWELFTHS 0x109BC #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_ONE_HALF 0x109BD #define T_UTF_32_MEROITIC_CURSIVE_LOGOGRAM_RMT 0x109BE #define T_UTF_32_MEROITIC_CURSIVE_LOGOGRAM_IMN 0x109BF #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_ONE 0x109C0 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_TWO 0x109C1 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_THREE 0x109C2 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FOUR 0x109C3 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FIVE 0x109C4 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SIX 0x109C5 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SEVEN 0x109C6 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_EIGHT 0x109C7 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_NINE 0x109C8 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_TEN 0x109C9 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_TWENTY 0x109CA #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_THIRTY 0x109CB #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FORTY 0x109CC #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FIFTY 0x109CD #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SIXTY 0x109CE #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SEVENTY 0x109CF #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_ONE_HUNDRED 0x109D2 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_TWO_HUNDRED 0x109D3 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_THREE_HUNDRED 0x109D4 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FOUR_HUNDRED 0x109D5 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FIVE_HUNDRED 0x109D6 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SIX_HUNDRED 0x109D7 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SEVEN_HUNDRED 0x109D8 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_EIGHT_HUNDRED 0x109D9 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_NINE_HUNDRED 0x109DA #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_ONE_THOUSAND 0x109DB #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_TWO_THOUSAND 0x109DC #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_THREE_THOUSAND 0x109DD #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FOUR_THOUSAND 0x109DE #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FIVE_THOUSAND 0x109DF #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SIX_THOUSAND 0x109E0 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SEVEN_THOUSAND 0x109E1 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_EIGHT_THOUSAND 0x109E2 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_NINE_THOUSAND 0x109E3 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_TEN_THOUSAND 0x109E4 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_TWENTY_THOUSAND 0x109E5 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_THIRTY_THOUSAND 0x109E6 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FORTY_THOUSAND 0x109E7 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FIFTY_THOUSAND 0x109E8 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SIXTY_THOUSAND 0x109E9 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SEVENTY_THOUSAND 0x109EA #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_EIGHTY_THOUSAND 0x109EB #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_NINETY_THOUSAND 0x109EC #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_ONE_HUNDRED_THOUSAND 0x109ED #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_TWO_HUNDRED_THOUSAND 0x109EE #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_THREE_HUNDRED_THOUSAND 0x109EF #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FOUR_HUNDRED_THOUSAND 0x109F0 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_FIVE_HUNDRED_THOUSAND 0x109F1 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SIX_HUNDRED_THOUSAND 0x109F2 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_SEVEN_HUNDRED_THOUSAND 0x109F3 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_EIGHT_HUNDRED_THOUSAND 0x109F4 #define T_UTF_32_MEROITIC_CURSIVE_NUMBER_NINE_HUNDRED_THOUSAND 0x109F5 #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_ONE_TWELFTH 0x109F6 #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_TWO_TWELFTHS 0x109F7 #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_THREE_TWELFTHS 0x109F8 #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_FOUR_TWELFTHS 0x109F9 #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_FIVE_TWELFTHS 0x109FA #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_SIX_TWELFTHS 0x109FB #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_SEVEN_TWELFTHS 0x109FC #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_EIGHT_TWELFTHS 0x109FD #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_NINE_TWELFTHS 0x109FE #define T_UTF_32_MEROITIC_CURSIVE_FRACTION_TEN_TWELFTHS 0x109FF #define T_UTF_32_KHAROSHTHI_LETTER_A 0x10A00 #define T_UTF_32_KHAROSHTHI_VOWEL_SIGN_I 0x10A01 #define T_UTF_32_KHAROSHTHI_VOWEL_SIGN_U 0x10A02 #define T_UTF_32_KHAROSHTHI_VOWEL_SIGN_VOCALIC_R 0x10A03 #define T_UTF_32_KHAROSHTHI_VOWEL_SIGN_E 0x10A05 #define T_UTF_32_KHAROSHTHI_VOWEL_SIGN_O 0x10A06 #define T_UTF_32_KHAROSHTHI_VOWEL_LENGTH_MARK 0x10A0C #define T_UTF_32_KHAROSHTHI_SIGN_DOUBLE_RING_BELOW 0x10A0D #define T_UTF_32_KHAROSHTHI_SIGN_ANUSVARA 0x10A0E #define T_UTF_32_KHAROSHTHI_SIGN_VISARGA 0x10A0F #define T_UTF_32_KHAROSHTHI_LETTER_KA 0x10A10 #define T_UTF_32_KHAROSHTHI_LETTER_KHA 0x10A11 #define T_UTF_32_KHAROSHTHI_LETTER_GA 0x10A12 #define T_UTF_32_KHAROSHTHI_LETTER_GHA 0x10A13 #define T_UTF_32_KHAROSHTHI_LETTER_CA 0x10A15 #define T_UTF_32_KHAROSHTHI_LETTER_CHA 0x10A16 #define T_UTF_32_KHAROSHTHI_LETTER_JA 0x10A17 #define T_UTF_32_KHAROSHTHI_LETTER_NYA 0x10A19 #define T_UTF_32_KHAROSHTHI_LETTER_TTA 0x10A1A #define T_UTF_32_KHAROSHTHI_LETTER_TTHA 0x10A1B #define T_UTF_32_KHAROSHTHI_LETTER_DDA 0x10A1C #define T_UTF_32_KHAROSHTHI_LETTER_DDHA 0x10A1D #define T_UTF_32_KHAROSHTHI_LETTER_NNA 0x10A1E #define T_UTF_32_KHAROSHTHI_LETTER_TA 0x10A1F #define T_UTF_32_KHAROSHTHI_LETTER_THA 0x10A20 #define T_UTF_32_KHAROSHTHI_LETTER_DA 0x10A21 #define T_UTF_32_KHAROSHTHI_LETTER_DHA 0x10A22 #define T_UTF_32_KHAROSHTHI_LETTER_NA 0x10A23 #define T_UTF_32_KHAROSHTHI_LETTER_PA 0x10A24 #define T_UTF_32_KHAROSHTHI_LETTER_PHA 0x10A25 #define T_UTF_32_KHAROSHTHI_LETTER_BA 0x10A26 #define T_UTF_32_KHAROSHTHI_LETTER_BHA 0x10A27 #define T_UTF_32_KHAROSHTHI_LETTER_MA 0x10A28 #define T_UTF_32_KHAROSHTHI_LETTER_YA 0x10A29 #define T_UTF_32_KHAROSHTHI_LETTER_RA 0x10A2A #define T_UTF_32_KHAROSHTHI_LETTER_LA 0x10A2B #define T_UTF_32_KHAROSHTHI_LETTER_VA 0x10A2C #define T_UTF_32_KHAROSHTHI_LETTER_SHA 0x10A2D #define T_UTF_32_KHAROSHTHI_LETTER_SSA 0x10A2E #define T_UTF_32_KHAROSHTHI_LETTER_SA 0x10A2F #define T_UTF_32_KHAROSHTHI_LETTER_ZA 0x10A30 #define T_UTF_32_KHAROSHTHI_LETTER_HA 0x10A31 #define T_UTF_32_KHAROSHTHI_LETTER_KKA 0x10A32 #define T_UTF_32_KHAROSHTHI_LETTER_TTTHA 0x10A33 #define T_UTF_32_KHAROSHTHI_SIGN_BAR_ABOVE 0x10A38 #define T_UTF_32_KHAROSHTHI_SIGN_CAUDA 0x10A39 #define T_UTF_32_KHAROSHTHI_SIGN_DOT_BELOW 0x10A3A #define T_UTF_32_KHAROSHTHI_VIRAMA 0x10A3F #define T_UTF_32_KHAROSHTHI_DIGIT_ONE 0x10A40 #define T_UTF_32_KHAROSHTHI_DIGIT_TWO 0x10A41 #define T_UTF_32_KHAROSHTHI_DIGIT_THREE 0x10A42 #define T_UTF_32_KHAROSHTHI_DIGIT_FOUR 0x10A43 #define T_UTF_32_KHAROSHTHI_NUMBER_TEN 0x10A44 #define T_UTF_32_KHAROSHTHI_NUMBER_TWENTY 0x10A45 #define T_UTF_32_KHAROSHTHI_NUMBER_ONE_HUNDRED 0x10A46 #define T_UTF_32_KHAROSHTHI_NUMBER_ONE_THOUSAND 0x10A47 #define T_UTF_32_KHAROSHTHI_PUNCTUATION_DOT 0x10A50 #define T_UTF_32_KHAROSHTHI_PUNCTUATION_SMALL_CIRCLE 0x10A51 #define T_UTF_32_KHAROSHTHI_PUNCTUATION_CIRCLE 0x10A52 #define T_UTF_32_KHAROSHTHI_PUNCTUATION_CRESCENT_BAR 0x10A53 #define T_UTF_32_KHAROSHTHI_PUNCTUATION_MANGALAM 0x10A54 #define T_UTF_32_KHAROSHTHI_PUNCTUATION_LOTUS 0x10A55 #define T_UTF_32_KHAROSHTHI_PUNCTUATION_DANDA 0x10A56 #define T_UTF_32_KHAROSHTHI_PUNCTUATION_DOUBLE_DANDA 0x10A57 #define T_UTF_32_KHAROSHTHI_PUNCTUATION_LINES 0x10A58 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_HE 0x10A60 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_LAMEDH 0x10A61 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_HETH 0x10A62 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_MEM 0x10A63 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_QOPH 0x10A64 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_WAW 0x10A65 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_SHIN 0x10A66 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_RESH 0x10A67 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_BETH 0x10A68 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_TAW 0x10A69 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_SAT 0x10A6A #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_KAPH 0x10A6B #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_NUN 0x10A6C #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_KHETH 0x10A6D #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_SADHE 0x10A6E #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_SAMEKH 0x10A6F #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_FE 0x10A70 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_ALEF 0x10A71 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_AYN 0x10A72 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_DHADHE 0x10A73 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_GIMEL 0x10A74 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_DALETH 0x10A75 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_GHAYN 0x10A76 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_TETH 0x10A77 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_ZAYN 0x10A78 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_DHALETH 0x10A79 #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_YODH 0x10A7A #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_THAW 0x10A7B #define T_UTF_32_OLD_SOUTH_ARABIAN_LETTER_THETH 0x10A7C #define T_UTF_32_OLD_SOUTH_ARABIAN_NUMBER_ONE 0x10A7D #define T_UTF_32_OLD_SOUTH_ARABIAN_NUMBER_FIFTY 0x10A7E #define T_UTF_32_OLD_SOUTH_ARABIAN_NUMERIC_INDICATOR 0x10A7F #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_HEH 0x10A80 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_LAM 0x10A81 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_HAH 0x10A82 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_MEEM 0x10A83 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_QAF 0x10A84 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_WAW 0x10A85 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_ES_2 0x10A86 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_REH 0x10A87 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_BEH 0x10A88 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_TEH 0x10A89 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_ES_1 0x10A8A #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_KAF 0x10A8B #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_NOON 0x10A8C #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_KHAH 0x10A8D #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_SAD 0x10A8E #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_ES_3 0x10A8F #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_FEH 0x10A90 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_ALEF 0x10A91 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_AIN 0x10A92 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_DAD 0x10A93 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_GEEM 0x10A94 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_DAL 0x10A95 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_GHAIN 0x10A96 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_TAH 0x10A97 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_ZAIN 0x10A98 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_THAL 0x10A99 #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_YEH 0x10A9A #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_THEH 0x10A9B #define T_UTF_32_OLD_NORTH_ARABIAN_LETTER_ZAH 0x10A9C #define T_UTF_32_OLD_NORTH_ARABIAN_NUMBER_ONE 0x10A9D #define T_UTF_32_OLD_NORTH_ARABIAN_NUMBER_TEN 0x10A9E #define T_UTF_32_OLD_NORTH_ARABIAN_NUMBER_TWENTY 0x10A9F #define T_UTF_32_MANICHAEAN_LETTER_ALEPH 0x10AC0 #define T_UTF_32_MANICHAEAN_LETTER_BETH 0x10AC1 #define T_UTF_32_MANICHAEAN_LETTER_BHETH 0x10AC2 #define T_UTF_32_MANICHAEAN_LETTER_GIMEL 0x10AC3 #define T_UTF_32_MANICHAEAN_LETTER_GHIMEL 0x10AC4 #define T_UTF_32_MANICHAEAN_LETTER_DALETH 0x10AC5 #define T_UTF_32_MANICHAEAN_LETTER_HE 0x10AC6 #define T_UTF_32_MANICHAEAN_LETTER_WAW 0x10AC7 #define T_UTF_32_MANICHAEAN_SIGN_UD 0x10AC8 #define T_UTF_32_MANICHAEAN_LETTER_ZAYIN 0x10AC9 #define T_UTF_32_MANICHAEAN_LETTER_ZHAYIN 0x10ACA #define T_UTF_32_MANICHAEAN_LETTER_JAYIN 0x10ACB #define T_UTF_32_MANICHAEAN_LETTER_JHAYIN 0x10ACC #define T_UTF_32_MANICHAEAN_LETTER_HETH 0x10ACD #define T_UTF_32_MANICHAEAN_LETTER_TETH 0x10ACE #define T_UTF_32_MANICHAEAN_LETTER_YODH 0x10ACF #define T_UTF_32_MANICHAEAN_LETTER_KAPH 0x10AD0 #define T_UTF_32_MANICHAEAN_LETTER_XAPH 0x10AD1 #define T_UTF_32_MANICHAEAN_LETTER_KHAPH 0x10AD2 #define T_UTF_32_MANICHAEAN_LETTER_LAMEDH 0x10AD3 #define T_UTF_32_MANICHAEAN_LETTER_DHAMEDH 0x10AD4 #define T_UTF_32_MANICHAEAN_LETTER_THAMEDH 0x10AD5 #define T_UTF_32_MANICHAEAN_LETTER_MEM 0x10AD6 #define T_UTF_32_MANICHAEAN_LETTER_NUN 0x10AD7 #define T_UTF_32_MANICHAEAN_LETTER_SAMEKH 0x10AD8 #define T_UTF_32_MANICHAEAN_LETTER_AYIN 0x10AD9 #define T_UTF_32_MANICHAEAN_LETTER_AAYIN 0x10ADA #define T_UTF_32_MANICHAEAN_LETTER_PE 0x10ADB #define T_UTF_32_MANICHAEAN_LETTER_FE 0x10ADC #define T_UTF_32_MANICHAEAN_LETTER_SADHE 0x10ADD #define T_UTF_32_MANICHAEAN_LETTER_QOPH 0x10ADE #define T_UTF_32_MANICHAEAN_LETTER_XOPH 0x10ADF #define T_UTF_32_MANICHAEAN_LETTER_QHOPH 0x10AE0 #define T_UTF_32_MANICHAEAN_LETTER_RESH 0x10AE1 #define T_UTF_32_MANICHAEAN_LETTER_SHIN 0x10AE2 #define T_UTF_32_MANICHAEAN_LETTER_SSHIN 0x10AE3 #define T_UTF_32_MANICHAEAN_LETTER_TAW 0x10AE4 #define T_UTF_32_MANICHAEAN_ABBREVIATION_MARK_ABOVE 0x10AE5 #define T_UTF_32_MANICHAEAN_ABBREVIATION_MARK_BELOW 0x10AE6 #define T_UTF_32_MANICHAEAN_NUMBER_ONE 0x10AEB #define T_UTF_32_MANICHAEAN_NUMBER_FIVE 0x10AEC #define T_UTF_32_MANICHAEAN_NUMBER_TEN 0x10AED #define T_UTF_32_MANICHAEAN_NUMBER_TWENTY 0x10AEE #define T_UTF_32_MANICHAEAN_NUMBER_ONE_HUNDRED 0x10AEF #define T_UTF_32_MANICHAEAN_PUNCTUATION_STAR 0x10AF0 #define T_UTF_32_MANICHAEAN_PUNCTUATION_FLEURON 0x10AF1 #define T_UTF_32_MANICHAEAN_PUNCTUATION_DOUBLE_DOT_WITHIN_DOT 0x10AF2 #define T_UTF_32_MANICHAEAN_PUNCTUATION_DOT_WITHIN_DOT 0x10AF3 #define T_UTF_32_MANICHAEAN_PUNCTUATION_DOT 0x10AF4 #define T_UTF_32_MANICHAEAN_PUNCTUATION_TWO_DOTS 0x10AF5 #define T_UTF_32_MANICHAEAN_PUNCTUATION_LINE_FILLER 0x10AF6 #define T_UTF_32_AVESTAN_LETTER_A 0x10B00 #define T_UTF_32_AVESTAN_LETTER_AA 0x10B01 #define T_UTF_32_AVESTAN_LETTER_AO 0x10B02 #define T_UTF_32_AVESTAN_LETTER_AAO 0x10B03 #define T_UTF_32_AVESTAN_LETTER_AN 0x10B04 #define T_UTF_32_AVESTAN_LETTER_AAN 0x10B05 #define T_UTF_32_AVESTAN_LETTER_AE 0x10B06 #define T_UTF_32_AVESTAN_LETTER_AEE 0x10B07 #define T_UTF_32_AVESTAN_LETTER_E 0x10B08 #define T_UTF_32_AVESTAN_LETTER_EE 0x10B09 #define T_UTF_32_AVESTAN_LETTER_O 0x10B0A #define T_UTF_32_AVESTAN_LETTER_OO 0x10B0B #define T_UTF_32_AVESTAN_LETTER_I 0x10B0C #define T_UTF_32_AVESTAN_LETTER_II 0x10B0D #define T_UTF_32_AVESTAN_LETTER_U 0x10B0E #define T_UTF_32_AVESTAN_LETTER_UU 0x10B0F #define T_UTF_32_AVESTAN_LETTER_KE 0x10B10 #define T_UTF_32_AVESTAN_LETTER_XE 0x10B11 #define T_UTF_32_AVESTAN_LETTER_XYE 0x10B12 #define T_UTF_32_AVESTAN_LETTER_XVE 0x10B13 #define T_UTF_32_AVESTAN_LETTER_GE 0x10B14 #define T_UTF_32_AVESTAN_LETTER_GGE 0x10B15 #define T_UTF_32_AVESTAN_LETTER_GHE 0x10B16 #define T_UTF_32_AVESTAN_LETTER_CE 0x10B17 #define T_UTF_32_AVESTAN_LETTER_JE 0x10B18 #define T_UTF_32_AVESTAN_LETTER_TE 0x10B19 #define T_UTF_32_AVESTAN_LETTER_THE 0x10B1A #define T_UTF_32_AVESTAN_LETTER_DE 0x10B1B #define T_UTF_32_AVESTAN_LETTER_DHE 0x10B1C #define T_UTF_32_AVESTAN_LETTER_TTE 0x10B1D #define T_UTF_32_AVESTAN_LETTER_PE 0x10B1E #define T_UTF_32_AVESTAN_LETTER_FE 0x10B1F #define T_UTF_32_AVESTAN_LETTER_BE 0x10B20 #define T_UTF_32_AVESTAN_LETTER_BHE 0x10B21 #define T_UTF_32_AVESTAN_LETTER_NGE 0x10B22 #define T_UTF_32_AVESTAN_LETTER_NGYE 0x10B23 #define T_UTF_32_AVESTAN_LETTER_NGVE 0x10B24 #define T_UTF_32_AVESTAN_LETTER_NE 0x10B25 #define T_UTF_32_AVESTAN_LETTER_NYE 0x10B26 #define T_UTF_32_AVESTAN_LETTER_NNE 0x10B27 #define T_UTF_32_AVESTAN_LETTER_ME 0x10B28 #define T_UTF_32_AVESTAN_LETTER_HME 0x10B29 #define T_UTF_32_AVESTAN_LETTER_YYE 0x10B2A #define T_UTF_32_AVESTAN_LETTER_YE 0x10B2B #define T_UTF_32_AVESTAN_LETTER_VE 0x10B2C #define T_UTF_32_AVESTAN_LETTER_RE 0x10B2D #define T_UTF_32_AVESTAN_LETTER_LE 0x10B2E #define T_UTF_32_AVESTAN_LETTER_SE 0x10B2F #define T_UTF_32_AVESTAN_LETTER_ZE 0x10B30 #define T_UTF_32_AVESTAN_LETTER_SHE 0x10B31 #define T_UTF_32_AVESTAN_LETTER_ZHE 0x10B32 #define T_UTF_32_AVESTAN_LETTER_SHYE 0x10B33 #define T_UTF_32_AVESTAN_LETTER_SSHE 0x10B34 #define T_UTF_32_AVESTAN_LETTER_HE 0x10B35 #define T_UTF_32_AVESTAN_ABBREVIATION_MARK 0x10B39 #define T_UTF_32_TINY_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION 0x10B3A #define T_UTF_32_SMALL_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION 0x10B3B #define T_UTF_32_LARGE_TWO_DOTS_OVER_ONE_DOT_PUNCTUATION 0x10B3C #define T_UTF_32_LARGE_ONE_DOT_OVER_TWO_DOTS_PUNCTUATION 0x10B3D #define T_UTF_32_LARGE_TWO_RINGS_OVER_ONE_RING_PUNCTUATION 0x10B3E #define T_UTF_32_LARGE_ONE_RING_OVER_TWO_RINGS_PUNCTUATION 0x10B3F #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_ALEPH 0x10B40 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_BETH 0x10B41 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_GIMEL 0x10B42 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_DALETH 0x10B43 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_HE 0x10B44 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_WAW 0x10B45 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_ZAYIN 0x10B46 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_HETH 0x10B47 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_TETH 0x10B48 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_YODH 0x10B49 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_KAPH 0x10B4A #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_LAMEDH 0x10B4B #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_MEM 0x10B4C #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_NUN 0x10B4D #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_SAMEKH 0x10B4E #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_AYIN 0x10B4F #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_PE 0x10B50 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_SADHE 0x10B51 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_QOPH 0x10B52 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_RESH 0x10B53 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_SHIN 0x10B54 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_LETTER_TAW 0x10B55 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_NUMBER_ONE 0x10B58 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_NUMBER_TWO 0x10B59 #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_NUMBER_THREE 0x10B5A #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_NUMBER_FOUR 0x10B5B #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_NUMBER_TEN 0x10B5C #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_NUMBER_TWENTY 0x10B5D #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_NUMBER_ONE_HUNDRED 0x10B5E #define T_UTF_32_INSCRIPTIONAL_PARTHIAN_NUMBER_ONE_THOUSAND 0x10B5F #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_ALEPH 0x10B60 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_BETH 0x10B61 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_GIMEL 0x10B62 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_DALETH 0x10B63 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_HE 0x10B64 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_WAW_AYIN_RESH 0x10B65 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_ZAYIN 0x10B66 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_HETH 0x10B67 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_TETH 0x10B68 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_YODH 0x10B69 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_KAPH 0x10B6A #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_LAMEDH 0x10B6B #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_MEM_QOPH 0x10B6C #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_NUN 0x10B6D #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_SAMEKH 0x10B6E #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_PE 0x10B6F #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_SADHE 0x10B70 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_SHIN 0x10B71 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_LETTER_TAW 0x10B72 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_NUMBER_ONE 0x10B78 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_NUMBER_TWO 0x10B79 #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_NUMBER_THREE 0x10B7A #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_NUMBER_FOUR 0x10B7B #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_NUMBER_TEN 0x10B7C #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_NUMBER_TWENTY 0x10B7D #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_NUMBER_ONE_HUNDRED 0x10B7E #define T_UTF_32_INSCRIPTIONAL_PAHLAVI_NUMBER_ONE_THOUSAND 0x10B7F #define T_UTF_32_PSALTER_PAHLAVI_LETTER_ALEPH 0x10B80 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_BETH 0x10B81 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_GIMEL 0x10B82 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_DALETH 0x10B83 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_HE 0x10B84 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_WAW_AYIN_RESH 0x10B85 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_ZAYIN 0x10B86 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_HETH 0x10B87 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_YODH 0x10B88 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_KAPH 0x10B89 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_LAMEDH 0x10B8A #define T_UTF_32_PSALTER_PAHLAVI_LETTER_MEM_QOPH 0x10B8B #define T_UTF_32_PSALTER_PAHLAVI_LETTER_NUN 0x10B8C #define T_UTF_32_PSALTER_PAHLAVI_LETTER_SAMEKH 0x10B8D #define T_UTF_32_PSALTER_PAHLAVI_LETTER_PE 0x10B8E #define T_UTF_32_PSALTER_PAHLAVI_LETTER_SADHE 0x10B8F #define T_UTF_32_PSALTER_PAHLAVI_LETTER_SHIN 0x10B90 #define T_UTF_32_PSALTER_PAHLAVI_LETTER_TAW 0x10B91 #define T_UTF_32_PSALTER_PAHLAVI_SECTION_MARK 0x10B99 #define T_UTF_32_PSALTER_PAHLAVI_TURNED_SECTION_MARK 0x10B9A #define T_UTF_32_PSALTER_PAHLAVI_FOUR_DOTS_WITH_CROSS 0x10B9B #define T_UTF_32_PSALTER_PAHLAVI_FOUR_DOTS_WITH_DOT 0x10B9C #define T_UTF_32_PSALTER_PAHLAVI_NUMBER_ONE 0x10BA9 #define T_UTF_32_PSALTER_PAHLAVI_NUMBER_TWO 0x10BAA #define T_UTF_32_PSALTER_PAHLAVI_NUMBER_THREE 0x10BAB #define T_UTF_32_PSALTER_PAHLAVI_NUMBER_FOUR 0x10BAC #define T_UTF_32_PSALTER_PAHLAVI_NUMBER_TEN 0x10BAD #define T_UTF_32_PSALTER_PAHLAVI_NUMBER_TWENTY 0x10BAE #define T_UTF_32_PSALTER_PAHLAVI_NUMBER_ONE_HUNDRED 0x10BAF #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_A 0x10C00 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_A 0x10C01 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AE 0x10C02 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_I 0x10C03 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_I 0x10C04 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_E 0x10C05 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_O 0x10C06 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_OE 0x10C07 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_OE 0x10C08 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AB 0x10C09 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AB 0x10C0A #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AEB 0x10C0B #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AEB 0x10C0C #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AG 0x10C0D #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AG 0x10C0E #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AEG 0x10C0F #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AEG 0x10C10 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AD 0x10C11 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AD 0x10C12 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AED 0x10C13 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_EZ 0x10C14 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_EZ 0x10C15 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AY 0x10C16 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AY 0x10C17 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AEY 0x10C18 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AEY 0x10C19 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AEK 0x10C1A #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AEK 0x10C1B #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_OEK 0x10C1C #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_OEK 0x10C1D #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AL 0x10C1E #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AL 0x10C1F #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AEL 0x10C20 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_ELT 0x10C21 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_EM 0x10C22 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AN 0x10C23 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AEN 0x10C24 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AEN 0x10C25 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_ENT 0x10C26 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_ENT 0x10C27 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_ENC 0x10C28 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_ENC 0x10C29 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_ENY 0x10C2A #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_ENY 0x10C2B #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_ANG 0x10C2C #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_ENG 0x10C2D #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AENG 0x10C2E #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_EP 0x10C2F #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_OP 0x10C30 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_IC 0x10C31 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_EC 0x10C32 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_EC 0x10C33 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AQ 0x10C34 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AQ 0x10C35 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_IQ 0x10C36 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_IQ 0x10C37 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_OQ 0x10C38 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_OQ 0x10C39 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AR 0x10C3A #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AR 0x10C3B #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AER 0x10C3C #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AS 0x10C3D #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AES 0x10C3E #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_ASH 0x10C3F #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_ASH 0x10C40 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_ESH 0x10C41 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_ESH 0x10C42 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AT 0x10C43 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AT 0x10C44 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_AET 0x10C45 #define T_UTF_32_OLD_TURKIC_LETTER_YENISEI_AET 0x10C46 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_OT 0x10C47 #define T_UTF_32_OLD_TURKIC_LETTER_ORKHON_BASH 0x10C48 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_A 0x10C80 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_AA 0x10C81 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EB 0x10C82 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_AMB 0x10C83 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EC 0x10C84 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ENC 0x10C85 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ECS 0x10C86 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ED 0x10C87 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_AND 0x10C88 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_E 0x10C89 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_CLOSE_E 0x10C8A #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EE 0x10C8B #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EF 0x10C8C #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EG 0x10C8D #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EGY 0x10C8E #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EH 0x10C8F #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_I 0x10C90 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_II 0x10C91 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EJ 0x10C92 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EK 0x10C93 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_AK 0x10C94 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_UNK 0x10C95 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EL 0x10C96 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ELY 0x10C97 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EM 0x10C98 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EN 0x10C99 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ENY 0x10C9A #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_O 0x10C9B #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_OO 0x10C9C #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_NIKOLSBURG_OE 0x10C9D #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_RUDIMENTA_OE 0x10C9E #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_OEE 0x10C9F #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EP 0x10CA0 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EMP 0x10CA1 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ER 0x10CA2 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_SHORT_ER 0x10CA3 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ES 0x10CA4 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ESZ 0x10CA5 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ET 0x10CA6 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ENT 0x10CA7 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ETY 0x10CA8 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ECH 0x10CA9 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_U 0x10CAA #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_UU 0x10CAB #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_NIKOLSBURG_UE 0x10CAC #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_RUDIMENTA_UE 0x10CAD #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EV 0x10CAE #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EZ 0x10CAF #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_EZS 0x10CB0 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_ENT_SHAPED_SIGN 0x10CB1 #define T_UTF_32_OLD_HUNGARIAN_CAPITAL_LETTER_US 0x10CB2 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_A 0x10CC0 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_AA 0x10CC1 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EB 0x10CC2 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_AMB 0x10CC3 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EC 0x10CC4 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ENC 0x10CC5 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ECS 0x10CC6 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ED 0x10CC7 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_AND 0x10CC8 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_E 0x10CC9 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_CLOSE_E 0x10CCA #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EE 0x10CCB #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EF 0x10CCC #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EG 0x10CCD #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EGY 0x10CCE #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EH 0x10CCF #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_I 0x10CD0 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_II 0x10CD1 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EJ 0x10CD2 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EK 0x10CD3 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_AK 0x10CD4 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_UNK 0x10CD5 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EL 0x10CD6 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ELY 0x10CD7 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EM 0x10CD8 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EN 0x10CD9 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ENY 0x10CDA #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_O 0x10CDB #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_OO 0x10CDC #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_NIKOLSBURG_OE 0x10CDD #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_RUDIMENTA_OE 0x10CDE #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_OEE 0x10CDF #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EP 0x10CE0 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EMP 0x10CE1 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ER 0x10CE2 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_SHORT_ER 0x10CE3 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ES 0x10CE4 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ESZ 0x10CE5 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ET 0x10CE6 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ENT 0x10CE7 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ETY 0x10CE8 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ECH 0x10CE9 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_U 0x10CEA #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_UU 0x10CEB #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_NIKOLSBURG_UE 0x10CEC #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_RUDIMENTA_UE 0x10CED #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EV 0x10CEE #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EZ 0x10CEF #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_EZS 0x10CF0 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_ENT_SHAPED_SIGN 0x10CF1 #define T_UTF_32_OLD_HUNGARIAN_SMALL_LETTER_US 0x10CF2 #define T_UTF_32_OLD_HUNGARIAN_NUMBER_ONE 0x10CFA #define T_UTF_32_OLD_HUNGARIAN_NUMBER_FIVE 0x10CFB #define T_UTF_32_OLD_HUNGARIAN_NUMBER_TEN 0x10CFC #define T_UTF_32_OLD_HUNGARIAN_NUMBER_FIFTY 0x10CFD #define T_UTF_32_OLD_HUNGARIAN_NUMBER_ONE_HUNDRED 0x10CFE #define T_UTF_32_OLD_HUNGARIAN_NUMBER_ONE_THOUSAND 0x10CFF #define T_UTF_32_RUMI_DIGIT_ONE 0x10E60 #define T_UTF_32_RUMI_DIGIT_TWO 0x10E61 #define T_UTF_32_RUMI_DIGIT_THREE 0x10E62 #define T_UTF_32_RUMI_DIGIT_FOUR 0x10E63 #define T_UTF_32_RUMI_DIGIT_FIVE 0x10E64 #define T_UTF_32_RUMI_DIGIT_SIX 0x10E65 #define T_UTF_32_RUMI_DIGIT_SEVEN 0x10E66 #define T_UTF_32_RUMI_DIGIT_EIGHT 0x10E67 #define T_UTF_32_RUMI_DIGIT_NINE 0x10E68 #define T_UTF_32_RUMI_NUMBER_TEN 0x10E69 #define T_UTF_32_RUMI_NUMBER_TWENTY 0x10E6A #define T_UTF_32_RUMI_NUMBER_THIRTY 0x10E6B #define T_UTF_32_RUMI_NUMBER_FORTY 0x10E6C #define T_UTF_32_RUMI_NUMBER_FIFTY 0x10E6D #define T_UTF_32_RUMI_NUMBER_SIXTY 0x10E6E #define T_UTF_32_RUMI_NUMBER_SEVENTY 0x10E6F #define T_UTF_32_RUMI_NUMBER_EIGHTY 0x10E70 #define T_UTF_32_RUMI_NUMBER_NINETY 0x10E71 #define T_UTF_32_RUMI_NUMBER_ONE_HUNDRED 0x10E72 #define T_UTF_32_RUMI_NUMBER_TWO_HUNDRED 0x10E73 #define T_UTF_32_RUMI_NUMBER_THREE_HUNDRED 0x10E74 #define T_UTF_32_RUMI_NUMBER_FOUR_HUNDRED 0x10E75 #define T_UTF_32_RUMI_NUMBER_FIVE_HUNDRED 0x10E76 #define T_UTF_32_RUMI_NUMBER_SIX_HUNDRED 0x10E77 #define T_UTF_32_RUMI_NUMBER_SEVEN_HUNDRED 0x10E78 #define T_UTF_32_RUMI_NUMBER_EIGHT_HUNDRED 0x10E79 #define T_UTF_32_RUMI_NUMBER_NINE_HUNDRED 0x10E7A #define T_UTF_32_RUMI_FRACTION_ONE_HALF 0x10E7B #define T_UTF_32_RUMI_FRACTION_ONE_QUARTER 0x10E7C #define T_UTF_32_RUMI_FRACTION_ONE_THIRD 0x10E7D #define T_UTF_32_RUMI_FRACTION_TWO_THIRDS 0x10E7E #define T_UTF_32_BRAHMI_SIGN_CANDRABINDU 0x11000 #define T_UTF_32_BRAHMI_SIGN_ANUSVARA 0x11001 #define T_UTF_32_BRAHMI_SIGN_VISARGA 0x11002 #define T_UTF_32_BRAHMI_SIGN_JIHVAMULIYA 0x11003 #define T_UTF_32_BRAHMI_SIGN_UPADHMANIYA 0x11004 #define T_UTF_32_BRAHMI_LETTER_A 0x11005 #define T_UTF_32_BRAHMI_LETTER_AA 0x11006 #define T_UTF_32_BRAHMI_LETTER_I 0x11007 #define T_UTF_32_BRAHMI_LETTER_II 0x11008 #define T_UTF_32_BRAHMI_LETTER_U 0x11009 #define T_UTF_32_BRAHMI_LETTER_UU 0x1100A #define T_UTF_32_BRAHMI_LETTER_VOCALIC_R 0x1100B #define T_UTF_32_BRAHMI_LETTER_VOCALIC_RR 0x1100C #define T_UTF_32_BRAHMI_LETTER_VOCALIC_L 0x1100D #define T_UTF_32_BRAHMI_LETTER_VOCALIC_LL 0x1100E #define T_UTF_32_BRAHMI_LETTER_E 0x1100F #define T_UTF_32_BRAHMI_LETTER_AI 0x11010 #define T_UTF_32_BRAHMI_LETTER_O 0x11011 #define T_UTF_32_BRAHMI_LETTER_AU 0x11012 #define T_UTF_32_BRAHMI_LETTER_KA 0x11013 #define T_UTF_32_BRAHMI_LETTER_KHA 0x11014 #define T_UTF_32_BRAHMI_LETTER_GA 0x11015 #define T_UTF_32_BRAHMI_LETTER_GHA 0x11016 #define T_UTF_32_BRAHMI_LETTER_NGA 0x11017 #define T_UTF_32_BRAHMI_LETTER_CA 0x11018 #define T_UTF_32_BRAHMI_LETTER_CHA 0x11019 #define T_UTF_32_BRAHMI_LETTER_JA 0x1101A #define T_UTF_32_BRAHMI_LETTER_JHA 0x1101B #define T_UTF_32_BRAHMI_LETTER_NYA 0x1101C #define T_UTF_32_BRAHMI_LETTER_TTA 0x1101D #define T_UTF_32_BRAHMI_LETTER_TTHA 0x1101E #define T_UTF_32_BRAHMI_LETTER_DDA 0x1101F #define T_UTF_32_BRAHMI_LETTER_DDHA 0x11020 #define T_UTF_32_BRAHMI_LETTER_NNA 0x11021 #define T_UTF_32_BRAHMI_LETTER_TA 0x11022 #define T_UTF_32_BRAHMI_LETTER_THA 0x11023 #define T_UTF_32_BRAHMI_LETTER_DA 0x11024 #define T_UTF_32_BRAHMI_LETTER_DHA 0x11025 #define T_UTF_32_BRAHMI_LETTER_NA 0x11026 #define T_UTF_32_BRAHMI_LETTER_PA 0x11027 #define T_UTF_32_BRAHMI_LETTER_PHA 0x11028 #define T_UTF_32_BRAHMI_LETTER_BA 0x11029 #define T_UTF_32_BRAHMI_LETTER_BHA 0x1102A #define T_UTF_32_BRAHMI_LETTER_MA 0x1102B #define T_UTF_32_BRAHMI_LETTER_YA 0x1102C #define T_UTF_32_BRAHMI_LETTER_RA 0x1102D #define T_UTF_32_BRAHMI_LETTER_LA 0x1102E #define T_UTF_32_BRAHMI_LETTER_VA 0x1102F #define T_UTF_32_BRAHMI_LETTER_SHA 0x11030 #define T_UTF_32_BRAHMI_LETTER_SSA 0x11031 #define T_UTF_32_BRAHMI_LETTER_SA 0x11032 #define T_UTF_32_BRAHMI_LETTER_HA 0x11033 #define T_UTF_32_BRAHMI_LETTER_LLA 0x11034 #define T_UTF_32_BRAHMI_LETTER_OLD_TAMIL_LLLA 0x11035 #define T_UTF_32_BRAHMI_LETTER_OLD_TAMIL_RRA 0x11036 #define T_UTF_32_BRAHMI_LETTER_OLD_TAMIL_NNNA 0x11037 #define T_UTF_32_BRAHMI_VOWEL_SIGN_AA 0x11038 #define T_UTF_32_BRAHMI_VOWEL_SIGN_BHATTIPROLU_AA 0x11039 #define T_UTF_32_BRAHMI_VOWEL_SIGN_I 0x1103A #define T_UTF_32_BRAHMI_VOWEL_SIGN_II 0x1103B #define T_UTF_32_BRAHMI_VOWEL_SIGN_U 0x1103C #define T_UTF_32_BRAHMI_VOWEL_SIGN_UU 0x1103D #define T_UTF_32_BRAHMI_VOWEL_SIGN_VOCALIC_R 0x1103E #define T_UTF_32_BRAHMI_VOWEL_SIGN_VOCALIC_RR 0x1103F #define T_UTF_32_BRAHMI_VOWEL_SIGN_VOCALIC_L 0x11040 #define T_UTF_32_BRAHMI_VOWEL_SIGN_VOCALIC_LL 0x11041 #define T_UTF_32_BRAHMI_VOWEL_SIGN_E 0x11042 #define T_UTF_32_BRAHMI_VOWEL_SIGN_AI 0x11043 #define T_UTF_32_BRAHMI_VOWEL_SIGN_O 0x11044 #define T_UTF_32_BRAHMI_VOWEL_SIGN_AU 0x11045 #define T_UTF_32_BRAHMI_VIRAMA 0x11046 #define T_UTF_32_BRAHMI_DANDA 0x11047 #define T_UTF_32_BRAHMI_DOUBLE_DANDA 0x11048 #define T_UTF_32_BRAHMI_PUNCTUATION_DOT 0x11049 #define T_UTF_32_BRAHMI_PUNCTUATION_DOUBLE_DOT 0x1104A #define T_UTF_32_BRAHMI_PUNCTUATION_LINE 0x1104B #define T_UTF_32_BRAHMI_PUNCTUATION_CRESCENT_BAR 0x1104C #define T_UTF_32_BRAHMI_PUNCTUATION_LOTUS 0x1104D #define T_UTF_32_BRAHMI_NUMBER_ONE 0x11052 #define T_UTF_32_BRAHMI_NUMBER_TWO 0x11053 #define T_UTF_32_BRAHMI_NUMBER_THREE 0x11054 #define T_UTF_32_BRAHMI_NUMBER_FOUR 0x11055 #define T_UTF_32_BRAHMI_NUMBER_FIVE 0x11056 #define T_UTF_32_BRAHMI_NUMBER_SIX 0x11057 #define T_UTF_32_BRAHMI_NUMBER_SEVEN 0x11058 #define T_UTF_32_BRAHMI_NUMBER_EIGHT 0x11059 #define T_UTF_32_BRAHMI_NUMBER_NINE 0x1105A #define T_UTF_32_BRAHMI_NUMBER_TEN 0x1105B #define T_UTF_32_BRAHMI_NUMBER_TWENTY 0x1105C #define T_UTF_32_BRAHMI_NUMBER_THIRTY 0x1105D #define T_UTF_32_BRAHMI_NUMBER_FORTY 0x1105E #define T_UTF_32_BRAHMI_NUMBER_FIFTY 0x1105F #define T_UTF_32_BRAHMI_NUMBER_SIXTY 0x11060 #define T_UTF_32_BRAHMI_NUMBER_SEVENTY 0x11061 #define T_UTF_32_BRAHMI_NUMBER_EIGHTY 0x11062 #define T_UTF_32_BRAHMI_NUMBER_NINETY 0x11063 #define T_UTF_32_BRAHMI_NUMBER_ONE_HUNDRED 0x11064 #define T_UTF_32_BRAHMI_NUMBER_ONE_THOUSAND 0x11065 #define T_UTF_32_BRAHMI_DIGIT_ZERO 0x11066 #define T_UTF_32_BRAHMI_DIGIT_ONE 0x11067 #define T_UTF_32_BRAHMI_DIGIT_TWO 0x11068 #define T_UTF_32_BRAHMI_DIGIT_THREE 0x11069 #define T_UTF_32_BRAHMI_DIGIT_FOUR 0x1106A #define T_UTF_32_BRAHMI_DIGIT_FIVE 0x1106B #define T_UTF_32_BRAHMI_DIGIT_SIX 0x1106C #define T_UTF_32_BRAHMI_DIGIT_SEVEN 0x1106D #define T_UTF_32_BRAHMI_DIGIT_EIGHT 0x1106E #define T_UTF_32_BRAHMI_DIGIT_NINE 0x1106F #define T_UTF_32_BRAHMI_NUMBER_JOINER 0x1107F #define T_UTF_32_KAITHI_SIGN_CANDRABINDU 0x11080 #define T_UTF_32_KAITHI_SIGN_ANUSVARA 0x11081 #define T_UTF_32_KAITHI_SIGN_VISARGA 0x11082 #define T_UTF_32_KAITHI_LETTER_A 0x11083 #define T_UTF_32_KAITHI_LETTER_AA 0x11084 #define T_UTF_32_KAITHI_LETTER_I 0x11085 #define T_UTF_32_KAITHI_LETTER_II 0x11086 #define T_UTF_32_KAITHI_LETTER_U 0x11087 #define T_UTF_32_KAITHI_LETTER_UU 0x11088 #define T_UTF_32_KAITHI_LETTER_E 0x11089 #define T_UTF_32_KAITHI_LETTER_AI 0x1108A #define T_UTF_32_KAITHI_LETTER_O 0x1108B #define T_UTF_32_KAITHI_LETTER_AU 0x1108C #define T_UTF_32_KAITHI_LETTER_KA 0x1108D #define T_UTF_32_KAITHI_LETTER_KHA 0x1108E #define T_UTF_32_KAITHI_LETTER_GA 0x1108F #define T_UTF_32_KAITHI_LETTER_GHA 0x11090 #define T_UTF_32_KAITHI_LETTER_NGA 0x11091 #define T_UTF_32_KAITHI_LETTER_CA 0x11092 #define T_UTF_32_KAITHI_LETTER_CHA 0x11093 #define T_UTF_32_KAITHI_LETTER_JA 0x11094 #define T_UTF_32_KAITHI_LETTER_JHA 0x11095 #define T_UTF_32_KAITHI_LETTER_NYA 0x11096 #define T_UTF_32_KAITHI_LETTER_TTA 0x11097 #define T_UTF_32_KAITHI_LETTER_TTHA 0x11098 #define T_UTF_32_KAITHI_LETTER_DDA 0x11099 #define T_UTF_32_KAITHI_LETTER_DDDHA 0x1109A #define T_UTF_32_KAITHI_LETTER_DDHA 0x1109B #define T_UTF_32_KAITHI_LETTER_RHA 0x1109C #define T_UTF_32_KAITHI_LETTER_NNA 0x1109D #define T_UTF_32_KAITHI_LETTER_TA 0x1109E #define T_UTF_32_KAITHI_LETTER_THA 0x1109F #define T_UTF_32_KAITHI_LETTER_DA 0x110A0 #define T_UTF_32_KAITHI_LETTER_DHA 0x110A1 #define T_UTF_32_KAITHI_LETTER_NA 0x110A2 #define T_UTF_32_KAITHI_LETTER_PA 0x110A3 #define T_UTF_32_KAITHI_LETTER_PHA 0x110A4 #define T_UTF_32_KAITHI_LETTER_BA 0x110A5 #define T_UTF_32_KAITHI_LETTER_BHA 0x110A6 #define T_UTF_32_KAITHI_LETTER_MA 0x110A7 #define T_UTF_32_KAITHI_LETTER_YA 0x110A8 #define T_UTF_32_KAITHI_LETTER_RA 0x110A9 #define T_UTF_32_KAITHI_LETTER_LA 0x110AA #define T_UTF_32_KAITHI_LETTER_VA 0x110AB #define T_UTF_32_KAITHI_LETTER_SHA 0x110AC #define T_UTF_32_KAITHI_LETTER_SSA 0x110AD #define T_UTF_32_KAITHI_LETTER_SA 0x110AE #define T_UTF_32_KAITHI_LETTER_HA 0x110AF #define T_UTF_32_KAITHI_VOWEL_SIGN_AA 0x110B0 #define T_UTF_32_KAITHI_VOWEL_SIGN_I 0x110B1 #define T_UTF_32_KAITHI_VOWEL_SIGN_II 0x110B2 #define T_UTF_32_KAITHI_VOWEL_SIGN_U 0x110B3 #define T_UTF_32_KAITHI_VOWEL_SIGN_UU 0x110B4 #define T_UTF_32_KAITHI_VOWEL_SIGN_E 0x110B5 #define T_UTF_32_KAITHI_VOWEL_SIGN_AI 0x110B6 #define T_UTF_32_KAITHI_VOWEL_SIGN_O 0x110B7 #define T_UTF_32_KAITHI_VOWEL_SIGN_AU 0x110B8 #define T_UTF_32_KAITHI_SIGN_VIRAMA 0x110B9 #define T_UTF_32_KAITHI_SIGN_NUKTA 0x110BA #define T_UTF_32_KAITHI_ABBREVIATION_SIGN 0x110BB #define T_UTF_32_KAITHI_ENUMERATION_SIGN 0x110BC #define T_UTF_32_KAITHI_NUMBER_SIGN 0x110BD #define T_UTF_32_KAITHI_SECTION_MARK 0x110BE #define T_UTF_32_KAITHI_DOUBLE_SECTION_MARK 0x110BF #define T_UTF_32_KAITHI_DANDA 0x110C0 #define T_UTF_32_KAITHI_DOUBLE_DANDA 0x110C1 #define T_UTF_32_SORA_SOMPENG_LETTER_SAH 0x110D0 #define T_UTF_32_SORA_SOMPENG_LETTER_TAH 0x110D1 #define T_UTF_32_SORA_SOMPENG_LETTER_BAH 0x110D2 #define T_UTF_32_SORA_SOMPENG_LETTER_CAH 0x110D3 #define T_UTF_32_SORA_SOMPENG_LETTER_DAH 0x110D4 #define T_UTF_32_SORA_SOMPENG_LETTER_GAH 0x110D5 #define T_UTF_32_SORA_SOMPENG_LETTER_MAH 0x110D6 #define T_UTF_32_SORA_SOMPENG_LETTER_NGAH 0x110D7 #define T_UTF_32_SORA_SOMPENG_LETTER_LAH 0x110D8 #define T_UTF_32_SORA_SOMPENG_LETTER_NAH 0x110D9 #define T_UTF_32_SORA_SOMPENG_LETTER_VAH 0x110DA #define T_UTF_32_SORA_SOMPENG_LETTER_PAH 0x110DB #define T_UTF_32_SORA_SOMPENG_LETTER_YAH 0x110DC #define T_UTF_32_SORA_SOMPENG_LETTER_RAH 0x110DD #define T_UTF_32_SORA_SOMPENG_LETTER_HAH 0x110DE #define T_UTF_32_SORA_SOMPENG_LETTER_KAH 0x110DF #define T_UTF_32_SORA_SOMPENG_LETTER_JAH 0x110E0 #define T_UTF_32_SORA_SOMPENG_LETTER_NYAH 0x110E1 #define T_UTF_32_SORA_SOMPENG_LETTER_AH 0x110E2 #define T_UTF_32_SORA_SOMPENG_LETTER_EEH 0x110E3 #define T_UTF_32_SORA_SOMPENG_LETTER_IH 0x110E4 #define T_UTF_32_SORA_SOMPENG_LETTER_UH 0x110E5 #define T_UTF_32_SORA_SOMPENG_LETTER_OH 0x110E6 #define T_UTF_32_SORA_SOMPENG_LETTER_EH 0x110E7 #define T_UTF_32_SORA_SOMPENG_LETTER_MAE 0x110E8 #define T_UTF_32_SORA_SOMPENG_DIGIT_ZERO 0x110F0 #define T_UTF_32_SORA_SOMPENG_DIGIT_ONE 0x110F1 #define T_UTF_32_SORA_SOMPENG_DIGIT_TWO 0x110F2 #define T_UTF_32_SORA_SOMPENG_DIGIT_THREE 0x110F3 #define T_UTF_32_SORA_SOMPENG_DIGIT_FOUR 0x110F4 #define T_UTF_32_SORA_SOMPENG_DIGIT_FIVE 0x110F5 #define T_UTF_32_SORA_SOMPENG_DIGIT_SIX 0x110F6 #define T_UTF_32_SORA_SOMPENG_DIGIT_SEVEN 0x110F7 #define T_UTF_32_SORA_SOMPENG_DIGIT_EIGHT 0x110F8 #define T_UTF_32_SORA_SOMPENG_DIGIT_NINE 0x110F9 #define T_UTF_32_CHAKMA_SIGN_CANDRABINDU 0x11100 #define T_UTF_32_CHAKMA_SIGN_ANUSVARA 0x11101 #define T_UTF_32_CHAKMA_SIGN_VISARGA 0x11102 #define T_UTF_32_CHAKMA_LETTER_AA 0x11103 #define T_UTF_32_CHAKMA_LETTER_I 0x11104 #define T_UTF_32_CHAKMA_LETTER_U 0x11105 #define T_UTF_32_CHAKMA_LETTER_E 0x11106 #define T_UTF_32_CHAKMA_LETTER_KAA 0x11107 #define T_UTF_32_CHAKMA_LETTER_KHAA 0x11108 #define T_UTF_32_CHAKMA_LETTER_GAA 0x11109 #define T_UTF_32_CHAKMA_LETTER_GHAA 0x1110A #define T_UTF_32_CHAKMA_LETTER_NGAA 0x1110B #define T_UTF_32_CHAKMA_LETTER_CAA 0x1110C #define T_UTF_32_CHAKMA_LETTER_CHAA 0x1110D #define T_UTF_32_CHAKMA_LETTER_JAA 0x1110E #define T_UTF_32_CHAKMA_LETTER_JHAA 0x1110F #define T_UTF_32_CHAKMA_LETTER_NYAA 0x11110 #define T_UTF_32_CHAKMA_LETTER_TTAA 0x11111 #define T_UTF_32_CHAKMA_LETTER_TTHAA 0x11112 #define T_UTF_32_CHAKMA_LETTER_DDAA 0x11113 #define T_UTF_32_CHAKMA_LETTER_DDHAA 0x11114 #define T_UTF_32_CHAKMA_LETTER_NNAA 0x11115 #define T_UTF_32_CHAKMA_LETTER_TAA 0x11116 #define T_UTF_32_CHAKMA_LETTER_THAA 0x11117 #define T_UTF_32_CHAKMA_LETTER_DAA 0x11118 #define T_UTF_32_CHAKMA_LETTER_DHAA 0x11119 #define T_UTF_32_CHAKMA_LETTER_NAA 0x1111A #define T_UTF_32_CHAKMA_LETTER_PAA 0x1111B #define T_UTF_32_CHAKMA_LETTER_PHAA 0x1111C #define T_UTF_32_CHAKMA_LETTER_BAA 0x1111D #define T_UTF_32_CHAKMA_LETTER_BHAA 0x1111E #define T_UTF_32_CHAKMA_LETTER_MAA 0x1111F #define T_UTF_32_CHAKMA_LETTER_YYAA 0x11120 #define T_UTF_32_CHAKMA_LETTER_YAA 0x11121 #define T_UTF_32_CHAKMA_LETTER_RAA 0x11122 #define T_UTF_32_CHAKMA_LETTER_LAA 0x11123 #define T_UTF_32_CHAKMA_LETTER_WAA 0x11124 #define T_UTF_32_CHAKMA_LETTER_SAA 0x11125 #define T_UTF_32_CHAKMA_LETTER_HAA 0x11126 #define T_UTF_32_CHAKMA_VOWEL_SIGN_A 0x11127 #define T_UTF_32_CHAKMA_VOWEL_SIGN_I 0x11128 #define T_UTF_32_CHAKMA_VOWEL_SIGN_II 0x11129 #define T_UTF_32_CHAKMA_VOWEL_SIGN_U 0x1112A #define T_UTF_32_CHAKMA_VOWEL_SIGN_UU 0x1112B #define T_UTF_32_CHAKMA_VOWEL_SIGN_E 0x1112C #define T_UTF_32_CHAKMA_VOWEL_SIGN_AI 0x1112D #define T_UTF_32_CHAKMA_VOWEL_SIGN_O 0x1112E #define T_UTF_32_CHAKMA_VOWEL_SIGN_AU 0x1112F #define T_UTF_32_CHAKMA_VOWEL_SIGN_OI 0x11130 #define T_UTF_32_CHAKMA_O_MARK 0x11131 #define T_UTF_32_CHAKMA_AU_MARK 0x11132 #define T_UTF_32_CHAKMA_VIRAMA 0x11133 #define T_UTF_32_CHAKMA_MAAYYAA 0x11134 #define T_UTF_32_CHAKMA_DIGIT_ZERO 0x11136 #define T_UTF_32_CHAKMA_DIGIT_ONE 0x11137 #define T_UTF_32_CHAKMA_DIGIT_TWO 0x11138 #define T_UTF_32_CHAKMA_DIGIT_THREE 0x11139 #define T_UTF_32_CHAKMA_DIGIT_FOUR 0x1113A #define T_UTF_32_CHAKMA_DIGIT_FIVE 0x1113B #define T_UTF_32_CHAKMA_DIGIT_SIX 0x1113C #define T_UTF_32_CHAKMA_DIGIT_SEVEN 0x1113D #define T_UTF_32_CHAKMA_DIGIT_EIGHT 0x1113E #define T_UTF_32_CHAKMA_DIGIT_NINE 0x1113F #define T_UTF_32_CHAKMA_SECTION_MARK 0x11140 #define T_UTF_32_CHAKMA_DANDA 0x11141 #define T_UTF_32_CHAKMA_DOUBLE_DANDA 0x11142 #define T_UTF_32_CHAKMA_QUESTION_MARK 0x11143 #define T_UTF_32_MAHAJANI_LETTER_A 0x11150 #define T_UTF_32_MAHAJANI_LETTER_I 0x11151 #define T_UTF_32_MAHAJANI_LETTER_U 0x11152 #define T_UTF_32_MAHAJANI_LETTER_E 0x11153 #define T_UTF_32_MAHAJANI_LETTER_O 0x11154 #define T_UTF_32_MAHAJANI_LETTER_KA 0x11155 #define T_UTF_32_MAHAJANI_LETTER_KHA 0x11156 #define T_UTF_32_MAHAJANI_LETTER_GA 0x11157 #define T_UTF_32_MAHAJANI_LETTER_GHA 0x11158 #define T_UTF_32_MAHAJANI_LETTER_CA 0x11159 #define T_UTF_32_MAHAJANI_LETTER_CHA 0x1115A #define T_UTF_32_MAHAJANI_LETTER_JA 0x1115B #define T_UTF_32_MAHAJANI_LETTER_JHA 0x1115C #define T_UTF_32_MAHAJANI_LETTER_NYA 0x1115D #define T_UTF_32_MAHAJANI_LETTER_TTA 0x1115E #define T_UTF_32_MAHAJANI_LETTER_TTHA 0x1115F #define T_UTF_32_MAHAJANI_LETTER_DDA 0x11160 #define T_UTF_32_MAHAJANI_LETTER_DDHA 0x11161 #define T_UTF_32_MAHAJANI_LETTER_NNA 0x11162 #define T_UTF_32_MAHAJANI_LETTER_TA 0x11163 #define T_UTF_32_MAHAJANI_LETTER_THA 0x11164 #define T_UTF_32_MAHAJANI_LETTER_DA 0x11165 #define T_UTF_32_MAHAJANI_LETTER_DHA 0x11166 #define T_UTF_32_MAHAJANI_LETTER_NA 0x11167 #define T_UTF_32_MAHAJANI_LETTER_PA 0x11168 #define T_UTF_32_MAHAJANI_LETTER_PHA 0x11169 #define T_UTF_32_MAHAJANI_LETTER_BA 0x1116A #define T_UTF_32_MAHAJANI_LETTER_BHA 0x1116B #define T_UTF_32_MAHAJANI_LETTER_MA 0x1116C #define T_UTF_32_MAHAJANI_LETTER_RA 0x1116D #define T_UTF_32_MAHAJANI_LETTER_LA 0x1116E #define T_UTF_32_MAHAJANI_LETTER_VA 0x1116F #define T_UTF_32_MAHAJANI_LETTER_SA 0x11170 #define T_UTF_32_MAHAJANI_LETTER_HA 0x11171 #define T_UTF_32_MAHAJANI_LETTER_RRA 0x11172 #define T_UTF_32_MAHAJANI_SIGN_NUKTA 0x11173 #define T_UTF_32_MAHAJANI_ABBREVIATION_SIGN 0x11174 #define T_UTF_32_MAHAJANI_SECTION_MARK 0x11175 #define T_UTF_32_MAHAJANI_LIGATURE_SHRI 0x11176 #define T_UTF_32_SHARADA_SIGN_CANDRABINDU 0x11180 #define T_UTF_32_SHARADA_SIGN_ANUSVARA 0x11181 #define T_UTF_32_SHARADA_SIGN_VISARGA 0x11182 #define T_UTF_32_SHARADA_LETTER_A 0x11183 #define T_UTF_32_SHARADA_LETTER_AA 0x11184 #define T_UTF_32_SHARADA_LETTER_I 0x11185 #define T_UTF_32_SHARADA_LETTER_II 0x11186 #define T_UTF_32_SHARADA_LETTER_U 0x11187 #define T_UTF_32_SHARADA_LETTER_UU 0x11188 #define T_UTF_32_SHARADA_LETTER_VOCALIC_R 0x11189 #define T_UTF_32_SHARADA_LETTER_VOCALIC_RR 0x1118A #define T_UTF_32_SHARADA_LETTER_VOCALIC_L 0x1118B #define T_UTF_32_SHARADA_LETTER_VOCALIC_LL 0x1118C #define T_UTF_32_SHARADA_LETTER_E 0x1118D #define T_UTF_32_SHARADA_LETTER_AI 0x1118E #define T_UTF_32_SHARADA_LETTER_O 0x1118F #define T_UTF_32_SHARADA_LETTER_AU 0x11190 #define T_UTF_32_SHARADA_LETTER_KA 0x11191 #define T_UTF_32_SHARADA_LETTER_KHA 0x11192 #define T_UTF_32_SHARADA_LETTER_GA 0x11193 #define T_UTF_32_SHARADA_LETTER_GHA 0x11194 #define T_UTF_32_SHARADA_LETTER_NGA 0x11195 #define T_UTF_32_SHARADA_LETTER_CA 0x11196 #define T_UTF_32_SHARADA_LETTER_CHA 0x11197 #define T_UTF_32_SHARADA_LETTER_JA 0x11198 #define T_UTF_32_SHARADA_LETTER_JHA 0x11199 #define T_UTF_32_SHARADA_LETTER_NYA 0x1119A #define T_UTF_32_SHARADA_LETTER_TTA 0x1119B #define T_UTF_32_SHARADA_LETTER_TTHA 0x1119C #define T_UTF_32_SHARADA_LETTER_DDA 0x1119D #define T_UTF_32_SHARADA_LETTER_DDHA 0x1119E #define T_UTF_32_SHARADA_LETTER_NNA 0x1119F #define T_UTF_32_SHARADA_LETTER_TA 0x111A0 #define T_UTF_32_SHARADA_LETTER_THA 0x111A1 #define T_UTF_32_SHARADA_LETTER_DA 0x111A2 #define T_UTF_32_SHARADA_LETTER_DHA 0x111A3 #define T_UTF_32_SHARADA_LETTER_NA 0x111A4 #define T_UTF_32_SHARADA_LETTER_PA 0x111A5 #define T_UTF_32_SHARADA_LETTER_PHA 0x111A6 #define T_UTF_32_SHARADA_LETTER_BA 0x111A7 #define T_UTF_32_SHARADA_LETTER_BHA 0x111A8 #define T_UTF_32_SHARADA_LETTER_MA 0x111A9 #define T_UTF_32_SHARADA_LETTER_YA 0x111AA #define T_UTF_32_SHARADA_LETTER_RA 0x111AB #define T_UTF_32_SHARADA_LETTER_LA 0x111AC #define T_UTF_32_SHARADA_LETTER_LLA 0x111AD #define T_UTF_32_SHARADA_LETTER_VA 0x111AE #define T_UTF_32_SHARADA_LETTER_SHA 0x111AF #define T_UTF_32_SHARADA_LETTER_SSA 0x111B0 #define T_UTF_32_SHARADA_LETTER_SA 0x111B1 #define T_UTF_32_SHARADA_LETTER_HA 0x111B2 #define T_UTF_32_SHARADA_VOWEL_SIGN_AA 0x111B3 #define T_UTF_32_SHARADA_VOWEL_SIGN_I 0x111B4 #define T_UTF_32_SHARADA_VOWEL_SIGN_II 0x111B5 #define T_UTF_32_SHARADA_VOWEL_SIGN_U 0x111B6 #define T_UTF_32_SHARADA_VOWEL_SIGN_UU 0x111B7 #define T_UTF_32_SHARADA_VOWEL_SIGN_VOCALIC_R 0x111B8 #define T_UTF_32_SHARADA_VOWEL_SIGN_VOCALIC_RR 0x111B9 #define T_UTF_32_SHARADA_VOWEL_SIGN_VOCALIC_L 0x111BA #define T_UTF_32_SHARADA_VOWEL_SIGN_VOCALIC_LL 0x111BB #define T_UTF_32_SHARADA_VOWEL_SIGN_E 0x111BC #define T_UTF_32_SHARADA_VOWEL_SIGN_AI 0x111BD #define T_UTF_32_SHARADA_VOWEL_SIGN_O 0x111BE #define T_UTF_32_SHARADA_VOWEL_SIGN_AU 0x111BF #define T_UTF_32_SHARADA_SIGN_VIRAMA 0x111C0 #define T_UTF_32_SHARADA_SIGN_AVAGRAHA 0x111C1 #define T_UTF_32_SHARADA_SIGN_JIHVAMULIYA 0x111C2 #define T_UTF_32_SHARADA_SIGN_UPADHMANIYA 0x111C3 #define T_UTF_32_SHARADA_OM 0x111C4 #define T_UTF_32_SHARADA_DANDA 0x111C5 #define T_UTF_32_SHARADA_DOUBLE_DANDA 0x111C6 #define T_UTF_32_SHARADA_ABBREVIATION_SIGN 0x111C7 #define T_UTF_32_SHARADA_SEPARATOR 0x111C8 #define T_UTF_32_SHARADA_SANDHI_MARK 0x111C9 #define T_UTF_32_SHARADA_SIGN_NUKTA 0x111CA #define T_UTF_32_SHARADA_VOWEL_MODIFIER_MARK 0x111CB #define T_UTF_32_SHARADA_EXTRA_SHORT_VOWEL_MARK 0x111CC #define T_UTF_32_SHARADA_SUTRA_MARK 0x111CD #define T_UTF_32_SHARADA_DIGIT_ZERO 0x111D0 #define T_UTF_32_SHARADA_DIGIT_ONE 0x111D1 #define T_UTF_32_SHARADA_DIGIT_TWO 0x111D2 #define T_UTF_32_SHARADA_DIGIT_THREE 0x111D3 #define T_UTF_32_SHARADA_DIGIT_FOUR 0x111D4 #define T_UTF_32_SHARADA_DIGIT_FIVE 0x111D5 #define T_UTF_32_SHARADA_DIGIT_SIX 0x111D6 #define T_UTF_32_SHARADA_DIGIT_SEVEN 0x111D7 #define T_UTF_32_SHARADA_DIGIT_EIGHT 0x111D8 #define T_UTF_32_SHARADA_DIGIT_NINE 0x111D9 #define T_UTF_32_SHARADA_EKAM 0x111DA #define T_UTF_32_SHARADA_SIGN_SIDDHAM 0x111DB #define T_UTF_32_SHARADA_HEADSTROKE 0x111DC #define T_UTF_32_SHARADA_CONTINUATION_SIGN 0x111DD #define T_UTF_32_SHARADA_SECTION_MARK_1 0x111DE #define T_UTF_32_SHARADA_SECTION_MARK_2 0x111DF #define T_UTF_32_SINHALA_ARCHAIC_DIGIT_ONE 0x111E1 #define T_UTF_32_SINHALA_ARCHAIC_DIGIT_TWO 0x111E2 #define T_UTF_32_SINHALA_ARCHAIC_DIGIT_THREE 0x111E3 #define T_UTF_32_SINHALA_ARCHAIC_DIGIT_FOUR 0x111E4 #define T_UTF_32_SINHALA_ARCHAIC_DIGIT_FIVE 0x111E5 #define T_UTF_32_SINHALA_ARCHAIC_DIGIT_SIX 0x111E6 #define T_UTF_32_SINHALA_ARCHAIC_DIGIT_SEVEN 0x111E7 #define T_UTF_32_SINHALA_ARCHAIC_DIGIT_EIGHT 0x111E8 #define T_UTF_32_SINHALA_ARCHAIC_DIGIT_NINE 0x111E9 #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_TEN 0x111EA #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_TWENTY 0x111EB #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_THIRTY 0x111EC #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_FORTY 0x111ED #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_FIFTY 0x111EE #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_SIXTY 0x111EF #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_SEVENTY 0x111F0 #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_EIGHTY 0x111F1 #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_NINETY 0x111F2 #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_ONE_HUNDRED 0x111F3 #define T_UTF_32_SINHALA_ARCHAIC_NUMBER_ONE_THOUSAND 0x111F4 #define T_UTF_32_KHOJKI_LETTER_A 0x11200 #define T_UTF_32_KHOJKI_LETTER_AA 0x11201 #define T_UTF_32_KHOJKI_LETTER_I 0x11202 #define T_UTF_32_KHOJKI_LETTER_U 0x11203 #define T_UTF_32_KHOJKI_LETTER_E 0x11204 #define T_UTF_32_KHOJKI_LETTER_AI 0x11205 #define T_UTF_32_KHOJKI_LETTER_O 0x11206 #define T_UTF_32_KHOJKI_LETTER_AU 0x11207 #define T_UTF_32_KHOJKI_LETTER_KA 0x11208 #define T_UTF_32_KHOJKI_LETTER_KHA 0x11209 #define T_UTF_32_KHOJKI_LETTER_GA 0x1120A #define T_UTF_32_KHOJKI_LETTER_GGA 0x1120B #define T_UTF_32_KHOJKI_LETTER_GHA 0x1120C #define T_UTF_32_KHOJKI_LETTER_NGA 0x1120D #define T_UTF_32_KHOJKI_LETTER_CA 0x1120E #define T_UTF_32_KHOJKI_LETTER_CHA 0x1120F #define T_UTF_32_KHOJKI_LETTER_JA 0x11210 #define T_UTF_32_KHOJKI_LETTER_JJA 0x11211 #define T_UTF_32_KHOJKI_LETTER_NYA 0x11213 #define T_UTF_32_KHOJKI_LETTER_TTA 0x11214 #define T_UTF_32_KHOJKI_LETTER_TTHA 0x11215 #define T_UTF_32_KHOJKI_LETTER_DDA 0x11216 #define T_UTF_32_KHOJKI_LETTER_DDHA 0x11217 #define T_UTF_32_KHOJKI_LETTER_NNA 0x11218 #define T_UTF_32_KHOJKI_LETTER_TA 0x11219 #define T_UTF_32_KHOJKI_LETTER_THA 0x1121A #define T_UTF_32_KHOJKI_LETTER_DA 0x1121B #define T_UTF_32_KHOJKI_LETTER_DDDA 0x1121C #define T_UTF_32_KHOJKI_LETTER_DHA 0x1121D #define T_UTF_32_KHOJKI_LETTER_NA 0x1121E #define T_UTF_32_KHOJKI_LETTER_PA 0x1121F #define T_UTF_32_KHOJKI_LETTER_PHA 0x11220 #define T_UTF_32_KHOJKI_LETTER_BA 0x11221 #define T_UTF_32_KHOJKI_LETTER_BBA 0x11222 #define T_UTF_32_KHOJKI_LETTER_BHA 0x11223 #define T_UTF_32_KHOJKI_LETTER_MA 0x11224 #define T_UTF_32_KHOJKI_LETTER_YA 0x11225 #define T_UTF_32_KHOJKI_LETTER_RA 0x11226 #define T_UTF_32_KHOJKI_LETTER_LA 0x11227 #define T_UTF_32_KHOJKI_LETTER_VA 0x11228 #define T_UTF_32_KHOJKI_LETTER_SA 0x11229 #define T_UTF_32_KHOJKI_LETTER_HA 0x1122A #define T_UTF_32_KHOJKI_LETTER_LLA 0x1122B #define T_UTF_32_KHOJKI_VOWEL_SIGN_AA 0x1122C #define T_UTF_32_KHOJKI_VOWEL_SIGN_I 0x1122D #define T_UTF_32_KHOJKI_VOWEL_SIGN_II 0x1122E #define T_UTF_32_KHOJKI_VOWEL_SIGN_U 0x1122F #define T_UTF_32_KHOJKI_VOWEL_SIGN_E 0x11230 #define T_UTF_32_KHOJKI_VOWEL_SIGN_AI 0x11231 #define T_UTF_32_KHOJKI_VOWEL_SIGN_O 0x11232 #define T_UTF_32_KHOJKI_VOWEL_SIGN_AU 0x11233 #define T_UTF_32_KHOJKI_SIGN_ANUSVARA 0x11234 #define T_UTF_32_KHOJKI_SIGN_VIRAMA 0x11235 #define T_UTF_32_KHOJKI_SIGN_NUKTA 0x11236 #define T_UTF_32_KHOJKI_SIGN_SHADDA 0x11237 #define T_UTF_32_KHOJKI_DANDA 0x11238 #define T_UTF_32_KHOJKI_DOUBLE_DANDA 0x11239 #define T_UTF_32_KHOJKI_WORD_SEPARATOR 0x1123A #define T_UTF_32_KHOJKI_SECTION_MARK 0x1123B #define T_UTF_32_KHOJKI_DOUBLE_SECTION_MARK 0x1123C #define T_UTF_32_KHOJKI_ABBREVIATION_SIGN 0x1123D #define T_UTF_32_KHOJKI_SIGN_SUKUN 0x1123E #define T_UTF_32_MULTANI_LETTER_A 0x11280 #define T_UTF_32_MULTANI_LETTER_I 0x11281 #define T_UTF_32_MULTANI_LETTER_U 0x11282 #define T_UTF_32_MULTANI_LETTER_E 0x11283 #define T_UTF_32_MULTANI_LETTER_KA 0x11284 #define T_UTF_32_MULTANI_LETTER_KHA 0x11285 #define T_UTF_32_MULTANI_LETTER_GA 0x11286 #define T_UTF_32_MULTANI_LETTER_GHA 0x11288 #define T_UTF_32_MULTANI_LETTER_CA 0x1128A #define T_UTF_32_MULTANI_LETTER_CHA 0x1128B #define T_UTF_32_MULTANI_LETTER_JA 0x1128C #define T_UTF_32_MULTANI_LETTER_JJA 0x1128D #define T_UTF_32_MULTANI_LETTER_NYA 0x1128F #define T_UTF_32_MULTANI_LETTER_TTA 0x11290 #define T_UTF_32_MULTANI_LETTER_TTHA 0x11291 #define T_UTF_32_MULTANI_LETTER_DDA 0x11292 #define T_UTF_32_MULTANI_LETTER_DDDA 0x11293 #define T_UTF_32_MULTANI_LETTER_DDHA 0x11294 #define T_UTF_32_MULTANI_LETTER_NNA 0x11295 #define T_UTF_32_MULTANI_LETTER_TA 0x11296 #define T_UTF_32_MULTANI_LETTER_THA 0x11297 #define T_UTF_32_MULTANI_LETTER_DA 0x11298 #define T_UTF_32_MULTANI_LETTER_DHA 0x11299 #define T_UTF_32_MULTANI_LETTER_NA 0x1129A #define T_UTF_32_MULTANI_LETTER_PA 0x1129B #define T_UTF_32_MULTANI_LETTER_PHA 0x1129C #define T_UTF_32_MULTANI_LETTER_BA 0x1129D #define T_UTF_32_MULTANI_LETTER_BHA 0x1129F #define T_UTF_32_MULTANI_LETTER_MA 0x112A0 #define T_UTF_32_MULTANI_LETTER_YA 0x112A1 #define T_UTF_32_MULTANI_LETTER_RA 0x112A2 #define T_UTF_32_MULTANI_LETTER_LA 0x112A3 #define T_UTF_32_MULTANI_LETTER_VA 0x112A4 #define T_UTF_32_MULTANI_LETTER_SA 0x112A5 #define T_UTF_32_MULTANI_LETTER_HA 0x112A6 #define T_UTF_32_MULTANI_LETTER_RRA 0x112A7 #define T_UTF_32_MULTANI_LETTER_RHA 0x112A8 #define T_UTF_32_MULTANI_SECTION_MARK 0x112A9 #define T_UTF_32_KHUDAWADI_LETTER_A 0x112B0 #define T_UTF_32_KHUDAWADI_LETTER_AA 0x112B1 #define T_UTF_32_KHUDAWADI_LETTER_I 0x112B2 #define T_UTF_32_KHUDAWADI_LETTER_II 0x112B3 #define T_UTF_32_KHUDAWADI_LETTER_U 0x112B4 #define T_UTF_32_KHUDAWADI_LETTER_UU 0x112B5 #define T_UTF_32_KHUDAWADI_LETTER_E 0x112B6 #define T_UTF_32_KHUDAWADI_LETTER_AI 0x112B7 #define T_UTF_32_KHUDAWADI_LETTER_O 0x112B8 #define T_UTF_32_KHUDAWADI_LETTER_AU 0x112B9 #define T_UTF_32_KHUDAWADI_LETTER_KA 0x112BA #define T_UTF_32_KHUDAWADI_LETTER_KHA 0x112BB #define T_UTF_32_KHUDAWADI_LETTER_GA 0x112BC #define T_UTF_32_KHUDAWADI_LETTER_GGA 0x112BD #define T_UTF_32_KHUDAWADI_LETTER_GHA 0x112BE #define T_UTF_32_KHUDAWADI_LETTER_NGA 0x112BF #define T_UTF_32_KHUDAWADI_LETTER_CA 0x112C0 #define T_UTF_32_KHUDAWADI_LETTER_CHA 0x112C1 #define T_UTF_32_KHUDAWADI_LETTER_JA 0x112C2 #define T_UTF_32_KHUDAWADI_LETTER_JJA 0x112C3 #define T_UTF_32_KHUDAWADI_LETTER_JHA 0x112C4 #define T_UTF_32_KHUDAWADI_LETTER_NYA 0x112C5 #define T_UTF_32_KHUDAWADI_LETTER_TTA 0x112C6 #define T_UTF_32_KHUDAWADI_LETTER_TTHA 0x112C7 #define T_UTF_32_KHUDAWADI_LETTER_DDA 0x112C8 #define T_UTF_32_KHUDAWADI_LETTER_DDDA 0x112C9 #define T_UTF_32_KHUDAWADI_LETTER_RRA 0x112CA #define T_UTF_32_KHUDAWADI_LETTER_DDHA 0x112CB #define T_UTF_32_KHUDAWADI_LETTER_NNA 0x112CC #define T_UTF_32_KHUDAWADI_LETTER_TA 0x112CD #define T_UTF_32_KHUDAWADI_LETTER_THA 0x112CE #define T_UTF_32_KHUDAWADI_LETTER_DA 0x112CF #define T_UTF_32_KHUDAWADI_LETTER_DHA 0x112D0 #define T_UTF_32_KHUDAWADI_LETTER_NA 0x112D1 #define T_UTF_32_KHUDAWADI_LETTER_PA 0x112D2 #define T_UTF_32_KHUDAWADI_LETTER_PHA 0x112D3 #define T_UTF_32_KHUDAWADI_LETTER_BA 0x112D4 #define T_UTF_32_KHUDAWADI_LETTER_BBA 0x112D5 #define T_UTF_32_KHUDAWADI_LETTER_BHA 0x112D6 #define T_UTF_32_KHUDAWADI_LETTER_MA 0x112D7 #define T_UTF_32_KHUDAWADI_LETTER_YA 0x112D8 #define T_UTF_32_KHUDAWADI_LETTER_RA 0x112D9 #define T_UTF_32_KHUDAWADI_LETTER_LA 0x112DA #define T_UTF_32_KHUDAWADI_LETTER_VA 0x112DB #define T_UTF_32_KHUDAWADI_LETTER_SHA 0x112DC #define T_UTF_32_KHUDAWADI_LETTER_SA 0x112DD #define T_UTF_32_KHUDAWADI_LETTER_HA 0x112DE #define T_UTF_32_KHUDAWADI_SIGN_ANUSVARA 0x112DF #define T_UTF_32_KHUDAWADI_VOWEL_SIGN_AA 0x112E0 #define T_UTF_32_KHUDAWADI_VOWEL_SIGN_I 0x112E1 #define T_UTF_32_KHUDAWADI_VOWEL_SIGN_II 0x112E2 #define T_UTF_32_KHUDAWADI_VOWEL_SIGN_U 0x112E3 #define T_UTF_32_KHUDAWADI_VOWEL_SIGN_UU 0x112E4 #define T_UTF_32_KHUDAWADI_VOWEL_SIGN_E 0x112E5 #define T_UTF_32_KHUDAWADI_VOWEL_SIGN_AI 0x112E6 #define T_UTF_32_KHUDAWADI_VOWEL_SIGN_O 0x112E7 #define T_UTF_32_KHUDAWADI_VOWEL_SIGN_AU 0x112E8 #define T_UTF_32_KHUDAWADI_SIGN_NUKTA 0x112E9 #define T_UTF_32_KHUDAWADI_SIGN_VIRAMA 0x112EA #define T_UTF_32_KHUDAWADI_DIGIT_ZERO 0x112F0 #define T_UTF_32_KHUDAWADI_DIGIT_ONE 0x112F1 #define T_UTF_32_KHUDAWADI_DIGIT_TWO 0x112F2 #define T_UTF_32_KHUDAWADI_DIGIT_THREE 0x112F3 #define T_UTF_32_KHUDAWADI_DIGIT_FOUR 0x112F4 #define T_UTF_32_KHUDAWADI_DIGIT_FIVE 0x112F5 #define T_UTF_32_KHUDAWADI_DIGIT_SIX 0x112F6 #define T_UTF_32_KHUDAWADI_DIGIT_SEVEN 0x112F7 #define T_UTF_32_KHUDAWADI_DIGIT_EIGHT 0x112F8 #define T_UTF_32_KHUDAWADI_DIGIT_NINE 0x112F9 #define T_UTF_32_GRANTHA_SIGN_COMBINING_ANUSVARA_ABOVE 0x11300 #define T_UTF_32_GRANTHA_SIGN_CANDRABINDU 0x11301 #define T_UTF_32_GRANTHA_SIGN_ANUSVARA 0x11302 #define T_UTF_32_GRANTHA_SIGN_VISARGA 0x11303 #define T_UTF_32_GRANTHA_LETTER_A 0x11305 #define T_UTF_32_GRANTHA_LETTER_AA 0x11306 #define T_UTF_32_GRANTHA_LETTER_I 0x11307 #define T_UTF_32_GRANTHA_LETTER_II 0x11308 #define T_UTF_32_GRANTHA_LETTER_U 0x11309 #define T_UTF_32_GRANTHA_LETTER_UU 0x1130A #define T_UTF_32_GRANTHA_LETTER_VOCALIC_R 0x1130B #define T_UTF_32_GRANTHA_LETTER_VOCALIC_L 0x1130C #define T_UTF_32_GRANTHA_LETTER_EE 0x1130F #define T_UTF_32_GRANTHA_LETTER_AI 0x11310 #define T_UTF_32_GRANTHA_LETTER_OO 0x11313 #define T_UTF_32_GRANTHA_LETTER_AU 0x11314 #define T_UTF_32_GRANTHA_LETTER_KA 0x11315 #define T_UTF_32_GRANTHA_LETTER_KHA 0x11316 #define T_UTF_32_GRANTHA_LETTER_GA 0x11317 #define T_UTF_32_GRANTHA_LETTER_GHA 0x11318 #define T_UTF_32_GRANTHA_LETTER_NGA 0x11319 #define T_UTF_32_GRANTHA_LETTER_CA 0x1131A #define T_UTF_32_GRANTHA_LETTER_CHA 0x1131B #define T_UTF_32_GRANTHA_LETTER_JA 0x1131C #define T_UTF_32_GRANTHA_LETTER_JHA 0x1131D #define T_UTF_32_GRANTHA_LETTER_NYA 0x1131E #define T_UTF_32_GRANTHA_LETTER_TTA 0x1131F #define T_UTF_32_GRANTHA_LETTER_TTHA 0x11320 #define T_UTF_32_GRANTHA_LETTER_DDA 0x11321 #define T_UTF_32_GRANTHA_LETTER_DDHA 0x11322 #define T_UTF_32_GRANTHA_LETTER_NNA 0x11323 #define T_UTF_32_GRANTHA_LETTER_TA 0x11324 #define T_UTF_32_GRANTHA_LETTER_THA 0x11325 #define T_UTF_32_GRANTHA_LETTER_DA 0x11326 #define T_UTF_32_GRANTHA_LETTER_DHA 0x11327 #define T_UTF_32_GRANTHA_LETTER_NA 0x11328 #define T_UTF_32_GRANTHA_LETTER_PA 0x1132A #define T_UTF_32_GRANTHA_LETTER_PHA 0x1132B #define T_UTF_32_GRANTHA_LETTER_BA 0x1132C #define T_UTF_32_GRANTHA_LETTER_BHA 0x1132D #define T_UTF_32_GRANTHA_LETTER_MA 0x1132E #define T_UTF_32_GRANTHA_LETTER_YA 0x1132F #define T_UTF_32_GRANTHA_LETTER_RA 0x11330 #define T_UTF_32_GRANTHA_LETTER_LA 0x11332 #define T_UTF_32_GRANTHA_LETTER_LLA 0x11333 #define T_UTF_32_GRANTHA_LETTER_VA 0x11335 #define T_UTF_32_GRANTHA_LETTER_SHA 0x11336 #define T_UTF_32_GRANTHA_LETTER_SSA 0x11337 #define T_UTF_32_GRANTHA_LETTER_SA 0x11338 #define T_UTF_32_GRANTHA_LETTER_HA 0x11339 #define T_UTF_32_GRANTHA_SIGN_NUKTA 0x1133C #define T_UTF_32_GRANTHA_SIGN_AVAGRAHA 0x1133D #define T_UTF_32_GRANTHA_VOWEL_SIGN_AA 0x1133E #define T_UTF_32_GRANTHA_VOWEL_SIGN_I 0x1133F #define T_UTF_32_GRANTHA_VOWEL_SIGN_II 0x11340 #define T_UTF_32_GRANTHA_VOWEL_SIGN_U 0x11341 #define T_UTF_32_GRANTHA_VOWEL_SIGN_UU 0x11342 #define T_UTF_32_GRANTHA_VOWEL_SIGN_VOCALIC_R 0x11343 #define T_UTF_32_GRANTHA_VOWEL_SIGN_VOCALIC_RR 0x11344 #define T_UTF_32_GRANTHA_VOWEL_SIGN_EE 0x11347 #define T_UTF_32_GRANTHA_VOWEL_SIGN_AI 0x11348 #define T_UTF_32_GRANTHA_VOWEL_SIGN_OO 0x1134B #define T_UTF_32_GRANTHA_VOWEL_SIGN_AU 0x1134C #define T_UTF_32_GRANTHA_SIGN_VIRAMA 0x1134D #define T_UTF_32_GRANTHA_OM 0x11350 #define T_UTF_32_GRANTHA_AU_LENGTH_MARK 0x11357 #define T_UTF_32_GRANTHA_SIGN_PLUTA 0x1135D #define T_UTF_32_GRANTHA_LETTER_VEDIC_ANUSVARA 0x1135E #define T_UTF_32_GRANTHA_LETTER_VEDIC_DOUBLE_ANUSVARA 0x1135F #define T_UTF_32_GRANTHA_LETTER_VOCALIC_RR 0x11360 #define T_UTF_32_GRANTHA_LETTER_VOCALIC_LL 0x11361 #define T_UTF_32_GRANTHA_VOWEL_SIGN_VOCALIC_L 0x11362 #define T_UTF_32_GRANTHA_VOWEL_SIGN_VOCALIC_LL 0x11363 #define T_UTF_32_COMBINING_GRANTHA_DIGIT_ZERO 0x11366 #define T_UTF_32_COMBINING_GRANTHA_DIGIT_ONE 0x11367 #define T_UTF_32_COMBINING_GRANTHA_DIGIT_TWO 0x11368 #define T_UTF_32_COMBINING_GRANTHA_DIGIT_THREE 0x11369 #define T_UTF_32_COMBINING_GRANTHA_DIGIT_FOUR 0x1136A #define T_UTF_32_COMBINING_GRANTHA_DIGIT_FIVE 0x1136B #define T_UTF_32_COMBINING_GRANTHA_DIGIT_SIX 0x1136C #define T_UTF_32_COMBINING_GRANTHA_LETTER_A 0x11370 #define T_UTF_32_COMBINING_GRANTHA_LETTER_KA 0x11371 #define T_UTF_32_COMBINING_GRANTHA_LETTER_NA 0x11372 #define T_UTF_32_COMBINING_GRANTHA_LETTER_VI 0x11373 #define T_UTF_32_COMBINING_GRANTHA_LETTER_PA 0x11374 #define T_UTF_32_NEWA_LETTER_A 0x11400 #define T_UTF_32_NEWA_LETTER_AA 0x11401 #define T_UTF_32_NEWA_LETTER_I 0x11402 #define T_UTF_32_NEWA_LETTER_II 0x11403 #define T_UTF_32_NEWA_LETTER_U 0x11404 #define T_UTF_32_NEWA_LETTER_UU 0x11405 #define T_UTF_32_NEWA_LETTER_VOCALIC_R 0x11406 #define T_UTF_32_NEWA_LETTER_VOCALIC_RR 0x11407 #define T_UTF_32_NEWA_LETTER_VOCALIC_L 0x11408 #define T_UTF_32_NEWA_LETTER_VOCALIC_LL 0x11409 #define T_UTF_32_NEWA_LETTER_E 0x1140A #define T_UTF_32_NEWA_LETTER_AI 0x1140B #define T_UTF_32_NEWA_LETTER_O 0x1140C #define T_UTF_32_NEWA_LETTER_AU 0x1140D #define T_UTF_32_NEWA_LETTER_KA 0x1140E #define T_UTF_32_NEWA_LETTER_KHA 0x1140F #define T_UTF_32_NEWA_LETTER_GA 0x11410 #define T_UTF_32_NEWA_LETTER_GHA 0x11411 #define T_UTF_32_NEWA_LETTER_NGA 0x11412 #define T_UTF_32_NEWA_LETTER_NGHA 0x11413 #define T_UTF_32_NEWA_LETTER_CA 0x11414 #define T_UTF_32_NEWA_LETTER_CHA 0x11415 #define T_UTF_32_NEWA_LETTER_JA 0x11416 #define T_UTF_32_NEWA_LETTER_JHA 0x11417 #define T_UTF_32_NEWA_LETTER_NYA 0x11418 #define T_UTF_32_NEWA_LETTER_NYHA 0x11419 #define T_UTF_32_NEWA_LETTER_TTA 0x1141A #define T_UTF_32_NEWA_LETTER_TTHA 0x1141B #define T_UTF_32_NEWA_LETTER_DDA 0x1141C #define T_UTF_32_NEWA_LETTER_DDHA 0x1141D #define T_UTF_32_NEWA_LETTER_NNA 0x1141E #define T_UTF_32_NEWA_LETTER_TA 0x1141F #define T_UTF_32_NEWA_LETTER_THA 0x11420 #define T_UTF_32_NEWA_LETTER_DA 0x11421 #define T_UTF_32_NEWA_LETTER_DHA 0x11422 #define T_UTF_32_NEWA_LETTER_NA 0x11423 #define T_UTF_32_NEWA_LETTER_NHA 0x11424 #define T_UTF_32_NEWA_LETTER_PA 0x11425 #define T_UTF_32_NEWA_LETTER_PHA 0x11426 #define T_UTF_32_NEWA_LETTER_BA 0x11427 #define T_UTF_32_NEWA_LETTER_BHA 0x11428 #define T_UTF_32_NEWA_LETTER_MA 0x11429 #define T_UTF_32_NEWA_LETTER_MHA 0x1142A #define T_UTF_32_NEWA_LETTER_YA 0x1142B #define T_UTF_32_NEWA_LETTER_RA 0x1142C #define T_UTF_32_NEWA_LETTER_RHA 0x1142D #define T_UTF_32_NEWA_LETTER_LA 0x1142E #define T_UTF_32_NEWA_LETTER_LHA 0x1142F #define T_UTF_32_NEWA_LETTER_WA 0x11430 #define T_UTF_32_NEWA_LETTER_SHA 0x11431 #define T_UTF_32_NEWA_LETTER_SSA 0x11432 #define T_UTF_32_NEWA_LETTER_SA 0x11433 #define T_UTF_32_NEWA_LETTER_HA 0x11434 #define T_UTF_32_NEWA_VOWEL_SIGN_AA 0x11435 #define T_UTF_32_NEWA_VOWEL_SIGN_I 0x11436 #define T_UTF_32_NEWA_VOWEL_SIGN_II 0x11437 #define T_UTF_32_NEWA_VOWEL_SIGN_U 0x11438 #define T_UTF_32_NEWA_VOWEL_SIGN_UU 0x11439 #define T_UTF_32_NEWA_VOWEL_SIGN_VOCALIC_R 0x1143A #define T_UTF_32_NEWA_VOWEL_SIGN_VOCALIC_RR 0x1143B #define T_UTF_32_NEWA_VOWEL_SIGN_VOCALIC_L 0x1143C #define T_UTF_32_NEWA_VOWEL_SIGN_VOCALIC_LL 0x1143D #define T_UTF_32_NEWA_VOWEL_SIGN_E 0x1143E #define T_UTF_32_NEWA_VOWEL_SIGN_AI 0x1143F #define T_UTF_32_NEWA_VOWEL_SIGN_O 0x11440 #define T_UTF_32_NEWA_VOWEL_SIGN_AU 0x11441 #define T_UTF_32_NEWA_SIGN_VIRAMA 0x11442 #define T_UTF_32_NEWA_SIGN_CANDRABINDU 0x11443 #define T_UTF_32_NEWA_SIGN_ANUSVARA 0x11444 #define T_UTF_32_NEWA_SIGN_VISARGA 0x11445 #define T_UTF_32_NEWA_SIGN_NUKTA 0x11446 #define T_UTF_32_NEWA_SIGN_AVAGRAHA 0x11447 #define T_UTF_32_NEWA_SIGN_FINAL_ANUSVARA 0x11448 #define T_UTF_32_NEWA_OM 0x11449 #define T_UTF_32_NEWA_SIDDHI 0x1144A #define T_UTF_32_NEWA_DANDA 0x1144B #define T_UTF_32_NEWA_DOUBLE_DANDA 0x1144C #define T_UTF_32_NEWA_COMMA 0x1144D #define T_UTF_32_NEWA_GAP_FILLER 0x1144E #define T_UTF_32_NEWA_ABBREVIATION_SIGN 0x1144F #define T_UTF_32_NEWA_DIGIT_ZERO 0x11450 #define T_UTF_32_NEWA_DIGIT_ONE 0x11451 #define T_UTF_32_NEWA_DIGIT_TWO 0x11452 #define T_UTF_32_NEWA_DIGIT_THREE 0x11453 #define T_UTF_32_NEWA_DIGIT_FOUR 0x11454 #define T_UTF_32_NEWA_DIGIT_FIVE 0x11455 #define T_UTF_32_NEWA_DIGIT_SIX 0x11456 #define T_UTF_32_NEWA_DIGIT_SEVEN 0x11457 #define T_UTF_32_NEWA_DIGIT_EIGHT 0x11458 #define T_UTF_32_NEWA_DIGIT_NINE 0x11459 #define T_UTF_32_NEWA_PLACEHOLDER_MARK 0x1145B #define T_UTF_32_NEWA_INSERTION_SIGN 0x1145D #define T_UTF_32_TIRHUTA_ANJI 0x11480 #define T_UTF_32_TIRHUTA_LETTER_A 0x11481 #define T_UTF_32_TIRHUTA_LETTER_AA 0x11482 #define T_UTF_32_TIRHUTA_LETTER_I 0x11483 #define T_UTF_32_TIRHUTA_LETTER_II 0x11484 #define T_UTF_32_TIRHUTA_LETTER_U 0x11485 #define T_UTF_32_TIRHUTA_LETTER_UU 0x11486 #define T_UTF_32_TIRHUTA_LETTER_VOCALIC_R 0x11487 #define T_UTF_32_TIRHUTA_LETTER_VOCALIC_RR 0x11488 #define T_UTF_32_TIRHUTA_LETTER_VOCALIC_L 0x11489 #define T_UTF_32_TIRHUTA_LETTER_VOCALIC_LL 0x1148A #define T_UTF_32_TIRHUTA_LETTER_E 0x1148B #define T_UTF_32_TIRHUTA_LETTER_AI 0x1148C #define T_UTF_32_TIRHUTA_LETTER_O 0x1148D #define T_UTF_32_TIRHUTA_LETTER_AU 0x1148E #define T_UTF_32_TIRHUTA_LETTER_KA 0x1148F #define T_UTF_32_TIRHUTA_LETTER_KHA 0x11490 #define T_UTF_32_TIRHUTA_LETTER_GA 0x11491 #define T_UTF_32_TIRHUTA_LETTER_GHA 0x11492 #define T_UTF_32_TIRHUTA_LETTER_NGA 0x11493 #define T_UTF_32_TIRHUTA_LETTER_CA 0x11494 #define T_UTF_32_TIRHUTA_LETTER_CHA 0x11495 #define T_UTF_32_TIRHUTA_LETTER_JA 0x11496 #define T_UTF_32_TIRHUTA_LETTER_JHA 0x11497 #define T_UTF_32_TIRHUTA_LETTER_NYA 0x11498 #define T_UTF_32_TIRHUTA_LETTER_TTA 0x11499 #define T_UTF_32_TIRHUTA_LETTER_TTHA 0x1149A #define T_UTF_32_TIRHUTA_LETTER_DDA 0x1149B #define T_UTF_32_TIRHUTA_LETTER_DDHA 0x1149C #define T_UTF_32_TIRHUTA_LETTER_NNA 0x1149D #define T_UTF_32_TIRHUTA_LETTER_TA 0x1149E #define T_UTF_32_TIRHUTA_LETTER_THA 0x1149F #define T_UTF_32_TIRHUTA_LETTER_DA 0x114A0 #define T_UTF_32_TIRHUTA_LETTER_DHA 0x114A1 #define T_UTF_32_TIRHUTA_LETTER_NA 0x114A2 #define T_UTF_32_TIRHUTA_LETTER_PA 0x114A3 #define T_UTF_32_TIRHUTA_LETTER_PHA 0x114A4 #define T_UTF_32_TIRHUTA_LETTER_BA 0x114A5 #define T_UTF_32_TIRHUTA_LETTER_BHA 0x114A6 #define T_UTF_32_TIRHUTA_LETTER_MA 0x114A7 #define T_UTF_32_TIRHUTA_LETTER_YA 0x114A8 #define T_UTF_32_TIRHUTA_LETTER_RA 0x114A9 #define T_UTF_32_TIRHUTA_LETTER_LA 0x114AA #define T_UTF_32_TIRHUTA_LETTER_VA 0x114AB #define T_UTF_32_TIRHUTA_LETTER_SHA 0x114AC #define T_UTF_32_TIRHUTA_LETTER_SSA 0x114AD #define T_UTF_32_TIRHUTA_LETTER_SA 0x114AE #define T_UTF_32_TIRHUTA_LETTER_HA 0x114AF #define T_UTF_32_TIRHUTA_VOWEL_SIGN_AA 0x114B0 #define T_UTF_32_TIRHUTA_VOWEL_SIGN_I 0x114B1 #define T_UTF_32_TIRHUTA_VOWEL_SIGN_II 0x114B2 #define T_UTF_32_TIRHUTA_VOWEL_SIGN_U 0x114B3 #define T_UTF_32_TIRHUTA_VOWEL_SIGN_UU 0x114B4 #define T_UTF_32_TIRHUTA_VOWEL_SIGN_VOCALIC_R 0x114B5 #define T_UTF_32_TIRHUTA_VOWEL_SIGN_VOCALIC_RR 0x114B6 #define T_UTF_32_TIRHUTA_VOWEL_SIGN_VOCALIC_L 0x114B7 #define T_UTF_32_TIRHUTA_VOWEL_SIGN_VOCALIC_LL 0x114B8 #define T_UTF_32_TIRHUTA_VOWEL_SIGN_E 0x114B9 #define T_UTF_32_TIRHUTA_VOWEL_SIGN_SHORT_E 0x114BA #define T_UTF_32_TIRHUTA_VOWEL_SIGN_AI 0x114BB #define T_UTF_32_TIRHUTA_VOWEL_SIGN_O 0x114BC #define T_UTF_32_TIRHUTA_VOWEL_SIGN_SHORT_O 0x114BD #define T_UTF_32_TIRHUTA_VOWEL_SIGN_AU 0x114BE #define T_UTF_32_TIRHUTA_SIGN_CANDRABINDU 0x114BF #define T_UTF_32_TIRHUTA_SIGN_ANUSVARA 0x114C0 #define T_UTF_32_TIRHUTA_SIGN_VISARGA 0x114C1 #define T_UTF_32_TIRHUTA_SIGN_VIRAMA 0x114C2 #define T_UTF_32_TIRHUTA_SIGN_NUKTA 0x114C3 #define T_UTF_32_TIRHUTA_SIGN_AVAGRAHA 0x114C4 #define T_UTF_32_TIRHUTA_GVANG 0x114C5 #define T_UTF_32_TIRHUTA_ABBREVIATION_SIGN 0x114C6 #define T_UTF_32_TIRHUTA_OM 0x114C7 #define T_UTF_32_TIRHUTA_DIGIT_ZERO 0x114D0 #define T_UTF_32_TIRHUTA_DIGIT_ONE 0x114D1 #define T_UTF_32_TIRHUTA_DIGIT_TWO 0x114D2 #define T_UTF_32_TIRHUTA_DIGIT_THREE 0x114D3 #define T_UTF_32_TIRHUTA_DIGIT_FOUR 0x114D4 #define T_UTF_32_TIRHUTA_DIGIT_FIVE 0x114D5 #define T_UTF_32_TIRHUTA_DIGIT_SIX 0x114D6 #define T_UTF_32_TIRHUTA_DIGIT_SEVEN 0x114D7 #define T_UTF_32_TIRHUTA_DIGIT_EIGHT 0x114D8 #define T_UTF_32_TIRHUTA_DIGIT_NINE 0x114D9 #define T_UTF_32_SIDDHAM_LETTER_A 0x11580 #define T_UTF_32_SIDDHAM_LETTER_AA 0x11581 #define T_UTF_32_SIDDHAM_LETTER_I 0x11582 #define T_UTF_32_SIDDHAM_LETTER_II 0x11583 #define T_UTF_32_SIDDHAM_LETTER_U 0x11584 #define T_UTF_32_SIDDHAM_LETTER_UU 0x11585 #define T_UTF_32_SIDDHAM_LETTER_VOCALIC_R 0x11586 #define T_UTF_32_SIDDHAM_LETTER_VOCALIC_RR 0x11587 #define T_UTF_32_SIDDHAM_LETTER_VOCALIC_L 0x11588 #define T_UTF_32_SIDDHAM_LETTER_VOCALIC_LL 0x11589 #define T_UTF_32_SIDDHAM_LETTER_E 0x1158A #define T_UTF_32_SIDDHAM_LETTER_AI 0x1158B #define T_UTF_32_SIDDHAM_LETTER_O 0x1158C #define T_UTF_32_SIDDHAM_LETTER_AU 0x1158D #define T_UTF_32_SIDDHAM_LETTER_KA 0x1158E #define T_UTF_32_SIDDHAM_LETTER_KHA 0x1158F #define T_UTF_32_SIDDHAM_LETTER_GA 0x11590 #define T_UTF_32_SIDDHAM_LETTER_GHA 0x11591 #define T_UTF_32_SIDDHAM_LETTER_NGA 0x11592 #define T_UTF_32_SIDDHAM_LETTER_CA 0x11593 #define T_UTF_32_SIDDHAM_LETTER_CHA 0x11594 #define T_UTF_32_SIDDHAM_LETTER_JA 0x11595 #define T_UTF_32_SIDDHAM_LETTER_JHA 0x11596 #define T_UTF_32_SIDDHAM_LETTER_NYA 0x11597 #define T_UTF_32_SIDDHAM_LETTER_TTA 0x11598 #define T_UTF_32_SIDDHAM_LETTER_TTHA 0x11599 #define T_UTF_32_SIDDHAM_LETTER_DDA 0x1159A #define T_UTF_32_SIDDHAM_LETTER_DDHA 0x1159B #define T_UTF_32_SIDDHAM_LETTER_NNA 0x1159C #define T_UTF_32_SIDDHAM_LETTER_TA 0x1159D #define T_UTF_32_SIDDHAM_LETTER_THA 0x1159E #define T_UTF_32_SIDDHAM_LETTER_DA 0x1159F #define T_UTF_32_SIDDHAM_LETTER_DHA 0x115A0 #define T_UTF_32_SIDDHAM_LETTER_NA 0x115A1 #define T_UTF_32_SIDDHAM_LETTER_PA 0x115A2 #define T_UTF_32_SIDDHAM_LETTER_PHA 0x115A3 #define T_UTF_32_SIDDHAM_LETTER_BA 0x115A4 #define T_UTF_32_SIDDHAM_LETTER_BHA 0x115A5 #define T_UTF_32_SIDDHAM_LETTER_MA 0x115A6 #define T_UTF_32_SIDDHAM_LETTER_YA 0x115A7 #define T_UTF_32_SIDDHAM_LETTER_RA 0x115A8 #define T_UTF_32_SIDDHAM_LETTER_LA 0x115A9 #define T_UTF_32_SIDDHAM_LETTER_VA 0x115AA #define T_UTF_32_SIDDHAM_LETTER_SHA 0x115AB #define T_UTF_32_SIDDHAM_LETTER_SSA 0x115AC #define T_UTF_32_SIDDHAM_LETTER_SA 0x115AD #define T_UTF_32_SIDDHAM_LETTER_HA 0x115AE #define T_UTF_32_SIDDHAM_VOWEL_SIGN_AA 0x115AF #define T_UTF_32_SIDDHAM_VOWEL_SIGN_I 0x115B0 #define T_UTF_32_SIDDHAM_VOWEL_SIGN_II 0x115B1 #define T_UTF_32_SIDDHAM_VOWEL_SIGN_U 0x115B2 #define T_UTF_32_SIDDHAM_VOWEL_SIGN_UU 0x115B3 #define T_UTF_32_SIDDHAM_VOWEL_SIGN_VOCALIC_R 0x115B4 #define T_UTF_32_SIDDHAM_VOWEL_SIGN_VOCALIC_RR 0x115B5 #define T_UTF_32_SIDDHAM_VOWEL_SIGN_E 0x115B8 #define T_UTF_32_SIDDHAM_VOWEL_SIGN_AI 0x115B9 #define T_UTF_32_SIDDHAM_VOWEL_SIGN_O 0x115BA #define T_UTF_32_SIDDHAM_VOWEL_SIGN_AU 0x115BB #define T_UTF_32_SIDDHAM_SIGN_CANDRABINDU 0x115BC #define T_UTF_32_SIDDHAM_SIGN_ANUSVARA 0x115BD #define T_UTF_32_SIDDHAM_SIGN_VISARGA 0x115BE #define T_UTF_32_SIDDHAM_SIGN_VIRAMA 0x115BF #define T_UTF_32_SIDDHAM_SIGN_NUKTA 0x115C0 #define T_UTF_32_SIDDHAM_SIGN_SIDDHAM 0x115C1 #define T_UTF_32_SIDDHAM_DANDA 0x115C2 #define T_UTF_32_SIDDHAM_DOUBLE_DANDA 0x115C3 #define T_UTF_32_SIDDHAM_SEPARATOR_DOT 0x115C4 #define T_UTF_32_SIDDHAM_SEPARATOR_BAR 0x115C5 #define T_UTF_32_SIDDHAM_REPETITION_MARK_1 0x115C6 #define T_UTF_32_SIDDHAM_REPETITION_MARK_2 0x115C7 #define T_UTF_32_SIDDHAM_REPETITION_MARK_3 0x115C8 #define T_UTF_32_SIDDHAM_END_OF_TEXT_MARK 0x115C9 #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_U_SHAPED_ORNAMENTS 0x115CA #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_TRIDENT_AND_DOTTED_CRESCENTS 0x115CB #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_CRESCENTS 0x115CC #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_DOUBLE_CRESCENTS 0x115CD #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_RAYS_AND_DOTTED_TRIPLE_CRESCENTS 0x115CE #define T_UTF_32_SIDDHAM_SECTION_MARK_DOUBLE_RING 0x115CF #define T_UTF_32_SIDDHAM_SECTION_MARK_DOUBLE_RING_WITH_RAYS 0x115D0 #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_DOUBLE_CRESCENTS 0x115D1 #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_TRIPLE_CRESCENTS 0x115D2 #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_QUADRUPLE_CRESCENTS 0x115D3 #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_SEPTUPLE_CRESCENTS 0x115D4 #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_RAYS 0x115D5 #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_TWO_ENCLOSURES 0x115D6 #define T_UTF_32_SIDDHAM_SECTION_MARK_WITH_CIRCLES_AND_FOUR_ENCLOSURES 0x115D7 #define T_UTF_32_SIDDHAM_LETTER_THREE_CIRCLE_ALTERNATE_I 0x115D8 #define T_UTF_32_SIDDHAM_LETTER_TWO_CIRCLE_ALTERNATE_I 0x115D9 #define T_UTF_32_SIDDHAM_LETTER_TWO_CIRCLE_ALTERNATE_II 0x115DA #define T_UTF_32_SIDDHAM_LETTER_ALTERNATE_U 0x115DB #define T_UTF_32_SIDDHAM_VOWEL_SIGN_ALTERNATE_U 0x115DC #define T_UTF_32_SIDDHAM_VOWEL_SIGN_ALTERNATE_UU 0x115DD #define T_UTF_32_MODI_LETTER_A 0x11600 #define T_UTF_32_MODI_LETTER_AA 0x11601 #define T_UTF_32_MODI_LETTER_I 0x11602 #define T_UTF_32_MODI_LETTER_II 0x11603 #define T_UTF_32_MODI_LETTER_U 0x11604 #define T_UTF_32_MODI_LETTER_UU 0x11605 #define T_UTF_32_MODI_LETTER_VOCALIC_R 0x11606 #define T_UTF_32_MODI_LETTER_VOCALIC_RR 0x11607 #define T_UTF_32_MODI_LETTER_VOCALIC_L 0x11608 #define T_UTF_32_MODI_LETTER_VOCALIC_LL 0x11609 #define T_UTF_32_MODI_LETTER_E 0x1160A #define T_UTF_32_MODI_LETTER_AI 0x1160B #define T_UTF_32_MODI_LETTER_O 0x1160C #define T_UTF_32_MODI_LETTER_AU 0x1160D #define T_UTF_32_MODI_LETTER_KA 0x1160E #define T_UTF_32_MODI_LETTER_KHA 0x1160F #define T_UTF_32_MODI_LETTER_GA 0x11610 #define T_UTF_32_MODI_LETTER_GHA 0x11611 #define T_UTF_32_MODI_LETTER_NGA 0x11612 #define T_UTF_32_MODI_LETTER_CA 0x11613 #define T_UTF_32_MODI_LETTER_CHA 0x11614 #define T_UTF_32_MODI_LETTER_JA 0x11615 #define T_UTF_32_MODI_LETTER_JHA 0x11616 #define T_UTF_32_MODI_LETTER_NYA 0x11617 #define T_UTF_32_MODI_LETTER_TTA 0x11618 #define T_UTF_32_MODI_LETTER_TTHA 0x11619 #define T_UTF_32_MODI_LETTER_DDA 0x1161A #define T_UTF_32_MODI_LETTER_DDHA 0x1161B #define T_UTF_32_MODI_LETTER_NNA 0x1161C #define T_UTF_32_MODI_LETTER_TA 0x1161D #define T_UTF_32_MODI_LETTER_THA 0x1161E #define T_UTF_32_MODI_LETTER_DA 0x1161F #define T_UTF_32_MODI_LETTER_DHA 0x11620 #define T_UTF_32_MODI_LETTER_NA 0x11621 #define T_UTF_32_MODI_LETTER_PA 0x11622 #define T_UTF_32_MODI_LETTER_PHA 0x11623 #define T_UTF_32_MODI_LETTER_BA 0x11624 #define T_UTF_32_MODI_LETTER_BHA 0x11625 #define T_UTF_32_MODI_LETTER_MA 0x11626 #define T_UTF_32_MODI_LETTER_YA 0x11627 #define T_UTF_32_MODI_LETTER_RA 0x11628 #define T_UTF_32_MODI_LETTER_LA 0x11629 #define T_UTF_32_MODI_LETTER_VA 0x1162A #define T_UTF_32_MODI_LETTER_SHA 0x1162B #define T_UTF_32_MODI_LETTER_SSA 0x1162C #define T_UTF_32_MODI_LETTER_SA 0x1162D #define T_UTF_32_MODI_LETTER_HA 0x1162E #define T_UTF_32_MODI_LETTER_LLA 0x1162F #define T_UTF_32_MODI_VOWEL_SIGN_AA 0x11630 #define T_UTF_32_MODI_VOWEL_SIGN_I 0x11631 #define T_UTF_32_MODI_VOWEL_SIGN_II 0x11632 #define T_UTF_32_MODI_VOWEL_SIGN_U 0x11633 #define T_UTF_32_MODI_VOWEL_SIGN_UU 0x11634 #define T_UTF_32_MODI_VOWEL_SIGN_VOCALIC_R 0x11635 #define T_UTF_32_MODI_VOWEL_SIGN_VOCALIC_RR 0x11636 #define T_UTF_32_MODI_VOWEL_SIGN_VOCALIC_L 0x11637 #define T_UTF_32_MODI_VOWEL_SIGN_VOCALIC_LL 0x11638 #define T_UTF_32_MODI_VOWEL_SIGN_E 0x11639 #define T_UTF_32_MODI_VOWEL_SIGN_AI 0x1163A #define T_UTF_32_MODI_VOWEL_SIGN_O 0x1163B #define T_UTF_32_MODI_VOWEL_SIGN_AU 0x1163C #define T_UTF_32_MODI_SIGN_ANUSVARA 0x1163D #define T_UTF_32_MODI_SIGN_VISARGA 0x1163E #define T_UTF_32_MODI_SIGN_VIRAMA 0x1163F #define T_UTF_32_MODI_SIGN_ARDHACANDRA 0x11640 #define T_UTF_32_MODI_DANDA 0x11641 #define T_UTF_32_MODI_DOUBLE_DANDA 0x11642 #define T_UTF_32_MODI_ABBREVIATION_SIGN 0x11643 #define T_UTF_32_MODI_SIGN_HUVA 0x11644 #define T_UTF_32_MODI_DIGIT_ZERO 0x11650 #define T_UTF_32_MODI_DIGIT_ONE 0x11651 #define T_UTF_32_MODI_DIGIT_TWO 0x11652 #define T_UTF_32_MODI_DIGIT_THREE 0x11653 #define T_UTF_32_MODI_DIGIT_FOUR 0x11654 #define T_UTF_32_MODI_DIGIT_FIVE 0x11655 #define T_UTF_32_MODI_DIGIT_SIX 0x11656 #define T_UTF_32_MODI_DIGIT_SEVEN 0x11657 #define T_UTF_32_MODI_DIGIT_EIGHT 0x11658 #define T_UTF_32_MODI_DIGIT_NINE 0x11659 #define T_UTF_32_MONGOLIAN_BIRGA_WITH_ORNAMENT 0x11660 #define T_UTF_32_MONGOLIAN_ROTATED_BIRGA 0x11661 #define T_UTF_32_MONGOLIAN_DOUBLE_BIRGA_WITH_ORNAMENT 0x11662 #define T_UTF_32_MONGOLIAN_TRIPLE_BIRGA_WITH_ORNAMENT 0x11663 #define T_UTF_32_MONGOLIAN_BIRGA_WITH_DOUBLE_ORNAMENT 0x11664 #define T_UTF_32_MONGOLIAN_ROTATED_BIRGA_WITH_ORNAMENT 0x11665 #define T_UTF_32_MONGOLIAN_ROTATED_BIRGA_WITH_DOUBLE_ORNAMENT 0x11666 #define T_UTF_32_MONGOLIAN_INVERTED_BIRGA 0x11667 #define T_UTF_32_MONGOLIAN_INVERTED_BIRGA_WITH_DOUBLE_ORNAMENT 0x11668 #define T_UTF_32_MONGOLIAN_SWIRL_BIRGA 0x11669 #define T_UTF_32_MONGOLIAN_SWIRL_BIRGA_WITH_ORNAMENT 0x1166A #define T_UTF_32_MONGOLIAN_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT 0x1166B #define T_UTF_32_MONGOLIAN_TURNED_SWIRL_BIRGA_WITH_DOUBLE_ORNAMENT 0x1166C #define T_UTF_32_TAKRI_LETTER_A 0x11680 #define T_UTF_32_TAKRI_LETTER_AA 0x11681 #define T_UTF_32_TAKRI_LETTER_I 0x11682 #define T_UTF_32_TAKRI_LETTER_II 0x11683 #define T_UTF_32_TAKRI_LETTER_U 0x11684 #define T_UTF_32_TAKRI_LETTER_UU 0x11685 #define T_UTF_32_TAKRI_LETTER_E 0x11686 #define T_UTF_32_TAKRI_LETTER_AI 0x11687 #define T_UTF_32_TAKRI_LETTER_O 0x11688 #define T_UTF_32_TAKRI_LETTER_AU 0x11689 #define T_UTF_32_TAKRI_LETTER_KA 0x1168A #define T_UTF_32_TAKRI_LETTER_KHA 0x1168B #define T_UTF_32_TAKRI_LETTER_GA 0x1168C #define T_UTF_32_TAKRI_LETTER_GHA 0x1168D #define T_UTF_32_TAKRI_LETTER_NGA 0x1168E #define T_UTF_32_TAKRI_LETTER_CA 0x1168F #define T_UTF_32_TAKRI_LETTER_CHA 0x11690 #define T_UTF_32_TAKRI_LETTER_JA 0x11691 #define T_UTF_32_TAKRI_LETTER_JHA 0x11692 #define T_UTF_32_TAKRI_LETTER_NYA 0x11693 #define T_UTF_32_TAKRI_LETTER_TTA 0x11694 #define T_UTF_32_TAKRI_LETTER_TTHA 0x11695 #define T_UTF_32_TAKRI_LETTER_DDA 0x11696 #define T_UTF_32_TAKRI_LETTER_DDHA 0x11697 #define T_UTF_32_TAKRI_LETTER_NNA 0x11698 #define T_UTF_32_TAKRI_LETTER_TA 0x11699 #define T_UTF_32_TAKRI_LETTER_THA 0x1169A #define T_UTF_32_TAKRI_LETTER_DA 0x1169B #define T_UTF_32_TAKRI_LETTER_DHA 0x1169C #define T_UTF_32_TAKRI_LETTER_NA 0x1169D #define T_UTF_32_TAKRI_LETTER_PA 0x1169E #define T_UTF_32_TAKRI_LETTER_PHA 0x1169F #define T_UTF_32_TAKRI_LETTER_BA 0x116A0 #define T_UTF_32_TAKRI_LETTER_BHA 0x116A1 #define T_UTF_32_TAKRI_LETTER_MA 0x116A2 #define T_UTF_32_TAKRI_LETTER_YA 0x116A3 #define T_UTF_32_TAKRI_LETTER_RA 0x116A4 #define T_UTF_32_TAKRI_LETTER_LA 0x116A5 #define T_UTF_32_TAKRI_LETTER_VA 0x116A6 #define T_UTF_32_TAKRI_LETTER_SHA 0x116A7 #define T_UTF_32_TAKRI_LETTER_SA 0x116A8 #define T_UTF_32_TAKRI_LETTER_HA 0x116A9 #define T_UTF_32_TAKRI_LETTER_RRA 0x116AA #define T_UTF_32_TAKRI_SIGN_ANUSVARA 0x116AB #define T_UTF_32_TAKRI_SIGN_VISARGA 0x116AC #define T_UTF_32_TAKRI_VOWEL_SIGN_AA 0x116AD #define T_UTF_32_TAKRI_VOWEL_SIGN_I 0x116AE #define T_UTF_32_TAKRI_VOWEL_SIGN_II 0x116AF #define T_UTF_32_TAKRI_VOWEL_SIGN_U 0x116B0 #define T_UTF_32_TAKRI_VOWEL_SIGN_UU 0x116B1 #define T_UTF_32_TAKRI_VOWEL_SIGN_E 0x116B2 #define T_UTF_32_TAKRI_VOWEL_SIGN_AI 0x116B3 #define T_UTF_32_TAKRI_VOWEL_SIGN_O 0x116B4 #define T_UTF_32_TAKRI_VOWEL_SIGN_AU 0x116B5 #define T_UTF_32_TAKRI_SIGN_VIRAMA 0x116B6 #define T_UTF_32_TAKRI_SIGN_NUKTA 0x116B7 #define T_UTF_32_TAKRI_DIGIT_ZERO 0x116C0 #define T_UTF_32_TAKRI_DIGIT_ONE 0x116C1 #define T_UTF_32_TAKRI_DIGIT_TWO 0x116C2 #define T_UTF_32_TAKRI_DIGIT_THREE 0x116C3 #define T_UTF_32_TAKRI_DIGIT_FOUR 0x116C4 #define T_UTF_32_TAKRI_DIGIT_FIVE 0x116C5 #define T_UTF_32_TAKRI_DIGIT_SIX 0x116C6 #define T_UTF_32_TAKRI_DIGIT_SEVEN 0x116C7 #define T_UTF_32_TAKRI_DIGIT_EIGHT 0x116C8 #define T_UTF_32_TAKRI_DIGIT_NINE 0x116C9 #define T_UTF_32_AHOM_LETTER_KA 0x11700 #define T_UTF_32_AHOM_LETTER_KHA 0x11701 #define T_UTF_32_AHOM_LETTER_NGA 0x11702 #define T_UTF_32_AHOM_LETTER_NA 0x11703 #define T_UTF_32_AHOM_LETTER_TA 0x11704 #define T_UTF_32_AHOM_LETTER_ALTERNATE_TA 0x11705 #define T_UTF_32_AHOM_LETTER_PA 0x11706 #define T_UTF_32_AHOM_LETTER_PHA 0x11707 #define T_UTF_32_AHOM_LETTER_BA 0x11708 #define T_UTF_32_AHOM_LETTER_MA 0x11709 #define T_UTF_32_AHOM_LETTER_JA 0x1170A #define T_UTF_32_AHOM_LETTER_CHA 0x1170B #define T_UTF_32_AHOM_LETTER_THA 0x1170C #define T_UTF_32_AHOM_LETTER_RA 0x1170D #define T_UTF_32_AHOM_LETTER_LA 0x1170E #define T_UTF_32_AHOM_LETTER_SA 0x1170F #define T_UTF_32_AHOM_LETTER_NYA 0x11710 #define T_UTF_32_AHOM_LETTER_HA 0x11711 #define T_UTF_32_AHOM_LETTER_A 0x11712 #define T_UTF_32_AHOM_LETTER_DA 0x11713 #define T_UTF_32_AHOM_LETTER_DHA 0x11714 #define T_UTF_32_AHOM_LETTER_GA 0x11715 #define T_UTF_32_AHOM_LETTER_ALTERNATE_GA 0x11716 #define T_UTF_32_AHOM_LETTER_GHA 0x11717 #define T_UTF_32_AHOM_LETTER_BHA 0x11718 #define T_UTF_32_AHOM_LETTER_JHA 0x11719 #define T_UTF_32_AHOM_CONSONANT_SIGN_MEDIAL_LA 0x1171D #define T_UTF_32_AHOM_CONSONANT_SIGN_MEDIAL_RA 0x1171E #define T_UTF_32_AHOM_CONSONANT_SIGN_MEDIAL_LIGATING_RA 0x1171F #define T_UTF_32_AHOM_VOWEL_SIGN_A 0x11720 #define T_UTF_32_AHOM_VOWEL_SIGN_AA 0x11721 #define T_UTF_32_AHOM_VOWEL_SIGN_I 0x11722 #define T_UTF_32_AHOM_VOWEL_SIGN_II 0x11723 #define T_UTF_32_AHOM_VOWEL_SIGN_U 0x11724 #define T_UTF_32_AHOM_VOWEL_SIGN_UU 0x11725 #define T_UTF_32_AHOM_VOWEL_SIGN_E 0x11726 #define T_UTF_32_AHOM_VOWEL_SIGN_AW 0x11727 #define T_UTF_32_AHOM_VOWEL_SIGN_O 0x11728 #define T_UTF_32_AHOM_VOWEL_SIGN_AI 0x11729 #define T_UTF_32_AHOM_VOWEL_SIGN_AM 0x1172A #define T_UTF_32_AHOM_SIGN_KILLER 0x1172B #define T_UTF_32_AHOM_DIGIT_ZERO 0x11730 #define T_UTF_32_AHOM_DIGIT_ONE 0x11731 #define T_UTF_32_AHOM_DIGIT_TWO 0x11732 #define T_UTF_32_AHOM_DIGIT_THREE 0x11733 #define T_UTF_32_AHOM_DIGIT_FOUR 0x11734 #define T_UTF_32_AHOM_DIGIT_FIVE 0x11735 #define T_UTF_32_AHOM_DIGIT_SIX 0x11736 #define T_UTF_32_AHOM_DIGIT_SEVEN 0x11737 #define T_UTF_32_AHOM_DIGIT_EIGHT 0x11738 #define T_UTF_32_AHOM_DIGIT_NINE 0x11739 #define T_UTF_32_AHOM_NUMBER_TEN 0x1173A #define T_UTF_32_AHOM_NUMBER_TWENTY 0x1173B #define T_UTF_32_AHOM_SIGN_SMALL_SECTION 0x1173C #define T_UTF_32_AHOM_SIGN_SECTION 0x1173D #define T_UTF_32_AHOM_SIGN_RULAI 0x1173E #define T_UTF_32_AHOM_SYMBOL_VI 0x1173F #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_NGAA 0x118A0 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_A 0x118A1 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_WI 0x118A2 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_YU 0x118A3 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_YA 0x118A4 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_YO 0x118A5 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_II 0x118A6 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_UU 0x118A7 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_E 0x118A8 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_O 0x118A9 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_ANG 0x118AA #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_GA 0x118AB #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_KO 0x118AC #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_ENY 0x118AD #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_YUJ 0x118AE #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_UC 0x118AF #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_ENN 0x118B0 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_ODD 0x118B1 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_TTE 0x118B2 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_NUNG 0x118B3 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_DA 0x118B4 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_AT 0x118B5 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_AM 0x118B6 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_BU 0x118B7 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_PU 0x118B8 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_HIYO 0x118B9 #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_HOLO 0x118BA #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_HORR 0x118BB #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_HAR 0x118BC #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_SSUU 0x118BD #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_SII 0x118BE #define T_UTF_32_WARANG_CITI_CAPITAL_LETTER_VIYO 0x118BF #define T_UTF_32_WARANG_CITI_SMALL_LETTER_NGAA 0x118C0 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_A 0x118C1 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_WI 0x118C2 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_YU 0x118C3 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_YA 0x118C4 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_YO 0x118C5 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_II 0x118C6 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_UU 0x118C7 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_E 0x118C8 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_O 0x118C9 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_ANG 0x118CA #define T_UTF_32_WARANG_CITI_SMALL_LETTER_GA 0x118CB #define T_UTF_32_WARANG_CITI_SMALL_LETTER_KO 0x118CC #define T_UTF_32_WARANG_CITI_SMALL_LETTER_ENY 0x118CD #define T_UTF_32_WARANG_CITI_SMALL_LETTER_YUJ 0x118CE #define T_UTF_32_WARANG_CITI_SMALL_LETTER_UC 0x118CF #define T_UTF_32_WARANG_CITI_SMALL_LETTER_ENN 0x118D0 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_ODD 0x118D1 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_TTE 0x118D2 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_NUNG 0x118D3 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_DA 0x118D4 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_AT 0x118D5 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_AM 0x118D6 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_BU 0x118D7 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_PU 0x118D8 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_HIYO 0x118D9 #define T_UTF_32_WARANG_CITI_SMALL_LETTER_HOLO 0x118DA #define T_UTF_32_WARANG_CITI_SMALL_LETTER_HORR 0x118DB #define T_UTF_32_WARANG_CITI_SMALL_LETTER_HAR 0x118DC #define T_UTF_32_WARANG_CITI_SMALL_LETTER_SSUU 0x118DD #define T_UTF_32_WARANG_CITI_SMALL_LETTER_SII 0x118DE #define T_UTF_32_WARANG_CITI_SMALL_LETTER_VIYO 0x118DF #define T_UTF_32_WARANG_CITI_DIGIT_ZERO 0x118E0 #define T_UTF_32_WARANG_CITI_DIGIT_ONE 0x118E1 #define T_UTF_32_WARANG_CITI_DIGIT_TWO 0x118E2 #define T_UTF_32_WARANG_CITI_DIGIT_THREE 0x118E3 #define T_UTF_32_WARANG_CITI_DIGIT_FOUR 0x118E4 #define T_UTF_32_WARANG_CITI_DIGIT_FIVE 0x118E5 #define T_UTF_32_WARANG_CITI_DIGIT_SIX 0x118E6 #define T_UTF_32_WARANG_CITI_DIGIT_SEVEN 0x118E7 #define T_UTF_32_WARANG_CITI_DIGIT_EIGHT 0x118E8 #define T_UTF_32_WARANG_CITI_DIGIT_NINE 0x118E9 #define T_UTF_32_WARANG_CITI_NUMBER_TEN 0x118EA #define T_UTF_32_WARANG_CITI_NUMBER_TWENTY 0x118EB #define T_UTF_32_WARANG_CITI_NUMBER_THIRTY 0x118EC #define T_UTF_32_WARANG_CITI_NUMBER_FORTY 0x118ED #define T_UTF_32_WARANG_CITI_NUMBER_FIFTY 0x118EE #define T_UTF_32_WARANG_CITI_NUMBER_SIXTY 0x118EF #define T_UTF_32_WARANG_CITI_NUMBER_SEVENTY 0x118F0 #define T_UTF_32_WARANG_CITI_NUMBER_EIGHTY 0x118F1 #define T_UTF_32_WARANG_CITI_NUMBER_NINETY 0x118F2 #define T_UTF_32_WARANG_CITI_OM 0x118FF #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_A 0x11A00 #define T_UTF_32_ZANABAZAR_SQUARE_VOWEL_SIGN_I 0x11A01 #define T_UTF_32_ZANABAZAR_SQUARE_VOWEL_SIGN_UE 0x11A02 #define T_UTF_32_ZANABAZAR_SQUARE_VOWEL_SIGN_U 0x11A03 #define T_UTF_32_ZANABAZAR_SQUARE_VOWEL_SIGN_E 0x11A04 #define T_UTF_32_ZANABAZAR_SQUARE_VOWEL_SIGN_OE 0x11A05 #define T_UTF_32_ZANABAZAR_SQUARE_VOWEL_SIGN_O 0x11A06 #define T_UTF_32_ZANABAZAR_SQUARE_VOWEL_SIGN_AI 0x11A07 #define T_UTF_32_ZANABAZAR_SQUARE_VOWEL_SIGN_AU 0x11A08 #define T_UTF_32_ZANABAZAR_SQUARE_VOWEL_SIGN_REVERSED_I 0x11A09 #define T_UTF_32_ZANABAZAR_SQUARE_VOWEL_LENGTH_MARK 0x11A0A #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_KA 0x11A0B #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_KHA 0x11A0C #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_GA 0x11A0D #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_GHA 0x11A0E #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_NGA 0x11A0F #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_CA 0x11A10 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_CHA 0x11A11 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_JA 0x11A12 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_NYA 0x11A13 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_TTA 0x11A14 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_TTHA 0x11A15 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_DDA 0x11A16 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_DDHA 0x11A17 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_NNA 0x11A18 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_TA 0x11A19 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_THA 0x11A1A #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_DA 0x11A1B #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_DHA 0x11A1C #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_NA 0x11A1D #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_PA 0x11A1E #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_PHA 0x11A1F #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_BA 0x11A20 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_BHA 0x11A21 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_MA 0x11A22 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_TSA 0x11A23 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_TSHA 0x11A24 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_DZA 0x11A25 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_DZHA 0x11A26 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_ZHA 0x11A27 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_ZA 0x11A28 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER__A 0x11A29 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_YA 0x11A2A #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_RA 0x11A2B #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_LA 0x11A2C #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_VA 0x11A2D #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_SHA 0x11A2E #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_SSA 0x11A2F #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_SA 0x11A30 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_HA 0x11A31 #define T_UTF_32_ZANABAZAR_SQUARE_LETTER_KSSA 0x11A32 #define T_UTF_32_ZANABAZAR_SQUARE_FINAL_CONSONANT_MARK 0x11A33 #define T_UTF_32_ZANABAZAR_SQUARE_SIGN_VIRAMA 0x11A34 #define T_UTF_32_ZANABAZAR_SQUARE_SIGN_CANDRABINDU 0x11A35 #define T_UTF_32_ZANABAZAR_SQUARE_SIGN_CANDRABINDU_WITH_ORNAMENT 0x11A36 #define T_UTF_32_ZANABAZAR_SQUARE_SIGN_CANDRA_WITH_ORNAMENT 0x11A37 #define T_UTF_32_ZANABAZAR_SQUARE_SIGN_ANUSVARA 0x11A38 #define T_UTF_32_ZANABAZAR_SQUARE_SIGN_VISARGA 0x11A39 #define T_UTF_32_ZANABAZAR_SQUARE_CLUSTER_INITIAL_LETTER_RA 0x11A3A #define T_UTF_32_ZANABAZAR_SQUARE_CLUSTER_FINAL_LETTER_YA 0x11A3B #define T_UTF_32_ZANABAZAR_SQUARE_CLUSTER_FINAL_LETTER_RA 0x11A3C #define T_UTF_32_ZANABAZAR_SQUARE_CLUSTER_FINAL_LETTER_LA 0x11A3D #define T_UTF_32_ZANABAZAR_SQUARE_CLUSTER_FINAL_LETTER_VA 0x11A3E #define T_UTF_32_ZANABAZAR_SQUARE_INITIAL_HEAD_MARK 0x11A3F #define T_UTF_32_ZANABAZAR_SQUARE_CLOSING_HEAD_MARK 0x11A40 #define T_UTF_32_ZANABAZAR_SQUARE_MARK_TSHEG 0x11A41 #define T_UTF_32_ZANABAZAR_SQUARE_MARK_SHAD 0x11A42 #define T_UTF_32_ZANABAZAR_SQUARE_MARK_DOUBLE_SHAD 0x11A43 #define T_UTF_32_ZANABAZAR_SQUARE_MARK_LONG_TSHEG 0x11A44 #define T_UTF_32_ZANABAZAR_SQUARE_INITIAL_DOUBLE_LINED_HEAD_MARK 0x11A45 #define T_UTF_32_ZANABAZAR_SQUARE_CLOSING_DOUBLE_LINED_HEAD_MARK 0x11A46 #define T_UTF_32_ZANABAZAR_SQUARE_SUBJOINER 0x11A47 #define T_UTF_32_SOYOMBO_LETTER_A 0x11A50 #define T_UTF_32_SOYOMBO_VOWEL_SIGN_I 0x11A51 #define T_UTF_32_SOYOMBO_VOWEL_SIGN_UE 0x11A52 #define T_UTF_32_SOYOMBO_VOWEL_SIGN_U 0x11A53 #define T_UTF_32_SOYOMBO_VOWEL_SIGN_E 0x11A54 #define T_UTF_32_SOYOMBO_VOWEL_SIGN_O 0x11A55 #define T_UTF_32_SOYOMBO_VOWEL_SIGN_OE 0x11A56 #define T_UTF_32_SOYOMBO_VOWEL_SIGN_AI 0x11A57 #define T_UTF_32_SOYOMBO_VOWEL_SIGN_AU 0x11A58 #define T_UTF_32_SOYOMBO_VOWEL_SIGN_VOCALIC_R 0x11A59 #define T_UTF_32_SOYOMBO_VOWEL_SIGN_VOCALIC_L 0x11A5A #define T_UTF_32_SOYOMBO_VOWEL_LENGTH_MARK 0x11A5B #define T_UTF_32_SOYOMBO_LETTER_KA 0x11A5C #define T_UTF_32_SOYOMBO_LETTER_KHA 0x11A5D #define T_UTF_32_SOYOMBO_LETTER_GA 0x11A5E #define T_UTF_32_SOYOMBO_LETTER_GHA 0x11A5F #define T_UTF_32_SOYOMBO_LETTER_NGA 0x11A60 #define T_UTF_32_SOYOMBO_LETTER_CA 0x11A61 #define T_UTF_32_SOYOMBO_LETTER_CHA 0x11A62 #define T_UTF_32_SOYOMBO_LETTER_JA 0x11A63 #define T_UTF_32_SOYOMBO_LETTER_JHA 0x11A64 #define T_UTF_32_SOYOMBO_LETTER_NYA 0x11A65 #define T_UTF_32_SOYOMBO_LETTER_TTA 0x11A66 #define T_UTF_32_SOYOMBO_LETTER_TTHA 0x11A67 #define T_UTF_32_SOYOMBO_LETTER_DDA 0x11A68 #define T_UTF_32_SOYOMBO_LETTER_DDHA 0x11A69 #define T_UTF_32_SOYOMBO_LETTER_NNA 0x11A6A #define T_UTF_32_SOYOMBO_LETTER_TA 0x11A6B #define T_UTF_32_SOYOMBO_LETTER_THA 0x11A6C #define T_UTF_32_SOYOMBO_LETTER_DA 0x11A6D #define T_UTF_32_SOYOMBO_LETTER_DHA 0x11A6E #define T_UTF_32_SOYOMBO_LETTER_NA 0x11A6F #define T_UTF_32_SOYOMBO_LETTER_PA 0x11A70 #define T_UTF_32_SOYOMBO_LETTER_PHA 0x11A71 #define T_UTF_32_SOYOMBO_LETTER_BA 0x11A72 #define T_UTF_32_SOYOMBO_LETTER_BHA 0x11A73 #define T_UTF_32_SOYOMBO_LETTER_MA 0x11A74 #define T_UTF_32_SOYOMBO_LETTER_TSA 0x11A75 #define T_UTF_32_SOYOMBO_LETTER_TSHA 0x11A76 #define T_UTF_32_SOYOMBO_LETTER_DZA 0x11A77 #define T_UTF_32_SOYOMBO_LETTER_ZHA 0x11A78 #define T_UTF_32_SOYOMBO_LETTER_ZA 0x11A79 #define T_UTF_32_SOYOMBO_LETTER__A 0x11A7A #define T_UTF_32_SOYOMBO_LETTER_YA 0x11A7B #define T_UTF_32_SOYOMBO_LETTER_RA 0x11A7C #define T_UTF_32_SOYOMBO_LETTER_LA 0x11A7D #define T_UTF_32_SOYOMBO_LETTER_VA 0x11A7E #define T_UTF_32_SOYOMBO_LETTER_SHA 0x11A7F #define T_UTF_32_SOYOMBO_LETTER_SSA 0x11A80 #define T_UTF_32_SOYOMBO_LETTER_SA 0x11A81 #define T_UTF_32_SOYOMBO_LETTER_HA 0x11A82 #define T_UTF_32_SOYOMBO_LETTER_KSSA 0x11A83 #define T_UTF_32_SOYOMBO_CLUSTER_INITIAL_LETTER_RA 0x11A86 #define T_UTF_32_SOYOMBO_CLUSTER_INITIAL_LETTER_LA 0x11A87 #define T_UTF_32_SOYOMBO_CLUSTER_INITIAL_LETTER_SHA 0x11A88 #define T_UTF_32_SOYOMBO_CLUSTER_INITIAL_LETTER_SA 0x11A89 #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_G 0x11A8A #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_K 0x11A8B #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_NG 0x11A8C #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_D 0x11A8D #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_N 0x11A8E #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_B 0x11A8F #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_M 0x11A90 #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_R 0x11A91 #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_L 0x11A92 #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_SH 0x11A93 #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN_S 0x11A94 #define T_UTF_32_SOYOMBO_FINAL_CONSONANT_SIGN__A 0x11A95 #define T_UTF_32_SOYOMBO_SIGN_ANUSVARA 0x11A96 #define T_UTF_32_SOYOMBO_SIGN_VISARGA 0x11A97 #define T_UTF_32_SOYOMBO_GEMINATION_MARK 0x11A98 #define T_UTF_32_SOYOMBO_SUBJOINER 0x11A99 #define T_UTF_32_SOYOMBO_MARK_TSHEG 0x11A9A #define T_UTF_32_SOYOMBO_MARK_SHAD 0x11A9B #define T_UTF_32_SOYOMBO_MARK_DOUBLE_SHAD 0x11A9C #define T_UTF_32_SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_TRIPLE_FLAME 0x11A9E #define T_UTF_32_SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN_AND_FLAME 0x11A9F #define T_UTF_32_SOYOMBO_HEAD_MARK_WITH_MOON_AND_SUN 0x11AA0 #define T_UTF_32_SOYOMBO_TERMINAL_MARK_1 0x11AA1 #define T_UTF_32_SOYOMBO_TERMINAL_MARK_2 0x11AA2 #define T_UTF_32_PAU_CIN_HAU_LETTER_PA 0x11AC0 #define T_UTF_32_PAU_CIN_HAU_LETTER_KA 0x11AC1 #define T_UTF_32_PAU_CIN_HAU_LETTER_LA 0x11AC2 #define T_UTF_32_PAU_CIN_HAU_LETTER_MA 0x11AC3 #define T_UTF_32_PAU_CIN_HAU_LETTER_DA 0x11AC4 #define T_UTF_32_PAU_CIN_HAU_LETTER_ZA 0x11AC5 #define T_UTF_32_PAU_CIN_HAU_LETTER_VA 0x11AC6 #define T_UTF_32_PAU_CIN_HAU_LETTER_NGA 0x11AC7 #define T_UTF_32_PAU_CIN_HAU_LETTER_HA 0x11AC8 #define T_UTF_32_PAU_CIN_HAU_LETTER_GA 0x11AC9 #define T_UTF_32_PAU_CIN_HAU_LETTER_KHA 0x11ACA #define T_UTF_32_PAU_CIN_HAU_LETTER_SA 0x11ACB #define T_UTF_32_PAU_CIN_HAU_LETTER_BA 0x11ACC #define T_UTF_32_PAU_CIN_HAU_LETTER_CA 0x11ACD #define T_UTF_32_PAU_CIN_HAU_LETTER_TA 0x11ACE #define T_UTF_32_PAU_CIN_HAU_LETTER_THA 0x11ACF #define T_UTF_32_PAU_CIN_HAU_LETTER_NA 0x11AD0 #define T_UTF_32_PAU_CIN_HAU_LETTER_PHA 0x11AD1 #define T_UTF_32_PAU_CIN_HAU_LETTER_RA 0x11AD2 #define T_UTF_32_PAU_CIN_HAU_LETTER_FA 0x11AD3 #define T_UTF_32_PAU_CIN_HAU_LETTER_CHA 0x11AD4 #define T_UTF_32_PAU_CIN_HAU_LETTER_A 0x11AD5 #define T_UTF_32_PAU_CIN_HAU_LETTER_E 0x11AD6 #define T_UTF_32_PAU_CIN_HAU_LETTER_I 0x11AD7 #define T_UTF_32_PAU_CIN_HAU_LETTER_O 0x11AD8 #define T_UTF_32_PAU_CIN_HAU_LETTER_U 0x11AD9 #define T_UTF_32_PAU_CIN_HAU_LETTER_UA 0x11ADA #define T_UTF_32_PAU_CIN_HAU_LETTER_IA 0x11ADB #define T_UTF_32_PAU_CIN_HAU_LETTER_FINAL_P 0x11ADC #define T_UTF_32_PAU_CIN_HAU_LETTER_FINAL_K 0x11ADD #define T_UTF_32_PAU_CIN_HAU_LETTER_FINAL_T 0x11ADE #define T_UTF_32_PAU_CIN_HAU_LETTER_FINAL_M 0x11ADF #define T_UTF_32_PAU_CIN_HAU_LETTER_FINAL_N 0x11AE0 #define T_UTF_32_PAU_CIN_HAU_LETTER_FINAL_L 0x11AE1 #define T_UTF_32_PAU_CIN_HAU_LETTER_FINAL_W 0x11AE2 #define T_UTF_32_PAU_CIN_HAU_LETTER_FINAL_NG 0x11AE3 #define T_UTF_32_PAU_CIN_HAU_LETTER_FINAL_Y 0x11AE4 #define T_UTF_32_PAU_CIN_HAU_RISING_TONE_LONG 0x11AE5 #define T_UTF_32_PAU_CIN_HAU_RISING_TONE 0x11AE6 #define T_UTF_32_PAU_CIN_HAU_SANDHI_GLOTTAL_STOP 0x11AE7 #define T_UTF_32_PAU_CIN_HAU_RISING_TONE_LONG_FINAL 0x11AE8 #define T_UTF_32_PAU_CIN_HAU_RISING_TONE_FINAL 0x11AE9 #define T_UTF_32_PAU_CIN_HAU_SANDHI_GLOTTAL_STOP_FINAL 0x11AEA #define T_UTF_32_PAU_CIN_HAU_SANDHI_TONE_LONG 0x11AEB #define T_UTF_32_PAU_CIN_HAU_SANDHI_TONE 0x11AEC #define T_UTF_32_PAU_CIN_HAU_SANDHI_TONE_LONG_FINAL 0x11AED #define T_UTF_32_PAU_CIN_HAU_SANDHI_TONE_FINAL 0x11AEE #define T_UTF_32_PAU_CIN_HAU_MID_LEVEL_TONE 0x11AEF #define T_UTF_32_PAU_CIN_HAU_GLOTTAL_STOP_VARIANT 0x11AF0 #define T_UTF_32_PAU_CIN_HAU_MID_LEVEL_TONE_LONG_FINAL 0x11AF1 #define T_UTF_32_PAU_CIN_HAU_MID_LEVEL_TONE_FINAL 0x11AF2 #define T_UTF_32_PAU_CIN_HAU_LOW_FALLING_TONE_LONG 0x11AF3 #define T_UTF_32_PAU_CIN_HAU_LOW_FALLING_TONE 0x11AF4 #define T_UTF_32_PAU_CIN_HAU_GLOTTAL_STOP 0x11AF5 #define T_UTF_32_PAU_CIN_HAU_LOW_FALLING_TONE_LONG_FINAL 0x11AF6 #define T_UTF_32_PAU_CIN_HAU_LOW_FALLING_TONE_FINAL 0x11AF7 #define T_UTF_32_PAU_CIN_HAU_GLOTTAL_STOP_FINAL 0x11AF8 #define T_UTF_32_BHAIKSUKI_LETTER_A 0x11C00 #define T_UTF_32_BHAIKSUKI_LETTER_AA 0x11C01 #define T_UTF_32_BHAIKSUKI_LETTER_I 0x11C02 #define T_UTF_32_BHAIKSUKI_LETTER_II 0x11C03 #define T_UTF_32_BHAIKSUKI_LETTER_U 0x11C04 #define T_UTF_32_BHAIKSUKI_LETTER_UU 0x11C05 #define T_UTF_32_BHAIKSUKI_LETTER_VOCALIC_R 0x11C06 #define T_UTF_32_BHAIKSUKI_LETTER_VOCALIC_RR 0x11C07 #define T_UTF_32_BHAIKSUKI_LETTER_VOCALIC_L 0x11C08 #define T_UTF_32_BHAIKSUKI_LETTER_E 0x11C0A #define T_UTF_32_BHAIKSUKI_LETTER_AI 0x11C0B #define T_UTF_32_BHAIKSUKI_LETTER_O 0x11C0C #define T_UTF_32_BHAIKSUKI_LETTER_AU 0x11C0D #define T_UTF_32_BHAIKSUKI_LETTER_KA 0x11C0E #define T_UTF_32_BHAIKSUKI_LETTER_KHA 0x11C0F #define T_UTF_32_BHAIKSUKI_LETTER_GA 0x11C10 #define T_UTF_32_BHAIKSUKI_LETTER_GHA 0x11C11 #define T_UTF_32_BHAIKSUKI_LETTER_NGA 0x11C12 #define T_UTF_32_BHAIKSUKI_LETTER_CA 0x11C13 #define T_UTF_32_BHAIKSUKI_LETTER_CHA 0x11C14 #define T_UTF_32_BHAIKSUKI_LETTER_JA 0x11C15 #define T_UTF_32_BHAIKSUKI_LETTER_JHA 0x11C16 #define T_UTF_32_BHAIKSUKI_LETTER_NYA 0x11C17 #define T_UTF_32_BHAIKSUKI_LETTER_TTA 0x11C18 #define T_UTF_32_BHAIKSUKI_LETTER_TTHA 0x11C19 #define T_UTF_32_BHAIKSUKI_LETTER_DDA 0x11C1A #define T_UTF_32_BHAIKSUKI_LETTER_DDHA 0x11C1B #define T_UTF_32_BHAIKSUKI_LETTER_NNA 0x11C1C #define T_UTF_32_BHAIKSUKI_LETTER_TA 0x11C1D #define T_UTF_32_BHAIKSUKI_LETTER_THA 0x11C1E #define T_UTF_32_BHAIKSUKI_LETTER_DA 0x11C1F #define T_UTF_32_BHAIKSUKI_LETTER_DHA 0x11C20 #define T_UTF_32_BHAIKSUKI_LETTER_NA 0x11C21 #define T_UTF_32_BHAIKSUKI_LETTER_PA 0x11C22 #define T_UTF_32_BHAIKSUKI_LETTER_PHA 0x11C23 #define T_UTF_32_BHAIKSUKI_LETTER_BA 0x11C24 #define T_UTF_32_BHAIKSUKI_LETTER_BHA 0x11C25 #define T_UTF_32_BHAIKSUKI_LETTER_MA 0x11C26 #define T_UTF_32_BHAIKSUKI_LETTER_YA 0x11C27 #define T_UTF_32_BHAIKSUKI_LETTER_RA 0x11C28 #define T_UTF_32_BHAIKSUKI_LETTER_LA 0x11C29 #define T_UTF_32_BHAIKSUKI_LETTER_VA 0x11C2A #define T_UTF_32_BHAIKSUKI_LETTER_SHA 0x11C2B #define T_UTF_32_BHAIKSUKI_LETTER_SSA 0x11C2C #define T_UTF_32_BHAIKSUKI_LETTER_SA 0x11C2D #define T_UTF_32_BHAIKSUKI_LETTER_HA 0x11C2E #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_AA 0x11C2F #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_I 0x11C30 #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_II 0x11C31 #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_U 0x11C32 #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_UU 0x11C33 #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_VOCALIC_R 0x11C34 #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_VOCALIC_RR 0x11C35 #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_VOCALIC_L 0x11C36 #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_E 0x11C38 #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_AI 0x11C39 #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_O 0x11C3A #define T_UTF_32_BHAIKSUKI_VOWEL_SIGN_AU 0x11C3B #define T_UTF_32_BHAIKSUKI_SIGN_CANDRABINDU 0x11C3C #define T_UTF_32_BHAIKSUKI_SIGN_ANUSVARA 0x11C3D #define T_UTF_32_BHAIKSUKI_SIGN_VISARGA 0x11C3E #define T_UTF_32_BHAIKSUKI_SIGN_VIRAMA 0x11C3F #define T_UTF_32_BHAIKSUKI_SIGN_AVAGRAHA 0x11C40 #define T_UTF_32_BHAIKSUKI_DANDA 0x11C41 #define T_UTF_32_BHAIKSUKI_DOUBLE_DANDA 0x11C42 #define T_UTF_32_BHAIKSUKI_WORD_SEPARATOR 0x11C43 #define T_UTF_32_BHAIKSUKI_GAP_FILLER_1 0x11C44 #define T_UTF_32_BHAIKSUKI_GAP_FILLER_2 0x11C45 #define T_UTF_32_BHAIKSUKI_DIGIT_ZERO 0x11C50 #define T_UTF_32_BHAIKSUKI_DIGIT_ONE 0x11C51 #define T_UTF_32_BHAIKSUKI_DIGIT_TWO 0x11C52 #define T_UTF_32_BHAIKSUKI_DIGIT_THREE 0x11C53 #define T_UTF_32_BHAIKSUKI_DIGIT_FOUR 0x11C54 #define T_UTF_32_BHAIKSUKI_DIGIT_FIVE 0x11C55 #define T_UTF_32_BHAIKSUKI_DIGIT_SIX 0x11C56 #define T_UTF_32_BHAIKSUKI_DIGIT_SEVEN 0x11C57 #define T_UTF_32_BHAIKSUKI_DIGIT_EIGHT 0x11C58 #define T_UTF_32_BHAIKSUKI_DIGIT_NINE 0x11C59 #define T_UTF_32_BHAIKSUKI_NUMBER_ONE 0x11C5A #define T_UTF_32_BHAIKSUKI_NUMBER_TWO 0x11C5B #define T_UTF_32_BHAIKSUKI_NUMBER_THREE 0x11C5C #define T_UTF_32_BHAIKSUKI_NUMBER_FOUR 0x11C5D #define T_UTF_32_BHAIKSUKI_NUMBER_FIVE 0x11C5E #define T_UTF_32_BHAIKSUKI_NUMBER_SIX 0x11C5F #define T_UTF_32_BHAIKSUKI_NUMBER_SEVEN 0x11C60 #define T_UTF_32_BHAIKSUKI_NUMBER_EIGHT 0x11C61 #define T_UTF_32_BHAIKSUKI_NUMBER_NINE 0x11C62 #define T_UTF_32_BHAIKSUKI_NUMBER_TEN 0x11C63 #define T_UTF_32_BHAIKSUKI_NUMBER_TWENTY 0x11C64 #define T_UTF_32_BHAIKSUKI_NUMBER_THIRTY 0x11C65 #define T_UTF_32_BHAIKSUKI_NUMBER_FORTY 0x11C66 #define T_UTF_32_BHAIKSUKI_NUMBER_FIFTY 0x11C67 #define T_UTF_32_BHAIKSUKI_NUMBER_SIXTY 0x11C68 #define T_UTF_32_BHAIKSUKI_NUMBER_SEVENTY 0x11C69 #define T_UTF_32_BHAIKSUKI_NUMBER_EIGHTY 0x11C6A #define T_UTF_32_BHAIKSUKI_NUMBER_NINETY 0x11C6B #define T_UTF_32_BHAIKSUKI_HUNDREDS_UNIT_MARK 0x11C6C #define T_UTF_32_MARCHEN_HEAD_MARK 0x11C70 #define T_UTF_32_MARCHEN_MARK_SHAD 0x11C71 #define T_UTF_32_MARCHEN_LETTER_KA 0x11C72 #define T_UTF_32_MARCHEN_LETTER_KHA 0x11C73 #define T_UTF_32_MARCHEN_LETTER_GA 0x11C74 #define T_UTF_32_MARCHEN_LETTER_NGA 0x11C75 #define T_UTF_32_MARCHEN_LETTER_CA 0x11C76 #define T_UTF_32_MARCHEN_LETTER_CHA 0x11C77 #define T_UTF_32_MARCHEN_LETTER_JA 0x11C78 #define T_UTF_32_MARCHEN_LETTER_NYA 0x11C79 #define T_UTF_32_MARCHEN_LETTER_TA 0x11C7A #define T_UTF_32_MARCHEN_LETTER_THA 0x11C7B #define T_UTF_32_MARCHEN_LETTER_DA 0x11C7C #define T_UTF_32_MARCHEN_LETTER_NA 0x11C7D #define T_UTF_32_MARCHEN_LETTER_PA 0x11C7E #define T_UTF_32_MARCHEN_LETTER_PHA 0x11C7F #define T_UTF_32_MARCHEN_LETTER_BA 0x11C80 #define T_UTF_32_MARCHEN_LETTER_MA 0x11C81 #define T_UTF_32_MARCHEN_LETTER_TSA 0x11C82 #define T_UTF_32_MARCHEN_LETTER_TSHA 0x11C83 #define T_UTF_32_MARCHEN_LETTER_DZA 0x11C84 #define T_UTF_32_MARCHEN_LETTER_WA 0x11C85 #define T_UTF_32_MARCHEN_LETTER_ZHA 0x11C86 #define T_UTF_32_MARCHEN_LETTER_ZA 0x11C87 #define T_UTF_32_MARCHEN_LETTER__A 0x11C88 #define T_UTF_32_MARCHEN_LETTER_YA 0x11C89 #define T_UTF_32_MARCHEN_LETTER_RA 0x11C8A #define T_UTF_32_MARCHEN_LETTER_LA 0x11C8B #define T_UTF_32_MARCHEN_LETTER_SHA 0x11C8C #define T_UTF_32_MARCHEN_LETTER_SA 0x11C8D #define T_UTF_32_MARCHEN_LETTER_HA 0x11C8E #define T_UTF_32_MARCHEN_LETTER_A 0x11C8F #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_KA 0x11C92 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_KHA 0x11C93 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_GA 0x11C94 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_NGA 0x11C95 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_CA 0x11C96 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_CHA 0x11C97 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_JA 0x11C98 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_NYA 0x11C99 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_TA 0x11C9A #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_THA 0x11C9B #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_DA 0x11C9C #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_NA 0x11C9D #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_PA 0x11C9E #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_PHA 0x11C9F #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_BA 0x11CA0 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_MA 0x11CA1 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_TSA 0x11CA2 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_TSHA 0x11CA3 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_DZA 0x11CA4 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_WA 0x11CA5 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_ZHA 0x11CA6 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_ZA 0x11CA7 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_YA 0x11CA9 #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_RA 0x11CAA #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_LA 0x11CAB #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_SHA 0x11CAC #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_SA 0x11CAD #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_HA 0x11CAE #define T_UTF_32_MARCHEN_SUBJOINED_LETTER_A 0x11CAF #define T_UTF_32_MARCHEN_VOWEL_SIGN_AA 0x11CB0 #define T_UTF_32_MARCHEN_VOWEL_SIGN_I 0x11CB1 #define T_UTF_32_MARCHEN_VOWEL_SIGN_U 0x11CB2 #define T_UTF_32_MARCHEN_VOWEL_SIGN_E 0x11CB3 #define T_UTF_32_MARCHEN_VOWEL_SIGN_O 0x11CB4 #define T_UTF_32_MARCHEN_SIGN_ANUSVARA 0x11CB5 #define T_UTF_32_MARCHEN_SIGN_CANDRABINDU 0x11CB6 #define T_UTF_32_MASARAM_GONDI_LETTER_A 0x11D00 #define T_UTF_32_MASARAM_GONDI_LETTER_AA 0x11D01 #define T_UTF_32_MASARAM_GONDI_LETTER_I 0x11D02 #define T_UTF_32_MASARAM_GONDI_LETTER_II 0x11D03 #define T_UTF_32_MASARAM_GONDI_LETTER_U 0x11D04 #define T_UTF_32_MASARAM_GONDI_LETTER_UU 0x11D05 #define T_UTF_32_MASARAM_GONDI_LETTER_E 0x11D06 #define T_UTF_32_MASARAM_GONDI_LETTER_AI 0x11D08 #define T_UTF_32_MASARAM_GONDI_LETTER_O 0x11D09 #define T_UTF_32_MASARAM_GONDI_LETTER_AU 0x11D0B #define T_UTF_32_MASARAM_GONDI_LETTER_KA 0x11D0C #define T_UTF_32_MASARAM_GONDI_LETTER_KHA 0x11D0D #define T_UTF_32_MASARAM_GONDI_LETTER_GA 0x11D0E #define T_UTF_32_MASARAM_GONDI_LETTER_GHA 0x11D0F #define T_UTF_32_MASARAM_GONDI_LETTER_NGA 0x11D10 #define T_UTF_32_MASARAM_GONDI_LETTER_CA 0x11D11 #define T_UTF_32_MASARAM_GONDI_LETTER_CHA 0x11D12 #define T_UTF_32_MASARAM_GONDI_LETTER_JA 0x11D13 #define T_UTF_32_MASARAM_GONDI_LETTER_JHA 0x11D14 #define T_UTF_32_MASARAM_GONDI_LETTER_NYA 0x11D15 #define T_UTF_32_MASARAM_GONDI_LETTER_TTA 0x11D16 #define T_UTF_32_MASARAM_GONDI_LETTER_TTHA 0x11D17 #define T_UTF_32_MASARAM_GONDI_LETTER_DDA 0x11D18 #define T_UTF_32_MASARAM_GONDI_LETTER_DDHA 0x11D19 #define T_UTF_32_MASARAM_GONDI_LETTER_NNA 0x11D1A #define T_UTF_32_MASARAM_GONDI_LETTER_TA 0x11D1B #define T_UTF_32_MASARAM_GONDI_LETTER_THA 0x11D1C #define T_UTF_32_MASARAM_GONDI_LETTER_DA 0x11D1D #define T_UTF_32_MASARAM_GONDI_LETTER_DHA 0x11D1E #define T_UTF_32_MASARAM_GONDI_LETTER_NA 0x11D1F #define T_UTF_32_MASARAM_GONDI_LETTER_PA 0x11D20 #define T_UTF_32_MASARAM_GONDI_LETTER_PHA 0x11D21 #define T_UTF_32_MASARAM_GONDI_LETTER_BA 0x11D22 #define T_UTF_32_MASARAM_GONDI_LETTER_BHA 0x11D23 #define T_UTF_32_MASARAM_GONDI_LETTER_MA 0x11D24 #define T_UTF_32_MASARAM_GONDI_LETTER_YA 0x11D25 #define T_UTF_32_MASARAM_GONDI_LETTER_RA 0x11D26 #define T_UTF_32_MASARAM_GONDI_LETTER_LA 0x11D27 #define T_UTF_32_MASARAM_GONDI_LETTER_VA 0x11D28 #define T_UTF_32_MASARAM_GONDI_LETTER_SHA 0x11D29 #define T_UTF_32_MASARAM_GONDI_LETTER_SSA 0x11D2A #define T_UTF_32_MASARAM_GONDI_LETTER_SA 0x11D2B #define T_UTF_32_MASARAM_GONDI_LETTER_HA 0x11D2C #define T_UTF_32_MASARAM_GONDI_LETTER_LLA 0x11D2D #define T_UTF_32_MASARAM_GONDI_LETTER_KSSA 0x11D2E #define T_UTF_32_MASARAM_GONDI_LETTER_JNYA 0x11D2F #define T_UTF_32_MASARAM_GONDI_LETTER_TRA 0x11D30 #define T_UTF_32_MASARAM_GONDI_VOWEL_SIGN_AA 0x11D31 #define T_UTF_32_MASARAM_GONDI_VOWEL_SIGN_I 0x11D32 #define T_UTF_32_MASARAM_GONDI_VOWEL_SIGN_II 0x11D33 #define T_UTF_32_MASARAM_GONDI_VOWEL_SIGN_U 0x11D34 #define T_UTF_32_MASARAM_GONDI_VOWEL_SIGN_UU 0x11D35 #define T_UTF_32_MASARAM_GONDI_VOWEL_SIGN_VOCALIC_R 0x11D36 #define T_UTF_32_MASARAM_GONDI_VOWEL_SIGN_E 0x11D3A #define T_UTF_32_MASARAM_GONDI_VOWEL_SIGN_AI 0x11D3C #define T_UTF_32_MASARAM_GONDI_VOWEL_SIGN_O 0x11D3D #define T_UTF_32_MASARAM_GONDI_VOWEL_SIGN_AU 0x11D3F #define T_UTF_32_MASARAM_GONDI_SIGN_ANUSVARA 0x11D40 #define T_UTF_32_MASARAM_GONDI_SIGN_VISARGA 0x11D41 #define T_UTF_32_MASARAM_GONDI_SIGN_NUKTA 0x11D42 #define T_UTF_32_MASARAM_GONDI_SIGN_CANDRA 0x11D43 #define T_UTF_32_MASARAM_GONDI_SIGN_HALANTA 0x11D44 #define T_UTF_32_MASARAM_GONDI_VIRAMA 0x11D45 #define T_UTF_32_MASARAM_GONDI_REPHA 0x11D46 #define T_UTF_32_MASARAM_GONDI_RA_KARA 0x11D47 #define T_UTF_32_MASARAM_GONDI_DIGIT_ZERO 0x11D50 #define T_UTF_32_MASARAM_GONDI_DIGIT_ONE 0x11D51 #define T_UTF_32_MASARAM_GONDI_DIGIT_TWO 0x11D52 #define T_UTF_32_MASARAM_GONDI_DIGIT_THREE 0x11D53 #define T_UTF_32_MASARAM_GONDI_DIGIT_FOUR 0x11D54 #define T_UTF_32_MASARAM_GONDI_DIGIT_FIVE 0x11D55 #define T_UTF_32_MASARAM_GONDI_DIGIT_SIX 0x11D56 #define T_UTF_32_MASARAM_GONDI_DIGIT_SEVEN 0x11D57 #define T_UTF_32_MASARAM_GONDI_DIGIT_EIGHT 0x11D58 #define T_UTF_32_MASARAM_GONDI_DIGIT_NINE 0x11D59 #define T_UTF_32_CUNEIFORM_SIGN_A 0x12000 #define T_UTF_32_CUNEIFORM_SIGN_A_TIMES_A 0x12001 #define T_UTF_32_CUNEIFORM_SIGN_A_TIMES_BAD 0x12002 #define T_UTF_32_CUNEIFORM_SIGN_A_TIMES_GAN2_TENU 0x12003 #define T_UTF_32_CUNEIFORM_SIGN_A_TIMES_HA 0x12004 #define T_UTF_32_CUNEIFORM_SIGN_A_TIMES_IGI 0x12005 #define T_UTF_32_CUNEIFORM_SIGN_A_TIMES_LAGAR_GUNU 0x12006 #define T_UTF_32_CUNEIFORM_SIGN_A_TIMES_MUSH 0x12007 #define T_UTF_32_CUNEIFORM_SIGN_A_TIMES_SAG 0x12008 #define T_UTF_32_CUNEIFORM_SIGN_A2 0x12009 #define T_UTF_32_CUNEIFORM_SIGN_AB 0x1200A #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_ASH2 0x1200B #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_DUN3_GUNU 0x1200C #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_GAL 0x1200D #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_GAN2_TENU 0x1200E #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_HA 0x1200F #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_IGI_GUNU 0x12010 #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_IMIN 0x12011 #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_LAGAB 0x12012 #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_SHESH 0x12013 #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_U_PLUS_U_PLUS_U 0x12014 #define T_UTF_32_CUNEIFORM_SIGN_AB_GUNU 0x12015 #define T_UTF_32_CUNEIFORM_SIGN_AB2 0x12016 #define T_UTF_32_CUNEIFORM_SIGN_AB2_TIMES_BALAG 0x12017 #define T_UTF_32_CUNEIFORM_SIGN_AB2_TIMES_GAN2_TENU 0x12018 #define T_UTF_32_CUNEIFORM_SIGN_AB2_TIMES_ME_PLUS_EN 0x12019 #define T_UTF_32_CUNEIFORM_SIGN_AB2_TIMES_SHA3 0x1201A #define T_UTF_32_CUNEIFORM_SIGN_AB2_TIMES_TAK4 0x1201B #define T_UTF_32_CUNEIFORM_SIGN_AD 0x1201C #define T_UTF_32_CUNEIFORM_SIGN_AK 0x1201D #define T_UTF_32_CUNEIFORM_SIGN_AK_TIMES_ERIN2 0x1201E #define T_UTF_32_CUNEIFORM_SIGN_AK_TIMES_SHITA_PLUS_GISH 0x1201F #define T_UTF_32_CUNEIFORM_SIGN_AL 0x12020 #define T_UTF_32_CUNEIFORM_SIGN_AL_TIMES_AL 0x12021 #define T_UTF_32_CUNEIFORM_SIGN_AL_TIMES_DIM2 0x12022 #define T_UTF_32_CUNEIFORM_SIGN_AL_TIMES_GISH 0x12023 #define T_UTF_32_CUNEIFORM_SIGN_AL_TIMES_HA 0x12024 #define T_UTF_32_CUNEIFORM_SIGN_AL_TIMES_KAD3 0x12025 #define T_UTF_32_CUNEIFORM_SIGN_AL_TIMES_KI 0x12026 #define T_UTF_32_CUNEIFORM_SIGN_AL_TIMES_SHE 0x12027 #define T_UTF_32_CUNEIFORM_SIGN_AL_TIMES_USH 0x12028 #define T_UTF_32_CUNEIFORM_SIGN_ALAN 0x12029 #define T_UTF_32_CUNEIFORM_SIGN_ALEPH 0x1202A #define T_UTF_32_CUNEIFORM_SIGN_AMAR 0x1202B #define T_UTF_32_CUNEIFORM_SIGN_AMAR_TIMES_SHE 0x1202C #define T_UTF_32_CUNEIFORM_SIGN_AN 0x1202D #define T_UTF_32_CUNEIFORM_SIGN_AN_OVER_AN 0x1202E #define T_UTF_32_CUNEIFORM_SIGN_AN_THREE_TIMES 0x1202F #define T_UTF_32_CUNEIFORM_SIGN_AN_PLUS_NAGA_OPPOSING_AN_PLUS_NAGA 0x12030 #define T_UTF_32_CUNEIFORM_SIGN_AN_PLUS_NAGA_SQUARED 0x12031 #define T_UTF_32_CUNEIFORM_SIGN_ANSHE 0x12032 #define T_UTF_32_CUNEIFORM_SIGN_APIN 0x12033 #define T_UTF_32_CUNEIFORM_SIGN_ARAD 0x12034 #define T_UTF_32_CUNEIFORM_SIGN_ARAD_TIMES_KUR 0x12035 #define T_UTF_32_CUNEIFORM_SIGN_ARKAB 0x12036 #define T_UTF_32_CUNEIFORM_SIGN_ASAL2 0x12037 #define T_UTF_32_CUNEIFORM_SIGN_ASH 0x12038 #define T_UTF_32_CUNEIFORM_SIGN_ASH_ZIDA_TENU 0x12039 #define T_UTF_32_CUNEIFORM_SIGN_ASH_KABA_TENU 0x1203A #define T_UTF_32_CUNEIFORM_SIGN_ASH_OVER_ASH_TUG2_OVER_TUG2_TUG2_OVER_TUG2_PAP 0x1203B #define T_UTF_32_CUNEIFORM_SIGN_ASH_OVER_ASH_OVER_ASH 0x1203C #define T_UTF_32_CUNEIFORM_SIGN_ASH_OVER_ASH_OVER_ASH_CROSSING_ASH_OVER_ASH_OVER_ASH 0x1203D #define T_UTF_32_CUNEIFORM_SIGN_ASH2 0x1203E #define T_UTF_32_CUNEIFORM_SIGN_ASHGAB 0x1203F #define T_UTF_32_CUNEIFORM_SIGN_BA 0x12040 #define T_UTF_32_CUNEIFORM_SIGN_BAD 0x12041 #define T_UTF_32_CUNEIFORM_SIGN_BAG3 0x12042 #define T_UTF_32_CUNEIFORM_SIGN_BAHAR2 0x12043 #define T_UTF_32_CUNEIFORM_SIGN_BAL 0x12044 #define T_UTF_32_CUNEIFORM_SIGN_BAL_OVER_BAL 0x12045 #define T_UTF_32_CUNEIFORM_SIGN_BALAG 0x12046 #define T_UTF_32_CUNEIFORM_SIGN_BAR 0x12047 #define T_UTF_32_CUNEIFORM_SIGN_BARA2 0x12048 #define T_UTF_32_CUNEIFORM_SIGN_BI 0x12049 #define T_UTF_32_CUNEIFORM_SIGN_BI_TIMES_A 0x1204A #define T_UTF_32_CUNEIFORM_SIGN_BI_TIMES_GAR 0x1204B #define T_UTF_32_CUNEIFORM_SIGN_BI_TIMES_IGI_GUNU 0x1204C #define T_UTF_32_CUNEIFORM_SIGN_BU 0x1204D #define T_UTF_32_CUNEIFORM_SIGN_BU_OVER_BU_AB 0x1204E #define T_UTF_32_CUNEIFORM_SIGN_BU_OVER_BU_UN 0x1204F #define T_UTF_32_CUNEIFORM_SIGN_BU_CROSSING_BU 0x12050 #define T_UTF_32_CUNEIFORM_SIGN_BULUG 0x12051 #define T_UTF_32_CUNEIFORM_SIGN_BULUG_OVER_BULUG 0x12052 #define T_UTF_32_CUNEIFORM_SIGN_BUR 0x12053 #define T_UTF_32_CUNEIFORM_SIGN_BUR2 0x12054 #define T_UTF_32_CUNEIFORM_SIGN_DA 0x12055 #define T_UTF_32_CUNEIFORM_SIGN_DAG 0x12056 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_A_PLUS_MASH 0x12057 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_AMAR 0x12058 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_BALAG 0x12059 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_BI 0x1205A #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_GA 0x1205B #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_GA_PLUS_MASH 0x1205C #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_GI 0x1205D #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_GIR2 0x1205E #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_GUD 0x1205F #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_HA 0x12060 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_IR 0x12061 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_IR_PLUS_LU 0x12062 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_KAK 0x12063 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_LA 0x12064 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_LU 0x12065 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_LU_PLUS_MASH2 0x12066 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_LUM 0x12067 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_NE 0x12068 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_PAP_PLUS_PAP 0x12069 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_SI 0x1206A #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_TAK4 0x1206B #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_U2_PLUS_GIR2 0x1206C #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_USH 0x1206D #define T_UTF_32_CUNEIFORM_SIGN_DAM 0x1206E #define T_UTF_32_CUNEIFORM_SIGN_DAR 0x1206F #define T_UTF_32_CUNEIFORM_SIGN_DARA3 0x12070 #define T_UTF_32_CUNEIFORM_SIGN_DARA4 0x12071 #define T_UTF_32_CUNEIFORM_SIGN_DI 0x12072 #define T_UTF_32_CUNEIFORM_SIGN_DIB 0x12073 #define T_UTF_32_CUNEIFORM_SIGN_DIM 0x12074 #define T_UTF_32_CUNEIFORM_SIGN_DIM_TIMES_SHE 0x12075 #define T_UTF_32_CUNEIFORM_SIGN_DIM2 0x12076 #define T_UTF_32_CUNEIFORM_SIGN_DIN 0x12077 #define T_UTF_32_CUNEIFORM_SIGN_DIN_KASKAL_U_GUNU_DISH 0x12078 #define T_UTF_32_CUNEIFORM_SIGN_DISH 0x12079 #define T_UTF_32_CUNEIFORM_SIGN_DU 0x1207A #define T_UTF_32_CUNEIFORM_SIGN_DU_OVER_DU 0x1207B #define T_UTF_32_CUNEIFORM_SIGN_DU_GUNU 0x1207C #define T_UTF_32_CUNEIFORM_SIGN_DU_SHESHIG 0x1207D #define T_UTF_32_CUNEIFORM_SIGN_DUB 0x1207E #define T_UTF_32_CUNEIFORM_SIGN_DUB_TIMES_ESH2 0x1207F #define T_UTF_32_CUNEIFORM_SIGN_DUB2 0x12080 #define T_UTF_32_CUNEIFORM_SIGN_DUG 0x12081 #define T_UTF_32_CUNEIFORM_SIGN_DUGUD 0x12082 #define T_UTF_32_CUNEIFORM_SIGN_DUH 0x12083 #define T_UTF_32_CUNEIFORM_SIGN_DUN 0x12084 #define T_UTF_32_CUNEIFORM_SIGN_DUN3 0x12085 #define T_UTF_32_CUNEIFORM_SIGN_DUN3_GUNU 0x12086 #define T_UTF_32_CUNEIFORM_SIGN_DUN3_GUNU_GUNU 0x12087 #define T_UTF_32_CUNEIFORM_SIGN_DUN4 0x12088 #define T_UTF_32_CUNEIFORM_SIGN_DUR2 0x12089 #define T_UTF_32_CUNEIFORM_SIGN_E 0x1208A #define T_UTF_32_CUNEIFORM_SIGN_E_TIMES_PAP 0x1208B #define T_UTF_32_CUNEIFORM_SIGN_E_OVER_E_NUN_OVER_NUN 0x1208C #define T_UTF_32_CUNEIFORM_SIGN_E2 0x1208D #define T_UTF_32_CUNEIFORM_SIGN_E2_TIMES_A_PLUS_HA_PLUS_DA 0x1208E #define T_UTF_32_CUNEIFORM_SIGN_E2_TIMES_GAR 0x1208F #define T_UTF_32_CUNEIFORM_SIGN_E2_TIMES_MI 0x12090 #define T_UTF_32_CUNEIFORM_SIGN_E2_TIMES_SAL 0x12091 #define T_UTF_32_CUNEIFORM_SIGN_E2_TIMES_SHE 0x12092 #define T_UTF_32_CUNEIFORM_SIGN_E2_TIMES_U 0x12093 #define T_UTF_32_CUNEIFORM_SIGN_EDIN 0x12094 #define T_UTF_32_CUNEIFORM_SIGN_EGIR 0x12095 #define T_UTF_32_CUNEIFORM_SIGN_EL 0x12096 #define T_UTF_32_CUNEIFORM_SIGN_EN 0x12097 #define T_UTF_32_CUNEIFORM_SIGN_EN_TIMES_GAN2 0x12098 #define T_UTF_32_CUNEIFORM_SIGN_EN_TIMES_GAN2_TENU 0x12099 #define T_UTF_32_CUNEIFORM_SIGN_EN_TIMES_ME 0x1209A #define T_UTF_32_CUNEIFORM_SIGN_EN_CROSSING_EN 0x1209B #define T_UTF_32_CUNEIFORM_SIGN_EN_OPPOSING_EN 0x1209C #define T_UTF_32_CUNEIFORM_SIGN_EN_SQUARED 0x1209D #define T_UTF_32_CUNEIFORM_SIGN_EREN 0x1209E #define T_UTF_32_CUNEIFORM_SIGN_ERIN2 0x1209F #define T_UTF_32_CUNEIFORM_SIGN_ESH2 0x120A0 #define T_UTF_32_CUNEIFORM_SIGN_EZEN 0x120A1 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_A 0x120A2 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_A_PLUS_LAL 0x120A3 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_A_PLUS_LAL_TIMES_LAL 0x120A4 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_AN 0x120A5 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_BAD 0x120A6 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_DUN3_GUNU 0x120A7 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_DUN3_GUNU_GUNU 0x120A8 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_HA 0x120A9 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_HA_GUNU 0x120AA #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_IGI_GUNU 0x120AB #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_KASKAL 0x120AC #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_KASKAL_SQUARED 0x120AD #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_KU3 0x120AE #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_LA 0x120AF #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_LAL_TIMES_LAL 0x120B0 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_LI 0x120B1 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_LU 0x120B2 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_U2 0x120B3 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_UD 0x120B4 #define T_UTF_32_CUNEIFORM_SIGN_GA 0x120B5 #define T_UTF_32_CUNEIFORM_SIGN_GA_GUNU 0x120B6 #define T_UTF_32_CUNEIFORM_SIGN_GA2 0x120B7 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_A_PLUS_DA_PLUS_HA 0x120B8 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_A_PLUS_HA 0x120B9 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_A_PLUS_IGI 0x120BA #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_AB2_TENU_PLUS_TAB 0x120BB #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_AN 0x120BC #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_ASH 0x120BD #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_ASH2_PLUS_GAL 0x120BE #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_BAD 0x120BF #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_BAR_PLUS_RA 0x120C0 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_BUR 0x120C1 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_BUR_PLUS_RA 0x120C2 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_DA 0x120C3 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_DI 0x120C4 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_DIM_TIMES_SHE 0x120C5 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_DUB 0x120C6 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_EL 0x120C7 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_EL_PLUS_LA 0x120C8 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_EN 0x120C9 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_EN_TIMES_GAN2_TENU 0x120CA #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_GAN2_TENU 0x120CB #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_GAR 0x120CC #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_GI 0x120CD #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_GI4 0x120CE #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_GI4_PLUS_A 0x120CF #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_GIR2_PLUS_SU 0x120D0 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_HA_PLUS_LU_PLUS_ESH2 0x120D1 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_HAL 0x120D2 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_HAL_PLUS_LA 0x120D3 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_HI_PLUS_LI 0x120D4 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_HUB2 0x120D5 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_IGI_GUNU 0x120D6 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_ISH_PLUS_HU_PLUS_ASH 0x120D7 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_KAK 0x120D8 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_KASKAL 0x120D9 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_KID 0x120DA #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_KID_PLUS_LAL 0x120DB #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_KU3_PLUS_AN 0x120DC #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_LA 0x120DD #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_ME_PLUS_EN 0x120DE #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_MI 0x120DF #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_NUN 0x120E0 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_NUN_OVER_NUN 0x120E1 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_PA 0x120E2 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_SAL 0x120E3 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_SAR 0x120E4 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_SHE 0x120E5 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_SHE_PLUS_TUR 0x120E6 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_SHID 0x120E7 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_SUM 0x120E8 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_TAK4 0x120E9 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_U 0x120EA #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_UD 0x120EB #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_UD_PLUS_DU 0x120EC #define T_UTF_32_CUNEIFORM_SIGN_GA2_OVER_GA2 0x120ED #define T_UTF_32_CUNEIFORM_SIGN_GABA 0x120EE #define T_UTF_32_CUNEIFORM_SIGN_GABA_CROSSING_GABA 0x120EF #define T_UTF_32_CUNEIFORM_SIGN_GAD 0x120F0 #define T_UTF_32_CUNEIFORM_SIGN_GAD_OVER_GAD_GAR_OVER_GAR 0x120F1 #define T_UTF_32_CUNEIFORM_SIGN_GAL 0x120F2 #define T_UTF_32_CUNEIFORM_SIGN_GAL_GAD_OVER_GAD_GAR_OVER_GAR 0x120F3 #define T_UTF_32_CUNEIFORM_SIGN_GALAM 0x120F4 #define T_UTF_32_CUNEIFORM_SIGN_GAM 0x120F5 #define T_UTF_32_CUNEIFORM_SIGN_GAN 0x120F6 #define T_UTF_32_CUNEIFORM_SIGN_GAN2 0x120F7 #define T_UTF_32_CUNEIFORM_SIGN_GAN2_TENU 0x120F8 #define T_UTF_32_CUNEIFORM_SIGN_GAN2_OVER_GAN2 0x120F9 #define T_UTF_32_CUNEIFORM_SIGN_GAN2_CROSSING_GAN2 0x120FA #define T_UTF_32_CUNEIFORM_SIGN_GAR 0x120FB #define T_UTF_32_CUNEIFORM_SIGN_GAR3 0x120FC #define T_UTF_32_CUNEIFORM_SIGN_GASHAN 0x120FD #define T_UTF_32_CUNEIFORM_SIGN_GESHTIN 0x120FE #define T_UTF_32_CUNEIFORM_SIGN_GESHTIN_TIMES_KUR 0x120FF #define T_UTF_32_CUNEIFORM_SIGN_GI 0x12100 #define T_UTF_32_CUNEIFORM_SIGN_GI_TIMES_E 0x12101 #define T_UTF_32_CUNEIFORM_SIGN_GI_TIMES_U 0x12102 #define T_UTF_32_CUNEIFORM_SIGN_GI_CROSSING_GI 0x12103 #define T_UTF_32_CUNEIFORM_SIGN_GI4 0x12104 #define T_UTF_32_CUNEIFORM_SIGN_GI4_OVER_GI4 0x12105 #define T_UTF_32_CUNEIFORM_SIGN_GI4_CROSSING_GI4 0x12106 #define T_UTF_32_CUNEIFORM_SIGN_GIDIM 0x12107 #define T_UTF_32_CUNEIFORM_SIGN_GIR2 0x12108 #define T_UTF_32_CUNEIFORM_SIGN_GIR2_GUNU 0x12109 #define T_UTF_32_CUNEIFORM_SIGN_GIR3 0x1210A #define T_UTF_32_CUNEIFORM_SIGN_GIR3_TIMES_A_PLUS_IGI 0x1210B #define T_UTF_32_CUNEIFORM_SIGN_GIR3_TIMES_GAN2_TENU 0x1210C #define T_UTF_32_CUNEIFORM_SIGN_GIR3_TIMES_IGI 0x1210D #define T_UTF_32_CUNEIFORM_SIGN_GIR3_TIMES_LU_PLUS_IGI 0x1210E #define T_UTF_32_CUNEIFORM_SIGN_GIR3_TIMES_PA 0x1210F #define T_UTF_32_CUNEIFORM_SIGN_GISAL 0x12110 #define T_UTF_32_CUNEIFORM_SIGN_GISH 0x12111 #define T_UTF_32_CUNEIFORM_SIGN_GISH_CROSSING_GISH 0x12112 #define T_UTF_32_CUNEIFORM_SIGN_GISH_TIMES_BAD 0x12113 #define T_UTF_32_CUNEIFORM_SIGN_GISH_TIMES_TAK4 0x12114 #define T_UTF_32_CUNEIFORM_SIGN_GISH_TENU 0x12115 #define T_UTF_32_CUNEIFORM_SIGN_GU 0x12116 #define T_UTF_32_CUNEIFORM_SIGN_GU_CROSSING_GU 0x12117 #define T_UTF_32_CUNEIFORM_SIGN_GU2 0x12118 #define T_UTF_32_CUNEIFORM_SIGN_GU2_TIMES_KAK 0x12119 #define T_UTF_32_CUNEIFORM_SIGN_GU2_TIMES_KAK_TIMES_IGI_GUNU 0x1211A #define T_UTF_32_CUNEIFORM_SIGN_GU2_TIMES_NUN 0x1211B #define T_UTF_32_CUNEIFORM_SIGN_GU2_TIMES_SAL_PLUS_TUG2 0x1211C #define T_UTF_32_CUNEIFORM_SIGN_GU2_GUNU 0x1211D #define T_UTF_32_CUNEIFORM_SIGN_GUD 0x1211E #define T_UTF_32_CUNEIFORM_SIGN_GUD_TIMES_A_PLUS_KUR 0x1211F #define T_UTF_32_CUNEIFORM_SIGN_GUD_TIMES_KUR 0x12120 #define T_UTF_32_CUNEIFORM_SIGN_GUD_OVER_GUD_LUGAL 0x12121 #define T_UTF_32_CUNEIFORM_SIGN_GUL 0x12122 #define T_UTF_32_CUNEIFORM_SIGN_GUM 0x12123 #define T_UTF_32_CUNEIFORM_SIGN_GUM_TIMES_SHE 0x12124 #define T_UTF_32_CUNEIFORM_SIGN_GUR 0x12125 #define T_UTF_32_CUNEIFORM_SIGN_GUR7 0x12126 #define T_UTF_32_CUNEIFORM_SIGN_GURUN 0x12127 #define T_UTF_32_CUNEIFORM_SIGN_GURUSH 0x12128 #define T_UTF_32_CUNEIFORM_SIGN_HA 0x12129 #define T_UTF_32_CUNEIFORM_SIGN_HA_TENU 0x1212A #define T_UTF_32_CUNEIFORM_SIGN_HA_GUNU 0x1212B #define T_UTF_32_CUNEIFORM_SIGN_HAL 0x1212C #define T_UTF_32_CUNEIFORM_SIGN_HI 0x1212D #define T_UTF_32_CUNEIFORM_SIGN_HI_TIMES_ASH 0x1212E #define T_UTF_32_CUNEIFORM_SIGN_HI_TIMES_ASH2 0x1212F #define T_UTF_32_CUNEIFORM_SIGN_HI_TIMES_BAD 0x12130 #define T_UTF_32_CUNEIFORM_SIGN_HI_TIMES_DISH 0x12131 #define T_UTF_32_CUNEIFORM_SIGN_HI_TIMES_GAD 0x12132 #define T_UTF_32_CUNEIFORM_SIGN_HI_TIMES_KIN 0x12133 #define T_UTF_32_CUNEIFORM_SIGN_HI_TIMES_NUN 0x12134 #define T_UTF_32_CUNEIFORM_SIGN_HI_TIMES_SHE 0x12135 #define T_UTF_32_CUNEIFORM_SIGN_HI_TIMES_U 0x12136 #define T_UTF_32_CUNEIFORM_SIGN_HU 0x12137 #define T_UTF_32_CUNEIFORM_SIGN_HUB2 0x12138 #define T_UTF_32_CUNEIFORM_SIGN_HUB2_TIMES_AN 0x12139 #define T_UTF_32_CUNEIFORM_SIGN_HUB2_TIMES_HAL 0x1213A #define T_UTF_32_CUNEIFORM_SIGN_HUB2_TIMES_KASKAL 0x1213B #define T_UTF_32_CUNEIFORM_SIGN_HUB2_TIMES_LISH 0x1213C #define T_UTF_32_CUNEIFORM_SIGN_HUB2_TIMES_UD 0x1213D #define T_UTF_32_CUNEIFORM_SIGN_HUL2 0x1213E #define T_UTF_32_CUNEIFORM_SIGN_I 0x1213F #define T_UTF_32_CUNEIFORM_SIGN_I_A 0x12140 #define T_UTF_32_CUNEIFORM_SIGN_IB 0x12141 #define T_UTF_32_CUNEIFORM_SIGN_IDIM 0x12142 #define T_UTF_32_CUNEIFORM_SIGN_IDIM_OVER_IDIM_BUR 0x12143 #define T_UTF_32_CUNEIFORM_SIGN_IDIM_OVER_IDIM_SQUARED 0x12144 #define T_UTF_32_CUNEIFORM_SIGN_IG 0x12145 #define T_UTF_32_CUNEIFORM_SIGN_IGI 0x12146 #define T_UTF_32_CUNEIFORM_SIGN_IGI_DIB 0x12147 #define T_UTF_32_CUNEIFORM_SIGN_IGI_RI 0x12148 #define T_UTF_32_CUNEIFORM_SIGN_IGI_OVER_IGI_SHIR_OVER_SHIR_UD_OVER_UD 0x12149 #define T_UTF_32_CUNEIFORM_SIGN_IGI_GUNU 0x1214A #define T_UTF_32_CUNEIFORM_SIGN_IL 0x1214B #define T_UTF_32_CUNEIFORM_SIGN_IL_TIMES_GAN2_TENU 0x1214C #define T_UTF_32_CUNEIFORM_SIGN_IL2 0x1214D #define T_UTF_32_CUNEIFORM_SIGN_IM 0x1214E #define T_UTF_32_CUNEIFORM_SIGN_IM_TIMES_TAK4 0x1214F #define T_UTF_32_CUNEIFORM_SIGN_IM_CROSSING_IM 0x12150 #define T_UTF_32_CUNEIFORM_SIGN_IM_OPPOSING_IM 0x12151 #define T_UTF_32_CUNEIFORM_SIGN_IM_SQUARED 0x12152 #define T_UTF_32_CUNEIFORM_SIGN_IMIN 0x12153 #define T_UTF_32_CUNEIFORM_SIGN_IN 0x12154 #define T_UTF_32_CUNEIFORM_SIGN_IR 0x12155 #define T_UTF_32_CUNEIFORM_SIGN_ISH 0x12156 #define T_UTF_32_CUNEIFORM_SIGN_KA 0x12157 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_A 0x12158 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_AD 0x12159 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_AD_PLUS_KU3 0x1215A #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_ASH2 0x1215B #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_BAD 0x1215C #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_BALAG 0x1215D #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_BAR 0x1215E #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_BI 0x1215F #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_ERIN2 0x12160 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_ESH2 0x12161 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GA 0x12162 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GAL 0x12163 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GAN2_TENU 0x12164 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GAR 0x12165 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GAR_PLUS_SHA3_PLUS_A 0x12166 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GI 0x12167 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GIR2 0x12168 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GISH_PLUS_SAR 0x12169 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GISH_CROSSING_GISH 0x1216A #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GU 0x1216B #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GUR7 0x1216C #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_IGI 0x1216D #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_IM 0x1216E #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_KAK 0x1216F #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_KI 0x12170 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_KID 0x12171 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_LI 0x12172 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_LU 0x12173 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_ME 0x12174 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_ME_PLUS_DU 0x12175 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_ME_PLUS_GI 0x12176 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_ME_PLUS_TE 0x12177 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_MI 0x12178 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_MI_PLUS_NUNUZ 0x12179 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_NE 0x1217A #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_NUN 0x1217B #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_PI 0x1217C #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_RU 0x1217D #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_SA 0x1217E #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_SAR 0x1217F #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_SHA 0x12180 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_SHE 0x12181 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_SHID 0x12182 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_SHU 0x12183 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_SIG 0x12184 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_SUHUR 0x12185 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_TAR 0x12186 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_U 0x12187 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_U2 0x12188 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_UD 0x12189 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_UMUM_TIMES_PA 0x1218A #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_USH 0x1218B #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_ZI 0x1218C #define T_UTF_32_CUNEIFORM_SIGN_KA2 0x1218D #define T_UTF_32_CUNEIFORM_SIGN_KA2_CROSSING_KA2 0x1218E #define T_UTF_32_CUNEIFORM_SIGN_KAB 0x1218F #define T_UTF_32_CUNEIFORM_SIGN_KAD2 0x12190 #define T_UTF_32_CUNEIFORM_SIGN_KAD3 0x12191 #define T_UTF_32_CUNEIFORM_SIGN_KAD4 0x12192 #define T_UTF_32_CUNEIFORM_SIGN_KAD5 0x12193 #define T_UTF_32_CUNEIFORM_SIGN_KAD5_OVER_KAD5 0x12194 #define T_UTF_32_CUNEIFORM_SIGN_KAK 0x12195 #define T_UTF_32_CUNEIFORM_SIGN_KAK_TIMES_IGI_GUNU 0x12196 #define T_UTF_32_CUNEIFORM_SIGN_KAL 0x12197 #define T_UTF_32_CUNEIFORM_SIGN_KAL_TIMES_BAD 0x12198 #define T_UTF_32_CUNEIFORM_SIGN_KAL_CROSSING_KAL 0x12199 #define T_UTF_32_CUNEIFORM_SIGN_KAM2 0x1219A #define T_UTF_32_CUNEIFORM_SIGN_KAM4 0x1219B #define T_UTF_32_CUNEIFORM_SIGN_KASKAL 0x1219C #define T_UTF_32_CUNEIFORM_SIGN_KASKAL_LAGAB_TIMES_U_OVER_LAGAB_TIMES_U 0x1219D #define T_UTF_32_CUNEIFORM_SIGN_KASKAL_OVER_KASKAL_LAGAB_TIMES_U_OVER_LAGAB_TIMES_U 0x1219E #define T_UTF_32_CUNEIFORM_SIGN_KESH2 0x1219F #define T_UTF_32_CUNEIFORM_SIGN_KI 0x121A0 #define T_UTF_32_CUNEIFORM_SIGN_KI_TIMES_BAD 0x121A1 #define T_UTF_32_CUNEIFORM_SIGN_KI_TIMES_U 0x121A2 #define T_UTF_32_CUNEIFORM_SIGN_KI_TIMES_UD 0x121A3 #define T_UTF_32_CUNEIFORM_SIGN_KID 0x121A4 #define T_UTF_32_CUNEIFORM_SIGN_KIN 0x121A5 #define T_UTF_32_CUNEIFORM_SIGN_KISAL 0x121A6 #define T_UTF_32_CUNEIFORM_SIGN_KISH 0x121A7 #define T_UTF_32_CUNEIFORM_SIGN_KISIM5 0x121A8 #define T_UTF_32_CUNEIFORM_SIGN_KISIM5_OVER_KISIM5 0x121A9 #define T_UTF_32_CUNEIFORM_SIGN_KU 0x121AA #define T_UTF_32_CUNEIFORM_SIGN_KU_OVER_HI_TIMES_ASH2_KU_OVER_HI_TIMES_ASH2 0x121AB #define T_UTF_32_CUNEIFORM_SIGN_KU3 0x121AC #define T_UTF_32_CUNEIFORM_SIGN_KU4 0x121AD #define T_UTF_32_CUNEIFORM_SIGN_KU4_VARIANT_FORM 0x121AE #define T_UTF_32_CUNEIFORM_SIGN_KU7 0x121AF #define T_UTF_32_CUNEIFORM_SIGN_KUL 0x121B0 #define T_UTF_32_CUNEIFORM_SIGN_KUL_GUNU 0x121B1 #define T_UTF_32_CUNEIFORM_SIGN_KUN 0x121B2 #define T_UTF_32_CUNEIFORM_SIGN_KUR 0x121B3 #define T_UTF_32_CUNEIFORM_SIGN_KUR_OPPOSING_KUR 0x121B4 #define T_UTF_32_CUNEIFORM_SIGN_KUSHU2 0x121B5 #define T_UTF_32_CUNEIFORM_SIGN_KWU318 0x121B6 #define T_UTF_32_CUNEIFORM_SIGN_LA 0x121B7 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB 0x121B8 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_A 0x121B9 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_A_PLUS_DA_PLUS_HA 0x121BA #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_A_PLUS_GAR 0x121BB #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_A_PLUS_LAL 0x121BC #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_AL 0x121BD #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_AN 0x121BE #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_ASH_ZIDA_TENU 0x121BF #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_BAD 0x121C0 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_BI 0x121C1 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_DAR 0x121C2 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_EN 0x121C3 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_GA 0x121C4 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_GAR 0x121C5 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_GUD 0x121C6 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_GUD_PLUS_GUD 0x121C7 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_HA 0x121C8 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_HAL 0x121C9 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_HI_TIMES_NUN 0x121CA #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_IGI_GUNU 0x121CB #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_IM 0x121CC #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_IM_PLUS_HA 0x121CD #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_IM_PLUS_LU 0x121CE #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_KI 0x121CF #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_KIN 0x121D0 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_KU3 0x121D1 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_KUL 0x121D2 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_KUL_PLUS_HI_PLUS_A 0x121D3 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_LAGAB 0x121D4 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_LISH 0x121D5 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_LU 0x121D6 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_LUL 0x121D7 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_ME 0x121D8 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_ME_PLUS_EN 0x121D9 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_MUSH 0x121DA #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_NE 0x121DB #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_SHE_PLUS_SUM 0x121DC #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_SHITA_PLUS_GISH_PLUS_ERIN2 0x121DD #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_SHITA_PLUS_GISH_TENU 0x121DE #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_SHU2 0x121DF #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_SHU2_PLUS_SHU2 0x121E0 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_SUM 0x121E1 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_TAG 0x121E2 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_TAK4 0x121E3 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_TE_PLUS_A_PLUS_SU_PLUS_NA 0x121E4 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_U 0x121E5 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_U_PLUS_A 0x121E6 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_U_PLUS_U_PLUS_U 0x121E7 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_U2_PLUS_ASH 0x121E8 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_UD 0x121E9 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_USH 0x121EA #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_SQUARED 0x121EB #define T_UTF_32_CUNEIFORM_SIGN_LAGAR 0x121EC #define T_UTF_32_CUNEIFORM_SIGN_LAGAR_TIMES_SHE 0x121ED #define T_UTF_32_CUNEIFORM_SIGN_LAGAR_TIMES_SHE_PLUS_SUM 0x121EE #define T_UTF_32_CUNEIFORM_SIGN_LAGAR_GUNU 0x121EF #define T_UTF_32_CUNEIFORM_SIGN_LAGAR_GUNU_OVER_LAGAR_GUNU_SHE 0x121F0 #define T_UTF_32_CUNEIFORM_SIGN_LAHSHU 0x121F1 #define T_UTF_32_CUNEIFORM_SIGN_LAL 0x121F2 #define T_UTF_32_CUNEIFORM_SIGN_LAL_TIMES_LAL 0x121F3 #define T_UTF_32_CUNEIFORM_SIGN_LAM 0x121F4 #define T_UTF_32_CUNEIFORM_SIGN_LAM_TIMES_KUR 0x121F5 #define T_UTF_32_CUNEIFORM_SIGN_LAM_TIMES_KUR_PLUS_RU 0x121F6 #define T_UTF_32_CUNEIFORM_SIGN_LI 0x121F7 #define T_UTF_32_CUNEIFORM_SIGN_LIL 0x121F8 #define T_UTF_32_CUNEIFORM_SIGN_LIMMU2 0x121F9 #define T_UTF_32_CUNEIFORM_SIGN_LISH 0x121FA #define T_UTF_32_CUNEIFORM_SIGN_LU 0x121FB #define T_UTF_32_CUNEIFORM_SIGN_LU_TIMES_BAD 0x121FC #define T_UTF_32_CUNEIFORM_SIGN_LU2 0x121FD #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_AL 0x121FE #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_BAD 0x121FF #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_ESH2 0x12200 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_ESH2_TENU 0x12201 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_GAN2_TENU 0x12202 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_HI_TIMES_BAD 0x12203 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_IM 0x12204 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_KAD2 0x12205 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_KAD3 0x12206 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_KAD3_PLUS_ASH 0x12207 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_KI 0x12208 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_LA_PLUS_ASH 0x12209 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_LAGAB 0x1220A #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_ME_PLUS_EN 0x1220B #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_NE 0x1220C #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_NU 0x1220D #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_SI_PLUS_ASH 0x1220E #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_SIK2_PLUS_BU 0x1220F #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_TUG2 0x12210 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TENU 0x12211 #define T_UTF_32_CUNEIFORM_SIGN_LU2_CROSSING_LU2 0x12212 #define T_UTF_32_CUNEIFORM_SIGN_LU2_OPPOSING_LU2 0x12213 #define T_UTF_32_CUNEIFORM_SIGN_LU2_SQUARED 0x12214 #define T_UTF_32_CUNEIFORM_SIGN_LU2_SHESHIG 0x12215 #define T_UTF_32_CUNEIFORM_SIGN_LU3 0x12216 #define T_UTF_32_CUNEIFORM_SIGN_LUGAL 0x12217 #define T_UTF_32_CUNEIFORM_SIGN_LUGAL_OVER_LUGAL 0x12218 #define T_UTF_32_CUNEIFORM_SIGN_LUGAL_OPPOSING_LUGAL 0x12219 #define T_UTF_32_CUNEIFORM_SIGN_LUGAL_SHESHIG 0x1221A #define T_UTF_32_CUNEIFORM_SIGN_LUH 0x1221B #define T_UTF_32_CUNEIFORM_SIGN_LUL 0x1221C #define T_UTF_32_CUNEIFORM_SIGN_LUM 0x1221D #define T_UTF_32_CUNEIFORM_SIGN_LUM_OVER_LUM 0x1221E #define T_UTF_32_CUNEIFORM_SIGN_LUM_OVER_LUM_GAR_OVER_GAR 0x1221F #define T_UTF_32_CUNEIFORM_SIGN_MA 0x12220 #define T_UTF_32_CUNEIFORM_SIGN_MA_TIMES_TAK4 0x12221 #define T_UTF_32_CUNEIFORM_SIGN_MA_GUNU 0x12222 #define T_UTF_32_CUNEIFORM_SIGN_MA2 0x12223 #define T_UTF_32_CUNEIFORM_SIGN_MAH 0x12224 #define T_UTF_32_CUNEIFORM_SIGN_MAR 0x12225 #define T_UTF_32_CUNEIFORM_SIGN_MASH 0x12226 #define T_UTF_32_CUNEIFORM_SIGN_MASH2 0x12227 #define T_UTF_32_CUNEIFORM_SIGN_ME 0x12228 #define T_UTF_32_CUNEIFORM_SIGN_MES 0x12229 #define T_UTF_32_CUNEIFORM_SIGN_MI 0x1222A #define T_UTF_32_CUNEIFORM_SIGN_MIN 0x1222B #define T_UTF_32_CUNEIFORM_SIGN_MU 0x1222C #define T_UTF_32_CUNEIFORM_SIGN_MU_OVER_MU 0x1222D #define T_UTF_32_CUNEIFORM_SIGN_MUG 0x1222E #define T_UTF_32_CUNEIFORM_SIGN_MUG_GUNU 0x1222F #define T_UTF_32_CUNEIFORM_SIGN_MUNSUB 0x12230 #define T_UTF_32_CUNEIFORM_SIGN_MURGU2 0x12231 #define T_UTF_32_CUNEIFORM_SIGN_MUSH 0x12232 #define T_UTF_32_CUNEIFORM_SIGN_MUSH_TIMES_A 0x12233 #define T_UTF_32_CUNEIFORM_SIGN_MUSH_TIMES_KUR 0x12234 #define T_UTF_32_CUNEIFORM_SIGN_MUSH_TIMES_ZA 0x12235 #define T_UTF_32_CUNEIFORM_SIGN_MUSH_OVER_MUSH 0x12236 #define T_UTF_32_CUNEIFORM_SIGN_MUSH_OVER_MUSH_TIMES_A_PLUS_NA 0x12237 #define T_UTF_32_CUNEIFORM_SIGN_MUSH_CROSSING_MUSH 0x12238 #define T_UTF_32_CUNEIFORM_SIGN_MUSH3 0x12239 #define T_UTF_32_CUNEIFORM_SIGN_MUSH3_TIMES_A 0x1223A #define T_UTF_32_CUNEIFORM_SIGN_MUSH3_TIMES_A_PLUS_DI 0x1223B #define T_UTF_32_CUNEIFORM_SIGN_MUSH3_TIMES_DI 0x1223C #define T_UTF_32_CUNEIFORM_SIGN_MUSH3_GUNU 0x1223D #define T_UTF_32_CUNEIFORM_SIGN_NA 0x1223E #define T_UTF_32_CUNEIFORM_SIGN_NA2 0x1223F #define T_UTF_32_CUNEIFORM_SIGN_NAGA 0x12240 #define T_UTF_32_CUNEIFORM_SIGN_NAGA_INVERTED 0x12241 #define T_UTF_32_CUNEIFORM_SIGN_NAGA_TIMES_SHU_TENU 0x12242 #define T_UTF_32_CUNEIFORM_SIGN_NAGA_OPPOSING_NAGA 0x12243 #define T_UTF_32_CUNEIFORM_SIGN_NAGAR 0x12244 #define T_UTF_32_CUNEIFORM_SIGN_NAM_NUTILLU 0x12245 #define T_UTF_32_CUNEIFORM_SIGN_NAM 0x12246 #define T_UTF_32_CUNEIFORM_SIGN_NAM2 0x12247 #define T_UTF_32_CUNEIFORM_SIGN_NE 0x12248 #define T_UTF_32_CUNEIFORM_SIGN_NE_TIMES_A 0x12249 #define T_UTF_32_CUNEIFORM_SIGN_NE_TIMES_UD 0x1224A #define T_UTF_32_CUNEIFORM_SIGN_NE_SHESHIG 0x1224B #define T_UTF_32_CUNEIFORM_SIGN_NI 0x1224C #define T_UTF_32_CUNEIFORM_SIGN_NI_TIMES_E 0x1224D #define T_UTF_32_CUNEIFORM_SIGN_NI2 0x1224E #define T_UTF_32_CUNEIFORM_SIGN_NIM 0x1224F #define T_UTF_32_CUNEIFORM_SIGN_NIM_TIMES_GAN2_TENU 0x12250 #define T_UTF_32_CUNEIFORM_SIGN_NIM_TIMES_GAR_PLUS_GAN2_TENU 0x12251 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2 0x12252 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_AN 0x12253 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_ASH 0x12254 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_ASH_PLUS_ASH 0x12255 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_GUD 0x12256 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_ME_PLUS_GAN2_TENU 0x12257 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_NE 0x12258 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_NUN 0x12259 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_SHE 0x1225A #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_SHE_PLUS_A_AN 0x1225B #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_SHE_PLUS_ASH 0x1225C #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_SHE_PLUS_ASH_PLUS_ASH 0x1225D #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_U2_PLUS_ASH 0x1225E #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_USH 0x1225F #define T_UTF_32_CUNEIFORM_SIGN_NISAG 0x12260 #define T_UTF_32_CUNEIFORM_SIGN_NU 0x12261 #define T_UTF_32_CUNEIFORM_SIGN_NU11 0x12262 #define T_UTF_32_CUNEIFORM_SIGN_NUN 0x12263 #define T_UTF_32_CUNEIFORM_SIGN_NUN_LAGAR_TIMES_GAR 0x12264 #define T_UTF_32_CUNEIFORM_SIGN_NUN_LAGAR_TIMES_MASH 0x12265 #define T_UTF_32_CUNEIFORM_SIGN_NUN_LAGAR_TIMES_SAL 0x12266 #define T_UTF_32_CUNEIFORM_SIGN_NUN_LAGAR_TIMES_SAL_OVER_NUN_LAGAR_TIMES_SAL 0x12267 #define T_UTF_32_CUNEIFORM_SIGN_NUN_LAGAR_TIMES_USH 0x12268 #define T_UTF_32_CUNEIFORM_SIGN_NUN_TENU 0x12269 #define T_UTF_32_CUNEIFORM_SIGN_NUN_OVER_NUN 0x1226A #define T_UTF_32_CUNEIFORM_SIGN_NUN_CROSSING_NUN 0x1226B #define T_UTF_32_CUNEIFORM_SIGN_NUN_CROSSING_NUN_LAGAR_OVER_LAGAR 0x1226C #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ 0x1226D #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_AB2_TIMES_ASHGAB 0x1226E #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_AB2_TIMES_BI 0x1226F #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_AB2_TIMES_DUG 0x12270 #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_AB2_TIMES_GUD 0x12271 #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_AB2_TIMES_IGI_GUNU 0x12272 #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_AB2_TIMES_KAD3 0x12273 #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_AB2_TIMES_LA 0x12274 #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_AB2_TIMES_NE 0x12275 #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_AB2_TIMES_SILA3 0x12276 #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_AB2_TIMES_U2 0x12277 #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_KISIM5_TIMES_BI 0x12278 #define T_UTF_32_CUNEIFORM_SIGN_NUNUZ_KISIM5_TIMES_BI_U 0x12279 #define T_UTF_32_CUNEIFORM_SIGN_PA 0x1227A #define T_UTF_32_CUNEIFORM_SIGN_PAD 0x1227B #define T_UTF_32_CUNEIFORM_SIGN_PAN 0x1227C #define T_UTF_32_CUNEIFORM_SIGN_PAP 0x1227D #define T_UTF_32_CUNEIFORM_SIGN_PESH2 0x1227E #define T_UTF_32_CUNEIFORM_SIGN_PI 0x1227F #define T_UTF_32_CUNEIFORM_SIGN_PI_TIMES_A 0x12280 #define T_UTF_32_CUNEIFORM_SIGN_PI_TIMES_AB 0x12281 #define T_UTF_32_CUNEIFORM_SIGN_PI_TIMES_BI 0x12282 #define T_UTF_32_CUNEIFORM_SIGN_PI_TIMES_BU 0x12283 #define T_UTF_32_CUNEIFORM_SIGN_PI_TIMES_E 0x12284 #define T_UTF_32_CUNEIFORM_SIGN_PI_TIMES_I 0x12285 #define T_UTF_32_CUNEIFORM_SIGN_PI_TIMES_IB 0x12286 #define T_UTF_32_CUNEIFORM_SIGN_PI_TIMES_U 0x12287 #define T_UTF_32_CUNEIFORM_SIGN_PI_TIMES_U2 0x12288 #define T_UTF_32_CUNEIFORM_SIGN_PI_CROSSING_PI 0x12289 #define T_UTF_32_CUNEIFORM_SIGN_PIRIG 0x1228A #define T_UTF_32_CUNEIFORM_SIGN_PIRIG_TIMES_KAL 0x1228B #define T_UTF_32_CUNEIFORM_SIGN_PIRIG_TIMES_UD 0x1228C #define T_UTF_32_CUNEIFORM_SIGN_PIRIG_TIMES_ZA 0x1228D #define T_UTF_32_CUNEIFORM_SIGN_PIRIG_OPPOSING_PIRIG 0x1228E #define T_UTF_32_CUNEIFORM_SIGN_RA 0x1228F #define T_UTF_32_CUNEIFORM_SIGN_RAB 0x12290 #define T_UTF_32_CUNEIFORM_SIGN_RI 0x12291 #define T_UTF_32_CUNEIFORM_SIGN_RU 0x12292 #define T_UTF_32_CUNEIFORM_SIGN_SA 0x12293 #define T_UTF_32_CUNEIFORM_SIGN_SAG_NUTILLU 0x12294 #define T_UTF_32_CUNEIFORM_SIGN_SAG 0x12295 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_A 0x12296 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_DU 0x12297 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_DUB 0x12298 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_HA 0x12299 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_KAK 0x1229A #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_KUR 0x1229B #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_LUM 0x1229C #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_MI 0x1229D #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_NUN 0x1229E #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_SAL 0x1229F #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_SHID 0x122A0 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_TAB 0x122A1 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_U2 0x122A2 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_UB 0x122A3 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_UM 0x122A4 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_UR 0x122A5 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_USH 0x122A6 #define T_UTF_32_CUNEIFORM_SIGN_SAG_OVER_SAG 0x122A7 #define T_UTF_32_CUNEIFORM_SIGN_SAG_GUNU 0x122A8 #define T_UTF_32_CUNEIFORM_SIGN_SAL 0x122A9 #define T_UTF_32_CUNEIFORM_SIGN_SAL_LAGAB_TIMES_ASH2 0x122AA #define T_UTF_32_CUNEIFORM_SIGN_SANGA2 0x122AB #define T_UTF_32_CUNEIFORM_SIGN_SAR 0x122AC #define T_UTF_32_CUNEIFORM_SIGN_SHA 0x122AD #define T_UTF_32_CUNEIFORM_SIGN_SHA3 0x122AE #define T_UTF_32_CUNEIFORM_SIGN_SHA3_TIMES_A 0x122AF #define T_UTF_32_CUNEIFORM_SIGN_SHA3_TIMES_BAD 0x122B0 #define T_UTF_32_CUNEIFORM_SIGN_SHA3_TIMES_GISH 0x122B1 #define T_UTF_32_CUNEIFORM_SIGN_SHA3_TIMES_NE 0x122B2 #define T_UTF_32_CUNEIFORM_SIGN_SHA3_TIMES_SHU2 0x122B3 #define T_UTF_32_CUNEIFORM_SIGN_SHA3_TIMES_TUR 0x122B4 #define T_UTF_32_CUNEIFORM_SIGN_SHA3_TIMES_U 0x122B5 #define T_UTF_32_CUNEIFORM_SIGN_SHA3_TIMES_U_PLUS_A 0x122B6 #define T_UTF_32_CUNEIFORM_SIGN_SHA6 0x122B7 #define T_UTF_32_CUNEIFORM_SIGN_SHAB6 0x122B8 #define T_UTF_32_CUNEIFORM_SIGN_SHAR2 0x122B9 #define T_UTF_32_CUNEIFORM_SIGN_SHE 0x122BA #define T_UTF_32_CUNEIFORM_SIGN_SHE_HU 0x122BB #define T_UTF_32_CUNEIFORM_SIGN_SHE_OVER_SHE_GAD_OVER_GAD_GAR_OVER_GAR 0x122BC #define T_UTF_32_CUNEIFORM_SIGN_SHE_OVER_SHE_TAB_OVER_TAB_GAR_OVER_GAR 0x122BD #define T_UTF_32_CUNEIFORM_SIGN_SHEG9 0x122BE #define T_UTF_32_CUNEIFORM_SIGN_SHEN 0x122BF #define T_UTF_32_CUNEIFORM_SIGN_SHESH 0x122C0 #define T_UTF_32_CUNEIFORM_SIGN_SHESH2 0x122C1 #define T_UTF_32_CUNEIFORM_SIGN_SHESHLAM 0x122C2 #define T_UTF_32_CUNEIFORM_SIGN_SHID 0x122C3 #define T_UTF_32_CUNEIFORM_SIGN_SHID_TIMES_A 0x122C4 #define T_UTF_32_CUNEIFORM_SIGN_SHID_TIMES_IM 0x122C5 #define T_UTF_32_CUNEIFORM_SIGN_SHIM 0x122C6 #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_A 0x122C7 #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_BAL 0x122C8 #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_BULUG 0x122C9 #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_DIN 0x122CA #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_GAR 0x122CB #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_IGI 0x122CC #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_IGI_GUNU 0x122CD #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_KUSHU2 0x122CE #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_LUL 0x122CF #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_MUG 0x122D0 #define T_UTF_32_CUNEIFORM_SIGN_SHIM_TIMES_SAL 0x122D1 #define T_UTF_32_CUNEIFORM_SIGN_SHINIG 0x122D2 #define T_UTF_32_CUNEIFORM_SIGN_SHIR 0x122D3 #define T_UTF_32_CUNEIFORM_SIGN_SHIR_TENU 0x122D4 #define T_UTF_32_CUNEIFORM_SIGN_SHIR_OVER_SHIR_BUR_OVER_BUR 0x122D5 #define T_UTF_32_CUNEIFORM_SIGN_SHITA 0x122D6 #define T_UTF_32_CUNEIFORM_SIGN_SHU 0x122D7 #define T_UTF_32_CUNEIFORM_SIGN_SHU_OVER_INVERTED_SHU 0x122D8 #define T_UTF_32_CUNEIFORM_SIGN_SHU2 0x122D9 #define T_UTF_32_CUNEIFORM_SIGN_SHUBUR 0x122DA #define T_UTF_32_CUNEIFORM_SIGN_SI 0x122DB #define T_UTF_32_CUNEIFORM_SIGN_SI_GUNU 0x122DC #define T_UTF_32_CUNEIFORM_SIGN_SIG 0x122DD #define T_UTF_32_CUNEIFORM_SIGN_SIG4 0x122DE #define T_UTF_32_CUNEIFORM_SIGN_SIG4_OVER_SIG4_SHU2 0x122DF #define T_UTF_32_CUNEIFORM_SIGN_SIK2 0x122E0 #define T_UTF_32_CUNEIFORM_SIGN_SILA3 0x122E1 #define T_UTF_32_CUNEIFORM_SIGN_SU 0x122E2 #define T_UTF_32_CUNEIFORM_SIGN_SU_OVER_SU 0x122E3 #define T_UTF_32_CUNEIFORM_SIGN_SUD 0x122E4 #define T_UTF_32_CUNEIFORM_SIGN_SUD2 0x122E5 #define T_UTF_32_CUNEIFORM_SIGN_SUHUR 0x122E6 #define T_UTF_32_CUNEIFORM_SIGN_SUM 0x122E7 #define T_UTF_32_CUNEIFORM_SIGN_SUMASH 0x122E8 #define T_UTF_32_CUNEIFORM_SIGN_SUR 0x122E9 #define T_UTF_32_CUNEIFORM_SIGN_SUR9 0x122EA #define T_UTF_32_CUNEIFORM_SIGN_TA 0x122EB #define T_UTF_32_CUNEIFORM_SIGN_TA_ASTERISK 0x122EC #define T_UTF_32_CUNEIFORM_SIGN_TA_TIMES_HI 0x122ED #define T_UTF_32_CUNEIFORM_SIGN_TA_TIMES_MI 0x122EE #define T_UTF_32_CUNEIFORM_SIGN_TA_GUNU 0x122EF #define T_UTF_32_CUNEIFORM_SIGN_TAB 0x122F0 #define T_UTF_32_CUNEIFORM_SIGN_TAB_OVER_TAB_NI_OVER_NI_DISH_OVER_DISH 0x122F1 #define T_UTF_32_CUNEIFORM_SIGN_TAB_SQUARED 0x122F2 #define T_UTF_32_CUNEIFORM_SIGN_TAG 0x122F3 #define T_UTF_32_CUNEIFORM_SIGN_TAG_TIMES_BI 0x122F4 #define T_UTF_32_CUNEIFORM_SIGN_TAG_TIMES_GUD 0x122F5 #define T_UTF_32_CUNEIFORM_SIGN_TAG_TIMES_SHE 0x122F6 #define T_UTF_32_CUNEIFORM_SIGN_TAG_TIMES_SHU 0x122F7 #define T_UTF_32_CUNEIFORM_SIGN_TAG_TIMES_TUG2 0x122F8 #define T_UTF_32_CUNEIFORM_SIGN_TAG_TIMES_UD 0x122F9 #define T_UTF_32_CUNEIFORM_SIGN_TAK4 0x122FA #define T_UTF_32_CUNEIFORM_SIGN_TAR 0x122FB #define T_UTF_32_CUNEIFORM_SIGN_TE 0x122FC #define T_UTF_32_CUNEIFORM_SIGN_TE_GUNU 0x122FD #define T_UTF_32_CUNEIFORM_SIGN_TI 0x122FE #define T_UTF_32_CUNEIFORM_SIGN_TI_TENU 0x122FF #define T_UTF_32_CUNEIFORM_SIGN_TIL 0x12300 #define T_UTF_32_CUNEIFORM_SIGN_TIR 0x12301 #define T_UTF_32_CUNEIFORM_SIGN_TIR_TIMES_TAK4 0x12302 #define T_UTF_32_CUNEIFORM_SIGN_TIR_OVER_TIR 0x12303 #define T_UTF_32_CUNEIFORM_SIGN_TIR_OVER_TIR_GAD_OVER_GAD_GAR_OVER_GAR 0x12304 #define T_UTF_32_CUNEIFORM_SIGN_TU 0x12305 #define T_UTF_32_CUNEIFORM_SIGN_TUG2 0x12306 #define T_UTF_32_CUNEIFORM_SIGN_TUK 0x12307 #define T_UTF_32_CUNEIFORM_SIGN_TUM 0x12308 #define T_UTF_32_CUNEIFORM_SIGN_TUR 0x12309 #define T_UTF_32_CUNEIFORM_SIGN_TUR_OVER_TUR_ZA_OVER_ZA 0x1230A #define T_UTF_32_CUNEIFORM_SIGN_U 0x1230B #define T_UTF_32_CUNEIFORM_SIGN_U_GUD 0x1230C #define T_UTF_32_CUNEIFORM_SIGN_U_U_U 0x1230D #define T_UTF_32_CUNEIFORM_SIGN_U_OVER_U_PA_OVER_PA_GAR_OVER_GAR 0x1230E #define T_UTF_32_CUNEIFORM_SIGN_U_OVER_U_SUR_OVER_SUR 0x1230F #define T_UTF_32_CUNEIFORM_SIGN_U_OVER_U_U_REVERSED_OVER_U_REVERSED 0x12310 #define T_UTF_32_CUNEIFORM_SIGN_U2 0x12311 #define T_UTF_32_CUNEIFORM_SIGN_UB 0x12312 #define T_UTF_32_CUNEIFORM_SIGN_UD 0x12313 #define T_UTF_32_CUNEIFORM_SIGN_UD_KUSHU2 0x12314 #define T_UTF_32_CUNEIFORM_SIGN_UD_TIMES_BAD 0x12315 #define T_UTF_32_CUNEIFORM_SIGN_UD_TIMES_MI 0x12316 #define T_UTF_32_CUNEIFORM_SIGN_UD_TIMES_U_PLUS_U_PLUS_U 0x12317 #define T_UTF_32_CUNEIFORM_SIGN_UD_TIMES_U_PLUS_U_PLUS_U_GUNU 0x12318 #define T_UTF_32_CUNEIFORM_SIGN_UD_GUNU 0x12319 #define T_UTF_32_CUNEIFORM_SIGN_UD_SHESHIG 0x1231A #define T_UTF_32_CUNEIFORM_SIGN_UD_SHESHIG_TIMES_BAD 0x1231B #define T_UTF_32_CUNEIFORM_SIGN_UDUG 0x1231C #define T_UTF_32_CUNEIFORM_SIGN_UM 0x1231D #define T_UTF_32_CUNEIFORM_SIGN_UM_TIMES_LAGAB 0x1231E #define T_UTF_32_CUNEIFORM_SIGN_UM_TIMES_ME_PLUS_DA 0x1231F #define T_UTF_32_CUNEIFORM_SIGN_UM_TIMES_SHA3 0x12320 #define T_UTF_32_CUNEIFORM_SIGN_UM_TIMES_U 0x12321 #define T_UTF_32_CUNEIFORM_SIGN_UMBIN 0x12322 #define T_UTF_32_CUNEIFORM_SIGN_UMUM 0x12323 #define T_UTF_32_CUNEIFORM_SIGN_UMUM_TIMES_KASKAL 0x12324 #define T_UTF_32_CUNEIFORM_SIGN_UMUM_TIMES_PA 0x12325 #define T_UTF_32_CUNEIFORM_SIGN_UN 0x12326 #define T_UTF_32_CUNEIFORM_SIGN_UN_GUNU 0x12327 #define T_UTF_32_CUNEIFORM_SIGN_UR 0x12328 #define T_UTF_32_CUNEIFORM_SIGN_UR_CROSSING_UR 0x12329 #define T_UTF_32_CUNEIFORM_SIGN_UR_SHESHIG 0x1232A #define T_UTF_32_CUNEIFORM_SIGN_UR2 0x1232B #define T_UTF_32_CUNEIFORM_SIGN_UR2_TIMES_A_PLUS_HA 0x1232C #define T_UTF_32_CUNEIFORM_SIGN_UR2_TIMES_A_PLUS_NA 0x1232D #define T_UTF_32_CUNEIFORM_SIGN_UR2_TIMES_AL 0x1232E #define T_UTF_32_CUNEIFORM_SIGN_UR2_TIMES_HA 0x1232F #define T_UTF_32_CUNEIFORM_SIGN_UR2_TIMES_NUN 0x12330 #define T_UTF_32_CUNEIFORM_SIGN_UR2_TIMES_U2 0x12331 #define T_UTF_32_CUNEIFORM_SIGN_UR2_TIMES_U2_PLUS_ASH 0x12332 #define T_UTF_32_CUNEIFORM_SIGN_UR2_TIMES_U2_PLUS_BI 0x12333 #define T_UTF_32_CUNEIFORM_SIGN_UR4 0x12334 #define T_UTF_32_CUNEIFORM_SIGN_URI 0x12335 #define T_UTF_32_CUNEIFORM_SIGN_URI3 0x12336 #define T_UTF_32_CUNEIFORM_SIGN_URU 0x12337 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_A 0x12338 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_ASHGAB 0x12339 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_BAR 0x1233A #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_DUN 0x1233B #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_GA 0x1233C #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_GAL 0x1233D #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_GAN2_TENU 0x1233E #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_GAR 0x1233F #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_GU 0x12340 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_HA 0x12341 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_IGI 0x12342 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_IM 0x12343 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_ISH 0x12344 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_KI 0x12345 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_LUM 0x12346 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_MIN 0x12347 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_PA 0x12348 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_SHE 0x12349 #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_SIG4 0x1234A #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_TU 0x1234B #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_U_PLUS_GUD 0x1234C #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_UD 0x1234D #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_URUDA 0x1234E #define T_UTF_32_CUNEIFORM_SIGN_URUDA 0x1234F #define T_UTF_32_CUNEIFORM_SIGN_URUDA_TIMES_U 0x12350 #define T_UTF_32_CUNEIFORM_SIGN_USH 0x12351 #define T_UTF_32_CUNEIFORM_SIGN_USH_TIMES_A 0x12352 #define T_UTF_32_CUNEIFORM_SIGN_USH_TIMES_KU 0x12353 #define T_UTF_32_CUNEIFORM_SIGN_USH_TIMES_KUR 0x12354 #define T_UTF_32_CUNEIFORM_SIGN_USH_TIMES_TAK4 0x12355 #define T_UTF_32_CUNEIFORM_SIGN_USHX 0x12356 #define T_UTF_32_CUNEIFORM_SIGN_USH2 0x12357 #define T_UTF_32_CUNEIFORM_SIGN_USHUMX 0x12358 #define T_UTF_32_CUNEIFORM_SIGN_UTUKI 0x12359 #define T_UTF_32_CUNEIFORM_SIGN_UZ3 0x1235A #define T_UTF_32_CUNEIFORM_SIGN_UZ3_TIMES_KASKAL 0x1235B #define T_UTF_32_CUNEIFORM_SIGN_UZU 0x1235C #define T_UTF_32_CUNEIFORM_SIGN_ZA 0x1235D #define T_UTF_32_CUNEIFORM_SIGN_ZA_TENU 0x1235E #define T_UTF_32_CUNEIFORM_SIGN_ZA_SQUARED_TIMES_KUR 0x1235F #define T_UTF_32_CUNEIFORM_SIGN_ZAG 0x12360 #define T_UTF_32_CUNEIFORM_SIGN_ZAMX 0x12361 #define T_UTF_32_CUNEIFORM_SIGN_ZE2 0x12362 #define T_UTF_32_CUNEIFORM_SIGN_ZI 0x12363 #define T_UTF_32_CUNEIFORM_SIGN_ZI_OVER_ZI 0x12364 #define T_UTF_32_CUNEIFORM_SIGN_ZI3 0x12365 #define T_UTF_32_CUNEIFORM_SIGN_ZIB 0x12366 #define T_UTF_32_CUNEIFORM_SIGN_ZIB_KABA_TENU 0x12367 #define T_UTF_32_CUNEIFORM_SIGN_ZIG 0x12368 #define T_UTF_32_CUNEIFORM_SIGN_ZIZ2 0x12369 #define T_UTF_32_CUNEIFORM_SIGN_ZU 0x1236A #define T_UTF_32_CUNEIFORM_SIGN_ZU5 0x1236B #define T_UTF_32_CUNEIFORM_SIGN_ZU5_TIMES_A 0x1236C #define T_UTF_32_CUNEIFORM_SIGN_ZUBUR 0x1236D #define T_UTF_32_CUNEIFORM_SIGN_ZUM 0x1236E #define T_UTF_32_CUNEIFORM_SIGN_KAP_ELAMITE 0x1236F #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_NUN 0x12370 #define T_UTF_32_CUNEIFORM_SIGN_AB2_TIMES_A 0x12371 #define T_UTF_32_CUNEIFORM_SIGN_AMAR_TIMES_KUG 0x12372 #define T_UTF_32_CUNEIFORM_SIGN_DAG_KISIM5_TIMES_U2_PLUS_MASH 0x12373 #define T_UTF_32_CUNEIFORM_SIGN_DAG3 0x12374 #define T_UTF_32_CUNEIFORM_SIGN_DISH_PLUS_SHU 0x12375 #define T_UTF_32_CUNEIFORM_SIGN_DUB_TIMES_SHE 0x12376 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_GUD 0x12377 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_SHE 0x12378 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_AN_PLUS_KAK_PLUS_A 0x12379 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_ASH2 0x1237A #define T_UTF_32_CUNEIFORM_SIGN_GE22 0x1237B #define T_UTF_32_CUNEIFORM_SIGN_GIG 0x1237C #define T_UTF_32_CUNEIFORM_SIGN_HUSH 0x1237D #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_ANSHE 0x1237E #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_ASH3 0x1237F #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GISH 0x12380 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_GUD 0x12381 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_HI_TIMES_ASH2 0x12382 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_LUM 0x12383 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_PA 0x12384 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_SHUL 0x12385 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_TU 0x12386 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_UR2 0x12387 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_GI 0x12388 #define T_UTF_32_CUNEIFORM_SIGN_LU2_SHESHIG_TIMES_BAD 0x12389 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_ESH2_PLUS_LAL 0x1238A #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_SHU 0x1238B #define T_UTF_32_CUNEIFORM_SIGN_MESH 0x1238C #define T_UTF_32_CUNEIFORM_SIGN_MUSH3_TIMES_ZA 0x1238D #define T_UTF_32_CUNEIFORM_SIGN_NA4 0x1238E #define T_UTF_32_CUNEIFORM_SIGN_NIN 0x1238F #define T_UTF_32_CUNEIFORM_SIGN_NIN9 0x12390 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_BAL 0x12391 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_GI 0x12392 #define T_UTF_32_CUNEIFORM_SIGN_NU11_ROTATED_NINETY_DEGREES 0x12393 #define T_UTF_32_CUNEIFORM_SIGN_PESH2_ASTERISK 0x12394 #define T_UTF_32_CUNEIFORM_SIGN_PIR2 0x12395 #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_IGI_GUNU 0x12396 #define T_UTF_32_CUNEIFORM_SIGN_TI2 0x12397 #define T_UTF_32_CUNEIFORM_SIGN_UM_TIMES_ME 0x12398 #define T_UTF_32_CUNEIFORM_SIGN_U_U 0x12399 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_ASH 0x12400 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_ASH 0x12401 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_ASH 0x12402 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_ASH 0x12403 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SIX_ASH 0x12404 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SEVEN_ASH 0x12405 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_EIGHT_ASH 0x12406 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NINE_ASH 0x12407 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_DISH 0x12408 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_DISH 0x12409 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_DISH 0x1240A #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SIX_DISH 0x1240B #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SEVEN_DISH 0x1240C #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_EIGHT_DISH 0x1240D #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NINE_DISH 0x1240E #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_U 0x1240F #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_U 0x12410 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SIX_U 0x12411 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SEVEN_U 0x12412 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_EIGHT_U 0x12413 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NINE_U 0x12414 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_GESH2 0x12415 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_GESH2 0x12416 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_GESH2 0x12417 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_GESH2 0x12418 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_GESH2 0x12419 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SIX_GESH2 0x1241A #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SEVEN_GESH2 0x1241B #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_EIGHT_GESH2 0x1241C #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NINE_GESH2 0x1241D #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_GESHU 0x1241E #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_GESHU 0x1241F #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_GESHU 0x12420 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_GESHU 0x12421 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_GESHU 0x12422 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_SHAR2 0x12423 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_SHAR2 0x12424 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_SHAR2_VARIANT_FORM 0x12425 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_SHAR2 0x12426 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_SHAR2 0x12427 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SIX_SHAR2 0x12428 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SEVEN_SHAR2 0x12429 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_EIGHT_SHAR2 0x1242A #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NINE_SHAR2 0x1242B #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_SHARU 0x1242C #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_SHARU 0x1242D #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_SHARU 0x1242E #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_SHARU_VARIANT_FORM 0x1242F #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_SHARU 0x12430 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_SHARU 0x12431 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SHAR2_TIMES_GAL_PLUS_DISH 0x12432 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SHAR2_TIMES_GAL_PLUS_MIN 0x12433 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_BURU 0x12434 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_BURU 0x12435 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_BURU 0x12436 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_BURU_VARIANT_FORM 0x12437 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_BURU 0x12438 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_BURU 0x12439 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_VARIANT_FORM_ESH16 0x1243A #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_VARIANT_FORM_ESH21 0x1243B #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_VARIANT_FORM_LIMMU 0x1243C #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_VARIANT_FORM_LIMMU4 0x1243D #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_VARIANT_FORM_LIMMU_A 0x1243E #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_VARIANT_FORM_LIMMU_B 0x1243F #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SIX_VARIANT_FORM_ASH9 0x12440 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SEVEN_VARIANT_FORM_IMIN3 0x12441 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SEVEN_VARIANT_FORM_IMIN_A 0x12442 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SEVEN_VARIANT_FORM_IMIN_B 0x12443 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_EIGHT_VARIANT_FORM_USSU 0x12444 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_EIGHT_VARIANT_FORM_USSU3 0x12445 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NINE_VARIANT_FORM_ILIMMU 0x12446 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NINE_VARIANT_FORM_ILIMMU3 0x12447 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NINE_VARIANT_FORM_ILIMMU4 0x12448 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NINE_VARIANT_FORM_ILIMMU_A 0x12449 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_ASH_TENU 0x1244A #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_ASH_TENU 0x1244B #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_ASH_TENU 0x1244C #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_ASH_TENU 0x1244D #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SIX_ASH_TENU 0x1244E #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_BAN2 0x1244F #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_BAN2 0x12450 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_THREE_BAN2 0x12451 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_BAN2 0x12452 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_BAN2_VARIANT_FORM 0x12453 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_BAN2 0x12454 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_BAN2_VARIANT_FORM 0x12455 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NIGIDAMIN 0x12456 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NIGIDAESH 0x12457 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_ESHE3 0x12458 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_ESHE3 0x12459 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_THIRD_DISH 0x1245A #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_THIRDS_DISH 0x1245B #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_SIXTHS_DISH 0x1245C #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_THIRD_VARIANT_FORM_A 0x1245D #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_TWO_THIRDS_VARIANT_FORM_A 0x1245E #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_EIGHTH_ASH 0x1245F #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_QUARTER_ASH 0x12460 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_OLD_ASSYRIAN_ONE_SIXTH 0x12461 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_OLD_ASSYRIAN_ONE_QUARTER 0x12462 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_QUARTER_GUR 0x12463 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ONE_HALF_GUR 0x12464 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ELAMITE_ONE_THIRD 0x12465 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ELAMITE_TWO_THIRDS 0x12466 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ELAMITE_FORTY 0x12467 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_ELAMITE_FIFTY 0x12468 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FOUR_U_VARIANT_FORM 0x12469 #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_FIVE_U_VARIANT_FORM 0x1246A #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SIX_U_VARIANT_FORM 0x1246B #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_SEVEN_U_VARIANT_FORM 0x1246C #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_EIGHT_U_VARIANT_FORM 0x1246D #define T_UTF_32_CUNEIFORM_NUMERIC_SIGN_NINE_U_VARIANT_FORM 0x1246E #define T_UTF_32_CUNEIFORM_PUNCTUATION_SIGN_OLD_ASSYRIAN_WORD_DIVIDER 0x12470 #define T_UTF_32_CUNEIFORM_PUNCTUATION_SIGN_VERTICAL_COLON 0x12471 #define T_UTF_32_CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_COLON 0x12472 #define T_UTF_32_CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_TRICOLON 0x12473 #define T_UTF_32_CUNEIFORM_PUNCTUATION_SIGN_DIAGONAL_QUADCOLON 0x12474 #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_NUN_TENU 0x12480 #define T_UTF_32_CUNEIFORM_SIGN_AB_TIMES_SHU2 0x12481 #define T_UTF_32_CUNEIFORM_SIGN_AD_TIMES_ESH2 0x12482 #define T_UTF_32_CUNEIFORM_SIGN_BAD_TIMES_DISH_TENU 0x12483 #define T_UTF_32_CUNEIFORM_SIGN_BAHAR2_TIMES_AB2 0x12484 #define T_UTF_32_CUNEIFORM_SIGN_BAHAR2_TIMES_NI 0x12485 #define T_UTF_32_CUNEIFORM_SIGN_BAHAR2_TIMES_ZA 0x12486 #define T_UTF_32_CUNEIFORM_SIGN_BU_OVER_BU_TIMES_NA2 0x12487 #define T_UTF_32_CUNEIFORM_SIGN_DA_TIMES_TAK4 0x12488 #define T_UTF_32_CUNEIFORM_SIGN_DAG_TIMES_KUR 0x12489 #define T_UTF_32_CUNEIFORM_SIGN_DIM_TIMES_IGI 0x1248A #define T_UTF_32_CUNEIFORM_SIGN_DIM_TIMES_U_U_U 0x1248B #define T_UTF_32_CUNEIFORM_SIGN_DIM2_TIMES_UD 0x1248C #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_ANSHE 0x1248D #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_ASH 0x1248E #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_ASH_AT_LEFT 0x1248F #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_DIN 0x12490 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_DUN 0x12491 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_ERIN2 0x12492 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_GA 0x12493 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_GI 0x12494 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_GIR2_GUNU 0x12495 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_GISH 0x12496 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_HA 0x12497 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_HI 0x12498 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_IGI_GUNU 0x12499 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_KASKAL 0x1249A #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_KUR 0x1249B #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_KUSHU2 0x1249C #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_KUSHU2_PLUS_KASKAL 0x1249D #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_LAK_020 0x1249E #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_LAM 0x1249F #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_LAM_TIMES_KUR 0x124A0 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_LUH_PLUS_GISH 0x124A1 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_MASH 0x124A2 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_MES 0x124A3 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_MI 0x124A4 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_NI 0x124A5 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_PI 0x124A6 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_SHE 0x124A7 #define T_UTF_32_CUNEIFORM_SIGN_DUG_TIMES_SI_GUNU 0x124A8 #define T_UTF_32_CUNEIFORM_SIGN_E2_TIMES_KUR 0x124A9 #define T_UTF_32_CUNEIFORM_SIGN_E2_TIMES_PAP 0x124AA #define T_UTF_32_CUNEIFORM_SIGN_ERIN2_X 0x124AB #define T_UTF_32_CUNEIFORM_SIGN_ESH2_CROSSING_ESH2 0x124AC #define T_UTF_32_CUNEIFORM_SIGN_EZEN_SHESHIG_TIMES_ASH 0x124AD #define T_UTF_32_CUNEIFORM_SIGN_EZEN_SHESHIG_TIMES_HI 0x124AE #define T_UTF_32_CUNEIFORM_SIGN_EZEN_SHESHIG_TIMES_IGI_GUNU 0x124AF #define T_UTF_32_CUNEIFORM_SIGN_EZEN_SHESHIG_TIMES_LA 0x124B0 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_SHESHIG_TIMES_LAL 0x124B1 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_SHESHIG_TIMES_ME 0x124B2 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_SHESHIG_TIMES_MES 0x124B3 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_SHESHIG_TIMES_SU 0x124B4 #define T_UTF_32_CUNEIFORM_SIGN_EZEN_TIMES_SU 0x124B5 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_BAHAR2 0x124B6 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_DIM_GUNU 0x124B7 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_DUG_TIMES_IGI_GUNU 0x124B8 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_DUG_TIMES_KASKAL 0x124B9 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_EREN 0x124BA #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_GA 0x124BB #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_GAR_PLUS_DI 0x124BC #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_GAR_PLUS_NE 0x124BD #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_HA_PLUS_A 0x124BE #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_KUSHU2_PLUS_KASKAL 0x124BF #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_LAM 0x124C0 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_LAM_TIMES_KUR 0x124C1 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_LUH 0x124C2 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_MUSH 0x124C3 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_NE 0x124C4 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_NE_PLUS_E2 0x124C5 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_NE_PLUS_GI 0x124C6 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_SHIM 0x124C7 #define T_UTF_32_CUNEIFORM_SIGN_GA2_TIMES_ZIZ2 0x124C8 #define T_UTF_32_CUNEIFORM_SIGN_GABA_ROTATED_NINETY_DEGREES 0x124C9 #define T_UTF_32_CUNEIFORM_SIGN_GESHTIN_TIMES_U 0x124CA #define T_UTF_32_CUNEIFORM_SIGN_GISH_TIMES_GISH_CROSSING_GISH 0x124CB #define T_UTF_32_CUNEIFORM_SIGN_GU2_TIMES_IGI_GUNU 0x124CC #define T_UTF_32_CUNEIFORM_SIGN_GUD_PLUS_GISH_TIMES_TAK4 0x124CD #define T_UTF_32_CUNEIFORM_SIGN_HA_TENU_GUNU 0x124CE #define T_UTF_32_CUNEIFORM_SIGN_HI_TIMES_ASH_OVER_HI_TIMES_ASH 0x124CF #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_BU 0x124D0 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_KA 0x124D1 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_U_U_U 0x124D2 #define T_UTF_32_CUNEIFORM_SIGN_KA_TIMES_UR 0x124D3 #define T_UTF_32_CUNEIFORM_SIGN_LAGAB_TIMES_ZU_OVER_ZU 0x124D4 #define T_UTF_32_CUNEIFORM_SIGN_LAK_003 0x124D5 #define T_UTF_32_CUNEIFORM_SIGN_LAK_021 0x124D6 #define T_UTF_32_CUNEIFORM_SIGN_LAK_025 0x124D7 #define T_UTF_32_CUNEIFORM_SIGN_LAK_030 0x124D8 #define T_UTF_32_CUNEIFORM_SIGN_LAK_050 0x124D9 #define T_UTF_32_CUNEIFORM_SIGN_LAK_051 0x124DA #define T_UTF_32_CUNEIFORM_SIGN_LAK_062 0x124DB #define T_UTF_32_CUNEIFORM_SIGN_LAK_079_OVER_LAK_079_GUNU 0x124DC #define T_UTF_32_CUNEIFORM_SIGN_LAK_080 0x124DD #define T_UTF_32_CUNEIFORM_SIGN_LAK_081_OVER_LAK_081 0x124DE #define T_UTF_32_CUNEIFORM_SIGN_LAK_092 0x124DF #define T_UTF_32_CUNEIFORM_SIGN_LAK_130 0x124E0 #define T_UTF_32_CUNEIFORM_SIGN_LAK_142 0x124E1 #define T_UTF_32_CUNEIFORM_SIGN_LAK_210 0x124E2 #define T_UTF_32_CUNEIFORM_SIGN_LAK_219 0x124E3 #define T_UTF_32_CUNEIFORM_SIGN_LAK_220 0x124E4 #define T_UTF_32_CUNEIFORM_SIGN_LAK_225 0x124E5 #define T_UTF_32_CUNEIFORM_SIGN_LAK_228 0x124E6 #define T_UTF_32_CUNEIFORM_SIGN_LAK_238 0x124E7 #define T_UTF_32_CUNEIFORM_SIGN_LAK_265 0x124E8 #define T_UTF_32_CUNEIFORM_SIGN_LAK_266 0x124E9 #define T_UTF_32_CUNEIFORM_SIGN_LAK_343 0x124EA #define T_UTF_32_CUNEIFORM_SIGN_LAK_347 0x124EB #define T_UTF_32_CUNEIFORM_SIGN_LAK_348 0x124EC #define T_UTF_32_CUNEIFORM_SIGN_LAK_383 0x124ED #define T_UTF_32_CUNEIFORM_SIGN_LAK_384 0x124EE #define T_UTF_32_CUNEIFORM_SIGN_LAK_390 0x124EF #define T_UTF_32_CUNEIFORM_SIGN_LAK_441 0x124F0 #define T_UTF_32_CUNEIFORM_SIGN_LAK_449 0x124F1 #define T_UTF_32_CUNEIFORM_SIGN_LAK_449_TIMES_GU 0x124F2 #define T_UTF_32_CUNEIFORM_SIGN_LAK_449_TIMES_IGI 0x124F3 #define T_UTF_32_CUNEIFORM_SIGN_LAK_449_TIMES_PAP_PLUS_LU3 0x124F4 #define T_UTF_32_CUNEIFORM_SIGN_LAK_449_TIMES_PAP_PLUS_PAP_PLUS_LU3 0x124F5 #define T_UTF_32_CUNEIFORM_SIGN_LAK_449_TIMES_U2_PLUS_BA 0x124F6 #define T_UTF_32_CUNEIFORM_SIGN_LAK_450 0x124F7 #define T_UTF_32_CUNEIFORM_SIGN_LAK_457 0x124F8 #define T_UTF_32_CUNEIFORM_SIGN_LAK_470 0x124F9 #define T_UTF_32_CUNEIFORM_SIGN_LAK_483 0x124FA #define T_UTF_32_CUNEIFORM_SIGN_LAK_490 0x124FB #define T_UTF_32_CUNEIFORM_SIGN_LAK_492 0x124FC #define T_UTF_32_CUNEIFORM_SIGN_LAK_493 0x124FD #define T_UTF_32_CUNEIFORM_SIGN_LAK_495 0x124FE #define T_UTF_32_CUNEIFORM_SIGN_LAK_550 0x124FF #define T_UTF_32_CUNEIFORM_SIGN_LAK_608 0x12500 #define T_UTF_32_CUNEIFORM_SIGN_LAK_617 0x12501 #define T_UTF_32_CUNEIFORM_SIGN_LAK_617_TIMES_ASH 0x12502 #define T_UTF_32_CUNEIFORM_SIGN_LAK_617_TIMES_BAD 0x12503 #define T_UTF_32_CUNEIFORM_SIGN_LAK_617_TIMES_DUN3_GUNU_GUNU 0x12504 #define T_UTF_32_CUNEIFORM_SIGN_LAK_617_TIMES_KU3 0x12505 #define T_UTF_32_CUNEIFORM_SIGN_LAK_617_TIMES_LA 0x12506 #define T_UTF_32_CUNEIFORM_SIGN_LAK_617_TIMES_TAR 0x12507 #define T_UTF_32_CUNEIFORM_SIGN_LAK_617_TIMES_TE 0x12508 #define T_UTF_32_CUNEIFORM_SIGN_LAK_617_TIMES_U2 0x12509 #define T_UTF_32_CUNEIFORM_SIGN_LAK_617_TIMES_UD 0x1250A #define T_UTF_32_CUNEIFORM_SIGN_LAK_617_TIMES_URUDA 0x1250B #define T_UTF_32_CUNEIFORM_SIGN_LAK_636 0x1250C #define T_UTF_32_CUNEIFORM_SIGN_LAK_648 0x1250D #define T_UTF_32_CUNEIFORM_SIGN_LAK_648_TIMES_DUB 0x1250E #define T_UTF_32_CUNEIFORM_SIGN_LAK_648_TIMES_GA 0x1250F #define T_UTF_32_CUNEIFORM_SIGN_LAK_648_TIMES_IGI 0x12510 #define T_UTF_32_CUNEIFORM_SIGN_LAK_648_TIMES_IGI_GUNU 0x12511 #define T_UTF_32_CUNEIFORM_SIGN_LAK_648_TIMES_NI 0x12512 #define T_UTF_32_CUNEIFORM_SIGN_LAK_648_TIMES_PAP_PLUS_PAP_PLUS_LU3 0x12513 #define T_UTF_32_CUNEIFORM_SIGN_LAK_648_TIMES_SHESH_PLUS_KI 0x12514 #define T_UTF_32_CUNEIFORM_SIGN_LAK_648_TIMES_UD 0x12515 #define T_UTF_32_CUNEIFORM_SIGN_LAK_648_TIMES_URUDA 0x12516 #define T_UTF_32_CUNEIFORM_SIGN_LAK_724 0x12517 #define T_UTF_32_CUNEIFORM_SIGN_LAK_749 0x12518 #define T_UTF_32_CUNEIFORM_SIGN_LU2_GUNU_TIMES_ASH 0x12519 #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_DISH 0x1251A #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_HAL 0x1251B #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_PAP 0x1251C #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_PAP_PLUS_PAP_PLUS_LU3 0x1251D #define T_UTF_32_CUNEIFORM_SIGN_LU2_TIMES_TAK4 0x1251E #define T_UTF_32_CUNEIFORM_SIGN_MI_PLUS_ZA7 0x1251F #define T_UTF_32_CUNEIFORM_SIGN_MUSH_OVER_MUSH_TIMES_GA 0x12520 #define T_UTF_32_CUNEIFORM_SIGN_MUSH_OVER_MUSH_TIMES_KAK 0x12521 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_DIM_GUNU 0x12522 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_GISH 0x12523 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_GUL 0x12524 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_HI 0x12525 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_KESH2 0x12526 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_LAK_050 0x12527 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_MASH 0x12528 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_PAP_PLUS_PAP 0x12529 #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_U 0x1252A #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_U_PLUS_U 0x1252B #define T_UTF_32_CUNEIFORM_SIGN_NINDA2_TIMES_URUDA 0x1252C #define T_UTF_32_CUNEIFORM_SIGN_SAG_GUNU_TIMES_HA 0x1252D #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_EN 0x1252E #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_SHE_AT_LEFT 0x1252F #define T_UTF_32_CUNEIFORM_SIGN_SAG_TIMES_TAK4 0x12530 #define T_UTF_32_CUNEIFORM_SIGN_SHA6_TENU 0x12531 #define T_UTF_32_CUNEIFORM_SIGN_SHE_OVER_SHE 0x12532 #define T_UTF_32_CUNEIFORM_SIGN_SHE_PLUS_HUB2 0x12533 #define T_UTF_32_CUNEIFORM_SIGN_SHE_PLUS_NAM2 0x12534 #define T_UTF_32_CUNEIFORM_SIGN_SHE_PLUS_SAR 0x12535 #define T_UTF_32_CUNEIFORM_SIGN_SHU2_PLUS_DUG_TIMES_NI 0x12536 #define T_UTF_32_CUNEIFORM_SIGN_SHU2_PLUS_E2_TIMES_AN 0x12537 #define T_UTF_32_CUNEIFORM_SIGN_SI_TIMES_TAK4 0x12538 #define T_UTF_32_CUNEIFORM_SIGN_TAK4_PLUS_SAG 0x12539 #define T_UTF_32_CUNEIFORM_SIGN_TUM_TIMES_GAN2_TENU 0x1253A #define T_UTF_32_CUNEIFORM_SIGN_TUM_TIMES_THREE_DISH 0x1253B #define T_UTF_32_CUNEIFORM_SIGN_UR2_INVERTED 0x1253C #define T_UTF_32_CUNEIFORM_SIGN_UR2_TIMES_UD 0x1253D #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_DARA3 0x1253E #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_LAK_668 0x1253F #define T_UTF_32_CUNEIFORM_SIGN_URU_TIMES_LU3 0x12540 #define T_UTF_32_CUNEIFORM_SIGN_ZA7 0x12541 #define T_UTF_32_CUNEIFORM_SIGN_ZU_OVER_ZU_PLUS_SAR 0x12542 #define T_UTF_32_CUNEIFORM_SIGN_ZU5_TIMES_THREE_DISH_TENU 0x12543 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A001 0x13000 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A002 0x13001 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A003 0x13002 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A004 0x13003 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A005 0x13004 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A005A 0x13005 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A006 0x13006 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A006A 0x13007 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A006B 0x13008 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A007 0x13009 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A008 0x1300A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A009 0x1300B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A010 0x1300C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A011 0x1300D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A012 0x1300E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A013 0x1300F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A014 0x13010 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A014A 0x13011 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A015 0x13012 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A016 0x13013 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A017 0x13014 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A017A 0x13015 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A018 0x13016 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A019 0x13017 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A020 0x13018 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A021 0x13019 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A022 0x1301A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A023 0x1301B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A024 0x1301C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A025 0x1301D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A026 0x1301E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A027 0x1301F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A028 0x13020 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A029 0x13021 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A030 0x13022 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A031 0x13023 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A032 0x13024 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A032A 0x13025 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A033 0x13026 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A034 0x13027 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A035 0x13028 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A036 0x13029 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A037 0x1302A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A038 0x1302B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A039 0x1302C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A040 0x1302D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A040A 0x1302E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A041 0x1302F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A042 0x13030 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A042A 0x13031 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A043 0x13032 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A043A 0x13033 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A044 0x13034 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A045 0x13035 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A045A 0x13036 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A046 0x13037 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A047 0x13038 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A048 0x13039 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A049 0x1303A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A050 0x1303B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A051 0x1303C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A052 0x1303D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A053 0x1303E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A054 0x1303F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A055 0x13040 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A056 0x13041 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A057 0x13042 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A058 0x13043 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A059 0x13044 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A060 0x13045 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A061 0x13046 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A062 0x13047 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A063 0x13048 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A064 0x13049 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A065 0x1304A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A066 0x1304B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A067 0x1304C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A068 0x1304D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A069 0x1304E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_A070 0x1304F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_B001 0x13050 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_B002 0x13051 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_B003 0x13052 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_B004 0x13053 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_B005 0x13054 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_B005A 0x13055 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_B006 0x13056 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_B007 0x13057 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_B008 0x13058 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_B009 0x13059 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C001 0x1305A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C002 0x1305B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C002A 0x1305C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C002B 0x1305D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C002C 0x1305E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C003 0x1305F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C004 0x13060 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C005 0x13061 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C006 0x13062 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C007 0x13063 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C008 0x13064 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C009 0x13065 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C010 0x13066 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C010A 0x13067 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C011 0x13068 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C012 0x13069 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C013 0x1306A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C014 0x1306B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C015 0x1306C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C016 0x1306D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C017 0x1306E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C018 0x1306F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C019 0x13070 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C020 0x13071 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C021 0x13072 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C022 0x13073 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C023 0x13074 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_C024 0x13075 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D001 0x13076 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D002 0x13077 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D003 0x13078 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D004 0x13079 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D005 0x1307A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D006 0x1307B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D007 0x1307C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D008 0x1307D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D008A 0x1307E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D009 0x1307F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D010 0x13080 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D011 0x13081 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D012 0x13082 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D013 0x13083 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D014 0x13084 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D015 0x13085 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D016 0x13086 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D017 0x13087 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D018 0x13088 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D019 0x13089 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D020 0x1308A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D021 0x1308B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D022 0x1308C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D023 0x1308D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D024 0x1308E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D025 0x1308F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D026 0x13090 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D027 0x13091 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D027A 0x13092 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D028 0x13093 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D029 0x13094 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D030 0x13095 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D031 0x13096 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D031A 0x13097 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D032 0x13098 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D033 0x13099 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D034 0x1309A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D034A 0x1309B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D035 0x1309C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D036 0x1309D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D037 0x1309E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D038 0x1309F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D039 0x130A0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D040 0x130A1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D041 0x130A2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D042 0x130A3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D043 0x130A4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D044 0x130A5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D045 0x130A6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D046 0x130A7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D046A 0x130A8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D047 0x130A9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D048 0x130AA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D048A 0x130AB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D049 0x130AC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D050 0x130AD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D050A 0x130AE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D050B 0x130AF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D050C 0x130B0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D050D 0x130B1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D050E 0x130B2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D050F 0x130B3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D050G 0x130B4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D050H 0x130B5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D050I 0x130B6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D051 0x130B7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D052 0x130B8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D052A 0x130B9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D053 0x130BA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D054 0x130BB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D054A 0x130BC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D055 0x130BD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D056 0x130BE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D057 0x130BF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D058 0x130C0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D059 0x130C1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D060 0x130C2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D061 0x130C3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D062 0x130C4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D063 0x130C5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D064 0x130C6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D065 0x130C7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D066 0x130C8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D067 0x130C9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D067A 0x130CA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D067B 0x130CB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D067C 0x130CC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D067D 0x130CD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D067E 0x130CE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D067F 0x130CF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D067G 0x130D0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_D067H 0x130D1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E001 0x130D2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E002 0x130D3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E003 0x130D4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E004 0x130D5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E005 0x130D6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E006 0x130D7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E007 0x130D8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E008 0x130D9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E008A 0x130DA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E009 0x130DB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E009A 0x130DC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E010 0x130DD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E011 0x130DE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E012 0x130DF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E013 0x130E0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E014 0x130E1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E015 0x130E2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E016 0x130E3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E016A 0x130E4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E017 0x130E5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E017A 0x130E6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E018 0x130E7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E019 0x130E8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E020 0x130E9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E020A 0x130EA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E021 0x130EB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E022 0x130EC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E023 0x130ED #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E024 0x130EE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E025 0x130EF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E026 0x130F0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E027 0x130F1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E028 0x130F2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E028A 0x130F3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E029 0x130F4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E030 0x130F5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E031 0x130F6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E032 0x130F7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E033 0x130F8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E034 0x130F9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E034A 0x130FA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E036 0x130FB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E037 0x130FC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_E038 0x130FD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F001 0x130FE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F001A 0x130FF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F002 0x13100 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F003 0x13101 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F004 0x13102 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F005 0x13103 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F006 0x13104 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F007 0x13105 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F008 0x13106 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F009 0x13107 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F010 0x13108 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F011 0x13109 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F012 0x1310A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F013 0x1310B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F013A 0x1310C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F014 0x1310D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F015 0x1310E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F016 0x1310F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F017 0x13110 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F018 0x13111 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F019 0x13112 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F020 0x13113 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F021 0x13114 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F021A 0x13115 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F022 0x13116 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F023 0x13117 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F024 0x13118 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F025 0x13119 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F026 0x1311A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F027 0x1311B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F028 0x1311C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F029 0x1311D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F030 0x1311E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F031 0x1311F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F031A 0x13120 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F032 0x13121 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F033 0x13122 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F034 0x13123 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F035 0x13124 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F036 0x13125 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F037 0x13126 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F037A 0x13127 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F038 0x13128 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F038A 0x13129 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F039 0x1312A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F040 0x1312B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F041 0x1312C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F042 0x1312D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F043 0x1312E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F044 0x1312F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F045 0x13130 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F045A 0x13131 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F046 0x13132 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F046A 0x13133 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F047 0x13134 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F047A 0x13135 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F048 0x13136 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F049 0x13137 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F050 0x13138 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F051 0x13139 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F051A 0x1313A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F051B 0x1313B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F051C 0x1313C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F052 0x1313D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_F053 0x1313E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G001 0x1313F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G002 0x13140 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G003 0x13141 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G004 0x13142 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G005 0x13143 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G006 0x13144 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G006A 0x13145 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G007 0x13146 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G007A 0x13147 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G007B 0x13148 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G008 0x13149 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G009 0x1314A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G010 0x1314B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G011 0x1314C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G011A 0x1314D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G012 0x1314E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G013 0x1314F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G014 0x13150 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G015 0x13151 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G016 0x13152 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G017 0x13153 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G018 0x13154 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G019 0x13155 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G020 0x13156 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G020A 0x13157 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G021 0x13158 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G022 0x13159 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G023 0x1315A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G024 0x1315B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G025 0x1315C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G026 0x1315D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G026A 0x1315E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G027 0x1315F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G028 0x13160 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G029 0x13161 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G030 0x13162 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G031 0x13163 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G032 0x13164 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G033 0x13165 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G034 0x13166 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G035 0x13167 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G036 0x13168 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G036A 0x13169 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G037 0x1316A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G037A 0x1316B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G038 0x1316C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G039 0x1316D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G040 0x1316E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G041 0x1316F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G042 0x13170 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G043 0x13171 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G043A 0x13172 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G044 0x13173 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G045 0x13174 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G045A 0x13175 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G046 0x13176 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G047 0x13177 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G048 0x13178 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G049 0x13179 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G050 0x1317A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G051 0x1317B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G052 0x1317C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G053 0x1317D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_G054 0x1317E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_H001 0x1317F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_H002 0x13180 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_H003 0x13181 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_H004 0x13182 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_H005 0x13183 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_H006 0x13184 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_H006A 0x13185 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_H007 0x13186 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_H008 0x13187 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I001 0x13188 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I002 0x13189 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I003 0x1318A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I004 0x1318B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I005 0x1318C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I005A 0x1318D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I006 0x1318E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I007 0x1318F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I008 0x13190 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I009 0x13191 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I009A 0x13192 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I010 0x13193 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I010A 0x13194 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I011 0x13195 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I011A 0x13196 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I012 0x13197 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I013 0x13198 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I014 0x13199 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_I015 0x1319A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_K001 0x1319B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_K002 0x1319C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_K003 0x1319D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_K004 0x1319E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_K005 0x1319F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_K006 0x131A0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_K007 0x131A1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_K008 0x131A2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_L001 0x131A3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_L002 0x131A4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_L002A 0x131A5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_L003 0x131A6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_L004 0x131A7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_L005 0x131A8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_L006 0x131A9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_L006A 0x131AA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_L007 0x131AB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_L008 0x131AC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M001 0x131AD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M001A 0x131AE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M001B 0x131AF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M002 0x131B0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M003 0x131B1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M003A 0x131B2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M004 0x131B3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M005 0x131B4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M006 0x131B5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M007 0x131B6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M008 0x131B7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M009 0x131B8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M010 0x131B9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M010A 0x131BA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M011 0x131BB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M012 0x131BC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M012A 0x131BD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M012B 0x131BE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M012C 0x131BF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M012D 0x131C0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M012E 0x131C1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M012F 0x131C2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M012G 0x131C3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M012H 0x131C4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M013 0x131C5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M014 0x131C6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M015 0x131C7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M015A 0x131C8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M016 0x131C9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M016A 0x131CA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M017 0x131CB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M017A 0x131CC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M018 0x131CD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M019 0x131CE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M020 0x131CF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M021 0x131D0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M022 0x131D1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M022A 0x131D2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M023 0x131D3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M024 0x131D4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M024A 0x131D5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M025 0x131D6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M026 0x131D7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M027 0x131D8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M028 0x131D9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M028A 0x131DA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M029 0x131DB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M030 0x131DC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M031 0x131DD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M031A 0x131DE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M032 0x131DF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M033 0x131E0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M033A 0x131E1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M033B 0x131E2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M034 0x131E3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M035 0x131E4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M036 0x131E5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M037 0x131E6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M038 0x131E7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M039 0x131E8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M040 0x131E9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M040A 0x131EA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M041 0x131EB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M042 0x131EC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M043 0x131ED #define T_UTF_32_EGYPTIAN_HIEROGLYPH_M044 0x131EE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N001 0x131EF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N002 0x131F0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N003 0x131F1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N004 0x131F2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N005 0x131F3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N006 0x131F4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N007 0x131F5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N008 0x131F6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N009 0x131F7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N010 0x131F8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N011 0x131F9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N012 0x131FA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N013 0x131FB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N014 0x131FC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N015 0x131FD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N016 0x131FE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N017 0x131FF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N018 0x13200 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N018A 0x13201 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N018B 0x13202 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N019 0x13203 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N020 0x13204 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N021 0x13205 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N022 0x13206 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N023 0x13207 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N024 0x13208 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N025 0x13209 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N025A 0x1320A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N026 0x1320B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N027 0x1320C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N028 0x1320D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N029 0x1320E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N030 0x1320F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N031 0x13210 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N032 0x13211 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N033 0x13212 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N033A 0x13213 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N034 0x13214 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N034A 0x13215 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N035 0x13216 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N035A 0x13217 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N036 0x13218 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N037 0x13219 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N037A 0x1321A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N038 0x1321B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N039 0x1321C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N040 0x1321D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N041 0x1321E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_N042 0x1321F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL001 0x13220 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL002 0x13221 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL003 0x13222 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL004 0x13223 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL005 0x13224 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL005A 0x13225 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL006 0x13226 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL007 0x13227 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL008 0x13228 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL009 0x13229 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL010 0x1322A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL011 0x1322B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL012 0x1322C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL013 0x1322D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL014 0x1322E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL015 0x1322F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL016 0x13230 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL017 0x13231 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL017A 0x13232 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL018 0x13233 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL019 0x13234 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NL020 0x13235 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU001 0x13236 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU002 0x13237 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU003 0x13238 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU004 0x13239 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU005 0x1323A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU006 0x1323B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU007 0x1323C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU008 0x1323D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU009 0x1323E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU010 0x1323F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU010A 0x13240 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU011 0x13241 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU011A 0x13242 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU012 0x13243 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU013 0x13244 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU014 0x13245 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU015 0x13246 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU016 0x13247 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU017 0x13248 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU018 0x13249 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU018A 0x1324A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU019 0x1324B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU020 0x1324C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU021 0x1324D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU022 0x1324E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_NU022A 0x1324F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O001 0x13250 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O001A 0x13251 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O002 0x13252 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O003 0x13253 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O004 0x13254 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O005 0x13255 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O005A 0x13256 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O006 0x13257 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O006A 0x13258 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O006B 0x13259 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O006C 0x1325A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O006D 0x1325B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O006E 0x1325C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O006F 0x1325D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O007 0x1325E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O008 0x1325F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O009 0x13260 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O010 0x13261 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O010A 0x13262 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O010B 0x13263 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O010C 0x13264 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O011 0x13265 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O012 0x13266 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O013 0x13267 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O014 0x13268 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O015 0x13269 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O016 0x1326A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O017 0x1326B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O018 0x1326C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O019 0x1326D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O019A 0x1326E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O020 0x1326F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O020A 0x13270 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O021 0x13271 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O022 0x13272 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O023 0x13273 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O024 0x13274 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O024A 0x13275 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O025 0x13276 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O025A 0x13277 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O026 0x13278 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O027 0x13279 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O028 0x1327A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O029 0x1327B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O029A 0x1327C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O030 0x1327D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O030A 0x1327E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O031 0x1327F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O032 0x13280 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O033 0x13281 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O033A 0x13282 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O034 0x13283 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O035 0x13284 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O036 0x13285 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O036A 0x13286 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O036B 0x13287 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O036C 0x13288 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O036D 0x13289 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O037 0x1328A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O038 0x1328B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O039 0x1328C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O040 0x1328D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O041 0x1328E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O042 0x1328F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O043 0x13290 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O044 0x13291 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O045 0x13292 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O046 0x13293 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O047 0x13294 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O048 0x13295 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O049 0x13296 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O050 0x13297 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O050A 0x13298 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O050B 0x13299 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_O051 0x1329A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P001 0x1329B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P001A 0x1329C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P002 0x1329D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P003 0x1329E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P003A 0x1329F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P004 0x132A0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P005 0x132A1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P006 0x132A2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P007 0x132A3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P008 0x132A4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P009 0x132A5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P010 0x132A6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_P011 0x132A7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Q001 0x132A8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Q002 0x132A9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Q003 0x132AA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Q004 0x132AB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Q005 0x132AC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Q006 0x132AD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Q007 0x132AE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R001 0x132AF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R002 0x132B0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R002A 0x132B1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R003 0x132B2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R003A 0x132B3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R003B 0x132B4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R004 0x132B5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R005 0x132B6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R006 0x132B7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R007 0x132B8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R008 0x132B9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R009 0x132BA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R010 0x132BB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R010A 0x132BC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R011 0x132BD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R012 0x132BE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R013 0x132BF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R014 0x132C0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R015 0x132C1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R016 0x132C2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R016A 0x132C3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R017 0x132C4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R018 0x132C5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R019 0x132C6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R020 0x132C7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R021 0x132C8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R022 0x132C9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R023 0x132CA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R024 0x132CB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R025 0x132CC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R026 0x132CD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R027 0x132CE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R028 0x132CF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_R029 0x132D0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S001 0x132D1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S002 0x132D2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S002A 0x132D3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S003 0x132D4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S004 0x132D5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S005 0x132D6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S006 0x132D7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S006A 0x132D8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S007 0x132D9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S008 0x132DA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S009 0x132DB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S010 0x132DC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S011 0x132DD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S012 0x132DE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S013 0x132DF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S014 0x132E0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S014A 0x132E1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S014B 0x132E2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S015 0x132E3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S016 0x132E4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S017 0x132E5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S017A 0x132E6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S018 0x132E7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S019 0x132E8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S020 0x132E9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S021 0x132EA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S022 0x132EB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S023 0x132EC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S024 0x132ED #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S025 0x132EE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S026 0x132EF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S026A 0x132F0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S026B 0x132F1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S027 0x132F2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S028 0x132F3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S029 0x132F4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S030 0x132F5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S031 0x132F6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S032 0x132F7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S033 0x132F8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S034 0x132F9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S035 0x132FA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S035A 0x132FB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S036 0x132FC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S037 0x132FD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S038 0x132FE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S039 0x132FF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S040 0x13300 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S041 0x13301 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S042 0x13302 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S043 0x13303 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S044 0x13304 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S045 0x13305 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_S046 0x13306 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T001 0x13307 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T002 0x13308 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T003 0x13309 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T003A 0x1330A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T004 0x1330B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T005 0x1330C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T006 0x1330D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T007 0x1330E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T007A 0x1330F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T008 0x13310 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T008A 0x13311 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T009 0x13312 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T009A 0x13313 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T010 0x13314 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T011 0x13315 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T011A 0x13316 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T012 0x13317 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T013 0x13318 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T014 0x13319 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T015 0x1331A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T016 0x1331B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T016A 0x1331C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T017 0x1331D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T018 0x1331E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T019 0x1331F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T020 0x13320 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T021 0x13321 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T022 0x13322 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T023 0x13323 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T024 0x13324 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T025 0x13325 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T026 0x13326 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T027 0x13327 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T028 0x13328 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T029 0x13329 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T030 0x1332A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T031 0x1332B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T032 0x1332C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T032A 0x1332D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T033 0x1332E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T033A 0x1332F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T034 0x13330 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T035 0x13331 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_T036 0x13332 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U001 0x13333 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U002 0x13334 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U003 0x13335 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U004 0x13336 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U005 0x13337 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U006 0x13338 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U006A 0x13339 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U006B 0x1333A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U007 0x1333B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U008 0x1333C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U009 0x1333D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U010 0x1333E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U011 0x1333F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U012 0x13340 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U013 0x13341 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U014 0x13342 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U015 0x13343 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U016 0x13344 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U017 0x13345 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U018 0x13346 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U019 0x13347 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U020 0x13348 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U021 0x13349 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U022 0x1334A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U023 0x1334B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U023A 0x1334C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U024 0x1334D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U025 0x1334E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U026 0x1334F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U027 0x13350 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U028 0x13351 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U029 0x13352 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U029A 0x13353 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U030 0x13354 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U031 0x13355 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U032 0x13356 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U032A 0x13357 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U033 0x13358 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U034 0x13359 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U035 0x1335A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U036 0x1335B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U037 0x1335C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U038 0x1335D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U039 0x1335E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U040 0x1335F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U041 0x13360 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_U042 0x13361 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V001 0x13362 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V001A 0x13363 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V001B 0x13364 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V001C 0x13365 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V001D 0x13366 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V001E 0x13367 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V001F 0x13368 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V001G 0x13369 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V001H 0x1336A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V001I 0x1336B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V002 0x1336C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V002A 0x1336D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V003 0x1336E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V004 0x1336F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V005 0x13370 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V006 0x13371 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V007 0x13372 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V007A 0x13373 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V007B 0x13374 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V008 0x13375 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V009 0x13376 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V010 0x13377 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V011 0x13378 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V011A 0x13379 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V011B 0x1337A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V011C 0x1337B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V012 0x1337C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V012A 0x1337D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V012B 0x1337E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V013 0x1337F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V014 0x13380 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V015 0x13381 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V016 0x13382 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V017 0x13383 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V018 0x13384 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V019 0x13385 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020 0x13386 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020A 0x13387 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020B 0x13388 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020C 0x13389 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020D 0x1338A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020E 0x1338B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020F 0x1338C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020G 0x1338D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020H 0x1338E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020I 0x1338F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020J 0x13390 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020K 0x13391 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V020L 0x13392 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V021 0x13393 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V022 0x13394 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V023 0x13395 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V023A 0x13396 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V024 0x13397 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V025 0x13398 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V026 0x13399 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V027 0x1339A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V028 0x1339B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V028A 0x1339C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V029 0x1339D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V029A 0x1339E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V030 0x1339F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V030A 0x133A0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V031 0x133A1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V031A 0x133A2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V032 0x133A3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V033 0x133A4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V033A 0x133A5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V034 0x133A6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V035 0x133A7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V036 0x133A8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V037 0x133A9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V037A 0x133AA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V038 0x133AB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V039 0x133AC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V040 0x133AD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_V040A 0x133AE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W001 0x133AF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W002 0x133B0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W003 0x133B1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W003A 0x133B2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W004 0x133B3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W005 0x133B4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W006 0x133B5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W007 0x133B6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W008 0x133B7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W009 0x133B8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W009A 0x133B9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W010 0x133BA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W010A 0x133BB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W011 0x133BC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W012 0x133BD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W013 0x133BE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W014 0x133BF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W014A 0x133C0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W015 0x133C1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W016 0x133C2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W017 0x133C3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W017A 0x133C4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W018 0x133C5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W018A 0x133C6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W019 0x133C7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W020 0x133C8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W021 0x133C9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W022 0x133CA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W023 0x133CB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W024 0x133CC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W024A 0x133CD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_W025 0x133CE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X001 0x133CF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X002 0x133D0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X003 0x133D1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X004 0x133D2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X004A 0x133D3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X004B 0x133D4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X005 0x133D5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X006 0x133D6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X006A 0x133D7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X007 0x133D8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X008 0x133D9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_X008A 0x133DA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Y001 0x133DB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Y001A 0x133DC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Y002 0x133DD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Y003 0x133DE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Y004 0x133DF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Y005 0x133E0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Y006 0x133E1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Y007 0x133E2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Y008 0x133E3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z001 0x133E4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z002 0x133E5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z002A 0x133E6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z002B 0x133E7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z002C 0x133E8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z002D 0x133E9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z003 0x133EA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z003A 0x133EB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z003B 0x133EC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z004 0x133ED #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z004A 0x133EE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z005 0x133EF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z005A 0x133F0 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z006 0x133F1 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z007 0x133F2 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z008 0x133F3 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z009 0x133F4 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z010 0x133F5 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z011 0x133F6 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z012 0x133F7 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z013 0x133F8 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z014 0x133F9 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z015 0x133FA #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z015A 0x133FB #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z015B 0x133FC #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z015C 0x133FD #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z015D 0x133FE #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z015E 0x133FF #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z015F 0x13400 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z015G 0x13401 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z015H 0x13402 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z015I 0x13403 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z016 0x13404 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z016A 0x13405 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z016B 0x13406 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z016C 0x13407 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z016D 0x13408 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z016E 0x13409 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z016F 0x1340A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z016G 0x1340B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_Z016H 0x1340C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA001 0x1340D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA002 0x1340E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA003 0x1340F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA004 0x13410 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA005 0x13411 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA006 0x13412 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA007 0x13413 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA007A 0x13414 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA007B 0x13415 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA008 0x13416 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA009 0x13417 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA010 0x13418 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA011 0x13419 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA012 0x1341A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA013 0x1341B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA014 0x1341C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA015 0x1341D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA016 0x1341E #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA017 0x1341F #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA018 0x13420 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA019 0x13421 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA020 0x13422 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA021 0x13423 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA022 0x13424 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA023 0x13425 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA024 0x13426 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA025 0x13427 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA026 0x13428 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA027 0x13429 #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA028 0x1342A #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA029 0x1342B #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA030 0x1342C #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA031 0x1342D #define T_UTF_32_EGYPTIAN_HIEROGLYPH_AA032 0x1342E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A001 0x14400 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A002 0x14401 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A003 0x14402 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A004 0x14403 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A005 0x14404 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A006 0x14405 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A007 0x14406 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A008 0x14407 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A009 0x14408 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A010 0x14409 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A010A 0x1440A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A011 0x1440B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A012 0x1440C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A013 0x1440D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A014 0x1440E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A015 0x1440F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A016 0x14410 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A017 0x14411 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A018 0x14412 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A019 0x14413 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A020 0x14414 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A021 0x14415 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A022 0x14416 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A023 0x14417 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A024 0x14418 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A025 0x14419 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A026 0x1441A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A026A 0x1441B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A027 0x1441C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A028 0x1441D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A029 0x1441E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A030 0x1441F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A031 0x14420 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A032 0x14421 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A033 0x14422 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A034 0x14423 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A035 0x14424 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A036 0x14425 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A037 0x14426 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A038 0x14427 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A039 0x14428 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A039A 0x14429 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A040 0x1442A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A041 0x1442B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A041A 0x1442C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A042 0x1442D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A043 0x1442E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A044 0x1442F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A045 0x14430 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A045A 0x14431 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A046 0x14432 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A046A 0x14433 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A046B 0x14434 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A047 0x14435 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A048 0x14436 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A049 0x14437 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A050 0x14438 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A051 0x14439 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A052 0x1443A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A053 0x1443B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A054 0x1443C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A055 0x1443D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A056 0x1443E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A057 0x1443F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A058 0x14440 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A059 0x14441 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A060 0x14442 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A061 0x14443 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A062 0x14444 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A063 0x14445 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A064 0x14446 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A065 0x14447 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A066 0x14448 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A066A 0x14449 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A066B 0x1444A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A066C 0x1444B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A067 0x1444C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A068 0x1444D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A069 0x1444E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A070 0x1444F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A071 0x14450 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A072 0x14451 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A073 0x14452 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A074 0x14453 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A075 0x14454 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A076 0x14455 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A077 0x14456 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A078 0x14457 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A079 0x14458 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A080 0x14459 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A081 0x1445A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A082 0x1445B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A083 0x1445C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A084 0x1445D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A085 0x1445E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A086 0x1445F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A087 0x14460 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A088 0x14461 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A089 0x14462 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A090 0x14463 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A091 0x14464 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A092 0x14465 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A093 0x14466 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A094 0x14467 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A095 0x14468 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A096 0x14469 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A097 0x1446A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A097A 0x1446B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A098 0x1446C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A098A 0x1446D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A099 0x1446E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A100 0x1446F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A100A 0x14470 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A101 0x14471 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A101A 0x14472 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A102 0x14473 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A102A 0x14474 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A103 0x14475 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A104 0x14476 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A104A 0x14477 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A104B 0x14478 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A104C 0x14479 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A105 0x1447A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A105A 0x1447B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A105B 0x1447C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A106 0x1447D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A107 0x1447E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A107A 0x1447F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A107B 0x14480 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A107C 0x14481 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A108 0x14482 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A109 0x14483 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A110 0x14484 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A110A 0x14485 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A110B 0x14486 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A111 0x14487 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A112 0x14488 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A113 0x14489 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A114 0x1448A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A115 0x1448B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A115A 0x1448C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A116 0x1448D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A117 0x1448E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A118 0x1448F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A119 0x14490 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A120 0x14491 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A121 0x14492 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A122 0x14493 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A123 0x14494 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A124 0x14495 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A125 0x14496 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A125A 0x14497 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A126 0x14498 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A127 0x14499 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A128 0x1449A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A129 0x1449B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A130 0x1449C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A131 0x1449D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A132 0x1449E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A133 0x1449F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A134 0x144A0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A135 0x144A1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A135A 0x144A2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A136 0x144A3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A137 0x144A4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A138 0x144A5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A139 0x144A6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A140 0x144A7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A141 0x144A8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A142 0x144A9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A143 0x144AA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A144 0x144AB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A145 0x144AC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A146 0x144AD #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A147 0x144AE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A148 0x144AF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A149 0x144B0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A150 0x144B1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A151 0x144B2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A152 0x144B3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A153 0x144B4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A154 0x144B5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A155 0x144B6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A156 0x144B7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A157 0x144B8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A158 0x144B9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A159 0x144BA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A160 0x144BB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A161 0x144BC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A162 0x144BD #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A163 0x144BE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A164 0x144BF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A165 0x144C0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A166 0x144C1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A167 0x144C2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A168 0x144C3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A169 0x144C4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A170 0x144C5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A171 0x144C6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A172 0x144C7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A173 0x144C8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A174 0x144C9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A175 0x144CA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A176 0x144CB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A177 0x144CC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A178 0x144CD #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A179 0x144CE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A180 0x144CF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A181 0x144D0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A182 0x144D1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A183 0x144D2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A184 0x144D3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A185 0x144D4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A186 0x144D5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A187 0x144D6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A188 0x144D7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A189 0x144D8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A190 0x144D9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A191 0x144DA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A192 0x144DB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A193 0x144DC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A194 0x144DD #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A195 0x144DE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A196 0x144DF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A197 0x144E0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A198 0x144E1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A199 0x144E2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A200 0x144E3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A201 0x144E4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A202 0x144E5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A202A 0x144E6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A202B 0x144E7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A203 0x144E8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A204 0x144E9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A205 0x144EA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A206 0x144EB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A207 0x144EC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A207A 0x144ED #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A208 0x144EE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A209 0x144EF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A209A 0x144F0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A210 0x144F1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A211 0x144F2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A212 0x144F3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A213 0x144F4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A214 0x144F5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A215 0x144F6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A215A 0x144F7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A216 0x144F8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A216A 0x144F9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A217 0x144FA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A218 0x144FB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A219 0x144FC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A220 0x144FD #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A221 0x144FE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A222 0x144FF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A223 0x14500 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A224 0x14501 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A225 0x14502 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A226 0x14503 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A227 0x14504 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A227A 0x14505 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A228 0x14506 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A229 0x14507 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A230 0x14508 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A231 0x14509 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A232 0x1450A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A233 0x1450B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A234 0x1450C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A235 0x1450D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A236 0x1450E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A237 0x1450F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A238 0x14510 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A239 0x14511 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A240 0x14512 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A241 0x14513 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A242 0x14514 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A243 0x14515 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A244 0x14516 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A245 0x14517 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A246 0x14518 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A247 0x14519 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A248 0x1451A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A249 0x1451B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A250 0x1451C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A251 0x1451D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A252 0x1451E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A253 0x1451F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A254 0x14520 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A255 0x14521 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A256 0x14522 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A257 0x14523 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A258 0x14524 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A259 0x14525 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A260 0x14526 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A261 0x14527 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A262 0x14528 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A263 0x14529 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A264 0x1452A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A265 0x1452B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A266 0x1452C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A267 0x1452D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A267A 0x1452E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A268 0x1452F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A269 0x14530 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A270 0x14531 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A271 0x14532 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A272 0x14533 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A273 0x14534 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A274 0x14535 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A275 0x14536 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A276 0x14537 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A277 0x14538 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A278 0x14539 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A279 0x1453A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A280 0x1453B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A281 0x1453C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A282 0x1453D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A283 0x1453E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A284 0x1453F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A285 0x14540 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A286 0x14541 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A287 0x14542 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A288 0x14543 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A289 0x14544 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A289A 0x14545 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A290 0x14546 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A291 0x14547 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A292 0x14548 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A293 0x14549 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A294 0x1454A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A294A 0x1454B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A295 0x1454C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A296 0x1454D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A297 0x1454E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A298 0x1454F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A299 0x14550 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A299A 0x14551 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A300 0x14552 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A301 0x14553 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A302 0x14554 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A303 0x14555 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A304 0x14556 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A305 0x14557 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A306 0x14558 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A307 0x14559 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A308 0x1455A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A309 0x1455B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A309A 0x1455C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A310 0x1455D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A311 0x1455E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A312 0x1455F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A313 0x14560 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A314 0x14561 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A315 0x14562 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A316 0x14563 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A317 0x14564 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A318 0x14565 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A319 0x14566 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A320 0x14567 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A321 0x14568 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A322 0x14569 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A323 0x1456A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A324 0x1456B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A325 0x1456C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A326 0x1456D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A327 0x1456E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A328 0x1456F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A329 0x14570 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A329A 0x14571 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A330 0x14572 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A331 0x14573 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A332A 0x14574 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A332B 0x14575 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A332C 0x14576 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A333 0x14577 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A334 0x14578 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A335 0x14579 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A336 0x1457A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A336A 0x1457B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A336B 0x1457C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A336C 0x1457D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A337 0x1457E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A338 0x1457F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A339 0x14580 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A340 0x14581 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A341 0x14582 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A342 0x14583 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A343 0x14584 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A344 0x14585 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A345 0x14586 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A346 0x14587 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A347 0x14588 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A348 0x14589 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A349 0x1458A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A350 0x1458B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A351 0x1458C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A352 0x1458D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A353 0x1458E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A354 0x1458F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A355 0x14590 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A356 0x14591 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A357 0x14592 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A358 0x14593 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A359 0x14594 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A359A 0x14595 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A360 0x14596 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A361 0x14597 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A362 0x14598 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A363 0x14599 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A364 0x1459A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A364A 0x1459B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A365 0x1459C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A366 0x1459D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A367 0x1459E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A368 0x1459F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A368A 0x145A0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A369 0x145A1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A370 0x145A2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A371 0x145A3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A371A 0x145A4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A372 0x145A5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A373 0x145A6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A374 0x145A7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A375 0x145A8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A376 0x145A9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A377 0x145AA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A378 0x145AB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A379 0x145AC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A380 0x145AD #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A381 0x145AE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A381A 0x145AF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A382 0x145B0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A383_RA_OR_RI 0x145B1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A383A 0x145B2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A384 0x145B3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A385 0x145B4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A386 0x145B5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A386A 0x145B6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A387 0x145B7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A388 0x145B8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A389 0x145B9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A390 0x145BA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A391 0x145BB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A392 0x145BC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A393_EIGHT 0x145BD #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A394 0x145BE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A395 0x145BF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A396 0x145C0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A397 0x145C1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A398 0x145C2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A399 0x145C3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A400 0x145C4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A401 0x145C5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A402 0x145C6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A403 0x145C7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A404 0x145C8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A405 0x145C9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A406 0x145CA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A407 0x145CB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A408 0x145CC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A409 0x145CD #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A410_BEGIN_LOGOGRAM_MARK 0x145CE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A410A_END_LOGOGRAM_MARK 0x145CF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A411 0x145D0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A412 0x145D1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A413 0x145D2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A414 0x145D3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A415 0x145D4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A416 0x145D5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A417 0x145D6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A418 0x145D7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A419 0x145D8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A420 0x145D9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A421 0x145DA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A422 0x145DB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A423 0x145DC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A424 0x145DD #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A425 0x145DE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A426 0x145DF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A427 0x145E0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A428 0x145E1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A429 0x145E2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A430 0x145E3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A431 0x145E4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A432 0x145E5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A433 0x145E6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A434 0x145E7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A435 0x145E8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A436 0x145E9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A437 0x145EA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A438 0x145EB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A439 0x145EC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A440 0x145ED #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A441 0x145EE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A442 0x145EF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A443 0x145F0 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A444 0x145F1 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A445 0x145F2 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A446 0x145F3 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A447 0x145F4 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A448 0x145F5 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A449 0x145F6 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A450 0x145F7 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A450A 0x145F8 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A451 0x145F9 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A452 0x145FA #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A453 0x145FB #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A454 0x145FC #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A455 0x145FD #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A456 0x145FE #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A457 0x145FF #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A457A 0x14600 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A458 0x14601 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A459 0x14602 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A460 0x14603 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A461 0x14604 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A462 0x14605 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A463 0x14606 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A464 0x14607 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A465 0x14608 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A466 0x14609 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A467 0x1460A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A468 0x1460B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A469 0x1460C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A470 0x1460D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A471 0x1460E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A472 0x1460F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A473 0x14610 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A474 0x14611 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A475 0x14612 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A476 0x14613 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A477 0x14614 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A478 0x14615 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A479 0x14616 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A480 0x14617 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A481 0x14618 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A482 0x14619 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A483 0x1461A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A484 0x1461B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A485 0x1461C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A486 0x1461D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A487 0x1461E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A488 0x1461F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A489 0x14620 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A490 0x14621 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A491 0x14622 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A492 0x14623 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A493 0x14624 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A494 0x14625 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A495 0x14626 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A496 0x14627 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A497 0x14628 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A501 0x14629 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A502 0x1462A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A503 0x1462B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A504 0x1462C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A505 0x1462D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A506 0x1462E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A507 0x1462F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A508 0x14630 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A509 0x14631 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A510 0x14632 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A511 0x14633 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A512 0x14634 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A513 0x14635 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A514 0x14636 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A515 0x14637 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A516 0x14638 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A517 0x14639 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A518 0x1463A #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A519 0x1463B #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A520 0x1463C #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A521 0x1463D #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A522 0x1463E #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A523 0x1463F #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A524 0x14640 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A525 0x14641 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A526 0x14642 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A527 0x14643 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A528 0x14644 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A529 0x14645 #define T_UTF_32_ANATOLIAN_HIEROGLYPH_A530 0x14646 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NGKUE_MFON 0x16800 #define T_UTF_32_BAMUM_LETTER_PHASE_A_GBIEE_FON 0x16801 #define T_UTF_32_BAMUM_LETTER_PHASE_A_PON_MFON_PIPAEMGBIEE 0x16802 #define T_UTF_32_BAMUM_LETTER_PHASE_A_PON_MFON_PIPAEMBA 0x16803 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NAA_MFON 0x16804 #define T_UTF_32_BAMUM_LETTER_PHASE_A_SHUENSHUET 0x16805 #define T_UTF_32_BAMUM_LETTER_PHASE_A_TITA_MFON 0x16806 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NZA_MFON 0x16807 #define T_UTF_32_BAMUM_LETTER_PHASE_A_SHINDA_PA_NJI 0x16808 #define T_UTF_32_BAMUM_LETTER_PHASE_A_PON_PA_NJI_PIPAEMGBIEE 0x16809 #define T_UTF_32_BAMUM_LETTER_PHASE_A_PON_PA_NJI_PIPAEMBA 0x1680A #define T_UTF_32_BAMUM_LETTER_PHASE_A_MAEMBGBIEE 0x1680B #define T_UTF_32_BAMUM_LETTER_PHASE_A_TU_MAEMBA 0x1680C #define T_UTF_32_BAMUM_LETTER_PHASE_A_NGANGU 0x1680D #define T_UTF_32_BAMUM_LETTER_PHASE_A_MAEMVEUX 0x1680E #define T_UTF_32_BAMUM_LETTER_PHASE_A_MANSUAE 0x1680F #define T_UTF_32_BAMUM_LETTER_PHASE_A_MVEUAENGAM 0x16810 #define T_UTF_32_BAMUM_LETTER_PHASE_A_SEUNYAM 0x16811 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NTOQPEN 0x16812 #define T_UTF_32_BAMUM_LETTER_PHASE_A_KEUKEUTNDA 0x16813 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NKINDI 0x16814 #define T_UTF_32_BAMUM_LETTER_PHASE_A_SUU 0x16815 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NGKUENZEUM 0x16816 #define T_UTF_32_BAMUM_LETTER_PHASE_A_LAPAQ 0x16817 #define T_UTF_32_BAMUM_LETTER_PHASE_A_LET_KUT 0x16818 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NTAP_MFAA 0x16819 #define T_UTF_32_BAMUM_LETTER_PHASE_A_MAEKEUP 0x1681A #define T_UTF_32_BAMUM_LETTER_PHASE_A_PASHAE 0x1681B #define T_UTF_32_BAMUM_LETTER_PHASE_A_GHEUAERAE 0x1681C #define T_UTF_32_BAMUM_LETTER_PHASE_A_PAMSHAE 0x1681D #define T_UTF_32_BAMUM_LETTER_PHASE_A_MON_NGGEUAET 0x1681E #define T_UTF_32_BAMUM_LETTER_PHASE_A_NZUN_MEUT 0x1681F #define T_UTF_32_BAMUM_LETTER_PHASE_A_U_YUQ_NAE 0x16820 #define T_UTF_32_BAMUM_LETTER_PHASE_A_GHEUAEGHEUAE 0x16821 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NTAP_NTAA 0x16822 #define T_UTF_32_BAMUM_LETTER_PHASE_A_SISA 0x16823 #define T_UTF_32_BAMUM_LETTER_PHASE_A_MGBASA 0x16824 #define T_UTF_32_BAMUM_LETTER_PHASE_A_MEUNJOMNDEUQ 0x16825 #define T_UTF_32_BAMUM_LETTER_PHASE_A_MOOMPUQ 0x16826 #define T_UTF_32_BAMUM_LETTER_PHASE_A_KAFA 0x16827 #define T_UTF_32_BAMUM_LETTER_PHASE_A_PA_LEERAEWA 0x16828 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NDA_LEERAEWA 0x16829 #define T_UTF_32_BAMUM_LETTER_PHASE_A_PET 0x1682A #define T_UTF_32_BAMUM_LETTER_PHASE_A_MAEMKPEN 0x1682B #define T_UTF_32_BAMUM_LETTER_PHASE_A_NIKA 0x1682C #define T_UTF_32_BAMUM_LETTER_PHASE_A_PUP 0x1682D #define T_UTF_32_BAMUM_LETTER_PHASE_A_TUAEP 0x1682E #define T_UTF_32_BAMUM_LETTER_PHASE_A_LUAEP 0x1682F #define T_UTF_32_BAMUM_LETTER_PHASE_A_SONJAM 0x16830 #define T_UTF_32_BAMUM_LETTER_PHASE_A_TEUTEUWEN 0x16831 #define T_UTF_32_BAMUM_LETTER_PHASE_A_MAENYI 0x16832 #define T_UTF_32_BAMUM_LETTER_PHASE_A_KET 0x16833 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NDAANGGEUAET 0x16834 #define T_UTF_32_BAMUM_LETTER_PHASE_A_KUOQ 0x16835 #define T_UTF_32_BAMUM_LETTER_PHASE_A_MOOMEUT 0x16836 #define T_UTF_32_BAMUM_LETTER_PHASE_A_SHUM 0x16837 #define T_UTF_32_BAMUM_LETTER_PHASE_A_LOMMAE 0x16838 #define T_UTF_32_BAMUM_LETTER_PHASE_A_FIRI 0x16839 #define T_UTF_32_BAMUM_LETTER_PHASE_A_ROM 0x1683A #define T_UTF_32_BAMUM_LETTER_PHASE_A_KPOQ 0x1683B #define T_UTF_32_BAMUM_LETTER_PHASE_A_SOQ 0x1683C #define T_UTF_32_BAMUM_LETTER_PHASE_A_MAP_PIEET 0x1683D #define T_UTF_32_BAMUM_LETTER_PHASE_A_SHIRAE 0x1683E #define T_UTF_32_BAMUM_LETTER_PHASE_A_NTAP 0x1683F #define T_UTF_32_BAMUM_LETTER_PHASE_A_SHOQ_NSHUT_YUM 0x16840 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NYIT_MONGKEUAEQ 0x16841 #define T_UTF_32_BAMUM_LETTER_PHASE_A_PAARAE 0x16842 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NKAARAE 0x16843 #define T_UTF_32_BAMUM_LETTER_PHASE_A_UNKNOWN 0x16844 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NGGEN 0x16845 #define T_UTF_32_BAMUM_LETTER_PHASE_A_MAESI 0x16846 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NJAM 0x16847 #define T_UTF_32_BAMUM_LETTER_PHASE_A_MBANYI 0x16848 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NYET 0x16849 #define T_UTF_32_BAMUM_LETTER_PHASE_A_TEUAEN 0x1684A #define T_UTF_32_BAMUM_LETTER_PHASE_A_SOT 0x1684B #define T_UTF_32_BAMUM_LETTER_PHASE_A_PAAM 0x1684C #define T_UTF_32_BAMUM_LETTER_PHASE_A_NSHIEE 0x1684D #define T_UTF_32_BAMUM_LETTER_PHASE_A_MAEM 0x1684E #define T_UTF_32_BAMUM_LETTER_PHASE_A_NYI 0x1684F #define T_UTF_32_BAMUM_LETTER_PHASE_A_KAQ 0x16850 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NSHA 0x16851 #define T_UTF_32_BAMUM_LETTER_PHASE_A_VEE 0x16852 #define T_UTF_32_BAMUM_LETTER_PHASE_A_LU 0x16853 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NEN 0x16854 #define T_UTF_32_BAMUM_LETTER_PHASE_A_NAQ 0x16855 #define T_UTF_32_BAMUM_LETTER_PHASE_A_MBAQ 0x16856 #define T_UTF_32_BAMUM_LETTER_PHASE_B_NSHUET 0x16857 #define T_UTF_32_BAMUM_LETTER_PHASE_B_TU_MAEMGBIEE 0x16858 #define T_UTF_32_BAMUM_LETTER_PHASE_B_SIEE 0x16859 #define T_UTF_32_BAMUM_LETTER_PHASE_B_SET_TU 0x1685A #define T_UTF_32_BAMUM_LETTER_PHASE_B_LOM_NTEUM 0x1685B #define T_UTF_32_BAMUM_LETTER_PHASE_B_MBA_MAELEE 0x1685C #define T_UTF_32_BAMUM_LETTER_PHASE_B_KIEEM 0x1685D #define T_UTF_32_BAMUM_LETTER_PHASE_B_YEURAE 0x1685E #define T_UTF_32_BAMUM_LETTER_PHASE_B_MBAARAE 0x1685F #define T_UTF_32_BAMUM_LETTER_PHASE_B_KAM 0x16860 #define T_UTF_32_BAMUM_LETTER_PHASE_B_PEESHI 0x16861 #define T_UTF_32_BAMUM_LETTER_PHASE_B_YAFU_LEERAEWA 0x16862 #define T_UTF_32_BAMUM_LETTER_PHASE_B_LAM_NSHUT_NYAM 0x16863 #define T_UTF_32_BAMUM_LETTER_PHASE_B_NTIEE_SHEUOQ 0x16864 #define T_UTF_32_BAMUM_LETTER_PHASE_B_NDU_NJAA 0x16865 #define T_UTF_32_BAMUM_LETTER_PHASE_B_GHEUGHEUAEM 0x16866 #define T_UTF_32_BAMUM_LETTER_PHASE_B_PIT 0x16867 #define T_UTF_32_BAMUM_LETTER_PHASE_B_TU_NSIEE 0x16868 #define T_UTF_32_BAMUM_LETTER_PHASE_B_SHET_NJAQ 0x16869 #define T_UTF_32_BAMUM_LETTER_PHASE_B_SHEUAEQTU 0x1686A #define T_UTF_32_BAMUM_LETTER_PHASE_B_MFON_TEUAEQ 0x1686B #define T_UTF_32_BAMUM_LETTER_PHASE_B_MBIT_MBAAKET 0x1686C #define T_UTF_32_BAMUM_LETTER_PHASE_B_NYI_NTEUM 0x1686D #define T_UTF_32_BAMUM_LETTER_PHASE_B_KEUPUQ 0x1686E #define T_UTF_32_BAMUM_LETTER_PHASE_B_GHEUGHEN 0x1686F #define T_UTF_32_BAMUM_LETTER_PHASE_B_KEUYEUX 0x16870 #define T_UTF_32_BAMUM_LETTER_PHASE_B_LAANAE 0x16871 #define T_UTF_32_BAMUM_LETTER_PHASE_B_PARUM 0x16872 #define T_UTF_32_BAMUM_LETTER_PHASE_B_VEUM 0x16873 #define T_UTF_32_BAMUM_LETTER_PHASE_B_NGKINDI_MVOP 0x16874 #define T_UTF_32_BAMUM_LETTER_PHASE_B_NGGEU_MBU 0x16875 #define T_UTF_32_BAMUM_LETTER_PHASE_B_WUAET 0x16876 #define T_UTF_32_BAMUM_LETTER_PHASE_B_SAKEUAE 0x16877 #define T_UTF_32_BAMUM_LETTER_PHASE_B_TAAM 0x16878 #define T_UTF_32_BAMUM_LETTER_PHASE_B_MEUQ 0x16879 #define T_UTF_32_BAMUM_LETTER_PHASE_B_NGGUOQ 0x1687A #define T_UTF_32_BAMUM_LETTER_PHASE_B_NGGUOQ_LARGE 0x1687B #define T_UTF_32_BAMUM_LETTER_PHASE_B_MFIYAQ 0x1687C #define T_UTF_32_BAMUM_LETTER_PHASE_B_SUE 0x1687D #define T_UTF_32_BAMUM_LETTER_PHASE_B_MBEURI 0x1687E #define T_UTF_32_BAMUM_LETTER_PHASE_B_MONTIEEN 0x1687F #define T_UTF_32_BAMUM_LETTER_PHASE_B_NYAEMAE 0x16880 #define T_UTF_32_BAMUM_LETTER_PHASE_B_PUNGAAM 0x16881 #define T_UTF_32_BAMUM_LETTER_PHASE_B_MEUT_NGGEET 0x16882 #define T_UTF_32_BAMUM_LETTER_PHASE_B_FEUX 0x16883 #define T_UTF_32_BAMUM_LETTER_PHASE_B_MBUOQ 0x16884 #define T_UTF_32_BAMUM_LETTER_PHASE_B_FEE 0x16885 #define T_UTF_32_BAMUM_LETTER_PHASE_B_KEUAEM 0x16886 #define T_UTF_32_BAMUM_LETTER_PHASE_B_MA_NJEUAENA 0x16887 #define T_UTF_32_BAMUM_LETTER_PHASE_B_MA_NJUQA 0x16888 #define T_UTF_32_BAMUM_LETTER_PHASE_B_LET 0x16889 #define T_UTF_32_BAMUM_LETTER_PHASE_B_NGGAAM 0x1688A #define T_UTF_32_BAMUM_LETTER_PHASE_B_NSEN 0x1688B #define T_UTF_32_BAMUM_LETTER_PHASE_B_MA 0x1688C #define T_UTF_32_BAMUM_LETTER_PHASE_B_KIQ 0x1688D #define T_UTF_32_BAMUM_LETTER_PHASE_B_NGOM 0x1688E #define T_UTF_32_BAMUM_LETTER_PHASE_C_NGKUE_MAEMBA 0x1688F #define T_UTF_32_BAMUM_LETTER_PHASE_C_NZA 0x16890 #define T_UTF_32_BAMUM_LETTER_PHASE_C_YUM 0x16891 #define T_UTF_32_BAMUM_LETTER_PHASE_C_WANGKUOQ 0x16892 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NGGEN 0x16893 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NDEUAEREE 0x16894 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NGKAQ 0x16895 #define T_UTF_32_BAMUM_LETTER_PHASE_C_GHARAE 0x16896 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBEEKEET 0x16897 #define T_UTF_32_BAMUM_LETTER_PHASE_C_GBAYI 0x16898 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NYIR_MKPARAQ_MEUN 0x16899 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NTU_MBIT 0x1689A #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBEUM 0x1689B #define T_UTF_32_BAMUM_LETTER_PHASE_C_PIRIEEN 0x1689C #define T_UTF_32_BAMUM_LETTER_PHASE_C_NDOMBU 0x1689D #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBAA_CABBAGE_TREE 0x1689E #define T_UTF_32_BAMUM_LETTER_PHASE_C_KEUSHEUAEP 0x1689F #define T_UTF_32_BAMUM_LETTER_PHASE_C_GHAP 0x168A0 #define T_UTF_32_BAMUM_LETTER_PHASE_C_KEUKAQ 0x168A1 #define T_UTF_32_BAMUM_LETTER_PHASE_C_YU_MUOMAE 0x168A2 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NZEUM 0x168A3 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBUE 0x168A4 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NSEUAEN 0x168A5 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBIT 0x168A6 #define T_UTF_32_BAMUM_LETTER_PHASE_C_YEUQ 0x168A7 #define T_UTF_32_BAMUM_LETTER_PHASE_C_KPARAQ 0x168A8 #define T_UTF_32_BAMUM_LETTER_PHASE_C_KAA 0x168A9 #define T_UTF_32_BAMUM_LETTER_PHASE_C_SEUX 0x168AA #define T_UTF_32_BAMUM_LETTER_PHASE_C_NDIDA 0x168AB #define T_UTF_32_BAMUM_LETTER_PHASE_C_TAASHAE 0x168AC #define T_UTF_32_BAMUM_LETTER_PHASE_C_NJUEQ 0x168AD #define T_UTF_32_BAMUM_LETTER_PHASE_C_TITA_YUE 0x168AE #define T_UTF_32_BAMUM_LETTER_PHASE_C_SUAET 0x168AF #define T_UTF_32_BAMUM_LETTER_PHASE_C_NGGUAEN_NYAM 0x168B0 #define T_UTF_32_BAMUM_LETTER_PHASE_C_VEUX 0x168B1 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NANSANAQ 0x168B2 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MA_KEUAERI 0x168B3 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NTAA 0x168B4 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NGGUON 0x168B5 #define T_UTF_32_BAMUM_LETTER_PHASE_C_LAP 0x168B6 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBIRIEEN 0x168B7 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MGBASAQ 0x168B8 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NTEUNGBA 0x168B9 #define T_UTF_32_BAMUM_LETTER_PHASE_C_TEUTEUX 0x168BA #define T_UTF_32_BAMUM_LETTER_PHASE_C_NGGUM 0x168BB #define T_UTF_32_BAMUM_LETTER_PHASE_C_FUE 0x168BC #define T_UTF_32_BAMUM_LETTER_PHASE_C_NDEUT 0x168BD #define T_UTF_32_BAMUM_LETTER_PHASE_C_NSA 0x168BE #define T_UTF_32_BAMUM_LETTER_PHASE_C_NSHAQ 0x168BF #define T_UTF_32_BAMUM_LETTER_PHASE_C_BUNG 0x168C0 #define T_UTF_32_BAMUM_LETTER_PHASE_C_VEUAEPEN 0x168C1 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBERAE 0x168C2 #define T_UTF_32_BAMUM_LETTER_PHASE_C_RU 0x168C3 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NJAEM 0x168C4 #define T_UTF_32_BAMUM_LETTER_PHASE_C_LAM 0x168C5 #define T_UTF_32_BAMUM_LETTER_PHASE_C_TITUAEP 0x168C6 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NSUOT_NGOM 0x168C7 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NJEEEE 0x168C8 #define T_UTF_32_BAMUM_LETTER_PHASE_C_KET 0x168C9 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NGGU 0x168CA #define T_UTF_32_BAMUM_LETTER_PHASE_C_MAESI 0x168CB #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBUAEM 0x168CC #define T_UTF_32_BAMUM_LETTER_PHASE_C_LU 0x168CD #define T_UTF_32_BAMUM_LETTER_PHASE_C_KUT 0x168CE #define T_UTF_32_BAMUM_LETTER_PHASE_C_NJAM 0x168CF #define T_UTF_32_BAMUM_LETTER_PHASE_C_NGOM 0x168D0 #define T_UTF_32_BAMUM_LETTER_PHASE_C_WUP 0x168D1 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NGGUEET 0x168D2 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NSOM 0x168D3 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NTEN 0x168D4 #define T_UTF_32_BAMUM_LETTER_PHASE_C_KUOP_NKAARAE 0x168D5 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NSUN 0x168D6 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NDAM 0x168D7 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MA_NSIEE 0x168D8 #define T_UTF_32_BAMUM_LETTER_PHASE_C_YAA 0x168D9 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NDAP 0x168DA #define T_UTF_32_BAMUM_LETTER_PHASE_C_SHUEQ 0x168DB #define T_UTF_32_BAMUM_LETTER_PHASE_C_SETFON 0x168DC #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBI 0x168DD #define T_UTF_32_BAMUM_LETTER_PHASE_C_MAEMBA 0x168DE #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBANYI 0x168DF #define T_UTF_32_BAMUM_LETTER_PHASE_C_KEUSEUX 0x168E0 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBEUX 0x168E1 #define T_UTF_32_BAMUM_LETTER_PHASE_C_KEUM 0x168E2 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MBAA_PICKET 0x168E3 #define T_UTF_32_BAMUM_LETTER_PHASE_C_YUWOQ 0x168E4 #define T_UTF_32_BAMUM_LETTER_PHASE_C_NJEUX 0x168E5 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MIEE 0x168E6 #define T_UTF_32_BAMUM_LETTER_PHASE_C_MUAE 0x168E7 #define T_UTF_32_BAMUM_LETTER_PHASE_C_SHIQ 0x168E8 #define T_UTF_32_BAMUM_LETTER_PHASE_C_KEN_LAW 0x168E9 #define T_UTF_32_BAMUM_LETTER_PHASE_C_KEN_FATIGUE 0x168EA #define T_UTF_32_BAMUM_LETTER_PHASE_C_NGAQ 0x168EB #define T_UTF_32_BAMUM_LETTER_PHASE_C_NAQ 0x168EC #define T_UTF_32_BAMUM_LETTER_PHASE_C_LIQ 0x168ED #define T_UTF_32_BAMUM_LETTER_PHASE_C_PIN 0x168EE #define T_UTF_32_BAMUM_LETTER_PHASE_C_PEN 0x168EF #define T_UTF_32_BAMUM_LETTER_PHASE_C_TET 0x168F0 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MBUO 0x168F1 #define T_UTF_32_BAMUM_LETTER_PHASE_D_WAP 0x168F2 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NJI 0x168F3 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MFON 0x168F4 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NJIEE 0x168F5 #define T_UTF_32_BAMUM_LETTER_PHASE_D_LIEE 0x168F6 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NJEUT 0x168F7 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NSHEE 0x168F8 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGGAAMAE 0x168F9 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NYAM 0x168FA #define T_UTF_32_BAMUM_LETTER_PHASE_D_WUAEN 0x168FB #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGKUN 0x168FC #define T_UTF_32_BAMUM_LETTER_PHASE_D_SHEE 0x168FD #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGKAP 0x168FE #define T_UTF_32_BAMUM_LETTER_PHASE_D_KEUAETMEUN 0x168FF #define T_UTF_32_BAMUM_LETTER_PHASE_D_TEUT 0x16900 #define T_UTF_32_BAMUM_LETTER_PHASE_D_SHEUAE 0x16901 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NJAP 0x16902 #define T_UTF_32_BAMUM_LETTER_PHASE_D_SUE 0x16903 #define T_UTF_32_BAMUM_LETTER_PHASE_D_KET 0x16904 #define T_UTF_32_BAMUM_LETTER_PHASE_D_YAEMMAE 0x16905 #define T_UTF_32_BAMUM_LETTER_PHASE_D_KUOM 0x16906 #define T_UTF_32_BAMUM_LETTER_PHASE_D_SAP 0x16907 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MFEUT 0x16908 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NDEUX 0x16909 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MALEERI 0x1690A #define T_UTF_32_BAMUM_LETTER_PHASE_D_MEUT 0x1690B #define T_UTF_32_BAMUM_LETTER_PHASE_D_SEUAEQ 0x1690C #define T_UTF_32_BAMUM_LETTER_PHASE_D_YEN 0x1690D #define T_UTF_32_BAMUM_LETTER_PHASE_D_NJEUAEM 0x1690E #define T_UTF_32_BAMUM_LETTER_PHASE_D_KEUOT_MBUAE 0x1690F #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGKEURI 0x16910 #define T_UTF_32_BAMUM_LETTER_PHASE_D_TU 0x16911 #define T_UTF_32_BAMUM_LETTER_PHASE_D_GHAA 0x16912 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGKYEE 0x16913 #define T_UTF_32_BAMUM_LETTER_PHASE_D_FEUFEUAET 0x16914 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NDEE 0x16915 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MGBOFUM 0x16916 #define T_UTF_32_BAMUM_LETTER_PHASE_D_LEUAEP 0x16917 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NDON 0x16918 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MONI 0x16919 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MGBEUN 0x1691A #define T_UTF_32_BAMUM_LETTER_PHASE_D_PUUT 0x1691B #define T_UTF_32_BAMUM_LETTER_PHASE_D_MGBIEE 0x1691C #define T_UTF_32_BAMUM_LETTER_PHASE_D_MFO 0x1691D #define T_UTF_32_BAMUM_LETTER_PHASE_D_LUM 0x1691E #define T_UTF_32_BAMUM_LETTER_PHASE_D_NSIEEP 0x1691F #define T_UTF_32_BAMUM_LETTER_PHASE_D_MBAA 0x16920 #define T_UTF_32_BAMUM_LETTER_PHASE_D_KWAET 0x16921 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NYET 0x16922 #define T_UTF_32_BAMUM_LETTER_PHASE_D_TEUAEN 0x16923 #define T_UTF_32_BAMUM_LETTER_PHASE_D_SOT 0x16924 #define T_UTF_32_BAMUM_LETTER_PHASE_D_YUWOQ 0x16925 #define T_UTF_32_BAMUM_LETTER_PHASE_D_KEUM 0x16926 #define T_UTF_32_BAMUM_LETTER_PHASE_D_RAEM 0x16927 #define T_UTF_32_BAMUM_LETTER_PHASE_D_TEEEE 0x16928 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGKEUAEQ 0x16929 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MFEUAE 0x1692A #define T_UTF_32_BAMUM_LETTER_PHASE_D_NSIEET 0x1692B #define T_UTF_32_BAMUM_LETTER_PHASE_D_KEUP 0x1692C #define T_UTF_32_BAMUM_LETTER_PHASE_D_PIP 0x1692D #define T_UTF_32_BAMUM_LETTER_PHASE_D_PEUTAE 0x1692E #define T_UTF_32_BAMUM_LETTER_PHASE_D_NYUE 0x1692F #define T_UTF_32_BAMUM_LETTER_PHASE_D_LET 0x16930 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGGAAM 0x16931 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MFIEE 0x16932 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGGWAEN 0x16933 #define T_UTF_32_BAMUM_LETTER_PHASE_D_YUOM 0x16934 #define T_UTF_32_BAMUM_LETTER_PHASE_D_PAP 0x16935 #define T_UTF_32_BAMUM_LETTER_PHASE_D_YUOP 0x16936 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NDAM 0x16937 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NTEUM 0x16938 #define T_UTF_32_BAMUM_LETTER_PHASE_D_SUAE 0x16939 #define T_UTF_32_BAMUM_LETTER_PHASE_D_KUN 0x1693A #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGGEUX 0x1693B #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGKIEE 0x1693C #define T_UTF_32_BAMUM_LETTER_PHASE_D_TUOT 0x1693D #define T_UTF_32_BAMUM_LETTER_PHASE_D_MEUN 0x1693E #define T_UTF_32_BAMUM_LETTER_PHASE_D_KUQ 0x1693F #define T_UTF_32_BAMUM_LETTER_PHASE_D_NSUM 0x16940 #define T_UTF_32_BAMUM_LETTER_PHASE_D_TEUN 0x16941 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MAENJET 0x16942 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGGAP 0x16943 #define T_UTF_32_BAMUM_LETTER_PHASE_D_LEUM 0x16944 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NGGUOM 0x16945 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NSHUT 0x16946 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NJUEQ 0x16947 #define T_UTF_32_BAMUM_LETTER_PHASE_D_GHEUAE 0x16948 #define T_UTF_32_BAMUM_LETTER_PHASE_D_KU 0x16949 #define T_UTF_32_BAMUM_LETTER_PHASE_D_REN_OLD 0x1694A #define T_UTF_32_BAMUM_LETTER_PHASE_D_TAE 0x1694B #define T_UTF_32_BAMUM_LETTER_PHASE_D_TOQ 0x1694C #define T_UTF_32_BAMUM_LETTER_PHASE_D_NYI 0x1694D #define T_UTF_32_BAMUM_LETTER_PHASE_D_RII 0x1694E #define T_UTF_32_BAMUM_LETTER_PHASE_D_LEEEE 0x1694F #define T_UTF_32_BAMUM_LETTER_PHASE_D_MEEEE 0x16950 #define T_UTF_32_BAMUM_LETTER_PHASE_D_M 0x16951 #define T_UTF_32_BAMUM_LETTER_PHASE_D_SUU 0x16952 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MU 0x16953 #define T_UTF_32_BAMUM_LETTER_PHASE_D_SHII 0x16954 #define T_UTF_32_BAMUM_LETTER_PHASE_D_SHEUX 0x16955 #define T_UTF_32_BAMUM_LETTER_PHASE_D_KYEE 0x16956 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NU 0x16957 #define T_UTF_32_BAMUM_LETTER_PHASE_D_SHU 0x16958 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NTEE 0x16959 #define T_UTF_32_BAMUM_LETTER_PHASE_D_PEE 0x1695A #define T_UTF_32_BAMUM_LETTER_PHASE_D_NI 0x1695B #define T_UTF_32_BAMUM_LETTER_PHASE_D_SHOQ 0x1695C #define T_UTF_32_BAMUM_LETTER_PHASE_D_PUQ 0x1695D #define T_UTF_32_BAMUM_LETTER_PHASE_D_MVOP 0x1695E #define T_UTF_32_BAMUM_LETTER_PHASE_D_LOQ 0x1695F #define T_UTF_32_BAMUM_LETTER_PHASE_D_REN_MUCH 0x16960 #define T_UTF_32_BAMUM_LETTER_PHASE_D_TI 0x16961 #define T_UTF_32_BAMUM_LETTER_PHASE_D_NTUU 0x16962 #define T_UTF_32_BAMUM_LETTER_PHASE_D_MBAA_SEVEN 0x16963 #define T_UTF_32_BAMUM_LETTER_PHASE_D_SAQ 0x16964 #define T_UTF_32_BAMUM_LETTER_PHASE_D_FAA 0x16965 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NDAP 0x16966 #define T_UTF_32_BAMUM_LETTER_PHASE_E_TOON 0x16967 #define T_UTF_32_BAMUM_LETTER_PHASE_E_MBEUM 0x16968 #define T_UTF_32_BAMUM_LETTER_PHASE_E_LAP 0x16969 #define T_UTF_32_BAMUM_LETTER_PHASE_E_VOM 0x1696A #define T_UTF_32_BAMUM_LETTER_PHASE_E_LOON 0x1696B #define T_UTF_32_BAMUM_LETTER_PHASE_E_PAA 0x1696C #define T_UTF_32_BAMUM_LETTER_PHASE_E_SOM 0x1696D #define T_UTF_32_BAMUM_LETTER_PHASE_E_RAQ 0x1696E #define T_UTF_32_BAMUM_LETTER_PHASE_E_NSHUOP 0x1696F #define T_UTF_32_BAMUM_LETTER_PHASE_E_NDUN 0x16970 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PUAE 0x16971 #define T_UTF_32_BAMUM_LETTER_PHASE_E_TAM 0x16972 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGKA 0x16973 #define T_UTF_32_BAMUM_LETTER_PHASE_E_KPEUX 0x16974 #define T_UTF_32_BAMUM_LETTER_PHASE_E_WUO 0x16975 #define T_UTF_32_BAMUM_LETTER_PHASE_E_SEE 0x16976 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGGEUAET 0x16977 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PAAM 0x16978 #define T_UTF_32_BAMUM_LETTER_PHASE_E_TOO 0x16979 #define T_UTF_32_BAMUM_LETTER_PHASE_E_KUOP 0x1697A #define T_UTF_32_BAMUM_LETTER_PHASE_E_LOM 0x1697B #define T_UTF_32_BAMUM_LETTER_PHASE_E_NSHIEE 0x1697C #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGOP 0x1697D #define T_UTF_32_BAMUM_LETTER_PHASE_E_MAEM 0x1697E #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGKEUX 0x1697F #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGOQ 0x16980 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NSHUE 0x16981 #define T_UTF_32_BAMUM_LETTER_PHASE_E_RIMGBA 0x16982 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NJEUX 0x16983 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PEEM 0x16984 #define T_UTF_32_BAMUM_LETTER_PHASE_E_SAA 0x16985 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGGURAE 0x16986 #define T_UTF_32_BAMUM_LETTER_PHASE_E_MGBA 0x16987 #define T_UTF_32_BAMUM_LETTER_PHASE_E_GHEUX 0x16988 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGKEUAEM 0x16989 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NJAEMLI 0x1698A #define T_UTF_32_BAMUM_LETTER_PHASE_E_MAP 0x1698B #define T_UTF_32_BAMUM_LETTER_PHASE_E_LOOT 0x1698C #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGGEEEE 0x1698D #define T_UTF_32_BAMUM_LETTER_PHASE_E_NDIQ 0x1698E #define T_UTF_32_BAMUM_LETTER_PHASE_E_TAEN_NTEUM 0x1698F #define T_UTF_32_BAMUM_LETTER_PHASE_E_SET 0x16990 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PUM 0x16991 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NDAA_SOFTNESS 0x16992 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGGUAESHAE_NYAM 0x16993 #define T_UTF_32_BAMUM_LETTER_PHASE_E_YIEE 0x16994 #define T_UTF_32_BAMUM_LETTER_PHASE_E_GHEUN 0x16995 #define T_UTF_32_BAMUM_LETTER_PHASE_E_TUAE 0x16996 #define T_UTF_32_BAMUM_LETTER_PHASE_E_YEUAE 0x16997 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PO 0x16998 #define T_UTF_32_BAMUM_LETTER_PHASE_E_TUMAE 0x16999 #define T_UTF_32_BAMUM_LETTER_PHASE_E_KEUAE 0x1699A #define T_UTF_32_BAMUM_LETTER_PHASE_E_SUAEN 0x1699B #define T_UTF_32_BAMUM_LETTER_PHASE_E_TEUAEQ 0x1699C #define T_UTF_32_BAMUM_LETTER_PHASE_E_VEUAE 0x1699D #define T_UTF_32_BAMUM_LETTER_PHASE_E_WEUX 0x1699E #define T_UTF_32_BAMUM_LETTER_PHASE_E_LAAM 0x1699F #define T_UTF_32_BAMUM_LETTER_PHASE_E_PU 0x169A0 #define T_UTF_32_BAMUM_LETTER_PHASE_E_TAAQ 0x169A1 #define T_UTF_32_BAMUM_LETTER_PHASE_E_GHAAMAE 0x169A2 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGEUREUT 0x169A3 #define T_UTF_32_BAMUM_LETTER_PHASE_E_SHEUAEQ 0x169A4 #define T_UTF_32_BAMUM_LETTER_PHASE_E_MGBEN 0x169A5 #define T_UTF_32_BAMUM_LETTER_PHASE_E_MBEE 0x169A6 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NZAQ 0x169A7 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NKOM 0x169A8 #define T_UTF_32_BAMUM_LETTER_PHASE_E_GBET 0x169A9 #define T_UTF_32_BAMUM_LETTER_PHASE_E_TUM 0x169AA #define T_UTF_32_BAMUM_LETTER_PHASE_E_KUET 0x169AB #define T_UTF_32_BAMUM_LETTER_PHASE_E_YAP 0x169AC #define T_UTF_32_BAMUM_LETTER_PHASE_E_NYI_CLEAVER 0x169AD #define T_UTF_32_BAMUM_LETTER_PHASE_E_YIT 0x169AE #define T_UTF_32_BAMUM_LETTER_PHASE_E_MFEUQ 0x169AF #define T_UTF_32_BAMUM_LETTER_PHASE_E_NDIAQ 0x169B0 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PIEEQ 0x169B1 #define T_UTF_32_BAMUM_LETTER_PHASE_E_YUEQ 0x169B2 #define T_UTF_32_BAMUM_LETTER_PHASE_E_LEUAEM 0x169B3 #define T_UTF_32_BAMUM_LETTER_PHASE_E_FUE 0x169B4 #define T_UTF_32_BAMUM_LETTER_PHASE_E_GBEUX 0x169B5 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGKUP 0x169B6 #define T_UTF_32_BAMUM_LETTER_PHASE_E_KET 0x169B7 #define T_UTF_32_BAMUM_LETTER_PHASE_E_MAE 0x169B8 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGKAAMI 0x169B9 #define T_UTF_32_BAMUM_LETTER_PHASE_E_GHET 0x169BA #define T_UTF_32_BAMUM_LETTER_PHASE_E_FA 0x169BB #define T_UTF_32_BAMUM_LETTER_PHASE_E_NTUM 0x169BC #define T_UTF_32_BAMUM_LETTER_PHASE_E_PEUT 0x169BD #define T_UTF_32_BAMUM_LETTER_PHASE_E_YEUM 0x169BE #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGGEUAE 0x169BF #define T_UTF_32_BAMUM_LETTER_PHASE_E_NYI_BETWEEN 0x169C0 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NZUQ 0x169C1 #define T_UTF_32_BAMUM_LETTER_PHASE_E_POON 0x169C2 #define T_UTF_32_BAMUM_LETTER_PHASE_E_MIEE 0x169C3 #define T_UTF_32_BAMUM_LETTER_PHASE_E_FUET 0x169C4 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NAE 0x169C5 #define T_UTF_32_BAMUM_LETTER_PHASE_E_MUAE 0x169C6 #define T_UTF_32_BAMUM_LETTER_PHASE_E_GHEUAE 0x169C7 #define T_UTF_32_BAMUM_LETTER_PHASE_E_FU_I 0x169C8 #define T_UTF_32_BAMUM_LETTER_PHASE_E_MVI 0x169C9 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PUAQ 0x169CA #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGKUM 0x169CB #define T_UTF_32_BAMUM_LETTER_PHASE_E_KUT 0x169CC #define T_UTF_32_BAMUM_LETTER_PHASE_E_PIET 0x169CD #define T_UTF_32_BAMUM_LETTER_PHASE_E_NTAP 0x169CE #define T_UTF_32_BAMUM_LETTER_PHASE_E_YEUAET 0x169CF #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGGUP 0x169D0 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PA_PEOPLE 0x169D1 #define T_UTF_32_BAMUM_LETTER_PHASE_E_FU_CALL 0x169D2 #define T_UTF_32_BAMUM_LETTER_PHASE_E_FOM 0x169D3 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NJEE 0x169D4 #define T_UTF_32_BAMUM_LETTER_PHASE_E_A 0x169D5 #define T_UTF_32_BAMUM_LETTER_PHASE_E_TOQ 0x169D6 #define T_UTF_32_BAMUM_LETTER_PHASE_E_O 0x169D7 #define T_UTF_32_BAMUM_LETTER_PHASE_E_I 0x169D8 #define T_UTF_32_BAMUM_LETTER_PHASE_E_LAQ 0x169D9 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PA_PLURAL 0x169DA #define T_UTF_32_BAMUM_LETTER_PHASE_E_TAA 0x169DB #define T_UTF_32_BAMUM_LETTER_PHASE_E_TAQ 0x169DC #define T_UTF_32_BAMUM_LETTER_PHASE_E_NDAA_MY_HOUSE 0x169DD #define T_UTF_32_BAMUM_LETTER_PHASE_E_SHIQ 0x169DE #define T_UTF_32_BAMUM_LETTER_PHASE_E_YEUX 0x169DF #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGUAE 0x169E0 #define T_UTF_32_BAMUM_LETTER_PHASE_E_YUAEN 0x169E1 #define T_UTF_32_BAMUM_LETTER_PHASE_E_YOQ_SWIMMING 0x169E2 #define T_UTF_32_BAMUM_LETTER_PHASE_E_YOQ_COVER 0x169E3 #define T_UTF_32_BAMUM_LETTER_PHASE_E_YUQ 0x169E4 #define T_UTF_32_BAMUM_LETTER_PHASE_E_YUN 0x169E5 #define T_UTF_32_BAMUM_LETTER_PHASE_E_KEUX 0x169E6 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PEUX 0x169E7 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NJEE_EPOCH 0x169E8 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PUE 0x169E9 #define T_UTF_32_BAMUM_LETTER_PHASE_E_WUE 0x169EA #define T_UTF_32_BAMUM_LETTER_PHASE_E_FEE 0x169EB #define T_UTF_32_BAMUM_LETTER_PHASE_E_VEE 0x169EC #define T_UTF_32_BAMUM_LETTER_PHASE_E_LU 0x169ED #define T_UTF_32_BAMUM_LETTER_PHASE_E_MI 0x169EE #define T_UTF_32_BAMUM_LETTER_PHASE_E_REUX 0x169EF #define T_UTF_32_BAMUM_LETTER_PHASE_E_RAE 0x169F0 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGUAET 0x169F1 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NGA 0x169F2 #define T_UTF_32_BAMUM_LETTER_PHASE_E_SHO 0x169F3 #define T_UTF_32_BAMUM_LETTER_PHASE_E_SHOQ 0x169F4 #define T_UTF_32_BAMUM_LETTER_PHASE_E_FU_REMEDY 0x169F5 #define T_UTF_32_BAMUM_LETTER_PHASE_E_NA 0x169F6 #define T_UTF_32_BAMUM_LETTER_PHASE_E_PI 0x169F7 #define T_UTF_32_BAMUM_LETTER_PHASE_E_LOQ 0x169F8 #define T_UTF_32_BAMUM_LETTER_PHASE_E_KO 0x169F9 #define T_UTF_32_BAMUM_LETTER_PHASE_E_MEN 0x169FA #define T_UTF_32_BAMUM_LETTER_PHASE_E_MA 0x169FB #define T_UTF_32_BAMUM_LETTER_PHASE_E_MAQ 0x169FC #define T_UTF_32_BAMUM_LETTER_PHASE_E_TEU 0x169FD #define T_UTF_32_BAMUM_LETTER_PHASE_E_KI 0x169FE #define T_UTF_32_BAMUM_LETTER_PHASE_E_MON 0x169FF #define T_UTF_32_BAMUM_LETTER_PHASE_E_TEN 0x16A00 #define T_UTF_32_BAMUM_LETTER_PHASE_E_FAQ 0x16A01 #define T_UTF_32_BAMUM_LETTER_PHASE_E_GHOM 0x16A02 #define T_UTF_32_BAMUM_LETTER_PHASE_F_KA 0x16A03 #define T_UTF_32_BAMUM_LETTER_PHASE_F_U 0x16A04 #define T_UTF_32_BAMUM_LETTER_PHASE_F_KU 0x16A05 #define T_UTF_32_BAMUM_LETTER_PHASE_F_EE 0x16A06 #define T_UTF_32_BAMUM_LETTER_PHASE_F_REE 0x16A07 #define T_UTF_32_BAMUM_LETTER_PHASE_F_TAE 0x16A08 #define T_UTF_32_BAMUM_LETTER_PHASE_F_NYI 0x16A09 #define T_UTF_32_BAMUM_LETTER_PHASE_F_LA 0x16A0A #define T_UTF_32_BAMUM_LETTER_PHASE_F_RII 0x16A0B #define T_UTF_32_BAMUM_LETTER_PHASE_F_RIEE 0x16A0C #define T_UTF_32_BAMUM_LETTER_PHASE_F_MEEEE 0x16A0D #define T_UTF_32_BAMUM_LETTER_PHASE_F_TAA 0x16A0E #define T_UTF_32_BAMUM_LETTER_PHASE_F_NDAA 0x16A0F #define T_UTF_32_BAMUM_LETTER_PHASE_F_NJAEM 0x16A10 #define T_UTF_32_BAMUM_LETTER_PHASE_F_M 0x16A11 #define T_UTF_32_BAMUM_LETTER_PHASE_F_SUU 0x16A12 #define T_UTF_32_BAMUM_LETTER_PHASE_F_SHII 0x16A13 #define T_UTF_32_BAMUM_LETTER_PHASE_F_SI 0x16A14 #define T_UTF_32_BAMUM_LETTER_PHASE_F_SEUX 0x16A15 #define T_UTF_32_BAMUM_LETTER_PHASE_F_KYEE 0x16A16 #define T_UTF_32_BAMUM_LETTER_PHASE_F_KET 0x16A17 #define T_UTF_32_BAMUM_LETTER_PHASE_F_NUAE 0x16A18 #define T_UTF_32_BAMUM_LETTER_PHASE_F_NU 0x16A19 #define T_UTF_32_BAMUM_LETTER_PHASE_F_NJUAE 0x16A1A #define T_UTF_32_BAMUM_LETTER_PHASE_F_YOQ 0x16A1B #define T_UTF_32_BAMUM_LETTER_PHASE_F_SHU 0x16A1C #define T_UTF_32_BAMUM_LETTER_PHASE_F_YA 0x16A1D #define T_UTF_32_BAMUM_LETTER_PHASE_F_NSHA 0x16A1E #define T_UTF_32_BAMUM_LETTER_PHASE_F_PEUX 0x16A1F #define T_UTF_32_BAMUM_LETTER_PHASE_F_NTEE 0x16A20 #define T_UTF_32_BAMUM_LETTER_PHASE_F_WUE 0x16A21 #define T_UTF_32_BAMUM_LETTER_PHASE_F_PEE 0x16A22 #define T_UTF_32_BAMUM_LETTER_PHASE_F_RU 0x16A23 #define T_UTF_32_BAMUM_LETTER_PHASE_F_NI 0x16A24 #define T_UTF_32_BAMUM_LETTER_PHASE_F_REUX 0x16A25 #define T_UTF_32_BAMUM_LETTER_PHASE_F_KEN 0x16A26 #define T_UTF_32_BAMUM_LETTER_PHASE_F_NGKWAEN 0x16A27 #define T_UTF_32_BAMUM_LETTER_PHASE_F_NGGA 0x16A28 #define T_UTF_32_BAMUM_LETTER_PHASE_F_SHO 0x16A29 #define T_UTF_32_BAMUM_LETTER_PHASE_F_PUAE 0x16A2A #define T_UTF_32_BAMUM_LETTER_PHASE_F_FOM 0x16A2B #define T_UTF_32_BAMUM_LETTER_PHASE_F_WA 0x16A2C #define T_UTF_32_BAMUM_LETTER_PHASE_F_LI 0x16A2D #define T_UTF_32_BAMUM_LETTER_PHASE_F_LOQ 0x16A2E #define T_UTF_32_BAMUM_LETTER_PHASE_F_KO 0x16A2F #define T_UTF_32_BAMUM_LETTER_PHASE_F_MBEN 0x16A30 #define T_UTF_32_BAMUM_LETTER_PHASE_F_REN 0x16A31 #define T_UTF_32_BAMUM_LETTER_PHASE_F_MA 0x16A32 #define T_UTF_32_BAMUM_LETTER_PHASE_F_MO 0x16A33 #define T_UTF_32_BAMUM_LETTER_PHASE_F_MBAA 0x16A34 #define T_UTF_32_BAMUM_LETTER_PHASE_F_TET 0x16A35 #define T_UTF_32_BAMUM_LETTER_PHASE_F_KPA 0x16A36 #define T_UTF_32_BAMUM_LETTER_PHASE_F_SAMBA 0x16A37 #define T_UTF_32_BAMUM_LETTER_PHASE_F_VUEQ 0x16A38 #define T_UTF_32_MRO_LETTER_TA 0x16A40 #define T_UTF_32_MRO_LETTER_NGI 0x16A41 #define T_UTF_32_MRO_LETTER_YO 0x16A42 #define T_UTF_32_MRO_LETTER_MIM 0x16A43 #define T_UTF_32_MRO_LETTER_BA 0x16A44 #define T_UTF_32_MRO_LETTER_DA 0x16A45 #define T_UTF_32_MRO_LETTER_A 0x16A46 #define T_UTF_32_MRO_LETTER_PHI 0x16A47 #define T_UTF_32_MRO_LETTER_KHAI 0x16A48 #define T_UTF_32_MRO_LETTER_HAO 0x16A49 #define T_UTF_32_MRO_LETTER_DAI 0x16A4A #define T_UTF_32_MRO_LETTER_CHU 0x16A4B #define T_UTF_32_MRO_LETTER_KEAAE 0x16A4C #define T_UTF_32_MRO_LETTER_OL 0x16A4D #define T_UTF_32_MRO_LETTER_MAEM 0x16A4E #define T_UTF_32_MRO_LETTER_NIN 0x16A4F #define T_UTF_32_MRO_LETTER_PA 0x16A50 #define T_UTF_32_MRO_LETTER_OO 0x16A51 #define T_UTF_32_MRO_LETTER_O 0x16A52 #define T_UTF_32_MRO_LETTER_RO 0x16A53 #define T_UTF_32_MRO_LETTER_SHI 0x16A54 #define T_UTF_32_MRO_LETTER_THEA 0x16A55 #define T_UTF_32_MRO_LETTER_EA 0x16A56 #define T_UTF_32_MRO_LETTER_WA 0x16A57 #define T_UTF_32_MRO_LETTER_E 0x16A58 #define T_UTF_32_MRO_LETTER_KO 0x16A59 #define T_UTF_32_MRO_LETTER_LAN 0x16A5A #define T_UTF_32_MRO_LETTER_LA 0x16A5B #define T_UTF_32_MRO_LETTER_HAI 0x16A5C #define T_UTF_32_MRO_LETTER_RI 0x16A5D #define T_UTF_32_MRO_LETTER_TEK 0x16A5E #define T_UTF_32_MRO_DIGIT_ZERO 0x16A60 #define T_UTF_32_MRO_DIGIT_ONE 0x16A61 #define T_UTF_32_MRO_DIGIT_TWO 0x16A62 #define T_UTF_32_MRO_DIGIT_THREE 0x16A63 #define T_UTF_32_MRO_DIGIT_FOUR 0x16A64 #define T_UTF_32_MRO_DIGIT_FIVE 0x16A65 #define T_UTF_32_MRO_DIGIT_SIX 0x16A66 #define T_UTF_32_MRO_DIGIT_SEVEN 0x16A67 #define T_UTF_32_MRO_DIGIT_EIGHT 0x16A68 #define T_UTF_32_MRO_DIGIT_NINE 0x16A69 #define T_UTF_32_MRO_DANDA 0x16A6E #define T_UTF_32_MRO_DOUBLE_DANDA 0x16A6F #define T_UTF_32_BASSA_VAH_LETTER_ENNI 0x16AD0 #define T_UTF_32_BASSA_VAH_LETTER_KA 0x16AD1 #define T_UTF_32_BASSA_VAH_LETTER_SE 0x16AD2 #define T_UTF_32_BASSA_VAH_LETTER_FA 0x16AD3 #define T_UTF_32_BASSA_VAH_LETTER_MBE 0x16AD4 #define T_UTF_32_BASSA_VAH_LETTER_YIE 0x16AD5 #define T_UTF_32_BASSA_VAH_LETTER_GAH 0x16AD6 #define T_UTF_32_BASSA_VAH_LETTER_DHII 0x16AD7 #define T_UTF_32_BASSA_VAH_LETTER_KPAH 0x16AD8 #define T_UTF_32_BASSA_VAH_LETTER_JO 0x16AD9 #define T_UTF_32_BASSA_VAH_LETTER_HWAH 0x16ADA #define T_UTF_32_BASSA_VAH_LETTER_WA 0x16ADB #define T_UTF_32_BASSA_VAH_LETTER_ZO 0x16ADC #define T_UTF_32_BASSA_VAH_LETTER_GBU 0x16ADD #define T_UTF_32_BASSA_VAH_LETTER_DO 0x16ADE #define T_UTF_32_BASSA_VAH_LETTER_CE 0x16ADF #define T_UTF_32_BASSA_VAH_LETTER_UWU 0x16AE0 #define T_UTF_32_BASSA_VAH_LETTER_TO 0x16AE1 #define T_UTF_32_BASSA_VAH_LETTER_BA 0x16AE2 #define T_UTF_32_BASSA_VAH_LETTER_VU 0x16AE3 #define T_UTF_32_BASSA_VAH_LETTER_YEIN 0x16AE4 #define T_UTF_32_BASSA_VAH_LETTER_PA 0x16AE5 #define T_UTF_32_BASSA_VAH_LETTER_WADDA 0x16AE6 #define T_UTF_32_BASSA_VAH_LETTER_A 0x16AE7 #define T_UTF_32_BASSA_VAH_LETTER_O 0x16AE8 #define T_UTF_32_BASSA_VAH_LETTER_OO 0x16AE9 #define T_UTF_32_BASSA_VAH_LETTER_U 0x16AEA #define T_UTF_32_BASSA_VAH_LETTER_EE 0x16AEB #define T_UTF_32_BASSA_VAH_LETTER_E 0x16AEC #define T_UTF_32_BASSA_VAH_LETTER_I 0x16AED #define T_UTF_32_BASSA_VAH_COMBINING_HIGH_TONE 0x16AF0 #define T_UTF_32_BASSA_VAH_COMBINING_LOW_TONE 0x16AF1 #define T_UTF_32_BASSA_VAH_COMBINING_MID_TONE 0x16AF2 #define T_UTF_32_BASSA_VAH_COMBINING_LOW_MID_TONE 0x16AF3 #define T_UTF_32_BASSA_VAH_COMBINING_HIGH_LOW_TONE 0x16AF4 #define T_UTF_32_BASSA_VAH_FULL_STOP 0x16AF5 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KEEB 0x16B00 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KEEV 0x16B01 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KIB 0x16B02 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KIV 0x16B03 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KAUB 0x16B04 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KAUV 0x16B05 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KUB 0x16B06 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KUV 0x16B07 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KEB 0x16B08 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KEV 0x16B09 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KAIB 0x16B0A #define T_UTF_32_PAHAWH_HMONG_VOWEL_KAIV 0x16B0B #define T_UTF_32_PAHAWH_HMONG_VOWEL_KOOB 0x16B0C #define T_UTF_32_PAHAWH_HMONG_VOWEL_KOOV 0x16B0D #define T_UTF_32_PAHAWH_HMONG_VOWEL_KAWB 0x16B0E #define T_UTF_32_PAHAWH_HMONG_VOWEL_KAWV 0x16B0F #define T_UTF_32_PAHAWH_HMONG_VOWEL_KUAB 0x16B10 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KUAV 0x16B11 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KOB 0x16B12 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KOV 0x16B13 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KIAB 0x16B14 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KIAV 0x16B15 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KAB 0x16B16 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KAV 0x16B17 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KWB 0x16B18 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KWV 0x16B19 #define T_UTF_32_PAHAWH_HMONG_VOWEL_KAAB 0x16B1A #define T_UTF_32_PAHAWH_HMONG_VOWEL_KAAV 0x16B1B #define T_UTF_32_PAHAWH_HMONG_CONSONANT_VAU 0x16B1C #define T_UTF_32_PAHAWH_HMONG_CONSONANT_NTSAU 0x16B1D #define T_UTF_32_PAHAWH_HMONG_CONSONANT_LAU 0x16B1E #define T_UTF_32_PAHAWH_HMONG_CONSONANT_HAU 0x16B1F #define T_UTF_32_PAHAWH_HMONG_CONSONANT_NLAU 0x16B20 #define T_UTF_32_PAHAWH_HMONG_CONSONANT_RAU 0x16B21 #define T_UTF_32_PAHAWH_HMONG_CONSONANT_NKAU 0x16B22 #define T_UTF_32_PAHAWH_HMONG_CONSONANT_QHAU 0x16B23 #define T_UTF_32_PAHAWH_HMONG_CONSONANT_YAU 0x16B24 #define T_UTF_32_PAHAWH_HMONG_CONSONANT_HLAU 0x16B25 #define T_UTF_32_PAHAWH_HMONG_CONSONANT_MAU 0x16B26 #define T_UTF_32_PAHAWH_HMONG_CONSONANT_CHAU 0x16B27 #define T_UTF_32_PAHAWH_HMONG_CONSONANT_NCHAU 0x16B28 #define T_UTF_32_PAHAWH_HMONG_CONSONANT_HNAU 0x16B29 #define T_UTF_32_PAHAWH_HMONG_CONSONANT_PLHAU 0x16B2A #define T_UTF_32_PAHAWH_HMONG_CONSONANT_NTHAU 0x16B2B #define T_UTF_32_PAHAWH_HMONG_CONSONANT_NAU 0x16B2C #define T_UTF_32_PAHAWH_HMONG_CONSONANT_AU 0x16B2D #define T_UTF_32_PAHAWH_HMONG_CONSONANT_XAU 0x16B2E #define T_UTF_32_PAHAWH_HMONG_CONSONANT_CAU 0x16B2F #define T_UTF_32_PAHAWH_HMONG_MARK_CIM_TUB 0x16B30 #define T_UTF_32_PAHAWH_HMONG_MARK_CIM_SO 0x16B31 #define T_UTF_32_PAHAWH_HMONG_MARK_CIM_KES 0x16B32 #define T_UTF_32_PAHAWH_HMONG_MARK_CIM_KHAV 0x16B33 #define T_UTF_32_PAHAWH_HMONG_MARK_CIM_SUAM 0x16B34 #define T_UTF_32_PAHAWH_HMONG_MARK_CIM_HOM 0x16B35 #define T_UTF_32_PAHAWH_HMONG_MARK_CIM_TAUM 0x16B36 #define T_UTF_32_PAHAWH_HMONG_SIGN_VOS_THOM 0x16B37 #define T_UTF_32_PAHAWH_HMONG_SIGN_VOS_TSHAB_CEEB 0x16B38 #define T_UTF_32_PAHAWH_HMONG_SIGN_CIM_CHEEM 0x16B39 #define T_UTF_32_PAHAWH_HMONG_SIGN_VOS_THIAB 0x16B3A #define T_UTF_32_PAHAWH_HMONG_SIGN_VOS_FEEM 0x16B3B #define T_UTF_32_PAHAWH_HMONG_SIGN_XYEEM_NTXIV 0x16B3C #define T_UTF_32_PAHAWH_HMONG_SIGN_XYEEM_RHO 0x16B3D #define T_UTF_32_PAHAWH_HMONG_SIGN_XYEEM_TOV 0x16B3E #define T_UTF_32_PAHAWH_HMONG_SIGN_XYEEM_FAIB 0x16B3F #define T_UTF_32_PAHAWH_HMONG_SIGN_VOS_SEEV 0x16B40 #define T_UTF_32_PAHAWH_HMONG_SIGN_MEEJ_SUAB 0x16B41 #define T_UTF_32_PAHAWH_HMONG_SIGN_VOS_NRUA 0x16B42 #define T_UTF_32_PAHAWH_HMONG_SIGN_IB_YAM 0x16B43 #define T_UTF_32_PAHAWH_HMONG_SIGN_XAUS 0x16B44 #define T_UTF_32_PAHAWH_HMONG_SIGN_CIM_TSOV_ROG 0x16B45 #define T_UTF_32_PAHAWH_HMONG_DIGIT_ZERO 0x16B50 #define T_UTF_32_PAHAWH_HMONG_DIGIT_ONE 0x16B51 #define T_UTF_32_PAHAWH_HMONG_DIGIT_TWO 0x16B52 #define T_UTF_32_PAHAWH_HMONG_DIGIT_THREE 0x16B53 #define T_UTF_32_PAHAWH_HMONG_DIGIT_FOUR 0x16B54 #define T_UTF_32_PAHAWH_HMONG_DIGIT_FIVE 0x16B55 #define T_UTF_32_PAHAWH_HMONG_DIGIT_SIX 0x16B56 #define T_UTF_32_PAHAWH_HMONG_DIGIT_SEVEN 0x16B57 #define T_UTF_32_PAHAWH_HMONG_DIGIT_EIGHT 0x16B58 #define T_UTF_32_PAHAWH_HMONG_DIGIT_NINE 0x16B59 #define T_UTF_32_PAHAWH_HMONG_NUMBER_TENS 0x16B5B #define T_UTF_32_PAHAWH_HMONG_NUMBER_HUNDREDS 0x16B5C #define T_UTF_32_PAHAWH_HMONG_NUMBER_TEN_THOUSANDS 0x16B5D #define T_UTF_32_PAHAWH_HMONG_NUMBER_MILLIONS 0x16B5E #define T_UTF_32_PAHAWH_HMONG_NUMBER_HUNDRED_MILLIONS 0x16B5F #define T_UTF_32_PAHAWH_HMONG_NUMBER_TEN_BILLIONS 0x16B60 #define T_UTF_32_PAHAWH_HMONG_NUMBER_TRILLIONS 0x16B61 #define T_UTF_32_PAHAWH_HMONG_SIGN_VOS_LUB 0x16B63 #define T_UTF_32_PAHAWH_HMONG_SIGN_XYOO 0x16B64 #define T_UTF_32_PAHAWH_HMONG_SIGN_HLI 0x16B65 #define T_UTF_32_PAHAWH_HMONG_SIGN_THIRD_STAGE_HLI 0x16B66 #define T_UTF_32_PAHAWH_HMONG_SIGN_ZWJ_THAJ 0x16B67 #define T_UTF_32_PAHAWH_HMONG_SIGN_HNUB 0x16B68 #define T_UTF_32_PAHAWH_HMONG_SIGN_NQIG 0x16B69 #define T_UTF_32_PAHAWH_HMONG_SIGN_XIAB 0x16B6A #define T_UTF_32_PAHAWH_HMONG_SIGN_NTUJ 0x16B6B #define T_UTF_32_PAHAWH_HMONG_SIGN_AV 0x16B6C #define T_UTF_32_PAHAWH_HMONG_SIGN_TXHEEJ_CEEV 0x16B6D #define T_UTF_32_PAHAWH_HMONG_SIGN_MEEJ_TSEEB 0x16B6E #define T_UTF_32_PAHAWH_HMONG_SIGN_TAU 0x16B6F #define T_UTF_32_PAHAWH_HMONG_SIGN_LOS 0x16B70 #define T_UTF_32_PAHAWH_HMONG_SIGN_MUS 0x16B71 #define T_UTF_32_PAHAWH_HMONG_SIGN_CIM_HAIS_LUS_NTOG_NTOG 0x16B72 #define T_UTF_32_PAHAWH_HMONG_SIGN_CIM_CUAM_TSHOOJ 0x16B73 #define T_UTF_32_PAHAWH_HMONG_SIGN_CIM_TXWV 0x16B74 #define T_UTF_32_PAHAWH_HMONG_SIGN_CIM_TXWV_CHWV 0x16B75 #define T_UTF_32_PAHAWH_HMONG_SIGN_CIM_PUB_DAWB 0x16B76 #define T_UTF_32_PAHAWH_HMONG_SIGN_CIM_NRES_TOS 0x16B77 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_TSHEEJ 0x16B7D #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_YEEG 0x16B7E #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_LIS 0x16B7F #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_LAUJ 0x16B80 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_XYOOJ 0x16B81 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_KOO 0x16B82 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_HAWJ 0x16B83 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_MUAS 0x16B84 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_THOJ 0x16B85 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_TSAB 0x16B86 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_PHAB 0x16B87 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_KHAB 0x16B88 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_HAM 0x16B89 #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_VAJ 0x16B8A #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_FAJ 0x16B8B #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_YAJ 0x16B8C #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_TSWB 0x16B8D #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_KWM 0x16B8E #define T_UTF_32_PAHAWH_HMONG_CLAN_SIGN_VWJ 0x16B8F #define T_UTF_32_MIAO_LETTER_PA 0x16F00 #define T_UTF_32_MIAO_LETTER_BA 0x16F01 #define T_UTF_32_MIAO_LETTER_YI_PA 0x16F02 #define T_UTF_32_MIAO_LETTER_PLA 0x16F03 #define T_UTF_32_MIAO_LETTER_MA 0x16F04 #define T_UTF_32_MIAO_LETTER_MHA 0x16F05 #define T_UTF_32_MIAO_LETTER_ARCHAIC_MA 0x16F06 #define T_UTF_32_MIAO_LETTER_FA 0x16F07 #define T_UTF_32_MIAO_LETTER_VA 0x16F08 #define T_UTF_32_MIAO_LETTER_VFA 0x16F09 #define T_UTF_32_MIAO_LETTER_TA 0x16F0A #define T_UTF_32_MIAO_LETTER_DA 0x16F0B #define T_UTF_32_MIAO_LETTER_YI_TTA 0x16F0C #define T_UTF_32_MIAO_LETTER_YI_TA 0x16F0D #define T_UTF_32_MIAO_LETTER_TTA 0x16F0E #define T_UTF_32_MIAO_LETTER_DDA 0x16F0F #define T_UTF_32_MIAO_LETTER_NA 0x16F10 #define T_UTF_32_MIAO_LETTER_NHA 0x16F11 #define T_UTF_32_MIAO_LETTER_YI_NNA 0x16F12 #define T_UTF_32_MIAO_LETTER_ARCHAIC_NA 0x16F13 #define T_UTF_32_MIAO_LETTER_NNA 0x16F14 #define T_UTF_32_MIAO_LETTER_NNHA 0x16F15 #define T_UTF_32_MIAO_LETTER_LA 0x16F16 #define T_UTF_32_MIAO_LETTER_LYA 0x16F17 #define T_UTF_32_MIAO_LETTER_LHA 0x16F18 #define T_UTF_32_MIAO_LETTER_LHYA 0x16F19 #define T_UTF_32_MIAO_LETTER_TLHA 0x16F1A #define T_UTF_32_MIAO_LETTER_DLHA 0x16F1B #define T_UTF_32_MIAO_LETTER_TLHYA 0x16F1C #define T_UTF_32_MIAO_LETTER_DLHYA 0x16F1D #define T_UTF_32_MIAO_LETTER_KA 0x16F1E #define T_UTF_32_MIAO_LETTER_GA 0x16F1F #define T_UTF_32_MIAO_LETTER_YI_KA 0x16F20 #define T_UTF_32_MIAO_LETTER_QA 0x16F21 #define T_UTF_32_MIAO_LETTER_QGA 0x16F22 #define T_UTF_32_MIAO_LETTER_NGA 0x16F23 #define T_UTF_32_MIAO_LETTER_NGHA 0x16F24 #define T_UTF_32_MIAO_LETTER_ARCHAIC_NGA 0x16F25 #define T_UTF_32_MIAO_LETTER_HA 0x16F26 #define T_UTF_32_MIAO_LETTER_XA 0x16F27 #define T_UTF_32_MIAO_LETTER_GHA 0x16F28 #define T_UTF_32_MIAO_LETTER_GHHA 0x16F29 #define T_UTF_32_MIAO_LETTER_TSSA 0x16F2A #define T_UTF_32_MIAO_LETTER_DZZA 0x16F2B #define T_UTF_32_MIAO_LETTER_NYA 0x16F2C #define T_UTF_32_MIAO_LETTER_NYHA 0x16F2D #define T_UTF_32_MIAO_LETTER_TSHA 0x16F2E #define T_UTF_32_MIAO_LETTER_DZHA 0x16F2F #define T_UTF_32_MIAO_LETTER_YI_TSHA 0x16F30 #define T_UTF_32_MIAO_LETTER_YI_DZHA 0x16F31 #define T_UTF_32_MIAO_LETTER_REFORMED_TSHA 0x16F32 #define T_UTF_32_MIAO_LETTER_SHA 0x16F33 #define T_UTF_32_MIAO_LETTER_SSA 0x16F34 #define T_UTF_32_MIAO_LETTER_ZHA 0x16F35 #define T_UTF_32_MIAO_LETTER_ZSHA 0x16F36 #define T_UTF_32_MIAO_LETTER_TSA 0x16F37 #define T_UTF_32_MIAO_LETTER_DZA 0x16F38 #define T_UTF_32_MIAO_LETTER_YI_TSA 0x16F39 #define T_UTF_32_MIAO_LETTER_SA 0x16F3A #define T_UTF_32_MIAO_LETTER_ZA 0x16F3B #define T_UTF_32_MIAO_LETTER_ZSA 0x16F3C #define T_UTF_32_MIAO_LETTER_ZZA 0x16F3D #define T_UTF_32_MIAO_LETTER_ZZSA 0x16F3E #define T_UTF_32_MIAO_LETTER_ARCHAIC_ZZA 0x16F3F #define T_UTF_32_MIAO_LETTER_ZZYA 0x16F40 #define T_UTF_32_MIAO_LETTER_ZZSYA 0x16F41 #define T_UTF_32_MIAO_LETTER_WA 0x16F42 #define T_UTF_32_MIAO_LETTER_AH 0x16F43 #define T_UTF_32_MIAO_LETTER_HHA 0x16F44 #define T_UTF_32_MIAO_LETTER_NASALIZATION 0x16F50 #define T_UTF_32_MIAO_SIGN_ASPIRATION 0x16F51 #define T_UTF_32_MIAO_SIGN_REFORMED_VOICING 0x16F52 #define T_UTF_32_MIAO_SIGN_REFORMED_ASPIRATION 0x16F53 #define T_UTF_32_MIAO_VOWEL_SIGN_A 0x16F54 #define T_UTF_32_MIAO_VOWEL_SIGN_AA 0x16F55 #define T_UTF_32_MIAO_VOWEL_SIGN_AHH 0x16F56 #define T_UTF_32_MIAO_VOWEL_SIGN_AN 0x16F57 #define T_UTF_32_MIAO_VOWEL_SIGN_ANG 0x16F58 #define T_UTF_32_MIAO_VOWEL_SIGN_O 0x16F59 #define T_UTF_32_MIAO_VOWEL_SIGN_OO 0x16F5A #define T_UTF_32_MIAO_VOWEL_SIGN_WO 0x16F5B #define T_UTF_32_MIAO_VOWEL_SIGN_W 0x16F5C #define T_UTF_32_MIAO_VOWEL_SIGN_E 0x16F5D #define T_UTF_32_MIAO_VOWEL_SIGN_EN 0x16F5E #define T_UTF_32_MIAO_VOWEL_SIGN_ENG 0x16F5F #define T_UTF_32_MIAO_VOWEL_SIGN_OEY 0x16F60 #define T_UTF_32_MIAO_VOWEL_SIGN_I 0x16F61 #define T_UTF_32_MIAO_VOWEL_SIGN_IA 0x16F62 #define T_UTF_32_MIAO_VOWEL_SIGN_IAN 0x16F63 #define T_UTF_32_MIAO_VOWEL_SIGN_IANG 0x16F64 #define T_UTF_32_MIAO_VOWEL_SIGN_IO 0x16F65 #define T_UTF_32_MIAO_VOWEL_SIGN_IE 0x16F66 #define T_UTF_32_MIAO_VOWEL_SIGN_II 0x16F67 #define T_UTF_32_MIAO_VOWEL_SIGN_IU 0x16F68 #define T_UTF_32_MIAO_VOWEL_SIGN_ING 0x16F69 #define T_UTF_32_MIAO_VOWEL_SIGN_U 0x16F6A #define T_UTF_32_MIAO_VOWEL_SIGN_UA 0x16F6B #define T_UTF_32_MIAO_VOWEL_SIGN_UAN 0x16F6C #define T_UTF_32_MIAO_VOWEL_SIGN_UANG 0x16F6D #define T_UTF_32_MIAO_VOWEL_SIGN_UU 0x16F6E #define T_UTF_32_MIAO_VOWEL_SIGN_UEI 0x16F6F #define T_UTF_32_MIAO_VOWEL_SIGN_UNG 0x16F70 #define T_UTF_32_MIAO_VOWEL_SIGN_Y 0x16F71 #define T_UTF_32_MIAO_VOWEL_SIGN_YI 0x16F72 #define T_UTF_32_MIAO_VOWEL_SIGN_AE 0x16F73 #define T_UTF_32_MIAO_VOWEL_SIGN_AEE 0x16F74 #define T_UTF_32_MIAO_VOWEL_SIGN_ERR 0x16F75 #define T_UTF_32_MIAO_VOWEL_SIGN_ROUNDED_ERR 0x16F76 #define T_UTF_32_MIAO_VOWEL_SIGN_ER 0x16F77 #define T_UTF_32_MIAO_VOWEL_SIGN_ROUNDED_ER 0x16F78 #define T_UTF_32_MIAO_VOWEL_SIGN_AI 0x16F79 #define T_UTF_32_MIAO_VOWEL_SIGN_EI 0x16F7A #define T_UTF_32_MIAO_VOWEL_SIGN_AU 0x16F7B #define T_UTF_32_MIAO_VOWEL_SIGN_OU 0x16F7C #define T_UTF_32_MIAO_VOWEL_SIGN_N 0x16F7D #define T_UTF_32_MIAO_VOWEL_SIGN_NG 0x16F7E #define T_UTF_32_MIAO_TONE_RIGHT 0x16F8F #define T_UTF_32_MIAO_TONE_TOP_RIGHT 0x16F90 #define T_UTF_32_MIAO_TONE_ABOVE 0x16F91 #define T_UTF_32_MIAO_TONE_BELOW 0x16F92 #define T_UTF_32_MIAO_LETTER_TONE_2 0x16F93 #define T_UTF_32_MIAO_LETTER_TONE_3 0x16F94 #define T_UTF_32_MIAO_LETTER_TONE_4 0x16F95 #define T_UTF_32_MIAO_LETTER_TONE_5 0x16F96 #define T_UTF_32_MIAO_LETTER_TONE_6 0x16F97 #define T_UTF_32_MIAO_LETTER_TONE_7 0x16F98 #define T_UTF_32_MIAO_LETTER_TONE_8 0x16F99 #define T_UTF_32_MIAO_LETTER_REFORMED_TONE_1 0x16F9A #define T_UTF_32_MIAO_LETTER_REFORMED_TONE_2 0x16F9B #define T_UTF_32_MIAO_LETTER_REFORMED_TONE_4 0x16F9C #define T_UTF_32_MIAO_LETTER_REFORMED_TONE_5 0x16F9D #define T_UTF_32_MIAO_LETTER_REFORMED_TONE_6 0x16F9E #define T_UTF_32_MIAO_LETTER_REFORMED_TONE_8 0x16F9F #define T_UTF_32_TANGUT_ITERATION_MARK 0x16FE0 #define T_UTF_32_NUSHU_ITERATION_MARK 0x16FE1 #define T_UTF_32_TANGUT_COMPONENT_001 0x18800 #define T_UTF_32_TANGUT_COMPONENT_002 0x18801 #define T_UTF_32_TANGUT_COMPONENT_003 0x18802 #define T_UTF_32_TANGUT_COMPONENT_004 0x18803 #define T_UTF_32_TANGUT_COMPONENT_005 0x18804 #define T_UTF_32_TANGUT_COMPONENT_006 0x18805 #define T_UTF_32_TANGUT_COMPONENT_007 0x18806 #define T_UTF_32_TANGUT_COMPONENT_008 0x18807 #define T_UTF_32_TANGUT_COMPONENT_009 0x18808 #define T_UTF_32_TANGUT_COMPONENT_010 0x18809 #define T_UTF_32_TANGUT_COMPONENT_011 0x1880A #define T_UTF_32_TANGUT_COMPONENT_012 0x1880B #define T_UTF_32_TANGUT_COMPONENT_013 0x1880C #define T_UTF_32_TANGUT_COMPONENT_014 0x1880D #define T_UTF_32_TANGUT_COMPONENT_015 0x1880E #define T_UTF_32_TANGUT_COMPONENT_016 0x1880F #define T_UTF_32_TANGUT_COMPONENT_017 0x18810 #define T_UTF_32_TANGUT_COMPONENT_018 0x18811 #define T_UTF_32_TANGUT_COMPONENT_019 0x18812 #define T_UTF_32_TANGUT_COMPONENT_020 0x18813 #define T_UTF_32_TANGUT_COMPONENT_021 0x18814 #define T_UTF_32_TANGUT_COMPONENT_022 0x18815 #define T_UTF_32_TANGUT_COMPONENT_023 0x18816 #define T_UTF_32_TANGUT_COMPONENT_024 0x18817 #define T_UTF_32_TANGUT_COMPONENT_025 0x18818 #define T_UTF_32_TANGUT_COMPONENT_026 0x18819 #define T_UTF_32_TANGUT_COMPONENT_027 0x1881A #define T_UTF_32_TANGUT_COMPONENT_028 0x1881B #define T_UTF_32_TANGUT_COMPONENT_029 0x1881C #define T_UTF_32_TANGUT_COMPONENT_030 0x1881D #define T_UTF_32_TANGUT_COMPONENT_031 0x1881E #define T_UTF_32_TANGUT_COMPONENT_032 0x1881F #define T_UTF_32_TANGUT_COMPONENT_033 0x18820 #define T_UTF_32_TANGUT_COMPONENT_034 0x18821 #define T_UTF_32_TANGUT_COMPONENT_035 0x18822 #define T_UTF_32_TANGUT_COMPONENT_036 0x18823 #define T_UTF_32_TANGUT_COMPONENT_037 0x18824 #define T_UTF_32_TANGUT_COMPONENT_038 0x18825 #define T_UTF_32_TANGUT_COMPONENT_039 0x18826 #define T_UTF_32_TANGUT_COMPONENT_040 0x18827 #define T_UTF_32_TANGUT_COMPONENT_041 0x18828 #define T_UTF_32_TANGUT_COMPONENT_042 0x18829 #define T_UTF_32_TANGUT_COMPONENT_043 0x1882A #define T_UTF_32_TANGUT_COMPONENT_044 0x1882B #define T_UTF_32_TANGUT_COMPONENT_045 0x1882C #define T_UTF_32_TANGUT_COMPONENT_046 0x1882D #define T_UTF_32_TANGUT_COMPONENT_047 0x1882E #define T_UTF_32_TANGUT_COMPONENT_048 0x1882F #define T_UTF_32_TANGUT_COMPONENT_049 0x18830 #define T_UTF_32_TANGUT_COMPONENT_050 0x18831 #define T_UTF_32_TANGUT_COMPONENT_051 0x18832 #define T_UTF_32_TANGUT_COMPONENT_052 0x18833 #define T_UTF_32_TANGUT_COMPONENT_053 0x18834 #define T_UTF_32_TANGUT_COMPONENT_054 0x18835 #define T_UTF_32_TANGUT_COMPONENT_055 0x18836 #define T_UTF_32_TANGUT_COMPONENT_056 0x18837 #define T_UTF_32_TANGUT_COMPONENT_057 0x18838 #define T_UTF_32_TANGUT_COMPONENT_058 0x18839 #define T_UTF_32_TANGUT_COMPONENT_059 0x1883A #define T_UTF_32_TANGUT_COMPONENT_060 0x1883B #define T_UTF_32_TANGUT_COMPONENT_061 0x1883C #define T_UTF_32_TANGUT_COMPONENT_062 0x1883D #define T_UTF_32_TANGUT_COMPONENT_063 0x1883E #define T_UTF_32_TANGUT_COMPONENT_064 0x1883F #define T_UTF_32_TANGUT_COMPONENT_065 0x18840 #define T_UTF_32_TANGUT_COMPONENT_066 0x18841 #define T_UTF_32_TANGUT_COMPONENT_067 0x18842 #define T_UTF_32_TANGUT_COMPONENT_068 0x18843 #define T_UTF_32_TANGUT_COMPONENT_069 0x18844 #define T_UTF_32_TANGUT_COMPONENT_070 0x18845 #define T_UTF_32_TANGUT_COMPONENT_071 0x18846 #define T_UTF_32_TANGUT_COMPONENT_072 0x18847 #define T_UTF_32_TANGUT_COMPONENT_073 0x18848 #define T_UTF_32_TANGUT_COMPONENT_074 0x18849 #define T_UTF_32_TANGUT_COMPONENT_075 0x1884A #define T_UTF_32_TANGUT_COMPONENT_076 0x1884B #define T_UTF_32_TANGUT_COMPONENT_077 0x1884C #define T_UTF_32_TANGUT_COMPONENT_078 0x1884D #define T_UTF_32_TANGUT_COMPONENT_079 0x1884E #define T_UTF_32_TANGUT_COMPONENT_080 0x1884F #define T_UTF_32_TANGUT_COMPONENT_081 0x18850 #define T_UTF_32_TANGUT_COMPONENT_082 0x18851 #define T_UTF_32_TANGUT_COMPONENT_083 0x18852 #define T_UTF_32_TANGUT_COMPONENT_084 0x18853 #define T_UTF_32_TANGUT_COMPONENT_085 0x18854 #define T_UTF_32_TANGUT_COMPONENT_086 0x18855 #define T_UTF_32_TANGUT_COMPONENT_087 0x18856 #define T_UTF_32_TANGUT_COMPONENT_088 0x18857 #define T_UTF_32_TANGUT_COMPONENT_089 0x18858 #define T_UTF_32_TANGUT_COMPONENT_090 0x18859 #define T_UTF_32_TANGUT_COMPONENT_091 0x1885A #define T_UTF_32_TANGUT_COMPONENT_092 0x1885B #define T_UTF_32_TANGUT_COMPONENT_093 0x1885C #define T_UTF_32_TANGUT_COMPONENT_094 0x1885D #define T_UTF_32_TANGUT_COMPONENT_095 0x1885E #define T_UTF_32_TANGUT_COMPONENT_096 0x1885F #define T_UTF_32_TANGUT_COMPONENT_097 0x18860 #define T_UTF_32_TANGUT_COMPONENT_098 0x18861 #define T_UTF_32_TANGUT_COMPONENT_099 0x18862 #define T_UTF_32_TANGUT_COMPONENT_100 0x18863 #define T_UTF_32_TANGUT_COMPONENT_101 0x18864 #define T_UTF_32_TANGUT_COMPONENT_102 0x18865 #define T_UTF_32_TANGUT_COMPONENT_103 0x18866 #define T_UTF_32_TANGUT_COMPONENT_104 0x18867 #define T_UTF_32_TANGUT_COMPONENT_105 0x18868 #define T_UTF_32_TANGUT_COMPONENT_106 0x18869 #define T_UTF_32_TANGUT_COMPONENT_107 0x1886A #define T_UTF_32_TANGUT_COMPONENT_108 0x1886B #define T_UTF_32_TANGUT_COMPONENT_109 0x1886C #define T_UTF_32_TANGUT_COMPONENT_110 0x1886D #define T_UTF_32_TANGUT_COMPONENT_111 0x1886E #define T_UTF_32_TANGUT_COMPONENT_112 0x1886F #define T_UTF_32_TANGUT_COMPONENT_113 0x18870 #define T_UTF_32_TANGUT_COMPONENT_114 0x18871 #define T_UTF_32_TANGUT_COMPONENT_115 0x18872 #define T_UTF_32_TANGUT_COMPONENT_116 0x18873 #define T_UTF_32_TANGUT_COMPONENT_117 0x18874 #define T_UTF_32_TANGUT_COMPONENT_118 0x18875 #define T_UTF_32_TANGUT_COMPONENT_119 0x18876 #define T_UTF_32_TANGUT_COMPONENT_120 0x18877 #define T_UTF_32_TANGUT_COMPONENT_121 0x18878 #define T_UTF_32_TANGUT_COMPONENT_122 0x18879 #define T_UTF_32_TANGUT_COMPONENT_123 0x1887A #define T_UTF_32_TANGUT_COMPONENT_124 0x1887B #define T_UTF_32_TANGUT_COMPONENT_125 0x1887C #define T_UTF_32_TANGUT_COMPONENT_126 0x1887D #define T_UTF_32_TANGUT_COMPONENT_127 0x1887E #define T_UTF_32_TANGUT_COMPONENT_128 0x1887F #define T_UTF_32_TANGUT_COMPONENT_129 0x18880 #define T_UTF_32_TANGUT_COMPONENT_130 0x18881 #define T_UTF_32_TANGUT_COMPONENT_131 0x18882 #define T_UTF_32_TANGUT_COMPONENT_132 0x18883 #define T_UTF_32_TANGUT_COMPONENT_133 0x18884 #define T_UTF_32_TANGUT_COMPONENT_134 0x18885 #define T_UTF_32_TANGUT_COMPONENT_135 0x18886 #define T_UTF_32_TANGUT_COMPONENT_136 0x18887 #define T_UTF_32_TANGUT_COMPONENT_137 0x18888 #define T_UTF_32_TANGUT_COMPONENT_138 0x18889 #define T_UTF_32_TANGUT_COMPONENT_139 0x1888A #define T_UTF_32_TANGUT_COMPONENT_140 0x1888B #define T_UTF_32_TANGUT_COMPONENT_141 0x1888C #define T_UTF_32_TANGUT_COMPONENT_142 0x1888D #define T_UTF_32_TANGUT_COMPONENT_143 0x1888E #define T_UTF_32_TANGUT_COMPONENT_144 0x1888F #define T_UTF_32_TANGUT_COMPONENT_145 0x18890 #define T_UTF_32_TANGUT_COMPONENT_146 0x18891 #define T_UTF_32_TANGUT_COMPONENT_147 0x18892 #define T_UTF_32_TANGUT_COMPONENT_148 0x18893 #define T_UTF_32_TANGUT_COMPONENT_149 0x18894 #define T_UTF_32_TANGUT_COMPONENT_150 0x18895 #define T_UTF_32_TANGUT_COMPONENT_151 0x18896 #define T_UTF_32_TANGUT_COMPONENT_152 0x18897 #define T_UTF_32_TANGUT_COMPONENT_153 0x18898 #define T_UTF_32_TANGUT_COMPONENT_154 0x18899 #define T_UTF_32_TANGUT_COMPONENT_155 0x1889A #define T_UTF_32_TANGUT_COMPONENT_156 0x1889B #define T_UTF_32_TANGUT_COMPONENT_157 0x1889C #define T_UTF_32_TANGUT_COMPONENT_158 0x1889D #define T_UTF_32_TANGUT_COMPONENT_159 0x1889E #define T_UTF_32_TANGUT_COMPONENT_160 0x1889F #define T_UTF_32_TANGUT_COMPONENT_161 0x188A0 #define T_UTF_32_TANGUT_COMPONENT_162 0x188A1 #define T_UTF_32_TANGUT_COMPONENT_163 0x188A2 #define T_UTF_32_TANGUT_COMPONENT_164 0x188A3 #define T_UTF_32_TANGUT_COMPONENT_165 0x188A4 #define T_UTF_32_TANGUT_COMPONENT_166 0x188A5 #define T_UTF_32_TANGUT_COMPONENT_167 0x188A6 #define T_UTF_32_TANGUT_COMPONENT_168 0x188A7 #define T_UTF_32_TANGUT_COMPONENT_169 0x188A8 #define T_UTF_32_TANGUT_COMPONENT_170 0x188A9 #define T_UTF_32_TANGUT_COMPONENT_171 0x188AA #define T_UTF_32_TANGUT_COMPONENT_172 0x188AB #define T_UTF_32_TANGUT_COMPONENT_173 0x188AC #define T_UTF_32_TANGUT_COMPONENT_174 0x188AD #define T_UTF_32_TANGUT_COMPONENT_175 0x188AE #define T_UTF_32_TANGUT_COMPONENT_176 0x188AF #define T_UTF_32_TANGUT_COMPONENT_177 0x188B0 #define T_UTF_32_TANGUT_COMPONENT_178 0x188B1 #define T_UTF_32_TANGUT_COMPONENT_179 0x188B2 #define T_UTF_32_TANGUT_COMPONENT_180 0x188B3 #define T_UTF_32_TANGUT_COMPONENT_181 0x188B4 #define T_UTF_32_TANGUT_COMPONENT_182 0x188B5 #define T_UTF_32_TANGUT_COMPONENT_183 0x188B6 #define T_UTF_32_TANGUT_COMPONENT_184 0x188B7 #define T_UTF_32_TANGUT_COMPONENT_185 0x188B8 #define T_UTF_32_TANGUT_COMPONENT_186 0x188B9 #define T_UTF_32_TANGUT_COMPONENT_187 0x188BA #define T_UTF_32_TANGUT_COMPONENT_188 0x188BB #define T_UTF_32_TANGUT_COMPONENT_189 0x188BC #define T_UTF_32_TANGUT_COMPONENT_190 0x188BD #define T_UTF_32_TANGUT_COMPONENT_191 0x188BE #define T_UTF_32_TANGUT_COMPONENT_192 0x188BF #define T_UTF_32_TANGUT_COMPONENT_193 0x188C0 #define T_UTF_32_TANGUT_COMPONENT_194 0x188C1 #define T_UTF_32_TANGUT_COMPONENT_195 0x188C2 #define T_UTF_32_TANGUT_COMPONENT_196 0x188C3 #define T_UTF_32_TANGUT_COMPONENT_197 0x188C4 #define T_UTF_32_TANGUT_COMPONENT_198 0x188C5 #define T_UTF_32_TANGUT_COMPONENT_199 0x188C6 #define T_UTF_32_TANGUT_COMPONENT_200 0x188C7 #define T_UTF_32_TANGUT_COMPONENT_201 0x188C8 #define T_UTF_32_TANGUT_COMPONENT_202 0x188C9 #define T_UTF_32_TANGUT_COMPONENT_203 0x188CA #define T_UTF_32_TANGUT_COMPONENT_204 0x188CB #define T_UTF_32_TANGUT_COMPONENT_205 0x188CC #define T_UTF_32_TANGUT_COMPONENT_206 0x188CD #define T_UTF_32_TANGUT_COMPONENT_207 0x188CE #define T_UTF_32_TANGUT_COMPONENT_208 0x188CF #define T_UTF_32_TANGUT_COMPONENT_209 0x188D0 #define T_UTF_32_TANGUT_COMPONENT_210 0x188D1 #define T_UTF_32_TANGUT_COMPONENT_211 0x188D2 #define T_UTF_32_TANGUT_COMPONENT_212 0x188D3 #define T_UTF_32_TANGUT_COMPONENT_213 0x188D4 #define T_UTF_32_TANGUT_COMPONENT_214 0x188D5 #define T_UTF_32_TANGUT_COMPONENT_215 0x188D6 #define T_UTF_32_TANGUT_COMPONENT_216 0x188D7 #define T_UTF_32_TANGUT_COMPONENT_217 0x188D8 #define T_UTF_32_TANGUT_COMPONENT_218 0x188D9 #define T_UTF_32_TANGUT_COMPONENT_219 0x188DA #define T_UTF_32_TANGUT_COMPONENT_220 0x188DB #define T_UTF_32_TANGUT_COMPONENT_221 0x188DC #define T_UTF_32_TANGUT_COMPONENT_222 0x188DD #define T_UTF_32_TANGUT_COMPONENT_223 0x188DE #define T_UTF_32_TANGUT_COMPONENT_224 0x188DF #define T_UTF_32_TANGUT_COMPONENT_225 0x188E0 #define T_UTF_32_TANGUT_COMPONENT_226 0x188E1 #define T_UTF_32_TANGUT_COMPONENT_227 0x188E2 #define T_UTF_32_TANGUT_COMPONENT_228 0x188E3 #define T_UTF_32_TANGUT_COMPONENT_229 0x188E4 #define T_UTF_32_TANGUT_COMPONENT_230 0x188E5 #define T_UTF_32_TANGUT_COMPONENT_231 0x188E6 #define T_UTF_32_TANGUT_COMPONENT_232 0x188E7 #define T_UTF_32_TANGUT_COMPONENT_233 0x188E8 #define T_UTF_32_TANGUT_COMPONENT_234 0x188E9 #define T_UTF_32_TANGUT_COMPONENT_235 0x188EA #define T_UTF_32_TANGUT_COMPONENT_236 0x188EB #define T_UTF_32_TANGUT_COMPONENT_237 0x188EC #define T_UTF_32_TANGUT_COMPONENT_238 0x188ED #define T_UTF_32_TANGUT_COMPONENT_239 0x188EE #define T_UTF_32_TANGUT_COMPONENT_240 0x188EF #define T_UTF_32_TANGUT_COMPONENT_241 0x188F0 #define T_UTF_32_TANGUT_COMPONENT_242 0x188F1 #define T_UTF_32_TANGUT_COMPONENT_243 0x188F2 #define T_UTF_32_TANGUT_COMPONENT_244 0x188F3 #define T_UTF_32_TANGUT_COMPONENT_245 0x188F4 #define T_UTF_32_TANGUT_COMPONENT_246 0x188F5 #define T_UTF_32_TANGUT_COMPONENT_247 0x188F6 #define T_UTF_32_TANGUT_COMPONENT_248 0x188F7 #define T_UTF_32_TANGUT_COMPONENT_249 0x188F8 #define T_UTF_32_TANGUT_COMPONENT_250 0x188F9 #define T_UTF_32_TANGUT_COMPONENT_251 0x188FA #define T_UTF_32_TANGUT_COMPONENT_252 0x188FB #define T_UTF_32_TANGUT_COMPONENT_253 0x188FC #define T_UTF_32_TANGUT_COMPONENT_254 0x188FD #define T_UTF_32_TANGUT_COMPONENT_255 0x188FE #define T_UTF_32_TANGUT_COMPONENT_256 0x188FF #define T_UTF_32_TANGUT_COMPONENT_257 0x18900 #define T_UTF_32_TANGUT_COMPONENT_258 0x18901 #define T_UTF_32_TANGUT_COMPONENT_259 0x18902 #define T_UTF_32_TANGUT_COMPONENT_260 0x18903 #define T_UTF_32_TANGUT_COMPONENT_261 0x18904 #define T_UTF_32_TANGUT_COMPONENT_262 0x18905 #define T_UTF_32_TANGUT_COMPONENT_263 0x18906 #define T_UTF_32_TANGUT_COMPONENT_264 0x18907 #define T_UTF_32_TANGUT_COMPONENT_265 0x18908 #define T_UTF_32_TANGUT_COMPONENT_266 0x18909 #define T_UTF_32_TANGUT_COMPONENT_267 0x1890A #define T_UTF_32_TANGUT_COMPONENT_268 0x1890B #define T_UTF_32_TANGUT_COMPONENT_269 0x1890C #define T_UTF_32_TANGUT_COMPONENT_270 0x1890D #define T_UTF_32_TANGUT_COMPONENT_271 0x1890E #define T_UTF_32_TANGUT_COMPONENT_272 0x1890F #define T_UTF_32_TANGUT_COMPONENT_273 0x18910 #define T_UTF_32_TANGUT_COMPONENT_274 0x18911 #define T_UTF_32_TANGUT_COMPONENT_275 0x18912 #define T_UTF_32_TANGUT_COMPONENT_276 0x18913 #define T_UTF_32_TANGUT_COMPONENT_277 0x18914 #define T_UTF_32_TANGUT_COMPONENT_278 0x18915 #define T_UTF_32_TANGUT_COMPONENT_279 0x18916 #define T_UTF_32_TANGUT_COMPONENT_280 0x18917 #define T_UTF_32_TANGUT_COMPONENT_281 0x18918 #define T_UTF_32_TANGUT_COMPONENT_282 0x18919 #define T_UTF_32_TANGUT_COMPONENT_283 0x1891A #define T_UTF_32_TANGUT_COMPONENT_284 0x1891B #define T_UTF_32_TANGUT_COMPONENT_285 0x1891C #define T_UTF_32_TANGUT_COMPONENT_286 0x1891D #define T_UTF_32_TANGUT_COMPONENT_287 0x1891E #define T_UTF_32_TANGUT_COMPONENT_288 0x1891F #define T_UTF_32_TANGUT_COMPONENT_289 0x18920 #define T_UTF_32_TANGUT_COMPONENT_290 0x18921 #define T_UTF_32_TANGUT_COMPONENT_291 0x18922 #define T_UTF_32_TANGUT_COMPONENT_292 0x18923 #define T_UTF_32_TANGUT_COMPONENT_293 0x18924 #define T_UTF_32_TANGUT_COMPONENT_294 0x18925 #define T_UTF_32_TANGUT_COMPONENT_295 0x18926 #define T_UTF_32_TANGUT_COMPONENT_296 0x18927 #define T_UTF_32_TANGUT_COMPONENT_297 0x18928 #define T_UTF_32_TANGUT_COMPONENT_298 0x18929 #define T_UTF_32_TANGUT_COMPONENT_299 0x1892A #define T_UTF_32_TANGUT_COMPONENT_300 0x1892B #define T_UTF_32_TANGUT_COMPONENT_301 0x1892C #define T_UTF_32_TANGUT_COMPONENT_302 0x1892D #define T_UTF_32_TANGUT_COMPONENT_303 0x1892E #define T_UTF_32_TANGUT_COMPONENT_304 0x1892F #define T_UTF_32_TANGUT_COMPONENT_305 0x18930 #define T_UTF_32_TANGUT_COMPONENT_306 0x18931 #define T_UTF_32_TANGUT_COMPONENT_307 0x18932 #define T_UTF_32_TANGUT_COMPONENT_308 0x18933 #define T_UTF_32_TANGUT_COMPONENT_309 0x18934 #define T_UTF_32_TANGUT_COMPONENT_310 0x18935 #define T_UTF_32_TANGUT_COMPONENT_311 0x18936 #define T_UTF_32_TANGUT_COMPONENT_312 0x18937 #define T_UTF_32_TANGUT_COMPONENT_313 0x18938 #define T_UTF_32_TANGUT_COMPONENT_314 0x18939 #define T_UTF_32_TANGUT_COMPONENT_315 0x1893A #define T_UTF_32_TANGUT_COMPONENT_316 0x1893B #define T_UTF_32_TANGUT_COMPONENT_317 0x1893C #define T_UTF_32_TANGUT_COMPONENT_318 0x1893D #define T_UTF_32_TANGUT_COMPONENT_319 0x1893E #define T_UTF_32_TANGUT_COMPONENT_320 0x1893F #define T_UTF_32_TANGUT_COMPONENT_321 0x18940 #define T_UTF_32_TANGUT_COMPONENT_322 0x18941 #define T_UTF_32_TANGUT_COMPONENT_323 0x18942 #define T_UTF_32_TANGUT_COMPONENT_324 0x18943 #define T_UTF_32_TANGUT_COMPONENT_325 0x18944 #define T_UTF_32_TANGUT_COMPONENT_326 0x18945 #define T_UTF_32_TANGUT_COMPONENT_327 0x18946 #define T_UTF_32_TANGUT_COMPONENT_328 0x18947 #define T_UTF_32_TANGUT_COMPONENT_329 0x18948 #define T_UTF_32_TANGUT_COMPONENT_330 0x18949 #define T_UTF_32_TANGUT_COMPONENT_331 0x1894A #define T_UTF_32_TANGUT_COMPONENT_332 0x1894B #define T_UTF_32_TANGUT_COMPONENT_333 0x1894C #define T_UTF_32_TANGUT_COMPONENT_334 0x1894D #define T_UTF_32_TANGUT_COMPONENT_335 0x1894E #define T_UTF_32_TANGUT_COMPONENT_336 0x1894F #define T_UTF_32_TANGUT_COMPONENT_337 0x18950 #define T_UTF_32_TANGUT_COMPONENT_338 0x18951 #define T_UTF_32_TANGUT_COMPONENT_339 0x18952 #define T_UTF_32_TANGUT_COMPONENT_340 0x18953 #define T_UTF_32_TANGUT_COMPONENT_341 0x18954 #define T_UTF_32_TANGUT_COMPONENT_342 0x18955 #define T_UTF_32_TANGUT_COMPONENT_343 0x18956 #define T_UTF_32_TANGUT_COMPONENT_344 0x18957 #define T_UTF_32_TANGUT_COMPONENT_345 0x18958 #define T_UTF_32_TANGUT_COMPONENT_346 0x18959 #define T_UTF_32_TANGUT_COMPONENT_347 0x1895A #define T_UTF_32_TANGUT_COMPONENT_348 0x1895B #define T_UTF_32_TANGUT_COMPONENT_349 0x1895C #define T_UTF_32_TANGUT_COMPONENT_350 0x1895D #define T_UTF_32_TANGUT_COMPONENT_351 0x1895E #define T_UTF_32_TANGUT_COMPONENT_352 0x1895F #define T_UTF_32_TANGUT_COMPONENT_353 0x18960 #define T_UTF_32_TANGUT_COMPONENT_354 0x18961 #define T_UTF_32_TANGUT_COMPONENT_355 0x18962 #define T_UTF_32_TANGUT_COMPONENT_356 0x18963 #define T_UTF_32_TANGUT_COMPONENT_357 0x18964 #define T_UTF_32_TANGUT_COMPONENT_358 0x18965 #define T_UTF_32_TANGUT_COMPONENT_359 0x18966 #define T_UTF_32_TANGUT_COMPONENT_360 0x18967 #define T_UTF_32_TANGUT_COMPONENT_361 0x18968 #define T_UTF_32_TANGUT_COMPONENT_362 0x18969 #define T_UTF_32_TANGUT_COMPONENT_363 0x1896A #define T_UTF_32_TANGUT_COMPONENT_364 0x1896B #define T_UTF_32_TANGUT_COMPONENT_365 0x1896C #define T_UTF_32_TANGUT_COMPONENT_366 0x1896D #define T_UTF_32_TANGUT_COMPONENT_367 0x1896E #define T_UTF_32_TANGUT_COMPONENT_368 0x1896F #define T_UTF_32_TANGUT_COMPONENT_369 0x18970 #define T_UTF_32_TANGUT_COMPONENT_370 0x18971 #define T_UTF_32_TANGUT_COMPONENT_371 0x18972 #define T_UTF_32_TANGUT_COMPONENT_372 0x18973 #define T_UTF_32_TANGUT_COMPONENT_373 0x18974 #define T_UTF_32_TANGUT_COMPONENT_374 0x18975 #define T_UTF_32_TANGUT_COMPONENT_375 0x18976 #define T_UTF_32_TANGUT_COMPONENT_376 0x18977 #define T_UTF_32_TANGUT_COMPONENT_377 0x18978 #define T_UTF_32_TANGUT_COMPONENT_378 0x18979 #define T_UTF_32_TANGUT_COMPONENT_379 0x1897A #define T_UTF_32_TANGUT_COMPONENT_380 0x1897B #define T_UTF_32_TANGUT_COMPONENT_381 0x1897C #define T_UTF_32_TANGUT_COMPONENT_382 0x1897D #define T_UTF_32_TANGUT_COMPONENT_383 0x1897E #define T_UTF_32_TANGUT_COMPONENT_384 0x1897F #define T_UTF_32_TANGUT_COMPONENT_385 0x18980 #define T_UTF_32_TANGUT_COMPONENT_386 0x18981 #define T_UTF_32_TANGUT_COMPONENT_387 0x18982 #define T_UTF_32_TANGUT_COMPONENT_388 0x18983 #define T_UTF_32_TANGUT_COMPONENT_389 0x18984 #define T_UTF_32_TANGUT_COMPONENT_390 0x18985 #define T_UTF_32_TANGUT_COMPONENT_391 0x18986 #define T_UTF_32_TANGUT_COMPONENT_392 0x18987 #define T_UTF_32_TANGUT_COMPONENT_393 0x18988 #define T_UTF_32_TANGUT_COMPONENT_394 0x18989 #define T_UTF_32_TANGUT_COMPONENT_395 0x1898A #define T_UTF_32_TANGUT_COMPONENT_396 0x1898B #define T_UTF_32_TANGUT_COMPONENT_397 0x1898C #define T_UTF_32_TANGUT_COMPONENT_398 0x1898D #define T_UTF_32_TANGUT_COMPONENT_399 0x1898E #define T_UTF_32_TANGUT_COMPONENT_400 0x1898F #define T_UTF_32_TANGUT_COMPONENT_401 0x18990 #define T_UTF_32_TANGUT_COMPONENT_402 0x18991 #define T_UTF_32_TANGUT_COMPONENT_403 0x18992 #define T_UTF_32_TANGUT_COMPONENT_404 0x18993 #define T_UTF_32_TANGUT_COMPONENT_405 0x18994 #define T_UTF_32_TANGUT_COMPONENT_406 0x18995 #define T_UTF_32_TANGUT_COMPONENT_407 0x18996 #define T_UTF_32_TANGUT_COMPONENT_408 0x18997 #define T_UTF_32_TANGUT_COMPONENT_409 0x18998 #define T_UTF_32_TANGUT_COMPONENT_410 0x18999 #define T_UTF_32_TANGUT_COMPONENT_411 0x1899A #define T_UTF_32_TANGUT_COMPONENT_412 0x1899B #define T_UTF_32_TANGUT_COMPONENT_413 0x1899C #define T_UTF_32_TANGUT_COMPONENT_414 0x1899D #define T_UTF_32_TANGUT_COMPONENT_415 0x1899E #define T_UTF_32_TANGUT_COMPONENT_416 0x1899F #define T_UTF_32_TANGUT_COMPONENT_417 0x189A0 #define T_UTF_32_TANGUT_COMPONENT_418 0x189A1 #define T_UTF_32_TANGUT_COMPONENT_419 0x189A2 #define T_UTF_32_TANGUT_COMPONENT_420 0x189A3 #define T_UTF_32_TANGUT_COMPONENT_421 0x189A4 #define T_UTF_32_TANGUT_COMPONENT_422 0x189A5 #define T_UTF_32_TANGUT_COMPONENT_423 0x189A6 #define T_UTF_32_TANGUT_COMPONENT_424 0x189A7 #define T_UTF_32_TANGUT_COMPONENT_425 0x189A8 #define T_UTF_32_TANGUT_COMPONENT_426 0x189A9 #define T_UTF_32_TANGUT_COMPONENT_427 0x189AA #define T_UTF_32_TANGUT_COMPONENT_428 0x189AB #define T_UTF_32_TANGUT_COMPONENT_429 0x189AC #define T_UTF_32_TANGUT_COMPONENT_430 0x189AD #define T_UTF_32_TANGUT_COMPONENT_431 0x189AE #define T_UTF_32_TANGUT_COMPONENT_432 0x189AF #define T_UTF_32_TANGUT_COMPONENT_433 0x189B0 #define T_UTF_32_TANGUT_COMPONENT_434 0x189B1 #define T_UTF_32_TANGUT_COMPONENT_435 0x189B2 #define T_UTF_32_TANGUT_COMPONENT_436 0x189B3 #define T_UTF_32_TANGUT_COMPONENT_437 0x189B4 #define T_UTF_32_TANGUT_COMPONENT_438 0x189B5 #define T_UTF_32_TANGUT_COMPONENT_439 0x189B6 #define T_UTF_32_TANGUT_COMPONENT_440 0x189B7 #define T_UTF_32_TANGUT_COMPONENT_441 0x189B8 #define T_UTF_32_TANGUT_COMPONENT_442 0x189B9 #define T_UTF_32_TANGUT_COMPONENT_443 0x189BA #define T_UTF_32_TANGUT_COMPONENT_444 0x189BB #define T_UTF_32_TANGUT_COMPONENT_445 0x189BC #define T_UTF_32_TANGUT_COMPONENT_446 0x189BD #define T_UTF_32_TANGUT_COMPONENT_447 0x189BE #define T_UTF_32_TANGUT_COMPONENT_448 0x189BF #define T_UTF_32_TANGUT_COMPONENT_449 0x189C0 #define T_UTF_32_TANGUT_COMPONENT_450 0x189C1 #define T_UTF_32_TANGUT_COMPONENT_451 0x189C2 #define T_UTF_32_TANGUT_COMPONENT_452 0x189C3 #define T_UTF_32_TANGUT_COMPONENT_453 0x189C4 #define T_UTF_32_TANGUT_COMPONENT_454 0x189C5 #define T_UTF_32_TANGUT_COMPONENT_455 0x189C6 #define T_UTF_32_TANGUT_COMPONENT_456 0x189C7 #define T_UTF_32_TANGUT_COMPONENT_457 0x189C8 #define T_UTF_32_TANGUT_COMPONENT_458 0x189C9 #define T_UTF_32_TANGUT_COMPONENT_459 0x189CA #define T_UTF_32_TANGUT_COMPONENT_460 0x189CB #define T_UTF_32_TANGUT_COMPONENT_461 0x189CC #define T_UTF_32_TANGUT_COMPONENT_462 0x189CD #define T_UTF_32_TANGUT_COMPONENT_463 0x189CE #define T_UTF_32_TANGUT_COMPONENT_464 0x189CF #define T_UTF_32_TANGUT_COMPONENT_465 0x189D0 #define T_UTF_32_TANGUT_COMPONENT_466 0x189D1 #define T_UTF_32_TANGUT_COMPONENT_467 0x189D2 #define T_UTF_32_TANGUT_COMPONENT_468 0x189D3 #define T_UTF_32_TANGUT_COMPONENT_469 0x189D4 #define T_UTF_32_TANGUT_COMPONENT_470 0x189D5 #define T_UTF_32_TANGUT_COMPONENT_471 0x189D6 #define T_UTF_32_TANGUT_COMPONENT_472 0x189D7 #define T_UTF_32_TANGUT_COMPONENT_473 0x189D8 #define T_UTF_32_TANGUT_COMPONENT_474 0x189D9 #define T_UTF_32_TANGUT_COMPONENT_475 0x189DA #define T_UTF_32_TANGUT_COMPONENT_476 0x189DB #define T_UTF_32_TANGUT_COMPONENT_477 0x189DC #define T_UTF_32_TANGUT_COMPONENT_478 0x189DD #define T_UTF_32_TANGUT_COMPONENT_479 0x189DE #define T_UTF_32_TANGUT_COMPONENT_480 0x189DF #define T_UTF_32_TANGUT_COMPONENT_481 0x189E0 #define T_UTF_32_TANGUT_COMPONENT_482 0x189E1 #define T_UTF_32_TANGUT_COMPONENT_483 0x189E2 #define T_UTF_32_TANGUT_COMPONENT_484 0x189E3 #define T_UTF_32_TANGUT_COMPONENT_485 0x189E4 #define T_UTF_32_TANGUT_COMPONENT_486 0x189E5 #define T_UTF_32_TANGUT_COMPONENT_487 0x189E6 #define T_UTF_32_TANGUT_COMPONENT_488 0x189E7 #define T_UTF_32_TANGUT_COMPONENT_489 0x189E8 #define T_UTF_32_TANGUT_COMPONENT_490 0x189E9 #define T_UTF_32_TANGUT_COMPONENT_491 0x189EA #define T_UTF_32_TANGUT_COMPONENT_492 0x189EB #define T_UTF_32_TANGUT_COMPONENT_493 0x189EC #define T_UTF_32_TANGUT_COMPONENT_494 0x189ED #define T_UTF_32_TANGUT_COMPONENT_495 0x189EE #define T_UTF_32_TANGUT_COMPONENT_496 0x189EF #define T_UTF_32_TANGUT_COMPONENT_497 0x189F0 #define T_UTF_32_TANGUT_COMPONENT_498 0x189F1 #define T_UTF_32_TANGUT_COMPONENT_499 0x189F2 #define T_UTF_32_TANGUT_COMPONENT_500 0x189F3 #define T_UTF_32_TANGUT_COMPONENT_501 0x189F4 #define T_UTF_32_TANGUT_COMPONENT_502 0x189F5 #define T_UTF_32_TANGUT_COMPONENT_503 0x189F6 #define T_UTF_32_TANGUT_COMPONENT_504 0x189F7 #define T_UTF_32_TANGUT_COMPONENT_505 0x189F8 #define T_UTF_32_TANGUT_COMPONENT_506 0x189F9 #define T_UTF_32_TANGUT_COMPONENT_507 0x189FA #define T_UTF_32_TANGUT_COMPONENT_508 0x189FB #define T_UTF_32_TANGUT_COMPONENT_509 0x189FC #define T_UTF_32_TANGUT_COMPONENT_510 0x189FD #define T_UTF_32_TANGUT_COMPONENT_511 0x189FE #define T_UTF_32_TANGUT_COMPONENT_512 0x189FF #define T_UTF_32_TANGUT_COMPONENT_513 0x18A00 #define T_UTF_32_TANGUT_COMPONENT_514 0x18A01 #define T_UTF_32_TANGUT_COMPONENT_515 0x18A02 #define T_UTF_32_TANGUT_COMPONENT_516 0x18A03 #define T_UTF_32_TANGUT_COMPONENT_517 0x18A04 #define T_UTF_32_TANGUT_COMPONENT_518 0x18A05 #define T_UTF_32_TANGUT_COMPONENT_519 0x18A06 #define T_UTF_32_TANGUT_COMPONENT_520 0x18A07 #define T_UTF_32_TANGUT_COMPONENT_521 0x18A08 #define T_UTF_32_TANGUT_COMPONENT_522 0x18A09 #define T_UTF_32_TANGUT_COMPONENT_523 0x18A0A #define T_UTF_32_TANGUT_COMPONENT_524 0x18A0B #define T_UTF_32_TANGUT_COMPONENT_525 0x18A0C #define T_UTF_32_TANGUT_COMPONENT_526 0x18A0D #define T_UTF_32_TANGUT_COMPONENT_527 0x18A0E #define T_UTF_32_TANGUT_COMPONENT_528 0x18A0F #define T_UTF_32_TANGUT_COMPONENT_529 0x18A10 #define T_UTF_32_TANGUT_COMPONENT_530 0x18A11 #define T_UTF_32_TANGUT_COMPONENT_531 0x18A12 #define T_UTF_32_TANGUT_COMPONENT_532 0x18A13 #define T_UTF_32_TANGUT_COMPONENT_533 0x18A14 #define T_UTF_32_TANGUT_COMPONENT_534 0x18A15 #define T_UTF_32_TANGUT_COMPONENT_535 0x18A16 #define T_UTF_32_TANGUT_COMPONENT_536 0x18A17 #define T_UTF_32_TANGUT_COMPONENT_537 0x18A18 #define T_UTF_32_TANGUT_COMPONENT_538 0x18A19 #define T_UTF_32_TANGUT_COMPONENT_539 0x18A1A #define T_UTF_32_TANGUT_COMPONENT_540 0x18A1B #define T_UTF_32_TANGUT_COMPONENT_541 0x18A1C #define T_UTF_32_TANGUT_COMPONENT_542 0x18A1D #define T_UTF_32_TANGUT_COMPONENT_543 0x18A1E #define T_UTF_32_TANGUT_COMPONENT_544 0x18A1F #define T_UTF_32_TANGUT_COMPONENT_545 0x18A20 #define T_UTF_32_TANGUT_COMPONENT_546 0x18A21 #define T_UTF_32_TANGUT_COMPONENT_547 0x18A22 #define T_UTF_32_TANGUT_COMPONENT_548 0x18A23 #define T_UTF_32_TANGUT_COMPONENT_549 0x18A24 #define T_UTF_32_TANGUT_COMPONENT_550 0x18A25 #define T_UTF_32_TANGUT_COMPONENT_551 0x18A26 #define T_UTF_32_TANGUT_COMPONENT_552 0x18A27 #define T_UTF_32_TANGUT_COMPONENT_553 0x18A28 #define T_UTF_32_TANGUT_COMPONENT_554 0x18A29 #define T_UTF_32_TANGUT_COMPONENT_555 0x18A2A #define T_UTF_32_TANGUT_COMPONENT_556 0x18A2B #define T_UTF_32_TANGUT_COMPONENT_557 0x18A2C #define T_UTF_32_TANGUT_COMPONENT_558 0x18A2D #define T_UTF_32_TANGUT_COMPONENT_559 0x18A2E #define T_UTF_32_TANGUT_COMPONENT_560 0x18A2F #define T_UTF_32_TANGUT_COMPONENT_561 0x18A30 #define T_UTF_32_TANGUT_COMPONENT_562 0x18A31 #define T_UTF_32_TANGUT_COMPONENT_563 0x18A32 #define T_UTF_32_TANGUT_COMPONENT_564 0x18A33 #define T_UTF_32_TANGUT_COMPONENT_565 0x18A34 #define T_UTF_32_TANGUT_COMPONENT_566 0x18A35 #define T_UTF_32_TANGUT_COMPONENT_567 0x18A36 #define T_UTF_32_TANGUT_COMPONENT_568 0x18A37 #define T_UTF_32_TANGUT_COMPONENT_569 0x18A38 #define T_UTF_32_TANGUT_COMPONENT_570 0x18A39 #define T_UTF_32_TANGUT_COMPONENT_571 0x18A3A #define T_UTF_32_TANGUT_COMPONENT_572 0x18A3B #define T_UTF_32_TANGUT_COMPONENT_573 0x18A3C #define T_UTF_32_TANGUT_COMPONENT_574 0x18A3D #define T_UTF_32_TANGUT_COMPONENT_575 0x18A3E #define T_UTF_32_TANGUT_COMPONENT_576 0x18A3F #define T_UTF_32_TANGUT_COMPONENT_577 0x18A40 #define T_UTF_32_TANGUT_COMPONENT_578 0x18A41 #define T_UTF_32_TANGUT_COMPONENT_579 0x18A42 #define T_UTF_32_TANGUT_COMPONENT_580 0x18A43 #define T_UTF_32_TANGUT_COMPONENT_581 0x18A44 #define T_UTF_32_TANGUT_COMPONENT_582 0x18A45 #define T_UTF_32_TANGUT_COMPONENT_583 0x18A46 #define T_UTF_32_TANGUT_COMPONENT_584 0x18A47 #define T_UTF_32_TANGUT_COMPONENT_585 0x18A48 #define T_UTF_32_TANGUT_COMPONENT_586 0x18A49 #define T_UTF_32_TANGUT_COMPONENT_587 0x18A4A #define T_UTF_32_TANGUT_COMPONENT_588 0x18A4B #define T_UTF_32_TANGUT_COMPONENT_589 0x18A4C #define T_UTF_32_TANGUT_COMPONENT_590 0x18A4D #define T_UTF_32_TANGUT_COMPONENT_591 0x18A4E #define T_UTF_32_TANGUT_COMPONENT_592 0x18A4F #define T_UTF_32_TANGUT_COMPONENT_593 0x18A50 #define T_UTF_32_TANGUT_COMPONENT_594 0x18A51 #define T_UTF_32_TANGUT_COMPONENT_595 0x18A52 #define T_UTF_32_TANGUT_COMPONENT_596 0x18A53 #define T_UTF_32_TANGUT_COMPONENT_597 0x18A54 #define T_UTF_32_TANGUT_COMPONENT_598 0x18A55 #define T_UTF_32_TANGUT_COMPONENT_599 0x18A56 #define T_UTF_32_TANGUT_COMPONENT_600 0x18A57 #define T_UTF_32_TANGUT_COMPONENT_601 0x18A58 #define T_UTF_32_TANGUT_COMPONENT_602 0x18A59 #define T_UTF_32_TANGUT_COMPONENT_603 0x18A5A #define T_UTF_32_TANGUT_COMPONENT_604 0x18A5B #define T_UTF_32_TANGUT_COMPONENT_605 0x18A5C #define T_UTF_32_TANGUT_COMPONENT_606 0x18A5D #define T_UTF_32_TANGUT_COMPONENT_607 0x18A5E #define T_UTF_32_TANGUT_COMPONENT_608 0x18A5F #define T_UTF_32_TANGUT_COMPONENT_609 0x18A60 #define T_UTF_32_TANGUT_COMPONENT_610 0x18A61 #define T_UTF_32_TANGUT_COMPONENT_611 0x18A62 #define T_UTF_32_TANGUT_COMPONENT_612 0x18A63 #define T_UTF_32_TANGUT_COMPONENT_613 0x18A64 #define T_UTF_32_TANGUT_COMPONENT_614 0x18A65 #define T_UTF_32_TANGUT_COMPONENT_615 0x18A66 #define T_UTF_32_TANGUT_COMPONENT_616 0x18A67 #define T_UTF_32_TANGUT_COMPONENT_617 0x18A68 #define T_UTF_32_TANGUT_COMPONENT_618 0x18A69 #define T_UTF_32_TANGUT_COMPONENT_619 0x18A6A #define T_UTF_32_TANGUT_COMPONENT_620 0x18A6B #define T_UTF_32_TANGUT_COMPONENT_621 0x18A6C #define T_UTF_32_TANGUT_COMPONENT_622 0x18A6D #define T_UTF_32_TANGUT_COMPONENT_623 0x18A6E #define T_UTF_32_TANGUT_COMPONENT_624 0x18A6F #define T_UTF_32_TANGUT_COMPONENT_625 0x18A70 #define T_UTF_32_TANGUT_COMPONENT_626 0x18A71 #define T_UTF_32_TANGUT_COMPONENT_627 0x18A72 #define T_UTF_32_TANGUT_COMPONENT_628 0x18A73 #define T_UTF_32_TANGUT_COMPONENT_629 0x18A74 #define T_UTF_32_TANGUT_COMPONENT_630 0x18A75 #define T_UTF_32_TANGUT_COMPONENT_631 0x18A76 #define T_UTF_32_TANGUT_COMPONENT_632 0x18A77 #define T_UTF_32_TANGUT_COMPONENT_633 0x18A78 #define T_UTF_32_TANGUT_COMPONENT_634 0x18A79 #define T_UTF_32_TANGUT_COMPONENT_635 0x18A7A #define T_UTF_32_TANGUT_COMPONENT_636 0x18A7B #define T_UTF_32_TANGUT_COMPONENT_637 0x18A7C #define T_UTF_32_TANGUT_COMPONENT_638 0x18A7D #define T_UTF_32_TANGUT_COMPONENT_639 0x18A7E #define T_UTF_32_TANGUT_COMPONENT_640 0x18A7F #define T_UTF_32_TANGUT_COMPONENT_641 0x18A80 #define T_UTF_32_TANGUT_COMPONENT_642 0x18A81 #define T_UTF_32_TANGUT_COMPONENT_643 0x18A82 #define T_UTF_32_TANGUT_COMPONENT_644 0x18A83 #define T_UTF_32_TANGUT_COMPONENT_645 0x18A84 #define T_UTF_32_TANGUT_COMPONENT_646 0x18A85 #define T_UTF_32_TANGUT_COMPONENT_647 0x18A86 #define T_UTF_32_TANGUT_COMPONENT_648 0x18A87 #define T_UTF_32_TANGUT_COMPONENT_649 0x18A88 #define T_UTF_32_TANGUT_COMPONENT_650 0x18A89 #define T_UTF_32_TANGUT_COMPONENT_651 0x18A8A #define T_UTF_32_TANGUT_COMPONENT_652 0x18A8B #define T_UTF_32_TANGUT_COMPONENT_653 0x18A8C #define T_UTF_32_TANGUT_COMPONENT_654 0x18A8D #define T_UTF_32_TANGUT_COMPONENT_655 0x18A8E #define T_UTF_32_TANGUT_COMPONENT_656 0x18A8F #define T_UTF_32_TANGUT_COMPONENT_657 0x18A90 #define T_UTF_32_TANGUT_COMPONENT_658 0x18A91 #define T_UTF_32_TANGUT_COMPONENT_659 0x18A92 #define T_UTF_32_TANGUT_COMPONENT_660 0x18A93 #define T_UTF_32_TANGUT_COMPONENT_661 0x18A94 #define T_UTF_32_TANGUT_COMPONENT_662 0x18A95 #define T_UTF_32_TANGUT_COMPONENT_663 0x18A96 #define T_UTF_32_TANGUT_COMPONENT_664 0x18A97 #define T_UTF_32_TANGUT_COMPONENT_665 0x18A98 #define T_UTF_32_TANGUT_COMPONENT_666 0x18A99 #define T_UTF_32_TANGUT_COMPONENT_667 0x18A9A #define T_UTF_32_TANGUT_COMPONENT_668 0x18A9B #define T_UTF_32_TANGUT_COMPONENT_669 0x18A9C #define T_UTF_32_TANGUT_COMPONENT_670 0x18A9D #define T_UTF_32_TANGUT_COMPONENT_671 0x18A9E #define T_UTF_32_TANGUT_COMPONENT_672 0x18A9F #define T_UTF_32_TANGUT_COMPONENT_673 0x18AA0 #define T_UTF_32_TANGUT_COMPONENT_674 0x18AA1 #define T_UTF_32_TANGUT_COMPONENT_675 0x18AA2 #define T_UTF_32_TANGUT_COMPONENT_676 0x18AA3 #define T_UTF_32_TANGUT_COMPONENT_677 0x18AA4 #define T_UTF_32_TANGUT_COMPONENT_678 0x18AA5 #define T_UTF_32_TANGUT_COMPONENT_679 0x18AA6 #define T_UTF_32_TANGUT_COMPONENT_680 0x18AA7 #define T_UTF_32_TANGUT_COMPONENT_681 0x18AA8 #define T_UTF_32_TANGUT_COMPONENT_682 0x18AA9 #define T_UTF_32_TANGUT_COMPONENT_683 0x18AAA #define T_UTF_32_TANGUT_COMPONENT_684 0x18AAB #define T_UTF_32_TANGUT_COMPONENT_685 0x18AAC #define T_UTF_32_TANGUT_COMPONENT_686 0x18AAD #define T_UTF_32_TANGUT_COMPONENT_687 0x18AAE #define T_UTF_32_TANGUT_COMPONENT_688 0x18AAF #define T_UTF_32_TANGUT_COMPONENT_689 0x18AB0 #define T_UTF_32_TANGUT_COMPONENT_690 0x18AB1 #define T_UTF_32_TANGUT_COMPONENT_691 0x18AB2 #define T_UTF_32_TANGUT_COMPONENT_692 0x18AB3 #define T_UTF_32_TANGUT_COMPONENT_693 0x18AB4 #define T_UTF_32_TANGUT_COMPONENT_694 0x18AB5 #define T_UTF_32_TANGUT_COMPONENT_695 0x18AB6 #define T_UTF_32_TANGUT_COMPONENT_696 0x18AB7 #define T_UTF_32_TANGUT_COMPONENT_697 0x18AB8 #define T_UTF_32_TANGUT_COMPONENT_698 0x18AB9 #define T_UTF_32_TANGUT_COMPONENT_699 0x18ABA #define T_UTF_32_TANGUT_COMPONENT_700 0x18ABB #define T_UTF_32_TANGUT_COMPONENT_701 0x18ABC #define T_UTF_32_TANGUT_COMPONENT_702 0x18ABD #define T_UTF_32_TANGUT_COMPONENT_703 0x18ABE #define T_UTF_32_TANGUT_COMPONENT_704 0x18ABF #define T_UTF_32_TANGUT_COMPONENT_705 0x18AC0 #define T_UTF_32_TANGUT_COMPONENT_706 0x18AC1 #define T_UTF_32_TANGUT_COMPONENT_707 0x18AC2 #define T_UTF_32_TANGUT_COMPONENT_708 0x18AC3 #define T_UTF_32_TANGUT_COMPONENT_709 0x18AC4 #define T_UTF_32_TANGUT_COMPONENT_710 0x18AC5 #define T_UTF_32_TANGUT_COMPONENT_711 0x18AC6 #define T_UTF_32_TANGUT_COMPONENT_712 0x18AC7 #define T_UTF_32_TANGUT_COMPONENT_713 0x18AC8 #define T_UTF_32_TANGUT_COMPONENT_714 0x18AC9 #define T_UTF_32_TANGUT_COMPONENT_715 0x18ACA #define T_UTF_32_TANGUT_COMPONENT_716 0x18ACB #define T_UTF_32_TANGUT_COMPONENT_717 0x18ACC #define T_UTF_32_TANGUT_COMPONENT_718 0x18ACD #define T_UTF_32_TANGUT_COMPONENT_719 0x18ACE #define T_UTF_32_TANGUT_COMPONENT_720 0x18ACF #define T_UTF_32_TANGUT_COMPONENT_721 0x18AD0 #define T_UTF_32_TANGUT_COMPONENT_722 0x18AD1 #define T_UTF_32_TANGUT_COMPONENT_723 0x18AD2 #define T_UTF_32_TANGUT_COMPONENT_724 0x18AD3 #define T_UTF_32_TANGUT_COMPONENT_725 0x18AD4 #define T_UTF_32_TANGUT_COMPONENT_726 0x18AD5 #define T_UTF_32_TANGUT_COMPONENT_727 0x18AD6 #define T_UTF_32_TANGUT_COMPONENT_728 0x18AD7 #define T_UTF_32_TANGUT_COMPONENT_729 0x18AD8 #define T_UTF_32_TANGUT_COMPONENT_730 0x18AD9 #define T_UTF_32_TANGUT_COMPONENT_731 0x18ADA #define T_UTF_32_TANGUT_COMPONENT_732 0x18ADB #define T_UTF_32_TANGUT_COMPONENT_733 0x18ADC #define T_UTF_32_TANGUT_COMPONENT_734 0x18ADD #define T_UTF_32_TANGUT_COMPONENT_735 0x18ADE #define T_UTF_32_TANGUT_COMPONENT_736 0x18ADF #define T_UTF_32_TANGUT_COMPONENT_737 0x18AE0 #define T_UTF_32_TANGUT_COMPONENT_738 0x18AE1 #define T_UTF_32_TANGUT_COMPONENT_739 0x18AE2 #define T_UTF_32_TANGUT_COMPONENT_740 0x18AE3 #define T_UTF_32_TANGUT_COMPONENT_741 0x18AE4 #define T_UTF_32_TANGUT_COMPONENT_742 0x18AE5 #define T_UTF_32_TANGUT_COMPONENT_743 0x18AE6 #define T_UTF_32_TANGUT_COMPONENT_744 0x18AE7 #define T_UTF_32_TANGUT_COMPONENT_745 0x18AE8 #define T_UTF_32_TANGUT_COMPONENT_746 0x18AE9 #define T_UTF_32_TANGUT_COMPONENT_747 0x18AEA #define T_UTF_32_TANGUT_COMPONENT_748 0x18AEB #define T_UTF_32_TANGUT_COMPONENT_749 0x18AEC #define T_UTF_32_TANGUT_COMPONENT_750 0x18AED #define T_UTF_32_TANGUT_COMPONENT_751 0x18AEE #define T_UTF_32_TANGUT_COMPONENT_752 0x18AEF #define T_UTF_32_TANGUT_COMPONENT_753 0x18AF0 #define T_UTF_32_TANGUT_COMPONENT_754 0x18AF1 #define T_UTF_32_TANGUT_COMPONENT_755 0x18AF2 #define T_UTF_32_KATAKANA_LETTER_ARCHAIC_E 0x1B000 #define T_UTF_32_HIRAGANA_LETTER_ARCHAIC_YE 0x1B001 #define T_UTF_32_HENTAIGANA_LETTER_A_1 0x1B002 #define T_UTF_32_HENTAIGANA_LETTER_A_2 0x1B003 #define T_UTF_32_HENTAIGANA_LETTER_A_3 0x1B004 #define T_UTF_32_HENTAIGANA_LETTER_A_WO 0x1B005 #define T_UTF_32_HENTAIGANA_LETTER_I_1 0x1B006 #define T_UTF_32_HENTAIGANA_LETTER_I_2 0x1B007 #define T_UTF_32_HENTAIGANA_LETTER_I_3 0x1B008 #define T_UTF_32_HENTAIGANA_LETTER_I_4 0x1B009 #define T_UTF_32_HENTAIGANA_LETTER_U_1 0x1B00A #define T_UTF_32_HENTAIGANA_LETTER_U_2 0x1B00B #define T_UTF_32_HENTAIGANA_LETTER_U_3 0x1B00C #define T_UTF_32_HENTAIGANA_LETTER_U_4 0x1B00D #define T_UTF_32_HENTAIGANA_LETTER_U_5 0x1B00E #define T_UTF_32_HENTAIGANA_LETTER_E_2 0x1B00F #define T_UTF_32_HENTAIGANA_LETTER_E_3 0x1B010 #define T_UTF_32_HENTAIGANA_LETTER_E_4 0x1B011 #define T_UTF_32_HENTAIGANA_LETTER_E_5 0x1B012 #define T_UTF_32_HENTAIGANA_LETTER_E_6 0x1B013 #define T_UTF_32_HENTAIGANA_LETTER_O_1 0x1B014 #define T_UTF_32_HENTAIGANA_LETTER_O_2 0x1B015 #define T_UTF_32_HENTAIGANA_LETTER_O_3 0x1B016 #define T_UTF_32_HENTAIGANA_LETTER_KA_1 0x1B017 #define T_UTF_32_HENTAIGANA_LETTER_KA_2 0x1B018 #define T_UTF_32_HENTAIGANA_LETTER_KA_3 0x1B019 #define T_UTF_32_HENTAIGANA_LETTER_KA_4 0x1B01A #define T_UTF_32_HENTAIGANA_LETTER_KA_5 0x1B01B #define T_UTF_32_HENTAIGANA_LETTER_KA_6 0x1B01C #define T_UTF_32_HENTAIGANA_LETTER_KA_7 0x1B01D #define T_UTF_32_HENTAIGANA_LETTER_KA_8 0x1B01E #define T_UTF_32_HENTAIGANA_LETTER_KA_9 0x1B01F #define T_UTF_32_HENTAIGANA_LETTER_KA_10 0x1B020 #define T_UTF_32_HENTAIGANA_LETTER_KA_11 0x1B021 #define T_UTF_32_HENTAIGANA_LETTER_KA_KE 0x1B022 #define T_UTF_32_HENTAIGANA_LETTER_KI_1 0x1B023 #define T_UTF_32_HENTAIGANA_LETTER_KI_2 0x1B024 #define T_UTF_32_HENTAIGANA_LETTER_KI_3 0x1B025 #define T_UTF_32_HENTAIGANA_LETTER_KI_4 0x1B026 #define T_UTF_32_HENTAIGANA_LETTER_KI_5 0x1B027 #define T_UTF_32_HENTAIGANA_LETTER_KI_6 0x1B028 #define T_UTF_32_HENTAIGANA_LETTER_KI_7 0x1B029 #define T_UTF_32_HENTAIGANA_LETTER_KI_8 0x1B02A #define T_UTF_32_HENTAIGANA_LETTER_KU_1 0x1B02B #define T_UTF_32_HENTAIGANA_LETTER_KU_2 0x1B02C #define T_UTF_32_HENTAIGANA_LETTER_KU_3 0x1B02D #define T_UTF_32_HENTAIGANA_LETTER_KU_4 0x1B02E #define T_UTF_32_HENTAIGANA_LETTER_KU_5 0x1B02F #define T_UTF_32_HENTAIGANA_LETTER_KU_6 0x1B030 #define T_UTF_32_HENTAIGANA_LETTER_KU_7 0x1B031 #define T_UTF_32_HENTAIGANA_LETTER_KE_1 0x1B032 #define T_UTF_32_HENTAIGANA_LETTER_KE_2 0x1B033 #define T_UTF_32_HENTAIGANA_LETTER_KE_3 0x1B034 #define T_UTF_32_HENTAIGANA_LETTER_KE_4 0x1B035 #define T_UTF_32_HENTAIGANA_LETTER_KE_5 0x1B036 #define T_UTF_32_HENTAIGANA_LETTER_KE_6 0x1B037 #define T_UTF_32_HENTAIGANA_LETTER_KO_1 0x1B038 #define T_UTF_32_HENTAIGANA_LETTER_KO_2 0x1B039 #define T_UTF_32_HENTAIGANA_LETTER_KO_3 0x1B03A #define T_UTF_32_HENTAIGANA_LETTER_KO_KI 0x1B03B #define T_UTF_32_HENTAIGANA_LETTER_SA_1 0x1B03C #define T_UTF_32_HENTAIGANA_LETTER_SA_2 0x1B03D #define T_UTF_32_HENTAIGANA_LETTER_SA_3 0x1B03E #define T_UTF_32_HENTAIGANA_LETTER_SA_4 0x1B03F #define T_UTF_32_HENTAIGANA_LETTER_SA_5 0x1B040 #define T_UTF_32_HENTAIGANA_LETTER_SA_6 0x1B041 #define T_UTF_32_HENTAIGANA_LETTER_SA_7 0x1B042 #define T_UTF_32_HENTAIGANA_LETTER_SA_8 0x1B043 #define T_UTF_32_HENTAIGANA_LETTER_SI_1 0x1B044 #define T_UTF_32_HENTAIGANA_LETTER_SI_2 0x1B045 #define T_UTF_32_HENTAIGANA_LETTER_SI_3 0x1B046 #define T_UTF_32_HENTAIGANA_LETTER_SI_4 0x1B047 #define T_UTF_32_HENTAIGANA_LETTER_SI_5 0x1B048 #define T_UTF_32_HENTAIGANA_LETTER_SI_6 0x1B049 #define T_UTF_32_HENTAIGANA_LETTER_SU_1 0x1B04A #define T_UTF_32_HENTAIGANA_LETTER_SU_2 0x1B04B #define T_UTF_32_HENTAIGANA_LETTER_SU_3 0x1B04C #define T_UTF_32_HENTAIGANA_LETTER_SU_4 0x1B04D #define T_UTF_32_HENTAIGANA_LETTER_SU_5 0x1B04E #define T_UTF_32_HENTAIGANA_LETTER_SU_6 0x1B04F #define T_UTF_32_HENTAIGANA_LETTER_SU_7 0x1B050 #define T_UTF_32_HENTAIGANA_LETTER_SU_8 0x1B051 #define T_UTF_32_HENTAIGANA_LETTER_SE_1 0x1B052 #define T_UTF_32_HENTAIGANA_LETTER_SE_2 0x1B053 #define T_UTF_32_HENTAIGANA_LETTER_SE_3 0x1B054 #define T_UTF_32_HENTAIGANA_LETTER_SE_4 0x1B055 #define T_UTF_32_HENTAIGANA_LETTER_SE_5 0x1B056 #define T_UTF_32_HENTAIGANA_LETTER_SO_1 0x1B057 #define T_UTF_32_HENTAIGANA_LETTER_SO_2 0x1B058 #define T_UTF_32_HENTAIGANA_LETTER_SO_3 0x1B059 #define T_UTF_32_HENTAIGANA_LETTER_SO_4 0x1B05A #define T_UTF_32_HENTAIGANA_LETTER_SO_5 0x1B05B #define T_UTF_32_HENTAIGANA_LETTER_SO_6 0x1B05C #define T_UTF_32_HENTAIGANA_LETTER_SO_7 0x1B05D #define T_UTF_32_HENTAIGANA_LETTER_TA_1 0x1B05E #define T_UTF_32_HENTAIGANA_LETTER_TA_2 0x1B05F #define T_UTF_32_HENTAIGANA_LETTER_TA_3 0x1B060 #define T_UTF_32_HENTAIGANA_LETTER_TA_4 0x1B061 #define T_UTF_32_HENTAIGANA_LETTER_TI_1 0x1B062 #define T_UTF_32_HENTAIGANA_LETTER_TI_2 0x1B063 #define T_UTF_32_HENTAIGANA_LETTER_TI_3 0x1B064 #define T_UTF_32_HENTAIGANA_LETTER_TI_4 0x1B065 #define T_UTF_32_HENTAIGANA_LETTER_TI_5 0x1B066 #define T_UTF_32_HENTAIGANA_LETTER_TI_6 0x1B067 #define T_UTF_32_HENTAIGANA_LETTER_TI_7 0x1B068 #define T_UTF_32_HENTAIGANA_LETTER_TU_1 0x1B069 #define T_UTF_32_HENTAIGANA_LETTER_TU_2 0x1B06A #define T_UTF_32_HENTAIGANA_LETTER_TU_3 0x1B06B #define T_UTF_32_HENTAIGANA_LETTER_TU_4 0x1B06C #define T_UTF_32_HENTAIGANA_LETTER_TU_TO 0x1B06D #define T_UTF_32_HENTAIGANA_LETTER_TE_1 0x1B06E #define T_UTF_32_HENTAIGANA_LETTER_TE_2 0x1B06F #define T_UTF_32_HENTAIGANA_LETTER_TE_3 0x1B070 #define T_UTF_32_HENTAIGANA_LETTER_TE_4 0x1B071 #define T_UTF_32_HENTAIGANA_LETTER_TE_5 0x1B072 #define T_UTF_32_HENTAIGANA_LETTER_TE_6 0x1B073 #define T_UTF_32_HENTAIGANA_LETTER_TE_7 0x1B074 #define T_UTF_32_HENTAIGANA_LETTER_TE_8 0x1B075 #define T_UTF_32_HENTAIGANA_LETTER_TE_9 0x1B076 #define T_UTF_32_HENTAIGANA_LETTER_TO_1 0x1B077 #define T_UTF_32_HENTAIGANA_LETTER_TO_2 0x1B078 #define T_UTF_32_HENTAIGANA_LETTER_TO_3 0x1B079 #define T_UTF_32_HENTAIGANA_LETTER_TO_4 0x1B07A #define T_UTF_32_HENTAIGANA_LETTER_TO_5 0x1B07B #define T_UTF_32_HENTAIGANA_LETTER_TO_6 0x1B07C #define T_UTF_32_HENTAIGANA_LETTER_TO_RA 0x1B07D #define T_UTF_32_HENTAIGANA_LETTER_NA_1 0x1B07E #define T_UTF_32_HENTAIGANA_LETTER_NA_2 0x1B07F #define T_UTF_32_HENTAIGANA_LETTER_NA_3 0x1B080 #define T_UTF_32_HENTAIGANA_LETTER_NA_4 0x1B081 #define T_UTF_32_HENTAIGANA_LETTER_NA_5 0x1B082 #define T_UTF_32_HENTAIGANA_LETTER_NA_6 0x1B083 #define T_UTF_32_HENTAIGANA_LETTER_NA_7 0x1B084 #define T_UTF_32_HENTAIGANA_LETTER_NA_8 0x1B085 #define T_UTF_32_HENTAIGANA_LETTER_NA_9 0x1B086 #define T_UTF_32_HENTAIGANA_LETTER_NI_1 0x1B087 #define T_UTF_32_HENTAIGANA_LETTER_NI_2 0x1B088 #define T_UTF_32_HENTAIGANA_LETTER_NI_3 0x1B089 #define T_UTF_32_HENTAIGANA_LETTER_NI_4 0x1B08A #define T_UTF_32_HENTAIGANA_LETTER_NI_5 0x1B08B #define T_UTF_32_HENTAIGANA_LETTER_NI_6 0x1B08C #define T_UTF_32_HENTAIGANA_LETTER_NI_7 0x1B08D #define T_UTF_32_HENTAIGANA_LETTER_NI_TE 0x1B08E #define T_UTF_32_HENTAIGANA_LETTER_NU_1 0x1B08F #define T_UTF_32_HENTAIGANA_LETTER_NU_2 0x1B090 #define T_UTF_32_HENTAIGANA_LETTER_NU_3 0x1B091 #define T_UTF_32_HENTAIGANA_LETTER_NE_1 0x1B092 #define T_UTF_32_HENTAIGANA_LETTER_NE_2 0x1B093 #define T_UTF_32_HENTAIGANA_LETTER_NE_3 0x1B094 #define T_UTF_32_HENTAIGANA_LETTER_NE_4 0x1B095 #define T_UTF_32_HENTAIGANA_LETTER_NE_5 0x1B096 #define T_UTF_32_HENTAIGANA_LETTER_NE_6 0x1B097 #define T_UTF_32_HENTAIGANA_LETTER_NE_KO 0x1B098 #define T_UTF_32_HENTAIGANA_LETTER_NO_1 0x1B099 #define T_UTF_32_HENTAIGANA_LETTER_NO_2 0x1B09A #define T_UTF_32_HENTAIGANA_LETTER_NO_3 0x1B09B #define T_UTF_32_HENTAIGANA_LETTER_NO_4 0x1B09C #define T_UTF_32_HENTAIGANA_LETTER_NO_5 0x1B09D #define T_UTF_32_HENTAIGANA_LETTER_HA_1 0x1B09E #define T_UTF_32_HENTAIGANA_LETTER_HA_2 0x1B09F #define T_UTF_32_HENTAIGANA_LETTER_HA_3 0x1B0A0 #define T_UTF_32_HENTAIGANA_LETTER_HA_4 0x1B0A1 #define T_UTF_32_HENTAIGANA_LETTER_HA_5 0x1B0A2 #define T_UTF_32_HENTAIGANA_LETTER_HA_6 0x1B0A3 #define T_UTF_32_HENTAIGANA_LETTER_HA_7 0x1B0A4 #define T_UTF_32_HENTAIGANA_LETTER_HA_8 0x1B0A5 #define T_UTF_32_HENTAIGANA_LETTER_HA_9 0x1B0A6 #define T_UTF_32_HENTAIGANA_LETTER_HA_10 0x1B0A7 #define T_UTF_32_HENTAIGANA_LETTER_HA_11 0x1B0A8 #define T_UTF_32_HENTAIGANA_LETTER_HI_1 0x1B0A9 #define T_UTF_32_HENTAIGANA_LETTER_HI_2 0x1B0AA #define T_UTF_32_HENTAIGANA_LETTER_HI_3 0x1B0AB #define T_UTF_32_HENTAIGANA_LETTER_HI_4 0x1B0AC #define T_UTF_32_HENTAIGANA_LETTER_HI_5 0x1B0AD #define T_UTF_32_HENTAIGANA_LETTER_HI_6 0x1B0AE #define T_UTF_32_HENTAIGANA_LETTER_HI_7 0x1B0AF #define T_UTF_32_HENTAIGANA_LETTER_HU_1 0x1B0B0 #define T_UTF_32_HENTAIGANA_LETTER_HU_2 0x1B0B1 #define T_UTF_32_HENTAIGANA_LETTER_HU_3 0x1B0B2 #define T_UTF_32_HENTAIGANA_LETTER_HE_1 0x1B0B3 #define T_UTF_32_HENTAIGANA_LETTER_HE_2 0x1B0B4 #define T_UTF_32_HENTAIGANA_LETTER_HE_3 0x1B0B5 #define T_UTF_32_HENTAIGANA_LETTER_HE_4 0x1B0B6 #define T_UTF_32_HENTAIGANA_LETTER_HE_5 0x1B0B7 #define T_UTF_32_HENTAIGANA_LETTER_HE_6 0x1B0B8 #define T_UTF_32_HENTAIGANA_LETTER_HE_7 0x1B0B9 #define T_UTF_32_HENTAIGANA_LETTER_HO_1 0x1B0BA #define T_UTF_32_HENTAIGANA_LETTER_HO_2 0x1B0BB #define T_UTF_32_HENTAIGANA_LETTER_HO_3 0x1B0BC #define T_UTF_32_HENTAIGANA_LETTER_HO_4 0x1B0BD #define T_UTF_32_HENTAIGANA_LETTER_HO_5 0x1B0BE #define T_UTF_32_HENTAIGANA_LETTER_HO_6 0x1B0BF #define T_UTF_32_HENTAIGANA_LETTER_HO_7 0x1B0C0 #define T_UTF_32_HENTAIGANA_LETTER_HO_8 0x1B0C1 #define T_UTF_32_HENTAIGANA_LETTER_MA_1 0x1B0C2 #define T_UTF_32_HENTAIGANA_LETTER_MA_2 0x1B0C3 #define T_UTF_32_HENTAIGANA_LETTER_MA_3 0x1B0C4 #define T_UTF_32_HENTAIGANA_LETTER_MA_4 0x1B0C5 #define T_UTF_32_HENTAIGANA_LETTER_MA_5 0x1B0C6 #define T_UTF_32_HENTAIGANA_LETTER_MA_6 0x1B0C7 #define T_UTF_32_HENTAIGANA_LETTER_MA_7 0x1B0C8 #define T_UTF_32_HENTAIGANA_LETTER_MI_1 0x1B0C9 #define T_UTF_32_HENTAIGANA_LETTER_MI_2 0x1B0CA #define T_UTF_32_HENTAIGANA_LETTER_MI_3 0x1B0CB #define T_UTF_32_HENTAIGANA_LETTER_MI_4 0x1B0CC #define T_UTF_32_HENTAIGANA_LETTER_MI_5 0x1B0CD #define T_UTF_32_HENTAIGANA_LETTER_MI_6 0x1B0CE #define T_UTF_32_HENTAIGANA_LETTER_MI_7 0x1B0CF #define T_UTF_32_HENTAIGANA_LETTER_MU_1 0x1B0D0 #define T_UTF_32_HENTAIGANA_LETTER_MU_2 0x1B0D1 #define T_UTF_32_HENTAIGANA_LETTER_MU_3 0x1B0D2 #define T_UTF_32_HENTAIGANA_LETTER_MU_4 0x1B0D3 #define T_UTF_32_HENTAIGANA_LETTER_ME_1 0x1B0D4 #define T_UTF_32_HENTAIGANA_LETTER_ME_2 0x1B0D5 #define T_UTF_32_HENTAIGANA_LETTER_ME_MA 0x1B0D6 #define T_UTF_32_HENTAIGANA_LETTER_MO_1 0x1B0D7 #define T_UTF_32_HENTAIGANA_LETTER_MO_2 0x1B0D8 #define T_UTF_32_HENTAIGANA_LETTER_MO_3 0x1B0D9 #define T_UTF_32_HENTAIGANA_LETTER_MO_4 0x1B0DA #define T_UTF_32_HENTAIGANA_LETTER_MO_5 0x1B0DB #define T_UTF_32_HENTAIGANA_LETTER_MO_6 0x1B0DC #define T_UTF_32_HENTAIGANA_LETTER_YA_1 0x1B0DD #define T_UTF_32_HENTAIGANA_LETTER_YA_2 0x1B0DE #define T_UTF_32_HENTAIGANA_LETTER_YA_3 0x1B0DF #define T_UTF_32_HENTAIGANA_LETTER_YA_4 0x1B0E0 #define T_UTF_32_HENTAIGANA_LETTER_YA_5 0x1B0E1 #define T_UTF_32_HENTAIGANA_LETTER_YA_YO 0x1B0E2 #define T_UTF_32_HENTAIGANA_LETTER_YU_1 0x1B0E3 #define T_UTF_32_HENTAIGANA_LETTER_YU_2 0x1B0E4 #define T_UTF_32_HENTAIGANA_LETTER_YU_3 0x1B0E5 #define T_UTF_32_HENTAIGANA_LETTER_YU_4 0x1B0E6 #define T_UTF_32_HENTAIGANA_LETTER_YO_1 0x1B0E7 #define T_UTF_32_HENTAIGANA_LETTER_YO_2 0x1B0E8 #define T_UTF_32_HENTAIGANA_LETTER_YO_3 0x1B0E9 #define T_UTF_32_HENTAIGANA_LETTER_YO_4 0x1B0EA #define T_UTF_32_HENTAIGANA_LETTER_YO_5 0x1B0EB #define T_UTF_32_HENTAIGANA_LETTER_YO_6 0x1B0EC #define T_UTF_32_HENTAIGANA_LETTER_RA_1 0x1B0ED #define T_UTF_32_HENTAIGANA_LETTER_RA_2 0x1B0EE #define T_UTF_32_HENTAIGANA_LETTER_RA_3 0x1B0EF #define T_UTF_32_HENTAIGANA_LETTER_RA_4 0x1B0F0 #define T_UTF_32_HENTAIGANA_LETTER_RI_1 0x1B0F1 #define T_UTF_32_HENTAIGANA_LETTER_RI_2 0x1B0F2 #define T_UTF_32_HENTAIGANA_LETTER_RI_3 0x1B0F3 #define T_UTF_32_HENTAIGANA_LETTER_RI_4 0x1B0F4 #define T_UTF_32_HENTAIGANA_LETTER_RI_5 0x1B0F5 #define T_UTF_32_HENTAIGANA_LETTER_RI_6 0x1B0F6 #define T_UTF_32_HENTAIGANA_LETTER_RI_7 0x1B0F7 #define T_UTF_32_HENTAIGANA_LETTER_RU_1 0x1B0F8 #define T_UTF_32_HENTAIGANA_LETTER_RU_2 0x1B0F9 #define T_UTF_32_HENTAIGANA_LETTER_RU_3 0x1B0FA #define T_UTF_32_HENTAIGANA_LETTER_RU_4 0x1B0FB #define T_UTF_32_HENTAIGANA_LETTER_RU_5 0x1B0FC #define T_UTF_32_HENTAIGANA_LETTER_RU_6 0x1B0FD #define T_UTF_32_HENTAIGANA_LETTER_RE_1 0x1B0FE #define T_UTF_32_HENTAIGANA_LETTER_RE_2 0x1B0FF #define T_UTF_32_HENTAIGANA_LETTER_RE_3 0x1B100 #define T_UTF_32_HENTAIGANA_LETTER_RE_4 0x1B101 #define T_UTF_32_HENTAIGANA_LETTER_RO_1 0x1B102 #define T_UTF_32_HENTAIGANA_LETTER_RO_2 0x1B103 #define T_UTF_32_HENTAIGANA_LETTER_RO_3 0x1B104 #define T_UTF_32_HENTAIGANA_LETTER_RO_4 0x1B105 #define T_UTF_32_HENTAIGANA_LETTER_RO_5 0x1B106 #define T_UTF_32_HENTAIGANA_LETTER_RO_6 0x1B107 #define T_UTF_32_HENTAIGANA_LETTER_WA_1 0x1B108 #define T_UTF_32_HENTAIGANA_LETTER_WA_2 0x1B109 #define T_UTF_32_HENTAIGANA_LETTER_WA_3 0x1B10A #define T_UTF_32_HENTAIGANA_LETTER_WA_4 0x1B10B #define T_UTF_32_HENTAIGANA_LETTER_WA_5 0x1B10C #define T_UTF_32_HENTAIGANA_LETTER_WI_1 0x1B10D #define T_UTF_32_HENTAIGANA_LETTER_WI_2 0x1B10E #define T_UTF_32_HENTAIGANA_LETTER_WI_3 0x1B10F #define T_UTF_32_HENTAIGANA_LETTER_WI_4 0x1B110 #define T_UTF_32_HENTAIGANA_LETTER_WI_5 0x1B111 #define T_UTF_32_HENTAIGANA_LETTER_WE_1 0x1B112 #define T_UTF_32_HENTAIGANA_LETTER_WE_2 0x1B113 #define T_UTF_32_HENTAIGANA_LETTER_WE_3 0x1B114 #define T_UTF_32_HENTAIGANA_LETTER_WE_4 0x1B115 #define T_UTF_32_HENTAIGANA_LETTER_WO_1 0x1B116 #define T_UTF_32_HENTAIGANA_LETTER_WO_2 0x1B117 #define T_UTF_32_HENTAIGANA_LETTER_WO_3 0x1B118 #define T_UTF_32_HENTAIGANA_LETTER_WO_4 0x1B119 #define T_UTF_32_HENTAIGANA_LETTER_WO_5 0x1B11A #define T_UTF_32_HENTAIGANA_LETTER_WO_6 0x1B11B #define T_UTF_32_HENTAIGANA_LETTER_WO_7 0x1B11C #define T_UTF_32_HENTAIGANA_LETTER_N_MU_MO_1 0x1B11D #define T_UTF_32_HENTAIGANA_LETTER_N_MU_MO_2 0x1B11E #define T_UTF_32_NUSHU_CHARACTER_1B170 0x1B170 #define T_UTF_32_NUSHU_CHARACTER_1B171 0x1B171 #define T_UTF_32_NUSHU_CHARACTER_1B172 0x1B172 #define T_UTF_32_NUSHU_CHARACTER_1B173 0x1B173 #define T_UTF_32_NUSHU_CHARACTER_1B174 0x1B174 #define T_UTF_32_NUSHU_CHARACTER_1B175 0x1B175 #define T_UTF_32_NUSHU_CHARACTER_1B176 0x1B176 #define T_UTF_32_NUSHU_CHARACTER_1B177 0x1B177 #define T_UTF_32_NUSHU_CHARACTER_1B178 0x1B178 #define T_UTF_32_NUSHU_CHARACTER_1B179 0x1B179 #define T_UTF_32_NUSHU_CHARACTER_1B17A 0x1B17A #define T_UTF_32_NUSHU_CHARACTER_1B17B 0x1B17B #define T_UTF_32_NUSHU_CHARACTER_1B17C 0x1B17C #define T_UTF_32_NUSHU_CHARACTER_1B17D 0x1B17D #define T_UTF_32_NUSHU_CHARACTER_1B17E 0x1B17E #define T_UTF_32_NUSHU_CHARACTER_1B17F 0x1B17F #define T_UTF_32_NUSHU_CHARACTER_1B180 0x1B180 #define T_UTF_32_NUSHU_CHARACTER_1B181 0x1B181 #define T_UTF_32_NUSHU_CHARACTER_1B182 0x1B182 #define T_UTF_32_NUSHU_CHARACTER_1B183 0x1B183 #define T_UTF_32_NUSHU_CHARACTER_1B184 0x1B184 #define T_UTF_32_NUSHU_CHARACTER_1B185 0x1B185 #define T_UTF_32_NUSHU_CHARACTER_1B186 0x1B186 #define T_UTF_32_NUSHU_CHARACTER_1B187 0x1B187 #define T_UTF_32_NUSHU_CHARACTER_1B188 0x1B188 #define T_UTF_32_NUSHU_CHARACTER_1B189 0x1B189 #define T_UTF_32_NUSHU_CHARACTER_1B18A 0x1B18A #define T_UTF_32_NUSHU_CHARACTER_1B18B 0x1B18B #define T_UTF_32_NUSHU_CHARACTER_1B18C 0x1B18C #define T_UTF_32_NUSHU_CHARACTER_1B18D 0x1B18D #define T_UTF_32_NUSHU_CHARACTER_1B18E 0x1B18E #define T_UTF_32_NUSHU_CHARACTER_1B18F 0x1B18F #define T_UTF_32_NUSHU_CHARACTER_1B190 0x1B190 #define T_UTF_32_NUSHU_CHARACTER_1B191 0x1B191 #define T_UTF_32_NUSHU_CHARACTER_1B192 0x1B192 #define T_UTF_32_NUSHU_CHARACTER_1B193 0x1B193 #define T_UTF_32_NUSHU_CHARACTER_1B194 0x1B194 #define T_UTF_32_NUSHU_CHARACTER_1B195 0x1B195 #define T_UTF_32_NUSHU_CHARACTER_1B196 0x1B196 #define T_UTF_32_NUSHU_CHARACTER_1B197 0x1B197 #define T_UTF_32_NUSHU_CHARACTER_1B198 0x1B198 #define T_UTF_32_NUSHU_CHARACTER_1B199 0x1B199 #define T_UTF_32_NUSHU_CHARACTER_1B19A 0x1B19A #define T_UTF_32_NUSHU_CHARACTER_1B19B 0x1B19B #define T_UTF_32_NUSHU_CHARACTER_1B19C 0x1B19C #define T_UTF_32_NUSHU_CHARACTER_1B19D 0x1B19D #define T_UTF_32_NUSHU_CHARACTER_1B19E 0x1B19E #define T_UTF_32_NUSHU_CHARACTER_1B19F 0x1B19F #define T_UTF_32_NUSHU_CHARACTER_1B1A0 0x1B1A0 #define T_UTF_32_NUSHU_CHARACTER_1B1A1 0x1B1A1 #define T_UTF_32_NUSHU_CHARACTER_1B1A2 0x1B1A2 #define T_UTF_32_NUSHU_CHARACTER_1B1A3 0x1B1A3 #define T_UTF_32_NUSHU_CHARACTER_1B1A4 0x1B1A4 #define T_UTF_32_NUSHU_CHARACTER_1B1A5 0x1B1A5 #define T_UTF_32_NUSHU_CHARACTER_1B1A6 0x1B1A6 #define T_UTF_32_NUSHU_CHARACTER_1B1A7 0x1B1A7 #define T_UTF_32_NUSHU_CHARACTER_1B1A8 0x1B1A8 #define T_UTF_32_NUSHU_CHARACTER_1B1A9 0x1B1A9 #define T_UTF_32_NUSHU_CHARACTER_1B1AA 0x1B1AA #define T_UTF_32_NUSHU_CHARACTER_1B1AB 0x1B1AB #define T_UTF_32_NUSHU_CHARACTER_1B1AC 0x1B1AC #define T_UTF_32_NUSHU_CHARACTER_1B1AD 0x1B1AD #define T_UTF_32_NUSHU_CHARACTER_1B1AE 0x1B1AE #define T_UTF_32_NUSHU_CHARACTER_1B1AF 0x1B1AF #define T_UTF_32_NUSHU_CHARACTER_1B1B0 0x1B1B0 #define T_UTF_32_NUSHU_CHARACTER_1B1B1 0x1B1B1 #define T_UTF_32_NUSHU_CHARACTER_1B1B2 0x1B1B2 #define T_UTF_32_NUSHU_CHARACTER_1B1B3 0x1B1B3 #define T_UTF_32_NUSHU_CHARACTER_1B1B4 0x1B1B4 #define T_UTF_32_NUSHU_CHARACTER_1B1B5 0x1B1B5 #define T_UTF_32_NUSHU_CHARACTER_1B1B6 0x1B1B6 #define T_UTF_32_NUSHU_CHARACTER_1B1B7 0x1B1B7 #define T_UTF_32_NUSHU_CHARACTER_1B1B8 0x1B1B8 #define T_UTF_32_NUSHU_CHARACTER_1B1B9 0x1B1B9 #define T_UTF_32_NUSHU_CHARACTER_1B1BA 0x1B1BA #define T_UTF_32_NUSHU_CHARACTER_1B1BB 0x1B1BB #define T_UTF_32_NUSHU_CHARACTER_1B1BC 0x1B1BC #define T_UTF_32_NUSHU_CHARACTER_1B1BD 0x1B1BD #define T_UTF_32_NUSHU_CHARACTER_1B1BE 0x1B1BE #define T_UTF_32_NUSHU_CHARACTER_1B1BF 0x1B1BF #define T_UTF_32_NUSHU_CHARACTER_1B1C0 0x1B1C0 #define T_UTF_32_NUSHU_CHARACTER_1B1C1 0x1B1C1 #define T_UTF_32_NUSHU_CHARACTER_1B1C2 0x1B1C2 #define T_UTF_32_NUSHU_CHARACTER_1B1C3 0x1B1C3 #define T_UTF_32_NUSHU_CHARACTER_1B1C4 0x1B1C4 #define T_UTF_32_NUSHU_CHARACTER_1B1C5 0x1B1C5 #define T_UTF_32_NUSHU_CHARACTER_1B1C6 0x1B1C6 #define T_UTF_32_NUSHU_CHARACTER_1B1C7 0x1B1C7 #define T_UTF_32_NUSHU_CHARACTER_1B1C8 0x1B1C8 #define T_UTF_32_NUSHU_CHARACTER_1B1C9 0x1B1C9 #define T_UTF_32_NUSHU_CHARACTER_1B1CA 0x1B1CA #define T_UTF_32_NUSHU_CHARACTER_1B1CB 0x1B1CB #define T_UTF_32_NUSHU_CHARACTER_1B1CC 0x1B1CC #define T_UTF_32_NUSHU_CHARACTER_1B1CD 0x1B1CD #define T_UTF_32_NUSHU_CHARACTER_1B1CE 0x1B1CE #define T_UTF_32_NUSHU_CHARACTER_1B1CF 0x1B1CF #define T_UTF_32_NUSHU_CHARACTER_1B1D0 0x1B1D0 #define T_UTF_32_NUSHU_CHARACTER_1B1D1 0x1B1D1 #define T_UTF_32_NUSHU_CHARACTER_1B1D2 0x1B1D2 #define T_UTF_32_NUSHU_CHARACTER_1B1D3 0x1B1D3 #define T_UTF_32_NUSHU_CHARACTER_1B1D4 0x1B1D4 #define T_UTF_32_NUSHU_CHARACTER_1B1D5 0x1B1D5 #define T_UTF_32_NUSHU_CHARACTER_1B1D6 0x1B1D6 #define T_UTF_32_NUSHU_CHARACTER_1B1D7 0x1B1D7 #define T_UTF_32_NUSHU_CHARACTER_1B1D8 0x1B1D8 #define T_UTF_32_NUSHU_CHARACTER_1B1D9 0x1B1D9 #define T_UTF_32_NUSHU_CHARACTER_1B1DA 0x1B1DA #define T_UTF_32_NUSHU_CHARACTER_1B1DB 0x1B1DB #define T_UTF_32_NUSHU_CHARACTER_1B1DC 0x1B1DC #define T_UTF_32_NUSHU_CHARACTER_1B1DD 0x1B1DD #define T_UTF_32_NUSHU_CHARACTER_1B1DE 0x1B1DE #define T_UTF_32_NUSHU_CHARACTER_1B1DF 0x1B1DF #define T_UTF_32_NUSHU_CHARACTER_1B1E0 0x1B1E0 #define T_UTF_32_NUSHU_CHARACTER_1B1E1 0x1B1E1 #define T_UTF_32_NUSHU_CHARACTER_1B1E2 0x1B1E2 #define T_UTF_32_NUSHU_CHARACTER_1B1E3 0x1B1E3 #define T_UTF_32_NUSHU_CHARACTER_1B1E4 0x1B1E4 #define T_UTF_32_NUSHU_CHARACTER_1B1E5 0x1B1E5 #define T_UTF_32_NUSHU_CHARACTER_1B1E6 0x1B1E6 #define T_UTF_32_NUSHU_CHARACTER_1B1E7 0x1B1E7 #define T_UTF_32_NUSHU_CHARACTER_1B1E8 0x1B1E8 #define T_UTF_32_NUSHU_CHARACTER_1B1E9 0x1B1E9 #define T_UTF_32_NUSHU_CHARACTER_1B1EA 0x1B1EA #define T_UTF_32_NUSHU_CHARACTER_1B1EB 0x1B1EB #define T_UTF_32_NUSHU_CHARACTER_1B1EC 0x1B1EC #define T_UTF_32_NUSHU_CHARACTER_1B1ED 0x1B1ED #define T_UTF_32_NUSHU_CHARACTER_1B1EE 0x1B1EE #define T_UTF_32_NUSHU_CHARACTER_1B1EF 0x1B1EF #define T_UTF_32_NUSHU_CHARACTER_1B1F0 0x1B1F0 #define T_UTF_32_NUSHU_CHARACTER_1B1F1 0x1B1F1 #define T_UTF_32_NUSHU_CHARACTER_1B1F2 0x1B1F2 #define T_UTF_32_NUSHU_CHARACTER_1B1F3 0x1B1F3 #define T_UTF_32_NUSHU_CHARACTER_1B1F4 0x1B1F4 #define T_UTF_32_NUSHU_CHARACTER_1B1F5 0x1B1F5 #define T_UTF_32_NUSHU_CHARACTER_1B1F6 0x1B1F6 #define T_UTF_32_NUSHU_CHARACTER_1B1F7 0x1B1F7 #define T_UTF_32_NUSHU_CHARACTER_1B1F8 0x1B1F8 #define T_UTF_32_NUSHU_CHARACTER_1B1F9 0x1B1F9 #define T_UTF_32_NUSHU_CHARACTER_1B1FA 0x1B1FA #define T_UTF_32_NUSHU_CHARACTER_1B1FB 0x1B1FB #define T_UTF_32_NUSHU_CHARACTER_1B1FC 0x1B1FC #define T_UTF_32_NUSHU_CHARACTER_1B1FD 0x1B1FD #define T_UTF_32_NUSHU_CHARACTER_1B1FE 0x1B1FE #define T_UTF_32_NUSHU_CHARACTER_1B1FF 0x1B1FF #define T_UTF_32_NUSHU_CHARACTER_1B200 0x1B200 #define T_UTF_32_NUSHU_CHARACTER_1B201 0x1B201 #define T_UTF_32_NUSHU_CHARACTER_1B202 0x1B202 #define T_UTF_32_NUSHU_CHARACTER_1B203 0x1B203 #define T_UTF_32_NUSHU_CHARACTER_1B204 0x1B204 #define T_UTF_32_NUSHU_CHARACTER_1B205 0x1B205 #define T_UTF_32_NUSHU_CHARACTER_1B206 0x1B206 #define T_UTF_32_NUSHU_CHARACTER_1B207 0x1B207 #define T_UTF_32_NUSHU_CHARACTER_1B208 0x1B208 #define T_UTF_32_NUSHU_CHARACTER_1B209 0x1B209 #define T_UTF_32_NUSHU_CHARACTER_1B20A 0x1B20A #define T_UTF_32_NUSHU_CHARACTER_1B20B 0x1B20B #define T_UTF_32_NUSHU_CHARACTER_1B20C 0x1B20C #define T_UTF_32_NUSHU_CHARACTER_1B20D 0x1B20D #define T_UTF_32_NUSHU_CHARACTER_1B20E 0x1B20E #define T_UTF_32_NUSHU_CHARACTER_1B20F 0x1B20F #define T_UTF_32_NUSHU_CHARACTER_1B210 0x1B210 #define T_UTF_32_NUSHU_CHARACTER_1B211 0x1B211 #define T_UTF_32_NUSHU_CHARACTER_1B212 0x1B212 #define T_UTF_32_NUSHU_CHARACTER_1B213 0x1B213 #define T_UTF_32_NUSHU_CHARACTER_1B214 0x1B214 #define T_UTF_32_NUSHU_CHARACTER_1B215 0x1B215 #define T_UTF_32_NUSHU_CHARACTER_1B216 0x1B216 #define T_UTF_32_NUSHU_CHARACTER_1B217 0x1B217 #define T_UTF_32_NUSHU_CHARACTER_1B218 0x1B218 #define T_UTF_32_NUSHU_CHARACTER_1B219 0x1B219 #define T_UTF_32_NUSHU_CHARACTER_1B21A 0x1B21A #define T_UTF_32_NUSHU_CHARACTER_1B21B 0x1B21B #define T_UTF_32_NUSHU_CHARACTER_1B21C 0x1B21C #define T_UTF_32_NUSHU_CHARACTER_1B21D 0x1B21D #define T_UTF_32_NUSHU_CHARACTER_1B21E 0x1B21E #define T_UTF_32_NUSHU_CHARACTER_1B21F 0x1B21F #define T_UTF_32_NUSHU_CHARACTER_1B220 0x1B220 #define T_UTF_32_NUSHU_CHARACTER_1B221 0x1B221 #define T_UTF_32_NUSHU_CHARACTER_1B222 0x1B222 #define T_UTF_32_NUSHU_CHARACTER_1B223 0x1B223 #define T_UTF_32_NUSHU_CHARACTER_1B224 0x1B224 #define T_UTF_32_NUSHU_CHARACTER_1B225 0x1B225 #define T_UTF_32_NUSHU_CHARACTER_1B226 0x1B226 #define T_UTF_32_NUSHU_CHARACTER_1B227 0x1B227 #define T_UTF_32_NUSHU_CHARACTER_1B228 0x1B228 #define T_UTF_32_NUSHU_CHARACTER_1B229 0x1B229 #define T_UTF_32_NUSHU_CHARACTER_1B22A 0x1B22A #define T_UTF_32_NUSHU_CHARACTER_1B22B 0x1B22B #define T_UTF_32_NUSHU_CHARACTER_1B22C 0x1B22C #define T_UTF_32_NUSHU_CHARACTER_1B22D 0x1B22D #define T_UTF_32_NUSHU_CHARACTER_1B22E 0x1B22E #define T_UTF_32_NUSHU_CHARACTER_1B22F 0x1B22F #define T_UTF_32_NUSHU_CHARACTER_1B230 0x1B230 #define T_UTF_32_NUSHU_CHARACTER_1B231 0x1B231 #define T_UTF_32_NUSHU_CHARACTER_1B232 0x1B232 #define T_UTF_32_NUSHU_CHARACTER_1B233 0x1B233 #define T_UTF_32_NUSHU_CHARACTER_1B234 0x1B234 #define T_UTF_32_NUSHU_CHARACTER_1B235 0x1B235 #define T_UTF_32_NUSHU_CHARACTER_1B236 0x1B236 #define T_UTF_32_NUSHU_CHARACTER_1B237 0x1B237 #define T_UTF_32_NUSHU_CHARACTER_1B238 0x1B238 #define T_UTF_32_NUSHU_CHARACTER_1B239 0x1B239 #define T_UTF_32_NUSHU_CHARACTER_1B23A 0x1B23A #define T_UTF_32_NUSHU_CHARACTER_1B23B 0x1B23B #define T_UTF_32_NUSHU_CHARACTER_1B23C 0x1B23C #define T_UTF_32_NUSHU_CHARACTER_1B23D 0x1B23D #define T_UTF_32_NUSHU_CHARACTER_1B23E 0x1B23E #define T_UTF_32_NUSHU_CHARACTER_1B23F 0x1B23F #define T_UTF_32_NUSHU_CHARACTER_1B240 0x1B240 #define T_UTF_32_NUSHU_CHARACTER_1B241 0x1B241 #define T_UTF_32_NUSHU_CHARACTER_1B242 0x1B242 #define T_UTF_32_NUSHU_CHARACTER_1B243 0x1B243 #define T_UTF_32_NUSHU_CHARACTER_1B244 0x1B244 #define T_UTF_32_NUSHU_CHARACTER_1B245 0x1B245 #define T_UTF_32_NUSHU_CHARACTER_1B246 0x1B246 #define T_UTF_32_NUSHU_CHARACTER_1B247 0x1B247 #define T_UTF_32_NUSHU_CHARACTER_1B248 0x1B248 #define T_UTF_32_NUSHU_CHARACTER_1B249 0x1B249 #define T_UTF_32_NUSHU_CHARACTER_1B24A 0x1B24A #define T_UTF_32_NUSHU_CHARACTER_1B24B 0x1B24B #define T_UTF_32_NUSHU_CHARACTER_1B24C 0x1B24C #define T_UTF_32_NUSHU_CHARACTER_1B24D 0x1B24D #define T_UTF_32_NUSHU_CHARACTER_1B24E 0x1B24E #define T_UTF_32_NUSHU_CHARACTER_1B24F 0x1B24F #define T_UTF_32_NUSHU_CHARACTER_1B250 0x1B250 #define T_UTF_32_NUSHU_CHARACTER_1B251 0x1B251 #define T_UTF_32_NUSHU_CHARACTER_1B252 0x1B252 #define T_UTF_32_NUSHU_CHARACTER_1B253 0x1B253 #define T_UTF_32_NUSHU_CHARACTER_1B254 0x1B254 #define T_UTF_32_NUSHU_CHARACTER_1B255 0x1B255 #define T_UTF_32_NUSHU_CHARACTER_1B256 0x1B256 #define T_UTF_32_NUSHU_CHARACTER_1B257 0x1B257 #define T_UTF_32_NUSHU_CHARACTER_1B258 0x1B258 #define T_UTF_32_NUSHU_CHARACTER_1B259 0x1B259 #define T_UTF_32_NUSHU_CHARACTER_1B25A 0x1B25A #define T_UTF_32_NUSHU_CHARACTER_1B25B 0x1B25B #define T_UTF_32_NUSHU_CHARACTER_1B25C 0x1B25C #define T_UTF_32_NUSHU_CHARACTER_1B25D 0x1B25D #define T_UTF_32_NUSHU_CHARACTER_1B25E 0x1B25E #define T_UTF_32_NUSHU_CHARACTER_1B25F 0x1B25F #define T_UTF_32_NUSHU_CHARACTER_1B260 0x1B260 #define T_UTF_32_NUSHU_CHARACTER_1B261 0x1B261 #define T_UTF_32_NUSHU_CHARACTER_1B262 0x1B262 #define T_UTF_32_NUSHU_CHARACTER_1B263 0x1B263 #define T_UTF_32_NUSHU_CHARACTER_1B264 0x1B264 #define T_UTF_32_NUSHU_CHARACTER_1B265 0x1B265 #define T_UTF_32_NUSHU_CHARACTER_1B266 0x1B266 #define T_UTF_32_NUSHU_CHARACTER_1B267 0x1B267 #define T_UTF_32_NUSHU_CHARACTER_1B268 0x1B268 #define T_UTF_32_NUSHU_CHARACTER_1B269 0x1B269 #define T_UTF_32_NUSHU_CHARACTER_1B26A 0x1B26A #define T_UTF_32_NUSHU_CHARACTER_1B26B 0x1B26B #define T_UTF_32_NUSHU_CHARACTER_1B26C 0x1B26C #define T_UTF_32_NUSHU_CHARACTER_1B26D 0x1B26D #define T_UTF_32_NUSHU_CHARACTER_1B26E 0x1B26E #define T_UTF_32_NUSHU_CHARACTER_1B26F 0x1B26F #define T_UTF_32_NUSHU_CHARACTER_1B270 0x1B270 #define T_UTF_32_NUSHU_CHARACTER_1B271 0x1B271 #define T_UTF_32_NUSHU_CHARACTER_1B272 0x1B272 #define T_UTF_32_NUSHU_CHARACTER_1B273 0x1B273 #define T_UTF_32_NUSHU_CHARACTER_1B274 0x1B274 #define T_UTF_32_NUSHU_CHARACTER_1B275 0x1B275 #define T_UTF_32_NUSHU_CHARACTER_1B276 0x1B276 #define T_UTF_32_NUSHU_CHARACTER_1B277 0x1B277 #define T_UTF_32_NUSHU_CHARACTER_1B278 0x1B278 #define T_UTF_32_NUSHU_CHARACTER_1B279 0x1B279 #define T_UTF_32_NUSHU_CHARACTER_1B27A 0x1B27A #define T_UTF_32_NUSHU_CHARACTER_1B27B 0x1B27B #define T_UTF_32_NUSHU_CHARACTER_1B27C 0x1B27C #define T_UTF_32_NUSHU_CHARACTER_1B27D 0x1B27D #define T_UTF_32_NUSHU_CHARACTER_1B27E 0x1B27E #define T_UTF_32_NUSHU_CHARACTER_1B27F 0x1B27F #define T_UTF_32_NUSHU_CHARACTER_1B280 0x1B280 #define T_UTF_32_NUSHU_CHARACTER_1B281 0x1B281 #define T_UTF_32_NUSHU_CHARACTER_1B282 0x1B282 #define T_UTF_32_NUSHU_CHARACTER_1B283 0x1B283 #define T_UTF_32_NUSHU_CHARACTER_1B284 0x1B284 #define T_UTF_32_NUSHU_CHARACTER_1B285 0x1B285 #define T_UTF_32_NUSHU_CHARACTER_1B286 0x1B286 #define T_UTF_32_NUSHU_CHARACTER_1B287 0x1B287 #define T_UTF_32_NUSHU_CHARACTER_1B288 0x1B288 #define T_UTF_32_NUSHU_CHARACTER_1B289 0x1B289 #define T_UTF_32_NUSHU_CHARACTER_1B28A 0x1B28A #define T_UTF_32_NUSHU_CHARACTER_1B28B 0x1B28B #define T_UTF_32_NUSHU_CHARACTER_1B28C 0x1B28C #define T_UTF_32_NUSHU_CHARACTER_1B28D 0x1B28D #define T_UTF_32_NUSHU_CHARACTER_1B28E 0x1B28E #define T_UTF_32_NUSHU_CHARACTER_1B28F 0x1B28F #define T_UTF_32_NUSHU_CHARACTER_1B290 0x1B290 #define T_UTF_32_NUSHU_CHARACTER_1B291 0x1B291 #define T_UTF_32_NUSHU_CHARACTER_1B292 0x1B292 #define T_UTF_32_NUSHU_CHARACTER_1B293 0x1B293 #define T_UTF_32_NUSHU_CHARACTER_1B294 0x1B294 #define T_UTF_32_NUSHU_CHARACTER_1B295 0x1B295 #define T_UTF_32_NUSHU_CHARACTER_1B296 0x1B296 #define T_UTF_32_NUSHU_CHARACTER_1B297 0x1B297 #define T_UTF_32_NUSHU_CHARACTER_1B298 0x1B298 #define T_UTF_32_NUSHU_CHARACTER_1B299 0x1B299 #define T_UTF_32_NUSHU_CHARACTER_1B29A 0x1B29A #define T_UTF_32_NUSHU_CHARACTER_1B29B 0x1B29B #define T_UTF_32_NUSHU_CHARACTER_1B29C 0x1B29C #define T_UTF_32_NUSHU_CHARACTER_1B29D 0x1B29D #define T_UTF_32_NUSHU_CHARACTER_1B29E 0x1B29E #define T_UTF_32_NUSHU_CHARACTER_1B29F 0x1B29F #define T_UTF_32_NUSHU_CHARACTER_1B2A0 0x1B2A0 #define T_UTF_32_NUSHU_CHARACTER_1B2A1 0x1B2A1 #define T_UTF_32_NUSHU_CHARACTER_1B2A2 0x1B2A2 #define T_UTF_32_NUSHU_CHARACTER_1B2A3 0x1B2A3 #define T_UTF_32_NUSHU_CHARACTER_1B2A4 0x1B2A4 #define T_UTF_32_NUSHU_CHARACTER_1B2A5 0x1B2A5 #define T_UTF_32_NUSHU_CHARACTER_1B2A6 0x1B2A6 #define T_UTF_32_NUSHU_CHARACTER_1B2A7 0x1B2A7 #define T_UTF_32_NUSHU_CHARACTER_1B2A8 0x1B2A8 #define T_UTF_32_NUSHU_CHARACTER_1B2A9 0x1B2A9 #define T_UTF_32_NUSHU_CHARACTER_1B2AA 0x1B2AA #define T_UTF_32_NUSHU_CHARACTER_1B2AB 0x1B2AB #define T_UTF_32_NUSHU_CHARACTER_1B2AC 0x1B2AC #define T_UTF_32_NUSHU_CHARACTER_1B2AD 0x1B2AD #define T_UTF_32_NUSHU_CHARACTER_1B2AE 0x1B2AE #define T_UTF_32_NUSHU_CHARACTER_1B2AF 0x1B2AF #define T_UTF_32_NUSHU_CHARACTER_1B2B0 0x1B2B0 #define T_UTF_32_NUSHU_CHARACTER_1B2B1 0x1B2B1 #define T_UTF_32_NUSHU_CHARACTER_1B2B2 0x1B2B2 #define T_UTF_32_NUSHU_CHARACTER_1B2B3 0x1B2B3 #define T_UTF_32_NUSHU_CHARACTER_1B2B4 0x1B2B4 #define T_UTF_32_NUSHU_CHARACTER_1B2B5 0x1B2B5 #define T_UTF_32_NUSHU_CHARACTER_1B2B6 0x1B2B6 #define T_UTF_32_NUSHU_CHARACTER_1B2B7 0x1B2B7 #define T_UTF_32_NUSHU_CHARACTER_1B2B8 0x1B2B8 #define T_UTF_32_NUSHU_CHARACTER_1B2B9 0x1B2B9 #define T_UTF_32_NUSHU_CHARACTER_1B2BA 0x1B2BA #define T_UTF_32_NUSHU_CHARACTER_1B2BB 0x1B2BB #define T_UTF_32_NUSHU_CHARACTER_1B2BC 0x1B2BC #define T_UTF_32_NUSHU_CHARACTER_1B2BD 0x1B2BD #define T_UTF_32_NUSHU_CHARACTER_1B2BE 0x1B2BE #define T_UTF_32_NUSHU_CHARACTER_1B2BF 0x1B2BF #define T_UTF_32_NUSHU_CHARACTER_1B2C0 0x1B2C0 #define T_UTF_32_NUSHU_CHARACTER_1B2C1 0x1B2C1 #define T_UTF_32_NUSHU_CHARACTER_1B2C2 0x1B2C2 #define T_UTF_32_NUSHU_CHARACTER_1B2C3 0x1B2C3 #define T_UTF_32_NUSHU_CHARACTER_1B2C4 0x1B2C4 #define T_UTF_32_NUSHU_CHARACTER_1B2C5 0x1B2C5 #define T_UTF_32_NUSHU_CHARACTER_1B2C6 0x1B2C6 #define T_UTF_32_NUSHU_CHARACTER_1B2C7 0x1B2C7 #define T_UTF_32_NUSHU_CHARACTER_1B2C8 0x1B2C8 #define T_UTF_32_NUSHU_CHARACTER_1B2C9 0x1B2C9 #define T_UTF_32_NUSHU_CHARACTER_1B2CA 0x1B2CA #define T_UTF_32_NUSHU_CHARACTER_1B2CB 0x1B2CB #define T_UTF_32_NUSHU_CHARACTER_1B2CC 0x1B2CC #define T_UTF_32_NUSHU_CHARACTER_1B2CD 0x1B2CD #define T_UTF_32_NUSHU_CHARACTER_1B2CE 0x1B2CE #define T_UTF_32_NUSHU_CHARACTER_1B2CF 0x1B2CF #define T_UTF_32_NUSHU_CHARACTER_1B2D0 0x1B2D0 #define T_UTF_32_NUSHU_CHARACTER_1B2D1 0x1B2D1 #define T_UTF_32_NUSHU_CHARACTER_1B2D2 0x1B2D2 #define T_UTF_32_NUSHU_CHARACTER_1B2D3 0x1B2D3 #define T_UTF_32_NUSHU_CHARACTER_1B2D4 0x1B2D4 #define T_UTF_32_NUSHU_CHARACTER_1B2D5 0x1B2D5 #define T_UTF_32_NUSHU_CHARACTER_1B2D6 0x1B2D6 #define T_UTF_32_NUSHU_CHARACTER_1B2D7 0x1B2D7 #define T_UTF_32_NUSHU_CHARACTER_1B2D8 0x1B2D8 #define T_UTF_32_NUSHU_CHARACTER_1B2D9 0x1B2D9 #define T_UTF_32_NUSHU_CHARACTER_1B2DA 0x1B2DA #define T_UTF_32_NUSHU_CHARACTER_1B2DB 0x1B2DB #define T_UTF_32_NUSHU_CHARACTER_1B2DC 0x1B2DC #define T_UTF_32_NUSHU_CHARACTER_1B2DD 0x1B2DD #define T_UTF_32_NUSHU_CHARACTER_1B2DE 0x1B2DE #define T_UTF_32_NUSHU_CHARACTER_1B2DF 0x1B2DF #define T_UTF_32_NUSHU_CHARACTER_1B2E0 0x1B2E0 #define T_UTF_32_NUSHU_CHARACTER_1B2E1 0x1B2E1 #define T_UTF_32_NUSHU_CHARACTER_1B2E2 0x1B2E2 #define T_UTF_32_NUSHU_CHARACTER_1B2E3 0x1B2E3 #define T_UTF_32_NUSHU_CHARACTER_1B2E4 0x1B2E4 #define T_UTF_32_NUSHU_CHARACTER_1B2E5 0x1B2E5 #define T_UTF_32_NUSHU_CHARACTER_1B2E6 0x1B2E6 #define T_UTF_32_NUSHU_CHARACTER_1B2E7 0x1B2E7 #define T_UTF_32_NUSHU_CHARACTER_1B2E8 0x1B2E8 #define T_UTF_32_NUSHU_CHARACTER_1B2E9 0x1B2E9 #define T_UTF_32_NUSHU_CHARACTER_1B2EA 0x1B2EA #define T_UTF_32_NUSHU_CHARACTER_1B2EB 0x1B2EB #define T_UTF_32_NUSHU_CHARACTER_1B2EC 0x1B2EC #define T_UTF_32_NUSHU_CHARACTER_1B2ED 0x1B2ED #define T_UTF_32_NUSHU_CHARACTER_1B2EE 0x1B2EE #define T_UTF_32_NUSHU_CHARACTER_1B2EF 0x1B2EF #define T_UTF_32_NUSHU_CHARACTER_1B2F0 0x1B2F0 #define T_UTF_32_NUSHU_CHARACTER_1B2F1 0x1B2F1 #define T_UTF_32_NUSHU_CHARACTER_1B2F2 0x1B2F2 #define T_UTF_32_NUSHU_CHARACTER_1B2F3 0x1B2F3 #define T_UTF_32_NUSHU_CHARACTER_1B2F4 0x1B2F4 #define T_UTF_32_NUSHU_CHARACTER_1B2F5 0x1B2F5 #define T_UTF_32_NUSHU_CHARACTER_1B2F6 0x1B2F6 #define T_UTF_32_NUSHU_CHARACTER_1B2F7 0x1B2F7 #define T_UTF_32_NUSHU_CHARACTER_1B2F8 0x1B2F8 #define T_UTF_32_NUSHU_CHARACTER_1B2F9 0x1B2F9 #define T_UTF_32_NUSHU_CHARACTER_1B2FA 0x1B2FA #define T_UTF_32_NUSHU_CHARACTER_1B2FB 0x1B2FB #define T_UTF_32_DUPLOYAN_LETTER_H 0x1BC00 #define T_UTF_32_DUPLOYAN_LETTER_X 0x1BC01 #define T_UTF_32_DUPLOYAN_LETTER_P 0x1BC02 #define T_UTF_32_DUPLOYAN_LETTER_T 0x1BC03 #define T_UTF_32_DUPLOYAN_LETTER_F 0x1BC04 #define T_UTF_32_DUPLOYAN_LETTER_K 0x1BC05 #define T_UTF_32_DUPLOYAN_LETTER_L 0x1BC06 #define T_UTF_32_DUPLOYAN_LETTER_B 0x1BC07 #define T_UTF_32_DUPLOYAN_LETTER_D 0x1BC08 #define T_UTF_32_DUPLOYAN_LETTER_V 0x1BC09 #define T_UTF_32_DUPLOYAN_LETTER_G 0x1BC0A #define T_UTF_32_DUPLOYAN_LETTER_R 0x1BC0B #define T_UTF_32_DUPLOYAN_LETTER_P_N 0x1BC0C #define T_UTF_32_DUPLOYAN_LETTER_D_S 0x1BC0D #define T_UTF_32_DUPLOYAN_LETTER_F_N 0x1BC0E #define T_UTF_32_DUPLOYAN_LETTER_K_M 0x1BC0F #define T_UTF_32_DUPLOYAN_LETTER_R_S 0x1BC10 #define T_UTF_32_DUPLOYAN_LETTER_TH 0x1BC11 #define T_UTF_32_DUPLOYAN_LETTER_SLOAN_DH 0x1BC12 #define T_UTF_32_DUPLOYAN_LETTER_DH 0x1BC13 #define T_UTF_32_DUPLOYAN_LETTER_KK 0x1BC14 #define T_UTF_32_DUPLOYAN_LETTER_SLOAN_J 0x1BC15 #define T_UTF_32_DUPLOYAN_LETTER_HL 0x1BC16 #define T_UTF_32_DUPLOYAN_LETTER_LH 0x1BC17 #define T_UTF_32_DUPLOYAN_LETTER_RH 0x1BC18 #define T_UTF_32_DUPLOYAN_LETTER_M 0x1BC19 #define T_UTF_32_DUPLOYAN_LETTER_N 0x1BC1A #define T_UTF_32_DUPLOYAN_LETTER_J 0x1BC1B #define T_UTF_32_DUPLOYAN_LETTER_S 0x1BC1C #define T_UTF_32_DUPLOYAN_LETTER_M_N 0x1BC1D #define T_UTF_32_DUPLOYAN_LETTER_N_M 0x1BC1E #define T_UTF_32_DUPLOYAN_LETTER_J_M 0x1BC1F #define T_UTF_32_DUPLOYAN_LETTER_S_J 0x1BC20 #define T_UTF_32_DUPLOYAN_LETTER_M_WITH_DOT 0x1BC21 #define T_UTF_32_DUPLOYAN_LETTER_N_WITH_DOT 0x1BC22 #define T_UTF_32_DUPLOYAN_LETTER_J_WITH_DOT 0x1BC23 #define T_UTF_32_DUPLOYAN_LETTER_J_WITH_DOTS_INSIDE_AND_ABOVE 0x1BC24 #define T_UTF_32_DUPLOYAN_LETTER_S_WITH_DOT 0x1BC25 #define T_UTF_32_DUPLOYAN_LETTER_S_WITH_DOT_BELOW 0x1BC26 #define T_UTF_32_DUPLOYAN_LETTER_M_S 0x1BC27 #define T_UTF_32_DUPLOYAN_LETTER_N_S 0x1BC28 #define T_UTF_32_DUPLOYAN_LETTER_J_S 0x1BC29 #define T_UTF_32_DUPLOYAN_LETTER_S_S 0x1BC2A #define T_UTF_32_DUPLOYAN_LETTER_M_N_S 0x1BC2B #define T_UTF_32_DUPLOYAN_LETTER_N_M_S 0x1BC2C #define T_UTF_32_DUPLOYAN_LETTER_J_M_S 0x1BC2D #define T_UTF_32_DUPLOYAN_LETTER_S_J_S 0x1BC2E #define T_UTF_32_DUPLOYAN_LETTER_J_S_WITH_DOT 0x1BC2F #define T_UTF_32_DUPLOYAN_LETTER_J_N 0x1BC30 #define T_UTF_32_DUPLOYAN_LETTER_J_N_S 0x1BC31 #define T_UTF_32_DUPLOYAN_LETTER_S_T 0x1BC32 #define T_UTF_32_DUPLOYAN_LETTER_S_T_R 0x1BC33 #define T_UTF_32_DUPLOYAN_LETTER_S_P 0x1BC34 #define T_UTF_32_DUPLOYAN_LETTER_S_P_R 0x1BC35 #define T_UTF_32_DUPLOYAN_LETTER_T_S 0x1BC36 #define T_UTF_32_DUPLOYAN_LETTER_T_R_S 0x1BC37 #define T_UTF_32_DUPLOYAN_LETTER_W 0x1BC38 #define T_UTF_32_DUPLOYAN_LETTER_WH 0x1BC39 #define T_UTF_32_DUPLOYAN_LETTER_W_R 0x1BC3A #define T_UTF_32_DUPLOYAN_LETTER_S_N 0x1BC3B #define T_UTF_32_DUPLOYAN_LETTER_S_M 0x1BC3C #define T_UTF_32_DUPLOYAN_LETTER_K_R_S 0x1BC3D #define T_UTF_32_DUPLOYAN_LETTER_G_R_S 0x1BC3E #define T_UTF_32_DUPLOYAN_LETTER_S_K 0x1BC3F #define T_UTF_32_DUPLOYAN_LETTER_S_K_R 0x1BC40 #define T_UTF_32_DUPLOYAN_LETTER_A 0x1BC41 #define T_UTF_32_DUPLOYAN_LETTER_SLOAN_OW 0x1BC42 #define T_UTF_32_DUPLOYAN_LETTER_OA 0x1BC43 #define T_UTF_32_DUPLOYAN_LETTER_O 0x1BC44 #define T_UTF_32_DUPLOYAN_LETTER_AOU 0x1BC45 #define T_UTF_32_DUPLOYAN_LETTER_I 0x1BC46 #define T_UTF_32_DUPLOYAN_LETTER_E 0x1BC47 #define T_UTF_32_DUPLOYAN_LETTER_IE 0x1BC48 #define T_UTF_32_DUPLOYAN_LETTER_SHORT_I 0x1BC49 #define T_UTF_32_DUPLOYAN_LETTER_UI 0x1BC4A #define T_UTF_32_DUPLOYAN_LETTER_EE 0x1BC4B #define T_UTF_32_DUPLOYAN_LETTER_SLOAN_EH 0x1BC4C #define T_UTF_32_DUPLOYAN_LETTER_ROMANIAN_I 0x1BC4D #define T_UTF_32_DUPLOYAN_LETTER_SLOAN_EE 0x1BC4E #define T_UTF_32_DUPLOYAN_LETTER_LONG_I 0x1BC4F #define T_UTF_32_DUPLOYAN_LETTER_YE 0x1BC50 #define T_UTF_32_DUPLOYAN_LETTER_U 0x1BC51 #define T_UTF_32_DUPLOYAN_LETTER_EU 0x1BC52 #define T_UTF_32_DUPLOYAN_LETTER_XW 0x1BC53 #define T_UTF_32_DUPLOYAN_LETTER_U_N 0x1BC54 #define T_UTF_32_DUPLOYAN_LETTER_LONG_U 0x1BC55 #define T_UTF_32_DUPLOYAN_LETTER_ROMANIAN_U 0x1BC56 #define T_UTF_32_DUPLOYAN_LETTER_UH 0x1BC57 #define T_UTF_32_DUPLOYAN_LETTER_SLOAN_U 0x1BC58 #define T_UTF_32_DUPLOYAN_LETTER_OOH 0x1BC59 #define T_UTF_32_DUPLOYAN_LETTER_OW 0x1BC5A #define T_UTF_32_DUPLOYAN_LETTER_OU 0x1BC5B #define T_UTF_32_DUPLOYAN_LETTER_WA 0x1BC5C #define T_UTF_32_DUPLOYAN_LETTER_WO 0x1BC5D #define T_UTF_32_DUPLOYAN_LETTER_WI 0x1BC5E #define T_UTF_32_DUPLOYAN_LETTER_WEI 0x1BC5F #define T_UTF_32_DUPLOYAN_LETTER_WOW 0x1BC60 #define T_UTF_32_DUPLOYAN_LETTER_NASAL_U 0x1BC61 #define T_UTF_32_DUPLOYAN_LETTER_NASAL_O 0x1BC62 #define T_UTF_32_DUPLOYAN_LETTER_NASAL_I 0x1BC63 #define T_UTF_32_DUPLOYAN_LETTER_NASAL_A 0x1BC64 #define T_UTF_32_DUPLOYAN_LETTER_PERNIN_AN 0x1BC65 #define T_UTF_32_DUPLOYAN_LETTER_PERNIN_AM 0x1BC66 #define T_UTF_32_DUPLOYAN_LETTER_SLOAN_EN 0x1BC67 #define T_UTF_32_DUPLOYAN_LETTER_SLOAN_AN 0x1BC68 #define T_UTF_32_DUPLOYAN_LETTER_SLOAN_ON 0x1BC69 #define T_UTF_32_DUPLOYAN_LETTER_VOCALIC_M 0x1BC6A #define T_UTF_32_DUPLOYAN_AFFIX_LEFT_HORIZONTAL_SECANT 0x1BC70 #define T_UTF_32_DUPLOYAN_AFFIX_MID_HORIZONTAL_SECANT 0x1BC71 #define T_UTF_32_DUPLOYAN_AFFIX_RIGHT_HORIZONTAL_SECANT 0x1BC72 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_VERTICAL_SECANT 0x1BC73 #define T_UTF_32_DUPLOYAN_AFFIX_MID_VERTICAL_SECANT 0x1BC74 #define T_UTF_32_DUPLOYAN_AFFIX_HIGH_VERTICAL_SECANT 0x1BC75 #define T_UTF_32_DUPLOYAN_AFFIX_ATTACHED_SECANT 0x1BC76 #define T_UTF_32_DUPLOYAN_AFFIX_ATTACHED_LEFT_TO_RIGHT_SECANT 0x1BC77 #define T_UTF_32_DUPLOYAN_AFFIX_ATTACHED_TANGENT 0x1BC78 #define T_UTF_32_DUPLOYAN_AFFIX_ATTACHED_TAIL 0x1BC79 #define T_UTF_32_DUPLOYAN_AFFIX_ATTACHED_E_HOOK 0x1BC7A #define T_UTF_32_DUPLOYAN_AFFIX_ATTACHED_I_HOOK 0x1BC7B #define T_UTF_32_DUPLOYAN_AFFIX_ATTACHED_TANGENT_HOOK 0x1BC7C #define T_UTF_32_DUPLOYAN_AFFIX_HIGH_ACUTE 0x1BC80 #define T_UTF_32_DUPLOYAN_AFFIX_HIGH_TIGHT_ACUTE 0x1BC81 #define T_UTF_32_DUPLOYAN_AFFIX_HIGH_GRAVE 0x1BC82 #define T_UTF_32_DUPLOYAN_AFFIX_HIGH_LONG_GRAVE 0x1BC83 #define T_UTF_32_DUPLOYAN_AFFIX_HIGH_DOT 0x1BC84 #define T_UTF_32_DUPLOYAN_AFFIX_HIGH_CIRCLE 0x1BC85 #define T_UTF_32_DUPLOYAN_AFFIX_HIGH_LINE 0x1BC86 #define T_UTF_32_DUPLOYAN_AFFIX_HIGH_WAVE 0x1BC87 #define T_UTF_32_DUPLOYAN_AFFIX_HIGH_VERTICAL 0x1BC88 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_ACUTE 0x1BC90 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_TIGHT_ACUTE 0x1BC91 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_GRAVE 0x1BC92 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_LONG_GRAVE 0x1BC93 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_DOT 0x1BC94 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_CIRCLE 0x1BC95 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_LINE 0x1BC96 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_WAVE 0x1BC97 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_VERTICAL 0x1BC98 #define T_UTF_32_DUPLOYAN_AFFIX_LOW_ARROW 0x1BC99 #define T_UTF_32_DUPLOYAN_SIGN_O_WITH_CROSS 0x1BC9C #define T_UTF_32_DUPLOYAN_THICK_LETTER_SELECTOR 0x1BC9D #define T_UTF_32_DUPLOYAN_DOUBLE_MARK 0x1BC9E #define T_UTF_32_DUPLOYAN_PUNCTUATION_CHINOOK_FULL_STOP 0x1BC9F #define T_UTF_32_SHORTHAND_FORMAT_LETTER_OVERLAP 0x1BCA0 #define T_UTF_32_SHORTHAND_FORMAT_CONTINUING_OVERLAP 0x1BCA1 #define T_UTF_32_SHORTHAND_FORMAT_DOWN_STEP 0x1BCA2 #define T_UTF_32_SHORTHAND_FORMAT_UP_STEP 0x1BCA3 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PSILI 0x1D000 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DASEIA 0x1D001 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PERISPOMENI 0x1D002 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_OXEIA_EKFONITIKON 0x1D003 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_OXEIA_DIPLI 0x1D004 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_VAREIA_EKFONITIKON 0x1D005 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_VAREIA_DIPLI 0x1D006 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KATHISTI 0x1D007 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SYRMATIKI 0x1D008 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PARAKLITIKI 0x1D009 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YPOKRISIS 0x1D00A #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YPOKRISIS_DIPLI 0x1D00B #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KREMASTI 0x1D00C #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APESO_EKFONITIKON 0x1D00D #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_EXO_EKFONITIKON 0x1D00E #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TELEIA 0x1D00F #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KENTIMATA 0x1D010 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APOSTROFOS 0x1D011 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APOSTROFOS_DIPLI 0x1D012 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SYNEVMA 0x1D013 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_THITA 0x1D014 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_OLIGON_ARCHAION 0x1D015 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GORGON_ARCHAION 0x1D016 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PSILON 0x1D017 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_CHAMILON 0x1D018 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_VATHY 0x1D019 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ISON_ARCHAION 0x1D01A #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KENTIMA_ARCHAION 0x1D01B #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KENTIMATA_ARCHAION 0x1D01C #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SAXIMATA 0x1D01D #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PARICHON 0x1D01E #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_STAVROS_APODEXIA 0x1D01F #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_OXEIAI_ARCHAION 0x1D020 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_VAREIAI_ARCHAION 0x1D021 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APODERMA_ARCHAION 0x1D022 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APOTHEMA 0x1D023 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KLASMA 0x1D024 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_REVMA 0x1D025 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PIASMA_ARCHAION 0x1D026 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TINAGMA 0x1D027 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ANATRICHISMA 0x1D028 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SEISMA 0x1D029 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SYNAGMA_ARCHAION 0x1D02A #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SYNAGMA_META_STAVROU 0x1D02B #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_OYRANISMA_ARCHAION 0x1D02C #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_THEMA 0x1D02D #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_LEMOI 0x1D02E #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DYO 0x1D02F #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TRIA 0x1D030 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TESSERA 0x1D031 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KRATIMATA 0x1D032 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APESO_EXO_NEO 0x1D033 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_ARCHAION 0x1D034 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_IMIFTHORA 0x1D035 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TROMIKON_ARCHAION 0x1D036 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KATAVA_TROMIKON 0x1D037 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PELASTON 0x1D038 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PSIFISTON 0x1D039 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KONTEVMA 0x1D03A #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_CHOREVMA_ARCHAION 0x1D03B #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_RAPISMA 0x1D03C #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PARAKALESMA_ARCHAION 0x1D03D #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PARAKLITIKI_ARCHAION 0x1D03E #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ICHADIN 0x1D03F #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_NANA 0x1D040 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PETASMA 0x1D041 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KONTEVMA_ALLO 0x1D042 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TROMIKON_ALLO 0x1D043 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_STRAGGISMATA 0x1D044 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GRONTHISMATA 0x1D045 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ISON_NEO 0x1D046 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_OLIGON_NEO 0x1D047 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_OXEIA_NEO 0x1D048 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PETASTI 0x1D049 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KOUFISMA 0x1D04A #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PETASTOKOUFISMA 0x1D04B #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KRATIMOKOUFISMA 0x1D04C #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PELASTON_NEO 0x1D04D #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KENTIMATA_NEO_ANO 0x1D04E #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KENTIMA_NEO_ANO 0x1D04F #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YPSILI 0x1D050 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APOSTROFOS_NEO 0x1D051 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APOSTROFOI_SYNDESMOS_NEO 0x1D052 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YPORROI 0x1D053 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KRATIMOYPORROON 0x1D054 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ELAFRON 0x1D055 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_CHAMILI 0x1D056 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MIKRON_ISON 0x1D057 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_VAREIA_NEO 0x1D058 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PIASMA_NEO 0x1D059 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PSIFISTON_NEO 0x1D05A #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_OMALON 0x1D05B #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ANTIKENOMA 0x1D05C #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_LYGISMA 0x1D05D #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PARAKLITIKI_NEO 0x1D05E #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PARAKALESMA_NEO 0x1D05F #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ETERON_PARAKALESMA 0x1D060 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KYLISMA 0x1D061 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ANTIKENOKYLISMA 0x1D062 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TROMIKON_NEO 0x1D063 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_EKSTREPTON 0x1D064 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SYNAGMA_NEO 0x1D065 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SYRMA 0x1D066 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_CHOREVMA_NEO 0x1D067 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_EPEGERMA 0x1D068 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SEISMA_NEO 0x1D069 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_XIRON_KLASMA 0x1D06A #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TROMIKOPSIFISTON 0x1D06B #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PSIFISTOLYGISMA 0x1D06C #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TROMIKOLYGISMA 0x1D06D #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TROMIKOPARAKALESMA 0x1D06E #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PSIFISTOPARAKALESMA 0x1D06F #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TROMIKOSYNAGMA 0x1D070 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_PSIFISTOSYNAGMA 0x1D071 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GORGOSYNTHETON 0x1D072 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ARGOSYNTHETON 0x1D073 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ETERON_ARGOSYNTHETON 0x1D074 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_OYRANISMA_NEO 0x1D075 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_THEMATISMOS_ESO 0x1D076 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_THEMATISMOS_EXO 0x1D077 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_THEMA_APLOUN 0x1D078 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_THES_KAI_APOTHES 0x1D079 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KATAVASMA 0x1D07A #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ENDOFONON 0x1D07B #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YFEN_KATO 0x1D07C #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YFEN_ANO 0x1D07D #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_STAVROS 0x1D07E #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KLASMA_ANO 0x1D07F #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIPLI_ARCHAION 0x1D080 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KRATIMA_ARCHAION 0x1D081 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KRATIMA_ALLO 0x1D082 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KRATIMA_NEO 0x1D083 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APODERMA_NEO 0x1D084 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APLI 0x1D085 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIPLI 0x1D086 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TRIPLI 0x1D087 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TETRAPLI 0x1D088 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KORONIS 0x1D089 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_LEIMMA_ENOS_CHRONOU 0x1D08A #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_LEIMMA_DYO_CHRONON 0x1D08B #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_LEIMMA_TRION_CHRONON 0x1D08C #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_LEIMMA_TESSARON_CHRONON 0x1D08D #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_LEIMMA_IMISEOS_CHRONOU 0x1D08E #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GORGON_NEO_ANO 0x1D08F #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GORGON_PARESTIGMENON_ARISTERA 0x1D090 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GORGON_PARESTIGMENON_DEXIA 0x1D091 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIGORGON 0x1D092 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIGORGON_PARESTIGMENON_ARISTERA_KATO 0x1D093 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIGORGON_PARESTIGMENON_ARISTERA_ANO 0x1D094 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIGORGON_PARESTIGMENON_DEXIA 0x1D095 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_TRIGORGON 0x1D096 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ARGON 0x1D097 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_IMIDIARGON 0x1D098 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIARGON 0x1D099 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_AGOGI_POLI_ARGI 0x1D09A #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_AGOGI_ARGOTERI 0x1D09B #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_AGOGI_ARGI 0x1D09C #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_AGOGI_METRIA 0x1D09D #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_AGOGI_MESI 0x1D09E #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_AGOGI_GORGI 0x1D09F #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_AGOGI_GORGOTERI 0x1D0A0 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_AGOGI_POLI_GORGI 0x1D0A1 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_PROTOS_ICHOS 0x1D0A2 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_ALLI_PROTOS_ICHOS 0x1D0A3 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_DEYTEROS_ICHOS 0x1D0A4 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_ALLI_DEYTEROS_ICHOS 0x1D0A5 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_TRITOS_ICHOS 0x1D0A6 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_TRIFONIAS 0x1D0A7 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_TETARTOS_ICHOS 0x1D0A8 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_TETARTOS_LEGETOS_ICHOS 0x1D0A9 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_LEGETOS_ICHOS 0x1D0AA #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_PLAGIOS_ICHOS 0x1D0AB #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ISAKIA_TELOUS_ICHIMATOS 0x1D0AC #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_APOSTROFOI_TELOUS_ICHIMATOS 0x1D0AD #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FANEROSIS_TETRAFONIAS 0x1D0AE #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FANEROSIS_MONOFONIAS 0x1D0AF #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FANEROSIS_DIFONIAS 0x1D0B0 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_VARYS_ICHOS 0x1D0B1 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_PROTOVARYS_ICHOS 0x1D0B2 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_MARTYRIA_PLAGIOS_TETARTOS_ICHOS 0x1D0B3 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GORTHMIKON_N_APLOUN 0x1D0B4 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GORTHMIKON_N_DIPLOUN 0x1D0B5 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ENARXIS_KAI_FTHORA_VOU 0x1D0B6 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_IMIFONON 0x1D0B7 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_IMIFTHORON 0x1D0B8 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_ARCHAION_DEYTEROU_ICHOU 0x1D0B9 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_DIATONIKI_PA 0x1D0BA #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_DIATONIKI_NANA 0x1D0BB #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_NAOS_ICHOS 0x1D0BC #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_DIATONIKI_DI 0x1D0BD #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_SKLIRON_DIATONON_DI 0x1D0BE #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_DIATONIKI_KE 0x1D0BF #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_DIATONIKI_ZO 0x1D0C0 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_DIATONIKI_NI_KATO 0x1D0C1 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_DIATONIKI_NI_ANO 0x1D0C2 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_MALAKON_CHROMA_DIFONIAS 0x1D0C3 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_MALAKON_CHROMA_MONOFONIAS 0x1D0C4 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FHTORA_SKLIRON_CHROMA_VASIS 0x1D0C5 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_SKLIRON_CHROMA_SYNAFI 0x1D0C6 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_NENANO 0x1D0C7 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_CHROA_ZYGOS 0x1D0C8 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_CHROA_KLITON 0x1D0C9 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_CHROA_SPATHI 0x1D0CA #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_I_YFESIS_TETARTIMORION 0x1D0CB #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_FTHORA_ENARMONIOS_ANTIFONIA 0x1D0CC #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YFESIS_TRITIMORION 0x1D0CD #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIESIS_TRITIMORION 0x1D0CE #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIESIS_TETARTIMORION 0x1D0CF #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIESIS_APLI_DYO_DODEKATA 0x1D0D0 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIESIS_MONOGRAMMOS_TESSERA_DODEKATA 0x1D0D1 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIESIS_DIGRAMMOS_EX_DODEKATA 0x1D0D2 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIESIS_TRIGRAMMOS_OKTO_DODEKATA 0x1D0D3 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YFESIS_APLI_DYO_DODEKATA 0x1D0D4 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YFESIS_MONOGRAMMOS_TESSERA_DODEKATA 0x1D0D5 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YFESIS_DIGRAMMOS_EX_DODEKATA 0x1D0D6 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_YFESIS_TRIGRAMMOS_OKTO_DODEKATA 0x1D0D7 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GENIKI_DIESIS 0x1D0D8 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GENIKI_YFESIS 0x1D0D9 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIASTOLI_APLI_MIKRI 0x1D0DA #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIASTOLI_APLI_MEGALI 0x1D0DB #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIASTOLI_DIPLI 0x1D0DC #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIASTOLI_THESEOS 0x1D0DD #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SIMANSIS_THESEOS 0x1D0DE #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SIMANSIS_THESEOS_DISIMOU 0x1D0DF #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SIMANSIS_THESEOS_TRISIMOU 0x1D0E0 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SIMANSIS_THESEOS_TETRASIMOU 0x1D0E1 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SIMANSIS_ARSEOS 0x1D0E2 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SIMANSIS_ARSEOS_DISIMOU 0x1D0E3 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SIMANSIS_ARSEOS_TRISIMOU 0x1D0E4 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_SIMANSIS_ARSEOS_TETRASIMOU 0x1D0E5 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIGRAMMA_GG 0x1D0E6 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_DIFTOGGOS_OU 0x1D0E7 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_STIGMA 0x1D0E8 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ARKTIKO_PA 0x1D0E9 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ARKTIKO_VOU 0x1D0EA #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ARKTIKO_GA 0x1D0EB #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ARKTIKO_DI 0x1D0EC #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ARKTIKO_KE 0x1D0ED #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ARKTIKO_ZO 0x1D0EE #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_ARKTIKO_NI 0x1D0EF #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KENTIMATA_NEO_MESO 0x1D0F0 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KENTIMA_NEO_MESO 0x1D0F1 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KENTIMATA_NEO_KATO 0x1D0F2 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KENTIMA_NEO_KATO 0x1D0F3 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_KLASMA_KATO 0x1D0F4 #define T_UTF_32_BYZANTINE_MUSICAL_SYMBOL_GORGON_NEO_KATO 0x1D0F5 #define T_UTF_32_MUSICAL_SYMBOL_SINGLE_BARLINE 0x1D100 #define T_UTF_32_MUSICAL_SYMBOL_DOUBLE_BARLINE 0x1D101 #define T_UTF_32_MUSICAL_SYMBOL_FINAL_BARLINE 0x1D102 #define T_UTF_32_MUSICAL_SYMBOL_REVERSE_FINAL_BARLINE 0x1D103 #define T_UTF_32_MUSICAL_SYMBOL_DASHED_BARLINE 0x1D104 #define T_UTF_32_MUSICAL_SYMBOL_SHORT_BARLINE 0x1D105 #define T_UTF_32_MUSICAL_SYMBOL_LEFT_REPEAT_SIGN 0x1D106 #define T_UTF_32_MUSICAL_SYMBOL_RIGHT_REPEAT_SIGN 0x1D107 #define T_UTF_32_MUSICAL_SYMBOL_REPEAT_DOTS 0x1D108 #define T_UTF_32_MUSICAL_SYMBOL_DAL_SEGNO 0x1D109 #define T_UTF_32_MUSICAL_SYMBOL_DA_CAPO 0x1D10A #define T_UTF_32_MUSICAL_SYMBOL_SEGNO 0x1D10B #define T_UTF_32_MUSICAL_SYMBOL_CODA 0x1D10C #define T_UTF_32_MUSICAL_SYMBOL_REPEATED_FIGURE_1 0x1D10D #define T_UTF_32_MUSICAL_SYMBOL_REPEATED_FIGURE_2 0x1D10E #define T_UTF_32_MUSICAL_SYMBOL_REPEATED_FIGURE_3 0x1D10F #define T_UTF_32_MUSICAL_SYMBOL_FERMATA 0x1D110 #define T_UTF_32_MUSICAL_SYMBOL_FERMATA_BELOW 0x1D111 #define T_UTF_32_MUSICAL_SYMBOL_BREATH_MARK 0x1D112 #define T_UTF_32_MUSICAL_SYMBOL_CAESURA 0x1D113 #define T_UTF_32_MUSICAL_SYMBOL_BRACE 0x1D114 #define T_UTF_32_MUSICAL_SYMBOL_BRACKET 0x1D115 #define T_UTF_32_MUSICAL_SYMBOL_ONE_LINE_STAFF 0x1D116 #define T_UTF_32_MUSICAL_SYMBOL_TWO_LINE_STAFF 0x1D117 #define T_UTF_32_MUSICAL_SYMBOL_THREE_LINE_STAFF 0x1D118 #define T_UTF_32_MUSICAL_SYMBOL_FOUR_LINE_STAFF 0x1D119 #define T_UTF_32_MUSICAL_SYMBOL_FIVE_LINE_STAFF 0x1D11A #define T_UTF_32_MUSICAL_SYMBOL_SIX_LINE_STAFF 0x1D11B #define T_UTF_32_MUSICAL_SYMBOL_SIX_STRING_FRETBOARD 0x1D11C #define T_UTF_32_MUSICAL_SYMBOL_FOUR_STRING_FRETBOARD 0x1D11D #define T_UTF_32_MUSICAL_SYMBOL_G_CLEF 0x1D11E #define T_UTF_32_MUSICAL_SYMBOL_G_CLEF_OTTAVA_ALTA 0x1D11F #define T_UTF_32_MUSICAL_SYMBOL_G_CLEF_OTTAVA_BASSA 0x1D120 #define T_UTF_32_MUSICAL_SYMBOL_C_CLEF 0x1D121 #define T_UTF_32_MUSICAL_SYMBOL_F_CLEF 0x1D122 #define T_UTF_32_MUSICAL_SYMBOL_F_CLEF_OTTAVA_ALTA 0x1D123 #define T_UTF_32_MUSICAL_SYMBOL_F_CLEF_OTTAVA_BASSA 0x1D124 #define T_UTF_32_MUSICAL_SYMBOL_DRUM_CLEF_1 0x1D125 #define T_UTF_32_MUSICAL_SYMBOL_DRUM_CLEF_2 0x1D126 #define T_UTF_32_MUSICAL_SYMBOL_MULTIPLE_MEASURE_REST 0x1D129 #define T_UTF_32_MUSICAL_SYMBOL_DOUBLE_SHARP 0x1D12A #define T_UTF_32_MUSICAL_SYMBOL_DOUBLE_FLAT 0x1D12B #define T_UTF_32_MUSICAL_SYMBOL_FLAT_UP 0x1D12C #define T_UTF_32_MUSICAL_SYMBOL_FLAT_DOWN 0x1D12D #define T_UTF_32_MUSICAL_SYMBOL_NATURAL_UP 0x1D12E #define T_UTF_32_MUSICAL_SYMBOL_NATURAL_DOWN 0x1D12F #define T_UTF_32_MUSICAL_SYMBOL_SHARP_UP 0x1D130 #define T_UTF_32_MUSICAL_SYMBOL_SHARP_DOWN 0x1D131 #define T_UTF_32_MUSICAL_SYMBOL_QUARTER_TONE_SHARP 0x1D132 #define T_UTF_32_MUSICAL_SYMBOL_QUARTER_TONE_FLAT 0x1D133 #define T_UTF_32_MUSICAL_SYMBOL_COMMON_TIME 0x1D134 #define T_UTF_32_MUSICAL_SYMBOL_CUT_TIME 0x1D135 #define T_UTF_32_MUSICAL_SYMBOL_OTTAVA_ALTA 0x1D136 #define T_UTF_32_MUSICAL_SYMBOL_OTTAVA_BASSA 0x1D137 #define T_UTF_32_MUSICAL_SYMBOL_QUINDICESIMA_ALTA 0x1D138 #define T_UTF_32_MUSICAL_SYMBOL_QUINDICESIMA_BASSA 0x1D139 #define T_UTF_32_MUSICAL_SYMBOL_MULTI_REST 0x1D13A #define T_UTF_32_MUSICAL_SYMBOL_WHOLE_REST 0x1D13B #define T_UTF_32_MUSICAL_SYMBOL_HALF_REST 0x1D13C #define T_UTF_32_MUSICAL_SYMBOL_QUARTER_REST 0x1D13D #define T_UTF_32_MUSICAL_SYMBOL_EIGHTH_REST 0x1D13E #define T_UTF_32_MUSICAL_SYMBOL_SIXTEENTH_REST 0x1D13F #define T_UTF_32_MUSICAL_SYMBOL_THIRTY_SECOND_REST 0x1D140 #define T_UTF_32_MUSICAL_SYMBOL_SIXTY_FOURTH_REST 0x1D141 #define T_UTF_32_MUSICAL_SYMBOL_ONE_HUNDRED_TWENTY_EIGHTH_REST 0x1D142 #define T_UTF_32_MUSICAL_SYMBOL_X_NOTEHEAD 0x1D143 #define T_UTF_32_MUSICAL_SYMBOL_PLUS_NOTEHEAD 0x1D144 #define T_UTF_32_MUSICAL_SYMBOL_CIRCLE_X_NOTEHEAD 0x1D145 #define T_UTF_32_MUSICAL_SYMBOL_SQUARE_NOTEHEAD_WHITE 0x1D146 #define T_UTF_32_MUSICAL_SYMBOL_SQUARE_NOTEHEAD_BLACK 0x1D147 #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_NOTEHEAD_UP_WHITE 0x1D148 #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_NOTEHEAD_UP_BLACK 0x1D149 #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_NOTEHEAD_LEFT_WHITE 0x1D14A #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_NOTEHEAD_LEFT_BLACK 0x1D14B #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_NOTEHEAD_RIGHT_WHITE 0x1D14C #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_NOTEHEAD_RIGHT_BLACK 0x1D14D #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_NOTEHEAD_DOWN_WHITE 0x1D14E #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_NOTEHEAD_DOWN_BLACK 0x1D14F #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_NOTEHEAD_UP_RIGHT_WHITE 0x1D150 #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_NOTEHEAD_UP_RIGHT_BLACK 0x1D151 #define T_UTF_32_MUSICAL_SYMBOL_MOON_NOTEHEAD_WHITE 0x1D152 #define T_UTF_32_MUSICAL_SYMBOL_MOON_NOTEHEAD_BLACK 0x1D153 #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_ROUND_NOTEHEAD_DOWN_WHITE 0x1D154 #define T_UTF_32_MUSICAL_SYMBOL_TRIANGLE_ROUND_NOTEHEAD_DOWN_BLACK 0x1D155 #define T_UTF_32_MUSICAL_SYMBOL_PARENTHESIS_NOTEHEAD 0x1D156 #define T_UTF_32_MUSICAL_SYMBOL_VOID_NOTEHEAD 0x1D157 #define T_UTF_32_MUSICAL_SYMBOL_NOTEHEAD_BLACK 0x1D158 #define T_UTF_32_MUSICAL_SYMBOL_NULL_NOTEHEAD 0x1D159 #define T_UTF_32_MUSICAL_SYMBOL_CLUSTER_NOTEHEAD_WHITE 0x1D15A #define T_UTF_32_MUSICAL_SYMBOL_CLUSTER_NOTEHEAD_BLACK 0x1D15B #define T_UTF_32_MUSICAL_SYMBOL_BREVE 0x1D15C #define T_UTF_32_MUSICAL_SYMBOL_WHOLE_NOTE 0x1D15D #define T_UTF_32_MUSICAL_SYMBOL_HALF_NOTE 0x1D15E #define T_UTF_32_MUSICAL_SYMBOL_QUARTER_NOTE 0x1D15F #define T_UTF_32_MUSICAL_SYMBOL_EIGHTH_NOTE 0x1D160 #define T_UTF_32_MUSICAL_SYMBOL_SIXTEENTH_NOTE 0x1D161 #define T_UTF_32_MUSICAL_SYMBOL_THIRTY_SECOND_NOTE 0x1D162 #define T_UTF_32_MUSICAL_SYMBOL_SIXTY_FOURTH_NOTE 0x1D163 #define T_UTF_32_MUSICAL_SYMBOL_ONE_HUNDRED_TWENTY_EIGHTH_NOTE 0x1D164 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_STEM 0x1D165 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_SPRECHGESANG_STEM 0x1D166 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_TREMOLO_1 0x1D167 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_TREMOLO_2 0x1D168 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_TREMOLO_3 0x1D169 #define T_UTF_32_MUSICAL_SYMBOL_FINGERED_TREMOLO_1 0x1D16A #define T_UTF_32_MUSICAL_SYMBOL_FINGERED_TREMOLO_2 0x1D16B #define T_UTF_32_MUSICAL_SYMBOL_FINGERED_TREMOLO_3 0x1D16C #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_AUGMENTATION_DOT 0x1D16D #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_FLAG_1 0x1D16E #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_FLAG_2 0x1D16F #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_FLAG_3 0x1D170 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_FLAG_4 0x1D171 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_FLAG_5 0x1D172 #define T_UTF_32_MUSICAL_SYMBOL_BEGIN_BEAM 0x1D173 #define T_UTF_32_MUSICAL_SYMBOL_END_BEAM 0x1D174 #define T_UTF_32_MUSICAL_SYMBOL_BEGIN_TIE 0x1D175 #define T_UTF_32_MUSICAL_SYMBOL_END_TIE 0x1D176 #define T_UTF_32_MUSICAL_SYMBOL_BEGIN_SLUR 0x1D177 #define T_UTF_32_MUSICAL_SYMBOL_END_SLUR 0x1D178 #define T_UTF_32_MUSICAL_SYMBOL_BEGIN_PHRASE 0x1D179 #define T_UTF_32_MUSICAL_SYMBOL_END_PHRASE 0x1D17A #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_ACCENT 0x1D17B #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_STACCATO 0x1D17C #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_TENUTO 0x1D17D #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_STACCATISSIMO 0x1D17E #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_MARCATO 0x1D17F #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_MARCATO_STACCATO 0x1D180 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_ACCENT_STACCATO 0x1D181 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_LOURE 0x1D182 #define T_UTF_32_MUSICAL_SYMBOL_ARPEGGIATO_UP 0x1D183 #define T_UTF_32_MUSICAL_SYMBOL_ARPEGGIATO_DOWN 0x1D184 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_DOIT 0x1D185 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_RIP 0x1D186 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_FLIP 0x1D187 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_SMEAR 0x1D188 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_BEND 0x1D189 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_DOUBLE_TONGUE 0x1D18A #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_TRIPLE_TONGUE 0x1D18B #define T_UTF_32_MUSICAL_SYMBOL_RINFORZANDO 0x1D18C #define T_UTF_32_MUSICAL_SYMBOL_SUBITO 0x1D18D #define T_UTF_32_MUSICAL_SYMBOL_Z 0x1D18E #define T_UTF_32_MUSICAL_SYMBOL_PIANO 0x1D18F #define T_UTF_32_MUSICAL_SYMBOL_MEZZO 0x1D190 #define T_UTF_32_MUSICAL_SYMBOL_FORTE 0x1D191 #define T_UTF_32_MUSICAL_SYMBOL_CRESCENDO 0x1D192 #define T_UTF_32_MUSICAL_SYMBOL_DECRESCENDO 0x1D193 #define T_UTF_32_MUSICAL_SYMBOL_GRACE_NOTE_SLASH 0x1D194 #define T_UTF_32_MUSICAL_SYMBOL_GRACE_NOTE_NO_SLASH 0x1D195 #define T_UTF_32_MUSICAL_SYMBOL_TR 0x1D196 #define T_UTF_32_MUSICAL_SYMBOL_TURN 0x1D197 #define T_UTF_32_MUSICAL_SYMBOL_INVERTED_TURN 0x1D198 #define T_UTF_32_MUSICAL_SYMBOL_TURN_SLASH 0x1D199 #define T_UTF_32_MUSICAL_SYMBOL_TURN_UP 0x1D19A #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_1 0x1D19B #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_2 0x1D19C #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_3 0x1D19D #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_4 0x1D19E #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_5 0x1D19F #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_6 0x1D1A0 #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_7 0x1D1A1 #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_8 0x1D1A2 #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_9 0x1D1A3 #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_10 0x1D1A4 #define T_UTF_32_MUSICAL_SYMBOL_ORNAMENT_STROKE_11 0x1D1A5 #define T_UTF_32_MUSICAL_SYMBOL_HAUPTSTIMME 0x1D1A6 #define T_UTF_32_MUSICAL_SYMBOL_NEBENSTIMME 0x1D1A7 #define T_UTF_32_MUSICAL_SYMBOL_END_OF_STIMME 0x1D1A8 #define T_UTF_32_MUSICAL_SYMBOL_DEGREE_SLASH 0x1D1A9 #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_DOWN_BOW 0x1D1AA #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_UP_BOW 0x1D1AB #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_HARMONIC 0x1D1AC #define T_UTF_32_MUSICAL_SYMBOL_COMBINING_SNAP_PIZZICATO 0x1D1AD #define T_UTF_32_MUSICAL_SYMBOL_PEDAL_MARK 0x1D1AE #define T_UTF_32_MUSICAL_SYMBOL_PEDAL_UP_MARK 0x1D1AF #define T_UTF_32_MUSICAL_SYMBOL_HALF_PEDAL_MARK 0x1D1B0 #define T_UTF_32_MUSICAL_SYMBOL_GLISSANDO_UP 0x1D1B1 #define T_UTF_32_MUSICAL_SYMBOL_GLISSANDO_DOWN 0x1D1B2 #define T_UTF_32_MUSICAL_SYMBOL_WITH_FINGERNAILS 0x1D1B3 #define T_UTF_32_MUSICAL_SYMBOL_DAMP 0x1D1B4 #define T_UTF_32_MUSICAL_SYMBOL_DAMP_ALL 0x1D1B5 #define T_UTF_32_MUSICAL_SYMBOL_MAXIMA 0x1D1B6 #define T_UTF_32_MUSICAL_SYMBOL_LONGA 0x1D1B7 #define T_UTF_32_MUSICAL_SYMBOL_BREVIS 0x1D1B8 #define T_UTF_32_MUSICAL_SYMBOL_SEMIBREVIS_WHITE 0x1D1B9 #define T_UTF_32_MUSICAL_SYMBOL_SEMIBREVIS_BLACK 0x1D1BA #define T_UTF_32_MUSICAL_SYMBOL_MINIMA 0x1D1BB #define T_UTF_32_MUSICAL_SYMBOL_MINIMA_BLACK 0x1D1BC #define T_UTF_32_MUSICAL_SYMBOL_SEMIMINIMA_WHITE 0x1D1BD #define T_UTF_32_MUSICAL_SYMBOL_SEMIMINIMA_BLACK 0x1D1BE #define T_UTF_32_MUSICAL_SYMBOL_FUSA_WHITE 0x1D1BF #define T_UTF_32_MUSICAL_SYMBOL_FUSA_BLACK 0x1D1C0 #define T_UTF_32_MUSICAL_SYMBOL_LONGA_PERFECTA_REST 0x1D1C1 #define T_UTF_32_MUSICAL_SYMBOL_LONGA_IMPERFECTA_REST 0x1D1C2 #define T_UTF_32_MUSICAL_SYMBOL_BREVIS_REST 0x1D1C3 #define T_UTF_32_MUSICAL_SYMBOL_SEMIBREVIS_REST 0x1D1C4 #define T_UTF_32_MUSICAL_SYMBOL_MINIMA_REST 0x1D1C5 #define T_UTF_32_MUSICAL_SYMBOL_SEMIMINIMA_REST 0x1D1C6 #define T_UTF_32_MUSICAL_SYMBOL_TEMPUS_PERFECTUM_CUM_PROLATIONE_PERFECTA 0x1D1C7 #define T_UTF_32_MUSICAL_SYMBOL_TEMPUS_PERFECTUM_CUM_PROLATIONE_IMPERFECTA 0x1D1C8 #define T_UTF_32_MUSICAL_SYMBOL_TEMPUS_PERFECTUM_CUM_PROLATIONE_PERFECTA_DIMINUTION_1 0x1D1C9 #define T_UTF_32_MUSICAL_SYMBOL_TEMPUS_IMPERFECTUM_CUM_PROLATIONE_PERFECTA 0x1D1CA #define T_UTF_32_MUSICAL_SYMBOL_TEMPUS_IMPERFECTUM_CUM_PROLATIONE_IMPERFECTA 0x1D1CB #define T_UTF_32_MUSICAL_SYMBOL_TEMPUS_IMPERFECTUM_CUM_PROLATIONE_IMPERFECTA_DIMINUTION_1 0x1D1CC #define T_UTF_32_MUSICAL_SYMBOL_TEMPUS_IMPERFECTUM_CUM_PROLATIONE_IMPERFECTA_DIMINUTION_2 0x1D1CD #define T_UTF_32_MUSICAL_SYMBOL_TEMPUS_IMPERFECTUM_CUM_PROLATIONE_IMPERFECTA_DIMINUTION_3 0x1D1CE #define T_UTF_32_MUSICAL_SYMBOL_CROIX 0x1D1CF #define T_UTF_32_MUSICAL_SYMBOL_GREGORIAN_C_CLEF 0x1D1D0 #define T_UTF_32_MUSICAL_SYMBOL_GREGORIAN_F_CLEF 0x1D1D1 #define T_UTF_32_MUSICAL_SYMBOL_SQUARE_B 0x1D1D2 #define T_UTF_32_MUSICAL_SYMBOL_VIRGA 0x1D1D3 #define T_UTF_32_MUSICAL_SYMBOL_PODATUS 0x1D1D4 #define T_UTF_32_MUSICAL_SYMBOL_CLIVIS 0x1D1D5 #define T_UTF_32_MUSICAL_SYMBOL_SCANDICUS 0x1D1D6 #define T_UTF_32_MUSICAL_SYMBOL_CLIMACUS 0x1D1D7 #define T_UTF_32_MUSICAL_SYMBOL_TORCULUS 0x1D1D8 #define T_UTF_32_MUSICAL_SYMBOL_PORRECTUS 0x1D1D9 #define T_UTF_32_MUSICAL_SYMBOL_PORRECTUS_FLEXUS 0x1D1DA #define T_UTF_32_MUSICAL_SYMBOL_SCANDICUS_FLEXUS 0x1D1DB #define T_UTF_32_MUSICAL_SYMBOL_TORCULUS_RESUPINUS 0x1D1DC #define T_UTF_32_MUSICAL_SYMBOL_PES_SUBPUNCTIS 0x1D1DD #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_C_CLEF 0x1D1DE #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_END_OF_PIECE 0x1D1DF #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_FINAL_NOTE 0x1D1E0 #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_RECITATIVE_MARK 0x1D1E1 #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_WHOLE_NOTE 0x1D1E2 #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_HALF_NOTE 0x1D1E3 #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_QUARTER_NOTE_STEM_DOWN 0x1D1E4 #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_QUARTER_NOTE_STEM_UP 0x1D1E5 #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_EIGHTH_NOTE_STEM_DOWN 0x1D1E6 #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_EIGHTH_NOTE_STEM_UP 0x1D1E7 #define T_UTF_32_MUSICAL_SYMBOL_KIEVAN_FLAT_SIGN 0x1D1E8 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_1 0x1D200 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_2 0x1D201 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_3 0x1D202 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_4 0x1D203 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_5 0x1D204 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_6 0x1D205 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_7 0x1D206 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_8 0x1D207 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_9 0x1D208 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_10 0x1D209 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_11 0x1D20A #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_12 0x1D20B #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_13 0x1D20C #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_14 0x1D20D #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_15 0x1D20E #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_16 0x1D20F #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_17 0x1D210 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_18 0x1D211 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_19 0x1D212 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_20 0x1D213 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_21 0x1D214 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_22 0x1D215 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_23 0x1D216 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_24 0x1D217 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_50 0x1D218 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_51 0x1D219 #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_52 0x1D21A #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_53 0x1D21B #define T_UTF_32_GREEK_VOCAL_NOTATION_SYMBOL_54 0x1D21C #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_1 0x1D21D #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_2 0x1D21E #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_4 0x1D21F #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_5 0x1D220 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_7 0x1D221 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_8 0x1D222 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_11 0x1D223 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_12 0x1D224 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_13 0x1D225 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_14 0x1D226 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_17 0x1D227 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_18 0x1D228 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_19 0x1D229 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_23 0x1D22A #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_24 0x1D22B #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_25 0x1D22C #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_26 0x1D22D #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_27 0x1D22E #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_29 0x1D22F #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_30 0x1D230 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_32 0x1D231 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_36 0x1D232 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_37 0x1D233 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_38 0x1D234 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_39 0x1D235 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_40 0x1D236 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_42 0x1D237 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_43 0x1D238 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_45 0x1D239 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_47 0x1D23A #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_48 0x1D23B #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_49 0x1D23C #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_50 0x1D23D #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_51 0x1D23E #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_52 0x1D23F #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_53 0x1D240 #define T_UTF_32_GREEK_INSTRUMENTAL_NOTATION_SYMBOL_54 0x1D241 #define T_UTF_32_COMBINING_GREEK_MUSICAL_TRISEME 0x1D242 #define T_UTF_32_COMBINING_GREEK_MUSICAL_TETRASEME 0x1D243 #define T_UTF_32_COMBINING_GREEK_MUSICAL_PENTASEME 0x1D244 #define T_UTF_32_GREEK_MUSICAL_LEIMMA 0x1D245 #define T_UTF_32_MONOGRAM_FOR_EARTH 0x1D300 #define T_UTF_32_DIGRAM_FOR_HEAVENLY_EARTH 0x1D301 #define T_UTF_32_DIGRAM_FOR_HUMAN_EARTH 0x1D302 #define T_UTF_32_DIGRAM_FOR_EARTHLY_HEAVEN 0x1D303 #define T_UTF_32_DIGRAM_FOR_EARTHLY_HUMAN 0x1D304 #define T_UTF_32_DIGRAM_FOR_EARTH 0x1D305 #define T_UTF_32_TETRAGRAM_FOR_CENTRE 0x1D306 #define T_UTF_32_TETRAGRAM_FOR_FULL_CIRCLE 0x1D307 #define T_UTF_32_TETRAGRAM_FOR_MIRED 0x1D308 #define T_UTF_32_TETRAGRAM_FOR_BARRIER 0x1D309 #define T_UTF_32_TETRAGRAM_FOR_KEEPING_SMALL 0x1D30A #define T_UTF_32_TETRAGRAM_FOR_CONTRARIETY 0x1D30B #define T_UTF_32_TETRAGRAM_FOR_ASCENT 0x1D30C #define T_UTF_32_TETRAGRAM_FOR_OPPOSITION 0x1D30D #define T_UTF_32_TETRAGRAM_FOR_BRANCHING_OUT 0x1D30E #define T_UTF_32_TETRAGRAM_FOR_DEFECTIVENESS_OR_DISTORTION 0x1D30F #define T_UTF_32_TETRAGRAM_FOR_DIVERGENCE 0x1D310 #define T_UTF_32_TETRAGRAM_FOR_YOUTHFULNESS 0x1D311 #define T_UTF_32_TETRAGRAM_FOR_INCREASE 0x1D312 #define T_UTF_32_TETRAGRAM_FOR_PENETRATION 0x1D313 #define T_UTF_32_TETRAGRAM_FOR_REACH 0x1D314 #define T_UTF_32_TETRAGRAM_FOR_CONTACT 0x1D315 #define T_UTF_32_TETRAGRAM_FOR_HOLDING_BACK 0x1D316 #define T_UTF_32_TETRAGRAM_FOR_WAITING 0x1D317 #define T_UTF_32_TETRAGRAM_FOR_FOLLOWING 0x1D318 #define T_UTF_32_TETRAGRAM_FOR_ADVANCE 0x1D319 #define T_UTF_32_TETRAGRAM_FOR_RELEASE 0x1D31A #define T_UTF_32_TETRAGRAM_FOR_RESISTANCE 0x1D31B #define T_UTF_32_TETRAGRAM_FOR_EASE 0x1D31C #define T_UTF_32_TETRAGRAM_FOR_JOY 0x1D31D #define T_UTF_32_TETRAGRAM_FOR_CONTENTION 0x1D31E #define T_UTF_32_TETRAGRAM_FOR_ENDEAVOUR 0x1D31F #define T_UTF_32_TETRAGRAM_FOR_DUTIES 0x1D320 #define T_UTF_32_TETRAGRAM_FOR_CHANGE 0x1D321 #define T_UTF_32_TETRAGRAM_FOR_DECISIVENESS 0x1D322 #define T_UTF_32_TETRAGRAM_FOR_BOLD_RESOLUTION 0x1D323 #define T_UTF_32_TETRAGRAM_FOR_PACKING 0x1D324 #define T_UTF_32_TETRAGRAM_FOR_LEGION 0x1D325 #define T_UTF_32_TETRAGRAM_FOR_CLOSENESS 0x1D326 #define T_UTF_32_TETRAGRAM_FOR_KINSHIP 0x1D327 #define T_UTF_32_TETRAGRAM_FOR_GATHERING 0x1D328 #define T_UTF_32_TETRAGRAM_FOR_STRENGTH 0x1D329 #define T_UTF_32_TETRAGRAM_FOR_PURITY 0x1D32A #define T_UTF_32_TETRAGRAM_FOR_FULLNESS 0x1D32B #define T_UTF_32_TETRAGRAM_FOR_RESIDENCE 0x1D32C #define T_UTF_32_TETRAGRAM_FOR_LAW_OR_MODEL 0x1D32D #define T_UTF_32_TETRAGRAM_FOR_RESPONSE 0x1D32E #define T_UTF_32_TETRAGRAM_FOR_GOING_TO_MEET 0x1D32F #define T_UTF_32_TETRAGRAM_FOR_ENCOUNTERS 0x1D330 #define T_UTF_32_TETRAGRAM_FOR_STOVE 0x1D331 #define T_UTF_32_TETRAGRAM_FOR_GREATNESS 0x1D332 #define T_UTF_32_TETRAGRAM_FOR_ENLARGEMENT 0x1D333 #define T_UTF_32_TETRAGRAM_FOR_PATTERN 0x1D334 #define T_UTF_32_TETRAGRAM_FOR_RITUAL 0x1D335 #define T_UTF_32_TETRAGRAM_FOR_FLIGHT 0x1D336 #define T_UTF_32_TETRAGRAM_FOR_VASTNESS_OR_WASTING 0x1D337 #define T_UTF_32_TETRAGRAM_FOR_CONSTANCY 0x1D338 #define T_UTF_32_TETRAGRAM_FOR_MEASURE 0x1D339 #define T_UTF_32_TETRAGRAM_FOR_ETERNITY 0x1D33A #define T_UTF_32_TETRAGRAM_FOR_UNITY 0x1D33B #define T_UTF_32_TETRAGRAM_FOR_DIMINISHMENT 0x1D33C #define T_UTF_32_TETRAGRAM_FOR_CLOSED_MOUTH 0x1D33D #define T_UTF_32_TETRAGRAM_FOR_GUARDEDNESS 0x1D33E #define T_UTF_32_TETRAGRAM_FOR_GATHERING_IN 0x1D33F #define T_UTF_32_TETRAGRAM_FOR_MASSING 0x1D340 #define T_UTF_32_TETRAGRAM_FOR_ACCUMULATION 0x1D341 #define T_UTF_32_TETRAGRAM_FOR_EMBELLISHMENT 0x1D342 #define T_UTF_32_TETRAGRAM_FOR_DOUBT 0x1D343 #define T_UTF_32_TETRAGRAM_FOR_WATCH 0x1D344 #define T_UTF_32_TETRAGRAM_FOR_SINKING 0x1D345 #define T_UTF_32_TETRAGRAM_FOR_INNER 0x1D346 #define T_UTF_32_TETRAGRAM_FOR_DEPARTURE 0x1D347 #define T_UTF_32_TETRAGRAM_FOR_DARKENING 0x1D348 #define T_UTF_32_TETRAGRAM_FOR_DIMMING 0x1D349 #define T_UTF_32_TETRAGRAM_FOR_EXHAUSTION 0x1D34A #define T_UTF_32_TETRAGRAM_FOR_SEVERANCE 0x1D34B #define T_UTF_32_TETRAGRAM_FOR_STOPPAGE 0x1D34C #define T_UTF_32_TETRAGRAM_FOR_HARDNESS 0x1D34D #define T_UTF_32_TETRAGRAM_FOR_COMPLETION 0x1D34E #define T_UTF_32_TETRAGRAM_FOR_CLOSURE 0x1D34F #define T_UTF_32_TETRAGRAM_FOR_FAILURE 0x1D350 #define T_UTF_32_TETRAGRAM_FOR_AGGRAVATION 0x1D351 #define T_UTF_32_TETRAGRAM_FOR_COMPLIANCE 0x1D352 #define T_UTF_32_TETRAGRAM_FOR_ON_THE_VERGE 0x1D353 #define T_UTF_32_TETRAGRAM_FOR_DIFFICULTIES 0x1D354 #define T_UTF_32_TETRAGRAM_FOR_LABOURING 0x1D355 #define T_UTF_32_TETRAGRAM_FOR_FOSTERING 0x1D356 #define T_UTF_32_COUNTING_ROD_UNIT_DIGIT_ONE 0x1D360 #define T_UTF_32_COUNTING_ROD_UNIT_DIGIT_TWO 0x1D361 #define T_UTF_32_COUNTING_ROD_UNIT_DIGIT_THREE 0x1D362 #define T_UTF_32_COUNTING_ROD_UNIT_DIGIT_FOUR 0x1D363 #define T_UTF_32_COUNTING_ROD_UNIT_DIGIT_FIVE 0x1D364 #define T_UTF_32_COUNTING_ROD_UNIT_DIGIT_SIX 0x1D365 #define T_UTF_32_COUNTING_ROD_UNIT_DIGIT_SEVEN 0x1D366 #define T_UTF_32_COUNTING_ROD_UNIT_DIGIT_EIGHT 0x1D367 #define T_UTF_32_COUNTING_ROD_UNIT_DIGIT_NINE 0x1D368 #define T_UTF_32_COUNTING_ROD_TENS_DIGIT_ONE 0x1D369 #define T_UTF_32_COUNTING_ROD_TENS_DIGIT_TWO 0x1D36A #define T_UTF_32_COUNTING_ROD_TENS_DIGIT_THREE 0x1D36B #define T_UTF_32_COUNTING_ROD_TENS_DIGIT_FOUR 0x1D36C #define T_UTF_32_COUNTING_ROD_TENS_DIGIT_FIVE 0x1D36D #define T_UTF_32_COUNTING_ROD_TENS_DIGIT_SIX 0x1D36E #define T_UTF_32_COUNTING_ROD_TENS_DIGIT_SEVEN 0x1D36F #define T_UTF_32_COUNTING_ROD_TENS_DIGIT_EIGHT 0x1D370 #define T_UTF_32_COUNTING_ROD_TENS_DIGIT_NINE 0x1D371 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_A 0x1D400 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_B 0x1D401 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_C 0x1D402 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_D 0x1D403 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_E 0x1D404 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_F 0x1D405 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_G 0x1D406 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_H 0x1D407 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_I 0x1D408 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_J 0x1D409 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_K 0x1D40A #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_L 0x1D40B #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_M 0x1D40C #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_N 0x1D40D #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_O 0x1D40E #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_P 0x1D40F #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_Q 0x1D410 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_R 0x1D411 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_S 0x1D412 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_T 0x1D413 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_U 0x1D414 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_V 0x1D415 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_W 0x1D416 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_X 0x1D417 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_Y 0x1D418 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_Z 0x1D419 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_A 0x1D41A #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_B 0x1D41B #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_C 0x1D41C #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_D 0x1D41D #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_E 0x1D41E #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_F 0x1D41F #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_G 0x1D420 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_H 0x1D421 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_I 0x1D422 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_J 0x1D423 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_K 0x1D424 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_L 0x1D425 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_M 0x1D426 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_N 0x1D427 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_O 0x1D428 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_P 0x1D429 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_Q 0x1D42A #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_R 0x1D42B #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_S 0x1D42C #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_T 0x1D42D #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_U 0x1D42E #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_V 0x1D42F #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_W 0x1D430 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_X 0x1D431 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_Y 0x1D432 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_Z 0x1D433 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_A 0x1D434 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_B 0x1D435 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_C 0x1D436 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_D 0x1D437 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_E 0x1D438 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_F 0x1D439 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_G 0x1D43A #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_H 0x1D43B #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_I 0x1D43C #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_J 0x1D43D #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_K 0x1D43E #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_L 0x1D43F #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_M 0x1D440 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_N 0x1D441 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_O 0x1D442 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_P 0x1D443 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_Q 0x1D444 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_R 0x1D445 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_S 0x1D446 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_T 0x1D447 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_U 0x1D448 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_V 0x1D449 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_W 0x1D44A #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_X 0x1D44B #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_Y 0x1D44C #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_Z 0x1D44D #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_A 0x1D44E #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_B 0x1D44F #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_C 0x1D450 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_D 0x1D451 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_E 0x1D452 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_F 0x1D453 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_G 0x1D454 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_I 0x1D456 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_J 0x1D457 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_K 0x1D458 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_L 0x1D459 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_M 0x1D45A #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_N 0x1D45B #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_O 0x1D45C #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_P 0x1D45D #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_Q 0x1D45E #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_R 0x1D45F #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_S 0x1D460 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_T 0x1D461 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_U 0x1D462 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_V 0x1D463 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_W 0x1D464 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_X 0x1D465 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_Y 0x1D466 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_Z 0x1D467 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_A 0x1D468 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_B 0x1D469 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_C 0x1D46A #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_D 0x1D46B #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_E 0x1D46C #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_F 0x1D46D #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_G 0x1D46E #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_H 0x1D46F #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_I 0x1D470 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_J 0x1D471 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_K 0x1D472 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_L 0x1D473 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_M 0x1D474 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_N 0x1D475 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_O 0x1D476 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_P 0x1D477 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_Q 0x1D478 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_R 0x1D479 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_S 0x1D47A #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_T 0x1D47B #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_U 0x1D47C #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_V 0x1D47D #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_W 0x1D47E #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_X 0x1D47F #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_Y 0x1D480 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_Z 0x1D481 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_A 0x1D482 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_B 0x1D483 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_C 0x1D484 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_D 0x1D485 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_E 0x1D486 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_F 0x1D487 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_G 0x1D488 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_H 0x1D489 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_I 0x1D48A #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_J 0x1D48B #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_K 0x1D48C #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_L 0x1D48D #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_M 0x1D48E #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_N 0x1D48F #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_O 0x1D490 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_P 0x1D491 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_Q 0x1D492 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_R 0x1D493 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_S 0x1D494 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_T 0x1D495 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_U 0x1D496 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_V 0x1D497 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_W 0x1D498 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_X 0x1D499 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_Y 0x1D49A #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_Z 0x1D49B #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_A 0x1D49C #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_C 0x1D49E #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_D 0x1D49F #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_G 0x1D4A2 #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_J 0x1D4A5 #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_K 0x1D4A6 #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_N 0x1D4A9 #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_O 0x1D4AA #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_P 0x1D4AB #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_Q 0x1D4AC #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_S 0x1D4AE #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_T 0x1D4AF #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_U 0x1D4B0 #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_V 0x1D4B1 #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_W 0x1D4B2 #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_X 0x1D4B3 #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_Y 0x1D4B4 #define T_UTF_32_MATHEMATICAL_SCRIPT_CAPITAL_Z 0x1D4B5 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_A 0x1D4B6 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_B 0x1D4B7 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_C 0x1D4B8 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_D 0x1D4B9 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_F 0x1D4BB #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_H 0x1D4BD #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_I 0x1D4BE #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_J 0x1D4BF #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_K 0x1D4C0 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_L 0x1D4C1 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_M 0x1D4C2 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_N 0x1D4C3 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_P 0x1D4C5 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_Q 0x1D4C6 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_R 0x1D4C7 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_S 0x1D4C8 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_T 0x1D4C9 #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_U 0x1D4CA #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_V 0x1D4CB #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_W 0x1D4CC #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_X 0x1D4CD #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_Y 0x1D4CE #define T_UTF_32_MATHEMATICAL_SCRIPT_SMALL_Z 0x1D4CF #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_A 0x1D4D0 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_B 0x1D4D1 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_C 0x1D4D2 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_D 0x1D4D3 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_E 0x1D4D4 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_F 0x1D4D5 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_G 0x1D4D6 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_H 0x1D4D7 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_I 0x1D4D8 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_J 0x1D4D9 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_K 0x1D4DA #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_L 0x1D4DB #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_M 0x1D4DC #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_N 0x1D4DD #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_O 0x1D4DE #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_P 0x1D4DF #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_Q 0x1D4E0 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_R 0x1D4E1 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_S 0x1D4E2 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_T 0x1D4E3 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_U 0x1D4E4 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_V 0x1D4E5 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_W 0x1D4E6 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_X 0x1D4E7 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_Y 0x1D4E8 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_CAPITAL_Z 0x1D4E9 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_A 0x1D4EA #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_B 0x1D4EB #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_C 0x1D4EC #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_D 0x1D4ED #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_E 0x1D4EE #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_F 0x1D4EF #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_G 0x1D4F0 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_H 0x1D4F1 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_I 0x1D4F2 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_J 0x1D4F3 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_K 0x1D4F4 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_L 0x1D4F5 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_M 0x1D4F6 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_N 0x1D4F7 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_O 0x1D4F8 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_P 0x1D4F9 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_Q 0x1D4FA #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_R 0x1D4FB #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_S 0x1D4FC #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_T 0x1D4FD #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_U 0x1D4FE #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_V 0x1D4FF #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_W 0x1D500 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_X 0x1D501 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_Y 0x1D502 #define T_UTF_32_MATHEMATICAL_BOLD_SCRIPT_SMALL_Z 0x1D503 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_A 0x1D504 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_B 0x1D505 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_D 0x1D507 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_E 0x1D508 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_F 0x1D509 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_G 0x1D50A #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_J 0x1D50D #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_K 0x1D50E #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_L 0x1D50F #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_M 0x1D510 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_N 0x1D511 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_O 0x1D512 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_P 0x1D513 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_Q 0x1D514 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_S 0x1D516 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_T 0x1D517 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_U 0x1D518 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_V 0x1D519 #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_W 0x1D51A #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_X 0x1D51B #define T_UTF_32_MATHEMATICAL_FRAKTUR_CAPITAL_Y 0x1D51C #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_A 0x1D51E #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_B 0x1D51F #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_C 0x1D520 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_D 0x1D521 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_E 0x1D522 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_F 0x1D523 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_G 0x1D524 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_H 0x1D525 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_I 0x1D526 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_J 0x1D527 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_K 0x1D528 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_L 0x1D529 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_M 0x1D52A #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_N 0x1D52B #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_O 0x1D52C #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_P 0x1D52D #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_Q 0x1D52E #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_R 0x1D52F #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_S 0x1D530 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_T 0x1D531 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_U 0x1D532 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_V 0x1D533 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_W 0x1D534 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_X 0x1D535 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_Y 0x1D536 #define T_UTF_32_MATHEMATICAL_FRAKTUR_SMALL_Z 0x1D537 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_A 0x1D538 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_B 0x1D539 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_D 0x1D53B #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_E 0x1D53C #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_F 0x1D53D #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_G 0x1D53E #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_I 0x1D540 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_J 0x1D541 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_K 0x1D542 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_L 0x1D543 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_M 0x1D544 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_O 0x1D546 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_S 0x1D54A #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_T 0x1D54B #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_U 0x1D54C #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_V 0x1D54D #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_W 0x1D54E #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_X 0x1D54F #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_CAPITAL_Y 0x1D550 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_A 0x1D552 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_B 0x1D553 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_C 0x1D554 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_D 0x1D555 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_E 0x1D556 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_F 0x1D557 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_G 0x1D558 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_H 0x1D559 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_I 0x1D55A #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_J 0x1D55B #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_K 0x1D55C #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_L 0x1D55D #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_M 0x1D55E #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_N 0x1D55F #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_O 0x1D560 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_P 0x1D561 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_Q 0x1D562 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_R 0x1D563 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_S 0x1D564 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_T 0x1D565 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_U 0x1D566 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_V 0x1D567 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_W 0x1D568 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_X 0x1D569 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_Y 0x1D56A #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_SMALL_Z 0x1D56B #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_A 0x1D56C #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_B 0x1D56D #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_C 0x1D56E #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_D 0x1D56F #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_E 0x1D570 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_F 0x1D571 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_G 0x1D572 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_H 0x1D573 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_I 0x1D574 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_J 0x1D575 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_K 0x1D576 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_L 0x1D577 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_M 0x1D578 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_N 0x1D579 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_O 0x1D57A #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_P 0x1D57B #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_Q 0x1D57C #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_R 0x1D57D #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_S 0x1D57E #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_T 0x1D57F #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_U 0x1D580 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_V 0x1D581 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_W 0x1D582 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_X 0x1D583 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_Y 0x1D584 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_CAPITAL_Z 0x1D585 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_A 0x1D586 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_B 0x1D587 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_C 0x1D588 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_D 0x1D589 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_E 0x1D58A #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_F 0x1D58B #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_G 0x1D58C #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_H 0x1D58D #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_I 0x1D58E #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_J 0x1D58F #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_K 0x1D590 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_L 0x1D591 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_M 0x1D592 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_N 0x1D593 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_O 0x1D594 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_P 0x1D595 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_Q 0x1D596 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_R 0x1D597 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_S 0x1D598 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_T 0x1D599 #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_U 0x1D59A #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_V 0x1D59B #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_W 0x1D59C #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_X 0x1D59D #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_Y 0x1D59E #define T_UTF_32_MATHEMATICAL_BOLD_FRAKTUR_SMALL_Z 0x1D59F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_A 0x1D5A0 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_B 0x1D5A1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_C 0x1D5A2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_D 0x1D5A3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_E 0x1D5A4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_F 0x1D5A5 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_G 0x1D5A6 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_H 0x1D5A7 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_I 0x1D5A8 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_J 0x1D5A9 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_K 0x1D5AA #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_L 0x1D5AB #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_M 0x1D5AC #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_N 0x1D5AD #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_O 0x1D5AE #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_P 0x1D5AF #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_Q 0x1D5B0 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_R 0x1D5B1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_S 0x1D5B2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_T 0x1D5B3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_U 0x1D5B4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_V 0x1D5B5 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_W 0x1D5B6 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_X 0x1D5B7 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_Y 0x1D5B8 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_CAPITAL_Z 0x1D5B9 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_A 0x1D5BA #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_B 0x1D5BB #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_C 0x1D5BC #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_D 0x1D5BD #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_E 0x1D5BE #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_F 0x1D5BF #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_G 0x1D5C0 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_H 0x1D5C1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_I 0x1D5C2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_J 0x1D5C3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_K 0x1D5C4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_L 0x1D5C5 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_M 0x1D5C6 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_N 0x1D5C7 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_O 0x1D5C8 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_P 0x1D5C9 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_Q 0x1D5CA #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_R 0x1D5CB #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_S 0x1D5CC #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_T 0x1D5CD #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_U 0x1D5CE #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_V 0x1D5CF #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_W 0x1D5D0 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_X 0x1D5D1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_Y 0x1D5D2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_SMALL_Z 0x1D5D3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_A 0x1D5D4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_B 0x1D5D5 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_C 0x1D5D6 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_D 0x1D5D7 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_E 0x1D5D8 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_F 0x1D5D9 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_G 0x1D5DA #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_H 0x1D5DB #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_I 0x1D5DC #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_J 0x1D5DD #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_K 0x1D5DE #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_L 0x1D5DF #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_M 0x1D5E0 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_N 0x1D5E1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_O 0x1D5E2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_P 0x1D5E3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_Q 0x1D5E4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_R 0x1D5E5 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_S 0x1D5E6 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_T 0x1D5E7 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_U 0x1D5E8 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_V 0x1D5E9 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_W 0x1D5EA #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_X 0x1D5EB #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_Y 0x1D5EC #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_Z 0x1D5ED #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_A 0x1D5EE #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_B 0x1D5EF #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_C 0x1D5F0 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_D 0x1D5F1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_E 0x1D5F2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_F 0x1D5F3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_G 0x1D5F4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_H 0x1D5F5 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_I 0x1D5F6 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_J 0x1D5F7 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_K 0x1D5F8 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_L 0x1D5F9 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_M 0x1D5FA #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_N 0x1D5FB #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_O 0x1D5FC #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_P 0x1D5FD #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_Q 0x1D5FE #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_R 0x1D5FF #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_S 0x1D600 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_T 0x1D601 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_U 0x1D602 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_V 0x1D603 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_W 0x1D604 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_X 0x1D605 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_Y 0x1D606 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_Z 0x1D607 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_A 0x1D608 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_B 0x1D609 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_C 0x1D60A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_D 0x1D60B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_E 0x1D60C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_F 0x1D60D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_G 0x1D60E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_H 0x1D60F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_I 0x1D610 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_J 0x1D611 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_K 0x1D612 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_L 0x1D613 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_M 0x1D614 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_N 0x1D615 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_O 0x1D616 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_P 0x1D617 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_Q 0x1D618 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_R 0x1D619 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_S 0x1D61A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_T 0x1D61B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_U 0x1D61C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_V 0x1D61D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_W 0x1D61E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_X 0x1D61F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_Y 0x1D620 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_CAPITAL_Z 0x1D621 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_A 0x1D622 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_B 0x1D623 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_C 0x1D624 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_D 0x1D625 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_E 0x1D626 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_F 0x1D627 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_G 0x1D628 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_H 0x1D629 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_I 0x1D62A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_J 0x1D62B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_K 0x1D62C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_L 0x1D62D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_M 0x1D62E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_N 0x1D62F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_O 0x1D630 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_P 0x1D631 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_Q 0x1D632 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_R 0x1D633 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_S 0x1D634 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_T 0x1D635 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_U 0x1D636 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_V 0x1D637 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_W 0x1D638 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_X 0x1D639 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_Y 0x1D63A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_ITALIC_SMALL_Z 0x1D63B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_A 0x1D63C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_B 0x1D63D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_C 0x1D63E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_D 0x1D63F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_E 0x1D640 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_F 0x1D641 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_G 0x1D642 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_H 0x1D643 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_I 0x1D644 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_J 0x1D645 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_K 0x1D646 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_L 0x1D647 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_M 0x1D648 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_N 0x1D649 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_O 0x1D64A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_P 0x1D64B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_Q 0x1D64C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_R 0x1D64D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_S 0x1D64E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_T 0x1D64F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_U 0x1D650 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_V 0x1D651 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_W 0x1D652 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_X 0x1D653 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_Y 0x1D654 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_Z 0x1D655 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_A 0x1D656 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_B 0x1D657 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_C 0x1D658 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_D 0x1D659 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_E 0x1D65A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_F 0x1D65B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_G 0x1D65C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_H 0x1D65D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_I 0x1D65E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_J 0x1D65F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_K 0x1D660 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_L 0x1D661 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_M 0x1D662 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_N 0x1D663 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_O 0x1D664 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_P 0x1D665 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_Q 0x1D666 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_R 0x1D667 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_S 0x1D668 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_T 0x1D669 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_U 0x1D66A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_V 0x1D66B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_W 0x1D66C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_X 0x1D66D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_Y 0x1D66E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_Z 0x1D66F #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_A 0x1D670 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_B 0x1D671 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_C 0x1D672 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_D 0x1D673 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_E 0x1D674 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_F 0x1D675 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_G 0x1D676 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_H 0x1D677 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_I 0x1D678 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_J 0x1D679 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_K 0x1D67A #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_L 0x1D67B #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_M 0x1D67C #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_N 0x1D67D #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_O 0x1D67E #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_P 0x1D67F #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_Q 0x1D680 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_R 0x1D681 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_S 0x1D682 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_T 0x1D683 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_U 0x1D684 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_V 0x1D685 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_W 0x1D686 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_X 0x1D687 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_Y 0x1D688 #define T_UTF_32_MATHEMATICAL_MONOSPACE_CAPITAL_Z 0x1D689 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_A 0x1D68A #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_B 0x1D68B #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_C 0x1D68C #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_D 0x1D68D #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_E 0x1D68E #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_F 0x1D68F #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_G 0x1D690 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_H 0x1D691 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_I 0x1D692 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_J 0x1D693 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_K 0x1D694 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_L 0x1D695 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_M 0x1D696 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_N 0x1D697 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_O 0x1D698 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_P 0x1D699 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_Q 0x1D69A #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_R 0x1D69B #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_S 0x1D69C #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_T 0x1D69D #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_U 0x1D69E #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_V 0x1D69F #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_W 0x1D6A0 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_X 0x1D6A1 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_Y 0x1D6A2 #define T_UTF_32_MATHEMATICAL_MONOSPACE_SMALL_Z 0x1D6A3 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_DOTLESS_I 0x1D6A4 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_DOTLESS_J 0x1D6A5 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_ALPHA 0x1D6A8 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_BETA 0x1D6A9 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_GAMMA 0x1D6AA #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_DELTA 0x1D6AB #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_EPSILON 0x1D6AC #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_ZETA 0x1D6AD #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_ETA 0x1D6AE #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_THETA 0x1D6AF #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_IOTA 0x1D6B0 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_KAPPA 0x1D6B1 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_LAMDA 0x1D6B2 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_MU 0x1D6B3 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_NU 0x1D6B4 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_XI 0x1D6B5 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_OMICRON 0x1D6B6 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_PI 0x1D6B7 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_RHO 0x1D6B8 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_THETA_SYMBOL 0x1D6B9 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_SIGMA 0x1D6BA #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_TAU 0x1D6BB #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_UPSILON 0x1D6BC #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_PHI 0x1D6BD #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_CHI 0x1D6BE #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_PSI 0x1D6BF #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_OMEGA 0x1D6C0 #define T_UTF_32_MATHEMATICAL_BOLD_NABLA 0x1D6C1 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_ALPHA 0x1D6C2 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_BETA 0x1D6C3 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_GAMMA 0x1D6C4 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_DELTA 0x1D6C5 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_EPSILON 0x1D6C6 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_ZETA 0x1D6C7 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_ETA 0x1D6C8 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_THETA 0x1D6C9 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_IOTA 0x1D6CA #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_KAPPA 0x1D6CB #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_LAMDA 0x1D6CC #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_MU 0x1D6CD #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_NU 0x1D6CE #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_XI 0x1D6CF #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_OMICRON 0x1D6D0 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_PI 0x1D6D1 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_RHO 0x1D6D2 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_FINAL_SIGMA 0x1D6D3 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_SIGMA 0x1D6D4 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_TAU 0x1D6D5 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_UPSILON 0x1D6D6 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_PHI 0x1D6D7 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_CHI 0x1D6D8 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_PSI 0x1D6D9 #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_OMEGA 0x1D6DA #define T_UTF_32_MATHEMATICAL_BOLD_PARTIAL_DIFFERENTIAL 0x1D6DB #define T_UTF_32_MATHEMATICAL_BOLD_EPSILON_SYMBOL 0x1D6DC #define T_UTF_32_MATHEMATICAL_BOLD_THETA_SYMBOL 0x1D6DD #define T_UTF_32_MATHEMATICAL_BOLD_KAPPA_SYMBOL 0x1D6DE #define T_UTF_32_MATHEMATICAL_BOLD_PHI_SYMBOL 0x1D6DF #define T_UTF_32_MATHEMATICAL_BOLD_RHO_SYMBOL 0x1D6E0 #define T_UTF_32_MATHEMATICAL_BOLD_PI_SYMBOL 0x1D6E1 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_ALPHA 0x1D6E2 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_BETA 0x1D6E3 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_GAMMA 0x1D6E4 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_DELTA 0x1D6E5 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_EPSILON 0x1D6E6 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_ZETA 0x1D6E7 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_ETA 0x1D6E8 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_THETA 0x1D6E9 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_IOTA 0x1D6EA #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_KAPPA 0x1D6EB #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_LAMDA 0x1D6EC #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_MU 0x1D6ED #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_NU 0x1D6EE #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_XI 0x1D6EF #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_OMICRON 0x1D6F0 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_PI 0x1D6F1 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_RHO 0x1D6F2 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_THETA_SYMBOL 0x1D6F3 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_SIGMA 0x1D6F4 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_TAU 0x1D6F5 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_UPSILON 0x1D6F6 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_PHI 0x1D6F7 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_CHI 0x1D6F8 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_PSI 0x1D6F9 #define T_UTF_32_MATHEMATICAL_ITALIC_CAPITAL_OMEGA 0x1D6FA #define T_UTF_32_MATHEMATICAL_ITALIC_NABLA 0x1D6FB #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_ALPHA 0x1D6FC #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_BETA 0x1D6FD #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_GAMMA 0x1D6FE #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_DELTA 0x1D6FF #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_EPSILON 0x1D700 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_ZETA 0x1D701 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_ETA 0x1D702 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_THETA 0x1D703 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_IOTA 0x1D704 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_KAPPA 0x1D705 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_LAMDA 0x1D706 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_MU 0x1D707 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_NU 0x1D708 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_XI 0x1D709 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_OMICRON 0x1D70A #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_PI 0x1D70B #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_RHO 0x1D70C #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_FINAL_SIGMA 0x1D70D #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_SIGMA 0x1D70E #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_TAU 0x1D70F #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_UPSILON 0x1D710 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_PHI 0x1D711 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_CHI 0x1D712 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_PSI 0x1D713 #define T_UTF_32_MATHEMATICAL_ITALIC_SMALL_OMEGA 0x1D714 #define T_UTF_32_MATHEMATICAL_ITALIC_PARTIAL_DIFFERENTIAL 0x1D715 #define T_UTF_32_MATHEMATICAL_ITALIC_EPSILON_SYMBOL 0x1D716 #define T_UTF_32_MATHEMATICAL_ITALIC_THETA_SYMBOL 0x1D717 #define T_UTF_32_MATHEMATICAL_ITALIC_KAPPA_SYMBOL 0x1D718 #define T_UTF_32_MATHEMATICAL_ITALIC_PHI_SYMBOL 0x1D719 #define T_UTF_32_MATHEMATICAL_ITALIC_RHO_SYMBOL 0x1D71A #define T_UTF_32_MATHEMATICAL_ITALIC_PI_SYMBOL 0x1D71B #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_ALPHA 0x1D71C #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_BETA 0x1D71D #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_GAMMA 0x1D71E #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_DELTA 0x1D71F #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_EPSILON 0x1D720 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_ZETA 0x1D721 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_ETA 0x1D722 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_THETA 0x1D723 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_IOTA 0x1D724 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_KAPPA 0x1D725 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_LAMDA 0x1D726 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_MU 0x1D727 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_NU 0x1D728 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_XI 0x1D729 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_OMICRON 0x1D72A #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_PI 0x1D72B #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_RHO 0x1D72C #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_THETA_SYMBOL 0x1D72D #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_SIGMA 0x1D72E #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_TAU 0x1D72F #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_UPSILON 0x1D730 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_PHI 0x1D731 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_CHI 0x1D732 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_PSI 0x1D733 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_CAPITAL_OMEGA 0x1D734 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_NABLA 0x1D735 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_ALPHA 0x1D736 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_BETA 0x1D737 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_GAMMA 0x1D738 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_DELTA 0x1D739 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_EPSILON 0x1D73A #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_ZETA 0x1D73B #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_ETA 0x1D73C #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_THETA 0x1D73D #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_IOTA 0x1D73E #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_KAPPA 0x1D73F #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_LAMDA 0x1D740 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_MU 0x1D741 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_NU 0x1D742 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_XI 0x1D743 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_OMICRON 0x1D744 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_PI 0x1D745 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_RHO 0x1D746 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_FINAL_SIGMA 0x1D747 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_SIGMA 0x1D748 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_TAU 0x1D749 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_UPSILON 0x1D74A #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_PHI 0x1D74B #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_CHI 0x1D74C #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_PSI 0x1D74D #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_SMALL_OMEGA 0x1D74E #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_PARTIAL_DIFFERENTIAL 0x1D74F #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_EPSILON_SYMBOL 0x1D750 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_THETA_SYMBOL 0x1D751 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_KAPPA_SYMBOL 0x1D752 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_PHI_SYMBOL 0x1D753 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_RHO_SYMBOL 0x1D754 #define T_UTF_32_MATHEMATICAL_BOLD_ITALIC_PI_SYMBOL 0x1D755 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_ALPHA 0x1D756 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_BETA 0x1D757 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_GAMMA 0x1D758 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_DELTA 0x1D759 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_EPSILON 0x1D75A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_ZETA 0x1D75B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_ETA 0x1D75C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_THETA 0x1D75D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_IOTA 0x1D75E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_KAPPA 0x1D75F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_LAMDA 0x1D760 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_MU 0x1D761 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_NU 0x1D762 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_XI 0x1D763 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_OMICRON 0x1D764 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_PI 0x1D765 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_RHO 0x1D766 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_THETA_SYMBOL 0x1D767 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_SIGMA 0x1D768 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_TAU 0x1D769 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_UPSILON 0x1D76A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_PHI 0x1D76B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_CHI 0x1D76C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_PSI 0x1D76D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_CAPITAL_OMEGA 0x1D76E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_NABLA 0x1D76F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_ALPHA 0x1D770 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_BETA 0x1D771 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_GAMMA 0x1D772 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_DELTA 0x1D773 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_EPSILON 0x1D774 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_ZETA 0x1D775 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_ETA 0x1D776 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_THETA 0x1D777 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_IOTA 0x1D778 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_KAPPA 0x1D779 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_LAMDA 0x1D77A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_MU 0x1D77B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_NU 0x1D77C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_XI 0x1D77D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_OMICRON 0x1D77E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_PI 0x1D77F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_RHO 0x1D780 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_FINAL_SIGMA 0x1D781 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_SIGMA 0x1D782 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_TAU 0x1D783 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_UPSILON 0x1D784 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_PHI 0x1D785 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_CHI 0x1D786 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_PSI 0x1D787 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_SMALL_OMEGA 0x1D788 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_PARTIAL_DIFFERENTIAL 0x1D789 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_EPSILON_SYMBOL 0x1D78A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_THETA_SYMBOL 0x1D78B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_KAPPA_SYMBOL 0x1D78C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_PHI_SYMBOL 0x1D78D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_RHO_SYMBOL 0x1D78E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_PI_SYMBOL 0x1D78F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_ALPHA 0x1D790 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_BETA 0x1D791 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_GAMMA 0x1D792 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_DELTA 0x1D793 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_EPSILON 0x1D794 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_ZETA 0x1D795 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_ETA 0x1D796 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_THETA 0x1D797 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_IOTA 0x1D798 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_KAPPA 0x1D799 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_LAMDA 0x1D79A #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_MU 0x1D79B #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_NU 0x1D79C #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_XI 0x1D79D #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_OMICRON 0x1D79E #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_PI 0x1D79F #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_RHO 0x1D7A0 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_THETA_SYMBOL 0x1D7A1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_SIGMA 0x1D7A2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_TAU 0x1D7A3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_UPSILON 0x1D7A4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_PHI 0x1D7A5 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_CHI 0x1D7A6 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_PSI 0x1D7A7 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_CAPITAL_OMEGA 0x1D7A8 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_NABLA 0x1D7A9 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_ALPHA 0x1D7AA #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_BETA 0x1D7AB #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_GAMMA 0x1D7AC #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_DELTA 0x1D7AD #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_EPSILON 0x1D7AE #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_ZETA 0x1D7AF #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_ETA 0x1D7B0 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_THETA 0x1D7B1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_IOTA 0x1D7B2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_KAPPA 0x1D7B3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_LAMDA 0x1D7B4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_MU 0x1D7B5 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_NU 0x1D7B6 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_XI 0x1D7B7 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_OMICRON 0x1D7B8 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_PI 0x1D7B9 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_RHO 0x1D7BA #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_FINAL_SIGMA 0x1D7BB #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_SIGMA 0x1D7BC #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_TAU 0x1D7BD #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_UPSILON 0x1D7BE #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_PHI 0x1D7BF #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_CHI 0x1D7C0 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_PSI 0x1D7C1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_SMALL_OMEGA 0x1D7C2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_PARTIAL_DIFFERENTIAL 0x1D7C3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_EPSILON_SYMBOL 0x1D7C4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_THETA_SYMBOL 0x1D7C5 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_KAPPA_SYMBOL 0x1D7C6 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_PHI_SYMBOL 0x1D7C7 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_RHO_SYMBOL 0x1D7C8 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_ITALIC_PI_SYMBOL 0x1D7C9 #define T_UTF_32_MATHEMATICAL_BOLD_CAPITAL_DIGAMMA 0x1D7CA #define T_UTF_32_MATHEMATICAL_BOLD_SMALL_DIGAMMA 0x1D7CB #define T_UTF_32_MATHEMATICAL_BOLD_DIGIT_ZERO 0x1D7CE #define T_UTF_32_MATHEMATICAL_BOLD_DIGIT_ONE 0x1D7CF #define T_UTF_32_MATHEMATICAL_BOLD_DIGIT_TWO 0x1D7D0 #define T_UTF_32_MATHEMATICAL_BOLD_DIGIT_THREE 0x1D7D1 #define T_UTF_32_MATHEMATICAL_BOLD_DIGIT_FOUR 0x1D7D2 #define T_UTF_32_MATHEMATICAL_BOLD_DIGIT_FIVE 0x1D7D3 #define T_UTF_32_MATHEMATICAL_BOLD_DIGIT_SIX 0x1D7D4 #define T_UTF_32_MATHEMATICAL_BOLD_DIGIT_SEVEN 0x1D7D5 #define T_UTF_32_MATHEMATICAL_BOLD_DIGIT_EIGHT 0x1D7D6 #define T_UTF_32_MATHEMATICAL_BOLD_DIGIT_NINE 0x1D7D7 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_DIGIT_ZERO 0x1D7D8 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_DIGIT_ONE 0x1D7D9 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_DIGIT_TWO 0x1D7DA #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_DIGIT_THREE 0x1D7DB #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_DIGIT_FOUR 0x1D7DC #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_DIGIT_FIVE 0x1D7DD #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_DIGIT_SIX 0x1D7DE #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_DIGIT_SEVEN 0x1D7DF #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_DIGIT_EIGHT 0x1D7E0 #define T_UTF_32_MATHEMATICAL_DOUBLE_STRUCK_DIGIT_NINE 0x1D7E1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_DIGIT_ZERO 0x1D7E2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_DIGIT_ONE 0x1D7E3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_DIGIT_TWO 0x1D7E4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_DIGIT_THREE 0x1D7E5 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_DIGIT_FOUR 0x1D7E6 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_DIGIT_FIVE 0x1D7E7 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_DIGIT_SIX 0x1D7E8 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_DIGIT_SEVEN 0x1D7E9 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_DIGIT_EIGHT 0x1D7EA #define T_UTF_32_MATHEMATICAL_SANS_SERIF_DIGIT_NINE 0x1D7EB #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_DIGIT_ZERO 0x1D7EC #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_DIGIT_ONE 0x1D7ED #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_DIGIT_TWO 0x1D7EE #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_DIGIT_THREE 0x1D7EF #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_DIGIT_FOUR 0x1D7F0 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_DIGIT_FIVE 0x1D7F1 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_DIGIT_SIX 0x1D7F2 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_DIGIT_SEVEN 0x1D7F3 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_DIGIT_EIGHT 0x1D7F4 #define T_UTF_32_MATHEMATICAL_SANS_SERIF_BOLD_DIGIT_NINE 0x1D7F5 #define T_UTF_32_MATHEMATICAL_MONOSPACE_DIGIT_ZERO 0x1D7F6 #define T_UTF_32_MATHEMATICAL_MONOSPACE_DIGIT_ONE 0x1D7F7 #define T_UTF_32_MATHEMATICAL_MONOSPACE_DIGIT_TWO 0x1D7F8 #define T_UTF_32_MATHEMATICAL_MONOSPACE_DIGIT_THREE 0x1D7F9 #define T_UTF_32_MATHEMATICAL_MONOSPACE_DIGIT_FOUR 0x1D7FA #define T_UTF_32_MATHEMATICAL_MONOSPACE_DIGIT_FIVE 0x1D7FB #define T_UTF_32_MATHEMATICAL_MONOSPACE_DIGIT_SIX 0x1D7FC #define T_UTF_32_MATHEMATICAL_MONOSPACE_DIGIT_SEVEN 0x1D7FD #define T_UTF_32_MATHEMATICAL_MONOSPACE_DIGIT_EIGHT 0x1D7FE #define T_UTF_32_MATHEMATICAL_MONOSPACE_DIGIT_NINE 0x1D7FF #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX 0x1D800 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_INDEX 0x1D801 #define T_UTF_32_SIGNWRITING_HAND_CUP_INDEX 0x1D802 #define T_UTF_32_SIGNWRITING_HAND_OVAL_INDEX 0x1D803 #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX 0x1D804 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_INDEX 0x1D805 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_BENT 0x1D806 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_INDEX_BENT 0x1D807 #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_UNDER_INDEX_BENT 0x1D808 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_RAISED_KNUCKLE 0x1D809 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_CUPPED 0x1D80A #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_HINGED 0x1D80B #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_HINGED_LOW 0x1D80C #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_INDEX_HINGE 0x1D80D #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE 0x1D80E #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_INDEX_MIDDLE 0x1D80F #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_BENT 0x1D810 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_RAISED_KNUCKLES 0x1D811 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_HINGED 0x1D812 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_UP_MIDDLE_HINGED 0x1D813 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_HINGED_MIDDLE_UP 0x1D814 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED 0x1D815 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED_INDEX_BENT 0x1D816 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED_MIDDLE_BENT 0x1D817 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED_CUPPED 0x1D818 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED_HINGED 0x1D819 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CROSSED 0x1D81A #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_INDEX_MIDDLE_CROSSED 0x1D81B #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_BENT_OVER_INDEX 0x1D81C #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_BENT_OVER_MIDDLE 0x1D81D #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_THUMB 0x1D81E #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_INDEX_MIDDLE_THUMB 0x1D81F #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_STRAIGHT_THUMB_BENT 0x1D820 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_BENT_THUMB_STRAIGHT 0x1D821 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_THUMB_BENT 0x1D822 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_HINGED_SPREAD_THUMB_SIDE 0x1D823 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_UP_MIDDLE_HINGED_THUMB_SIDE 0x1D824 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_UP_MIDDLE_HINGED_THUMB_CONJOINED 0x1D825 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_HINGED_MIDDLE_UP_THUMB_SIDE 0x1D826 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_UP_SPREAD_THUMB_FORWARD 0x1D827 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_THUMB_CUPPED 0x1D828 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_THUMB_CIRCLED 0x1D829 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_THUMB_HOOKED 0x1D82A #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_THUMB_HINGED 0x1D82B #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_BETWEEN_INDEX_MIDDLE_STRAIGHT 0x1D82C #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED_THUMB_SIDE 0x1D82D #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED_THUMB_SIDE_CONJOINED 0x1D82E #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED_THUMB_SIDE_BENT 0x1D82F #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_THUMB_HOOKED_INDEX_UP 0x1D830 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_HOOKED_MIDDLE_UP 0x1D831 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED_HINGED_THUMB_SIDE 0x1D832 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CROSSED_THUMB_SIDE 0x1D833 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED_THUMB_FORWARD 0x1D834 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CONJOINED_CUPPED_THUMB_FORWARD 0x1D835 #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_THUMB_CUPPED_INDEX_UP 0x1D836 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_CUPPED_MIDDLE_UP 0x1D837 #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_THUMB_CIRCLED_INDEX_UP 0x1D838 #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_THUMB_CIRCLED_INDEX_HINGED 0x1D839 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_ANGLED_OUT_MIDDLE_UP 0x1D83A #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_ANGLED_IN_MIDDLE_UP 0x1D83B #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_CIRCLED_MIDDLE_UP 0x1D83C #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_THUMB_CONJOINED_HINGED 0x1D83D #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_THUMB_ANGLED_OUT 0x1D83E #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_THUMB_ANGLED 0x1D83F #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_THUMB_ANGLED_OUT_INDEX_UP 0x1D840 #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_THUMB_ANGLED_OUT_INDEX_CROSSED 0x1D841 #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_THUMB_ANGLED_INDEX_UP 0x1D842 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_HOOKED_MIDDLE_HINGED 0x1D843 #define T_UTF_32_SIGNWRITING_HAND_FLAT_FOUR_FINGERS 0x1D844 #define T_UTF_32_SIGNWRITING_HAND_FLAT_FOUR_FINGERS_BENT 0x1D845 #define T_UTF_32_SIGNWRITING_HAND_FLAT_FOUR_FINGERS_HINGED 0x1D846 #define T_UTF_32_SIGNWRITING_HAND_FLAT_FOUR_FINGERS_CONJOINED 0x1D847 #define T_UTF_32_SIGNWRITING_HAND_FLAT_FOUR_FINGERS_CONJOINED_SPLIT 0x1D848 #define T_UTF_32_SIGNWRITING_HAND_CLAW_FOUR_FINGERS_CONJOINED 0x1D849 #define T_UTF_32_SIGNWRITING_HAND_FIST_FOUR_FINGERS_CONJOINED_BENT 0x1D84A #define T_UTF_32_SIGNWRITING_HAND_HINGE_FOUR_FINGERS_CONJOINED 0x1D84B #define T_UTF_32_SIGNWRITING_HAND_FLAT_FIVE_FINGERS_SPREAD 0x1D84C #define T_UTF_32_SIGNWRITING_HAND_FLAT_HEEL_FIVE_FINGERS_SPREAD 0x1D84D #define T_UTF_32_SIGNWRITING_HAND_FLAT_FIVE_FINGERS_SPREAD_FOUR_BENT 0x1D84E #define T_UTF_32_SIGNWRITING_HAND_FLAT_HEEL_FIVE_FINGERS_SPREAD_FOUR_BENT 0x1D84F #define T_UTF_32_SIGNWRITING_HAND_FLAT_FIVE_FINGERS_SPREAD_BENT 0x1D850 #define T_UTF_32_SIGNWRITING_HAND_FLAT_HEEL_FIVE_FINGERS_SPREAD_BENT 0x1D851 #define T_UTF_32_SIGNWRITING_HAND_FLAT_FIVE_FINGERS_SPREAD_THUMB_FORWARD 0x1D852 #define T_UTF_32_SIGNWRITING_HAND_CUP_FIVE_FINGERS_SPREAD 0x1D853 #define T_UTF_32_SIGNWRITING_HAND_CUP_FIVE_FINGERS_SPREAD_OPEN 0x1D854 #define T_UTF_32_SIGNWRITING_HAND_HINGE_FIVE_FINGERS_SPREAD_OPEN 0x1D855 #define T_UTF_32_SIGNWRITING_HAND_OVAL_FIVE_FINGERS_SPREAD 0x1D856 #define T_UTF_32_SIGNWRITING_HAND_FLAT_FIVE_FINGERS_SPREAD_HINGED 0x1D857 #define T_UTF_32_SIGNWRITING_HAND_FLAT_FIVE_FINGERS_SPREAD_HINGED_THUMB_SIDE 0x1D858 #define T_UTF_32_SIGNWRITING_HAND_FLAT_FIVE_FINGERS_SPREAD_HINGED_NO_THUMB 0x1D859 #define T_UTF_32_SIGNWRITING_HAND_FLAT 0x1D85A #define T_UTF_32_SIGNWRITING_HAND_FLAT_BETWEEN_PALM_FACINGS 0x1D85B #define T_UTF_32_SIGNWRITING_HAND_FLAT_HEEL 0x1D85C #define T_UTF_32_SIGNWRITING_HAND_FLAT_THUMB_SIDE 0x1D85D #define T_UTF_32_SIGNWRITING_HAND_FLAT_HEEL_THUMB_SIDE 0x1D85E #define T_UTF_32_SIGNWRITING_HAND_FLAT_THUMB_BENT 0x1D85F #define T_UTF_32_SIGNWRITING_HAND_FLAT_THUMB_FORWARD 0x1D860 #define T_UTF_32_SIGNWRITING_HAND_FLAT_SPLIT_INDEX_THUMB_SIDE 0x1D861 #define T_UTF_32_SIGNWRITING_HAND_FLAT_SPLIT_CENTRE 0x1D862 #define T_UTF_32_SIGNWRITING_HAND_FLAT_SPLIT_CENTRE_THUMB_SIDE 0x1D863 #define T_UTF_32_SIGNWRITING_HAND_FLAT_SPLIT_CENTRE_THUMB_SIDE_BENT 0x1D864 #define T_UTF_32_SIGNWRITING_HAND_FLAT_SPLIT_LITTLE 0x1D865 #define T_UTF_32_SIGNWRITING_HAND_CLAW 0x1D866 #define T_UTF_32_SIGNWRITING_HAND_CLAW_THUMB_SIDE 0x1D867 #define T_UTF_32_SIGNWRITING_HAND_CLAW_NO_THUMB 0x1D868 #define T_UTF_32_SIGNWRITING_HAND_CLAW_THUMB_FORWARD 0x1D869 #define T_UTF_32_SIGNWRITING_HAND_HOOK_CURLICUE 0x1D86A #define T_UTF_32_SIGNWRITING_HAND_HOOK 0x1D86B #define T_UTF_32_SIGNWRITING_HAND_CUP_OPEN 0x1D86C #define T_UTF_32_SIGNWRITING_HAND_CUP 0x1D86D #define T_UTF_32_SIGNWRITING_HAND_CUP_OPEN_THUMB_SIDE 0x1D86E #define T_UTF_32_SIGNWRITING_HAND_CUP_THUMB_SIDE 0x1D86F #define T_UTF_32_SIGNWRITING_HAND_CUP_OPEN_NO_THUMB 0x1D870 #define T_UTF_32_SIGNWRITING_HAND_CUP_NO_THUMB 0x1D871 #define T_UTF_32_SIGNWRITING_HAND_CUP_OPEN_THUMB_FORWARD 0x1D872 #define T_UTF_32_SIGNWRITING_HAND_CUP_THUMB_FORWARD 0x1D873 #define T_UTF_32_SIGNWRITING_HAND_CURLICUE_OPEN 0x1D874 #define T_UTF_32_SIGNWRITING_HAND_CURLICUE 0x1D875 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE 0x1D876 #define T_UTF_32_SIGNWRITING_HAND_OVAL 0x1D877 #define T_UTF_32_SIGNWRITING_HAND_OVAL_THUMB_SIDE 0x1D878 #define T_UTF_32_SIGNWRITING_HAND_OVAL_NO_THUMB 0x1D879 #define T_UTF_32_SIGNWRITING_HAND_OVAL_THUMB_FORWARD 0x1D87A #define T_UTF_32_SIGNWRITING_HAND_HINGE_OPEN 0x1D87B #define T_UTF_32_SIGNWRITING_HAND_HINGE_OPEN_THUMB_FORWARD 0x1D87C #define T_UTF_32_SIGNWRITING_HAND_HINGE 0x1D87D #define T_UTF_32_SIGNWRITING_HAND_HINGE_SMALL 0x1D87E #define T_UTF_32_SIGNWRITING_HAND_HINGE_OPEN_THUMB_SIDE 0x1D87F #define T_UTF_32_SIGNWRITING_HAND_HINGE_THUMB_SIDE 0x1D880 #define T_UTF_32_SIGNWRITING_HAND_HINGE_OPEN_NO_THUMB 0x1D881 #define T_UTF_32_SIGNWRITING_HAND_HINGE_NO_THUMB 0x1D882 #define T_UTF_32_SIGNWRITING_HAND_HINGE_THUMB_SIDE_TOUCHING_INDEX 0x1D883 #define T_UTF_32_SIGNWRITING_HAND_HINGE_THUMB_BETWEEN_MIDDLE_RING 0x1D884 #define T_UTF_32_SIGNWRITING_HAND_ANGLE 0x1D885 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_RING 0x1D886 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_INDEX_MIDDLE_RING 0x1D887 #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX_MIDDLE_RING 0x1D888 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_INDEX_MIDDLE_RING 0x1D889 #define T_UTF_32_SIGNWRITING_HAND_HINGE_LITTLE 0x1D88A #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_RING_BENT 0x1D88B #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_RING_CONJOINED 0x1D88C #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX_MIDDLE_RING_CONJOINED 0x1D88D #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_DOWN 0x1D88E #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_DOWN_RIPPLE_STRAIGHT 0x1D88F #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_DOWN_RIPPLE_CURVED 0x1D890 #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_DOWN_OTHERS_CIRCLED 0x1D891 #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_UP 0x1D892 #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_UNDER_LITTLE_UP 0x1D893 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_LITTLE_UP 0x1D894 #define T_UTF_32_SIGNWRITING_HAND_OVAL_LITTLE_UP 0x1D895 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_LITTLE_UP 0x1D896 #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_RAISED_KNUCKLE 0x1D897 #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_BENT 0x1D898 #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_TOUCHES_THUMB 0x1D899 #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_THUMB 0x1D89A #define T_UTF_32_SIGNWRITING_HAND_HINGE_LITTLE_THUMB 0x1D89B #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_INDEX_THUMB 0x1D89C #define T_UTF_32_SIGNWRITING_HAND_HINGE_LITTLE_INDEX_THUMB 0x1D89D #define T_UTF_32_SIGNWRITING_HAND_ANGLE_LITTLE_INDEX_THUMB_INDEX_THUMB_OUT 0x1D89E #define T_UTF_32_SIGNWRITING_HAND_ANGLE_LITTLE_INDEX_THUMB_INDEX_THUMB 0x1D89F #define T_UTF_32_SIGNWRITING_HAND_FIST_LITTLE_INDEX 0x1D8A0 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_LITTLE_INDEX 0x1D8A1 #define T_UTF_32_SIGNWRITING_HAND_HINGE_LITTLE_INDEX 0x1D8A2 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_LITTLE_INDEX 0x1D8A3 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_LITTLE 0x1D8A4 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_INDEX_MIDDLE_LITTLE 0x1D8A5 #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX_MIDDLE_LITTLE 0x1D8A6 #define T_UTF_32_SIGNWRITING_HAND_HINGE_RING 0x1D8A7 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_INDEX_MIDDLE_LITTLE 0x1D8A8 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_MIDDLE_CROSS_LITTLE 0x1D8A9 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_INDEX_MIDDLE_CROSS_LITTLE 0x1D8AA #define T_UTF_32_SIGNWRITING_HAND_FIST_RING_DOWN 0x1D8AB #define T_UTF_32_SIGNWRITING_HAND_HINGE_RING_DOWN_INDEX_THUMB_HOOK_MIDDLE 0x1D8AC #define T_UTF_32_SIGNWRITING_HAND_ANGLE_RING_DOWN_MIDDLE_THUMB_INDEX_CROSS 0x1D8AD #define T_UTF_32_SIGNWRITING_HAND_FIST_RING_UP 0x1D8AE #define T_UTF_32_SIGNWRITING_HAND_FIST_RING_RAISED_KNUCKLE 0x1D8AF #define T_UTF_32_SIGNWRITING_HAND_FIST_RING_LITTLE 0x1D8B0 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_RING_LITTLE 0x1D8B1 #define T_UTF_32_SIGNWRITING_HAND_OVAL_RING_LITTLE 0x1D8B2 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_RING_LITTLE 0x1D8B3 #define T_UTF_32_SIGNWRITING_HAND_FIST_RING_MIDDLE 0x1D8B4 #define T_UTF_32_SIGNWRITING_HAND_FIST_RING_MIDDLE_CONJOINED 0x1D8B5 #define T_UTF_32_SIGNWRITING_HAND_FIST_RING_MIDDLE_RAISED_KNUCKLES 0x1D8B6 #define T_UTF_32_SIGNWRITING_HAND_FIST_RING_INDEX 0x1D8B7 #define T_UTF_32_SIGNWRITING_HAND_FIST_RING_THUMB 0x1D8B8 #define T_UTF_32_SIGNWRITING_HAND_HOOK_RING_THUMB 0x1D8B9 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_RING_LITTLE 0x1D8BA #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_INDEX_RING_LITTLE 0x1D8BB #define T_UTF_32_SIGNWRITING_HAND_CURLICUE_INDEX_RING_LITTLE_ON 0x1D8BC #define T_UTF_32_SIGNWRITING_HAND_HOOK_INDEX_RING_LITTLE_OUT 0x1D8BD #define T_UTF_32_SIGNWRITING_HAND_HOOK_INDEX_RING_LITTLE_IN 0x1D8BE #define T_UTF_32_SIGNWRITING_HAND_HOOK_INDEX_RING_LITTLE_UNDER 0x1D8BF #define T_UTF_32_SIGNWRITING_HAND_CUP_INDEX_RING_LITTLE 0x1D8C0 #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX_RING_LITTLE 0x1D8C1 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_INDEX_RING_LITTLE_OUT 0x1D8C2 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_INDEX_RING_LITTLE 0x1D8C3 #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_DOWN 0x1D8C4 #define T_UTF_32_SIGNWRITING_HAND_HINGE_MIDDLE 0x1D8C5 #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_UP 0x1D8C6 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_MIDDLE_UP 0x1D8C7 #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_RAISED_KNUCKLE 0x1D8C8 #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_UP_THUMB_SIDE 0x1D8C9 #define T_UTF_32_SIGNWRITING_HAND_HOOK_MIDDLE_THUMB 0x1D8CA #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_THUMB_LITTLE 0x1D8CB #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_LITTLE 0x1D8CC #define T_UTF_32_SIGNWRITING_HAND_FIST_MIDDLE_RING_LITTLE 0x1D8CD #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_MIDDLE_RING_LITTLE 0x1D8CE #define T_UTF_32_SIGNWRITING_HAND_CURLICUE_MIDDLE_RING_LITTLE_ON 0x1D8CF #define T_UTF_32_SIGNWRITING_HAND_CUP_MIDDLE_RING_LITTLE 0x1D8D0 #define T_UTF_32_SIGNWRITING_HAND_HINGE_MIDDLE_RING_LITTLE 0x1D8D1 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_MIDDLE_RING_LITTLE_OUT 0x1D8D2 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_MIDDLE_RING_LITTLE_IN 0x1D8D3 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_MIDDLE_RING_LITTLE 0x1D8D4 #define T_UTF_32_SIGNWRITING_HAND_CIRCLE_MIDDLE_RING_LITTLE_BENT 0x1D8D5 #define T_UTF_32_SIGNWRITING_HAND_CLAW_MIDDLE_RING_LITTLE_CONJOINED 0x1D8D6 #define T_UTF_32_SIGNWRITING_HAND_CLAW_MIDDLE_RING_LITTLE_CONJOINED_SIDE 0x1D8D7 #define T_UTF_32_SIGNWRITING_HAND_HOOK_MIDDLE_RING_LITTLE_CONJOINED_OUT 0x1D8D8 #define T_UTF_32_SIGNWRITING_HAND_HOOK_MIDDLE_RING_LITTLE_CONJOINED_IN 0x1D8D9 #define T_UTF_32_SIGNWRITING_HAND_HOOK_MIDDLE_RING_LITTLE_CONJOINED 0x1D8DA #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX_HINGED 0x1D8DB #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_SIDE 0x1D8DC #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX_THUMB_SIDE 0x1D8DD #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_SIDE_THUMB_DIAGONAL 0x1D8DE #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_SIDE_THUMB_CONJOINED 0x1D8DF #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_SIDE_THUMB_BENT 0x1D8E0 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_SIDE_INDEX_BENT 0x1D8E1 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_SIDE_BOTH_BENT 0x1D8E2 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_SIDE_INDEX_HINGE 0x1D8E3 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_FORWARD_INDEX_STRAIGHT 0x1D8E4 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_FORWARD_INDEX_BENT 0x1D8E5 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_HOOK 0x1D8E6 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_CURLICUE 0x1D8E7 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_CURVE_THUMB_INSIDE 0x1D8E8 #define T_UTF_32_SIGNWRITING_HAND_CLAW_INDEX_THUMB_CURVE_THUMB_INSIDE 0x1D8E9 #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_CURVE_THUMB_UNDER 0x1D8EA #define T_UTF_32_SIGNWRITING_HAND_FIST_INDEX_THUMB_CIRCLE 0x1D8EB #define T_UTF_32_SIGNWRITING_HAND_CUP_INDEX_THUMB 0x1D8EC #define T_UTF_32_SIGNWRITING_HAND_CUP_INDEX_THUMB_OPEN 0x1D8ED #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX_THUMB_OPEN 0x1D8EE #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX_THUMB_LARGE 0x1D8EF #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX_THUMB 0x1D8F0 #define T_UTF_32_SIGNWRITING_HAND_HINGE_INDEX_THUMB_SMALL 0x1D8F1 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_INDEX_THUMB_OUT 0x1D8F2 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_INDEX_THUMB_IN 0x1D8F3 #define T_UTF_32_SIGNWRITING_HAND_ANGLE_INDEX_THUMB 0x1D8F4 #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB 0x1D8F5 #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_HEEL 0x1D8F6 #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_SIDE_DIAGONAL 0x1D8F7 #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_SIDE_CONJOINED 0x1D8F8 #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_SIDE_BENT 0x1D8F9 #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_FORWARD 0x1D8FA #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_BETWEEN_INDEX_MIDDLE 0x1D8FB #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_BETWEEN_MIDDLE_RING 0x1D8FC #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_BETWEEN_RING_LITTLE 0x1D8FD #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_UNDER_TWO_FINGERS 0x1D8FE #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_OVER_TWO_FINGERS 0x1D8FF #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_UNDER_THREE_FINGERS 0x1D900 #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_UNDER_FOUR_FINGERS 0x1D901 #define T_UTF_32_SIGNWRITING_HAND_FIST_THUMB_OVER_FOUR_RAISED_KNUCKLES 0x1D902 #define T_UTF_32_SIGNWRITING_HAND_FIST 0x1D903 #define T_UTF_32_SIGNWRITING_HAND_FIST_HEEL 0x1D904 #define T_UTF_32_SIGNWRITING_TOUCH_SINGLE 0x1D905 #define T_UTF_32_SIGNWRITING_TOUCH_MULTIPLE 0x1D906 #define T_UTF_32_SIGNWRITING_TOUCH_BETWEEN 0x1D907 #define T_UTF_32_SIGNWRITING_GRASP_SINGLE 0x1D908 #define T_UTF_32_SIGNWRITING_GRASP_MULTIPLE 0x1D909 #define T_UTF_32_SIGNWRITING_GRASP_BETWEEN 0x1D90A #define T_UTF_32_SIGNWRITING_STRIKE_SINGLE 0x1D90B #define T_UTF_32_SIGNWRITING_STRIKE_MULTIPLE 0x1D90C #define T_UTF_32_SIGNWRITING_STRIKE_BETWEEN 0x1D90D #define T_UTF_32_SIGNWRITING_BRUSH_SINGLE 0x1D90E #define T_UTF_32_SIGNWRITING_BRUSH_MULTIPLE 0x1D90F #define T_UTF_32_SIGNWRITING_BRUSH_BETWEEN 0x1D910 #define T_UTF_32_SIGNWRITING_RUB_SINGLE 0x1D911 #define T_UTF_32_SIGNWRITING_RUB_MULTIPLE 0x1D912 #define T_UTF_32_SIGNWRITING_RUB_BETWEEN 0x1D913 #define T_UTF_32_SIGNWRITING_SURFACE_SYMBOLS 0x1D914 #define T_UTF_32_SIGNWRITING_SURFACE_BETWEEN 0x1D915 #define T_UTF_32_SIGNWRITING_SQUEEZE_LARGE_SINGLE 0x1D916 #define T_UTF_32_SIGNWRITING_SQUEEZE_SMALL_SINGLE 0x1D917 #define T_UTF_32_SIGNWRITING_SQUEEZE_LARGE_MULTIPLE 0x1D918 #define T_UTF_32_SIGNWRITING_SQUEEZE_SMALL_MULTIPLE 0x1D919 #define T_UTF_32_SIGNWRITING_SQUEEZE_SEQUENTIAL 0x1D91A #define T_UTF_32_SIGNWRITING_FLICK_LARGE_SINGLE 0x1D91B #define T_UTF_32_SIGNWRITING_FLICK_SMALL_SINGLE 0x1D91C #define T_UTF_32_SIGNWRITING_FLICK_LARGE_MULTIPLE 0x1D91D #define T_UTF_32_SIGNWRITING_FLICK_SMALL_MULTIPLE 0x1D91E #define T_UTF_32_SIGNWRITING_FLICK_SEQUENTIAL 0x1D91F #define T_UTF_32_SIGNWRITING_SQUEEZE_FLICK_ALTERNATING 0x1D920 #define T_UTF_32_SIGNWRITING_MOVEMENT_HINGE_UP_DOWN_LARGE 0x1D921 #define T_UTF_32_SIGNWRITING_MOVEMENT_HINGE_UP_DOWN_SMALL 0x1D922 #define T_UTF_32_SIGNWRITING_MOVEMENT_HINGE_UP_SEQUENTIAL 0x1D923 #define T_UTF_32_SIGNWRITING_MOVEMENT_HINGE_DOWN_SEQUENTIAL 0x1D924 #define T_UTF_32_SIGNWRITING_MOVEMENT_HINGE_UP_DOWN_ALTERNATING_LARGE 0x1D925 #define T_UTF_32_SIGNWRITING_MOVEMENT_HINGE_UP_DOWN_ALTERNATING_SMALL 0x1D926 #define T_UTF_32_SIGNWRITING_MOVEMENT_HINGE_SIDE_TO_SIDE_SCISSORS 0x1D927 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_FINGER_CONTACT 0x1D928 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_FINGER_CONTACT 0x1D929 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_SINGLE_STRAIGHT_SMALL 0x1D92A #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_SINGLE_STRAIGHT_MEDIUM 0x1D92B #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_SINGLE_STRAIGHT_LARGE 0x1D92C #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_SINGLE_STRAIGHT_LARGEST 0x1D92D #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_SINGLE_WRIST_FLEX 0x1D92E #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_DOUBLE_STRAIGHT 0x1D92F #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_DOUBLE_WRIST_FLEX 0x1D930 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_DOUBLE_ALTERNATING 0x1D931 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_DOUBLE_ALTERNATING_WRIST_FLEX 0x1D932 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CROSS 0x1D933 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_TRIPLE_STRAIGHT_MOVEMENT 0x1D934 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_TRIPLE_WRIST_FLEX 0x1D935 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_TRIPLE_ALTERNATING 0x1D936 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_TRIPLE_ALTERNATING_WRIST_FLEX 0x1D937 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_BEND_SMALL 0x1D938 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_BEND_MEDIUM 0x1D939 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_BEND_LARGE 0x1D93A #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CORNER_SMALL 0x1D93B #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CORNER_MEDIUM 0x1D93C #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CORNER_LARGE 0x1D93D #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CORNER_ROTATION 0x1D93E #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CHECK_SMALL 0x1D93F #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CHECK_MEDIUM 0x1D940 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CHECK_LARGE 0x1D941 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_BOX_SMALL 0x1D942 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_BOX_MEDIUM 0x1D943 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_BOX_LARGE 0x1D944 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_ZIGZAG_SMALL 0x1D945 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_ZIGZAG_MEDIUM 0x1D946 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_ZIGZAG_LARGE 0x1D947 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_PEAKS_SMALL 0x1D948 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_PEAKS_MEDIUM 0x1D949 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_PEAKS_LARGE 0x1D94A #define T_UTF_32_SIGNWRITING_TRAVEL_WALLPLANE_ROTATION_WALLPLANE_SINGLE 0x1D94B #define T_UTF_32_SIGNWRITING_TRAVEL_WALLPLANE_ROTATION_WALLPLANE_DOUBLE 0x1D94C #define T_UTF_32_SIGNWRITING_TRAVEL_WALLPLANE_ROTATION_WALLPLANE_ALTERNATING 0x1D94D #define T_UTF_32_SIGNWRITING_TRAVEL_WALLPLANE_ROTATION_FLOORPLANE_SINGLE 0x1D94E #define T_UTF_32_SIGNWRITING_TRAVEL_WALLPLANE_ROTATION_FLOORPLANE_DOUBLE 0x1D94F #define T_UTF_32_SIGNWRITING_TRAVEL_WALLPLANE_ROTATION_FLOORPLANE_ALTERNATING 0x1D950 #define T_UTF_32_SIGNWRITING_TRAVEL_WALLPLANE_SHAKING 0x1D951 #define T_UTF_32_SIGNWRITING_TRAVEL_WALLPLANE_ARM_SPIRAL_SINGLE 0x1D952 #define T_UTF_32_SIGNWRITING_TRAVEL_WALLPLANE_ARM_SPIRAL_DOUBLE 0x1D953 #define T_UTF_32_SIGNWRITING_TRAVEL_WALLPLANE_ARM_SPIRAL_TRIPLE 0x1D954 #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_AWAY_SMALL 0x1D955 #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_AWAY_MEDIUM 0x1D956 #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_AWAY_LARGE 0x1D957 #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_AWAY_LARGEST 0x1D958 #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_TOWARDS_SMALL 0x1D959 #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_TOWARDS_MEDIUM 0x1D95A #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_TOWARDS_LARGE 0x1D95B #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_TOWARDS_LARGEST 0x1D95C #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_BETWEEN_AWAY_SMALL 0x1D95D #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_BETWEEN_AWAY_MEDIUM 0x1D95E #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_BETWEEN_AWAY_LARGE 0x1D95F #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_BETWEEN_AWAY_LARGEST 0x1D960 #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_BETWEEN_TOWARDS_SMALL 0x1D961 #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_BETWEEN_TOWARDS_MEDIUM 0x1D962 #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_BETWEEN_TOWARDS_LARGE 0x1D963 #define T_UTF_32_SIGNWRITING_MOVEMENT_DIAGONAL_BETWEEN_TOWARDS_LARGEST 0x1D964 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_SINGLE_STRAIGHT_SMALL 0x1D965 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_SINGLE_STRAIGHT_MEDIUM 0x1D966 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_SINGLE_STRAIGHT_LARGE 0x1D967 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_SINGLE_STRAIGHT_LARGEST 0x1D968 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_SINGLE_WRIST_FLEX 0x1D969 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_DOUBLE_STRAIGHT 0x1D96A #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_DOUBLE_WRIST_FLEX 0x1D96B #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_DOUBLE_ALTERNATING 0x1D96C #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_DOUBLE_ALTERNATING_WRIST_FLEX 0x1D96D #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CROSS 0x1D96E #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_TRIPLE_STRAIGHT_MOVEMENT 0x1D96F #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_TRIPLE_WRIST_FLEX 0x1D970 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_TRIPLE_ALTERNATING_MOVEMENT 0x1D971 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_TRIPLE_ALTERNATING_WRIST_FLEX 0x1D972 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_BEND 0x1D973 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CORNER_SMALL 0x1D974 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CORNER_MEDIUM 0x1D975 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CORNER_LARGE 0x1D976 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CHECK 0x1D977 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_BOX_SMALL 0x1D978 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_BOX_MEDIUM 0x1D979 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_BOX_LARGE 0x1D97A #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_ZIGZAG_SMALL 0x1D97B #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_ZIGZAG_MEDIUM 0x1D97C #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_ZIGZAG_LARGE 0x1D97D #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_PEAKS_SMALL 0x1D97E #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_PEAKS_MEDIUM 0x1D97F #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_PEAKS_LARGE 0x1D980 #define T_UTF_32_SIGNWRITING_TRAVEL_FLOORPLANE_ROTATION_FLOORPLANE_SINGLE 0x1D981 #define T_UTF_32_SIGNWRITING_TRAVEL_FLOORPLANE_ROTATION_FLOORPLANE_DOUBLE 0x1D982 #define T_UTF_32_SIGNWRITING_TRAVEL_FLOORPLANE_ROTATION_FLOORPLANE_ALTERNATING 0x1D983 #define T_UTF_32_SIGNWRITING_TRAVEL_FLOORPLANE_ROTATION_WALLPLANE_SINGLE 0x1D984 #define T_UTF_32_SIGNWRITING_TRAVEL_FLOORPLANE_ROTATION_WALLPLANE_DOUBLE 0x1D985 #define T_UTF_32_SIGNWRITING_TRAVEL_FLOORPLANE_ROTATION_WALLPLANE_ALTERNATING 0x1D986 #define T_UTF_32_SIGNWRITING_TRAVEL_FLOORPLANE_SHAKING 0x1D987 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_QUARTER_SMALL 0x1D988 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_QUARTER_MEDIUM 0x1D989 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_QUARTER_LARGE 0x1D98A #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_QUARTER_LARGEST 0x1D98B #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_HALF_CIRCLE_SMALL 0x1D98C #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_HALF_CIRCLE_MEDIUM 0x1D98D #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_HALF_CIRCLE_LARGE 0x1D98E #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_HALF_CIRCLE_LARGEST 0x1D98F #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_THREE_QUARTER_CIRCLE_SMALL 0x1D990 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_THREE_QUARTER_CIRCLE_MEDIUM 0x1D991 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_HUMP_SMALL 0x1D992 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_HUMP_MEDIUM 0x1D993 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_HUMP_LARGE 0x1D994 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_LOOP_SMALL 0x1D995 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_LOOP_MEDIUM 0x1D996 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_LOOP_LARGE 0x1D997 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_LOOP_SMALL_DOUBLE 0x1D998 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_CURVE_DOUBLE_SMALL 0x1D999 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_CURVE_DOUBLE_MEDIUM 0x1D99A #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_CURVE_DOUBLE_LARGE 0x1D99B #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_CURVE_TRIPLE_SMALL 0x1D99C #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_CURVE_TRIPLE_MEDIUM 0x1D99D #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_CURVE_TRIPLE_LARGE 0x1D99E #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_THEN_STRAIGHT 0x1D99F #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVED_CROSS_SMALL 0x1D9A0 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVED_CROSS_MEDIUM 0x1D9A1 #define T_UTF_32_SIGNWRITING_ROTATION_WALLPLANE_SINGLE 0x1D9A2 #define T_UTF_32_SIGNWRITING_ROTATION_WALLPLANE_DOUBLE 0x1D9A3 #define T_UTF_32_SIGNWRITING_ROTATION_WALLPLANE_ALTERNATE 0x1D9A4 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_SHAKING 0x1D9A5 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_HITTING_FRONT_WALL 0x1D9A6 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_HUMP_HITTING_FRONT_WALL 0x1D9A7 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_LOOP_HITTING_FRONT_WALL 0x1D9A8 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_HITTING_FRONT_WALL 0x1D9A9 #define T_UTF_32_SIGNWRITING_ROTATION_WALLPLANE_SINGLE_HITTING_FRONT_WALL 0x1D9AA #define T_UTF_32_SIGNWRITING_ROTATION_WALLPLANE_DOUBLE_HITTING_FRONT_WALL 0x1D9AB #define T_UTF_32_SIGNWRITING_ROTATION_WALLPLANE_ALTERNATING_HITTING_FRONT_WALL 0x1D9AC #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_CURVE_HITTING_CHEST 0x1D9AD #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_HUMP_HITTING_CHEST 0x1D9AE #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_LOOP_HITTING_CHEST 0x1D9AF #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_HITTING_CHEST 0x1D9B0 #define T_UTF_32_SIGNWRITING_ROTATION_WALLPLANE_SINGLE_HITTING_CHEST 0x1D9B1 #define T_UTF_32_SIGNWRITING_ROTATION_WALLPLANE_DOUBLE_HITTING_CHEST 0x1D9B2 #define T_UTF_32_SIGNWRITING_ROTATION_WALLPLANE_ALTERNATING_HITTING_CHEST 0x1D9B3 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_DIAGONAL_PATH_SMALL 0x1D9B4 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_DIAGONAL_PATH_MEDIUM 0x1D9B5 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WAVE_DIAGONAL_PATH_LARGE 0x1D9B6 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CURVE_HITTING_CEILING_SMALL 0x1D9B7 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CURVE_HITTING_CEILING_LARGE 0x1D9B8 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_HUMP_HITTING_CEILING_SMALL_DOUBLE 0x1D9B9 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_HUMP_HITTING_CEILING_LARGE_DOUBLE 0x1D9BA #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_HUMP_HITTING_CEILING_SMALL_TRIPLE 0x1D9BB #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_HUMP_HITTING_CEILING_LARGE_TRIPLE 0x1D9BC #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_LOOP_HITTING_CEILING_SMALL_SINGLE 0x1D9BD #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_LOOP_HITTING_CEILING_LARGE_SINGLE 0x1D9BE #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_LOOP_HITTING_CEILING_SMALL_DOUBLE 0x1D9BF #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_LOOP_HITTING_CEILING_LARGE_DOUBLE 0x1D9C0 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_WAVE_HITTING_CEILING_SMALL 0x1D9C1 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_WAVE_HITTING_CEILING_LARGE 0x1D9C2 #define T_UTF_32_SIGNWRITING_ROTATION_FLOORPLANE_SINGLE_HITTING_CEILING 0x1D9C3 #define T_UTF_32_SIGNWRITING_ROTATION_FLOORPLANE_DOUBLE_HITTING_CEILING 0x1D9C4 #define T_UTF_32_SIGNWRITING_ROTATION_FLOORPLANE_ALTERNATING_HITTING_CEILING 0x1D9C5 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CURVE_HITTING_FLOOR_SMALL 0x1D9C6 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CURVE_HITTING_FLOOR_LARGE 0x1D9C7 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_HUMP_HITTING_FLOOR_SMALL_DOUBLE 0x1D9C8 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_HUMP_HITTING_FLOOR_LARGE_DOUBLE 0x1D9C9 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_HUMP_HITTING_FLOOR_TRIPLE_SMALL_TRIPLE 0x1D9CA #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_HUMP_HITTING_FLOOR_TRIPLE_LARGE_TRIPLE 0x1D9CB #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_LOOP_HITTING_FLOOR_SMALL_SINGLE 0x1D9CC #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_LOOP_HITTING_FLOOR_LARGE_SINGLE 0x1D9CD #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_LOOP_HITTING_FLOOR_SMALL_DOUBLE 0x1D9CE #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_LOOP_HITTING_FLOOR_LARGE_DOUBLE 0x1D9CF #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_WAVE_HITTING_FLOOR_SMALL 0x1D9D0 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_WAVE_HITTING_FLOOR_LARGE 0x1D9D1 #define T_UTF_32_SIGNWRITING_ROTATION_FLOORPLANE_SINGLE_HITTING_FLOOR 0x1D9D2 #define T_UTF_32_SIGNWRITING_ROTATION_FLOORPLANE_DOUBLE_HITTING_FLOOR 0x1D9D3 #define T_UTF_32_SIGNWRITING_ROTATION_FLOORPLANE_ALTERNATING_HITTING_FLOOR 0x1D9D4 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CURVE_SMALL 0x1D9D5 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CURVE_MEDIUM 0x1D9D6 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CURVE_LARGE 0x1D9D7 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CURVE_LARGEST 0x1D9D8 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_CURVE_COMBINED 0x1D9D9 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_HUMP_SMALL 0x1D9DA #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_LOOP_SMALL 0x1D9DB #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_WAVE_SNAKE 0x1D9DC #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_WAVE_SMALL 0x1D9DD #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_WAVE_LARGE 0x1D9DE #define T_UTF_32_SIGNWRITING_ROTATION_FLOORPLANE_SINGLE 0x1D9DF #define T_UTF_32_SIGNWRITING_ROTATION_FLOORPLANE_DOUBLE 0x1D9E0 #define T_UTF_32_SIGNWRITING_ROTATION_FLOORPLANE_ALTERNATING 0x1D9E1 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_SHAKING_PARALLEL 0x1D9E2 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_ARM_CIRCLE_SMALL_SINGLE 0x1D9E3 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_ARM_CIRCLE_MEDIUM_SINGLE 0x1D9E4 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_ARM_CIRCLE_SMALL_DOUBLE 0x1D9E5 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_ARM_CIRCLE_MEDIUM_DOUBLE 0x1D9E6 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_ARM_CIRCLE_HITTING_WALL_SMALL_SINGLE 0x1D9E7 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_ARM_CIRCLE_HITTING_WALL_MEDIUM_SINGLE 0x1D9E8 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_ARM_CIRCLE_HITTING_WALL_LARGE_SINGLE 0x1D9E9 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_ARM_CIRCLE_HITTING_WALL_SMALL_DOUBLE 0x1D9EA #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_ARM_CIRCLE_HITTING_WALL_MEDIUM_DOUBLE 0x1D9EB #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_ARM_CIRCLE_HITTING_WALL_LARGE_DOUBLE 0x1D9EC #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WRIST_CIRCLE_FRONT_SINGLE 0x1D9ED #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_WRIST_CIRCLE_FRONT_DOUBLE 0x1D9EE #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_WRIST_CIRCLE_HITTING_WALL_SINGLE 0x1D9EF #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_WRIST_CIRCLE_HITTING_WALL_DOUBLE 0x1D9F0 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_FINGER_CIRCLES_SINGLE 0x1D9F1 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_FINGER_CIRCLES_DOUBLE 0x1D9F2 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_FINGER_CIRCLES_HITTING_WALL_SINGLE 0x1D9F3 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_FINGER_CIRCLES_HITTING_WALL_DOUBLE 0x1D9F4 #define T_UTF_32_SIGNWRITING_DYNAMIC_ARROWHEAD_SMALL 0x1D9F5 #define T_UTF_32_SIGNWRITING_DYNAMIC_ARROWHEAD_LARGE 0x1D9F6 #define T_UTF_32_SIGNWRITING_DYNAMIC_FAST 0x1D9F7 #define T_UTF_32_SIGNWRITING_DYNAMIC_SLOW 0x1D9F8 #define T_UTF_32_SIGNWRITING_DYNAMIC_TENSE 0x1D9F9 #define T_UTF_32_SIGNWRITING_DYNAMIC_RELAXED 0x1D9FA #define T_UTF_32_SIGNWRITING_DYNAMIC_SIMULTANEOUS 0x1D9FB #define T_UTF_32_SIGNWRITING_DYNAMIC_SIMULTANEOUS_ALTERNATING 0x1D9FC #define T_UTF_32_SIGNWRITING_DYNAMIC_EVERY_OTHER_TIME 0x1D9FD #define T_UTF_32_SIGNWRITING_DYNAMIC_GRADUAL 0x1D9FE #define T_UTF_32_SIGNWRITING_HEAD 0x1D9FF #define T_UTF_32_SIGNWRITING_HEAD_RIM 0x1DA00 #define T_UTF_32_SIGNWRITING_HEAD_MOVEMENT_WALLPLANE_STRAIGHT 0x1DA01 #define T_UTF_32_SIGNWRITING_HEAD_MOVEMENT_WALLPLANE_TILT 0x1DA02 #define T_UTF_32_SIGNWRITING_HEAD_MOVEMENT_FLOORPLANE_STRAIGHT 0x1DA03 #define T_UTF_32_SIGNWRITING_HEAD_MOVEMENT_WALLPLANE_CURVE 0x1DA04 #define T_UTF_32_SIGNWRITING_HEAD_MOVEMENT_FLOORPLANE_CURVE 0x1DA05 #define T_UTF_32_SIGNWRITING_HEAD_MOVEMENT_CIRCLE 0x1DA06 #define T_UTF_32_SIGNWRITING_FACE_DIRECTION_POSITION_NOSE_FORWARD_TILTING 0x1DA07 #define T_UTF_32_SIGNWRITING_FACE_DIRECTION_POSITION_NOSE_UP_OR_DOWN 0x1DA08 #define T_UTF_32_SIGNWRITING_FACE_DIRECTION_POSITION_NOSE_UP_OR_DOWN_TILTING 0x1DA09 #define T_UTF_32_SIGNWRITING_EYEBROWS_STRAIGHT_UP 0x1DA0A #define T_UTF_32_SIGNWRITING_EYEBROWS_STRAIGHT_NEUTRAL 0x1DA0B #define T_UTF_32_SIGNWRITING_EYEBROWS_STRAIGHT_DOWN 0x1DA0C #define T_UTF_32_SIGNWRITING_DREAMY_EYEBROWS_NEUTRAL_DOWN 0x1DA0D #define T_UTF_32_SIGNWRITING_DREAMY_EYEBROWS_DOWN_NEUTRAL 0x1DA0E #define T_UTF_32_SIGNWRITING_DREAMY_EYEBROWS_UP_NEUTRAL 0x1DA0F #define T_UTF_32_SIGNWRITING_DREAMY_EYEBROWS_NEUTRAL_UP 0x1DA10 #define T_UTF_32_SIGNWRITING_FOREHEAD_NEUTRAL 0x1DA11 #define T_UTF_32_SIGNWRITING_FOREHEAD_CONTACT 0x1DA12 #define T_UTF_32_SIGNWRITING_FOREHEAD_WRINKLED 0x1DA13 #define T_UTF_32_SIGNWRITING_EYES_OPEN 0x1DA14 #define T_UTF_32_SIGNWRITING_EYES_SQUEEZED 0x1DA15 #define T_UTF_32_SIGNWRITING_EYES_CLOSED 0x1DA16 #define T_UTF_32_SIGNWRITING_EYE_BLINK_SINGLE 0x1DA17 #define T_UTF_32_SIGNWRITING_EYE_BLINK_MULTIPLE 0x1DA18 #define T_UTF_32_SIGNWRITING_EYES_HALF_OPEN 0x1DA19 #define T_UTF_32_SIGNWRITING_EYES_WIDE_OPEN 0x1DA1A #define T_UTF_32_SIGNWRITING_EYES_HALF_CLOSED 0x1DA1B #define T_UTF_32_SIGNWRITING_EYES_WIDENING_MOVEMENT 0x1DA1C #define T_UTF_32_SIGNWRITING_EYE_WINK 0x1DA1D #define T_UTF_32_SIGNWRITING_EYELASHES_UP 0x1DA1E #define T_UTF_32_SIGNWRITING_EYELASHES_DOWN 0x1DA1F #define T_UTF_32_SIGNWRITING_EYELASHES_FLUTTERING 0x1DA20 #define T_UTF_32_SIGNWRITING_EYEGAZE_WALLPLANE_STRAIGHT 0x1DA21 #define T_UTF_32_SIGNWRITING_EYEGAZE_WALLPLANE_STRAIGHT_DOUBLE 0x1DA22 #define T_UTF_32_SIGNWRITING_EYEGAZE_WALLPLANE_STRAIGHT_ALTERNATING 0x1DA23 #define T_UTF_32_SIGNWRITING_EYEGAZE_FLOORPLANE_STRAIGHT 0x1DA24 #define T_UTF_32_SIGNWRITING_EYEGAZE_FLOORPLANE_STRAIGHT_DOUBLE 0x1DA25 #define T_UTF_32_SIGNWRITING_EYEGAZE_FLOORPLANE_STRAIGHT_ALTERNATING 0x1DA26 #define T_UTF_32_SIGNWRITING_EYEGAZE_WALLPLANE_CURVED 0x1DA27 #define T_UTF_32_SIGNWRITING_EYEGAZE_FLOORPLANE_CURVED 0x1DA28 #define T_UTF_32_SIGNWRITING_EYEGAZE_WALLPLANE_CIRCLING 0x1DA29 #define T_UTF_32_SIGNWRITING_CHEEKS_PUFFED 0x1DA2A #define T_UTF_32_SIGNWRITING_CHEEKS_NEUTRAL 0x1DA2B #define T_UTF_32_SIGNWRITING_CHEEKS_SUCKED 0x1DA2C #define T_UTF_32_SIGNWRITING_TENSE_CHEEKS_HIGH 0x1DA2D #define T_UTF_32_SIGNWRITING_TENSE_CHEEKS_MIDDLE 0x1DA2E #define T_UTF_32_SIGNWRITING_TENSE_CHEEKS_LOW 0x1DA2F #define T_UTF_32_SIGNWRITING_EARS 0x1DA30 #define T_UTF_32_SIGNWRITING_NOSE_NEUTRAL 0x1DA31 #define T_UTF_32_SIGNWRITING_NOSE_CONTACT 0x1DA32 #define T_UTF_32_SIGNWRITING_NOSE_WRINKLES 0x1DA33 #define T_UTF_32_SIGNWRITING_NOSE_WIGGLES 0x1DA34 #define T_UTF_32_SIGNWRITING_AIR_BLOWING_OUT 0x1DA35 #define T_UTF_32_SIGNWRITING_AIR_SUCKING_IN 0x1DA36 #define T_UTF_32_SIGNWRITING_AIR_BLOW_SMALL_ROTATIONS 0x1DA37 #define T_UTF_32_SIGNWRITING_AIR_SUCK_SMALL_ROTATIONS 0x1DA38 #define T_UTF_32_SIGNWRITING_BREATH_INHALE 0x1DA39 #define T_UTF_32_SIGNWRITING_BREATH_EXHALE 0x1DA3A #define T_UTF_32_SIGNWRITING_MOUTH_CLOSED_NEUTRAL 0x1DA3B #define T_UTF_32_SIGNWRITING_MOUTH_CLOSED_FORWARD 0x1DA3C #define T_UTF_32_SIGNWRITING_MOUTH_CLOSED_CONTACT 0x1DA3D #define T_UTF_32_SIGNWRITING_MOUTH_SMILE 0x1DA3E #define T_UTF_32_SIGNWRITING_MOUTH_SMILE_WRINKLED 0x1DA3F #define T_UTF_32_SIGNWRITING_MOUTH_SMILE_OPEN 0x1DA40 #define T_UTF_32_SIGNWRITING_MOUTH_FROWN 0x1DA41 #define T_UTF_32_SIGNWRITING_MOUTH_FROWN_WRINKLED 0x1DA42 #define T_UTF_32_SIGNWRITING_MOUTH_FROWN_OPEN 0x1DA43 #define T_UTF_32_SIGNWRITING_MOUTH_OPEN_CIRCLE 0x1DA44 #define T_UTF_32_SIGNWRITING_MOUTH_OPEN_FORWARD 0x1DA45 #define T_UTF_32_SIGNWRITING_MOUTH_OPEN_WRINKLED 0x1DA46 #define T_UTF_32_SIGNWRITING_MOUTH_OPEN_OVAL 0x1DA47 #define T_UTF_32_SIGNWRITING_MOUTH_OPEN_OVAL_WRINKLED 0x1DA48 #define T_UTF_32_SIGNWRITING_MOUTH_OPEN_OVAL_YAWN 0x1DA49 #define T_UTF_32_SIGNWRITING_MOUTH_OPEN_RECTANGLE 0x1DA4A #define T_UTF_32_SIGNWRITING_MOUTH_OPEN_RECTANGLE_WRINKLED 0x1DA4B #define T_UTF_32_SIGNWRITING_MOUTH_OPEN_RECTANGLE_YAWN 0x1DA4C #define T_UTF_32_SIGNWRITING_MOUTH_KISS 0x1DA4D #define T_UTF_32_SIGNWRITING_MOUTH_KISS_FORWARD 0x1DA4E #define T_UTF_32_SIGNWRITING_MOUTH_KISS_WRINKLED 0x1DA4F #define T_UTF_32_SIGNWRITING_MOUTH_TENSE 0x1DA50 #define T_UTF_32_SIGNWRITING_MOUTH_TENSE_FORWARD 0x1DA51 #define T_UTF_32_SIGNWRITING_MOUTH_TENSE_SUCKED 0x1DA52 #define T_UTF_32_SIGNWRITING_LIPS_PRESSED_TOGETHER 0x1DA53 #define T_UTF_32_SIGNWRITING_LIP_LOWER_OVER_UPPER 0x1DA54 #define T_UTF_32_SIGNWRITING_LIP_UPPER_OVER_LOWER 0x1DA55 #define T_UTF_32_SIGNWRITING_MOUTH_CORNERS 0x1DA56 #define T_UTF_32_SIGNWRITING_MOUTH_WRINKLES_SINGLE 0x1DA57 #define T_UTF_32_SIGNWRITING_MOUTH_WRINKLES_DOUBLE 0x1DA58 #define T_UTF_32_SIGNWRITING_TONGUE_STICKING_OUT_FAR 0x1DA59 #define T_UTF_32_SIGNWRITING_TONGUE_LICKING_LIPS 0x1DA5A #define T_UTF_32_SIGNWRITING_TONGUE_TIP_BETWEEN_LIPS 0x1DA5B #define T_UTF_32_SIGNWRITING_TONGUE_TIP_TOUCHING_INSIDE_MOUTH 0x1DA5C #define T_UTF_32_SIGNWRITING_TONGUE_INSIDE_MOUTH_RELAXED 0x1DA5D #define T_UTF_32_SIGNWRITING_TONGUE_MOVES_AGAINST_CHEEK 0x1DA5E #define T_UTF_32_SIGNWRITING_TONGUE_CENTRE_STICKING_OUT 0x1DA5F #define T_UTF_32_SIGNWRITING_TONGUE_CENTRE_INSIDE_MOUTH 0x1DA60 #define T_UTF_32_SIGNWRITING_TEETH 0x1DA61 #define T_UTF_32_SIGNWRITING_TEETH_MOVEMENT 0x1DA62 #define T_UTF_32_SIGNWRITING_TEETH_ON_TONGUE 0x1DA63 #define T_UTF_32_SIGNWRITING_TEETH_ON_TONGUE_MOVEMENT 0x1DA64 #define T_UTF_32_SIGNWRITING_TEETH_ON_LIPS 0x1DA65 #define T_UTF_32_SIGNWRITING_TEETH_ON_LIPS_MOVEMENT 0x1DA66 #define T_UTF_32_SIGNWRITING_TEETH_BITE_LIPS 0x1DA67 #define T_UTF_32_SIGNWRITING_MOVEMENT_WALLPLANE_JAW 0x1DA68 #define T_UTF_32_SIGNWRITING_MOVEMENT_FLOORPLANE_JAW 0x1DA69 #define T_UTF_32_SIGNWRITING_NECK 0x1DA6A #define T_UTF_32_SIGNWRITING_HAIR 0x1DA6B #define T_UTF_32_SIGNWRITING_EXCITEMENT 0x1DA6C #define T_UTF_32_SIGNWRITING_SHOULDER_HIP_SPINE 0x1DA6D #define T_UTF_32_SIGNWRITING_SHOULDER_HIP_POSITIONS 0x1DA6E #define T_UTF_32_SIGNWRITING_WALLPLANE_SHOULDER_HIP_MOVE 0x1DA6F #define T_UTF_32_SIGNWRITING_FLOORPLANE_SHOULDER_HIP_MOVE 0x1DA70 #define T_UTF_32_SIGNWRITING_SHOULDER_TILTING_FROM_WAIST 0x1DA71 #define T_UTF_32_SIGNWRITING_TORSO_WALLPLANE_STRAIGHT_STRETCH 0x1DA72 #define T_UTF_32_SIGNWRITING_TORSO_WALLPLANE_CURVED_BEND 0x1DA73 #define T_UTF_32_SIGNWRITING_TORSO_FLOORPLANE_TWISTING 0x1DA74 #define T_UTF_32_SIGNWRITING_UPPER_BODY_TILTING_FROM_HIP_JOINTS 0x1DA75 #define T_UTF_32_SIGNWRITING_LIMB_COMBINATION 0x1DA76 #define T_UTF_32_SIGNWRITING_LIMB_LENGTH_1 0x1DA77 #define T_UTF_32_SIGNWRITING_LIMB_LENGTH_2 0x1DA78 #define T_UTF_32_SIGNWRITING_LIMB_LENGTH_3 0x1DA79 #define T_UTF_32_SIGNWRITING_LIMB_LENGTH_4 0x1DA7A #define T_UTF_32_SIGNWRITING_LIMB_LENGTH_5 0x1DA7B #define T_UTF_32_SIGNWRITING_LIMB_LENGTH_6 0x1DA7C #define T_UTF_32_SIGNWRITING_LIMB_LENGTH_7 0x1DA7D #define T_UTF_32_SIGNWRITING_FINGER 0x1DA7E #define T_UTF_32_SIGNWRITING_LOCATION_WALLPLANE_SPACE 0x1DA7F #define T_UTF_32_SIGNWRITING_LOCATION_FLOORPLANE_SPACE 0x1DA80 #define T_UTF_32_SIGNWRITING_LOCATION_HEIGHT 0x1DA81 #define T_UTF_32_SIGNWRITING_LOCATION_WIDTH 0x1DA82 #define T_UTF_32_SIGNWRITING_LOCATION_DEPTH 0x1DA83 #define T_UTF_32_SIGNWRITING_LOCATION_HEAD_NECK 0x1DA84 #define T_UTF_32_SIGNWRITING_LOCATION_TORSO 0x1DA85 #define T_UTF_32_SIGNWRITING_LOCATION_LIMBS_DIGITS 0x1DA86 #define T_UTF_32_SIGNWRITING_COMMA 0x1DA87 #define T_UTF_32_SIGNWRITING_FULL_STOP 0x1DA88 #define T_UTF_32_SIGNWRITING_SEMICOLON 0x1DA89 #define T_UTF_32_SIGNWRITING_COLON 0x1DA8A #define T_UTF_32_SIGNWRITING_PARENTHESIS 0x1DA8B #define T_UTF_32_SIGNWRITING_FILL_MODIFIER_2 0x1DA9B #define T_UTF_32_SIGNWRITING_FILL_MODIFIER_3 0x1DA9C #define T_UTF_32_SIGNWRITING_FILL_MODIFIER_4 0x1DA9D #define T_UTF_32_SIGNWRITING_FILL_MODIFIER_5 0x1DA9E #define T_UTF_32_SIGNWRITING_FILL_MODIFIER_6 0x1DA9F #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_2 0x1DAA1 #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_3 0x1DAA2 #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_4 0x1DAA3 #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_5 0x1DAA4 #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_6 0x1DAA5 #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_7 0x1DAA6 #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_8 0x1DAA7 #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_9 0x1DAA8 #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_10 0x1DAA9 #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_11 0x1DAAA #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_12 0x1DAAB #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_13 0x1DAAC #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_14 0x1DAAD #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_15 0x1DAAE #define T_UTF_32_SIGNWRITING_ROTATION_MODIFIER_16 0x1DAAF #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_AZU 0x1E000 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_BUKY 0x1E001 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_VEDE 0x1E002 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_GLAGOLI 0x1E003 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_DOBRO 0x1E004 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_YESTU 0x1E005 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_ZHIVETE 0x1E006 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_ZEMLJA 0x1E008 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_IZHE 0x1E009 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_INITIAL_IZHE 0x1E00A #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_I 0x1E00B #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_DJERVI 0x1E00C #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_KAKO 0x1E00D #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_LJUDIJE 0x1E00E #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_MYSLITE 0x1E00F #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_NASHI 0x1E010 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_ONU 0x1E011 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_POKOJI 0x1E012 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_RITSI 0x1E013 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_SLOVO 0x1E014 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_TVRIDO 0x1E015 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_UKU 0x1E016 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_FRITU 0x1E017 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_HERU 0x1E018 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_SHTA 0x1E01B #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_TSI 0x1E01C #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_CHRIVI 0x1E01D #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_SHA 0x1E01E #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_YERU 0x1E01F #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_YERI 0x1E020 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_YATI 0x1E021 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_YU 0x1E023 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_SMALL_YUS 0x1E024 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_YO 0x1E026 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_IOTATED_SMALL_YUS 0x1E027 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_BIG_YUS 0x1E028 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_IOTATED_BIG_YUS 0x1E029 #define T_UTF_32_COMBINING_GLAGOLITIC_LETTER_FITA 0x1E02A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M001_KI 0x1E800 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M002_KA 0x1E801 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M003_KU 0x1E802 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M065_KEE 0x1E803 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M095_KE 0x1E804 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M076_KOO 0x1E805 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M048_KO 0x1E806 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M179_KUA 0x1E807 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M004_WI 0x1E808 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M005_WA 0x1E809 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M006_WU 0x1E80A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M126_WEE 0x1E80B #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M118_WE 0x1E80C #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M114_WOO 0x1E80D #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M045_WO 0x1E80E #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M194_WUI 0x1E80F #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M143_WEI 0x1E810 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M061_WVI 0x1E811 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M049_WVA 0x1E812 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M139_WVE 0x1E813 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M007_MIN 0x1E814 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M008_MAN 0x1E815 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M009_MUN 0x1E816 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M059_MEN 0x1E817 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M094_MON 0x1E818 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M154_MUAN 0x1E819 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M189_MUEN 0x1E81A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M010_BI 0x1E81B #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M011_BA 0x1E81C #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M012_BU 0x1E81D #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M150_BEE 0x1E81E #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M097_BE 0x1E81F #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M103_BOO 0x1E820 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M138_BO 0x1E821 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M013_I 0x1E822 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M014_A 0x1E823 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M015_U 0x1E824 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M163_EE 0x1E825 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M100_E 0x1E826 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M165_OO 0x1E827 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M147_O 0x1E828 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M137_EI 0x1E829 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M131_IN 0x1E82A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M135_IN 0x1E82B #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M195_AN 0x1E82C #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M178_EN 0x1E82D #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M019_SI 0x1E82E #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M020_SA 0x1E82F #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M021_SU 0x1E830 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M162_SEE 0x1E831 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M116_SE 0x1E832 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M136_SOO 0x1E833 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M079_SO 0x1E834 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M196_SIA 0x1E835 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M025_LI 0x1E836 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M026_LA 0x1E837 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M027_LU 0x1E838 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M084_LEE 0x1E839 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M073_LE 0x1E83A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M054_LOO 0x1E83B #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M153_LO 0x1E83C #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M110_LONG_LE 0x1E83D #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M016_DI 0x1E83E #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M017_DA 0x1E83F #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M018_DU 0x1E840 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M089_DEE 0x1E841 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M180_DOO 0x1E842 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M181_DO 0x1E843 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M022_TI 0x1E844 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M023_TA 0x1E845 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M024_TU 0x1E846 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M091_TEE 0x1E847 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M055_TE 0x1E848 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M104_TOO 0x1E849 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M069_TO 0x1E84A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M028_JI 0x1E84B #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M029_JA 0x1E84C #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M030_JU 0x1E84D #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M157_JEE 0x1E84E #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M113_JE 0x1E84F #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M160_JOO 0x1E850 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M063_JO 0x1E851 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M175_LONG_JO 0x1E852 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M031_YI 0x1E853 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M032_YA 0x1E854 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M033_YU 0x1E855 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M109_YEE 0x1E856 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M080_YE 0x1E857 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M141_YOO 0x1E858 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M121_YO 0x1E859 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M034_FI 0x1E85A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M035_FA 0x1E85B #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M036_FU 0x1E85C #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M078_FEE 0x1E85D #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M075_FE 0x1E85E #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M133_FOO 0x1E85F #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M088_FO 0x1E860 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M197_FUA 0x1E861 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M101_FAN 0x1E862 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M037_NIN 0x1E863 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M038_NAN 0x1E864 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M039_NUN 0x1E865 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M117_NEN 0x1E866 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M169_NON 0x1E867 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M176_HI 0x1E868 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M041_HA 0x1E869 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M186_HU 0x1E86A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M040_HEE 0x1E86B #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M096_HE 0x1E86C #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M042_HOO 0x1E86D #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M140_HO 0x1E86E #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M083_HEEI 0x1E86F #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M128_HOOU 0x1E870 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M053_HIN 0x1E871 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M130_HAN 0x1E872 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M087_HUN 0x1E873 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M052_HEN 0x1E874 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M193_HON 0x1E875 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M046_HUAN 0x1E876 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M090_NGGI 0x1E877 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M043_NGGA 0x1E878 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M082_NGGU 0x1E879 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M115_NGGEE 0x1E87A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M146_NGGE 0x1E87B #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M156_NGGOO 0x1E87C #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M120_NGGO 0x1E87D #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M159_NGGAA 0x1E87E #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M127_NGGUA 0x1E87F #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M086_LONG_NGGE 0x1E880 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M106_LONG_NGGOO 0x1E881 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M183_LONG_NGGO 0x1E882 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M155_GI 0x1E883 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M111_GA 0x1E884 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M168_GU 0x1E885 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M190_GEE 0x1E886 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M166_GUEI 0x1E887 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M167_GUAN 0x1E888 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M184_NGEN 0x1E889 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M057_NGON 0x1E88A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M177_NGUAN 0x1E88B #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M068_PI 0x1E88C #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M099_PA 0x1E88D #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M050_PU 0x1E88E #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M081_PEE 0x1E88F #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M051_PE 0x1E890 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M102_POO 0x1E891 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M066_PO 0x1E892 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M145_MBI 0x1E893 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M062_MBA 0x1E894 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M122_MBU 0x1E895 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M047_MBEE 0x1E896 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M188_MBEE 0x1E897 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M072_MBE 0x1E898 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M172_MBOO 0x1E899 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M174_MBO 0x1E89A #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M187_MBUU 0x1E89B #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M161_LONG_MBE 0x1E89C #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M105_LONG_MBOO 0x1E89D #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M142_LONG_MBO 0x1E89E #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M132_KPI 0x1E89F #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M092_KPA 0x1E8A0 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M074_KPU 0x1E8A1 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M044_KPEE 0x1E8A2 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M108_KPE 0x1E8A3 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M112_KPOO 0x1E8A4 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M158_KPO 0x1E8A5 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M124_GBI 0x1E8A6 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M056_GBA 0x1E8A7 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M148_GBU 0x1E8A8 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M093_GBEE 0x1E8A9 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M107_GBE 0x1E8AA #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M071_GBOO 0x1E8AB #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M070_GBO 0x1E8AC #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M171_RA 0x1E8AD #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M123_NDI 0x1E8AE #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M129_NDA 0x1E8AF #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M125_NDU 0x1E8B0 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M191_NDEE 0x1E8B1 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M119_NDE 0x1E8B2 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M067_NDOO 0x1E8B3 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M064_NDO 0x1E8B4 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M152_NJA 0x1E8B5 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M192_NJU 0x1E8B6 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M149_NJEE 0x1E8B7 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M134_NJOO 0x1E8B8 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M182_VI 0x1E8B9 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M185_VA 0x1E8BA #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M151_VU 0x1E8BB #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M173_VEE 0x1E8BC #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M085_VE 0x1E8BD #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M144_VOO 0x1E8BE #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M077_VO 0x1E8BF #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M164_NYIN 0x1E8C0 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M058_NYAN 0x1E8C1 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M170_NYUN 0x1E8C2 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M098_NYEN 0x1E8C3 #define T_UTF_32_MENDE_KIKAKUI_SYLLABLE_M060_NYON 0x1E8C4 #define T_UTF_32_MENDE_KIKAKUI_DIGIT_ONE 0x1E8C7 #define T_UTF_32_MENDE_KIKAKUI_DIGIT_TWO 0x1E8C8 #define T_UTF_32_MENDE_KIKAKUI_DIGIT_THREE 0x1E8C9 #define T_UTF_32_MENDE_KIKAKUI_DIGIT_FOUR 0x1E8CA #define T_UTF_32_MENDE_KIKAKUI_DIGIT_FIVE 0x1E8CB #define T_UTF_32_MENDE_KIKAKUI_DIGIT_SIX 0x1E8CC #define T_UTF_32_MENDE_KIKAKUI_DIGIT_SEVEN 0x1E8CD #define T_UTF_32_MENDE_KIKAKUI_DIGIT_EIGHT 0x1E8CE #define T_UTF_32_MENDE_KIKAKUI_DIGIT_NINE 0x1E8CF #define T_UTF_32_MENDE_KIKAKUI_COMBINING_NUMBER_TEENS 0x1E8D0 #define T_UTF_32_MENDE_KIKAKUI_COMBINING_NUMBER_TENS 0x1E8D1 #define T_UTF_32_MENDE_KIKAKUI_COMBINING_NUMBER_HUNDREDS 0x1E8D2 #define T_UTF_32_MENDE_KIKAKUI_COMBINING_NUMBER_THOUSANDS 0x1E8D3 #define T_UTF_32_MENDE_KIKAKUI_COMBINING_NUMBER_TEN_THOUSANDS 0x1E8D4 #define T_UTF_32_MENDE_KIKAKUI_COMBINING_NUMBER_HUNDRED_THOUSANDS 0x1E8D5 #define T_UTF_32_MENDE_KIKAKUI_COMBINING_NUMBER_MILLIONS 0x1E8D6 #define T_UTF_32_ADLAM_CAPITAL_LETTER_ALIF 0x1E900 #define T_UTF_32_ADLAM_CAPITAL_LETTER_DAALI 0x1E901 #define T_UTF_32_ADLAM_CAPITAL_LETTER_LAAM 0x1E902 #define T_UTF_32_ADLAM_CAPITAL_LETTER_MIIM 0x1E903 #define T_UTF_32_ADLAM_CAPITAL_LETTER_BA 0x1E904 #define T_UTF_32_ADLAM_CAPITAL_LETTER_SINNYIIYHE 0x1E905 #define T_UTF_32_ADLAM_CAPITAL_LETTER_PE 0x1E906 #define T_UTF_32_ADLAM_CAPITAL_LETTER_BHE 0x1E907 #define T_UTF_32_ADLAM_CAPITAL_LETTER_RA 0x1E908 #define T_UTF_32_ADLAM_CAPITAL_LETTER_E 0x1E909 #define T_UTF_32_ADLAM_CAPITAL_LETTER_FA 0x1E90A #define T_UTF_32_ADLAM_CAPITAL_LETTER_I 0x1E90B #define T_UTF_32_ADLAM_CAPITAL_LETTER_O 0x1E90C #define T_UTF_32_ADLAM_CAPITAL_LETTER_DHA 0x1E90D #define T_UTF_32_ADLAM_CAPITAL_LETTER_YHE 0x1E90E #define T_UTF_32_ADLAM_CAPITAL_LETTER_WAW 0x1E90F #define T_UTF_32_ADLAM_CAPITAL_LETTER_NUN 0x1E910 #define T_UTF_32_ADLAM_CAPITAL_LETTER_KAF 0x1E911 #define T_UTF_32_ADLAM_CAPITAL_LETTER_YA 0x1E912 #define T_UTF_32_ADLAM_CAPITAL_LETTER_U 0x1E913 #define T_UTF_32_ADLAM_CAPITAL_LETTER_JIIM 0x1E914 #define T_UTF_32_ADLAM_CAPITAL_LETTER_CHI 0x1E915 #define T_UTF_32_ADLAM_CAPITAL_LETTER_HA 0x1E916 #define T_UTF_32_ADLAM_CAPITAL_LETTER_QAAF 0x1E917 #define T_UTF_32_ADLAM_CAPITAL_LETTER_GA 0x1E918 #define T_UTF_32_ADLAM_CAPITAL_LETTER_NYA 0x1E919 #define T_UTF_32_ADLAM_CAPITAL_LETTER_TU 0x1E91A #define T_UTF_32_ADLAM_CAPITAL_LETTER_NHA 0x1E91B #define T_UTF_32_ADLAM_CAPITAL_LETTER_VA 0x1E91C #define T_UTF_32_ADLAM_CAPITAL_LETTER_KHA 0x1E91D #define T_UTF_32_ADLAM_CAPITAL_LETTER_GBE 0x1E91E #define T_UTF_32_ADLAM_CAPITAL_LETTER_ZAL 0x1E91F #define T_UTF_32_ADLAM_CAPITAL_LETTER_KPO 0x1E920 #define T_UTF_32_ADLAM_CAPITAL_LETTER_SHA 0x1E921 #define T_UTF_32_ADLAM_SMALL_LETTER_ALIF 0x1E922 #define T_UTF_32_ADLAM_SMALL_LETTER_DAALI 0x1E923 #define T_UTF_32_ADLAM_SMALL_LETTER_LAAM 0x1E924 #define T_UTF_32_ADLAM_SMALL_LETTER_MIIM 0x1E925 #define T_UTF_32_ADLAM_SMALL_LETTER_BA 0x1E926 #define T_UTF_32_ADLAM_SMALL_LETTER_SINNYIIYHE 0x1E927 #define T_UTF_32_ADLAM_SMALL_LETTER_PE 0x1E928 #define T_UTF_32_ADLAM_SMALL_LETTER_BHE 0x1E929 #define T_UTF_32_ADLAM_SMALL_LETTER_RA 0x1E92A #define T_UTF_32_ADLAM_SMALL_LETTER_E 0x1E92B #define T_UTF_32_ADLAM_SMALL_LETTER_FA 0x1E92C #define T_UTF_32_ADLAM_SMALL_LETTER_I 0x1E92D #define T_UTF_32_ADLAM_SMALL_LETTER_O 0x1E92E #define T_UTF_32_ADLAM_SMALL_LETTER_DHA 0x1E92F #define T_UTF_32_ADLAM_SMALL_LETTER_YHE 0x1E930 #define T_UTF_32_ADLAM_SMALL_LETTER_WAW 0x1E931 #define T_UTF_32_ADLAM_SMALL_LETTER_NUN 0x1E932 #define T_UTF_32_ADLAM_SMALL_LETTER_KAF 0x1E933 #define T_UTF_32_ADLAM_SMALL_LETTER_YA 0x1E934 #define T_UTF_32_ADLAM_SMALL_LETTER_U 0x1E935 #define T_UTF_32_ADLAM_SMALL_LETTER_JIIM 0x1E936 #define T_UTF_32_ADLAM_SMALL_LETTER_CHI 0x1E937 #define T_UTF_32_ADLAM_SMALL_LETTER_HA 0x1E938 #define T_UTF_32_ADLAM_SMALL_LETTER_QAAF 0x1E939 #define T_UTF_32_ADLAM_SMALL_LETTER_GA 0x1E93A #define T_UTF_32_ADLAM_SMALL_LETTER_NYA 0x1E93B #define T_UTF_32_ADLAM_SMALL_LETTER_TU 0x1E93C #define T_UTF_32_ADLAM_SMALL_LETTER_NHA 0x1E93D #define T_UTF_32_ADLAM_SMALL_LETTER_VA 0x1E93E #define T_UTF_32_ADLAM_SMALL_LETTER_KHA 0x1E93F #define T_UTF_32_ADLAM_SMALL_LETTER_GBE 0x1E940 #define T_UTF_32_ADLAM_SMALL_LETTER_ZAL 0x1E941 #define T_UTF_32_ADLAM_SMALL_LETTER_KPO 0x1E942 #define T_UTF_32_ADLAM_SMALL_LETTER_SHA 0x1E943 #define T_UTF_32_ADLAM_ALIF_LENGTHENER 0x1E944 #define T_UTF_32_ADLAM_VOWEL_LENGTHENER 0x1E945 #define T_UTF_32_ADLAM_GEMINATION_MARK 0x1E946 #define T_UTF_32_ADLAM_HAMZA 0x1E947 #define T_UTF_32_ADLAM_CONSONANT_MODIFIER 0x1E948 #define T_UTF_32_ADLAM_GEMINATE_CONSONANT_MODIFIER 0x1E949 #define T_UTF_32_ADLAM_NUKTA 0x1E94A #define T_UTF_32_ADLAM_DIGIT_ZERO 0x1E950 #define T_UTF_32_ADLAM_DIGIT_ONE 0x1E951 #define T_UTF_32_ADLAM_DIGIT_TWO 0x1E952 #define T_UTF_32_ADLAM_DIGIT_THREE 0x1E953 #define T_UTF_32_ADLAM_DIGIT_FOUR 0x1E954 #define T_UTF_32_ADLAM_DIGIT_FIVE 0x1E955 #define T_UTF_32_ADLAM_DIGIT_SIX 0x1E956 #define T_UTF_32_ADLAM_DIGIT_SEVEN 0x1E957 #define T_UTF_32_ADLAM_DIGIT_EIGHT 0x1E958 #define T_UTF_32_ADLAM_DIGIT_NINE 0x1E959 #define T_UTF_32_ADLAM_INITIAL_EXCLAMATION_MARK 0x1E95E #define T_UTF_32_ADLAM_INITIAL_QUESTION_MARK 0x1E95F #define T_UTF_32_ARABIC_MATHEMATICAL_ALEF 0x1EE00 #define T_UTF_32_ARABIC_MATHEMATICAL_BEH 0x1EE01 #define T_UTF_32_ARABIC_MATHEMATICAL_JEEM 0x1EE02 #define T_UTF_32_ARABIC_MATHEMATICAL_DAL 0x1EE03 #define T_UTF_32_ARABIC_MATHEMATICAL_WAW 0x1EE05 #define T_UTF_32_ARABIC_MATHEMATICAL_ZAIN 0x1EE06 #define T_UTF_32_ARABIC_MATHEMATICAL_HAH 0x1EE07 #define T_UTF_32_ARABIC_MATHEMATICAL_TAH 0x1EE08 #define T_UTF_32_ARABIC_MATHEMATICAL_YEH 0x1EE09 #define T_UTF_32_ARABIC_MATHEMATICAL_KAF 0x1EE0A #define T_UTF_32_ARABIC_MATHEMATICAL_LAM 0x1EE0B #define T_UTF_32_ARABIC_MATHEMATICAL_MEEM 0x1EE0C #define T_UTF_32_ARABIC_MATHEMATICAL_NOON 0x1EE0D #define T_UTF_32_ARABIC_MATHEMATICAL_SEEN 0x1EE0E #define T_UTF_32_ARABIC_MATHEMATICAL_AIN 0x1EE0F #define T_UTF_32_ARABIC_MATHEMATICAL_FEH 0x1EE10 #define T_UTF_32_ARABIC_MATHEMATICAL_SAD 0x1EE11 #define T_UTF_32_ARABIC_MATHEMATICAL_QAF 0x1EE12 #define T_UTF_32_ARABIC_MATHEMATICAL_REH 0x1EE13 #define T_UTF_32_ARABIC_MATHEMATICAL_SHEEN 0x1EE14 #define T_UTF_32_ARABIC_MATHEMATICAL_TEH 0x1EE15 #define T_UTF_32_ARABIC_MATHEMATICAL_THEH 0x1EE16 #define T_UTF_32_ARABIC_MATHEMATICAL_KHAH 0x1EE17 #define T_UTF_32_ARABIC_MATHEMATICAL_THAL 0x1EE18 #define T_UTF_32_ARABIC_MATHEMATICAL_DAD 0x1EE19 #define T_UTF_32_ARABIC_MATHEMATICAL_ZAH 0x1EE1A #define T_UTF_32_ARABIC_MATHEMATICAL_GHAIN 0x1EE1B #define T_UTF_32_ARABIC_MATHEMATICAL_DOTLESS_BEH 0x1EE1C #define T_UTF_32_ARABIC_MATHEMATICAL_DOTLESS_NOON 0x1EE1D #define T_UTF_32_ARABIC_MATHEMATICAL_DOTLESS_FEH 0x1EE1E #define T_UTF_32_ARABIC_MATHEMATICAL_DOTLESS_QAF 0x1EE1F #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_BEH 0x1EE21 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_JEEM 0x1EE22 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_HEH 0x1EE24 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_HAH 0x1EE27 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_YEH 0x1EE29 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_KAF 0x1EE2A #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_LAM 0x1EE2B #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_MEEM 0x1EE2C #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_NOON 0x1EE2D #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_SEEN 0x1EE2E #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_AIN 0x1EE2F #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_FEH 0x1EE30 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_SAD 0x1EE31 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_QAF 0x1EE32 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_SHEEN 0x1EE34 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_TEH 0x1EE35 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_THEH 0x1EE36 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_KHAH 0x1EE37 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_DAD 0x1EE39 #define T_UTF_32_ARABIC_MATHEMATICAL_INITIAL_GHAIN 0x1EE3B #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_JEEM 0x1EE42 #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_HAH 0x1EE47 #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_YEH 0x1EE49 #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_LAM 0x1EE4B #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_NOON 0x1EE4D #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_SEEN 0x1EE4E #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_AIN 0x1EE4F #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_SAD 0x1EE51 #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_QAF 0x1EE52 #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_SHEEN 0x1EE54 #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_KHAH 0x1EE57 #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_DAD 0x1EE59 #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_GHAIN 0x1EE5B #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_DOTLESS_NOON 0x1EE5D #define T_UTF_32_ARABIC_MATHEMATICAL_TAILED_DOTLESS_QAF 0x1EE5F #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_BEH 0x1EE61 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_JEEM 0x1EE62 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_HEH 0x1EE64 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_HAH 0x1EE67 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_TAH 0x1EE68 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_YEH 0x1EE69 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_KAF 0x1EE6A #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_MEEM 0x1EE6C #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_NOON 0x1EE6D #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_SEEN 0x1EE6E #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_AIN 0x1EE6F #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_FEH 0x1EE70 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_SAD 0x1EE71 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_QAF 0x1EE72 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_SHEEN 0x1EE74 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_TEH 0x1EE75 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_THEH 0x1EE76 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_KHAH 0x1EE77 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_DAD 0x1EE79 #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_ZAH 0x1EE7A #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_GHAIN 0x1EE7B #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_DOTLESS_BEH 0x1EE7C #define T_UTF_32_ARABIC_MATHEMATICAL_STRETCHED_DOTLESS_FEH 0x1EE7E #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_ALEF 0x1EE80 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_BEH 0x1EE81 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_JEEM 0x1EE82 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_DAL 0x1EE83 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_HEH 0x1EE84 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_WAW 0x1EE85 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_ZAIN 0x1EE86 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_HAH 0x1EE87 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_TAH 0x1EE88 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_YEH 0x1EE89 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_LAM 0x1EE8B #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_MEEM 0x1EE8C #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_NOON 0x1EE8D #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_SEEN 0x1EE8E #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_AIN 0x1EE8F #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_FEH 0x1EE90 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_SAD 0x1EE91 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_QAF 0x1EE92 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_REH 0x1EE93 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_SHEEN 0x1EE94 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_TEH 0x1EE95 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_THEH 0x1EE96 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_KHAH 0x1EE97 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_THAL 0x1EE98 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_DAD 0x1EE99 #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_ZAH 0x1EE9A #define T_UTF_32_ARABIC_MATHEMATICAL_LOOPED_GHAIN 0x1EE9B #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_BEH 0x1EEA1 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_JEEM 0x1EEA2 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_DAL 0x1EEA3 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_WAW 0x1EEA5 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_ZAIN 0x1EEA6 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_HAH 0x1EEA7 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_TAH 0x1EEA8 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_YEH 0x1EEA9 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_LAM 0x1EEAB #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_MEEM 0x1EEAC #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_NOON 0x1EEAD #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_SEEN 0x1EEAE #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_AIN 0x1EEAF #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_FEH 0x1EEB0 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_SAD 0x1EEB1 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_QAF 0x1EEB2 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_REH 0x1EEB3 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_SHEEN 0x1EEB4 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_TEH 0x1EEB5 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_THEH 0x1EEB6 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_KHAH 0x1EEB7 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_THAL 0x1EEB8 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_DAD 0x1EEB9 #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_ZAH 0x1EEBA #define T_UTF_32_ARABIC_MATHEMATICAL_DOUBLE_STRUCK_GHAIN 0x1EEBB #define T_UTF_32_ARABIC_MATHEMATICAL_OPERATOR_MEEM_WITH_HAH_WITH_TATWEEL 0x1EEF0 #define T_UTF_32_ARABIC_MATHEMATICAL_OPERATOR_HAH_WITH_DAL 0x1EEF1 #define T_UTF_32_MAHJONG_TILE_EAST_WIND 0x1F000 #define T_UTF_32_MAHJONG_TILE_SOUTH_WIND 0x1F001 #define T_UTF_32_MAHJONG_TILE_WEST_WIND 0x1F002 #define T_UTF_32_MAHJONG_TILE_NORTH_WIND 0x1F003 #define T_UTF_32_MAHJONG_TILE_RED_DRAGON 0x1F004 #define T_UTF_32_MAHJONG_TILE_GREEN_DRAGON 0x1F005 #define T_UTF_32_MAHJONG_TILE_WHITE_DRAGON 0x1F006 #define T_UTF_32_MAHJONG_TILE_ONE_OF_CHARACTERS 0x1F007 #define T_UTF_32_MAHJONG_TILE_TWO_OF_CHARACTERS 0x1F008 #define T_UTF_32_MAHJONG_TILE_THREE_OF_CHARACTERS 0x1F009 #define T_UTF_32_MAHJONG_TILE_FOUR_OF_CHARACTERS 0x1F00A #define T_UTF_32_MAHJONG_TILE_FIVE_OF_CHARACTERS 0x1F00B #define T_UTF_32_MAHJONG_TILE_SIX_OF_CHARACTERS 0x1F00C #define T_UTF_32_MAHJONG_TILE_SEVEN_OF_CHARACTERS 0x1F00D #define T_UTF_32_MAHJONG_TILE_EIGHT_OF_CHARACTERS 0x1F00E #define T_UTF_32_MAHJONG_TILE_NINE_OF_CHARACTERS 0x1F00F #define T_UTF_32_MAHJONG_TILE_ONE_OF_BAMBOOS 0x1F010 #define T_UTF_32_MAHJONG_TILE_TWO_OF_BAMBOOS 0x1F011 #define T_UTF_32_MAHJONG_TILE_THREE_OF_BAMBOOS 0x1F012 #define T_UTF_32_MAHJONG_TILE_FOUR_OF_BAMBOOS 0x1F013 #define T_UTF_32_MAHJONG_TILE_FIVE_OF_BAMBOOS 0x1F014 #define T_UTF_32_MAHJONG_TILE_SIX_OF_BAMBOOS 0x1F015 #define T_UTF_32_MAHJONG_TILE_SEVEN_OF_BAMBOOS 0x1F016 #define T_UTF_32_MAHJONG_TILE_EIGHT_OF_BAMBOOS 0x1F017 #define T_UTF_32_MAHJONG_TILE_NINE_OF_BAMBOOS 0x1F018 #define T_UTF_32_MAHJONG_TILE_ONE_OF_CIRCLES 0x1F019 #define T_UTF_32_MAHJONG_TILE_TWO_OF_CIRCLES 0x1F01A #define T_UTF_32_MAHJONG_TILE_THREE_OF_CIRCLES 0x1F01B #define T_UTF_32_MAHJONG_TILE_FOUR_OF_CIRCLES 0x1F01C #define T_UTF_32_MAHJONG_TILE_FIVE_OF_CIRCLES 0x1F01D #define T_UTF_32_MAHJONG_TILE_SIX_OF_CIRCLES 0x1F01E #define T_UTF_32_MAHJONG_TILE_SEVEN_OF_CIRCLES 0x1F01F #define T_UTF_32_MAHJONG_TILE_EIGHT_OF_CIRCLES 0x1F020 #define T_UTF_32_MAHJONG_TILE_NINE_OF_CIRCLES 0x1F021 #define T_UTF_32_MAHJONG_TILE_PLUM 0x1F022 #define T_UTF_32_MAHJONG_TILE_ORCHID 0x1F023 #define T_UTF_32_MAHJONG_TILE_BAMBOO 0x1F024 #define T_UTF_32_MAHJONG_TILE_CHRYSANTHEMUM 0x1F025 #define T_UTF_32_MAHJONG_TILE_SPRING 0x1F026 #define T_UTF_32_MAHJONG_TILE_SUMMER 0x1F027 #define T_UTF_32_MAHJONG_TILE_AUTUMN 0x1F028 #define T_UTF_32_MAHJONG_TILE_WINTER 0x1F029 #define T_UTF_32_MAHJONG_TILE_JOKER 0x1F02A #define T_UTF_32_MAHJONG_TILE_BACK 0x1F02B #define T_UTF_32_DOMINO_TILE_HORIZONTAL_BACK 0x1F030 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_00_00 0x1F031 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_00_01 0x1F032 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_00_02 0x1F033 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_00_03 0x1F034 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_00_04 0x1F035 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_00_05 0x1F036 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_00_06 0x1F037 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_01_00 0x1F038 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_01_01 0x1F039 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_01_02 0x1F03A #define T_UTF_32_DOMINO_TILE_HORIZONTAL_01_03 0x1F03B #define T_UTF_32_DOMINO_TILE_HORIZONTAL_01_04 0x1F03C #define T_UTF_32_DOMINO_TILE_HORIZONTAL_01_05 0x1F03D #define T_UTF_32_DOMINO_TILE_HORIZONTAL_01_06 0x1F03E #define T_UTF_32_DOMINO_TILE_HORIZONTAL_02_00 0x1F03F #define T_UTF_32_DOMINO_TILE_HORIZONTAL_02_01 0x1F040 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_02_02 0x1F041 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_02_03 0x1F042 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_02_04 0x1F043 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_02_05 0x1F044 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_02_06 0x1F045 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_03_00 0x1F046 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_03_01 0x1F047 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_03_02 0x1F048 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_03_03 0x1F049 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_03_04 0x1F04A #define T_UTF_32_DOMINO_TILE_HORIZONTAL_03_05 0x1F04B #define T_UTF_32_DOMINO_TILE_HORIZONTAL_03_06 0x1F04C #define T_UTF_32_DOMINO_TILE_HORIZONTAL_04_00 0x1F04D #define T_UTF_32_DOMINO_TILE_HORIZONTAL_04_01 0x1F04E #define T_UTF_32_DOMINO_TILE_HORIZONTAL_04_02 0x1F04F #define T_UTF_32_DOMINO_TILE_HORIZONTAL_04_03 0x1F050 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_04_04 0x1F051 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_04_05 0x1F052 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_04_06 0x1F053 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_05_00 0x1F054 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_05_01 0x1F055 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_05_02 0x1F056 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_05_03 0x1F057 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_05_04 0x1F058 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_05_05 0x1F059 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_05_06 0x1F05A #define T_UTF_32_DOMINO_TILE_HORIZONTAL_06_00 0x1F05B #define T_UTF_32_DOMINO_TILE_HORIZONTAL_06_01 0x1F05C #define T_UTF_32_DOMINO_TILE_HORIZONTAL_06_02 0x1F05D #define T_UTF_32_DOMINO_TILE_HORIZONTAL_06_03 0x1F05E #define T_UTF_32_DOMINO_TILE_HORIZONTAL_06_04 0x1F05F #define T_UTF_32_DOMINO_TILE_HORIZONTAL_06_05 0x1F060 #define T_UTF_32_DOMINO_TILE_HORIZONTAL_06_06 0x1F061 #define T_UTF_32_DOMINO_TILE_VERTICAL_BACK 0x1F062 #define T_UTF_32_DOMINO_TILE_VERTICAL_00_00 0x1F063 #define T_UTF_32_DOMINO_TILE_VERTICAL_00_01 0x1F064 #define T_UTF_32_DOMINO_TILE_VERTICAL_00_02 0x1F065 #define T_UTF_32_DOMINO_TILE_VERTICAL_00_03 0x1F066 #define T_UTF_32_DOMINO_TILE_VERTICAL_00_04 0x1F067 #define T_UTF_32_DOMINO_TILE_VERTICAL_00_05 0x1F068 #define T_UTF_32_DOMINO_TILE_VERTICAL_00_06 0x1F069 #define T_UTF_32_DOMINO_TILE_VERTICAL_01_00 0x1F06A #define T_UTF_32_DOMINO_TILE_VERTICAL_01_01 0x1F06B #define T_UTF_32_DOMINO_TILE_VERTICAL_01_02 0x1F06C #define T_UTF_32_DOMINO_TILE_VERTICAL_01_03 0x1F06D #define T_UTF_32_DOMINO_TILE_VERTICAL_01_04 0x1F06E #define T_UTF_32_DOMINO_TILE_VERTICAL_01_05 0x1F06F #define T_UTF_32_DOMINO_TILE_VERTICAL_01_06 0x1F070 #define T_UTF_32_DOMINO_TILE_VERTICAL_02_00 0x1F071 #define T_UTF_32_DOMINO_TILE_VERTICAL_02_01 0x1F072 #define T_UTF_32_DOMINO_TILE_VERTICAL_02_02 0x1F073 #define T_UTF_32_DOMINO_TILE_VERTICAL_02_03 0x1F074 #define T_UTF_32_DOMINO_TILE_VERTICAL_02_04 0x1F075 #define T_UTF_32_DOMINO_TILE_VERTICAL_02_05 0x1F076 #define T_UTF_32_DOMINO_TILE_VERTICAL_02_06 0x1F077 #define T_UTF_32_DOMINO_TILE_VERTICAL_03_00 0x1F078 #define T_UTF_32_DOMINO_TILE_VERTICAL_03_01 0x1F079 #define T_UTF_32_DOMINO_TILE_VERTICAL_03_02 0x1F07A #define T_UTF_32_DOMINO_TILE_VERTICAL_03_03 0x1F07B #define T_UTF_32_DOMINO_TILE_VERTICAL_03_04 0x1F07C #define T_UTF_32_DOMINO_TILE_VERTICAL_03_05 0x1F07D #define T_UTF_32_DOMINO_TILE_VERTICAL_03_06 0x1F07E #define T_UTF_32_DOMINO_TILE_VERTICAL_04_00 0x1F07F #define T_UTF_32_DOMINO_TILE_VERTICAL_04_01 0x1F080 #define T_UTF_32_DOMINO_TILE_VERTICAL_04_02 0x1F081 #define T_UTF_32_DOMINO_TILE_VERTICAL_04_03 0x1F082 #define T_UTF_32_DOMINO_TILE_VERTICAL_04_04 0x1F083 #define T_UTF_32_DOMINO_TILE_VERTICAL_04_05 0x1F084 #define T_UTF_32_DOMINO_TILE_VERTICAL_04_06 0x1F085 #define T_UTF_32_DOMINO_TILE_VERTICAL_05_00 0x1F086 #define T_UTF_32_DOMINO_TILE_VERTICAL_05_01 0x1F087 #define T_UTF_32_DOMINO_TILE_VERTICAL_05_02 0x1F088 #define T_UTF_32_DOMINO_TILE_VERTICAL_05_03 0x1F089 #define T_UTF_32_DOMINO_TILE_VERTICAL_05_04 0x1F08A #define T_UTF_32_DOMINO_TILE_VERTICAL_05_05 0x1F08B #define T_UTF_32_DOMINO_TILE_VERTICAL_05_06 0x1F08C #define T_UTF_32_DOMINO_TILE_VERTICAL_06_00 0x1F08D #define T_UTF_32_DOMINO_TILE_VERTICAL_06_01 0x1F08E #define T_UTF_32_DOMINO_TILE_VERTICAL_06_02 0x1F08F #define T_UTF_32_DOMINO_TILE_VERTICAL_06_03 0x1F090 #define T_UTF_32_DOMINO_TILE_VERTICAL_06_04 0x1F091 #define T_UTF_32_DOMINO_TILE_VERTICAL_06_05 0x1F092 #define T_UTF_32_DOMINO_TILE_VERTICAL_06_06 0x1F093 #define T_UTF_32_PLAYING_CARD_BACK 0x1F0A0 #define T_UTF_32_PLAYING_CARD_ACE_OF_SPADES 0x1F0A1 #define T_UTF_32_PLAYING_CARD_TWO_OF_SPADES 0x1F0A2 #define T_UTF_32_PLAYING_CARD_THREE_OF_SPADES 0x1F0A3 #define T_UTF_32_PLAYING_CARD_FOUR_OF_SPADES 0x1F0A4 #define T_UTF_32_PLAYING_CARD_FIVE_OF_SPADES 0x1F0A5 #define T_UTF_32_PLAYING_CARD_SIX_OF_SPADES 0x1F0A6 #define T_UTF_32_PLAYING_CARD_SEVEN_OF_SPADES 0x1F0A7 #define T_UTF_32_PLAYING_CARD_EIGHT_OF_SPADES 0x1F0A8 #define T_UTF_32_PLAYING_CARD_NINE_OF_SPADES 0x1F0A9 #define T_UTF_32_PLAYING_CARD_TEN_OF_SPADES 0x1F0AA #define T_UTF_32_PLAYING_CARD_JACK_OF_SPADES 0x1F0AB #define T_UTF_32_PLAYING_CARD_KNIGHT_OF_SPADES 0x1F0AC #define T_UTF_32_PLAYING_CARD_QUEEN_OF_SPADES 0x1F0AD #define T_UTF_32_PLAYING_CARD_KING_OF_SPADES 0x1F0AE #define T_UTF_32_PLAYING_CARD_ACE_OF_HEARTS 0x1F0B1 #define T_UTF_32_PLAYING_CARD_TWO_OF_HEARTS 0x1F0B2 #define T_UTF_32_PLAYING_CARD_THREE_OF_HEARTS 0x1F0B3 #define T_UTF_32_PLAYING_CARD_FOUR_OF_HEARTS 0x1F0B4 #define T_UTF_32_PLAYING_CARD_FIVE_OF_HEARTS 0x1F0B5 #define T_UTF_32_PLAYING_CARD_SIX_OF_HEARTS 0x1F0B6 #define T_UTF_32_PLAYING_CARD_SEVEN_OF_HEARTS 0x1F0B7 #define T_UTF_32_PLAYING_CARD_EIGHT_OF_HEARTS 0x1F0B8 #define T_UTF_32_PLAYING_CARD_NINE_OF_HEARTS 0x1F0B9 #define T_UTF_32_PLAYING_CARD_TEN_OF_HEARTS 0x1F0BA #define T_UTF_32_PLAYING_CARD_JACK_OF_HEARTS 0x1F0BB #define T_UTF_32_PLAYING_CARD_KNIGHT_OF_HEARTS 0x1F0BC #define T_UTF_32_PLAYING_CARD_QUEEN_OF_HEARTS 0x1F0BD #define T_UTF_32_PLAYING_CARD_KING_OF_HEARTS 0x1F0BE #define T_UTF_32_PLAYING_CARD_RED_JOKER 0x1F0BF #define T_UTF_32_PLAYING_CARD_ACE_OF_DIAMONDS 0x1F0C1 #define T_UTF_32_PLAYING_CARD_TWO_OF_DIAMONDS 0x1F0C2 #define T_UTF_32_PLAYING_CARD_THREE_OF_DIAMONDS 0x1F0C3 #define T_UTF_32_PLAYING_CARD_FOUR_OF_DIAMONDS 0x1F0C4 #define T_UTF_32_PLAYING_CARD_FIVE_OF_DIAMONDS 0x1F0C5 #define T_UTF_32_PLAYING_CARD_SIX_OF_DIAMONDS 0x1F0C6 #define T_UTF_32_PLAYING_CARD_SEVEN_OF_DIAMONDS 0x1F0C7 #define T_UTF_32_PLAYING_CARD_EIGHT_OF_DIAMONDS 0x1F0C8 #define T_UTF_32_PLAYING_CARD_NINE_OF_DIAMONDS 0x1F0C9 #define T_UTF_32_PLAYING_CARD_TEN_OF_DIAMONDS 0x1F0CA #define T_UTF_32_PLAYING_CARD_JACK_OF_DIAMONDS 0x1F0CB #define T_UTF_32_PLAYING_CARD_KNIGHT_OF_DIAMONDS 0x1F0CC #define T_UTF_32_PLAYING_CARD_QUEEN_OF_DIAMONDS 0x1F0CD #define T_UTF_32_PLAYING_CARD_KING_OF_DIAMONDS 0x1F0CE #define T_UTF_32_PLAYING_CARD_BLACK_JOKER 0x1F0CF #define T_UTF_32_PLAYING_CARD_ACE_OF_CLUBS 0x1F0D1 #define T_UTF_32_PLAYING_CARD_TWO_OF_CLUBS 0x1F0D2 #define T_UTF_32_PLAYING_CARD_THREE_OF_CLUBS 0x1F0D3 #define T_UTF_32_PLAYING_CARD_FOUR_OF_CLUBS 0x1F0D4 #define T_UTF_32_PLAYING_CARD_FIVE_OF_CLUBS 0x1F0D5 #define T_UTF_32_PLAYING_CARD_SIX_OF_CLUBS 0x1F0D6 #define T_UTF_32_PLAYING_CARD_SEVEN_OF_CLUBS 0x1F0D7 #define T_UTF_32_PLAYING_CARD_EIGHT_OF_CLUBS 0x1F0D8 #define T_UTF_32_PLAYING_CARD_NINE_OF_CLUBS 0x1F0D9 #define T_UTF_32_PLAYING_CARD_TEN_OF_CLUBS 0x1F0DA #define T_UTF_32_PLAYING_CARD_JACK_OF_CLUBS 0x1F0DB #define T_UTF_32_PLAYING_CARD_KNIGHT_OF_CLUBS 0x1F0DC #define T_UTF_32_PLAYING_CARD_QUEEN_OF_CLUBS 0x1F0DD #define T_UTF_32_PLAYING_CARD_KING_OF_CLUBS 0x1F0DE #define T_UTF_32_PLAYING_CARD_WHITE_JOKER 0x1F0DF #define T_UTF_32_PLAYING_CARD_FOOL 0x1F0E0 #define T_UTF_32_PLAYING_CARD_TRUMP_1 0x1F0E1 #define T_UTF_32_PLAYING_CARD_TRUMP_2 0x1F0E2 #define T_UTF_32_PLAYING_CARD_TRUMP_3 0x1F0E3 #define T_UTF_32_PLAYING_CARD_TRUMP_4 0x1F0E4 #define T_UTF_32_PLAYING_CARD_TRUMP_5 0x1F0E5 #define T_UTF_32_PLAYING_CARD_TRUMP_6 0x1F0E6 #define T_UTF_32_PLAYING_CARD_TRUMP_7 0x1F0E7 #define T_UTF_32_PLAYING_CARD_TRUMP_8 0x1F0E8 #define T_UTF_32_PLAYING_CARD_TRUMP_9 0x1F0E9 #define T_UTF_32_PLAYING_CARD_TRUMP_10 0x1F0EA #define T_UTF_32_PLAYING_CARD_TRUMP_11 0x1F0EB #define T_UTF_32_PLAYING_CARD_TRUMP_12 0x1F0EC #define T_UTF_32_PLAYING_CARD_TRUMP_13 0x1F0ED #define T_UTF_32_PLAYING_CARD_TRUMP_14 0x1F0EE #define T_UTF_32_PLAYING_CARD_TRUMP_15 0x1F0EF #define T_UTF_32_PLAYING_CARD_TRUMP_16 0x1F0F0 #define T_UTF_32_PLAYING_CARD_TRUMP_17 0x1F0F1 #define T_UTF_32_PLAYING_CARD_TRUMP_18 0x1F0F2 #define T_UTF_32_PLAYING_CARD_TRUMP_19 0x1F0F3 #define T_UTF_32_PLAYING_CARD_TRUMP_20 0x1F0F4 #define T_UTF_32_PLAYING_CARD_TRUMP_21 0x1F0F5 #define T_UTF_32_DIGIT_ZERO_FULL_STOP 0x1F100 #define T_UTF_32_DIGIT_ZERO_COMMA 0x1F101 #define T_UTF_32_DIGIT_ONE_COMMA 0x1F102 #define T_UTF_32_DIGIT_TWO_COMMA 0x1F103 #define T_UTF_32_DIGIT_THREE_COMMA 0x1F104 #define T_UTF_32_DIGIT_FOUR_COMMA 0x1F105 #define T_UTF_32_DIGIT_FIVE_COMMA 0x1F106 #define T_UTF_32_DIGIT_SIX_COMMA 0x1F107 #define T_UTF_32_DIGIT_SEVEN_COMMA 0x1F108 #define T_UTF_32_DIGIT_EIGHT_COMMA 0x1F109 #define T_UTF_32_DIGIT_NINE_COMMA 0x1F10A #define T_UTF_32_DINGBAT_CIRCLED_SANS_SERIF_DIGIT_ZERO 0x1F10B #define T_UTF_32_DINGBAT_NEGATIVE_CIRCLED_SANS_SERIF_DIGIT_ZERO 0x1F10C #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_A 0x1F110 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_B 0x1F111 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_C 0x1F112 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_D 0x1F113 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_E 0x1F114 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_F 0x1F115 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_G 0x1F116 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_H 0x1F117 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_I 0x1F118 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_J 0x1F119 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_K 0x1F11A #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_L 0x1F11B #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_M 0x1F11C #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_N 0x1F11D #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_O 0x1F11E #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_P 0x1F11F #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_Q 0x1F120 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_R 0x1F121 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_S 0x1F122 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_T 0x1F123 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_U 0x1F124 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_V 0x1F125 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_W 0x1F126 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_X 0x1F127 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_Y 0x1F128 #define T_UTF_32_PARENTHESIZED_LATIN_CAPITAL_LETTER_Z 0x1F129 #define T_UTF_32_TORTOISE_SHELL_BRACKETED_LATIN_CAPITAL_LETTER_S 0x1F12A #define T_UTF_32_CIRCLED_ITALIC_LATIN_CAPITAL_LETTER_C 0x1F12B #define T_UTF_32_CIRCLED_ITALIC_LATIN_CAPITAL_LETTER_R 0x1F12C #define T_UTF_32_CIRCLED_CD 0x1F12D #define T_UTF_32_CIRCLED_WZ 0x1F12E #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_A 0x1F130 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_B 0x1F131 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_C 0x1F132 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_D 0x1F133 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_E 0x1F134 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_F 0x1F135 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_G 0x1F136 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_H 0x1F137 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_I 0x1F138 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_J 0x1F139 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_K 0x1F13A #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_L 0x1F13B #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_M 0x1F13C #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_N 0x1F13D #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_O 0x1F13E #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_P 0x1F13F #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_Q 0x1F140 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_R 0x1F141 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_S 0x1F142 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_T 0x1F143 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_U 0x1F144 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_V 0x1F145 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_W 0x1F146 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_X 0x1F147 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_Y 0x1F148 #define T_UTF_32_SQUARED_LATIN_CAPITAL_LETTER_Z 0x1F149 #define T_UTF_32_SQUARED_HV 0x1F14A #define T_UTF_32_SQUARED_MV 0x1F14B #define T_UTF_32_SQUARED_SD 0x1F14C #define T_UTF_32_SQUARED_SS 0x1F14D #define T_UTF_32_SQUARED_PPV 0x1F14E #define T_UTF_32_SQUARED_WC 0x1F14F #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_A 0x1F150 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_B 0x1F151 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_C 0x1F152 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_D 0x1F153 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_E 0x1F154 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_F 0x1F155 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_G 0x1F156 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_H 0x1F157 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_I 0x1F158 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_J 0x1F159 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_K 0x1F15A #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_L 0x1F15B #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_M 0x1F15C #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_N 0x1F15D #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_O 0x1F15E #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_P 0x1F15F #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_Q 0x1F160 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_R 0x1F161 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_S 0x1F162 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_T 0x1F163 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_U 0x1F164 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_V 0x1F165 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_W 0x1F166 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_X 0x1F167 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_Y 0x1F168 #define T_UTF_32_NEGATIVE_CIRCLED_LATIN_CAPITAL_LETTER_Z 0x1F169 #define T_UTF_32_RAISED_MC_SIGN 0x1F16A #define T_UTF_32_RAISED_MD_SIGN 0x1F16B #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_A 0x1F170 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_B 0x1F171 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_C 0x1F172 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_D 0x1F173 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_E 0x1F174 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_F 0x1F175 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_G 0x1F176 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_H 0x1F177 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_I 0x1F178 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_J 0x1F179 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_K 0x1F17A #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_L 0x1F17B #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_M 0x1F17C #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_N 0x1F17D #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_O 0x1F17E #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_P 0x1F17F #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_Q 0x1F180 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_R 0x1F181 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_S 0x1F182 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_T 0x1F183 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_U 0x1F184 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_V 0x1F185 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_W 0x1F186 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_X 0x1F187 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_Y 0x1F188 #define T_UTF_32_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_Z 0x1F189 #define T_UTF_32_CROSSED_NEGATIVE_SQUARED_LATIN_CAPITAL_LETTER_P 0x1F18A #define T_UTF_32_NEGATIVE_SQUARED_IC 0x1F18B #define T_UTF_32_NEGATIVE_SQUARED_PA 0x1F18C #define T_UTF_32_NEGATIVE_SQUARED_SA 0x1F18D #define T_UTF_32_NEGATIVE_SQUARED_AB 0x1F18E #define T_UTF_32_NEGATIVE_SQUARED_WC 0x1F18F #define T_UTF_32_SQUARE_DJ 0x1F190 #define T_UTF_32_SQUARED_CL 0x1F191 #define T_UTF_32_SQUARED_COOL 0x1F192 #define T_UTF_32_SQUARED_FREE 0x1F193 #define T_UTF_32_SQUARED_ID 0x1F194 #define T_UTF_32_SQUARED_NEW 0x1F195 #define T_UTF_32_SQUARED_NG 0x1F196 #define T_UTF_32_SQUARED_OK 0x1F197 #define T_UTF_32_SQUARED_SOS 0x1F198 #define T_UTF_32_SQUARED_UP_WITH_EXCLAMATION_MARK 0x1F199 #define T_UTF_32_SQUARED_VS 0x1F19A #define T_UTF_32_SQUARED_THREE_D 0x1F19B #define T_UTF_32_SQUARED_SECOND_SCREEN 0x1F19C #define T_UTF_32_SQUARED_TWO_K 0x1F19D #define T_UTF_32_SQUARED_FOUR_K 0x1F19E #define T_UTF_32_SQUARED_EIGHT_K 0x1F19F #define T_UTF_32_SQUARED_FIVE_POINT_ONE 0x1F1A0 #define T_UTF_32_SQUARED_SEVEN_POINT_ONE 0x1F1A1 #define T_UTF_32_SQUARED_TWENTY_TWO_POINT_TWO 0x1F1A2 #define T_UTF_32_SQUARED_SIXTY_P 0x1F1A3 #define T_UTF_32_SQUARED_ONE_HUNDRED_TWENTY_P 0x1F1A4 #define T_UTF_32_SQUARED_LATIN_SMALL_LETTER_D 0x1F1A5 #define T_UTF_32_SQUARED_HC 0x1F1A6 #define T_UTF_32_SQUARED_HDR 0x1F1A7 #define T_UTF_32_SQUARED_HI_RES 0x1F1A8 #define T_UTF_32_SQUARED_LOSSLESS 0x1F1A9 #define T_UTF_32_SQUARED_SHV 0x1F1AA #define T_UTF_32_SQUARED_UHD 0x1F1AB #define T_UTF_32_SQUARED_VOD 0x1F1AC #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_A 0x1F1E6 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_B 0x1F1E7 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_C 0x1F1E8 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_D 0x1F1E9 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_E 0x1F1EA #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_F 0x1F1EB #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_G 0x1F1EC #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_H 0x1F1ED #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_I 0x1F1EE #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_J 0x1F1EF #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_K 0x1F1F0 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_L 0x1F1F1 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_M 0x1F1F2 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_N 0x1F1F3 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_O 0x1F1F4 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_P 0x1F1F5 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_Q 0x1F1F6 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_R 0x1F1F7 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_S 0x1F1F8 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_T 0x1F1F9 #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_U 0x1F1FA #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_V 0x1F1FB #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_W 0x1F1FC #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_X 0x1F1FD #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_Y 0x1F1FE #define T_UTF_32_REGIONAL_INDICATOR_SYMBOL_LETTER_Z 0x1F1FF #define T_UTF_32_SQUARE_HIRAGANA_HOKA 0x1F200 #define T_UTF_32_SQUARED_KATAKANA_KOKO 0x1F201 #define T_UTF_32_SQUARED_KATAKANA_SA 0x1F202 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_624B 0x1F210 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_5B57 0x1F211 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_53CC 0x1F212 #define T_UTF_32_SQUARED_KATAKANA_DE 0x1F213 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_4E8C 0x1F214 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_591A 0x1F215 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_89E3 0x1F216 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_5929 0x1F217 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_4EA4 0x1F218 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_6620 0x1F219 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_7121 0x1F21A #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_6599 0x1F21B #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_524D 0x1F21C #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_5F8C 0x1F21D #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_518D 0x1F21E #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_65B0 0x1F21F #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_521D 0x1F220 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_7D42 0x1F221 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_751F 0x1F222 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_8CA9 0x1F223 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_58F0 0x1F224 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_5439 0x1F225 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_6F14 0x1F226 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_6295 0x1F227 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_6355 0x1F228 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_4E00 0x1F229 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_4E09 0x1F22A #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_904A 0x1F22B #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_5DE6 0x1F22C #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_4E2D 0x1F22D #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_53F3 0x1F22E #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_6307 0x1F22F #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_8D70 0x1F230 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_6253 0x1F231 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_7981 0x1F232 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_7A7A 0x1F233 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_5408 0x1F234 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_6E80 0x1F235 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_6709 0x1F236 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_6708 0x1F237 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_7533 0x1F238 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_5272 0x1F239 #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_55B6 0x1F23A #define T_UTF_32_SQUARED_CJK_UNIFIED_IDEOGRAPH_914D 0x1F23B #define T_UTF_32_TORTOISE_SHELL_BRACKETED_CJK_UNIFIED_IDEOGRAPH_672C 0x1F240 #define T_UTF_32_TORTOISE_SHELL_BRACKETED_CJK_UNIFIED_IDEOGRAPH_4E09 0x1F241 #define T_UTF_32_TORTOISE_SHELL_BRACKETED_CJK_UNIFIED_IDEOGRAPH_4E8C 0x1F242 #define T_UTF_32_TORTOISE_SHELL_BRACKETED_CJK_UNIFIED_IDEOGRAPH_5B89 0x1F243 #define T_UTF_32_TORTOISE_SHELL_BRACKETED_CJK_UNIFIED_IDEOGRAPH_70B9 0x1F244 #define T_UTF_32_TORTOISE_SHELL_BRACKETED_CJK_UNIFIED_IDEOGRAPH_6253 0x1F245 #define T_UTF_32_TORTOISE_SHELL_BRACKETED_CJK_UNIFIED_IDEOGRAPH_76D7 0x1F246 #define T_UTF_32_TORTOISE_SHELL_BRACKETED_CJK_UNIFIED_IDEOGRAPH_52DD 0x1F247 #define T_UTF_32_TORTOISE_SHELL_BRACKETED_CJK_UNIFIED_IDEOGRAPH_6557 0x1F248 #define T_UTF_32_CIRCLED_IDEOGRAPH_ADVANTAGE 0x1F250 #define T_UTF_32_CIRCLED_IDEOGRAPH_ACCEPT 0x1F251 #define T_UTF_32_ROUNDED_SYMBOL_FOR_FU 0x1F260 #define T_UTF_32_ROUNDED_SYMBOL_FOR_LU 0x1F261 #define T_UTF_32_ROUNDED_SYMBOL_FOR_SHOU 0x1F262 #define T_UTF_32_ROUNDED_SYMBOL_FOR_XI 0x1F263 #define T_UTF_32_ROUNDED_SYMBOL_FOR_SHUANGXI 0x1F264 #define T_UTF_32_ROUNDED_SYMBOL_FOR_CAI 0x1F265 #define T_UTF_32_CYCLONE 0x1F300 #define T_UTF_32_FOGGY 0x1F301 #define T_UTF_32_CLOSED_UMBRELLA 0x1F302 #define T_UTF_32_NIGHT_WITH_STARS 0x1F303 #define T_UTF_32_SUNRISE_OVER_MOUNTAINS 0x1F304 #define T_UTF_32_SUNRISE 0x1F305 #define T_UTF_32_CITYSCAPE_AT_DUSK 0x1F306 #define T_UTF_32_SUNSET_OVER_BUILDINGS 0x1F307 #define T_UTF_32_RAINBOW 0x1F308 #define T_UTF_32_BRIDGE_AT_NIGHT 0x1F309 #define T_UTF_32_WATER_WAVE 0x1F30A #define T_UTF_32_VOLCANO 0x1F30B #define T_UTF_32_MILKY_WAY 0x1F30C #define T_UTF_32_EARTH_GLOBE_EUROPE_AFRICA 0x1F30D #define T_UTF_32_EARTH_GLOBE_AMERICAS 0x1F30E #define T_UTF_32_EARTH_GLOBE_ASIA_AUSTRALIA 0x1F30F #define T_UTF_32_GLOBE_WITH_MERIDIANS 0x1F310 #define T_UTF_32_NEW_MOON_SYMBOL 0x1F311 #define T_UTF_32_WAXING_CRESCENT_MOON_SYMBOL 0x1F312 #define T_UTF_32_FIRST_QUARTER_MOON_SYMBOL 0x1F313 #define T_UTF_32_WAXING_GIBBOUS_MOON_SYMBOL 0x1F314 #define T_UTF_32_FULL_MOON_SYMBOL 0x1F315 #define T_UTF_32_WANING_GIBBOUS_MOON_SYMBOL 0x1F316 #define T_UTF_32_LAST_QUARTER_MOON_SYMBOL 0x1F317 #define T_UTF_32_WANING_CRESCENT_MOON_SYMBOL 0x1F318 #define T_UTF_32_CRESCENT_MOON 0x1F319 #define T_UTF_32_NEW_MOON_WITH_FACE 0x1F31A #define T_UTF_32_FIRST_QUARTER_MOON_WITH_FACE 0x1F31B #define T_UTF_32_LAST_QUARTER_MOON_WITH_FACE 0x1F31C #define T_UTF_32_FULL_MOON_WITH_FACE 0x1F31D #define T_UTF_32_SUN_WITH_FACE 0x1F31E #define T_UTF_32_GLOWING_STAR 0x1F31F #define T_UTF_32_SHOOTING_STAR 0x1F320 #define T_UTF_32_THERMOMETER 0x1F321 #define T_UTF_32_BLACK_DROPLET 0x1F322 #define T_UTF_32_WHITE_SUN 0x1F323 #define T_UTF_32_WHITE_SUN_WITH_SMALL_CLOUD 0x1F324 #define T_UTF_32_WHITE_SUN_BEHIND_CLOUD 0x1F325 #define T_UTF_32_WHITE_SUN_BEHIND_CLOUD_WITH_RAIN 0x1F326 #define T_UTF_32_CLOUD_WITH_RAIN 0x1F327 #define T_UTF_32_CLOUD_WITH_SNOW 0x1F328 #define T_UTF_32_CLOUD_WITH_LIGHTNING 0x1F329 #define T_UTF_32_CLOUD_WITH_TORNADO 0x1F32A #define T_UTF_32_FOG 0x1F32B #define T_UTF_32_WIND_BLOWING_FACE 0x1F32C #define T_UTF_32_HOT_DOG 0x1F32D #define T_UTF_32_TACO 0x1F32E #define T_UTF_32_BURRITO 0x1F32F #define T_UTF_32_CHESTNUT 0x1F330 #define T_UTF_32_SEEDLING 0x1F331 #define T_UTF_32_EVERGREEN_TREE 0x1F332 #define T_UTF_32_DECIDUOUS_TREE 0x1F333 #define T_UTF_32_PALM_TREE 0x1F334 #define T_UTF_32_CACTUS 0x1F335 #define T_UTF_32_HOT_PEPPER 0x1F336 #define T_UTF_32_TULIP 0x1F337 #define T_UTF_32_CHERRY_BLOSSOM 0x1F338 #define T_UTF_32_ROSE 0x1F339 #define T_UTF_32_HIBISCUS 0x1F33A #define T_UTF_32_SUNFLOWER 0x1F33B #define T_UTF_32_BLOSSOM 0x1F33C #define T_UTF_32_EAR_OF_MAIZE 0x1F33D #define T_UTF_32_EAR_OF_RICE 0x1F33E #define T_UTF_32_HERB 0x1F33F #define T_UTF_32_FOUR_LEAF_CLOVER 0x1F340 #define T_UTF_32_MAPLE_LEAF 0x1F341 #define T_UTF_32_FALLEN_LEAF 0x1F342 #define T_UTF_32_LEAF_FLUTTERING_IN_WIND 0x1F343 #define T_UTF_32_MUSHROOM 0x1F344 #define T_UTF_32_TOMATO 0x1F345 #define T_UTF_32_AUBERGINE 0x1F346 #define T_UTF_32_GRAPES 0x1F347 #define T_UTF_32_MELON 0x1F348 #define T_UTF_32_WATERMELON 0x1F349 #define T_UTF_32_TANGERINE 0x1F34A #define T_UTF_32_LEMON 0x1F34B #define T_UTF_32_BANANA 0x1F34C #define T_UTF_32_PINEAPPLE 0x1F34D #define T_UTF_32_RED_APPLE 0x1F34E #define T_UTF_32_GREEN_APPLE 0x1F34F #define T_UTF_32_PEAR 0x1F350 #define T_UTF_32_PEACH 0x1F351 #define T_UTF_32_CHERRIES 0x1F352 #define T_UTF_32_STRAWBERRY 0x1F353 #define T_UTF_32_HAMBURGER 0x1F354 #define T_UTF_32_SLICE_OF_PIZZA 0x1F355 #define T_UTF_32_MEAT_ON_BONE 0x1F356 #define T_UTF_32_POULTRY_LEG 0x1F357 #define T_UTF_32_RICE_CRACKER 0x1F358 #define T_UTF_32_RICE_BALL 0x1F359 #define T_UTF_32_COOKED_RICE 0x1F35A #define T_UTF_32_CURRY_AND_RICE 0x1F35B #define T_UTF_32_STEAMING_BOWL 0x1F35C #define T_UTF_32_SPAGHETTI 0x1F35D #define T_UTF_32_BREAD 0x1F35E #define T_UTF_32_FRENCH_FRIES 0x1F35F #define T_UTF_32_ROASTED_SWEET_POTATO 0x1F360 #define T_UTF_32_DANGO 0x1F361 #define T_UTF_32_ODEN 0x1F362 #define T_UTF_32_SUSHI 0x1F363 #define T_UTF_32_FRIED_SHRIMP 0x1F364 #define T_UTF_32_FISH_CAKE_WITH_SWIRL_DESIGN 0x1F365 #define T_UTF_32_SOFT_ICE_CREAM 0x1F366 #define T_UTF_32_SHAVED_ICE 0x1F367 #define T_UTF_32_ICE_CREAM 0x1F368 #define T_UTF_32_DOUGHNUT 0x1F369 #define T_UTF_32_COOKIE 0x1F36A #define T_UTF_32_CHOCOLATE_BAR 0x1F36B #define T_UTF_32_CANDY 0x1F36C #define T_UTF_32_LOLLIPOP 0x1F36D #define T_UTF_32_CUSTARD 0x1F36E #define T_UTF_32_HONEY_POT 0x1F36F #define T_UTF_32_SHORTCAKE 0x1F370 #define T_UTF_32_BENTO_BOX 0x1F371 #define T_UTF_32_POT_OF_FOOD 0x1F372 #define T_UTF_32_COOKING 0x1F373 #define T_UTF_32_FORK_AND_KNIFE 0x1F374 #define T_UTF_32_TEACUP_WITHOUT_HANDLE 0x1F375 #define T_UTF_32_SAKE_BOTTLE_AND_CUP 0x1F376 #define T_UTF_32_WINE_GLASS 0x1F377 #define T_UTF_32_COCKTAIL_GLASS 0x1F378 #define T_UTF_32_TROPICAL_DRINK 0x1F379 #define T_UTF_32_BEER_MUG 0x1F37A #define T_UTF_32_CLINKING_BEER_MUGS 0x1F37B #define T_UTF_32_BABY_BOTTLE 0x1F37C #define T_UTF_32_FORK_AND_KNIFE_WITH_PLATE 0x1F37D #define T_UTF_32_BOTTLE_WITH_POPPING_CORK 0x1F37E #define T_UTF_32_POPCORN 0x1F37F #define T_UTF_32_RIBBON 0x1F380 #define T_UTF_32_WRAPPED_PRESENT 0x1F381 #define T_UTF_32_BIRTHDAY_CAKE 0x1F382 #define T_UTF_32_JACK_O_LANTERN 0x1F383 #define T_UTF_32_CHRISTMAS_TREE 0x1F384 #define T_UTF_32_FATHER_CHRISTMAS 0x1F385 #define T_UTF_32_FIREWORKS 0x1F386 #define T_UTF_32_FIREWORK_SPARKLER 0x1F387 #define T_UTF_32_BALLOON 0x1F388 #define T_UTF_32_PARTY_POPPER 0x1F389 #define T_UTF_32_CONFETTI_BALL 0x1F38A #define T_UTF_32_TANABATA_TREE 0x1F38B #define T_UTF_32_CROSSED_FLAGS 0x1F38C #define T_UTF_32_PINE_DECORATION 0x1F38D #define T_UTF_32_JAPANESE_DOLLS 0x1F38E #define T_UTF_32_CARP_STREAMER 0x1F38F #define T_UTF_32_WIND_CHIME 0x1F390 #define T_UTF_32_MOON_VIEWING_CEREMONY 0x1F391 #define T_UTF_32_SCHOOL_SATCHEL 0x1F392 #define T_UTF_32_GRADUATION_CAP 0x1F393 #define T_UTF_32_HEART_WITH_TIP_ON_THE_LEFT 0x1F394 #define T_UTF_32_BOUQUET_OF_FLOWERS 0x1F395 #define T_UTF_32_MILITARY_MEDAL 0x1F396 #define T_UTF_32_REMINDER_RIBBON 0x1F397 #define T_UTF_32_MUSICAL_KEYBOARD_WITH_JACKS 0x1F398 #define T_UTF_32_STUDIO_MICROPHONE 0x1F399 #define T_UTF_32_LEVEL_SLIDER 0x1F39A #define T_UTF_32_CONTROL_KNOBS 0x1F39B #define T_UTF_32_BEAMED_ASCENDING_MUSICAL_NOTES 0x1F39C #define T_UTF_32_BEAMED_DESCENDING_MUSICAL_NOTES 0x1F39D #define T_UTF_32_FILM_FRAMES 0x1F39E #define T_UTF_32_ADMISSION_TICKETS 0x1F39F #define T_UTF_32_CAROUSEL_HORSE 0x1F3A0 #define T_UTF_32_FERRIS_WHEEL 0x1F3A1 #define T_UTF_32_ROLLER_COASTER 0x1F3A2 #define T_UTF_32_FISHING_POLE_AND_FISH 0x1F3A3 #define T_UTF_32_MICROPHONE 0x1F3A4 #define T_UTF_32_MOVIE_CAMERA 0x1F3A5 #define T_UTF_32_CINEMA 0x1F3A6 #define T_UTF_32_HEADPHONE 0x1F3A7 #define T_UTF_32_ARTIST_PALETTE 0x1F3A8 #define T_UTF_32_TOP_HAT 0x1F3A9 #define T_UTF_32_CIRCUS_TENT 0x1F3AA #define T_UTF_32_TICKET 0x1F3AB #define T_UTF_32_CLAPPER_BOARD 0x1F3AC #define T_UTF_32_PERFORMING_ARTS 0x1F3AD #define T_UTF_32_VIDEO_GAME 0x1F3AE #define T_UTF_32_DIRECT_HIT 0x1F3AF #define T_UTF_32_SLOT_MACHINE 0x1F3B0 #define T_UTF_32_BILLIARDS 0x1F3B1 #define T_UTF_32_GAME_DIE 0x1F3B2 #define T_UTF_32_BOWLING 0x1F3B3 #define T_UTF_32_FLOWER_PLAYING_CARDS 0x1F3B4 #define T_UTF_32_MUSICAL_NOTE 0x1F3B5 #define T_UTF_32_MULTIPLE_MUSICAL_NOTES 0x1F3B6 #define T_UTF_32_SAXOPHONE 0x1F3B7 #define T_UTF_32_GUITAR 0x1F3B8 #define T_UTF_32_MUSICAL_KEYBOARD 0x1F3B9 #define T_UTF_32_TRUMPET 0x1F3BA #define T_UTF_32_VIOLIN 0x1F3BB #define T_UTF_32_MUSICAL_SCORE 0x1F3BC #define T_UTF_32_RUNNING_SHIRT_WITH_SASH 0x1F3BD #define T_UTF_32_TENNIS_RACQUET_AND_BALL 0x1F3BE #define T_UTF_32_SKI_AND_SKI_BOOT 0x1F3BF #define T_UTF_32_BASKETBALL_AND_HOOP 0x1F3C0 #define T_UTF_32_CHEQUERED_FLAG 0x1F3C1 #define T_UTF_32_SNOWBOARDER 0x1F3C2 #define T_UTF_32_RUNNER 0x1F3C3 #define T_UTF_32_SURFER 0x1F3C4 #define T_UTF_32_SPORTS_MEDAL 0x1F3C5 #define T_UTF_32_TROPHY 0x1F3C6 #define T_UTF_32_HORSE_RACING 0x1F3C7 #define T_UTF_32_AMERICAN_FOOTBALL 0x1F3C8 #define T_UTF_32_RUGBY_FOOTBALL 0x1F3C9 #define T_UTF_32_SWIMMER 0x1F3CA #define T_UTF_32_WEIGHT_LIFTER 0x1F3CB #define T_UTF_32_GOLFER 0x1F3CC #define T_UTF_32_RACING_MOTORCYCLE 0x1F3CD #define T_UTF_32_RACING_CAR 0x1F3CE #define T_UTF_32_CRICKET_BAT_AND_BALL 0x1F3CF #define T_UTF_32_VOLLEYBALL 0x1F3D0 #define T_UTF_32_FIELD_HOCKEY_STICK_AND_BALL 0x1F3D1 #define T_UTF_32_ICE_HOCKEY_STICK_AND_PUCK 0x1F3D2 #define T_UTF_32_TABLE_TENNIS_PADDLE_AND_BALL 0x1F3D3 #define T_UTF_32_SNOW_CAPPED_MOUNTAIN 0x1F3D4 #define T_UTF_32_CAMPING 0x1F3D5 #define T_UTF_32_BEACH_WITH_UMBRELLA 0x1F3D6 #define T_UTF_32_BUILDING_CONSTRUCTION 0x1F3D7 #define T_UTF_32_HOUSE_BUILDINGS 0x1F3D8 #define T_UTF_32_CITYSCAPE 0x1F3D9 #define T_UTF_32_DERELICT_HOUSE_BUILDING 0x1F3DA #define T_UTF_32_CLASSICAL_BUILDING 0x1F3DB #define T_UTF_32_DESERT 0x1F3DC #define T_UTF_32_DESERT_ISLAND 0x1F3DD #define T_UTF_32_NATIONAL_PARK 0x1F3DE #define T_UTF_32_STADIUM 0x1F3DF #define T_UTF_32_HOUSE_BUILDING 0x1F3E0 #define T_UTF_32_HOUSE_WITH_GARDEN 0x1F3E1 #define T_UTF_32_OFFICE_BUILDING 0x1F3E2 #define T_UTF_32_JAPANESE_POST_OFFICE 0x1F3E3 #define T_UTF_32_EUROPEAN_POST_OFFICE 0x1F3E4 #define T_UTF_32_HOSPITAL 0x1F3E5 #define T_UTF_32_BANK 0x1F3E6 #define T_UTF_32_AUTOMATED_TELLER_MACHINE 0x1F3E7 #define T_UTF_32_HOTEL 0x1F3E8 #define T_UTF_32_LOVE_HOTEL 0x1F3E9 #define T_UTF_32_CONVENIENCE_STORE 0x1F3EA #define T_UTF_32_SCHOOL 0x1F3EB #define T_UTF_32_DEPARTMENT_STORE 0x1F3EC #define T_UTF_32_FACTORY 0x1F3ED #define T_UTF_32_IZAKAYA_LANTERN 0x1F3EE #define T_UTF_32_JAPANESE_CASTLE 0x1F3EF #define T_UTF_32_EUROPEAN_CASTLE 0x1F3F0 #define T_UTF_32_WHITE_PENNANT 0x1F3F1 #define T_UTF_32_BLACK_PENNANT 0x1F3F2 #define T_UTF_32_WAVING_WHITE_FLAG 0x1F3F3 #define T_UTF_32_WAVING_BLACK_FLAG 0x1F3F4 #define T_UTF_32_ROSETTE 0x1F3F5 #define T_UTF_32_BLACK_ROSETTE 0x1F3F6 #define T_UTF_32_LABEL 0x1F3F7 #define T_UTF_32_BADMINTON_RACQUET_AND_SHUTTLECOCK 0x1F3F8 #define T_UTF_32_BOW_AND_ARROW 0x1F3F9 #define T_UTF_32_AMPHORA 0x1F3FA #define T_UTF_32_EMOJI_MODIFIER_FITZPATRICK_TYPE_1_2 0x1F3FB #define T_UTF_32_EMOJI_MODIFIER_FITZPATRICK_TYPE_3 0x1F3FC #define T_UTF_32_EMOJI_MODIFIER_FITZPATRICK_TYPE_4 0x1F3FD #define T_UTF_32_EMOJI_MODIFIER_FITZPATRICK_TYPE_5 0x1F3FE #define T_UTF_32_EMOJI_MODIFIER_FITZPATRICK_TYPE_6 0x1F3FF #define T_UTF_32_RAT 0x1F400 #define T_UTF_32_MOUSE 0x1F401 #define T_UTF_32_OX 0x1F402 #define T_UTF_32_WATER_BUFFALO 0x1F403 #define T_UTF_32_COW 0x1F404 #define T_UTF_32_TIGER 0x1F405 #define T_UTF_32_LEOPARD 0x1F406 #define T_UTF_32_RABBIT 0x1F407 #define T_UTF_32_CAT 0x1F408 #define T_UTF_32_DRAGON 0x1F409 #define T_UTF_32_CROCODILE 0x1F40A #define T_UTF_32_WHALE 0x1F40B #define T_UTF_32_SNAIL 0x1F40C #define T_UTF_32_SNAKE 0x1F40D #define T_UTF_32_HORSE 0x1F40E #define T_UTF_32_RAM 0x1F40F #define T_UTF_32_GOAT 0x1F410 #define T_UTF_32_SHEEP 0x1F411 #define T_UTF_32_MONKEY 0x1F412 #define T_UTF_32_ROOSTER 0x1F413 #define T_UTF_32_CHICKEN 0x1F414 #define T_UTF_32_DOG 0x1F415 #define T_UTF_32_PIG 0x1F416 #define T_UTF_32_BOAR 0x1F417 #define T_UTF_32_ELEPHANT 0x1F418 #define T_UTF_32_OCTOPUS 0x1F419 #define T_UTF_32_SPIRAL_SHELL 0x1F41A #define T_UTF_32_BUG 0x1F41B #define T_UTF_32_ANT 0x1F41C #define T_UTF_32_HONEYBEE 0x1F41D #define T_UTF_32_LADY_BEETLE 0x1F41E #define T_UTF_32_FISH 0x1F41F #define T_UTF_32_TROPICAL_FISH 0x1F420 #define T_UTF_32_BLOWFISH 0x1F421 #define T_UTF_32_TURTLE 0x1F422 #define T_UTF_32_HATCHING_CHICK 0x1F423 #define T_UTF_32_BABY_CHICK 0x1F424 #define T_UTF_32_FRONT_FACING_BABY_CHICK 0x1F425 #define T_UTF_32_BIRD 0x1F426 #define T_UTF_32_PENGUIN 0x1F427 #define T_UTF_32_KOALA 0x1F428 #define T_UTF_32_POODLE 0x1F429 #define T_UTF_32_DROMEDARY_CAMEL 0x1F42A #define T_UTF_32_BACTRIAN_CAMEL 0x1F42B #define T_UTF_32_DOLPHIN 0x1F42C #define T_UTF_32_MOUSE_FACE 0x1F42D #define T_UTF_32_COW_FACE 0x1F42E #define T_UTF_32_TIGER_FACE 0x1F42F #define T_UTF_32_RABBIT_FACE 0x1F430 #define T_UTF_32_CAT_FACE 0x1F431 #define T_UTF_32_DRAGON_FACE 0x1F432 #define T_UTF_32_SPOUTING_WHALE 0x1F433 #define T_UTF_32_HORSE_FACE 0x1F434 #define T_UTF_32_MONKEY_FACE 0x1F435 #define T_UTF_32_DOG_FACE 0x1F436 #define T_UTF_32_PIG_FACE 0x1F437 #define T_UTF_32_FROG_FACE 0x1F438 #define T_UTF_32_HAMSTER_FACE 0x1F439 #define T_UTF_32_WOLF_FACE 0x1F43A #define T_UTF_32_BEAR_FACE 0x1F43B #define T_UTF_32_PANDA_FACE 0x1F43C #define T_UTF_32_PIG_NOSE 0x1F43D #define T_UTF_32_PAW_PRINTS 0x1F43E #define T_UTF_32_CHIPMUNK 0x1F43F #define T_UTF_32_EYES 0x1F440 #define T_UTF_32_EYE 0x1F441 #define T_UTF_32_EAR 0x1F442 #define T_UTF_32_NOSE 0x1F443 #define T_UTF_32_MOUTH 0x1F444 #define T_UTF_32_TONGUE 0x1F445 #define T_UTF_32_WHITE_UP_POINTING_BACKHAND_INDEX 0x1F446 #define T_UTF_32_WHITE_DOWN_POINTING_BACKHAND_INDEX 0x1F447 #define T_UTF_32_WHITE_LEFT_POINTING_BACKHAND_INDEX 0x1F448 #define T_UTF_32_WHITE_RIGHT_POINTING_BACKHAND_INDEX 0x1F449 #define T_UTF_32_FISTED_HAND_SIGN 0x1F44A #define T_UTF_32_WAVING_HAND_SIGN 0x1F44B #define T_UTF_32_OK_HAND_SIGN 0x1F44C #define T_UTF_32_THUMBS_UP_SIGN 0x1F44D #define T_UTF_32_THUMBS_DOWN_SIGN 0x1F44E #define T_UTF_32_CLAPPING_HANDS_SIGN 0x1F44F #define T_UTF_32_OPEN_HANDS_SIGN 0x1F450 #define T_UTF_32_CROWN 0x1F451 #define T_UTF_32_WOMANS_HAT 0x1F452 #define T_UTF_32_EYEGLASSES 0x1F453 #define T_UTF_32_NECKTIE 0x1F454 #define T_UTF_32_T_SHIRT 0x1F455 #define T_UTF_32_JEANS 0x1F456 #define T_UTF_32_DRESS 0x1F457 #define T_UTF_32_KIMONO 0x1F458 #define T_UTF_32_BIKINI 0x1F459 #define T_UTF_32_WOMANS_CLOTHES 0x1F45A #define T_UTF_32_PURSE 0x1F45B #define T_UTF_32_HANDBAG 0x1F45C #define T_UTF_32_POUCH 0x1F45D #define T_UTF_32_MANS_SHOE 0x1F45E #define T_UTF_32_ATHLETIC_SHOE 0x1F45F #define T_UTF_32_HIGH_HEELED_SHOE 0x1F460 #define T_UTF_32_WOMANS_SANDAL 0x1F461 #define T_UTF_32_WOMANS_BOOTS 0x1F462 #define T_UTF_32_FOOTPRINTS 0x1F463 #define T_UTF_32_BUST_IN_SILHOUETTE 0x1F464 #define T_UTF_32_BUSTS_IN_SILHOUETTE 0x1F465 #define T_UTF_32_BOY 0x1F466 #define T_UTF_32_GIRL 0x1F467 #define T_UTF_32_MAN 0x1F468 #define T_UTF_32_WOMAN 0x1F469 #define T_UTF_32_FAMILY 0x1F46A #define T_UTF_32_MAN_AND_WOMAN_HOLDING_HANDS 0x1F46B #define T_UTF_32_TWO_MEN_HOLDING_HANDS 0x1F46C #define T_UTF_32_TWO_WOMEN_HOLDING_HANDS 0x1F46D #define T_UTF_32_POLICE_OFFICER 0x1F46E #define T_UTF_32_WOMAN_WITH_BUNNY_EARS 0x1F46F #define T_UTF_32_BRIDE_WITH_VEIL 0x1F470 #define T_UTF_32_PERSON_WITH_BLOND_HAIR 0x1F471 #define T_UTF_32_MAN_WITH_GUA_PI_MAO 0x1F472 #define T_UTF_32_MAN_WITH_TURBAN 0x1F473 #define T_UTF_32_OLDER_MAN 0x1F474 #define T_UTF_32_OLDER_WOMAN 0x1F475 #define T_UTF_32_BABY 0x1F476 #define T_UTF_32_CONSTRUCTION_WORKER 0x1F477 #define T_UTF_32_PRINCESS 0x1F478 #define T_UTF_32_JAPANESE_OGRE 0x1F479 #define T_UTF_32_JAPANESE_GOBLIN 0x1F47A #define T_UTF_32_GHOST 0x1F47B #define T_UTF_32_BABY_ANGEL 0x1F47C #define T_UTF_32_EXTRATERRESTRIAL_ALIEN 0x1F47D #define T_UTF_32_ALIEN_MONSTER 0x1F47E #define T_UTF_32_IMP 0x1F47F #define T_UTF_32_SKULL 0x1F480 #define T_UTF_32_INFORMATION_DESK_PERSON 0x1F481 #define T_UTF_32_GUARDSMAN 0x1F482 #define T_UTF_32_DANCER 0x1F483 #define T_UTF_32_LIPSTICK 0x1F484 #define T_UTF_32_NAIL_POLISH 0x1F485 #define T_UTF_32_FACE_MASSAGE 0x1F486 #define T_UTF_32_HAIRCUT 0x1F487 #define T_UTF_32_BARBER_POLE 0x1F488 #define T_UTF_32_SYRINGE 0x1F489 #define T_UTF_32_PILL 0x1F48A #define T_UTF_32_KISS_MARK 0x1F48B #define T_UTF_32_LOVE_LETTER 0x1F48C #define T_UTF_32_RING 0x1F48D #define T_UTF_32_GEM_STONE 0x1F48E #define T_UTF_32_KISS 0x1F48F #define T_UTF_32_BOUQUET 0x1F490 #define T_UTF_32_COUPLE_WITH_HEART 0x1F491 #define T_UTF_32_WEDDING 0x1F492 #define T_UTF_32_BEATING_HEART 0x1F493 #define T_UTF_32_BROKEN_HEART 0x1F494 #define T_UTF_32_TWO_HEARTS 0x1F495 #define T_UTF_32_SPARKLING_HEART 0x1F496 #define T_UTF_32_GROWING_HEART 0x1F497 #define T_UTF_32_HEART_WITH_ARROW 0x1F498 #define T_UTF_32_BLUE_HEART 0x1F499 #define T_UTF_32_GREEN_HEART 0x1F49A #define T_UTF_32_YELLOW_HEART 0x1F49B #define T_UTF_32_PURPLE_HEART 0x1F49C #define T_UTF_32_HEART_WITH_RIBBON 0x1F49D #define T_UTF_32_REVOLVING_HEARTS 0x1F49E #define T_UTF_32_HEART_DECORATION 0x1F49F #define T_UTF_32_DIAMOND_SHAPE_WITH_A_DOT_INSIDE 0x1F4A0 #define T_UTF_32_ELECTRIC_LIGHT_BULB 0x1F4A1 #define T_UTF_32_ANGER_SYMBOL 0x1F4A2 #define T_UTF_32_BOMB 0x1F4A3 #define T_UTF_32_SLEEPING_SYMBOL 0x1F4A4 #define T_UTF_32_COLLISION_SYMBOL 0x1F4A5 #define T_UTF_32_SPLASHING_SWEAT_SYMBOL 0x1F4A6 #define T_UTF_32_DROPLET 0x1F4A7 #define T_UTF_32_DASH_SYMBOL 0x1F4A8 #define T_UTF_32_PILE_OF_POO 0x1F4A9 #define T_UTF_32_FLEXED_BICEPS 0x1F4AA #define T_UTF_32_DIZZY_SYMBOL 0x1F4AB #define T_UTF_32_SPEECH_BALLOON 0x1F4AC #define T_UTF_32_THOUGHT_BALLOON 0x1F4AD #define T_UTF_32_WHITE_FLOWER 0x1F4AE #define T_UTF_32_HUNDRED_POINTS_SYMBOL 0x1F4AF #define T_UTF_32_MONEY_BAG 0x1F4B0 #define T_UTF_32_CURRENCY_EXCHANGE 0x1F4B1 #define T_UTF_32_HEAVY_DOLLAR_SIGN 0x1F4B2 #define T_UTF_32_CREDIT_CARD 0x1F4B3 #define T_UTF_32_BANKNOTE_WITH_YEN_SIGN 0x1F4B4 #define T_UTF_32_BANKNOTE_WITH_DOLLAR_SIGN 0x1F4B5 #define T_UTF_32_BANKNOTE_WITH_EURO_SIGN 0x1F4B6 #define T_UTF_32_BANKNOTE_WITH_POUND_SIGN 0x1F4B7 #define T_UTF_32_MONEY_WITH_WINGS 0x1F4B8 #define T_UTF_32_CHART_WITH_UPWARDS_TREND_AND_YEN_SIGN 0x1F4B9 #define T_UTF_32_SEAT 0x1F4BA #define T_UTF_32_PERSONAL_COMPUTER 0x1F4BB #define T_UTF_32_BRIEFCASE 0x1F4BC #define T_UTF_32_MINIDISC 0x1F4BD #define T_UTF_32_FLOPPY_DISK 0x1F4BE #define T_UTF_32_OPTICAL_DISC 0x1F4BF #define T_UTF_32_DVD 0x1F4C0 #define T_UTF_32_FILE_FOLDER 0x1F4C1 #define T_UTF_32_OPEN_FILE_FOLDER 0x1F4C2 #define T_UTF_32_PAGE_WITH_CURL 0x1F4C3 #define T_UTF_32_PAGE_FACING_UP 0x1F4C4 #define T_UTF_32_CALENDAR 0x1F4C5 #define T_UTF_32_TEAR_OFF_CALENDAR 0x1F4C6 #define T_UTF_32_CARD_INDEX 0x1F4C7 #define T_UTF_32_CHART_WITH_UPWARDS_TREND 0x1F4C8 #define T_UTF_32_CHART_WITH_DOWNWARDS_TREND 0x1F4C9 #define T_UTF_32_BAR_CHART 0x1F4CA #define T_UTF_32_CLIPBOARD 0x1F4CB #define T_UTF_32_PUSHPIN 0x1F4CC #define T_UTF_32_ROUND_PUSHPIN 0x1F4CD #define T_UTF_32_PAPERCLIP 0x1F4CE #define T_UTF_32_STRAIGHT_RULER 0x1F4CF #define T_UTF_32_TRIANGULAR_RULER 0x1F4D0 #define T_UTF_32_BOOKMARK_TABS 0x1F4D1 #define T_UTF_32_LEDGER 0x1F4D2 #define T_UTF_32_NOTEBOOK 0x1F4D3 #define T_UTF_32_NOTEBOOK_WITH_DECORATIVE_COVER 0x1F4D4 #define T_UTF_32_CLOSED_BOOK 0x1F4D5 #define T_UTF_32_OPEN_BOOK 0x1F4D6 #define T_UTF_32_GREEN_BOOK 0x1F4D7 #define T_UTF_32_BLUE_BOOK 0x1F4D8 #define T_UTF_32_ORANGE_BOOK 0x1F4D9 #define T_UTF_32_BOOKS 0x1F4DA #define T_UTF_32_NAME_BADGE 0x1F4DB #define T_UTF_32_SCROLL 0x1F4DC #define T_UTF_32_MEMO 0x1F4DD #define T_UTF_32_TELEPHONE_RECEIVER 0x1F4DE #define T_UTF_32_PAGER 0x1F4DF #define T_UTF_32_FAX_MACHINE 0x1F4E0 #define T_UTF_32_SATELLITE_ANTENNA 0x1F4E1 #define T_UTF_32_PUBLIC_ADDRESS_LOUDSPEAKER 0x1F4E2 #define T_UTF_32_CHEERING_MEGAPHONE 0x1F4E3 #define T_UTF_32_OUTBOX_TRAY 0x1F4E4 #define T_UTF_32_INBOX_TRAY 0x1F4E5 #define T_UTF_32_PACKAGE 0x1F4E6 #define T_UTF_32_E_MAIL_SYMBOL 0x1F4E7 #define T_UTF_32_INCOMING_ENVELOPE 0x1F4E8 #define T_UTF_32_ENVELOPE_WITH_DOWNWARDS_ARROW_ABOVE 0x1F4E9 #define T_UTF_32_CLOSED_MAILBOX_WITH_LOWERED_FLAG 0x1F4EA #define T_UTF_32_CLOSED_MAILBOX_WITH_RAISED_FLAG 0x1F4EB #define T_UTF_32_OPEN_MAILBOX_WITH_RAISED_FLAG 0x1F4EC #define T_UTF_32_OPEN_MAILBOX_WITH_LOWERED_FLAG 0x1F4ED #define T_UTF_32_POSTBOX 0x1F4EE #define T_UTF_32_POSTAL_HORN 0x1F4EF #define T_UTF_32_NEWSPAPER 0x1F4F0 #define T_UTF_32_MOBILE_PHONE 0x1F4F1 #define T_UTF_32_MOBILE_PHONE_WITH_RIGHTWARDS_ARROW_AT_LEFT 0x1F4F2 #define T_UTF_32_VIBRATION_MODE 0x1F4F3 #define T_UTF_32_MOBILE_PHONE_OFF 0x1F4F4 #define T_UTF_32_NO_MOBILE_PHONES 0x1F4F5 #define T_UTF_32_ANTENNA_WITH_BARS 0x1F4F6 #define T_UTF_32_CAMERA 0x1F4F7 #define T_UTF_32_CAMERA_WITH_FLASH 0x1F4F8 #define T_UTF_32_VIDEO_CAMERA 0x1F4F9 #define T_UTF_32_TELEVISION 0x1F4FA #define T_UTF_32_RADIO 0x1F4FB #define T_UTF_32_VIDEOCASSETTE 0x1F4FC #define T_UTF_32_FILM_PROJECTOR 0x1F4FD #define T_UTF_32_PORTABLE_STEREO 0x1F4FE #define T_UTF_32_PRAYER_BEADS 0x1F4FF #define T_UTF_32_TWISTED_RIGHTWARDS_ARROWS 0x1F500 #define T_UTF_32_CLOCKWISE_RIGHTWARDS_AND_LEFTWARDS_OPEN_CIRCLE_ARROWS 0x1F501 #define T_UTF_32_CLOCKWISE_RIGHTWARDS_AND_LEFTWARDS_OPEN_CIRCLE_ARROWS_WITH_CIRCLED_ONE_OVERLAY \ 0x1F502 #define T_UTF_32_CLOCKWISE_DOWNWARDS_AND_UPWARDS_OPEN_CIRCLE_ARROWS 0x1F503 #define T_UTF_32_ANTICLOCKWISE_DOWNWARDS_AND_UPWARDS_OPEN_CIRCLE_ARROWS 0x1F504 #define T_UTF_32_LOW_BRIGHTNESS_SYMBOL 0x1F505 #define T_UTF_32_HIGH_BRIGHTNESS_SYMBOL 0x1F506 #define T_UTF_32_SPEAKER_WITH_CANCELLATION_STROKE 0x1F507 #define T_UTF_32_SPEAKER 0x1F508 #define T_UTF_32_SPEAKER_WITH_ONE_SOUND_WAVE 0x1F509 #define T_UTF_32_SPEAKER_WITH_THREE_SOUND_WAVES 0x1F50A #define T_UTF_32_BATTERY 0x1F50B #define T_UTF_32_ELECTRIC_PLUG 0x1F50C #define T_UTF_32_LEFT_POINTING_MAGNIFYING_GLASS 0x1F50D #define T_UTF_32_RIGHT_POINTING_MAGNIFYING_GLASS 0x1F50E #define T_UTF_32_LOCK_WITH_INK_PEN 0x1F50F #define T_UTF_32_CLOSED_LOCK_WITH_KEY 0x1F510 #define T_UTF_32_KEY 0x1F511 #define T_UTF_32_LOCK 0x1F512 #define T_UTF_32_OPEN_LOCK 0x1F513 #define T_UTF_32_BELL 0x1F514 #define T_UTF_32_BELL_WITH_CANCELLATION_STROKE 0x1F515 #define T_UTF_32_BOOKMARK 0x1F516 #define T_UTF_32_LINK_SYMBOL 0x1F517 #define T_UTF_32_RADIO_BUTTON 0x1F518 #define T_UTF_32_BACK_WITH_LEFTWARDS_ARROW_ABOVE 0x1F519 #define T_UTF_32_END_WITH_LEFTWARDS_ARROW_ABOVE 0x1F51A #define T_UTF_32_ON_WITH_EXCLAMATION_MARK_WITH_LEFT_RIGHT_ARROW_ABOVE 0x1F51B #define T_UTF_32_SOON_WITH_RIGHTWARDS_ARROW_ABOVE 0x1F51C #define T_UTF_32_TOP_WITH_UPWARDS_ARROW_ABOVE 0x1F51D #define T_UTF_32_NO_ONE_UNDER_EIGHTEEN_SYMBOL 0x1F51E #define T_UTF_32_KEYCAP_TEN 0x1F51F #define T_UTF_32_INPUT_SYMBOL_FOR_LATIN_CAPITAL_LETTERS 0x1F520 #define T_UTF_32_INPUT_SYMBOL_FOR_LATIN_SMALL_LETTERS 0x1F521 #define T_UTF_32_INPUT_SYMBOL_FOR_NUMBERS 0x1F522 #define T_UTF_32_INPUT_SYMBOL_FOR_SYMBOLS 0x1F523 #define T_UTF_32_INPUT_SYMBOL_FOR_LATIN_LETTERS 0x1F524 #define T_UTF_32_FIRE 0x1F525 #define T_UTF_32_ELECTRIC_TORCH 0x1F526 #define T_UTF_32_WRENCH 0x1F527 #define T_UTF_32_HAMMER 0x1F528 #define T_UTF_32_NUT_AND_BOLT 0x1F529 #define T_UTF_32_HOCHO 0x1F52A #define T_UTF_32_PISTOL 0x1F52B #define T_UTF_32_MICROSCOPE 0x1F52C #define T_UTF_32_TELESCOPE 0x1F52D #define T_UTF_32_CRYSTAL_BALL 0x1F52E #define T_UTF_32_SIX_POINTED_STAR_WITH_MIDDLE_DOT 0x1F52F #define T_UTF_32_JAPANESE_SYMBOL_FOR_BEGINNER 0x1F530 #define T_UTF_32_TRIDENT_EMBLEM 0x1F531 #define T_UTF_32_BLACK_SQUARE_BUTTON 0x1F532 #define T_UTF_32_WHITE_SQUARE_BUTTON 0x1F533 #define T_UTF_32_LARGE_RED_CIRCLE 0x1F534 #define T_UTF_32_LARGE_BLUE_CIRCLE 0x1F535 #define T_UTF_32_LARGE_ORANGE_DIAMOND 0x1F536 #define T_UTF_32_LARGE_BLUE_DIAMOND 0x1F537 #define T_UTF_32_SMALL_ORANGE_DIAMOND 0x1F538 #define T_UTF_32_SMALL_BLUE_DIAMOND 0x1F539 #define T_UTF_32_UP_POINTING_RED_TRIANGLE 0x1F53A #define T_UTF_32_DOWN_POINTING_RED_TRIANGLE 0x1F53B #define T_UTF_32_UP_POINTING_SMALL_RED_TRIANGLE 0x1F53C #define T_UTF_32_DOWN_POINTING_SMALL_RED_TRIANGLE 0x1F53D #define T_UTF_32_LOWER_RIGHT_SHADOWED_WHITE_CIRCLE 0x1F53E #define T_UTF_32_UPPER_RIGHT_SHADOWED_WHITE_CIRCLE 0x1F53F #define T_UTF_32_CIRCLED_CROSS_POMMEE 0x1F540 #define T_UTF_32_CROSS_POMMEE_WITH_HALF_CIRCLE_BELOW 0x1F541 #define T_UTF_32_CROSS_POMMEE 0x1F542 #define T_UTF_32_NOTCHED_LEFT_SEMICIRCLE_WITH_THREE_DOTS 0x1F543 #define T_UTF_32_NOTCHED_RIGHT_SEMICIRCLE_WITH_THREE_DOTS 0x1F544 #define T_UTF_32_SYMBOL_FOR_MARKS_CHAPTER 0x1F545 #define T_UTF_32_WHITE_LATIN_CROSS 0x1F546 #define T_UTF_32_HEAVY_LATIN_CROSS 0x1F547 #define T_UTF_32_CELTIC_CROSS 0x1F548 #define T_UTF_32_OM_SYMBOL 0x1F549 #define T_UTF_32_DOVE_OF_PEACE 0x1F54A #define T_UTF_32_KAABA 0x1F54B #define T_UTF_32_MOSQUE 0x1F54C #define T_UTF_32_SYNAGOGUE 0x1F54D #define T_UTF_32_MENORAH_WITH_NINE_BRANCHES 0x1F54E #define T_UTF_32_BOWL_OF_HYGIEIA 0x1F54F #define T_UTF_32_CLOCK_FACE_ONE_OCLOCK 0x1F550 #define T_UTF_32_CLOCK_FACE_TWO_OCLOCK 0x1F551 #define T_UTF_32_CLOCK_FACE_THREE_OCLOCK 0x1F552 #define T_UTF_32_CLOCK_FACE_FOUR_OCLOCK 0x1F553 #define T_UTF_32_CLOCK_FACE_FIVE_OCLOCK 0x1F554 #define T_UTF_32_CLOCK_FACE_SIX_OCLOCK 0x1F555 #define T_UTF_32_CLOCK_FACE_SEVEN_OCLOCK 0x1F556 #define T_UTF_32_CLOCK_FACE_EIGHT_OCLOCK 0x1F557 #define T_UTF_32_CLOCK_FACE_NINE_OCLOCK 0x1F558 #define T_UTF_32_CLOCK_FACE_TEN_OCLOCK 0x1F559 #define T_UTF_32_CLOCK_FACE_ELEVEN_OCLOCK 0x1F55A #define T_UTF_32_CLOCK_FACE_TWELVE_OCLOCK 0x1F55B #define T_UTF_32_CLOCK_FACE_ONE_THIRTY 0x1F55C #define T_UTF_32_CLOCK_FACE_TWO_THIRTY 0x1F55D #define T_UTF_32_CLOCK_FACE_THREE_THIRTY 0x1F55E #define T_UTF_32_CLOCK_FACE_FOUR_THIRTY 0x1F55F #define T_UTF_32_CLOCK_FACE_FIVE_THIRTY 0x1F560 #define T_UTF_32_CLOCK_FACE_SIX_THIRTY 0x1F561 #define T_UTF_32_CLOCK_FACE_SEVEN_THIRTY 0x1F562 #define T_UTF_32_CLOCK_FACE_EIGHT_THIRTY 0x1F563 #define T_UTF_32_CLOCK_FACE_NINE_THIRTY 0x1F564 #define T_UTF_32_CLOCK_FACE_TEN_THIRTY 0x1F565 #define T_UTF_32_CLOCK_FACE_ELEVEN_THIRTY 0x1F566 #define T_UTF_32_CLOCK_FACE_TWELVE_THIRTY 0x1F567 #define T_UTF_32_RIGHT_SPEAKER 0x1F568 #define T_UTF_32_RIGHT_SPEAKER_WITH_ONE_SOUND_WAVE 0x1F569 #define T_UTF_32_RIGHT_SPEAKER_WITH_THREE_SOUND_WAVES 0x1F56A #define T_UTF_32_BULLHORN 0x1F56B #define T_UTF_32_BULLHORN_WITH_SOUND_WAVES 0x1F56C #define T_UTF_32_RINGING_BELL 0x1F56D #define T_UTF_32_BOOK 0x1F56E #define T_UTF_32_CANDLE 0x1F56F #define T_UTF_32_MANTELPIECE_CLOCK 0x1F570 #define T_UTF_32_BLACK_SKULL_AND_CROSSBONES 0x1F571 #define T_UTF_32_NO_PIRACY 0x1F572 #define T_UTF_32_HOLE 0x1F573 #define T_UTF_32_MAN_IN_BUSINESS_SUIT_LEVITATING 0x1F574 #define T_UTF_32_SLEUTH_OR_SPY 0x1F575 #define T_UTF_32_DARK_SUNGLASSES 0x1F576 #define T_UTF_32_SPIDER 0x1F577 #define T_UTF_32_SPIDER_WEB 0x1F578 #define T_UTF_32_JOYSTICK 0x1F579 #define T_UTF_32_MAN_DANCING 0x1F57A #define T_UTF_32_LEFT_HAND_TELEPHONE_RECEIVER 0x1F57B #define T_UTF_32_TELEPHONE_RECEIVER_WITH_PAGE 0x1F57C #define T_UTF_32_RIGHT_HAND_TELEPHONE_RECEIVER 0x1F57D #define T_UTF_32_WHITE_TOUCHTONE_TELEPHONE 0x1F57E #define T_UTF_32_BLACK_TOUCHTONE_TELEPHONE 0x1F57F #define T_UTF_32_TELEPHONE_ON_TOP_OF_MODEM 0x1F580 #define T_UTF_32_CLAMSHELL_MOBILE_PHONE 0x1F581 #define T_UTF_32_BACK_OF_ENVELOPE 0x1F582 #define T_UTF_32_STAMPED_ENVELOPE 0x1F583 #define T_UTF_32_ENVELOPE_WITH_LIGHTNING 0x1F584 #define T_UTF_32_FLYING_ENVELOPE 0x1F585 #define T_UTF_32_PEN_OVER_STAMPED_ENVELOPE 0x1F586 #define T_UTF_32_LINKED_PAPERCLIPS 0x1F587 #define T_UTF_32_BLACK_PUSHPIN 0x1F588 #define T_UTF_32_LOWER_LEFT_PENCIL 0x1F589 #define T_UTF_32_LOWER_LEFT_BALLPOINT_PEN 0x1F58A #define T_UTF_32_LOWER_LEFT_FOUNTAIN_PEN 0x1F58B #define T_UTF_32_LOWER_LEFT_PAINTBRUSH 0x1F58C #define T_UTF_32_LOWER_LEFT_CRAYON 0x1F58D #define T_UTF_32_LEFT_WRITING_HAND 0x1F58E #define T_UTF_32_TURNED_OK_HAND_SIGN 0x1F58F #define T_UTF_32_RAISED_HAND_WITH_FINGERS_SPLAYED 0x1F590 #define T_UTF_32_REVERSED_RAISED_HAND_WITH_FINGERS_SPLAYED 0x1F591 #define T_UTF_32_REVERSED_THUMBS_UP_SIGN 0x1F592 #define T_UTF_32_REVERSED_THUMBS_DOWN_SIGN 0x1F593 #define T_UTF_32_REVERSED_VICTORY_HAND 0x1F594 #define T_UTF_32_REVERSED_HAND_WITH_MIDDLE_FINGER_EXTENDED 0x1F595 #define T_UTF_32_RAISED_HAND_WITH_PART_BETWEEN_MIDDLE_AND_RING_FINGERS 0x1F596 #define T_UTF_32_WHITE_DOWN_POINTING_LEFT_HAND_INDEX 0x1F597 #define T_UTF_32_SIDEWAYS_WHITE_LEFT_POINTING_INDEX 0x1F598 #define T_UTF_32_SIDEWAYS_WHITE_RIGHT_POINTING_INDEX 0x1F599 #define T_UTF_32_SIDEWAYS_BLACK_LEFT_POINTING_INDEX 0x1F59A #define T_UTF_32_SIDEWAYS_BLACK_RIGHT_POINTING_INDEX 0x1F59B #define T_UTF_32_BLACK_LEFT_POINTING_BACKHAND_INDEX 0x1F59C #define T_UTF_32_BLACK_RIGHT_POINTING_BACKHAND_INDEX 0x1F59D #define T_UTF_32_SIDEWAYS_WHITE_UP_POINTING_INDEX 0x1F59E #define T_UTF_32_SIDEWAYS_WHITE_DOWN_POINTING_INDEX 0x1F59F #define T_UTF_32_SIDEWAYS_BLACK_UP_POINTING_INDEX 0x1F5A0 #define T_UTF_32_SIDEWAYS_BLACK_DOWN_POINTING_INDEX 0x1F5A1 #define T_UTF_32_BLACK_UP_POINTING_BACKHAND_INDEX 0x1F5A2 #define T_UTF_32_BLACK_DOWN_POINTING_BACKHAND_INDEX 0x1F5A3 #define T_UTF_32_BLACK_HEART 0x1F5A4 #define T_UTF_32_DESKTOP_COMPUTER 0x1F5A5 #define T_UTF_32_KEYBOARD_AND_MOUSE 0x1F5A6 #define T_UTF_32_THREE_NETWORKED_COMPUTERS 0x1F5A7 #define T_UTF_32_PRINTER 0x1F5A8 #define T_UTF_32_POCKET_CALCULATOR 0x1F5A9 #define T_UTF_32_BLACK_HARD_SHELL_FLOPPY_DISK 0x1F5AA #define T_UTF_32_WHITE_HARD_SHELL_FLOPPY_DISK 0x1F5AB #define T_UTF_32_SOFT_SHELL_FLOPPY_DISK 0x1F5AC #define T_UTF_32_TAPE_CARTRIDGE 0x1F5AD #define T_UTF_32_WIRED_KEYBOARD 0x1F5AE #define T_UTF_32_ONE_BUTTON_MOUSE 0x1F5AF #define T_UTF_32_TWO_BUTTON_MOUSE 0x1F5B0 #define T_UTF_32_THREE_BUTTON_MOUSE 0x1F5B1 #define T_UTF_32_TRACKBALL 0x1F5B2 #define T_UTF_32_OLD_PERSONAL_COMPUTER 0x1F5B3 #define T_UTF_32_HARD_DISK 0x1F5B4 #define T_UTF_32_SCREEN 0x1F5B5 #define T_UTF_32_PRINTER_ICON 0x1F5B6 #define T_UTF_32_FAX_ICON 0x1F5B7 #define T_UTF_32_OPTICAL_DISC_ICON 0x1F5B8 #define T_UTF_32_DOCUMENT_WITH_TEXT 0x1F5B9 #define T_UTF_32_DOCUMENT_WITH_TEXT_AND_PICTURE 0x1F5BA #define T_UTF_32_DOCUMENT_WITH_PICTURE 0x1F5BB #define T_UTF_32_FRAME_WITH_PICTURE 0x1F5BC #define T_UTF_32_FRAME_WITH_TILES 0x1F5BD #define T_UTF_32_FRAME_WITH_AN_X 0x1F5BE #define T_UTF_32_BLACK_FOLDER 0x1F5BF #define T_UTF_32_FOLDER 0x1F5C0 #define T_UTF_32_OPEN_FOLDER 0x1F5C1 #define T_UTF_32_CARD_INDEX_DIVIDERS 0x1F5C2 #define T_UTF_32_CARD_FILE_BOX 0x1F5C3 #define T_UTF_32_FILE_CABINET 0x1F5C4 #define T_UTF_32_EMPTY_NOTE 0x1F5C5 #define T_UTF_32_EMPTY_NOTE_PAGE 0x1F5C6 #define T_UTF_32_EMPTY_NOTE_PAD 0x1F5C7 #define T_UTF_32_NOTE 0x1F5C8 #define T_UTF_32_NOTE_PAGE 0x1F5C9 #define T_UTF_32_NOTE_PAD 0x1F5CA #define T_UTF_32_EMPTY_DOCUMENT 0x1F5CB #define T_UTF_32_EMPTY_PAGE 0x1F5CC #define T_UTF_32_EMPTY_PAGES 0x1F5CD #define T_UTF_32_DOCUMENT 0x1F5CE #define T_UTF_32_PAGE 0x1F5CF #define T_UTF_32_PAGES 0x1F5D0 #define T_UTF_32_WASTEBASKET 0x1F5D1 #define T_UTF_32_SPIRAL_NOTE_PAD 0x1F5D2 #define T_UTF_32_SPIRAL_CALENDAR_PAD 0x1F5D3 #define T_UTF_32_DESKTOP_WINDOW 0x1F5D4 #define T_UTF_32_MINIMIZE 0x1F5D5 #define T_UTF_32_MAXIMIZE 0x1F5D6 #define T_UTF_32_OVERLAP 0x1F5D7 #define T_UTF_32_CLOCKWISE_RIGHT_AND_LEFT_SEMICIRCLE_ARROWS 0x1F5D8 #define T_UTF_32_CANCELLATION_X 0x1F5D9 #define T_UTF_32_INCREASE_FONT_SIZE_SYMBOL 0x1F5DA #define T_UTF_32_DECREASE_FONT_SIZE_SYMBOL 0x1F5DB #define T_UTF_32_COMPRESSION 0x1F5DC #define T_UTF_32_OLD_KEY 0x1F5DD #define T_UTF_32_ROLLED_UP_NEWSPAPER 0x1F5DE #define T_UTF_32_PAGE_WITH_CIRCLED_TEXT 0x1F5DF #define T_UTF_32_STOCK_CHART 0x1F5E0 #define T_UTF_32_DAGGER_KNIFE 0x1F5E1 #define T_UTF_32_LIPS 0x1F5E2 #define T_UTF_32_SPEAKING_HEAD_IN_SILHOUETTE 0x1F5E3 #define T_UTF_32_THREE_RAYS_ABOVE 0x1F5E4 #define T_UTF_32_THREE_RAYS_BELOW 0x1F5E5 #define T_UTF_32_THREE_RAYS_LEFT 0x1F5E6 #define T_UTF_32_THREE_RAYS_RIGHT 0x1F5E7 #define T_UTF_32_LEFT_SPEECH_BUBBLE 0x1F5E8 #define T_UTF_32_RIGHT_SPEECH_BUBBLE 0x1F5E9 #define T_UTF_32_TWO_SPEECH_BUBBLES 0x1F5EA #define T_UTF_32_THREE_SPEECH_BUBBLES 0x1F5EB #define T_UTF_32_LEFT_THOUGHT_BUBBLE 0x1F5EC #define T_UTF_32_RIGHT_THOUGHT_BUBBLE 0x1F5ED #define T_UTF_32_LEFT_ANGER_BUBBLE 0x1F5EE #define T_UTF_32_RIGHT_ANGER_BUBBLE 0x1F5EF #define T_UTF_32_MOOD_BUBBLE 0x1F5F0 #define T_UTF_32_LIGHTNING_MOOD_BUBBLE 0x1F5F1 #define T_UTF_32_LIGHTNING_MOOD 0x1F5F2 #define T_UTF_32_BALLOT_BOX_WITH_BALLOT 0x1F5F3 #define T_UTF_32_BALLOT_SCRIPT_X 0x1F5F4 #define T_UTF_32_BALLOT_BOX_WITH_SCRIPT_X 0x1F5F5 #define T_UTF_32_BALLOT_BOLD_SCRIPT_X 0x1F5F6 #define T_UTF_32_BALLOT_BOX_WITH_BOLD_SCRIPT_X 0x1F5F7 #define T_UTF_32_LIGHT_CHECK_MARK 0x1F5F8 #define T_UTF_32_BALLOT_BOX_WITH_BOLD_CHECK 0x1F5F9 #define T_UTF_32_WORLD_MAP 0x1F5FA #define T_UTF_32_MOUNT_FUJI 0x1F5FB #define T_UTF_32_TOKYO_TOWER 0x1F5FC #define T_UTF_32_STATUE_OF_LIBERTY 0x1F5FD #define T_UTF_32_SILHOUETTE_OF_JAPAN 0x1F5FE #define T_UTF_32_MOYAI 0x1F5FF #define T_UTF_32_GRINNING_FACE 0x1F600 #define T_UTF_32_GRINNING_FACE_WITH_SMILING_EYES 0x1F601 #define T_UTF_32_FACE_WITH_TEARS_OF_JOY 0x1F602 #define T_UTF_32_SMILING_FACE_WITH_OPEN_MOUTH 0x1F603 #define T_UTF_32_SMILING_FACE_WITH_OPEN_MOUTH_AND_SMILING_EYES 0x1F604 #define T_UTF_32_SMILING_FACE_WITH_OPEN_MOUTH_AND_COLD_SWEAT 0x1F605 #define T_UTF_32_SMILING_FACE_WITH_OPEN_MOUTH_AND_TIGHTLY_CLOSED_EYES 0x1F606 #define T_UTF_32_SMILING_FACE_WITH_HALO 0x1F607 #define T_UTF_32_SMILING_FACE_WITH_HORNS 0x1F608 #define T_UTF_32_WINKING_FACE 0x1F609 #define T_UTF_32_SMILING_FACE_WITH_SMILING_EYES 0x1F60A #define T_UTF_32_FACE_SAVOURING_DELICIOUS_FOOD 0x1F60B #define T_UTF_32_RELIEVED_FACE 0x1F60C #define T_UTF_32_SMILING_FACE_WITH_HEART_SHAPED_EYES 0x1F60D #define T_UTF_32_SMILING_FACE_WITH_SUNGLASSES 0x1F60E #define T_UTF_32_SMIRKING_FACE 0x1F60F #define T_UTF_32_NEUTRAL_FACE 0x1F610 #define T_UTF_32_EXPRESSIONLESS_FACE 0x1F611 #define T_UTF_32_UNAMUSED_FACE 0x1F612 #define T_UTF_32_FACE_WITH_COLD_SWEAT 0x1F613 #define T_UTF_32_PENSIVE_FACE 0x1F614 #define T_UTF_32_CONFUSED_FACE 0x1F615 #define T_UTF_32_CONFOUNDED_FACE 0x1F616 #define T_UTF_32_KISSING_FACE 0x1F617 #define T_UTF_32_FACE_THROWING_A_KISS 0x1F618 #define T_UTF_32_KISSING_FACE_WITH_SMILING_EYES 0x1F619 #define T_UTF_32_KISSING_FACE_WITH_CLOSED_EYES 0x1F61A #define T_UTF_32_FACE_WITH_STUCK_OUT_TONGUE 0x1F61B #define T_UTF_32_FACE_WITH_STUCK_OUT_TONGUE_AND_WINKING_EYE 0x1F61C #define T_UTF_32_FACE_WITH_STUCK_OUT_TONGUE_AND_TIGHTLY_CLOSED_EYES 0x1F61D #define T_UTF_32_DISAPPOINTED_FACE 0x1F61E #define T_UTF_32_WORRIED_FACE 0x1F61F #define T_UTF_32_ANGRY_FACE 0x1F620 #define T_UTF_32_POUTING_FACE 0x1F621 #define T_UTF_32_CRYING_FACE 0x1F622 #define T_UTF_32_PERSEVERING_FACE 0x1F623 #define T_UTF_32_FACE_WITH_LOOK_OF_TRIUMPH 0x1F624 #define T_UTF_32_DISAPPOINTED_BUT_RELIEVED_FACE 0x1F625 #define T_UTF_32_FROWNING_FACE_WITH_OPEN_MOUTH 0x1F626 #define T_UTF_32_ANGUISHED_FACE 0x1F627 #define T_UTF_32_FEARFUL_FACE 0x1F628 #define T_UTF_32_WEARY_FACE 0x1F629 #define T_UTF_32_SLEEPY_FACE 0x1F62A #define T_UTF_32_TIRED_FACE 0x1F62B #define T_UTF_32_GRIMACING_FACE 0x1F62C #define T_UTF_32_LOUDLY_CRYING_FACE 0x1F62D #define T_UTF_32_FACE_WITH_OPEN_MOUTH 0x1F62E #define T_UTF_32_HUSHED_FACE 0x1F62F #define T_UTF_32_FACE_WITH_OPEN_MOUTH_AND_COLD_SWEAT 0x1F630 #define T_UTF_32_FACE_SCREAMING_IN_FEAR 0x1F631 #define T_UTF_32_ASTONISHED_FACE 0x1F632 #define T_UTF_32_FLUSHED_FACE 0x1F633 #define T_UTF_32_SLEEPING_FACE 0x1F634 #define T_UTF_32_DIZZY_FACE 0x1F635 #define T_UTF_32_FACE_WITHOUT_MOUTH 0x1F636 #define T_UTF_32_FACE_WITH_MEDICAL_MASK 0x1F637 #define T_UTF_32_GRINNING_CAT_FACE_WITH_SMILING_EYES 0x1F638 #define T_UTF_32_CAT_FACE_WITH_TEARS_OF_JOY 0x1F639 #define T_UTF_32_SMILING_CAT_FACE_WITH_OPEN_MOUTH 0x1F63A #define T_UTF_32_SMILING_CAT_FACE_WITH_HEART_SHAPED_EYES 0x1F63B #define T_UTF_32_CAT_FACE_WITH_WRY_SMILE 0x1F63C #define T_UTF_32_KISSING_CAT_FACE_WITH_CLOSED_EYES 0x1F63D #define T_UTF_32_POUTING_CAT_FACE 0x1F63E #define T_UTF_32_CRYING_CAT_FACE 0x1F63F #define T_UTF_32_WEARY_CAT_FACE 0x1F640 #define T_UTF_32_SLIGHTLY_FROWNING_FACE 0x1F641 #define T_UTF_32_SLIGHTLY_SMILING_FACE 0x1F642 #define T_UTF_32_UPSIDE_DOWN_FACE 0x1F643 #define T_UTF_32_FACE_WITH_ROLLING_EYES 0x1F644 #define T_UTF_32_FACE_WITH_NO_GOOD_GESTURE 0x1F645 #define T_UTF_32_FACE_WITH_OK_GESTURE 0x1F646 #define T_UTF_32_PERSON_BOWING_DEEPLY 0x1F647 #define T_UTF_32_SEE_NO_EVIL_MONKEY 0x1F648 #define T_UTF_32_HEAR_NO_EVIL_MONKEY 0x1F649 #define T_UTF_32_SPEAK_NO_EVIL_MONKEY 0x1F64A #define T_UTF_32_HAPPY_PERSON_RAISING_ONE_HAND 0x1F64B #define T_UTF_32_PERSON_RAISING_BOTH_HANDS_IN_CELEBRATION 0x1F64C #define T_UTF_32_PERSON_FROWNING 0x1F64D #define T_UTF_32_PERSON_WITH_POUTING_FACE 0x1F64E #define T_UTF_32_PERSON_WITH_FOLDED_HANDS 0x1F64F #define T_UTF_32_NORTH_WEST_POINTING_LEAF 0x1F650 #define T_UTF_32_SOUTH_WEST_POINTING_LEAF 0x1F651 #define T_UTF_32_NORTH_EAST_POINTING_LEAF 0x1F652 #define T_UTF_32_SOUTH_EAST_POINTING_LEAF 0x1F653 #define T_UTF_32_TURNED_NORTH_WEST_POINTING_LEAF 0x1F654 #define T_UTF_32_TURNED_SOUTH_WEST_POINTING_LEAF 0x1F655 #define T_UTF_32_TURNED_NORTH_EAST_POINTING_LEAF 0x1F656 #define T_UTF_32_TURNED_SOUTH_EAST_POINTING_LEAF 0x1F657 #define T_UTF_32_NORTH_WEST_POINTING_VINE_LEAF 0x1F658 #define T_UTF_32_SOUTH_WEST_POINTING_VINE_LEAF 0x1F659 #define T_UTF_32_NORTH_EAST_POINTING_VINE_LEAF 0x1F65A #define T_UTF_32_SOUTH_EAST_POINTING_VINE_LEAF 0x1F65B #define T_UTF_32_HEAVY_NORTH_WEST_POINTING_VINE_LEAF 0x1F65C #define T_UTF_32_HEAVY_SOUTH_WEST_POINTING_VINE_LEAF 0x1F65D #define T_UTF_32_HEAVY_NORTH_EAST_POINTING_VINE_LEAF 0x1F65E #define T_UTF_32_HEAVY_SOUTH_EAST_POINTING_VINE_LEAF 0x1F65F #define T_UTF_32_NORTH_WEST_POINTING_BUD 0x1F660 #define T_UTF_32_SOUTH_WEST_POINTING_BUD 0x1F661 #define T_UTF_32_NORTH_EAST_POINTING_BUD 0x1F662 #define T_UTF_32_SOUTH_EAST_POINTING_BUD 0x1F663 #define T_UTF_32_HEAVY_NORTH_WEST_POINTING_BUD 0x1F664 #define T_UTF_32_HEAVY_SOUTH_WEST_POINTING_BUD 0x1F665 #define T_UTF_32_HEAVY_NORTH_EAST_POINTING_BUD 0x1F666 #define T_UTF_32_HEAVY_SOUTH_EAST_POINTING_BUD 0x1F667 #define T_UTF_32_HOLLOW_QUILT_SQUARE_ORNAMENT 0x1F668 #define T_UTF_32_HOLLOW_QUILT_SQUARE_ORNAMENT_IN_BLACK_SQUARE 0x1F669 #define T_UTF_32_SOLID_QUILT_SQUARE_ORNAMENT 0x1F66A #define T_UTF_32_SOLID_QUILT_SQUARE_ORNAMENT_IN_BLACK_SQUARE 0x1F66B #define T_UTF_32_LEFTWARDS_ROCKET 0x1F66C #define T_UTF_32_UPWARDS_ROCKET 0x1F66D #define T_UTF_32_RIGHTWARDS_ROCKET 0x1F66E #define T_UTF_32_DOWNWARDS_ROCKET 0x1F66F #define T_UTF_32_SCRIPT_LIGATURE_ET_ORNAMENT 0x1F670 #define T_UTF_32_HEAVY_SCRIPT_LIGATURE_ET_ORNAMENT 0x1F671 #define T_UTF_32_LIGATURE_OPEN_ET_ORNAMENT 0x1F672 #define T_UTF_32_HEAVY_LIGATURE_OPEN_ET_ORNAMENT 0x1F673 #define T_UTF_32_HEAVY_AMPERSAND_ORNAMENT 0x1F674 #define T_UTF_32_SWASH_AMPERSAND_ORNAMENT 0x1F675 #define T_UTF_32_SANS_SERIF_HEAVY_DOUBLE_TURNED_COMMA_QUOTATION_MARK_ORNAMENT 0x1F676 #define T_UTF_32_SANS_SERIF_HEAVY_DOUBLE_COMMA_QUOTATION_MARK_ORNAMENT 0x1F677 #define T_UTF_32_SANS_SERIF_HEAVY_LOW_DOUBLE_COMMA_QUOTATION_MARK_ORNAMENT 0x1F678 #define T_UTF_32_HEAVY_INTERROBANG_ORNAMENT 0x1F679 #define T_UTF_32_SANS_SERIF_INTERROBANG_ORNAMENT 0x1F67A #define T_UTF_32_HEAVY_SANS_SERIF_INTERROBANG_ORNAMENT 0x1F67B #define T_UTF_32_VERY_HEAVY_SOLIDUS 0x1F67C #define T_UTF_32_VERY_HEAVY_REVERSE_SOLIDUS 0x1F67D #define T_UTF_32_CHECKER_BOARD 0x1F67E #define T_UTF_32_REVERSE_CHECKER_BOARD 0x1F67F #define T_UTF_32_ROCKET 0x1F680 #define T_UTF_32_HELICOPTER 0x1F681 #define T_UTF_32_STEAM_LOCOMOTIVE 0x1F682 #define T_UTF_32_RAILWAY_CAR 0x1F683 #define T_UTF_32_HIGH_SPEED_TRAIN 0x1F684 #define T_UTF_32_HIGH_SPEED_TRAIN_WITH_BULLET_NOSE 0x1F685 #define T_UTF_32_TRAIN 0x1F686 #define T_UTF_32_METRO 0x1F687 #define T_UTF_32_LIGHT_RAIL 0x1F688 #define T_UTF_32_STATION 0x1F689 #define T_UTF_32_TRAM 0x1F68A #define T_UTF_32_TRAM_CAR 0x1F68B #define T_UTF_32_BUS 0x1F68C #define T_UTF_32_ONCOMING_BUS 0x1F68D #define T_UTF_32_TROLLEYBUS 0x1F68E #define T_UTF_32_BUS_STOP 0x1F68F #define T_UTF_32_MINIBUS 0x1F690 #define T_UTF_32_AMBULANCE 0x1F691 #define T_UTF_32_FIRE_ENGINE 0x1F692 #define T_UTF_32_POLICE_CAR 0x1F693 #define T_UTF_32_ONCOMING_POLICE_CAR 0x1F694 #define T_UTF_32_TAXI 0x1F695 #define T_UTF_32_ONCOMING_TAXI 0x1F696 #define T_UTF_32_AUTOMOBILE 0x1F697 #define T_UTF_32_ONCOMING_AUTOMOBILE 0x1F698 #define T_UTF_32_RECREATIONAL_VEHICLE 0x1F699 #define T_UTF_32_DELIVERY_TRUCK 0x1F69A #define T_UTF_32_ARTICULATED_LORRY 0x1F69B #define T_UTF_32_TRACTOR 0x1F69C #define T_UTF_32_MONORAIL 0x1F69D #define T_UTF_32_MOUNTAIN_RAILWAY 0x1F69E #define T_UTF_32_SUSPENSION_RAILWAY 0x1F69F #define T_UTF_32_MOUNTAIN_CABLEWAY 0x1F6A0 #define T_UTF_32_AERIAL_TRAMWAY 0x1F6A1 #define T_UTF_32_SHIP 0x1F6A2 #define T_UTF_32_ROWBOAT 0x1F6A3 #define T_UTF_32_SPEEDBOAT 0x1F6A4 #define T_UTF_32_HORIZONTAL_TRAFFIC_LIGHT 0x1F6A5 #define T_UTF_32_VERTICAL_TRAFFIC_LIGHT 0x1F6A6 #define T_UTF_32_CONSTRUCTION_SIGN 0x1F6A7 #define T_UTF_32_POLICE_CARS_REVOLVING_LIGHT 0x1F6A8 #define T_UTF_32_TRIANGULAR_FLAG_ON_POST 0x1F6A9 #define T_UTF_32_DOOR 0x1F6AA #define T_UTF_32_NO_ENTRY_SIGN 0x1F6AB #define T_UTF_32_SMOKING_SYMBOL 0x1F6AC #define T_UTF_32_NO_SMOKING_SYMBOL 0x1F6AD #define T_UTF_32_PUT_LITTER_IN_ITS_PLACE_SYMBOL 0x1F6AE #define T_UTF_32_DO_NOT_LITTER_SYMBOL 0x1F6AF #define T_UTF_32_POTABLE_WATER_SYMBOL 0x1F6B0 #define T_UTF_32_NON_POTABLE_WATER_SYMBOL 0x1F6B1 #define T_UTF_32_BICYCLE 0x1F6B2 #define T_UTF_32_NO_BICYCLES 0x1F6B3 #define T_UTF_32_BICYCLIST 0x1F6B4 #define T_UTF_32_MOUNTAIN_BICYCLIST 0x1F6B5 #define T_UTF_32_PEDESTRIAN 0x1F6B6 #define T_UTF_32_NO_PEDESTRIANS 0x1F6B7 #define T_UTF_32_CHILDREN_CROSSING 0x1F6B8 #define T_UTF_32_MENS_SYMBOL 0x1F6B9 #define T_UTF_32_WOMENS_SYMBOL 0x1F6BA #define T_UTF_32_RESTROOM 0x1F6BB #define T_UTF_32_BABY_SYMBOL 0x1F6BC #define T_UTF_32_TOILET 0x1F6BD #define T_UTF_32_WATER_CLOSET 0x1F6BE #define T_UTF_32_SHOWER 0x1F6BF #define T_UTF_32_BATH 0x1F6C0 #define T_UTF_32_BATHTUB 0x1F6C1 #define T_UTF_32_PASSPORT_CONTROL 0x1F6C2 #define T_UTF_32_CUSTOMS 0x1F6C3 #define T_UTF_32_BAGGAGE_CLAIM 0x1F6C4 #define T_UTF_32_LEFT_LUGGAGE 0x1F6C5 #define T_UTF_32_TRIANGLE_WITH_ROUNDED_CORNERS 0x1F6C6 #define T_UTF_32_PROHIBITED_SIGN 0x1F6C7 #define T_UTF_32_CIRCLED_INFORMATION_SOURCE 0x1F6C8 #define T_UTF_32_BOYS_SYMBOL 0x1F6C9 #define T_UTF_32_GIRLS_SYMBOL 0x1F6CA #define T_UTF_32_COUCH_AND_LAMP 0x1F6CB #define T_UTF_32_SLEEPING_ACCOMMODATION 0x1F6CC #define T_UTF_32_SHOPPING_BAGS 0x1F6CD #define T_UTF_32_BELLHOP_BELL 0x1F6CE #define T_UTF_32_BED 0x1F6CF #define T_UTF_32_PLACE_OF_WORSHIP 0x1F6D0 #define T_UTF_32_OCTAGONAL_SIGN 0x1F6D1 #define T_UTF_32_SHOPPING_TROLLEY 0x1F6D2 #define T_UTF_32_STUPA 0x1F6D3 #define T_UTF_32_PAGODA 0x1F6D4 #define T_UTF_32_HAMMER_AND_WRENCH 0x1F6E0 #define T_UTF_32_SHIELD 0x1F6E1 #define T_UTF_32_OIL_DRUM 0x1F6E2 #define T_UTF_32_MOTORWAY 0x1F6E3 #define T_UTF_32_RAILWAY_TRACK 0x1F6E4 #define T_UTF_32_MOTOR_BOAT 0x1F6E5 #define T_UTF_32_UP_POINTING_MILITARY_AIRPLANE 0x1F6E6 #define T_UTF_32_UP_POINTING_AIRPLANE 0x1F6E7 #define T_UTF_32_UP_POINTING_SMALL_AIRPLANE 0x1F6E8 #define T_UTF_32_SMALL_AIRPLANE 0x1F6E9 #define T_UTF_32_NORTHEAST_POINTING_AIRPLANE 0x1F6EA #define T_UTF_32_AIRPLANE_DEPARTURE 0x1F6EB #define T_UTF_32_AIRPLANE_ARRIVING 0x1F6EC #define T_UTF_32_SATELLITE 0x1F6F0 #define T_UTF_32_ONCOMING_FIRE_ENGINE 0x1F6F1 #define T_UTF_32_DIESEL_LOCOMOTIVE 0x1F6F2 #define T_UTF_32_PASSENGER_SHIP 0x1F6F3 #define T_UTF_32_SCOOTER 0x1F6F4 #define T_UTF_32_MOTOR_SCOOTER 0x1F6F5 #define T_UTF_32_CANOE 0x1F6F6 #define T_UTF_32_SLED 0x1F6F7 #define T_UTF_32_FLYING_SAUCER 0x1F6F8 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_QUINTESSENCE 0x1F700 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_AIR 0x1F701 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_FIRE 0x1F702 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_EARTH 0x1F703 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_WATER 0x1F704 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_AQUAFORTIS 0x1F705 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_AQUA_REGIA 0x1F706 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_AQUA_REGIA_2 0x1F707 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_AQUA_VITAE 0x1F708 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_AQUA_VITAE_2 0x1F709 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_VINEGAR 0x1F70A #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_VINEGAR_2 0x1F70B #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_VINEGAR_3 0x1F70C #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SULFUR 0x1F70D #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_PHILOSOPHERS_SULFUR 0x1F70E #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_BLACK_SULFUR 0x1F70F #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_MERCURY_SUBLIMATE 0x1F710 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_MERCURY_SUBLIMATE_2 0x1F711 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_MERCURY_SUBLIMATE_3 0x1F712 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CINNABAR 0x1F713 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SALT 0x1F714 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_NITRE 0x1F715 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_VITRIOL 0x1F716 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_VITRIOL_2 0x1F717 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_ROCK_SALT 0x1F718 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_ROCK_SALT_2 0x1F719 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_GOLD 0x1F71A #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SILVER 0x1F71B #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_IRON_ORE 0x1F71C #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_IRON_ORE_2 0x1F71D #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CROCUS_OF_IRON 0x1F71E #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_REGULUS_OF_IRON 0x1F71F #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_COPPER_ORE 0x1F720 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_IRON_COPPER_ORE 0x1F721 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SUBLIMATE_OF_COPPER 0x1F722 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CROCUS_OF_COPPER 0x1F723 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CROCUS_OF_COPPER_2 0x1F724 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_COPPER_ANTIMONIATE 0x1F725 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SALT_OF_COPPER_ANTIMONIATE 0x1F726 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SUBLIMATE_OF_SALT_OF_COPPER 0x1F727 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_VERDIGRIS 0x1F728 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_TIN_ORE 0x1F729 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_LEAD_ORE 0x1F72A #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_ANTIMONY_ORE 0x1F72B #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SUBLIMATE_OF_ANTIMONY 0x1F72C #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SALT_OF_ANTIMONY 0x1F72D #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SUBLIMATE_OF_SALT_OF_ANTIMONY 0x1F72E #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_VINEGAR_OF_ANTIMONY 0x1F72F #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_REGULUS_OF_ANTIMONY 0x1F730 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_REGULUS_OF_ANTIMONY_2 0x1F731 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_REGULUS 0x1F732 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_REGULUS_2 0x1F733 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_REGULUS_3 0x1F734 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_REGULUS_4 0x1F735 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_ALKALI 0x1F736 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_ALKALI_2 0x1F737 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_MARCASITE 0x1F738 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SAL_AMMONIAC 0x1F739 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_ARSENIC 0x1F73A #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_REALGAR 0x1F73B #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_REALGAR_2 0x1F73C #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_AURIPIGMENT 0x1F73D #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_BISMUTH_ORE 0x1F73E #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_TARTAR 0x1F73F #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_TARTAR_2 0x1F740 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_QUICK_LIME 0x1F741 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_BORAX 0x1F742 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_BORAX_2 0x1F743 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_BORAX_3 0x1F744 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_ALUM 0x1F745 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_OIL 0x1F746 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SPIRIT 0x1F747 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_TINCTURE 0x1F748 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_GUM 0x1F749 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_WAX 0x1F74A #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_POWDER 0x1F74B #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CALX 0x1F74C #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_TUTTY 0x1F74D #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CAPUT_MORTUUM 0x1F74E #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SCEPTER_OF_JOVE 0x1F74F #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CADUCEUS 0x1F750 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_TRIDENT 0x1F751 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_STARRED_TRIDENT 0x1F752 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_LODESTONE 0x1F753 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SOAP 0x1F754 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_URINE 0x1F755 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_HORSE_DUNG 0x1F756 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_ASHES 0x1F757 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_POT_ASHES 0x1F758 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_BRICK 0x1F759 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_POWDERED_BRICK 0x1F75A #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_AMALGAM 0x1F75B #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_STRATUM_SUPER_STRATUM 0x1F75C #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_STRATUM_SUPER_STRATUM_2 0x1F75D #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_SUBLIMATION 0x1F75E #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_PRECIPITATE 0x1F75F #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_DISTILL 0x1F760 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_DISSOLVE 0x1F761 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_DISSOLVE_2 0x1F762 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_PURIFY 0x1F763 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_PUTREFACTION 0x1F764 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CRUCIBLE 0x1F765 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CRUCIBLE_2 0x1F766 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CRUCIBLE_3 0x1F767 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CRUCIBLE_4 0x1F768 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_CRUCIBLE_5 0x1F769 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_ALEMBIC 0x1F76A #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_BATH_OF_MARY 0x1F76B #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_BATH_OF_VAPOURS 0x1F76C #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_RETORT 0x1F76D #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_HOUR 0x1F76E #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_NIGHT 0x1F76F #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_DAY_NIGHT 0x1F770 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_MONTH 0x1F771 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_HALF_DRAM 0x1F772 #define T_UTF_32_ALCHEMICAL_SYMBOL_FOR_HALF_OUNCE 0x1F773 #define T_UTF_32_BLACK_LEFT_POINTING_ISOSCELES_RIGHT_TRIANGLE 0x1F780 #define T_UTF_32_BLACK_UP_POINTING_ISOSCELES_RIGHT_TRIANGLE 0x1F781 #define T_UTF_32_BLACK_RIGHT_POINTING_ISOSCELES_RIGHT_TRIANGLE 0x1F782 #define T_UTF_32_BLACK_DOWN_POINTING_ISOSCELES_RIGHT_TRIANGLE 0x1F783 #define T_UTF_32_BLACK_SLIGHTLY_SMALL_CIRCLE 0x1F784 #define T_UTF_32_MEDIUM_BOLD_WHITE_CIRCLE 0x1F785 #define T_UTF_32_BOLD_WHITE_CIRCLE 0x1F786 #define T_UTF_32_HEAVY_WHITE_CIRCLE 0x1F787 #define T_UTF_32_VERY_HEAVY_WHITE_CIRCLE 0x1F788 #define T_UTF_32_EXTREMELY_HEAVY_WHITE_CIRCLE 0x1F789 #define T_UTF_32_WHITE_CIRCLE_CONTAINING_BLACK_SMALL_CIRCLE 0x1F78A #define T_UTF_32_ROUND_TARGET 0x1F78B #define T_UTF_32_BLACK_TINY_SQUARE 0x1F78C #define T_UTF_32_BLACK_SLIGHTLY_SMALL_SQUARE 0x1F78D #define T_UTF_32_LIGHT_WHITE_SQUARE 0x1F78E #define T_UTF_32_MEDIUM_WHITE_SQUARE 0x1F78F #define T_UTF_32_BOLD_WHITE_SQUARE 0x1F790 #define T_UTF_32_HEAVY_WHITE_SQUARE 0x1F791 #define T_UTF_32_VERY_HEAVY_WHITE_SQUARE 0x1F792 #define T_UTF_32_EXTREMELY_HEAVY_WHITE_SQUARE 0x1F793 #define T_UTF_32_WHITE_SQUARE_CONTAINING_BLACK_VERY_SMALL_SQUARE 0x1F794 #define T_UTF_32_WHITE_SQUARE_CONTAINING_BLACK_MEDIUM_SQUARE 0x1F795 #define T_UTF_32_SQUARE_TARGET 0x1F796 #define T_UTF_32_BLACK_TINY_DIAMOND 0x1F797 #define T_UTF_32_BLACK_VERY_SMALL_DIAMOND 0x1F798 #define T_UTF_32_BLACK_MEDIUM_SMALL_DIAMOND 0x1F799 #define T_UTF_32_WHITE_DIAMOND_CONTAINING_BLACK_VERY_SMALL_DIAMOND 0x1F79A #define T_UTF_32_WHITE_DIAMOND_CONTAINING_BLACK_MEDIUM_DIAMOND 0x1F79B #define T_UTF_32_DIAMOND_TARGET 0x1F79C #define T_UTF_32_BLACK_TINY_LOZENGE 0x1F79D #define T_UTF_32_BLACK_VERY_SMALL_LOZENGE 0x1F79E #define T_UTF_32_BLACK_MEDIUM_SMALL_LOZENGE 0x1F79F #define T_UTF_32_WHITE_LOZENGE_CONTAINING_BLACK_SMALL_LOZENGE 0x1F7A0 #define T_UTF_32_THIN_GREEK_CROSS 0x1F7A1 #define T_UTF_32_LIGHT_GREEK_CROSS 0x1F7A2 #define T_UTF_32_MEDIUM_GREEK_CROSS 0x1F7A3 #define T_UTF_32_BOLD_GREEK_CROSS 0x1F7A4 #define T_UTF_32_VERY_BOLD_GREEK_CROSS 0x1F7A5 #define T_UTF_32_VERY_HEAVY_GREEK_CROSS 0x1F7A6 #define T_UTF_32_EXTREMELY_HEAVY_GREEK_CROSS 0x1F7A7 #define T_UTF_32_THIN_SALTIRE 0x1F7A8 #define T_UTF_32_LIGHT_SALTIRE 0x1F7A9 #define T_UTF_32_MEDIUM_SALTIRE 0x1F7AA #define T_UTF_32_BOLD_SALTIRE 0x1F7AB #define T_UTF_32_HEAVY_SALTIRE 0x1F7AC #define T_UTF_32_VERY_HEAVY_SALTIRE 0x1F7AD #define T_UTF_32_EXTREMELY_HEAVY_SALTIRE 0x1F7AE #define T_UTF_32_LIGHT_FIVE_SPOKED_ASTERISK 0x1F7AF #define T_UTF_32_MEDIUM_FIVE_SPOKED_ASTERISK 0x1F7B0 #define T_UTF_32_BOLD_FIVE_SPOKED_ASTERISK 0x1F7B1 #define T_UTF_32_HEAVY_FIVE_SPOKED_ASTERISK 0x1F7B2 #define T_UTF_32_VERY_HEAVY_FIVE_SPOKED_ASTERISK 0x1F7B3 #define T_UTF_32_EXTREMELY_HEAVY_FIVE_SPOKED_ASTERISK 0x1F7B4 #define T_UTF_32_LIGHT_SIX_SPOKED_ASTERISK 0x1F7B5 #define T_UTF_32_MEDIUM_SIX_SPOKED_ASTERISK 0x1F7B6 #define T_UTF_32_BOLD_SIX_SPOKED_ASTERISK 0x1F7B7 #define T_UTF_32_HEAVY_SIX_SPOKED_ASTERISK 0x1F7B8 #define T_UTF_32_VERY_HEAVY_SIX_SPOKED_ASTERISK 0x1F7B9 #define T_UTF_32_EXTREMELY_HEAVY_SIX_SPOKED_ASTERISK 0x1F7BA #define T_UTF_32_LIGHT_EIGHT_SPOKED_ASTERISK 0x1F7BB #define T_UTF_32_MEDIUM_EIGHT_SPOKED_ASTERISK 0x1F7BC #define T_UTF_32_BOLD_EIGHT_SPOKED_ASTERISK 0x1F7BD #define T_UTF_32_HEAVY_EIGHT_SPOKED_ASTERISK 0x1F7BE #define T_UTF_32_VERY_HEAVY_EIGHT_SPOKED_ASTERISK 0x1F7BF #define T_UTF_32_LIGHT_THREE_POINTED_BLACK_STAR 0x1F7C0 #define T_UTF_32_MEDIUM_THREE_POINTED_BLACK_STAR 0x1F7C1 #define T_UTF_32_THREE_POINTED_BLACK_STAR 0x1F7C2 #define T_UTF_32_MEDIUM_THREE_POINTED_PINWHEEL_STAR 0x1F7C3 #define T_UTF_32_LIGHT_FOUR_POINTED_BLACK_STAR 0x1F7C4 #define T_UTF_32_MEDIUM_FOUR_POINTED_BLACK_STAR 0x1F7C5 #define T_UTF_32_FOUR_POINTED_BLACK_STAR 0x1F7C6 #define T_UTF_32_MEDIUM_FOUR_POINTED_PINWHEEL_STAR 0x1F7C7 #define T_UTF_32_REVERSE_LIGHT_FOUR_POINTED_PINWHEEL_STAR 0x1F7C8 #define T_UTF_32_LIGHT_FIVE_POINTED_BLACK_STAR 0x1F7C9 #define T_UTF_32_HEAVY_FIVE_POINTED_BLACK_STAR 0x1F7CA #define T_UTF_32_MEDIUM_SIX_POINTED_BLACK_STAR 0x1F7CB #define T_UTF_32_HEAVY_SIX_POINTED_BLACK_STAR 0x1F7CC #define T_UTF_32_SIX_POINTED_PINWHEEL_STAR 0x1F7CD #define T_UTF_32_MEDIUM_EIGHT_POINTED_BLACK_STAR 0x1F7CE #define T_UTF_32_HEAVY_EIGHT_POINTED_BLACK_STAR 0x1F7CF #define T_UTF_32_VERY_HEAVY_EIGHT_POINTED_BLACK_STAR 0x1F7D0 #define T_UTF_32_HEAVY_EIGHT_POINTED_PINWHEEL_STAR 0x1F7D1 #define T_UTF_32_LIGHT_TWELVE_POINTED_BLACK_STAR 0x1F7D2 #define T_UTF_32_HEAVY_TWELVE_POINTED_BLACK_STAR 0x1F7D3 #define T_UTF_32_HEAVY_TWELVE_POINTED_PINWHEEL_STAR 0x1F7D4 #define T_UTF_32_LEFTWARDS_ARROW_WITH_SMALL_TRIANGLE_ARROWHEAD 0x1F800 #define T_UTF_32_UPWARDS_ARROW_WITH_SMALL_TRIANGLE_ARROWHEAD 0x1F801 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_SMALL_TRIANGLE_ARROWHEAD 0x1F802 #define T_UTF_32_DOWNWARDS_ARROW_WITH_SMALL_TRIANGLE_ARROWHEAD 0x1F803 #define T_UTF_32_LEFTWARDS_ARROW_WITH_MEDIUM_TRIANGLE_ARROWHEAD 0x1F804 #define T_UTF_32_UPWARDS_ARROW_WITH_MEDIUM_TRIANGLE_ARROWHEAD 0x1F805 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_MEDIUM_TRIANGLE_ARROWHEAD 0x1F806 #define T_UTF_32_DOWNWARDS_ARROW_WITH_MEDIUM_TRIANGLE_ARROWHEAD 0x1F807 #define T_UTF_32_LEFTWARDS_ARROW_WITH_LARGE_TRIANGLE_ARROWHEAD 0x1F808 #define T_UTF_32_UPWARDS_ARROW_WITH_LARGE_TRIANGLE_ARROWHEAD 0x1F809 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_LARGE_TRIANGLE_ARROWHEAD 0x1F80A #define T_UTF_32_DOWNWARDS_ARROW_WITH_LARGE_TRIANGLE_ARROWHEAD 0x1F80B #define T_UTF_32_LEFTWARDS_ARROW_WITH_SMALL_EQUILATERAL_ARROWHEAD 0x1F810 #define T_UTF_32_UPWARDS_ARROW_WITH_SMALL_EQUILATERAL_ARROWHEAD 0x1F811 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_SMALL_EQUILATERAL_ARROWHEAD 0x1F812 #define T_UTF_32_DOWNWARDS_ARROW_WITH_SMALL_EQUILATERAL_ARROWHEAD 0x1F813 #define T_UTF_32_LEFTWARDS_ARROW_WITH_EQUILATERAL_ARROWHEAD 0x1F814 #define T_UTF_32_UPWARDS_ARROW_WITH_EQUILATERAL_ARROWHEAD 0x1F815 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_EQUILATERAL_ARROWHEAD 0x1F816 #define T_UTF_32_DOWNWARDS_ARROW_WITH_EQUILATERAL_ARROWHEAD 0x1F817 #define T_UTF_32_HEAVY_LEFTWARDS_ARROW_WITH_EQUILATERAL_ARROWHEAD 0x1F818 #define T_UTF_32_HEAVY_UPWARDS_ARROW_WITH_EQUILATERAL_ARROWHEAD 0x1F819 #define T_UTF_32_HEAVY_RIGHTWARDS_ARROW_WITH_EQUILATERAL_ARROWHEAD 0x1F81A #define T_UTF_32_HEAVY_DOWNWARDS_ARROW_WITH_EQUILATERAL_ARROWHEAD 0x1F81B #define T_UTF_32_HEAVY_LEFTWARDS_ARROW_WITH_LARGE_EQUILATERAL_ARROWHEAD 0x1F81C #define T_UTF_32_HEAVY_UPWARDS_ARROW_WITH_LARGE_EQUILATERAL_ARROWHEAD 0x1F81D #define T_UTF_32_HEAVY_RIGHTWARDS_ARROW_WITH_LARGE_EQUILATERAL_ARROWHEAD 0x1F81E #define T_UTF_32_HEAVY_DOWNWARDS_ARROW_WITH_LARGE_EQUILATERAL_ARROWHEAD 0x1F81F #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW_WITH_NARROW_SHAFT 0x1F820 #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW_WITH_NARROW_SHAFT 0x1F821 #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW_WITH_NARROW_SHAFT 0x1F822 #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW_WITH_NARROW_SHAFT 0x1F823 #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW_WITH_MEDIUM_SHAFT 0x1F824 #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW_WITH_MEDIUM_SHAFT 0x1F825 #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW_WITH_MEDIUM_SHAFT 0x1F826 #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW_WITH_MEDIUM_SHAFT 0x1F827 #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW_WITH_BOLD_SHAFT 0x1F828 #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW_WITH_BOLD_SHAFT 0x1F829 #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW_WITH_BOLD_SHAFT 0x1F82A #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW_WITH_BOLD_SHAFT 0x1F82B #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW_WITH_HEAVY_SHAFT 0x1F82C #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW_WITH_HEAVY_SHAFT 0x1F82D #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW_WITH_HEAVY_SHAFT 0x1F82E #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW_WITH_HEAVY_SHAFT 0x1F82F #define T_UTF_32_LEFTWARDS_TRIANGLE_HEADED_ARROW_WITH_VERY_HEAVY_SHAFT 0x1F830 #define T_UTF_32_UPWARDS_TRIANGLE_HEADED_ARROW_WITH_VERY_HEAVY_SHAFT 0x1F831 #define T_UTF_32_RIGHTWARDS_TRIANGLE_HEADED_ARROW_WITH_VERY_HEAVY_SHAFT 0x1F832 #define T_UTF_32_DOWNWARDS_TRIANGLE_HEADED_ARROW_WITH_VERY_HEAVY_SHAFT 0x1F833 #define T_UTF_32_LEFTWARDS_FINGER_POST_ARROW 0x1F834 #define T_UTF_32_UPWARDS_FINGER_POST_ARROW 0x1F835 #define T_UTF_32_RIGHTWARDS_FINGER_POST_ARROW 0x1F836 #define T_UTF_32_DOWNWARDS_FINGER_POST_ARROW 0x1F837 #define T_UTF_32_LEFTWARDS_SQUARED_ARROW 0x1F838 #define T_UTF_32_UPWARDS_SQUARED_ARROW 0x1F839 #define T_UTF_32_RIGHTWARDS_SQUARED_ARROW 0x1F83A #define T_UTF_32_DOWNWARDS_SQUARED_ARROW 0x1F83B #define T_UTF_32_LEFTWARDS_COMPRESSED_ARROW 0x1F83C #define T_UTF_32_UPWARDS_COMPRESSED_ARROW 0x1F83D #define T_UTF_32_RIGHTWARDS_COMPRESSED_ARROW 0x1F83E #define T_UTF_32_DOWNWARDS_COMPRESSED_ARROW 0x1F83F #define T_UTF_32_LEFTWARDS_HEAVY_COMPRESSED_ARROW 0x1F840 #define T_UTF_32_UPWARDS_HEAVY_COMPRESSED_ARROW 0x1F841 #define T_UTF_32_RIGHTWARDS_HEAVY_COMPRESSED_ARROW 0x1F842 #define T_UTF_32_DOWNWARDS_HEAVY_COMPRESSED_ARROW 0x1F843 #define T_UTF_32_LEFTWARDS_HEAVY_ARROW 0x1F844 #define T_UTF_32_UPWARDS_HEAVY_ARROW 0x1F845 #define T_UTF_32_RIGHTWARDS_HEAVY_ARROW 0x1F846 #define T_UTF_32_DOWNWARDS_HEAVY_ARROW 0x1F847 #define T_UTF_32_LEFTWARDS_SANS_SERIF_ARROW 0x1F850 #define T_UTF_32_UPWARDS_SANS_SERIF_ARROW 0x1F851 #define T_UTF_32_RIGHTWARDS_SANS_SERIF_ARROW 0x1F852 #define T_UTF_32_DOWNWARDS_SANS_SERIF_ARROW 0x1F853 #define T_UTF_32_NORTH_WEST_SANS_SERIF_ARROW 0x1F854 #define T_UTF_32_NORTH_EAST_SANS_SERIF_ARROW 0x1F855 #define T_UTF_32_SOUTH_EAST_SANS_SERIF_ARROW 0x1F856 #define T_UTF_32_SOUTH_WEST_SANS_SERIF_ARROW 0x1F857 #define T_UTF_32_LEFT_RIGHT_SANS_SERIF_ARROW 0x1F858 #define T_UTF_32_UP_DOWN_SANS_SERIF_ARROW 0x1F859 #define T_UTF_32_WIDE_HEADED_LEFTWARDS_LIGHT_BARB_ARROW 0x1F860 #define T_UTF_32_WIDE_HEADED_UPWARDS_LIGHT_BARB_ARROW 0x1F861 #define T_UTF_32_WIDE_HEADED_RIGHTWARDS_LIGHT_BARB_ARROW 0x1F862 #define T_UTF_32_WIDE_HEADED_DOWNWARDS_LIGHT_BARB_ARROW 0x1F863 #define T_UTF_32_WIDE_HEADED_NORTH_WEST_LIGHT_BARB_ARROW 0x1F864 #define T_UTF_32_WIDE_HEADED_NORTH_EAST_LIGHT_BARB_ARROW 0x1F865 #define T_UTF_32_WIDE_HEADED_SOUTH_EAST_LIGHT_BARB_ARROW 0x1F866 #define T_UTF_32_WIDE_HEADED_SOUTH_WEST_LIGHT_BARB_ARROW 0x1F867 #define T_UTF_32_WIDE_HEADED_LEFTWARDS_BARB_ARROW 0x1F868 #define T_UTF_32_WIDE_HEADED_UPWARDS_BARB_ARROW 0x1F869 #define T_UTF_32_WIDE_HEADED_RIGHTWARDS_BARB_ARROW 0x1F86A #define T_UTF_32_WIDE_HEADED_DOWNWARDS_BARB_ARROW 0x1F86B #define T_UTF_32_WIDE_HEADED_NORTH_WEST_BARB_ARROW 0x1F86C #define T_UTF_32_WIDE_HEADED_NORTH_EAST_BARB_ARROW 0x1F86D #define T_UTF_32_WIDE_HEADED_SOUTH_EAST_BARB_ARROW 0x1F86E #define T_UTF_32_WIDE_HEADED_SOUTH_WEST_BARB_ARROW 0x1F86F #define T_UTF_32_WIDE_HEADED_LEFTWARDS_MEDIUM_BARB_ARROW 0x1F870 #define T_UTF_32_WIDE_HEADED_UPWARDS_MEDIUM_BARB_ARROW 0x1F871 #define T_UTF_32_WIDE_HEADED_RIGHTWARDS_MEDIUM_BARB_ARROW 0x1F872 #define T_UTF_32_WIDE_HEADED_DOWNWARDS_MEDIUM_BARB_ARROW 0x1F873 #define T_UTF_32_WIDE_HEADED_NORTH_WEST_MEDIUM_BARB_ARROW 0x1F874 #define T_UTF_32_WIDE_HEADED_NORTH_EAST_MEDIUM_BARB_ARROW 0x1F875 #define T_UTF_32_WIDE_HEADED_SOUTH_EAST_MEDIUM_BARB_ARROW 0x1F876 #define T_UTF_32_WIDE_HEADED_SOUTH_WEST_MEDIUM_BARB_ARROW 0x1F877 #define T_UTF_32_WIDE_HEADED_LEFTWARDS_HEAVY_BARB_ARROW 0x1F878 #define T_UTF_32_WIDE_HEADED_UPWARDS_HEAVY_BARB_ARROW 0x1F879 #define T_UTF_32_WIDE_HEADED_RIGHTWARDS_HEAVY_BARB_ARROW 0x1F87A #define T_UTF_32_WIDE_HEADED_DOWNWARDS_HEAVY_BARB_ARROW 0x1F87B #define T_UTF_32_WIDE_HEADED_NORTH_WEST_HEAVY_BARB_ARROW 0x1F87C #define T_UTF_32_WIDE_HEADED_NORTH_EAST_HEAVY_BARB_ARROW 0x1F87D #define T_UTF_32_WIDE_HEADED_SOUTH_EAST_HEAVY_BARB_ARROW 0x1F87E #define T_UTF_32_WIDE_HEADED_SOUTH_WEST_HEAVY_BARB_ARROW 0x1F87F #define T_UTF_32_WIDE_HEADED_LEFTWARDS_VERY_HEAVY_BARB_ARROW 0x1F880 #define T_UTF_32_WIDE_HEADED_UPWARDS_VERY_HEAVY_BARB_ARROW 0x1F881 #define T_UTF_32_WIDE_HEADED_RIGHTWARDS_VERY_HEAVY_BARB_ARROW 0x1F882 #define T_UTF_32_WIDE_HEADED_DOWNWARDS_VERY_HEAVY_BARB_ARROW 0x1F883 #define T_UTF_32_WIDE_HEADED_NORTH_WEST_VERY_HEAVY_BARB_ARROW 0x1F884 #define T_UTF_32_WIDE_HEADED_NORTH_EAST_VERY_HEAVY_BARB_ARROW 0x1F885 #define T_UTF_32_WIDE_HEADED_SOUTH_EAST_VERY_HEAVY_BARB_ARROW 0x1F886 #define T_UTF_32_WIDE_HEADED_SOUTH_WEST_VERY_HEAVY_BARB_ARROW 0x1F887 #define T_UTF_32_LEFTWARDS_TRIANGLE_ARROWHEAD 0x1F890 #define T_UTF_32_UPWARDS_TRIANGLE_ARROWHEAD 0x1F891 #define T_UTF_32_RIGHTWARDS_TRIANGLE_ARROWHEAD 0x1F892 #define T_UTF_32_DOWNWARDS_TRIANGLE_ARROWHEAD 0x1F893 #define T_UTF_32_LEFTWARDS_WHITE_ARROW_WITHIN_TRIANGLE_ARROWHEAD 0x1F894 #define T_UTF_32_UPWARDS_WHITE_ARROW_WITHIN_TRIANGLE_ARROWHEAD 0x1F895 #define T_UTF_32_RIGHTWARDS_WHITE_ARROW_WITHIN_TRIANGLE_ARROWHEAD 0x1F896 #define T_UTF_32_DOWNWARDS_WHITE_ARROW_WITHIN_TRIANGLE_ARROWHEAD 0x1F897 #define T_UTF_32_LEFTWARDS_ARROW_WITH_NOTCHED_TAIL 0x1F898 #define T_UTF_32_UPWARDS_ARROW_WITH_NOTCHED_TAIL 0x1F899 #define T_UTF_32_RIGHTWARDS_ARROW_WITH_NOTCHED_TAIL 0x1F89A #define T_UTF_32_DOWNWARDS_ARROW_WITH_NOTCHED_TAIL 0x1F89B #define T_UTF_32_HEAVY_ARROW_SHAFT_WIDTH_ONE 0x1F89C #define T_UTF_32_HEAVY_ARROW_SHAFT_WIDTH_TWO_THIRDS 0x1F89D #define T_UTF_32_HEAVY_ARROW_SHAFT_WIDTH_ONE_HALF 0x1F89E #define T_UTF_32_HEAVY_ARROW_SHAFT_WIDTH_ONE_THIRD 0x1F89F #define T_UTF_32_LEFTWARDS_BOTTOM_SHADED_WHITE_ARROW 0x1F8A0 #define T_UTF_32_RIGHTWARDS_BOTTOM_SHADED_WHITE_ARROW 0x1F8A1 #define T_UTF_32_LEFTWARDS_TOP_SHADED_WHITE_ARROW 0x1F8A2 #define T_UTF_32_RIGHTWARDS_TOP_SHADED_WHITE_ARROW 0x1F8A3 #define T_UTF_32_LEFTWARDS_LEFT_SHADED_WHITE_ARROW 0x1F8A4 #define T_UTF_32_RIGHTWARDS_RIGHT_SHADED_WHITE_ARROW 0x1F8A5 #define T_UTF_32_LEFTWARDS_RIGHT_SHADED_WHITE_ARROW 0x1F8A6 #define T_UTF_32_RIGHTWARDS_LEFT_SHADED_WHITE_ARROW 0x1F8A7 #define T_UTF_32_LEFTWARDS_BACK_TILTED_SHADOWED_WHITE_ARROW 0x1F8A8 #define T_UTF_32_RIGHTWARDS_BACK_TILTED_SHADOWED_WHITE_ARROW 0x1F8A9 #define T_UTF_32_LEFTWARDS_FRONT_TILTED_SHADOWED_WHITE_ARROW 0x1F8AA #define T_UTF_32_RIGHTWARDS_FRONT_TILTED_SHADOWED_WHITE_ARROW 0x1F8AB #define T_UTF_32_WHITE_ARROW_SHAFT_WIDTH_ONE 0x1F8AC #define T_UTF_32_WHITE_ARROW_SHAFT_WIDTH_TWO_THIRDS 0x1F8AD #define T_UTF_32_CIRCLED_CROSS_FORMEE_WITH_FOUR_DOTS 0x1F900 #define T_UTF_32_CIRCLED_CROSS_FORMEE_WITH_TWO_DOTS 0x1F901 #define T_UTF_32_CIRCLED_CROSS_FORMEE 0x1F902 #define T_UTF_32_LEFT_HALF_CIRCLE_WITH_FOUR_DOTS 0x1F903 #define T_UTF_32_LEFT_HALF_CIRCLE_WITH_THREE_DOTS 0x1F904 #define T_UTF_32_LEFT_HALF_CIRCLE_WITH_TWO_DOTS 0x1F905 #define T_UTF_32_LEFT_HALF_CIRCLE_WITH_DOT 0x1F906 #define T_UTF_32_LEFT_HALF_CIRCLE 0x1F907 #define T_UTF_32_DOWNWARD_FACING_HOOK 0x1F908 #define T_UTF_32_DOWNWARD_FACING_NOTCHED_HOOK 0x1F909 #define T_UTF_32_DOWNWARD_FACING_HOOK_WITH_DOT 0x1F90A #define T_UTF_32_DOWNWARD_FACING_NOTCHED_HOOK_WITH_DOT 0x1F90B #define T_UTF_32_ZIPPER_MOUTH_FACE 0x1F910 #define T_UTF_32_MONEY_MOUTH_FACE 0x1F911 #define T_UTF_32_FACE_WITH_THERMOMETER 0x1F912 #define T_UTF_32_NERD_FACE 0x1F913 #define T_UTF_32_THINKING_FACE 0x1F914 #define T_UTF_32_FACE_WITH_HEAD_BANDAGE 0x1F915 #define T_UTF_32_ROBOT_FACE 0x1F916 #define T_UTF_32_HUGGING_FACE 0x1F917 #define T_UTF_32_SIGN_OF_THE_HORNS 0x1F918 #define T_UTF_32_CALL_ME_HAND 0x1F919 #define T_UTF_32_RAISED_BACK_OF_HAND 0x1F91A #define T_UTF_32_LEFT_FACING_FIST 0x1F91B #define T_UTF_32_RIGHT_FACING_FIST 0x1F91C #define T_UTF_32_HANDSHAKE 0x1F91D #define T_UTF_32_HAND_WITH_INDEX_AND_MIDDLE_FINGERS_CROSSED 0x1F91E #define T_UTF_32_I_LOVE_YOU_HAND_SIGN 0x1F91F #define T_UTF_32_FACE_WITH_COWBOY_HAT 0x1F920 #define T_UTF_32_CLOWN_FACE 0x1F921 #define T_UTF_32_NAUSEATED_FACE 0x1F922 #define T_UTF_32_ROLLING_ON_THE_FLOOR_LAUGHING 0x1F923 #define T_UTF_32_DROOLING_FACE 0x1F924 #define T_UTF_32_LYING_FACE 0x1F925 #define T_UTF_32_FACE_PALM 0x1F926 #define T_UTF_32_SNEEZING_FACE 0x1F927 #define T_UTF_32_FACE_WITH_ONE_EYEBROW_RAISED 0x1F928 #define T_UTF_32_GRINNING_FACE_WITH_STAR_EYES 0x1F929 #define T_UTF_32_GRINNING_FACE_WITH_ONE_LARGE_AND_ONE_SMALL_EYE 0x1F92A #define T_UTF_32_FACE_WITH_FINGER_COVERING_CLOSED_LIPS 0x1F92B #define T_UTF_32_SERIOUS_FACE_WITH_SYMBOLS_COVERING_MOUTH 0x1F92C #define T_UTF_32_SMILING_FACE_WITH_SMILING_EYES_AND_HAND_COVERING_MOUTH 0x1F92D #define T_UTF_32_FACE_WITH_OPEN_MOUTH_VOMITING 0x1F92E #define T_UTF_32_SHOCKED_FACE_WITH_EXPLODING_HEAD 0x1F92F #define T_UTF_32_PREGNANT_WOMAN 0x1F930 #define T_UTF_32_BREAST_FEEDING 0x1F931 #define T_UTF_32_PALMS_UP_TOGETHER 0x1F932 #define T_UTF_32_SELFIE 0x1F933 #define T_UTF_32_PRINCE 0x1F934 #define T_UTF_32_MAN_IN_TUXEDO 0x1F935 #define T_UTF_32_MOTHER_CHRISTMAS 0x1F936 #define T_UTF_32_SHRUG 0x1F937 #define T_UTF_32_PERSON_DOING_CARTWHEEL 0x1F938 #define T_UTF_32_JUGGLING 0x1F939 #define T_UTF_32_FENCER 0x1F93A #define T_UTF_32_MODERN_PENTATHLON 0x1F93B #define T_UTF_32_WRESTLERS 0x1F93C #define T_UTF_32_WATER_POLO 0x1F93D #define T_UTF_32_HANDBALL 0x1F93E #define T_UTF_32_WILTED_FLOWER 0x1F940 #define T_UTF_32_DRUM_WITH_DRUMSTICKS 0x1F941 #define T_UTF_32_CLINKING_GLASSES 0x1F942 #define T_UTF_32_TUMBLER_GLASS 0x1F943 #define T_UTF_32_SPOON 0x1F944 #define T_UTF_32_GOAL_NET 0x1F945 #define T_UTF_32_RIFLE 0x1F946 #define T_UTF_32_FIRST_PLACE_MEDAL 0x1F947 #define T_UTF_32_SECOND_PLACE_MEDAL 0x1F948 #define T_UTF_32_THIRD_PLACE_MEDAL 0x1F949 #define T_UTF_32_BOXING_GLOVE 0x1F94A #define T_UTF_32_MARTIAL_ARTS_UNIFORM 0x1F94B #define T_UTF_32_CURLING_STONE 0x1F94C #define T_UTF_32_CROISSANT 0x1F950 #define T_UTF_32_AVOCADO 0x1F951 #define T_UTF_32_CUCUMBER 0x1F952 #define T_UTF_32_BACON 0x1F953 #define T_UTF_32_POTATO 0x1F954 #define T_UTF_32_CARROT 0x1F955 #define T_UTF_32_BAGUETTE_BREAD 0x1F956 #define T_UTF_32_GREEN_SALAD 0x1F957 #define T_UTF_32_SHALLOW_PAN_OF_FOOD 0x1F958 #define T_UTF_32_STUFFED_FLATBREAD 0x1F959 #define T_UTF_32_EGG 0x1F95A #define T_UTF_32_GLASS_OF_MILK 0x1F95B #define T_UTF_32_PEANUTS 0x1F95C #define T_UTF_32_KIWIFRUIT 0x1F95D #define T_UTF_32_PANCAKES 0x1F95E #define T_UTF_32_DUMPLING 0x1F95F #define T_UTF_32_FORTUNE_COOKIE 0x1F960 #define T_UTF_32_TAKEOUT_BOX 0x1F961 #define T_UTF_32_CHOPSTICKS 0x1F962 #define T_UTF_32_BOWL_WITH_SPOON 0x1F963 #define T_UTF_32_CUP_WITH_STRAW 0x1F964 #define T_UTF_32_COCONUT 0x1F965 #define T_UTF_32_BROCCOLI 0x1F966 #define T_UTF_32_PIE 0x1F967 #define T_UTF_32_PRETZEL 0x1F968 #define T_UTF_32_CUT_OF_MEAT 0x1F969 #define T_UTF_32_SANDWICH 0x1F96A #define T_UTF_32_CANNED_FOOD 0x1F96B #define T_UTF_32_CRAB 0x1F980 #define T_UTF_32_LION_FACE 0x1F981 #define T_UTF_32_SCORPION 0x1F982 #define T_UTF_32_TURKEY 0x1F983 #define T_UTF_32_UNICORN_FACE 0x1F984 #define T_UTF_32_EAGLE 0x1F985 #define T_UTF_32_DUCK 0x1F986 #define T_UTF_32_BAT 0x1F987 #define T_UTF_32_SHARK 0x1F988 #define T_UTF_32_OWL 0x1F989 #define T_UTF_32_FOX_FACE 0x1F98A #define T_UTF_32_BUTTERFLY 0x1F98B #define T_UTF_32_DEER 0x1F98C #define T_UTF_32_GORILLA 0x1F98D #define T_UTF_32_LIZARD 0x1F98E #define T_UTF_32_RHINOCEROS 0x1F98F #define T_UTF_32_SHRIMP 0x1F990 #define T_UTF_32_SQUID 0x1F991 #define T_UTF_32_GIRAFFE_FACE 0x1F992 #define T_UTF_32_ZEBRA_FACE 0x1F993 #define T_UTF_32_HEDGEHOG 0x1F994 #define T_UTF_32_SAUROPOD 0x1F995 #define T_UTF_32_T_REX 0x1F996 #define T_UTF_32_CRICKET 0x1F997 #define T_UTF_32_CHEESE_WEDGE 0x1F9C0 #define T_UTF_32_FACE_WITH_MONOCLE 0x1F9D0 #define T_UTF_32_ADULT 0x1F9D1 #define T_UTF_32_CHILD 0x1F9D2 #define T_UTF_32_OLDER_ADULT 0x1F9D3 #define T_UTF_32_BEARDED_PERSON 0x1F9D4 #define T_UTF_32_PERSON_WITH_HEADSCARF 0x1F9D5 #define T_UTF_32_PERSON_IN_STEAMY_ROOM 0x1F9D6 #define T_UTF_32_PERSON_CLIMBING 0x1F9D7 #define T_UTF_32_PERSON_IN_LOTUS_POSITION 0x1F9D8 #define T_UTF_32_MAGE 0x1F9D9 #define T_UTF_32_FAIRY 0x1F9DA #define T_UTF_32_VAMPIRE 0x1F9DB #define T_UTF_32_MERPERSON 0x1F9DC #define T_UTF_32_ELF 0x1F9DD #define T_UTF_32_GENIE 0x1F9DE #define T_UTF_32_ZOMBIE 0x1F9DF #define T_UTF_32_BRAIN 0x1F9E0 #define T_UTF_32_ORANGE_HEART 0x1F9E1 #define T_UTF_32_BILLED_CAP 0x1F9E2 #define T_UTF_32_SCARF 0x1F9E3 #define T_UTF_32_GLOVES 0x1F9E4 #define T_UTF_32_COAT 0x1F9E5 #define T_UTF_32_SOCKS 0x1F9E6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F800 0x2F800 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F801 0x2F801 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F802 0x2F802 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F803 0x2F803 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F804 0x2F804 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F805 0x2F805 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F806 0x2F806 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F807 0x2F807 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F808 0x2F808 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F809 0x2F809 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F80A 0x2F80A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F80B 0x2F80B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F80C 0x2F80C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F80D 0x2F80D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F80E 0x2F80E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F80F 0x2F80F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F810 0x2F810 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F811 0x2F811 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F812 0x2F812 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F813 0x2F813 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F814 0x2F814 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F815 0x2F815 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F816 0x2F816 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F817 0x2F817 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F818 0x2F818 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F819 0x2F819 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F81A 0x2F81A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F81B 0x2F81B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F81C 0x2F81C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F81D 0x2F81D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F81E 0x2F81E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F81F 0x2F81F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F820 0x2F820 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F821 0x2F821 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F822 0x2F822 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F823 0x2F823 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F824 0x2F824 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F825 0x2F825 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F826 0x2F826 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F827 0x2F827 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F828 0x2F828 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F829 0x2F829 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F82A 0x2F82A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F82B 0x2F82B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F82C 0x2F82C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F82D 0x2F82D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F82E 0x2F82E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F82F 0x2F82F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F830 0x2F830 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F831 0x2F831 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F832 0x2F832 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F833 0x2F833 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F834 0x2F834 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F835 0x2F835 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F836 0x2F836 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F837 0x2F837 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F838 0x2F838 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F839 0x2F839 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F83A 0x2F83A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F83B 0x2F83B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F83C 0x2F83C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F83D 0x2F83D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F83E 0x2F83E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F83F 0x2F83F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F840 0x2F840 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F841 0x2F841 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F842 0x2F842 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F843 0x2F843 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F844 0x2F844 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F845 0x2F845 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F846 0x2F846 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F847 0x2F847 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F848 0x2F848 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F849 0x2F849 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F84A 0x2F84A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F84B 0x2F84B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F84C 0x2F84C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F84D 0x2F84D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F84E 0x2F84E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F84F 0x2F84F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F850 0x2F850 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F851 0x2F851 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F852 0x2F852 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F853 0x2F853 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F854 0x2F854 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F855 0x2F855 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F856 0x2F856 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F857 0x2F857 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F858 0x2F858 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F859 0x2F859 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F85A 0x2F85A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F85B 0x2F85B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F85C 0x2F85C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F85D 0x2F85D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F85E 0x2F85E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F85F 0x2F85F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F860 0x2F860 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F861 0x2F861 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F862 0x2F862 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F863 0x2F863 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F864 0x2F864 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F865 0x2F865 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F866 0x2F866 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F867 0x2F867 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F868 0x2F868 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F869 0x2F869 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F86A 0x2F86A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F86B 0x2F86B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F86C 0x2F86C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F86D 0x2F86D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F86E 0x2F86E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F86F 0x2F86F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F870 0x2F870 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F871 0x2F871 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F872 0x2F872 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F873 0x2F873 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F874 0x2F874 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F875 0x2F875 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F876 0x2F876 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F877 0x2F877 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F878 0x2F878 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F879 0x2F879 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F87A 0x2F87A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F87B 0x2F87B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F87C 0x2F87C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F87D 0x2F87D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F87E 0x2F87E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F87F 0x2F87F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F880 0x2F880 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F881 0x2F881 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F882 0x2F882 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F883 0x2F883 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F884 0x2F884 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F885 0x2F885 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F886 0x2F886 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F887 0x2F887 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F888 0x2F888 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F889 0x2F889 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F88A 0x2F88A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F88B 0x2F88B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F88C 0x2F88C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F88D 0x2F88D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F88E 0x2F88E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F88F 0x2F88F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F890 0x2F890 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F891 0x2F891 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F892 0x2F892 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F893 0x2F893 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F894 0x2F894 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F895 0x2F895 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F896 0x2F896 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F897 0x2F897 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F898 0x2F898 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F899 0x2F899 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F89A 0x2F89A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F89B 0x2F89B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F89C 0x2F89C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F89D 0x2F89D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F89E 0x2F89E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F89F 0x2F89F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8A0 0x2F8A0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8A1 0x2F8A1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8A2 0x2F8A2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8A3 0x2F8A3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8A4 0x2F8A4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8A5 0x2F8A5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8A6 0x2F8A6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8A7 0x2F8A7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8A8 0x2F8A8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8A9 0x2F8A9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8AA 0x2F8AA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8AB 0x2F8AB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8AC 0x2F8AC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8AD 0x2F8AD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8AE 0x2F8AE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8AF 0x2F8AF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8B0 0x2F8B0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8B1 0x2F8B1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8B2 0x2F8B2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8B3 0x2F8B3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8B4 0x2F8B4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8B5 0x2F8B5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8B6 0x2F8B6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8B7 0x2F8B7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8B8 0x2F8B8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8B9 0x2F8B9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8BA 0x2F8BA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8BB 0x2F8BB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8BC 0x2F8BC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8BD 0x2F8BD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8BE 0x2F8BE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8BF 0x2F8BF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8C0 0x2F8C0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8C1 0x2F8C1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8C2 0x2F8C2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8C3 0x2F8C3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8C4 0x2F8C4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8C5 0x2F8C5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8C6 0x2F8C6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8C7 0x2F8C7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8C8 0x2F8C8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8C9 0x2F8C9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8CA 0x2F8CA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8CB 0x2F8CB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8CC 0x2F8CC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8CD 0x2F8CD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8CE 0x2F8CE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8CF 0x2F8CF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8D0 0x2F8D0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8D1 0x2F8D1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8D2 0x2F8D2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8D3 0x2F8D3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8D4 0x2F8D4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8D5 0x2F8D5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8D6 0x2F8D6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8D7 0x2F8D7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8D8 0x2F8D8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8D9 0x2F8D9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8DA 0x2F8DA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8DB 0x2F8DB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8DC 0x2F8DC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8DD 0x2F8DD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8DE 0x2F8DE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8DF 0x2F8DF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8E0 0x2F8E0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8E1 0x2F8E1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8E2 0x2F8E2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8E3 0x2F8E3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8E4 0x2F8E4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8E5 0x2F8E5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8E6 0x2F8E6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8E7 0x2F8E7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8E8 0x2F8E8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8E9 0x2F8E9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8EA 0x2F8EA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8EB 0x2F8EB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8EC 0x2F8EC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8ED 0x2F8ED #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8EE 0x2F8EE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8EF 0x2F8EF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8F0 0x2F8F0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8F1 0x2F8F1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8F2 0x2F8F2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8F3 0x2F8F3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8F4 0x2F8F4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8F5 0x2F8F5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8F6 0x2F8F6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8F7 0x2F8F7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8F8 0x2F8F8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8F9 0x2F8F9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8FA 0x2F8FA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8FB 0x2F8FB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8FC 0x2F8FC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8FD 0x2F8FD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8FE 0x2F8FE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F8FF 0x2F8FF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F900 0x2F900 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F901 0x2F901 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F902 0x2F902 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F903 0x2F903 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F904 0x2F904 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F905 0x2F905 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F906 0x2F906 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F907 0x2F907 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F908 0x2F908 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F909 0x2F909 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F90A 0x2F90A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F90B 0x2F90B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F90C 0x2F90C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F90D 0x2F90D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F90E 0x2F90E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F90F 0x2F90F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F910 0x2F910 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F911 0x2F911 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F912 0x2F912 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F913 0x2F913 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F914 0x2F914 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F915 0x2F915 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F916 0x2F916 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F917 0x2F917 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F918 0x2F918 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F919 0x2F919 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F91A 0x2F91A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F91B 0x2F91B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F91C 0x2F91C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F91D 0x2F91D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F91E 0x2F91E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F91F 0x2F91F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F920 0x2F920 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F921 0x2F921 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F922 0x2F922 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F923 0x2F923 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F924 0x2F924 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F925 0x2F925 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F926 0x2F926 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F927 0x2F927 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F928 0x2F928 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F929 0x2F929 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F92A 0x2F92A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F92B 0x2F92B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F92C 0x2F92C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F92D 0x2F92D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F92E 0x2F92E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F92F 0x2F92F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F930 0x2F930 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F931 0x2F931 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F932 0x2F932 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F933 0x2F933 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F934 0x2F934 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F935 0x2F935 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F936 0x2F936 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F937 0x2F937 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F938 0x2F938 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F939 0x2F939 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F93A 0x2F93A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F93B 0x2F93B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F93C 0x2F93C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F93D 0x2F93D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F93E 0x2F93E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F93F 0x2F93F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F940 0x2F940 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F941 0x2F941 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F942 0x2F942 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F943 0x2F943 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F944 0x2F944 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F945 0x2F945 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F946 0x2F946 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F947 0x2F947 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F948 0x2F948 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F949 0x2F949 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F94A 0x2F94A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F94B 0x2F94B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F94C 0x2F94C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F94D 0x2F94D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F94E 0x2F94E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F94F 0x2F94F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F950 0x2F950 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F951 0x2F951 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F952 0x2F952 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F953 0x2F953 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F954 0x2F954 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F955 0x2F955 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F956 0x2F956 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F957 0x2F957 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F958 0x2F958 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F959 0x2F959 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F95A 0x2F95A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F95B 0x2F95B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F95C 0x2F95C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F95D 0x2F95D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F95E 0x2F95E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F95F 0x2F95F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F960 0x2F960 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F961 0x2F961 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F962 0x2F962 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F963 0x2F963 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F964 0x2F964 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F965 0x2F965 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F966 0x2F966 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F967 0x2F967 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F968 0x2F968 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F969 0x2F969 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F96A 0x2F96A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F96B 0x2F96B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F96C 0x2F96C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F96D 0x2F96D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F96E 0x2F96E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F96F 0x2F96F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F970 0x2F970 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F971 0x2F971 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F972 0x2F972 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F973 0x2F973 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F974 0x2F974 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F975 0x2F975 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F976 0x2F976 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F977 0x2F977 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F978 0x2F978 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F979 0x2F979 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F97A 0x2F97A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F97B 0x2F97B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F97C 0x2F97C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F97D 0x2F97D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F97E 0x2F97E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F97F 0x2F97F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F980 0x2F980 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F981 0x2F981 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F982 0x2F982 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F983 0x2F983 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F984 0x2F984 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F985 0x2F985 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F986 0x2F986 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F987 0x2F987 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F988 0x2F988 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F989 0x2F989 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F98A 0x2F98A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F98B 0x2F98B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F98C 0x2F98C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F98D 0x2F98D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F98E 0x2F98E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F98F 0x2F98F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F990 0x2F990 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F991 0x2F991 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F992 0x2F992 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F993 0x2F993 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F994 0x2F994 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F995 0x2F995 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F996 0x2F996 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F997 0x2F997 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F998 0x2F998 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F999 0x2F999 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F99A 0x2F99A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F99B 0x2F99B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F99C 0x2F99C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F99D 0x2F99D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F99E 0x2F99E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F99F 0x2F99F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9A0 0x2F9A0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9A1 0x2F9A1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9A2 0x2F9A2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9A3 0x2F9A3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9A4 0x2F9A4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9A5 0x2F9A5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9A6 0x2F9A6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9A7 0x2F9A7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9A8 0x2F9A8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9A9 0x2F9A9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9AA 0x2F9AA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9AB 0x2F9AB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9AC 0x2F9AC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9AD 0x2F9AD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9AE 0x2F9AE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9AF 0x2F9AF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9B0 0x2F9B0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9B1 0x2F9B1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9B2 0x2F9B2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9B3 0x2F9B3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9B4 0x2F9B4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9B5 0x2F9B5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9B6 0x2F9B6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9B7 0x2F9B7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9B8 0x2F9B8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9B9 0x2F9B9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9BA 0x2F9BA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9BB 0x2F9BB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9BC 0x2F9BC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9BD 0x2F9BD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9BE 0x2F9BE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9BF 0x2F9BF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9C0 0x2F9C0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9C1 0x2F9C1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9C2 0x2F9C2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9C3 0x2F9C3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9C4 0x2F9C4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9C5 0x2F9C5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9C6 0x2F9C6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9C7 0x2F9C7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9C8 0x2F9C8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9C9 0x2F9C9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9CA 0x2F9CA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9CB 0x2F9CB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9CC 0x2F9CC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9CD 0x2F9CD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9CE 0x2F9CE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9CF 0x2F9CF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9D0 0x2F9D0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9D1 0x2F9D1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9D2 0x2F9D2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9D3 0x2F9D3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9D4 0x2F9D4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9D5 0x2F9D5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9D6 0x2F9D6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9D7 0x2F9D7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9D8 0x2F9D8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9D9 0x2F9D9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9DA 0x2F9DA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9DB 0x2F9DB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9DC 0x2F9DC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9DD 0x2F9DD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9DE 0x2F9DE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9DF 0x2F9DF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9E0 0x2F9E0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9E1 0x2F9E1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9E2 0x2F9E2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9E3 0x2F9E3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9E4 0x2F9E4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9E5 0x2F9E5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9E6 0x2F9E6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9E7 0x2F9E7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9E8 0x2F9E8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9E9 0x2F9E9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9EA 0x2F9EA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9EB 0x2F9EB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9EC 0x2F9EC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9ED 0x2F9ED #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9EE 0x2F9EE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9EF 0x2F9EF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9F0 0x2F9F0 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9F1 0x2F9F1 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9F2 0x2F9F2 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9F3 0x2F9F3 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9F4 0x2F9F4 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9F5 0x2F9F5 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9F6 0x2F9F6 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9F7 0x2F9F7 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9F8 0x2F9F8 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9F9 0x2F9F9 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9FA 0x2F9FA #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9FB 0x2F9FB #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9FC 0x2F9FC #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9FD 0x2F9FD #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9FE 0x2F9FE #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2F9FF 0x2F9FF #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA00 0x2FA00 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA01 0x2FA01 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA02 0x2FA02 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA03 0x2FA03 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA04 0x2FA04 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA05 0x2FA05 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA06 0x2FA06 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA07 0x2FA07 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA08 0x2FA08 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA09 0x2FA09 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA0A 0x2FA0A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA0B 0x2FA0B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA0C 0x2FA0C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA0D 0x2FA0D #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA0E 0x2FA0E #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA0F 0x2FA0F #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA10 0x2FA10 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA11 0x2FA11 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA12 0x2FA12 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA13 0x2FA13 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA14 0x2FA14 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA15 0x2FA15 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA16 0x2FA16 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA17 0x2FA17 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA18 0x2FA18 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA19 0x2FA19 #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA1A 0x2FA1A #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA1B 0x2FA1B #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA1C 0x2FA1C #define T_UTF_32_CJK_COMPATIBILITY_IDEOGRAPH_2FA1D 0x2FA1D #define T_UTF_32_LANGUAGE_TAG 0xE0001 #define T_UTF_32_TAG_SPACE 0xE0020 #define T_UTF_32_TAG_EXCLAMATION_MARK 0xE0021 #define T_UTF_32_TAG_QUOTATION_MARK 0xE0022 #define T_UTF_32_TAG_NUMBER_SIGN 0xE0023 #define T_UTF_32_TAG_DOLLAR_SIGN 0xE0024 #define T_UTF_32_TAG_PERCENT_SIGN 0xE0025 #define T_UTF_32_TAG_AMPERSAND 0xE0026 #define T_UTF_32_TAG_APOSTROPHE 0xE0027 #define T_UTF_32_TAG_LEFT_PARENTHESIS 0xE0028 #define T_UTF_32_TAG_RIGHT_PARENTHESIS 0xE0029 #define T_UTF_32_TAG_ASTERISK 0xE002A #define T_UTF_32_TAG_PLUS_SIGN 0xE002B #define T_UTF_32_TAG_COMMA 0xE002C #define T_UTF_32_TAG_HYPHEN_MINUS 0xE002D #define T_UTF_32_TAG_FULL_STOP 0xE002E #define T_UTF_32_TAG_SOLIDUS 0xE002F #define T_UTF_32_TAG_DIGIT_ZERO 0xE0030 #define T_UTF_32_TAG_DIGIT_ONE 0xE0031 #define T_UTF_32_TAG_DIGIT_TWO 0xE0032 #define T_UTF_32_TAG_DIGIT_THREE 0xE0033 #define T_UTF_32_TAG_DIGIT_FOUR 0xE0034 #define T_UTF_32_TAG_DIGIT_FIVE 0xE0035 #define T_UTF_32_TAG_DIGIT_SIX 0xE0036 #define T_UTF_32_TAG_DIGIT_SEVEN 0xE0037 #define T_UTF_32_TAG_DIGIT_EIGHT 0xE0038 #define T_UTF_32_TAG_DIGIT_NINE 0xE0039 #define T_UTF_32_TAG_COLON 0xE003A #define T_UTF_32_TAG_SEMICOLON 0xE003B #define T_UTF_32_TAG_LESS_THAN_SIGN 0xE003C #define T_UTF_32_TAG_EQUALS_SIGN 0xE003D #define T_UTF_32_TAG_GREATER_THAN_SIGN 0xE003E #define T_UTF_32_TAG_QUESTION_MARK 0xE003F #define T_UTF_32_TAG_COMMERCIAL_AT 0xE0040 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_A 0xE0041 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_B 0xE0042 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_C 0xE0043 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_D 0xE0044 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_E 0xE0045 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_F 0xE0046 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_G 0xE0047 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_H 0xE0048 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_I 0xE0049 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_J 0xE004A #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_K 0xE004B #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_L 0xE004C #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_M 0xE004D #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_N 0xE004E #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_O 0xE004F #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_P 0xE0050 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_Q 0xE0051 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_R 0xE0052 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_S 0xE0053 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_T 0xE0054 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_U 0xE0055 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_V 0xE0056 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_W 0xE0057 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_X 0xE0058 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_Y 0xE0059 #define T_UTF_32_TAG_LATIN_CAPITAL_LETTER_Z 0xE005A #define T_UTF_32_TAG_LEFT_SQUARE_BRACKET 0xE005B #define T_UTF_32_TAG_REVERSE_SOLIDUS 0xE005C #define T_UTF_32_TAG_RIGHT_SQUARE_BRACKET 0xE005D #define T_UTF_32_TAG_CIRCUMFLEX_ACCENT 0xE005E #define T_UTF_32_TAG_LOW_LINE 0xE005F #define T_UTF_32_TAG_GRAVE_ACCENT 0xE0060 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_A 0xE0061 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_B 0xE0062 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_C 0xE0063 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_D 0xE0064 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_E 0xE0065 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_F 0xE0066 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_G 0xE0067 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_H 0xE0068 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_I 0xE0069 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_J 0xE006A #define T_UTF_32_TAG_LATIN_SMALL_LETTER_K 0xE006B #define T_UTF_32_TAG_LATIN_SMALL_LETTER_L 0xE006C #define T_UTF_32_TAG_LATIN_SMALL_LETTER_M 0xE006D #define T_UTF_32_TAG_LATIN_SMALL_LETTER_N 0xE006E #define T_UTF_32_TAG_LATIN_SMALL_LETTER_O 0xE006F #define T_UTF_32_TAG_LATIN_SMALL_LETTER_P 0xE0070 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_Q 0xE0071 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_R 0xE0072 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_S 0xE0073 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_T 0xE0074 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_U 0xE0075 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_V 0xE0076 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_W 0xE0077 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_X 0xE0078 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_Y 0xE0079 #define T_UTF_32_TAG_LATIN_SMALL_LETTER_Z 0xE007A #define T_UTF_32_TAG_LEFT_CURLY_BRACKET 0xE007B #define T_UTF_32_TAG_VERTICAL_LINE 0xE007C #define T_UTF_32_TAG_RIGHT_CURLY_BRACKET 0xE007D #define T_UTF_32_TAG_TILDE 0xE007E #define T_UTF_32_CANCEL_TAG 0xE007F #define T_UTF_32_VARIATION_SELECTOR_17 0xE0100 #define T_UTF_32_VARIATION_SELECTOR_18 0xE0101 #define T_UTF_32_VARIATION_SELECTOR_19 0xE0102 #define T_UTF_32_VARIATION_SELECTOR_20 0xE0103 #define T_UTF_32_VARIATION_SELECTOR_21 0xE0104 #define T_UTF_32_VARIATION_SELECTOR_22 0xE0105 #define T_UTF_32_VARIATION_SELECTOR_23 0xE0106 #define T_UTF_32_VARIATION_SELECTOR_24 0xE0107 #define T_UTF_32_VARIATION_SELECTOR_25 0xE0108 #define T_UTF_32_VARIATION_SELECTOR_26 0xE0109 #define T_UTF_32_VARIATION_SELECTOR_27 0xE010A #define T_UTF_32_VARIATION_SELECTOR_28 0xE010B #define T_UTF_32_VARIATION_SELECTOR_29 0xE010C #define T_UTF_32_VARIATION_SELECTOR_30 0xE010D #define T_UTF_32_VARIATION_SELECTOR_31 0xE010E #define T_UTF_32_VARIATION_SELECTOR_32 0xE010F #define T_UTF_32_VARIATION_SELECTOR_33 0xE0110 #define T_UTF_32_VARIATION_SELECTOR_34 0xE0111 #define T_UTF_32_VARIATION_SELECTOR_35 0xE0112 #define T_UTF_32_VARIATION_SELECTOR_36 0xE0113 #define T_UTF_32_VARIATION_SELECTOR_37 0xE0114 #define T_UTF_32_VARIATION_SELECTOR_38 0xE0115 #define T_UTF_32_VARIATION_SELECTOR_39 0xE0116 #define T_UTF_32_VARIATION_SELECTOR_40 0xE0117 #define T_UTF_32_VARIATION_SELECTOR_41 0xE0118 #define T_UTF_32_VARIATION_SELECTOR_42 0xE0119 #define T_UTF_32_VARIATION_SELECTOR_43 0xE011A #define T_UTF_32_VARIATION_SELECTOR_44 0xE011B #define T_UTF_32_VARIATION_SELECTOR_45 0xE011C #define T_UTF_32_VARIATION_SELECTOR_46 0xE011D #define T_UTF_32_VARIATION_SELECTOR_47 0xE011E #define T_UTF_32_VARIATION_SELECTOR_48 0xE011F #define T_UTF_32_VARIATION_SELECTOR_49 0xE0120 #define T_UTF_32_VARIATION_SELECTOR_50 0xE0121 #define T_UTF_32_VARIATION_SELECTOR_51 0xE0122 #define T_UTF_32_VARIATION_SELECTOR_52 0xE0123 #define T_UTF_32_VARIATION_SELECTOR_53 0xE0124 #define T_UTF_32_VARIATION_SELECTOR_54 0xE0125 #define T_UTF_32_VARIATION_SELECTOR_55 0xE0126 #define T_UTF_32_VARIATION_SELECTOR_56 0xE0127 #define T_UTF_32_VARIATION_SELECTOR_57 0xE0128 #define T_UTF_32_VARIATION_SELECTOR_58 0xE0129 #define T_UTF_32_VARIATION_SELECTOR_59 0xE012A #define T_UTF_32_VARIATION_SELECTOR_60 0xE012B #define T_UTF_32_VARIATION_SELECTOR_61 0xE012C #define T_UTF_32_VARIATION_SELECTOR_62 0xE012D #define T_UTF_32_VARIATION_SELECTOR_63 0xE012E #define T_UTF_32_VARIATION_SELECTOR_64 0xE012F #define T_UTF_32_VARIATION_SELECTOR_65 0xE0130 #define T_UTF_32_VARIATION_SELECTOR_66 0xE0131 #define T_UTF_32_VARIATION_SELECTOR_67 0xE0132 #define T_UTF_32_VARIATION_SELECTOR_68 0xE0133 #define T_UTF_32_VARIATION_SELECTOR_69 0xE0134 #define T_UTF_32_VARIATION_SELECTOR_70 0xE0135 #define T_UTF_32_VARIATION_SELECTOR_71 0xE0136 #define T_UTF_32_VARIATION_SELECTOR_72 0xE0137 #define T_UTF_32_VARIATION_SELECTOR_73 0xE0138 #define T_UTF_32_VARIATION_SELECTOR_74 0xE0139 #define T_UTF_32_VARIATION_SELECTOR_75 0xE013A #define T_UTF_32_VARIATION_SELECTOR_76 0xE013B #define T_UTF_32_VARIATION_SELECTOR_77 0xE013C #define T_UTF_32_VARIATION_SELECTOR_78 0xE013D #define T_UTF_32_VARIATION_SELECTOR_79 0xE013E #define T_UTF_32_VARIATION_SELECTOR_80 0xE013F #define T_UTF_32_VARIATION_SELECTOR_81 0xE0140 #define T_UTF_32_VARIATION_SELECTOR_82 0xE0141 #define T_UTF_32_VARIATION_SELECTOR_83 0xE0142 #define T_UTF_32_VARIATION_SELECTOR_84 0xE0143 #define T_UTF_32_VARIATION_SELECTOR_85 0xE0144 #define T_UTF_32_VARIATION_SELECTOR_86 0xE0145 #define T_UTF_32_VARIATION_SELECTOR_87 0xE0146 #define T_UTF_32_VARIATION_SELECTOR_88 0xE0147 #define T_UTF_32_VARIATION_SELECTOR_89 0xE0148 #define T_UTF_32_VARIATION_SELECTOR_90 0xE0149 #define T_UTF_32_VARIATION_SELECTOR_91 0xE014A #define T_UTF_32_VARIATION_SELECTOR_92 0xE014B #define T_UTF_32_VARIATION_SELECTOR_93 0xE014C #define T_UTF_32_VARIATION_SELECTOR_94 0xE014D #define T_UTF_32_VARIATION_SELECTOR_95 0xE014E #define T_UTF_32_VARIATION_SELECTOR_96 0xE014F #define T_UTF_32_VARIATION_SELECTOR_97 0xE0150 #define T_UTF_32_VARIATION_SELECTOR_98 0xE0151 #define T_UTF_32_VARIATION_SELECTOR_99 0xE0152 #define T_UTF_32_VARIATION_SELECTOR_100 0xE0153 #define T_UTF_32_VARIATION_SELECTOR_101 0xE0154 #define T_UTF_32_VARIATION_SELECTOR_102 0xE0155 #define T_UTF_32_VARIATION_SELECTOR_103 0xE0156 #define T_UTF_32_VARIATION_SELECTOR_104 0xE0157 #define T_UTF_32_VARIATION_SELECTOR_105 0xE0158 #define T_UTF_32_VARIATION_SELECTOR_106 0xE0159 #define T_UTF_32_VARIATION_SELECTOR_107 0xE015A #define T_UTF_32_VARIATION_SELECTOR_108 0xE015B #define T_UTF_32_VARIATION_SELECTOR_109 0xE015C #define T_UTF_32_VARIATION_SELECTOR_110 0xE015D #define T_UTF_32_VARIATION_SELECTOR_111 0xE015E #define T_UTF_32_VARIATION_SELECTOR_112 0xE015F #define T_UTF_32_VARIATION_SELECTOR_113 0xE0160 #define T_UTF_32_VARIATION_SELECTOR_114 0xE0161 #define T_UTF_32_VARIATION_SELECTOR_115 0xE0162 #define T_UTF_32_VARIATION_SELECTOR_116 0xE0163 #define T_UTF_32_VARIATION_SELECTOR_117 0xE0164 #define T_UTF_32_VARIATION_SELECTOR_118 0xE0165 #define T_UTF_32_VARIATION_SELECTOR_119 0xE0166 #define T_UTF_32_VARIATION_SELECTOR_120 0xE0167 #define T_UTF_32_VARIATION_SELECTOR_121 0xE0168 #define T_UTF_32_VARIATION_SELECTOR_122 0xE0169 #define T_UTF_32_VARIATION_SELECTOR_123 0xE016A #define T_UTF_32_VARIATION_SELECTOR_124 0xE016B #define T_UTF_32_VARIATION_SELECTOR_125 0xE016C #define T_UTF_32_VARIATION_SELECTOR_126 0xE016D #define T_UTF_32_VARIATION_SELECTOR_127 0xE016E #define T_UTF_32_VARIATION_SELECTOR_128 0xE016F #define T_UTF_32_VARIATION_SELECTOR_129 0xE0170 #define T_UTF_32_VARIATION_SELECTOR_130 0xE0171 #define T_UTF_32_VARIATION_SELECTOR_131 0xE0172 #define T_UTF_32_VARIATION_SELECTOR_132 0xE0173 #define T_UTF_32_VARIATION_SELECTOR_133 0xE0174 #define T_UTF_32_VARIATION_SELECTOR_134 0xE0175 #define T_UTF_32_VARIATION_SELECTOR_135 0xE0176 #define T_UTF_32_VARIATION_SELECTOR_136 0xE0177 #define T_UTF_32_VARIATION_SELECTOR_137 0xE0178 #define T_UTF_32_VARIATION_SELECTOR_138 0xE0179 #define T_UTF_32_VARIATION_SELECTOR_139 0xE017A #define T_UTF_32_VARIATION_SELECTOR_140 0xE017B #define T_UTF_32_VARIATION_SELECTOR_141 0xE017C #define T_UTF_32_VARIATION_SELECTOR_142 0xE017D #define T_UTF_32_VARIATION_SELECTOR_143 0xE017E #define T_UTF_32_VARIATION_SELECTOR_144 0xE017F #define T_UTF_32_VARIATION_SELECTOR_145 0xE0180 #define T_UTF_32_VARIATION_SELECTOR_146 0xE0181 #define T_UTF_32_VARIATION_SELECTOR_147 0xE0182 #define T_UTF_32_VARIATION_SELECTOR_148 0xE0183 #define T_UTF_32_VARIATION_SELECTOR_149 0xE0184 #define T_UTF_32_VARIATION_SELECTOR_150 0xE0185 #define T_UTF_32_VARIATION_SELECTOR_151 0xE0186 #define T_UTF_32_VARIATION_SELECTOR_152 0xE0187 #define T_UTF_32_VARIATION_SELECTOR_153 0xE0188 #define T_UTF_32_VARIATION_SELECTOR_154 0xE0189 #define T_UTF_32_VARIATION_SELECTOR_155 0xE018A #define T_UTF_32_VARIATION_SELECTOR_156 0xE018B #define T_UTF_32_VARIATION_SELECTOR_157 0xE018C #define T_UTF_32_VARIATION_SELECTOR_158 0xE018D #define T_UTF_32_VARIATION_SELECTOR_159 0xE018E #define T_UTF_32_VARIATION_SELECTOR_160 0xE018F #define T_UTF_32_VARIATION_SELECTOR_161 0xE0190 #define T_UTF_32_VARIATION_SELECTOR_162 0xE0191 #define T_UTF_32_VARIATION_SELECTOR_163 0xE0192 #define T_UTF_32_VARIATION_SELECTOR_164 0xE0193 #define T_UTF_32_VARIATION_SELECTOR_165 0xE0194 #define T_UTF_32_VARIATION_SELECTOR_166 0xE0195 #define T_UTF_32_VARIATION_SELECTOR_167 0xE0196 #define T_UTF_32_VARIATION_SELECTOR_168 0xE0197 #define T_UTF_32_VARIATION_SELECTOR_169 0xE0198 #define T_UTF_32_VARIATION_SELECTOR_170 0xE0199 #define T_UTF_32_VARIATION_SELECTOR_171 0xE019A #define T_UTF_32_VARIATION_SELECTOR_172 0xE019B #define T_UTF_32_VARIATION_SELECTOR_173 0xE019C #define T_UTF_32_VARIATION_SELECTOR_174 0xE019D #define T_UTF_32_VARIATION_SELECTOR_175 0xE019E #define T_UTF_32_VARIATION_SELECTOR_176 0xE019F #define T_UTF_32_VARIATION_SELECTOR_177 0xE01A0 #define T_UTF_32_VARIATION_SELECTOR_178 0xE01A1 #define T_UTF_32_VARIATION_SELECTOR_179 0xE01A2 #define T_UTF_32_VARIATION_SELECTOR_180 0xE01A3 #define T_UTF_32_VARIATION_SELECTOR_181 0xE01A4 #define T_UTF_32_VARIATION_SELECTOR_182 0xE01A5 #define T_UTF_32_VARIATION_SELECTOR_183 0xE01A6 #define T_UTF_32_VARIATION_SELECTOR_184 0xE01A7 #define T_UTF_32_VARIATION_SELECTOR_185 0xE01A8 #define T_UTF_32_VARIATION_SELECTOR_186 0xE01A9 #define T_UTF_32_VARIATION_SELECTOR_187 0xE01AA #define T_UTF_32_VARIATION_SELECTOR_188 0xE01AB #define T_UTF_32_VARIATION_SELECTOR_189 0xE01AC #define T_UTF_32_VARIATION_SELECTOR_190 0xE01AD #define T_UTF_32_VARIATION_SELECTOR_191 0xE01AE #define T_UTF_32_VARIATION_SELECTOR_192 0xE01AF #define T_UTF_32_VARIATION_SELECTOR_193 0xE01B0 #define T_UTF_32_VARIATION_SELECTOR_194 0xE01B1 #define T_UTF_32_VARIATION_SELECTOR_195 0xE01B2 #define T_UTF_32_VARIATION_SELECTOR_196 0xE01B3 #define T_UTF_32_VARIATION_SELECTOR_197 0xE01B4 #define T_UTF_32_VARIATION_SELECTOR_198 0xE01B5 #define T_UTF_32_VARIATION_SELECTOR_199 0xE01B6 #define T_UTF_32_VARIATION_SELECTOR_200 0xE01B7 #define T_UTF_32_VARIATION_SELECTOR_201 0xE01B8 #define T_UTF_32_VARIATION_SELECTOR_202 0xE01B9 #define T_UTF_32_VARIATION_SELECTOR_203 0xE01BA #define T_UTF_32_VARIATION_SELECTOR_204 0xE01BB #define T_UTF_32_VARIATION_SELECTOR_205 0xE01BC #define T_UTF_32_VARIATION_SELECTOR_206 0xE01BD #define T_UTF_32_VARIATION_SELECTOR_207 0xE01BE #define T_UTF_32_VARIATION_SELECTOR_208 0xE01BF #define T_UTF_32_VARIATION_SELECTOR_209 0xE01C0 #define T_UTF_32_VARIATION_SELECTOR_210 0xE01C1 #define T_UTF_32_VARIATION_SELECTOR_211 0xE01C2 #define T_UTF_32_VARIATION_SELECTOR_212 0xE01C3 #define T_UTF_32_VARIATION_SELECTOR_213 0xE01C4 #define T_UTF_32_VARIATION_SELECTOR_214 0xE01C5 #define T_UTF_32_VARIATION_SELECTOR_215 0xE01C6 #define T_UTF_32_VARIATION_SELECTOR_216 0xE01C7 #define T_UTF_32_VARIATION_SELECTOR_217 0xE01C8 #define T_UTF_32_VARIATION_SELECTOR_218 0xE01C9 #define T_UTF_32_VARIATION_SELECTOR_219 0xE01CA #define T_UTF_32_VARIATION_SELECTOR_220 0xE01CB #define T_UTF_32_VARIATION_SELECTOR_221 0xE01CC #define T_UTF_32_VARIATION_SELECTOR_222 0xE01CD #define T_UTF_32_VARIATION_SELECTOR_223 0xE01CE #define T_UTF_32_VARIATION_SELECTOR_224 0xE01CF #define T_UTF_32_VARIATION_SELECTOR_225 0xE01D0 #define T_UTF_32_VARIATION_SELECTOR_226 0xE01D1 #define T_UTF_32_VARIATION_SELECTOR_227 0xE01D2 #define T_UTF_32_VARIATION_SELECTOR_228 0xE01D3 #define T_UTF_32_VARIATION_SELECTOR_229 0xE01D4 #define T_UTF_32_VARIATION_SELECTOR_230 0xE01D5 #define T_UTF_32_VARIATION_SELECTOR_231 0xE01D6 #define T_UTF_32_VARIATION_SELECTOR_232 0xE01D7 #define T_UTF_32_VARIATION_SELECTOR_233 0xE01D8 #define T_UTF_32_VARIATION_SELECTOR_234 0xE01D9 #define T_UTF_32_VARIATION_SELECTOR_235 0xE01DA #define T_UTF_32_VARIATION_SELECTOR_236 0xE01DB #define T_UTF_32_VARIATION_SELECTOR_237 0xE01DC #define T_UTF_32_VARIATION_SELECTOR_238 0xE01DD #define T_UTF_32_VARIATION_SELECTOR_239 0xE01DE #define T_UTF_32_VARIATION_SELECTOR_240 0xE01DF #define T_UTF_32_VARIATION_SELECTOR_241 0xE01E0 #define T_UTF_32_VARIATION_SELECTOR_242 0xE01E1 #define T_UTF_32_VARIATION_SELECTOR_243 0xE01E2 #define T_UTF_32_VARIATION_SELECTOR_244 0xE01E3 #define T_UTF_32_VARIATION_SELECTOR_245 0xE01E4 #define T_UTF_32_VARIATION_SELECTOR_246 0xE01E5 #define T_UTF_32_VARIATION_SELECTOR_247 0xE01E6 #define T_UTF_32_VARIATION_SELECTOR_248 0xE01E7 #define T_UTF_32_VARIATION_SELECTOR_249 0xE01E8 #define T_UTF_32_VARIATION_SELECTOR_250 0xE01E9 #define T_UTF_32_VARIATION_SELECTOR_251 0xE01EA #define T_UTF_32_VARIATION_SELECTOR_252 0xE01EB #define T_UTF_32_VARIATION_SELECTOR_253 0xE01EC #define T_UTF_32_VARIATION_SELECTOR_254 0xE01ED #define T_UTF_32_VARIATION_SELECTOR_255 0xE01EE #define T_UTF_32_VARIATION_SELECTOR_256 0xE01EF #endif /* TUTF_UTF_32_H */ ������������������������������������������������������������������������twin-0.9.0/include/Tutf/utf_32_aux.h����������������������������������������������������������������0000664�0000000�0000000�00000025272�13775351206�0017217�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * auxiliary definitions for <Tutf/utf_16.h> */ #ifndef TUTF_UTF_32_AUX_H #define TUTF_UTF_32_AUX_H #define T_UTF_32_UNDEFINED_0000 0x0000 #define T_UTF_32_UNDEFINED_0001 0x0001 #define T_UTF_32_UNDEFINED_0002 0x0002 #define T_UTF_32_UNDEFINED_0003 0x0003 #define T_UTF_32_UNDEFINED_0004 0x0004 #define T_UTF_32_UNDEFINED_0005 0x0005 #define T_UTF_32_UNDEFINED_0006 0x0006 #define T_UTF_32_UNDEFINED_0007 0x0007 #define T_UTF_32_UNDEFINED_0008 0x0008 #define T_UTF_32_UNDEFINED_0009 0x0009 #define T_UTF_32_UNDEFINED_000A 0x000A #define T_UTF_32_UNDEFINED_000B 0x000B #define T_UTF_32_UNDEFINED_000C 0x000C #define T_UTF_32_UNDEFINED_000D 0x000D #define T_UTF_32_UNDEFINED_000E 0x000E #define T_UTF_32_UNDEFINED_000F 0x000F #define T_UTF_32_UNDEFINED_0010 0x0010 #define T_UTF_32_UNDEFINED_0011 0x0011 #define T_UTF_32_UNDEFINED_0012 0x0012 #define T_UTF_32_UNDEFINED_0013 0x0013 #define T_UTF_32_UNDEFINED_0014 0x0014 #define T_UTF_32_UNDEFINED_0015 0x0015 #define T_UTF_32_UNDEFINED_0016 0x0016 #define T_UTF_32_UNDEFINED_0017 0x0017 #define T_UTF_32_UNDEFINED_0018 0x0018 #define T_UTF_32_UNDEFINED_0019 0x0019 #define T_UTF_32_UNDEFINED_001A 0x001A #define T_UTF_32_UNDEFINED_001B 0x001B #define T_UTF_32_UNDEFINED_001C 0x001C #define T_UTF_32_UNDEFINED_001D 0x001D #define T_UTF_32_UNDEFINED_001E 0x001E #define T_UTF_32_UNDEFINED_001F 0x001F #define T_UTF_32_UNDEFINED_0020 0x0020 #define T_UTF_32_UNDEFINED_0021 0x0021 #define T_UTF_32_UNDEFINED_0022 0x0022 #define T_UTF_32_UNDEFINED_0023 0x0023 #define T_UTF_32_UNDEFINED_0024 0x0024 #define T_UTF_32_UNDEFINED_0025 0x0025 #define T_UTF_32_UNDEFINED_0026 0x0026 #define T_UTF_32_UNDEFINED_0027 0x0027 #define T_UTF_32_UNDEFINED_0028 0x0028 #define T_UTF_32_UNDEFINED_0029 0x0029 #define T_UTF_32_UNDEFINED_002A 0x002A #define T_UTF_32_UNDEFINED_002B 0x002B #define T_UTF_32_UNDEFINED_002C 0x002C #define T_UTF_32_UNDEFINED_002D 0x002D #define T_UTF_32_UNDEFINED_002E 0x002E #define T_UTF_32_UNDEFINED_002F 0x002F #define T_UTF_32_UNDEFINED_0030 0x0030 #define T_UTF_32_UNDEFINED_0031 0x0031 #define T_UTF_32_UNDEFINED_0032 0x0032 #define T_UTF_32_UNDEFINED_0033 0x0033 #define T_UTF_32_UNDEFINED_0034 0x0034 #define T_UTF_32_UNDEFINED_0035 0x0035 #define T_UTF_32_UNDEFINED_0036 0x0036 #define T_UTF_32_UNDEFINED_0037 0x0037 #define T_UTF_32_UNDEFINED_0038 0x0038 #define T_UTF_32_UNDEFINED_0039 0x0039 #define T_UTF_32_UNDEFINED_003A 0x003A #define T_UTF_32_UNDEFINED_003B 0x003B #define T_UTF_32_UNDEFINED_003C 0x003C #define T_UTF_32_UNDEFINED_003D 0x003D #define T_UTF_32_UNDEFINED_003E 0x003E #define T_UTF_32_UNDEFINED_003F 0x003F #define T_UTF_32_UNDEFINED_0040 0x0040 #define T_UTF_32_UNDEFINED_0041 0x0041 #define T_UTF_32_UNDEFINED_0042 0x0042 #define T_UTF_32_UNDEFINED_0043 0x0043 #define T_UTF_32_UNDEFINED_0044 0x0044 #define T_UTF_32_UNDEFINED_0045 0x0045 #define T_UTF_32_UNDEFINED_0046 0x0046 #define T_UTF_32_UNDEFINED_0047 0x0047 #define T_UTF_32_UNDEFINED_0048 0x0048 #define T_UTF_32_UNDEFINED_0049 0x0049 #define T_UTF_32_UNDEFINED_004A 0x004A #define T_UTF_32_UNDEFINED_004B 0x004B #define T_UTF_32_UNDEFINED_004C 0x004C #define T_UTF_32_UNDEFINED_004D 0x004D #define T_UTF_32_UNDEFINED_004E 0x004E #define T_UTF_32_UNDEFINED_004F 0x004F #define T_UTF_32_UNDEFINED_0050 0x0050 #define T_UTF_32_UNDEFINED_0051 0x0051 #define T_UTF_32_UNDEFINED_0052 0x0052 #define T_UTF_32_UNDEFINED_0053 0x0053 #define T_UTF_32_UNDEFINED_0054 0x0054 #define T_UTF_32_UNDEFINED_0055 0x0055 #define T_UTF_32_UNDEFINED_0056 0x0056 #define T_UTF_32_UNDEFINED_0057 0x0057 #define T_UTF_32_UNDEFINED_0058 0x0058 #define T_UTF_32_UNDEFINED_0059 0x0059 #define T_UTF_32_UNDEFINED_005A 0x005A #define T_UTF_32_UNDEFINED_005B 0x005B #define T_UTF_32_UNDEFINED_005C 0x005C #define T_UTF_32_UNDEFINED_005D 0x005D #define T_UTF_32_UNDEFINED_005E 0x005E #define T_UTF_32_UNDEFINED_005F 0x005F #define T_UTF_32_UNDEFINED_0060 0x0060 #define T_UTF_32_UNDEFINED_0061 0x0061 #define T_UTF_32_UNDEFINED_0062 0x0062 #define T_UTF_32_UNDEFINED_0063 0x0063 #define T_UTF_32_UNDEFINED_0064 0x0064 #define T_UTF_32_UNDEFINED_0065 0x0065 #define T_UTF_32_UNDEFINED_0066 0x0066 #define T_UTF_32_UNDEFINED_0067 0x0067 #define T_UTF_32_UNDEFINED_0068 0x0068 #define T_UTF_32_UNDEFINED_0069 0x0069 #define T_UTF_32_UNDEFINED_006A 0x006A #define T_UTF_32_UNDEFINED_006B 0x006B #define T_UTF_32_UNDEFINED_006C 0x006C #define T_UTF_32_UNDEFINED_006D 0x006D #define T_UTF_32_UNDEFINED_006E 0x006E #define T_UTF_32_UNDEFINED_006F 0x006F #define T_UTF_32_UNDEFINED_0070 0x0070 #define T_UTF_32_UNDEFINED_0071 0x0071 #define T_UTF_32_UNDEFINED_0072 0x0072 #define T_UTF_32_UNDEFINED_0073 0x0073 #define T_UTF_32_UNDEFINED_0074 0x0074 #define T_UTF_32_UNDEFINED_0075 0x0075 #define T_UTF_32_UNDEFINED_0076 0x0076 #define T_UTF_32_UNDEFINED_0077 0x0077 #define T_UTF_32_UNDEFINED_0078 0x0078 #define T_UTF_32_UNDEFINED_0079 0x0079 #define T_UTF_32_UNDEFINED_007A 0x007A #define T_UTF_32_UNDEFINED_007B 0x007B #define T_UTF_32_UNDEFINED_007C 0x007C #define T_UTF_32_UNDEFINED_007D 0x007D #define T_UTF_32_UNDEFINED_007E 0x007E #define T_UTF_32_UNDEFINED_007F 0x007F #define T_UTF_32_UNDEFINED_0080 0x0080 #define T_UTF_32_UNDEFINED_0081 0x0081 #define T_UTF_32_UNDEFINED_0082 0x0082 #define T_UTF_32_UNDEFINED_0083 0x0083 #define T_UTF_32_UNDEFINED_0084 0x0084 #define T_UTF_32_UNDEFINED_0085 0x0085 #define T_UTF_32_UNDEFINED_0086 0x0086 #define T_UTF_32_UNDEFINED_0087 0x0087 #define T_UTF_32_UNDEFINED_0088 0x0088 #define T_UTF_32_UNDEFINED_0089 0x0089 #define T_UTF_32_UNDEFINED_008A 0x008A #define T_UTF_32_UNDEFINED_008B 0x008B #define T_UTF_32_UNDEFINED_008C 0x008C #define T_UTF_32_UNDEFINED_008D 0x008D #define T_UTF_32_UNDEFINED_008E 0x008E #define T_UTF_32_UNDEFINED_008F 0x008F #define T_UTF_32_UNDEFINED_0090 0x0090 #define T_UTF_32_UNDEFINED_0091 0x0091 #define T_UTF_32_UNDEFINED_0092 0x0092 #define T_UTF_32_UNDEFINED_0093 0x0093 #define T_UTF_32_UNDEFINED_0094 0x0094 #define T_UTF_32_UNDEFINED_0095 0x0095 #define T_UTF_32_UNDEFINED_0096 0x0096 #define T_UTF_32_UNDEFINED_0097 0x0097 #define T_UTF_32_UNDEFINED_0098 0x0098 #define T_UTF_32_UNDEFINED_0099 0x0099 #define T_UTF_32_UNDEFINED_009A 0x009A #define T_UTF_32_UNDEFINED_009B 0x009B #define T_UTF_32_UNDEFINED_009C 0x009C #define T_UTF_32_UNDEFINED_009D 0x009D #define T_UTF_32_UNDEFINED_009E 0x009E #define T_UTF_32_UNDEFINED_009F 0x009F #define T_UTF_32_UNDEFINED_00A0 0x00A0 #define T_UTF_32_UNDEFINED_00A1 0x00A1 #define T_UTF_32_UNDEFINED_00A2 0x00A2 #define T_UTF_32_UNDEFINED_00A3 0x00A3 #define T_UTF_32_UNDEFINED_00A4 0x00A4 #define T_UTF_32_UNDEFINED_00A5 0x00A5 #define T_UTF_32_UNDEFINED_00A6 0x00A6 #define T_UTF_32_UNDEFINED_00A7 0x00A7 #define T_UTF_32_UNDEFINED_00A8 0x00A8 #define T_UTF_32_UNDEFINED_00A9 0x00A9 #define T_UTF_32_UNDEFINED_00AA 0x00AA #define T_UTF_32_UNDEFINED_00AB 0x00AB #define T_UTF_32_UNDEFINED_00AC 0x00AC #define T_UTF_32_UNDEFINED_00AD 0x00AD #define T_UTF_32_UNDEFINED_00AE 0x00AE #define T_UTF_32_UNDEFINED_00AF 0x00AF #define T_UTF_32_UNDEFINED_00B0 0x00B0 #define T_UTF_32_UNDEFINED_00B1 0x00B1 #define T_UTF_32_UNDEFINED_00B2 0x00B2 #define T_UTF_32_UNDEFINED_00B3 0x00B3 #define T_UTF_32_UNDEFINED_00B4 0x00B4 #define T_UTF_32_UNDEFINED_00B5 0x00B5 #define T_UTF_32_UNDEFINED_00B6 0x00B6 #define T_UTF_32_UNDEFINED_00B7 0x00B7 #define T_UTF_32_UNDEFINED_00B8 0x00B8 #define T_UTF_32_UNDEFINED_00B9 0x00B9 #define T_UTF_32_UNDEFINED_00BA 0x00BA #define T_UTF_32_UNDEFINED_00BB 0x00BB #define T_UTF_32_UNDEFINED_00BC 0x00BC #define T_UTF_32_UNDEFINED_00BD 0x00BD #define T_UTF_32_UNDEFINED_00BE 0x00BE #define T_UTF_32_UNDEFINED_00BF 0x00BF #define T_UTF_32_UNDEFINED_00C0 0x00C0 #define T_UTF_32_UNDEFINED_00C1 0x00C1 #define T_UTF_32_UNDEFINED_00C2 0x00C2 #define T_UTF_32_UNDEFINED_00C3 0x00C3 #define T_UTF_32_UNDEFINED_00C4 0x00C4 #define T_UTF_32_UNDEFINED_00C5 0x00C5 #define T_UTF_32_UNDEFINED_00C6 0x00C6 #define T_UTF_32_UNDEFINED_00C7 0x00C7 #define T_UTF_32_UNDEFINED_00C8 0x00C8 #define T_UTF_32_UNDEFINED_00C9 0x00C9 #define T_UTF_32_UNDEFINED_00CA 0x00CA #define T_UTF_32_UNDEFINED_00CB 0x00CB #define T_UTF_32_UNDEFINED_00CC 0x00CC #define T_UTF_32_UNDEFINED_00CD 0x00CD #define T_UTF_32_UNDEFINED_00CE 0x00CE #define T_UTF_32_UNDEFINED_00CF 0x00CF #define T_UTF_32_UNDEFINED_00D0 0x00D0 #define T_UTF_32_UNDEFINED_00D1 0x00D1 #define T_UTF_32_UNDEFINED_00D2 0x00D2 #define T_UTF_32_UNDEFINED_00D3 0x00D3 #define T_UTF_32_UNDEFINED_00D4 0x00D4 #define T_UTF_32_UNDEFINED_00D5 0x00D5 #define T_UTF_32_UNDEFINED_00D6 0x00D6 #define T_UTF_32_UNDEFINED_00D7 0x00D7 #define T_UTF_32_UNDEFINED_00D8 0x00D8 #define T_UTF_32_UNDEFINED_00D9 0x00D9 #define T_UTF_32_UNDEFINED_00DA 0x00DA #define T_UTF_32_UNDEFINED_00DB 0x00DB #define T_UTF_32_UNDEFINED_00DC 0x00DC #define T_UTF_32_UNDEFINED_00DD 0x00DD #define T_UTF_32_UNDEFINED_00DE 0x00DE #define T_UTF_32_UNDEFINED_00DF 0x00DF #define T_UTF_32_UNDEFINED_00E0 0x00E0 #define T_UTF_32_UNDEFINED_00E1 0x00E1 #define T_UTF_32_UNDEFINED_00E2 0x00E2 #define T_UTF_32_UNDEFINED_00E3 0x00E3 #define T_UTF_32_UNDEFINED_00E4 0x00E4 #define T_UTF_32_UNDEFINED_00E5 0x00E5 #define T_UTF_32_UNDEFINED_00E6 0x00E6 #define T_UTF_32_UNDEFINED_00E7 0x00E7 #define T_UTF_32_UNDEFINED_00E8 0x00E8 #define T_UTF_32_UNDEFINED_00E9 0x00E9 #define T_UTF_32_UNDEFINED_00EA 0x00EA #define T_UTF_32_UNDEFINED_00EB 0x00EB #define T_UTF_32_UNDEFINED_00EC 0x00EC #define T_UTF_32_UNDEFINED_00ED 0x00ED #define T_UTF_32_UNDEFINED_00EE 0x00EE #define T_UTF_32_UNDEFINED_00EF 0x00EF #define T_UTF_32_UNDEFINED_00F0 0x00F0 #define T_UTF_32_UNDEFINED_00F1 0x00F1 #define T_UTF_32_UNDEFINED_00F2 0x00F2 #define T_UTF_32_UNDEFINED_00F3 0x00F3 #define T_UTF_32_UNDEFINED_00F4 0x00F4 #define T_UTF_32_UNDEFINED_00F5 0x00F5 #define T_UTF_32_UNDEFINED_00F6 0x00F6 #define T_UTF_32_UNDEFINED_00F7 0x00F7 #define T_UTF_32_UNDEFINED_00F8 0x00F8 #define T_UTF_32_UNDEFINED_00F9 0x00F9 #define T_UTF_32_UNDEFINED_00FA 0x00FA #define T_UTF_32_UNDEFINED_00FB 0x00FB #define T_UTF_32_UNDEFINED_00FC 0x00FC #define T_UTF_32_UNDEFINED_00FD 0x00FD #define T_UTF_32_UNDEFINED_00FE 0x00FE #define T_UTF_32_UNDEFINED_00FF 0x00FF #define T_UTF_32_CJK_Ideograph_Extension_A_First 0x3400 #define T_UTF_32_CJK_Ideograph_Extension_A_Last 0x4DB5 #define T_UTF_32_CJK_Ideograph_First 0x4E00 #define T_UTF_32_CJK_Ideograph_Last 0x9FA5 #define T_UTF_32_Hangul_Syllable_First 0xAC00 #define T_UTF_32_Hangul_Syllable_Last 0xD7A3 #define T_UTF_32_Non_Private_Use_High_Surrogate_First 0xD800 #define T_UTF_32_Non_Private_Use_High_Surrogate_Last 0xDB7F #define T_UTF_32_Private_Use_High_Surrogate_First 0xDB80 #define T_UTF_32_Private_Use_High_Surrogate_Last 0xDBFF #define T_UTF_32_Low_Surrogate_First 0xDC00 #define T_UTF_32_Low_Surrogate_Last 0xDFFF #define T_UTF_32_Private_Use_First 0xE000 #define T_UTF_32_Private_Use_Last 0xF8FF #define T_UTF_32_CJK_Ideograph_Extension_B_First 0x20000 #define T_UTF_32_CJK_Ideograph_Extension_B_Last 0x2A6D6 #endif /* TUTF_UTF_32_AUX_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/version.h.in����������������������������������������������������������������0000664�0000000�0000000�00000001314�13775351206�0017321�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TUTF_VERSION_H #define TUTF_VERSION_H #define TUTF_PROTOCOL_VERSION_MAJOR @PACKAGE_VERSION_MAJOR@ #define TUTF_PROTOCOL_VERSION_MINOR @PACKAGE_VERSION_MINOR@ #define TUTF_PROTOCOL_VERSION_PATCH @PACKAGE_VERSION_PATCH@ #define TUTF_PROTOCOL_VERSION ((TUTF_PROTOCOL_VERSION_MAJOR<<16)|(TUTF_PROTOCOL_VERSION_MINOR<<8)|TUTF_PROTOCOL_VERSION_PATCH) #define TUTF_PROTOCOL_VERSION_STR T_STR(TUTF_PROTOCOL_VERSION_MAJOR) "." T_STR(TUTF_PROTOCOL_VERSION_MINOR) "." T_STR(TUTF_PROTOCOL_VERSION_PATCH) #define TUTF_VER_MAJOR(n) ((n)>>16) #define TUTF_VER_MINOR(n) (((n)>>8) & 0xFF) #define TUTF_VER_PATCH(n) ((n) & 0xFF) #define TUTF_VER_BUILD(M, m, p) (((M)<<16)|((m)<<8)|(p)) #endif /* TUTF_VERSION_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tutf/vt100gr.h�������������������������������������������������������������������0000664�0000000�0000000�00000122741�13775351206�0016442�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file was automatically generated from unicode * charset definition files http://unicode.org/Public/MAPPINGS/ * using the script twin/scripts/helper-from-unicode.org.bash * * PLEASE DO NOT EDIT! */ #ifndef TUTF_VT100GR_H #define TUTF_VT100GR_H #define T_VT100GR_CTRL_NULL 0x0000 #define T_VT100GR_CTRL_START_OF_HEADING 0x0001 #define T_VT100GR_CTRL_START_OF_TEXT 0x0002 #define T_VT100GR_CTRL_END_OF_TEXT 0x0003 #define T_VT100GR_CTRL_END_OF_TRANSMISSION 0x0004 #define T_VT100GR_CTRL_ENQUIRY 0x0005 #define T_VT100GR_CTRL_ACKNOWLEDGE 0x0006 #define T_VT100GR_CTRL_BELL 0x0007 #define T_VT100GR_CTRL_BACKSPACE 0x0008 #define T_VT100GR_CTRL_CHARACTER_TABULATION 0x0009 #define T_VT100GR_CTRL_LINE_FEED 0x000A #define T_VT100GR_CTRL_LINE_TABULATION 0x000B #define T_VT100GR_CTRL_FORM_FEED 0x000C #define T_VT100GR_CTRL_CARRIAGE_RETURN 0x000D #define T_VT100GR_CTRL_SHIFT_OUT 0x000E #define T_VT100GR_CTRL_SHIFT_IN 0x000F #define T_VT100GR_CTRL_DATA_LINK_ESCAPE 0x0010 #define T_VT100GR_CTRL_DEVICE_CONTROL_ONE 0x0011 #define T_VT100GR_CTRL_DEVICE_CONTROL_TWO 0x0012 #define T_VT100GR_CTRL_DEVICE_CONTROL_THREE 0x0013 #define T_VT100GR_CTRL_DEVICE_CONTROL_FOUR 0x0014 #define T_VT100GR_CTRL_NEGATIVE_ACKNOWLEDGE 0x0015 #define T_VT100GR_CTRL_SYNCHRONOUS_IDLE 0x0016 #define T_VT100GR_CTRL_END_OF_TRANSMISSION_BLOCK 0x0017 #define T_VT100GR_CTRL_CANCEL 0x0018 #define T_VT100GR_CTRL_END_OF_MEDIUM 0x0019 #define T_VT100GR_CTRL_SUBSTITUTE 0x001A #define T_VT100GR_CTRL_ESCAPE 0x001B #define T_VT100GR_CTRL_INFORMATION_SEPARATOR_FOUR 0x001C #define T_VT100GR_CTRL_INFORMATION_SEPARATOR_THREE 0x001D #define T_VT100GR_CTRL_INFORMATION_SEPARATOR_TWO 0x001E #define T_VT100GR_CTRL_INFORMATION_SEPARATOR_ONE 0x001F #define T_VT100GR_SPACE 0x0020 #define T_VT100GR_EXCLAMATION_MARK 0x0021 #define T_VT100GR_QUOTATION_MARK 0x0022 #define T_VT100GR_NUMBER_SIGN 0x0023 #define T_VT100GR_DOLLAR_SIGN 0x0024 #define T_VT100GR_PERCENT_SIGN 0x0025 #define T_VT100GR_AMPERSAND 0x0026 #define T_VT100GR_APOSTROPHE 0x0027 #define T_VT100GR_LEFT_PARENTHESIS 0x0028 #define T_VT100GR_RIGHT_PARENTHESIS 0x0029 #define T_VT100GR_ASTERISK 0x002A #define T_VT100GR_RIGHTWARDS_ARROW 0x002B #define T_VT100GR_LEFTWARDS_ARROW 0x002C #define T_VT100GR_UPWARDS_ARROW 0x002D #define T_VT100GR_DOWNWARDS_ARROW 0x002E #define T_VT100GR_SOLIDUS 0x002F #define T_VT100GR_FULL_BLOCK 0x0030 #define T_VT100GR_DIGIT_ONE 0x0031 #define T_VT100GR_DIGIT_TWO 0x0032 #define T_VT100GR_DIGIT_THREE 0x0033 #define T_VT100GR_DIGIT_FOUR 0x0034 #define T_VT100GR_DIGIT_FIVE 0x0035 #define T_VT100GR_DIGIT_SIX 0x0036 #define T_VT100GR_DIGIT_SEVEN 0x0037 #define T_VT100GR_DIGIT_EIGHT 0x0038 #define T_VT100GR_DIGIT_NINE 0x0039 #define T_VT100GR_COLON 0x003A #define T_VT100GR_SEMICOLON 0x003B #define T_VT100GR_LESS_THAN_SIGN 0x003C #define T_VT100GR_EQUALS_SIGN 0x003D #define T_VT100GR_GREATER_THAN_SIGN 0x003E #define T_VT100GR_QUESTION_MARK 0x003F #define T_VT100GR_COMMERCIAL_AT 0x0040 #define T_VT100GR_LATIN_CAPITAL_LETTER_A 0x0041 #define T_VT100GR_LATIN_CAPITAL_LETTER_B 0x0042 #define T_VT100GR_LATIN_CAPITAL_LETTER_C 0x0043 #define T_VT100GR_LATIN_CAPITAL_LETTER_D 0x0044 #define T_VT100GR_LATIN_CAPITAL_LETTER_E 0x0045 #define T_VT100GR_LATIN_CAPITAL_LETTER_F 0x0046 #define T_VT100GR_LATIN_CAPITAL_LETTER_G 0x0047 #define T_VT100GR_LATIN_CAPITAL_LETTER_H 0x0048 #define T_VT100GR_LATIN_CAPITAL_LETTER_I 0x0049 #define T_VT100GR_LATIN_CAPITAL_LETTER_J 0x004A #define T_VT100GR_LATIN_CAPITAL_LETTER_K 0x004B #define T_VT100GR_LATIN_CAPITAL_LETTER_L 0x004C #define T_VT100GR_LATIN_CAPITAL_LETTER_M 0x004D #define T_VT100GR_LATIN_CAPITAL_LETTER_N 0x004E #define T_VT100GR_LATIN_CAPITAL_LETTER_O 0x004F #define T_VT100GR_LATIN_CAPITAL_LETTER_P 0x0050 #define T_VT100GR_LATIN_CAPITAL_LETTER_Q 0x0051 #define T_VT100GR_LATIN_CAPITAL_LETTER_R 0x0052 #define T_VT100GR_LATIN_CAPITAL_LETTER_S 0x0053 #define T_VT100GR_LATIN_CAPITAL_LETTER_T 0x0054 #define T_VT100GR_LATIN_CAPITAL_LETTER_U 0x0055 #define T_VT100GR_LATIN_CAPITAL_LETTER_V 0x0056 #define T_VT100GR_LATIN_CAPITAL_LETTER_W 0x0057 #define T_VT100GR_LATIN_CAPITAL_LETTER_X 0x0058 #define T_VT100GR_LATIN_CAPITAL_LETTER_Y 0x0059 #define T_VT100GR_LATIN_CAPITAL_LETTER_Z 0x005A #define T_VT100GR_LEFT_SQUARE_BRACKET 0x005B #define T_VT100GR_REVERSE_SOLIDUS 0x005C #define T_VT100GR_RIGHT_SQUARE_BRACKET 0x005D #define T_VT100GR_CIRCUMFLEX_ACCENT 0x005E #define T_VT100GR_NO_BREAK_SPACE 0x005F #define T_VT100GR_BLACK_DIAMOND 0x0060 #define T_VT100GR_MEDIUM_SHADE 0x0061 #define T_VT100GR_SYMBOL_FOR_HORIZONTAL_TABULATION 0x0062 #define T_VT100GR_SYMBOL_FOR_FORM_FEED 0x0063 #define T_VT100GR_SYMBOL_FOR_CARRIAGE_RETURN 0x0064 #define T_VT100GR_SYMBOL_FOR_LINE_FEED 0x0065 #define T_VT100GR_DEGREE_SIGN 0x0066 #define T_VT100GR_PLUS_MINUS_SIGN 0x0067 #define T_VT100GR_LIGHT_SHADE 0x0068 #define T_VT100GR_SYMBOL_FOR_VERTICAL_TABULATION 0x0069 #define T_VT100GR_BOX_DRAWINGS_LIGHT_UP_AND_LEFT 0x006A #define T_VT100GR_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT 0x006B #define T_VT100GR_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT 0x006C #define T_VT100GR_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT 0x006D #define T_VT100GR_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL 0x006E #define T_VT100GR_HORIZONTAL_SCAN_LINE_1 0x006F #define T_VT100GR_HORIZONTAL_SCAN_LINE_3 0x0070 #define T_VT100GR_BOX_DRAWINGS_LIGHT_HORIZONTAL 0x0071 #define T_VT100GR_HORIZONTAL_SCAN_LINE_7 0x0072 #define T_VT100GR_HORIZONTAL_SCAN_LINE_9 0x0073 #define T_VT100GR_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT 0x0074 #define T_VT100GR_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT 0x0075 #define T_VT100GR_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL 0x0076 #define T_VT100GR_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL 0x0077 #define T_VT100GR_BOX_DRAWINGS_LIGHT_VERTICAL 0x0078 #define T_VT100GR_LESS_THAN_OR_EQUAL_TO 0x0079 #define T_VT100GR_GREATER_THAN_OR_EQUAL_TO 0x007A #define T_VT100GR_GREEK_SMALL_LETTER_PI 0x007B #define T_VT100GR_NOT_EQUAL_TO 0x007C #define T_VT100GR_POUND_SIGN 0x007D #define T_VT100GR_MIDDLE_DOT 0x007E #define T_VT100GR_CTRL_DELETE 0x007F #define T_VT100GR_UNDEFINED_0080 0x0080 #define T_VT100GR_UNDEFINED_0081 0x0081 #define T_VT100GR_CTRL_BREAK_PERMITTED_HERE 0x0082 #define T_VT100GR_CTRL_NO_BREAK_HERE 0x0083 #define T_VT100GR_UNDEFINED_0084 0x0084 #define T_VT100GR_CTRL_NEXT_LINE 0x0085 #define T_VT100GR_CTRL_START_OF_SELECTED_AREA 0x0086 #define T_VT100GR_CTRL_END_OF_SELECTED_AREA 0x0087 #define T_VT100GR_CTRL_CHARACTER_TABULATION_SET 0x0088 #define T_VT100GR_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION 0x0089 #define T_VT100GR_CTRL_LINE_TABULATION_SET 0x008A #define T_VT100GR_CTRL_PARTIAL_LINE_FORWARD 0x008B #define T_VT100GR_CTRL_PARTIAL_LINE_BACKWARD 0x008C #define T_VT100GR_CTRL_REVERSE_LINE_FEED 0x008D #define T_VT100GR_CTRL_SINGLE_SHIFT_TWO 0x008E #define T_VT100GR_CTRL_SINGLE_SHIFT_THREE 0x008F #define T_VT100GR_CTRL_DEVICE_CONTROL_STRING 0x0090 #define T_VT100GR_CTRL_PRIVATE_USE_ONE 0x0091 #define T_VT100GR_CTRL_PRIVATE_USE_TWO 0x0092 #define T_VT100GR_CTRL_SET_TRANSMIT_STATE 0x0093 #define T_VT100GR_CTRL_CANCEL_CHARACTER 0x0094 #define T_VT100GR_CTRL_MESSAGE_WAITING 0x0095 #define T_VT100GR_CTRL_START_OF_GUARDED_AREA 0x0096 #define T_VT100GR_CTRL_END_OF_GUARDED_AREA 0x0097 #define T_VT100GR_CTRL_START_OF_STRING 0x0098 #define T_VT100GR_UNDEFINED_0099 0x0099 #define T_VT100GR_CTRL_SINGLE_CHARACTER_INTRODUCER 0x009A #define T_VT100GR_CTRL_CONTROL_SEQUENCE_INTRODUCER 0x009B #define T_VT100GR_CTRL_STRING_TERMINATOR 0x009C #define T_VT100GR_CTRL_OPERATING_SYSTEM_COMMAND 0x009D #define T_VT100GR_CTRL_PRIVACY_MESSAGE 0x009E #define T_VT100GR_CTRL_APPLICATION_PROGRAM_COMMAND 0x009F #define T_VT100GR_UNDEFINED_00A0 0x00A0 #define T_VT100GR_INVERTED_EXCLAMATION_MARK 0x00A1 #define T_VT100GR_CENT_SIGN 0x00A2 #define T_VT100GR_UNDEFINED_00A3 0x00A3 #define T_VT100GR_CURRENCY_SIGN 0x00A4 #define T_VT100GR_YEN_SIGN 0x00A5 #define T_VT100GR_BROKEN_BAR 0x00A6 #define T_VT100GR_SECTION_SIGN 0x00A7 #define T_VT100GR_DIAERESIS 0x00A8 #define T_VT100GR_COPYRIGHT_SIGN 0x00A9 #define T_VT100GR_FEMININE_ORDINAL_INDICATOR 0x00AA #define T_VT100GR_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00AB #define T_VT100GR_NOT_SIGN 0x00AC #define T_VT100GR_SOFT_HYPHEN 0x00AD #define T_VT100GR_REGISTERED_SIGN 0x00AE #define T_VT100GR_MACRON 0x00AF #define T_VT100GR_UNDEFINED_00B0 0x00B0 #define T_VT100GR_UNDEFINED_00B1 0x00B1 #define T_VT100GR_SUPERSCRIPT_TWO 0x00B2 #define T_VT100GR_SUPERSCRIPT_THREE 0x00B3 #define T_VT100GR_ACUTE_ACCENT 0x00B4 #define T_VT100GR_MICRO_SIGN 0x00B5 #define T_VT100GR_PILCROW_SIGN 0x00B6 #define T_VT100GR_UNDEFINED_00B7 0x00B7 #define T_VT100GR_CEDILLA 0x00B8 #define T_VT100GR_SUPERSCRIPT_ONE 0x00B9 #define T_VT100GR_MASCULINE_ORDINAL_INDICATOR 0x00BA #define T_VT100GR_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK 0x00BB #define T_VT100GR_VULGAR_FRACTION_ONE_QUARTER 0x00BC #define T_VT100GR_VULGAR_FRACTION_ONE_HALF 0x00BD #define T_VT100GR_VULGAR_FRACTION_THREE_QUARTERS 0x00BE #define T_VT100GR_INVERTED_QUESTION_MARK 0x00BF #define T_VT100GR_LATIN_CAPITAL_LETTER_A_WITH_GRAVE 0x00C0 #define T_VT100GR_LATIN_CAPITAL_LETTER_A_WITH_ACUTE 0x00C1 #define T_VT100GR_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX 0x00C2 #define T_VT100GR_LATIN_CAPITAL_LETTER_A_WITH_TILDE 0x00C3 #define T_VT100GR_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS 0x00C4 #define T_VT100GR_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE 0x00C5 #define T_VT100GR_LATIN_CAPITAL_LETTER_AE 0x00C6 #define T_VT100GR_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA 0x00C7 #define T_VT100GR_LATIN_CAPITAL_LETTER_E_WITH_GRAVE 0x00C8 #define T_VT100GR_LATIN_CAPITAL_LETTER_E_WITH_ACUTE 0x00C9 #define T_VT100GR_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX 0x00CA #define T_VT100GR_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS 0x00CB #define T_VT100GR_LATIN_CAPITAL_LETTER_I_WITH_GRAVE 0x00CC #define T_VT100GR_LATIN_CAPITAL_LETTER_I_WITH_ACUTE 0x00CD #define T_VT100GR_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX 0x00CE #define T_VT100GR_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS 0x00CF #define T_VT100GR_LATIN_CAPITAL_LETTER_ETH 0x00D0 #define T_VT100GR_LATIN_CAPITAL_LETTER_N_WITH_TILDE 0x00D1 #define T_VT100GR_LATIN_CAPITAL_LETTER_O_WITH_GRAVE 0x00D2 #define T_VT100GR_LATIN_CAPITAL_LETTER_O_WITH_ACUTE 0x00D3 #define T_VT100GR_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX 0x00D4 #define T_VT100GR_LATIN_CAPITAL_LETTER_O_WITH_TILDE 0x00D5 #define T_VT100GR_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS 0x00D6 #define T_VT100GR_MULTIPLICATION_SIGN 0x00D7 #define T_VT100GR_LATIN_CAPITAL_LETTER_O_WITH_STROKE 0x00D8 #define T_VT100GR_LATIN_CAPITAL_LETTER_U_WITH_GRAVE 0x00D9 #define T_VT100GR_LATIN_CAPITAL_LETTER_U_WITH_ACUTE 0x00DA #define T_VT100GR_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX 0x00DB #define T_VT100GR_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS 0x00DC #define T_VT100GR_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE 0x00DD #define T_VT100GR_LATIN_CAPITAL_LETTER_THORN 0x00DE #define T_VT100GR_LATIN_SMALL_LETTER_SHARP_S 0x00DF #define T_VT100GR_LATIN_SMALL_LETTER_A_WITH_GRAVE 0x00E0 #define T_VT100GR_LATIN_SMALL_LETTER_A_WITH_ACUTE 0x00E1 #define T_VT100GR_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX 0x00E2 #define T_VT100GR_LATIN_SMALL_LETTER_A_WITH_TILDE 0x00E3 #define T_VT100GR_LATIN_SMALL_LETTER_A_WITH_DIAERESIS 0x00E4 #define T_VT100GR_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE 0x00E5 #define T_VT100GR_LATIN_SMALL_LETTER_AE 0x00E6 #define T_VT100GR_LATIN_SMALL_LETTER_C_WITH_CEDILLA 0x00E7 #define T_VT100GR_LATIN_SMALL_LETTER_E_WITH_GRAVE 0x00E8 #define T_VT100GR_LATIN_SMALL_LETTER_E_WITH_ACUTE 0x00E9 #define T_VT100GR_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX 0x00EA #define T_VT100GR_LATIN_SMALL_LETTER_E_WITH_DIAERESIS 0x00EB #define T_VT100GR_LATIN_SMALL_LETTER_I_WITH_GRAVE 0x00EC #define T_VT100GR_LATIN_SMALL_LETTER_I_WITH_ACUTE 0x00ED #define T_VT100GR_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX 0x00EE #define T_VT100GR_LATIN_SMALL_LETTER_I_WITH_DIAERESIS 0x00EF #define T_VT100GR_LATIN_SMALL_LETTER_ETH 0x00F0 #define T_VT100GR_LATIN_SMALL_LETTER_N_WITH_TILDE 0x00F1 #define T_VT100GR_LATIN_SMALL_LETTER_O_WITH_GRAVE 0x00F2 #define T_VT100GR_LATIN_SMALL_LETTER_O_WITH_ACUTE 0x00F3 #define T_VT100GR_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX 0x00F4 #define T_VT100GR_LATIN_SMALL_LETTER_O_WITH_TILDE 0x00F5 #define T_VT100GR_LATIN_SMALL_LETTER_O_WITH_DIAERESIS 0x00F6 #define T_VT100GR_DIVISION_SIGN 0x00F7 #define T_VT100GR_LATIN_SMALL_LETTER_O_WITH_STROKE 0x00F8 #define T_VT100GR_LATIN_SMALL_LETTER_U_WITH_GRAVE 0x00F9 #define T_VT100GR_LATIN_SMALL_LETTER_U_WITH_ACUTE 0x00FA #define T_VT100GR_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX 0x00FB #define T_VT100GR_LATIN_SMALL_LETTER_U_WITH_DIAERESIS 0x00FC #define T_VT100GR_LATIN_SMALL_LETTER_Y_WITH_ACUTE 0x00FD #define T_VT100GR_LATIN_SMALL_LETTER_THORN 0x00FE #define T_VT100GR_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS 0x00FF /* list of all characters */ #define T_LIST_VT100GR(EL) \ EL(_CTRL_NULL) \ EL(_CTRL_START_OF_HEADING) \ EL(_CTRL_START_OF_TEXT) \ EL(_CTRL_END_OF_TEXT) \ EL(_CTRL_END_OF_TRANSMISSION) \ EL(_CTRL_ENQUIRY) \ EL(_CTRL_ACKNOWLEDGE) \ EL(_CTRL_BELL) \ EL(_CTRL_BACKSPACE) \ EL(_CTRL_CHARACTER_TABULATION) \ EL(_CTRL_LINE_FEED) \ EL(_CTRL_LINE_TABULATION) \ EL(_CTRL_FORM_FEED) \ EL(_CTRL_CARRIAGE_RETURN) \ EL(_CTRL_SHIFT_OUT) \ EL(_CTRL_SHIFT_IN) \ EL(_CTRL_DATA_LINK_ESCAPE) \ EL(_CTRL_DEVICE_CONTROL_ONE) \ EL(_CTRL_DEVICE_CONTROL_TWO) \ EL(_CTRL_DEVICE_CONTROL_THREE) \ EL(_CTRL_DEVICE_CONTROL_FOUR) \ EL(_CTRL_NEGATIVE_ACKNOWLEDGE) \ EL(_CTRL_SYNCHRONOUS_IDLE) \ EL(_CTRL_END_OF_TRANSMISSION_BLOCK) \ EL(_CTRL_CANCEL) \ EL(_CTRL_END_OF_MEDIUM) \ EL(_CTRL_SUBSTITUTE) \ EL(_CTRL_ESCAPE) \ EL(_CTRL_INFORMATION_SEPARATOR_FOUR) \ EL(_CTRL_INFORMATION_SEPARATOR_THREE) \ EL(_CTRL_INFORMATION_SEPARATOR_TWO) \ EL(_CTRL_INFORMATION_SEPARATOR_ONE) \ EL(_SPACE) \ EL(_EXCLAMATION_MARK) \ EL(_QUOTATION_MARK) \ EL(_NUMBER_SIGN) \ EL(_DOLLAR_SIGN) \ EL(_PERCENT_SIGN) \ EL(_AMPERSAND) \ EL(_APOSTROPHE) \ EL(_LEFT_PARENTHESIS) \ EL(_RIGHT_PARENTHESIS) \ EL(_ASTERISK) \ EL(_RIGHTWARDS_ARROW) \ EL(_LEFTWARDS_ARROW) \ EL(_UPWARDS_ARROW) \ EL(_DOWNWARDS_ARROW) \ EL(_SOLIDUS) \ EL(_FULL_BLOCK) \ EL(_DIGIT_ONE) \ EL(_DIGIT_TWO) \ EL(_DIGIT_THREE) \ EL(_DIGIT_FOUR) \ EL(_DIGIT_FIVE) \ EL(_DIGIT_SIX) \ EL(_DIGIT_SEVEN) \ EL(_DIGIT_EIGHT) \ EL(_DIGIT_NINE) \ EL(_COLON) \ EL(_SEMICOLON) \ EL(_LESS_THAN_SIGN) \ EL(_EQUALS_SIGN) \ EL(_GREATER_THAN_SIGN) \ EL(_QUESTION_MARK) \ EL(_COMMERCIAL_AT) \ EL(_LATIN_CAPITAL_LETTER_A) \ EL(_LATIN_CAPITAL_LETTER_B) \ EL(_LATIN_CAPITAL_LETTER_C) \ EL(_LATIN_CAPITAL_LETTER_D) \ EL(_LATIN_CAPITAL_LETTER_E) \ EL(_LATIN_CAPITAL_LETTER_F) \ EL(_LATIN_CAPITAL_LETTER_G) \ EL(_LATIN_CAPITAL_LETTER_H) \ EL(_LATIN_CAPITAL_LETTER_I) \ EL(_LATIN_CAPITAL_LETTER_J) \ EL(_LATIN_CAPITAL_LETTER_K) \ EL(_LATIN_CAPITAL_LETTER_L) \ EL(_LATIN_CAPITAL_LETTER_M) \ EL(_LATIN_CAPITAL_LETTER_N) \ EL(_LATIN_CAPITAL_LETTER_O) \ EL(_LATIN_CAPITAL_LETTER_P) \ EL(_LATIN_CAPITAL_LETTER_Q) \ EL(_LATIN_CAPITAL_LETTER_R) \ EL(_LATIN_CAPITAL_LETTER_S) \ EL(_LATIN_CAPITAL_LETTER_T) \ EL(_LATIN_CAPITAL_LETTER_U) \ EL(_LATIN_CAPITAL_LETTER_V) \ EL(_LATIN_CAPITAL_LETTER_W) \ EL(_LATIN_CAPITAL_LETTER_X) \ EL(_LATIN_CAPITAL_LETTER_Y) \ EL(_LATIN_CAPITAL_LETTER_Z) \ EL(_LEFT_SQUARE_BRACKET) \ EL(_REVERSE_SOLIDUS) \ EL(_RIGHT_SQUARE_BRACKET) \ EL(_CIRCUMFLEX_ACCENT) \ EL(_NO_BREAK_SPACE) \ EL(_BLACK_DIAMOND) \ EL(_MEDIUM_SHADE) \ EL(_SYMBOL_FOR_HORIZONTAL_TABULATION) \ EL(_SYMBOL_FOR_FORM_FEED) \ EL(_SYMBOL_FOR_CARRIAGE_RETURN) \ EL(_SYMBOL_FOR_LINE_FEED) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_LIGHT_SHADE) \ EL(_SYMBOL_FOR_VERTICAL_TABULATION) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_HORIZONTAL_SCAN_LINE_1) \ EL(_HORIZONTAL_SCAN_LINE_3) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_HORIZONTAL_SCAN_LINE_7) \ EL(_HORIZONTAL_SCAN_LINE_9) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_NOT_EQUAL_TO) \ EL(_POUND_SIGN) \ EL(_MIDDLE_DOT) \ EL(_CTRL_DELETE) \ EL(_UNDEFINED_0080) \ EL(_UNDEFINED_0081) \ EL(_CTRL_BREAK_PERMITTED_HERE) \ EL(_CTRL_NO_BREAK_HERE) \ EL(_UNDEFINED_0084) \ EL(_CTRL_NEXT_LINE) \ EL(_CTRL_START_OF_SELECTED_AREA) \ EL(_CTRL_END_OF_SELECTED_AREA) \ EL(_CTRL_CHARACTER_TABULATION_SET) \ EL(_CTRL_CHARACTER_TABULATION_WITH_JUSTIFICATION) \ EL(_CTRL_LINE_TABULATION_SET) \ EL(_CTRL_PARTIAL_LINE_FORWARD) \ EL(_CTRL_PARTIAL_LINE_BACKWARD) \ EL(_CTRL_REVERSE_LINE_FEED) \ EL(_CTRL_SINGLE_SHIFT_TWO) \ EL(_CTRL_SINGLE_SHIFT_THREE) \ EL(_CTRL_DEVICE_CONTROL_STRING) \ EL(_CTRL_PRIVATE_USE_ONE) \ EL(_CTRL_PRIVATE_USE_TWO) \ EL(_CTRL_SET_TRANSMIT_STATE) \ EL(_CTRL_CANCEL_CHARACTER) \ EL(_CTRL_MESSAGE_WAITING) \ EL(_CTRL_START_OF_GUARDED_AREA) \ EL(_CTRL_END_OF_GUARDED_AREA) \ EL(_CTRL_START_OF_STRING) \ EL(_UNDEFINED_0099) \ EL(_CTRL_SINGLE_CHARACTER_INTRODUCER) \ EL(_CTRL_CONTROL_SEQUENCE_INTRODUCER) \ EL(_CTRL_STRING_TERMINATOR) \ EL(_CTRL_OPERATING_SYSTEM_COMMAND) \ EL(_CTRL_PRIVACY_MESSAGE) \ EL(_CTRL_APPLICATION_PROGRAM_COMMAND) \ EL(_UNDEFINED_00A0) \ EL(_INVERTED_EXCLAMATION_MARK) \ EL(_CENT_SIGN) \ EL(_UNDEFINED_00A3) \ EL(_CURRENCY_SIGN) \ EL(_YEN_SIGN) \ EL(_BROKEN_BAR) \ EL(_SECTION_SIGN) \ EL(_DIAERESIS) \ EL(_COPYRIGHT_SIGN) \ EL(_FEMININE_ORDINAL_INDICATOR) \ EL(_LEFT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_NOT_SIGN) \ EL(_SOFT_HYPHEN) \ EL(_REGISTERED_SIGN) \ EL(_MACRON) \ EL(_UNDEFINED_00B0) \ EL(_UNDEFINED_00B1) \ EL(_SUPERSCRIPT_TWO) \ EL(_SUPERSCRIPT_THREE) \ EL(_ACUTE_ACCENT) \ EL(_MICRO_SIGN) \ EL(_PILCROW_SIGN) \ EL(_UNDEFINED_00B7) \ EL(_CEDILLA) \ EL(_SUPERSCRIPT_ONE) \ EL(_MASCULINE_ORDINAL_INDICATOR) \ EL(_RIGHT_POINTING_DOUBLE_ANGLE_QUOTATION_MARK) \ EL(_VULGAR_FRACTION_ONE_QUARTER) \ EL(_VULGAR_FRACTION_ONE_HALF) \ EL(_VULGAR_FRACTION_THREE_QUARTERS) \ EL(_INVERTED_QUESTION_MARK) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_CAPITAL_LETTER_AE) \ EL(_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_ETH) \ EL(_LATIN_CAPITAL_LETTER_N_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_TILDE) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS) \ EL(_MULTIPLICATION_SIGN) \ EL(_LATIN_CAPITAL_LETTER_O_WITH_STROKE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_CAPITAL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_CAPITAL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_SHARP_S) \ EL(_LATIN_SMALL_LETTER_A_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_A_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_A_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_A_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_A_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE) \ EL(_LATIN_SMALL_LETTER_AE) \ EL(_LATIN_SMALL_LETTER_C_WITH_CEDILLA) \ EL(_LATIN_SMALL_LETTER_E_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_E_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_E_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_E_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_I_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_I_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_I_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_I_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_ETH) \ EL(_LATIN_SMALL_LETTER_N_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_O_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_O_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_O_WITH_TILDE) \ EL(_LATIN_SMALL_LETTER_O_WITH_DIAERESIS) \ EL(_DIVISION_SIGN) \ EL(_LATIN_SMALL_LETTER_O_WITH_STROKE) \ EL(_LATIN_SMALL_LETTER_U_WITH_GRAVE) \ EL(_LATIN_SMALL_LETTER_U_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_U_WITH_CIRCUMFLEX) \ EL(_LATIN_SMALL_LETTER_U_WITH_DIAERESIS) \ EL(_LATIN_SMALL_LETTER_Y_WITH_ACUTE) \ EL(_LATIN_SMALL_LETTER_THORN) \ EL(_LATIN_SMALL_LETTER_Y_WITH_DIAERESIS) /* list of all characters NOT IDENTICALLY MAPPED to UTF-16 */ #define T_NLIST_VT100GR(EL) \ EL(_RIGHTWARDS_ARROW) \ EL(_LEFTWARDS_ARROW) \ EL(_UPWARDS_ARROW) \ EL(_DOWNWARDS_ARROW) \ EL(_FULL_BLOCK) \ EL(_NO_BREAK_SPACE) \ EL(_BLACK_DIAMOND) \ EL(_MEDIUM_SHADE) \ EL(_SYMBOL_FOR_HORIZONTAL_TABULATION) \ EL(_SYMBOL_FOR_FORM_FEED) \ EL(_SYMBOL_FOR_CARRIAGE_RETURN) \ EL(_SYMBOL_FOR_LINE_FEED) \ EL(_DEGREE_SIGN) \ EL(_PLUS_MINUS_SIGN) \ EL(_LIGHT_SHADE) \ EL(_SYMBOL_FOR_VERTICAL_TABULATION) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_HORIZONTAL) \ EL(_HORIZONTAL_SCAN_LINE_1) \ EL(_HORIZONTAL_SCAN_LINE_3) \ EL(_BOX_DRAWINGS_LIGHT_HORIZONTAL) \ EL(_HORIZONTAL_SCAN_LINE_7) \ EL(_HORIZONTAL_SCAN_LINE_9) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_RIGHT) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL_AND_LEFT) \ EL(_BOX_DRAWINGS_LIGHT_UP_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_DOWN_AND_HORIZONTAL) \ EL(_BOX_DRAWINGS_LIGHT_VERTICAL) \ EL(_LESS_THAN_OR_EQUAL_TO) \ EL(_GREATER_THAN_OR_EQUAL_TO) \ EL(_GREEK_SMALL_LETTER_PI) \ EL(_NOT_EQUAL_TO) \ EL(_POUND_SIGN) \ EL(_MIDDLE_DOT) #endif /* TUTF_VT100GR_H */ �������������������������������twin-0.9.0/include/Tw/������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014527�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/Doxyfile����������������������������������������������������������������������0000664�0000000�0000000�00000013311�13775351206�0016234�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Doxygen configuration generated by Doxywizard version 0.1 #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- PROJECT_NAME = libtw PROJECT_NUMBER = 4.5.0 OUTPUT_DIRECTORY = ../../docs/libtw/ OUTPUT_LANGUAGE = English EXTRACT_ALL = YES EXTRACT_PRIVATE = NO EXTRACT_STATIC = NO HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ALWAYS_DETAILED_SEC = NO FULL_PATH_NAMES = NO STRIP_FROM_PATH = INTERNAL_DOCS = NO CLASS_DIAGRAMS = YES SOURCE_BROWSER = NO INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO VERBATIM_HEADERS = NO SHOW_INCLUDE_FILES = NO JAVADOC_AUTOBRIEF = YES INHERIT_DOCS = YES INLINE_INFO = YES SORT_MEMBER_DOCS = YES DISTRIBUTE_GROUP_DOC = NO TAB_SIZE = 8 ENABLED_SECTIONS = GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES ALIASES = MAX_INITIALIZER_LINES = 30 OPTIMIZE_OUTPUT_FOR_C = YES SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = . FILE_PATTERNS = *.h RECURSIVE = YES EXCLUDE = EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = IMAGE_PATH = INPUT_FILTER = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = YES COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = YES TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = YES LATEX_OUTPUT = latex COMPACT_LATEX = YES PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = YES #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = YES RTF_OUTPUT = rtf COMPACT_RTF = YES RTF_HYPERLINKS = YES RTF_STYLESHEET_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = YES MAN_OUTPUT = man MAN_EXTENSION = .3 #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- HAVE_DOT = NO CLASS_GRAPH = YES COLLABORATION_GRAPH = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES GRAPHICAL_HIERARCHY = YES DOT_PATH = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO CGI_NAME = search.cgi CGI_URL = DOC_URL = DOC_ABSPATH = BIN_ABSPATH = /usr/local/bin/ EXT_DOC_PATHS = �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/Makefile.am�������������������������������������������������������������������0000664�0000000�0000000�00000000547�13775351206�0016571�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twincludedir = $(includedir)/Tw twinclude_HEADERS = \ Tw++.h Tw.h Tw1.h Tw_defs.h Twavl.h Twerrno.h Twkeys.h Twstat.h Twstat_defs.h Twtypes.h \ alias1_m4.h alias_m4.h autoconf.h common1_m4.h common_m4.h compiler.h datasizes.h datatypes.h \ missing.h mouse.h osincludes.h pagesize.h prefix.h proto1_m4.h proto_m4.h stattypes.h \ unprefix.h version.h ���������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/Makefile.in�������������������������������������������������������������������0000664�0000000�0000000�00000044423�13775351206�0016603�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = include/Tw ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(twinclude_HEADERS) \ $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = version.h CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(twincludedir)" HEADERS = $(twinclude_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.h.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ twincludedir = $(includedir)/Tw twinclude_HEADERS = \ Tw++.h Tw.h Tw1.h Tw_defs.h Twavl.h Twerrno.h Twkeys.h Twstat.h Twstat_defs.h Twtypes.h \ alias1_m4.h alias_m4.h autoconf.h common1_m4.h common_m4.h compiler.h datasizes.h datatypes.h \ missing.h mouse.h osincludes.h pagesize.h prefix.h proto1_m4.h proto_m4.h stattypes.h \ unprefix.h version.h all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Tw/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign include/Tw/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): version.h: $(top_builddir)/config.status $(srcdir)/version.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-twincludeHEADERS: $(twinclude_HEADERS) @$(NORMAL_INSTALL) @list='$(twinclude_HEADERS)'; test -n "$(twincludedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(twincludedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(twincludedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(twincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(twincludedir)" || exit $$?; \ done uninstall-twincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(twinclude_HEADERS)'; test -n "$(twincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(twincludedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: for dir in "$(DESTDIR)$(twincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-twincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-twincludeHEADERS .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ install-twincludeHEADERS installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am \ uninstall-twincludeHEADERS .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/Tw++.h������������������������������������������������������������������������0000664�0000000�0000000�00000111105�13775351206�0015417�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Tw++.h -- C++ wrapper for all libtw data types, functions and macros * * Copyright (C) 2001 by Massimiliano Ghilardi * * 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 include is a C++ front-end to raw libtw functionalities. * It does not add any new feature to libtw (with an exception: non-static * method listeners) but just wraps raw libtw types and function calls inside * C++ objects and methods. * * Tw/Tw++.h currently has a limitation: libtw can handle multiple simultaneous * connections to multiple twin servers (it's multi-headed), while the objects * and methods declared in this file allow only a single connection to a single * twin server (single-headed). This should not be a problem for most * applications, but you'd better know it. * Even though technically possible, extending Tw/Tw++.h to be multi-headed * would noticeably complicate it, as EVERY object would need to remember the * connection that was used to create it. */ #ifndef TW_PLUS_PLUS_H #define TW_PLUS_PLUS_H #include <stdio.h> #include <string.h> #ifndef TW_H #include <Tw/Tw.h> #endif #ifndef TW_ERRNO_H #include <Tw/Twerrno.h> #endif class TEmpty; class TObj; class TWidget; class TGadget; class TWindow; class TGroup; class TEvent; class TMsg; class TMenu; class TMsgPort; class TListener; class TListenerNonStatic; class TDefaultListener; class TDefaultListenerNonStatic; class TW; class TEmpty {}; class TObj : public TEmpty { protected: inline TObj() { } inline ~TObj() { if (Id != TW_NOID) TwDeleteObj(Id); } public: tobj Id; inline tobj id() const { return Id; } inline tobj Prev() const { return TwPrevObj(Id); } inline tobj Next() const { return TwNextObj(Id); } inline tobj Parent() const { return TwParentObj(Id); } static inline tobj Prev(tobj myId) { return TwPrevObj(myId); } static inline tobj Next(tobj myId) { return TwNextObj(myId); } static inline tobj Parent(tobj myId) { return TwParentObj(myId); } }; class TMenu : public TObj { public: inline ~TMenu() { } inline TMenu(tcolor ColItem = TCOL(tblack, twhite), tcolor ColSelect = TCOL(tblack, tgreen), tcolor ColDisabled = TCOL(thigh | tblack, twhite), tcolor ColSelectDisabled = TCOL(thigh | tblack, tblack), tcolor ColShtCut = TCOL(tred, twhite), tcolor ColSelShtCut = TCOL(tred, tgreen), byte FlagDefColInfo = 0) { Id = TwCreateMenu(ColItem, ColSelect, ColDisabled, ColSelectDisabled, ColShtCut, ColSelShtCut, FlagDefColInfo); } inline tmenuitem commonItem() const { return TwItem4MenuCommon(Id); } inline void setInfo(byte Flags = TW_ROW_ACTIVE, ldat Len = 0, const char *Text = 0, const tcolor *ColText = 0) const { TwSetInfoMenu(Id, Flags, Len, Text, ColText); } inline void setInfo(const char *Text, const tcolor *ColText = 0) const { setInfo(TW_ROW_ACTIVE, Text ? strlen(Text) : 0, Text, ColText); } static inline tmenuitem firstMenuItem(tmenu myId) { return TwFirstMenuItem(myId); } inline tmenuitem firstMenuItem() const { return TwFirstMenuItem(Id); } }; class TWidget : public TObj { protected: inline TWidget() { } public: inline ~TWidget() { } inline TWidget(dat XWidth, dat YWidth, uldat Attr = 0, uldat Flags = 0, dat Left = 0, dat Up = 0, tcell Fill = TCELL(TCOL(tblack, twhite), ' ')) { Id = TwCreateWidget(XWidth, YWidth, Attr, Flags, Left, Up, Fill); } static inline void map(twidget myId, twidget parentId) { TwMapWidget(myId, parentId); } inline void map(twidget parentId) const { TwMapWidget(Id, parentId); } inline void map(const TWidget *parent) const { TwMapWidget(Id, parent->Id); } static inline void unMap(twidget myId) { TwUnMapWidget(myId); } inline void unMap() const { TwUnMapWidget(Id); } inline void setXY(dat X, dat Y) const { TwSetXYWidget(Id, X, Y); } static inline tmsgport owner(twidget myId) { return TwOwnerWidget(myId); } inline tmsgport owner() const { return TwOwnerWidget(Id); } inline twidget findWidgetAt(dat x, dat y) const { return TwFindWidgetAtWidget(Id, x, y); } static inline twidget firstWidget(twidget parentId) { return TwFirstWidget(parentId); } inline twidget firstWidget() const { return TwFirstWidget(Id); } inline void recursiveDelete() { TwRecursiveDeleteWidget(Id); Id = TW_NOID; } }; class TGadget : public TWidget { protected: inline TGadget() { } public: inline ~TGadget() { } /* * args are `udat Code, udat Flags, uldat Attr' to exploit optional paremeters, * while in Tw.h they are `uldat Attr, uldat Flags, udat Code'. * * Take care. */ inline TGadget(const TWidget *parent, dat XWidth, dat YWidth, const char *TextNormal, udat Code = 0, uldat Flags = TW_GADGETFL_USETEXT | TW_GADGETFL_TEXT_DEFCOL, uldat Attr = 0, tcolor ColText = TCOL(tblack, tgreen), tcolor ColTextSelect = TCOL(thigh | twhite, tgreen), tcolor ColTextDisabled = TCOL(thigh | tblack, tgreen), tcolor ColTextSelectDisabled = TCOL(thigh | tblack, tgreen), dat Left = 0, dat Up = 0) { Id = TwCreateGadget(/* TwCreateGadget(...) is a macro... */ parent->Id, XWidth, YWidth, TextNormal, Attr, Flags, Code, ColText, ColTextSelect, ColTextDisabled, ColTextSelectDisabled, Left, Up); } /* * args are `udat Code, uldat Flags' to exploit optional paremeters, * while in Tw.h they are `uldat Flags, udat Code'. * * Take care. */ static inline TGadget *CreateButton(const TWidget *parent, dat XWidth, dat YWidth, const char *name, udat Code = 0, uldat Flags = 0, tcolor BgCol = TCOL(tblack, twhite), tcolor Col = TCOL(tblack, tgreen), tcolor ColDisabled = TCOL(thigh | tblack, tgreen), dat Left = 0, dat Up = 0) { TGadget *G = new TGadget(); G->Id = TwCreateButtonGadget(parent ? parent->Id : TW_NOID, XWidth, YWidth, name, Flags, Code, BgCol, Col, ColDisabled, Left, Up); return G; } inline bool isPressed() const { return TwIsPressedGadget(Id); } inline bool isChecked() const { return TwIsPressedGadget(Id); } inline bool isOn() const { return TwIsPressedGadget(Id); } inline void setPressed(bool on) const { TwSetPressedGadget(Id, (byte)on); } inline void setChecked(bool on) const { TwSetPressedGadget(Id, (byte)on); } inline void setOn(bool on) const { TwSetPressedGadget(Id, (byte)on); } inline bool isToggle() const { return TwIsToggleGadget(Id); } inline bool isToggleButton() const { return TwIsToggleGadget(Id); } inline void setToggle(bool on) const { TwSetToggleGadget(Id, (byte)on); } inline void setToggleButton(bool on) const { TwSetToggleGadget(Id, (byte)on); } inline void setText(const char *text = 0, dat Left = 0, dat Up = 0) const { if (text && text[0]) TwSetTextGadget(Id, strlen(text), 1, text, Left, Up); else TwSetTextGadget(Id, TW_MAXDAT, TW_MAXDAT, NULL, 0, 0); } inline void setTextLines(dat XWidth, dat YWidth, const char *text = 0, dat Left = 0, dat Up = 0) const { TwSetTextGadget(Id, XWidth, YWidth, text, Left, Up); } inline void setTextsLines(byte bitmap, dat XWidth, dat YWidth, const char *text = 0, dat Left = 0, dat Up = 0) const { TwSetTextsGadget(Id, bitmap, XWidth, YWidth, text, Left, Up); } inline void writeText(const char *text = 0, dat Left = 0, dat Up = 0) const { if (text && text[0]) TwWriteTextGadget(Id, strlen(text), 1, text, Left, Up); } inline void writeTextLines(dat XWidth, dat YWidth, const char *text = 0, dat Left = 0, dat Up = 0) const { TwWriteTextGadget(Id, XWidth, YWidth, text, Left, Up); } inline void writeTextsLines(byte bitmap, dat XWidth, dat YWidth, const char *text = 0, dat Left = 0, dat Up = 0) const { TwWriteTextsGadget(Id, bitmap, XWidth, YWidth, text, Left, Up); } }; /* a handy alias for TGadget::CreateButton(...) */ class TButton : public TGadget { protected: inline TButton() { } public: inline ~TButton() { } inline TButton(const TWidget *parent, dat XWidth, dat YWidth, const char *name, udat Code = 0, uldat Flags = 0, tcolor BgCol = TCOL(tblack, twhite tcolor Col = TCOL(tblack, tgreen), tcolor ColDisabled = TCOL(thigh | tblack, tgreen), dat Left = 0, dat Up = 0) { Id = TwCreateButtonGadget(parent->Id, XWidth, YWidth, name, Flags, Code, BgCol, Col, ColDisabled, Left, Up); } }; class TWindow : public TWidget { protected: inline TWindow() { } public: inline ~TWindow() { } inline TWindow(const TMenu *Menu, const char *name = "", tcolor ColText = TCOL(tblack, twhite), uldat CursorType = TW_NOCURSOR, uldat Attr = TW_WINDOW_WANT_KEYS | TW_WINDOW_CLOSE | TW_WINDOW_DRAG | TW_WINDOW_RESIZE, uldat Flags = TW_WINDOWFL_USEROWS, dat XWidth = 0, dat YWidth = 0, dat ScrollBackLines = 0) { Id = TwCreateWindow(strlen(name), name, NULL, Menu->Id, ColText, CursorType, Attr, Flags, XWidth, YWidth, ScrollBackLines); } static inline TWindow *create4Menu(const TMenu *Menu) { TWindow *W = new TWindow(); W->Id = TwCreate4MenuWindow(Menu->Id); return W; } inline void writeCharset(const char *charset_bytes) const { TwWriteCharsetWindow(Id, strlen(charset_bytes), charset_bytes); } inline void writeCharset(ldat len, const char *charset_bytes) const { TwWriteCharsetWindow(Id, len, charset_bytes); } inline void writeUtf8(const char *utf8_bytes) const { TwWriteTRuneWindow(Id, strlen(utf8_bytes), utf8_bytes); } inline void writeUtf8(ldat len, const char *utf8_bytes) const { TwWriteTRuneWindow(Id, len, utf8_bytes); } inline void writeTCell(ldat len, dat x, dat y, ldat Len, const tcell *Attr) const { TwWriteTCellWindow(Id, x, y, Len, Attr); } inline void gotoXY(ldat x, ldat y) const { TwGotoXYWindow(Id, x, y); } inline void setColText(tcolor C) const { TwSetColTextWindow(Id, C); } inline void setColors(udat Bitmap, tcolor ColGadgets = TCOL(thigh | tyellow, tcyan), tcolor ColArrows = TCOL(thigh | tgreen, thigh | tblue), tcolor ColBars = TCOL(twhite, thigh | tblue), tcolor ColTabs = TCOL(thigh | twhite, thigh | tblue), tcolor ColBorder = TCOL(thigh | twhite, thigh | tblue), tcolor ColText = TCOL(tblack, twhite), tcolor ColSelect = TCOL(twhite, tblack), tcolor ColDisabled = TCOL(thigh | tblack, tblack), tcolor ColSelectDisabled = TCOL(tblack, thigh | tblack)) const { TwSetColorsWindow(Id, Bitmap, ColGadgets, ColArrows, ColBars, ColTabs, ColBorder, ColText, ColSelect, ColDisabled, ColSelectDisabled); } inline void configure(byte Bitmap, dat Left = 0, dat Up = 0, dat MinXWidth = 0, dat MinYWidth = 0, dat MaxXWidth = TW_MAXDAT, dat MaxYWidth = TW_MAXDAT) const { TwConfigureWindow(Id, Bitmap, Left, Up, MinXWidth, MinYWidth, MaxXWidth, MaxYWidth); } inline void setSize(dat x, dat y) const { TwResizeWindow(Id, x, y); } inline void create4MenuRow(udat Code = 0, byte FlagActive = TW_ROW_ACTIVE, const char *Text = "") const { TwRow4Menu(Id, Code, FlagActive, strlen(Text), Text); } inline void row4Menu(udat Code = 0, byte FlagActive = TW_ROW_ACTIVE, const char *Text = "") const { create4MenuRow(Code, FlagActive, Text); } inline void create4MenuRow(udat Code, byte FlagActive, ldat TextLen, const char *Text) const { TwRow4Menu(Id, Code, FlagActive, TextLen, Text); } inline void row4Menu(udat Code, byte FlagActive, ldat TextLen, const char *Text) const { create4MenuRow(Code, FlagActive, TextLen, Text); } }; class TGroup : public TObj { public: inline ~TGroup() { } inline TGroup() { if (Id == TW_NOID) Id = TwCreateGroup(); } inline void insertGadget(const TGadget *G) const { TwInsertGadgetGroup(Id, G->Id); } inline void removeGadget(const TGadget *G) const { TwRemoveGadgetGroup(Id, G->Id); } inline tgadget getSelectedGadget() const { return TwGetSelectedGadgetGroup(Id); } inline void setSelectedGadget(const TGadget *G) const { TwSetSelectedGadgetGroup(Id, G->Id); } }; class TColor : public TEmpty { public: tcolor C; inline TColor(tcolor c = 0) { C = c; } inline ~TColor() { } inline tcolor col() const { return C; } }; class TKeyEvent : public s_tevent_keyboard { protected: inline TKeyEvent() { } public: inline ~TKeyEvent() { } inline TKeyEvent(const TWidget *widget, udat code, udat shiftflags) { W = widget->Id; Code = code; ShiftFlags = shiftflags; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline udat key() const { return Code; } inline udat shiftflags() const { return ShiftFlags; } inline udat flags() const { return ShiftFlags; } inline udat seqlen() const { return SeqLen; } inline udat len() const { return SeqLen; } inline const char *asciiseq() const { return AsciiSeq; } inline const char *seq() const { return AsciiSeq; } }; class TMouseEvent : public s_tevent_mouse { protected: inline TMouseEvent() { } public: inline ~TMouseEvent() { } inline TMouseEvent(const TWidget *widget, udat code, udat shiftflags) { W = widget->Id; Code = code; ShiftFlags = shiftflags; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline udat mouse() const { return Code; } inline udat shiftflags() const { return ShiftFlags; } inline udat flags() const { return ShiftFlags; } inline dat getX() const { return X; } inline dat getY() const { return Y; } }; class TControlEvent : public s_tevent_control { protected: inline TControlEvent() { } public: inline ~TControlEvent() { } inline TControlEvent(const TWidget *widget, udat code) { W = widget->Id; Code = code; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline udat control() const { return Code; } inline udat len() const { return Len; } inline dat getX() const { return X; } inline dat getY() const { return Y; } inline const char *data() const { return (const char *)Data; } }; class TClientMsgEvent : public s_tevent_clientmsg { protected: inline TClientMsgEvent() { } public: inline ~TClientMsgEvent() { } inline TClientMsgEvent(const TWidget *widget, udat code) { W = widget->Id; Code = code; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline udat clientmsg() const { return Code; } inline udat len() const { return Len; } inline const char *data() const { return (const char *)Data.b; } }; class TDisplayEvent : public s_tevent_display { protected: inline TDisplayEvent() { } public: inline ~TDisplayEvent() { } inline TDisplayEvent(udat code) { W = TW_NOID; Code = code; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline udat display() const { return Code; } inline udat len() const { return Len; } inline dat getX() const { return X; } inline dat getY() const { return Y; } inline const char *data() const { return (const char *)Data; } }; class TWidgetEvent : public s_tevent_widget { protected: inline TWidgetEvent() { } public: inline ~TWidgetEvent() { } inline TWidgetEvent(const TWidget *widget, udat code) { W = widget->Id; Code = code; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline dat getXWidth() const { return XWidth; } inline dat getYWidth() const { return YWidth; } inline dat getX() const { return X; } inline dat getY() const { return Y; } }; class TGadgetEvent : public s_tevent_gadget { protected: inline TGadgetEvent() { } public: inline ~TGadgetEvent() { } inline TGadgetEvent(const TWidget *widget, udat code) { W = widget->Id; Code = code; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline udat gadget() const { return Code; } inline udat flags() const { return Flags; } }; typedef TGadgetEvent TCloseEvent; class TMenuEvent : public s_tevent_menu { protected: inline TMenuEvent() { } public: inline ~TMenuEvent() { } inline TMenuEvent(const TWidget *widget, const TMenu *M, udat code) { W = widget->Id; Menu = M->Id; Code = code; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline tmenu menu() const { return Menu; } }; class TSelectionEvent : public s_tevent_selection { protected: inline TSelectionEvent() { } public: inline ~TSelectionEvent() { } inline TSelectionEvent(const TWidget *widget) { W = widget->Id; Code = 0; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline udat selection() const { return Code; } inline dat getX() const { return X; } inline dat getY() const { return Y; } }; class TSelectionNotifyEvent : public s_tevent_selectionnotify { public: inline ~TSelectionNotifyEvent() { } inline TSelectionNotifyEvent() { W = TW_NOID; Code = 0; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline uldat reqprivate() const { return ReqPrivate; } inline uldat magic() const { return Magic; } inline const char *mime() const { return MIME; } inline uldat datalen() const { return Len; } inline uldat len() const { return Len; } inline const char *data() const { return Data; } }; typedef TSelectionNotifyEvent TClipboard; class TSelectionRequestEvent : public s_tevent_selectionrequest { public: inline ~TSelectionRequestEvent() { } inline TSelectionRequestEvent() { W = TW_NOID; Code = 0; } inline twidget widget() const { return W; } inline udat code() const { return Code; } inline tmsgport requestor() const { return Requestor; } inline uldat reqprivate() const { return ReqPrivate; } }; class TEvent : public s_tevent_common { /* C++ cannot use a union (s_tevent_any) as base for a class :( */ protected: inline TEvent() { } public: inline ~TEvent() { } inline TKeyEvent *keyEvent() const { return (TKeyEvent *)&((tevent_any)this)->EventKeyboard; } inline TMouseEvent *mouseEvent() const { return (TMouseEvent *)&((tevent_any)this)->EventMouse; } inline TControlEvent *controlEvent() const { return (TControlEvent *)&((tevent_any)this)->EventControl; } inline TClientMsgEvent *clientMsgEvent() const { return (TClientMsgEvent *)&((tevent_any)this)->EventClientMsg; } inline TDisplayEvent *displayEvent() const { return (TDisplayEvent *)&((tevent_any)this)->EventDisplay; } inline TWidgetEvent *widgetEvent() const { return (TWidgetEvent *)&((tevent_any)this)->EventWidget; } inline TGadgetEvent *gadgetEvent() const { return (TGadgetEvent *)&((tevent_any)this)->EventGadget; } inline TMenuEvent *menuEvent() const { return (TMenuEvent *)&((tevent_any)this)->EventMenu; } inline TSelectionEvent *selectionEvent() const { return (TSelectionEvent *)&((tevent_any)this)->EventSelection; } inline TSelectionNotifyEvent *selectionNotifyEvent() const { return (TSelectionNotifyEvent *)&((tevent_any)this)->EventSelectionNotify; } inline TSelectionRequestEvent *selectionRequestEvent() const { return (TSelectionRequestEvent *)&((tevent_any)this)->EventSelectionRequest; } inline TClipboard *clipboard() const { return (TClipboard *)&((tevent_any)this)->EventSelectionNotify; } }; class TMsg : public s_tmsg { protected: inline TMsg() { } inline ~TMsg() { } public: static TMsg *create(uldat Type, uldat Len, TEvent *E = 0) { TMsg *M = (TMsg *)TwCreateMsg(Type, Len); if (M && E) TwCopyMem((void *)E, (void *)M->event(), Len); return M; } /* * you should call TMsg::free( ) ONLY on messages created * with `TMsg::create(...)' or with `TW::cloneReadMsg(bool)' !!! */ inline void free() { TwDeleteMsg((tmsg)this); } inline uldat len() const { return Len; } inline uldat magic() const { return Magic; } inline uldat type() const { return Type; } inline TEvent *event() const { return (TEvent *)&Event; } }; class TMsgPort : public TObj { protected: inline TMsgPort() { } public: inline ~TMsgPort() { } inline TMsgPort(TW *dpy, const char *name); /* forward */ /* * TODO: * byte TwSendMsg(tmsgport MsgPort, tmsg Msg); * void TwBlindSendMsg(tmsgport MsgPort, tmsg Msg); */ static inline tmsgport findMsgPort(const char *Name, tmsgport Prev, byte NameLen) { return TwFindMsgPort(Prev, NameLen, Name); } static inline tmsgport findMsgPort(const char *Name, tmsgport Prev = TW_NOID) { return TwFindMsgPort(Prev, strlen(Name), Name); } static inline tmenu firstMenu(tmsgport MsgPortId) { return TwFirstMenu(MsgPortId); } inline tmenu firstMenu() const { return TwFirstMenu(Id); } }; class TDialog : public TWindow { protected: inline TDialog() { } public: inline ~TDialog() { } static inline uldat message(const char *title, const char *text, const char *button1, const char *button2 = 0, const char *button3 = 0, const char *button4 = 0) { return 0; } }; typedef void (*TFnListener)(TEvent *, void *); typedef void (TEmpty::*TMtdListener)(TEvent *, void *); typedef void (*TFnDefaultListener)(TMsg *, void *); typedef void (TEmpty::*TMtdDefaultListener)(TMsg *, void *); class TListener { friend class TW; protected: inline TListener() { } tlistener T; TEvent *Event; public: inline ~TListener() { if (Event) delete Event; TwSetTEListener(T, 0, NULL); TwDeleteListener(T); } inline TListener(TFnListener listener, void *arg = 0) { T = TwCreateListener(0, (tevent_any)(Event = NULL), (tfn_listener)listener, arg); } inline TListener *add() { TwInsertListener(T); return this; } inline TListener *add(TEvent *event, uldat type) { TwSetTEListener(T, type, (tevent_any)(Event = event)); return add(); } inline void remove() const { TwRemoveListener(T); } }; class TListenerNonStatic : public TListener { friend class TW; protected: TEmpty *MtdThis; TMtdListener MtdListener; void *MtdArg; inline TListenerNonStatic() { } /* * the only way I know to call a non-static C++ method from C * (in this case from TwMainLoop()) is to wrap it in a static method. * and the only way to let the static method know what it must call is * to pass it as argument (in this case `arg'). */ static void wrapper(TEvent *E, void *arg) { TListenerNonStatic *This = (TListenerNonStatic *)arg; TEmpty *MtdThis = This->MtdThis; TMtdListener MtdListener = This->MtdListener; void *MtdArg = This->MtdArg; (MtdThis->*MtdListener)(E, MtdArg); } public: inline ~TListenerNonStatic() { } /* * here we must "cheat" : * as said above, we cannot call a non-static C++ method * (TMtdListener listener) from C, so we set `wrapper' above * as the listener to be called from C and let it call the real listener. * Of course we must set `this->Arg' to point to `this' so that `wrapper' * can extract the fields it needs. */ inline TListenerNonStatic(TEmpty *This, TMtdListener listener, void *arg = 0) : TListener(wrapper, (void *)this) { MtdThis = This; MtdListener = listener; MtdArg = arg; } }; /* * in order to allow adding listeners with slightly different prototypes, * we force a cast to the exact needed types. The macro below will fail * if you exagerate. * In particular, `This' should be a pointer to a class derived from `TEmpty' * (all Tw++ classes, except for T*Msg, T*Event and T*Listener* are * derived from `TEmpty') * and `L' must be a method pointer with prototype compatible to * `void (TEmpty::*)(void *, TEvent *)' -- possibly with `TEmpty::*' * replaced by a method pointer from the same class as `This'. */ #define TListenerSTATIC(L) TListener((TFnListener)L) #define TListenerSTATIC2(L, arg) TListener((TFnListener)L, (void *)arg) #define TListenerNONSTATIC(This, L) TListenerNonStatic((TEmpty *)This, (TMtdListener)L) #define TListenerNONSTATIC2(This, L, arg) \ TListenerNonStatic((TEmpty *)This, (TMtdListener)L, (void *)arg) /* shortcuts */ #define TLS(L) new TListenerSTATIC(L) #define TLS2(This, L, arg) new TListenerSTATIC2(This, L, arg) #define TL(This, L) new TListenerNONSTATIC(This, L) #define TL2(This, L, arg) new TListenerNONSTATIC2(This, L, arg) /* * same trick for default listeners: */ class TDefaultListener { protected: inline TDefaultListener() { } public: TFnDefaultListener Listener; void *Arg; inline ~TDefaultListener() { } inline TDefaultListener(TFnDefaultListener listener, void *arg = 0) { Listener = listener; Arg = arg; } }; class TDefaultListenerNonStatic : public TDefaultListener { friend class TW; protected: TMtdDefaultListener MtdListener; TEmpty *MtdThis; void *MtdArg; inline TDefaultListenerNonStatic() { } static void wrapper(TMsg *M, void *arg) { TDefaultListenerNonStatic *This = (TDefaultListenerNonStatic *)arg; TEmpty *MtdThis = This->MtdThis; TMtdDefaultListener MtdListener = This->MtdListener; void *MtdArg = This->MtdArg; (MtdThis->*MtdListener)(M, MtdArg); } public: inline ~TDefaultListenerNonStatic() { } inline TDefaultListenerNonStatic(TEmpty *This, TMtdDefaultListener listener, void *arg = 0) : TDefaultListener(wrapper, (void *)this) { MtdThis = This; MtdListener = listener; MtdArg = arg; } }; #define TDefaultListenerSTATIC(L) TDefaultListener((TFnDefaultListener)L) #define TDefaultListenerSTATIC2(L, arg) TDefaultListener((TFnDefaultListener)L, (void *)arg) #define TDefaultListenerNONSTATIC(This, L) \ TDefaultListenerNonStatic((TEmpty *)This, (TMtdDefaultListener)L) #define TDefaultListenerNONSTATIC2(This, L, arg) \ TDefaultListenerNonStatic((TEmpty *)This, (TMtdDefaultListener)L, (void *)arg) /* shortcuts */ #define TDLS(L) new TDefaultListenerSTATIC(L) #define TDLS2(L, arg) new TDefaultListenerSTATIC2(L, arg) #define TDL(This, L) new TDefaultListenerNONSTATIC(This, L) #define TDL2(This, L, arg) new TDefaultListenerNONSTATIC2(This, L, arg) class TW : public TEmpty { protected: TMsgPort *MsgPort; bool Checked, Open; public: inline TW() { MsgPort = (TMsgPort *)0; Checked = Open = false; } inline ~TW() { close(); } static inline void configMalloc(void *(*my_malloc)(size_t), void *(*my_realloc)(void *, size_t), void (*my_free)(void *)) { TwConfigMalloc(my_malloc, my_realloc, my_free); } static inline uldat FindFunction(const char *name, const char *format) { return TwFindFunction(strlen(name), name, strlen(format), format); } static inline bool enableGzip() { return TwEnableGzip(); } static inline bool disableGzip() { return TwDisableGzip(); } /* the following methods are used by clients that want * to register themselves as displays of the server */ static inline void needResizeDisplay() { TwNeedResizeDisplay(); } static inline void attachHW(const char *name, byte flags) { TwAttachHW(strlen(name), name, flags); } static inline const char *attachGetReply(uldat *len) { return (const char *)TwAttachGetReply(len); } static inline void attachConfirm() { TwAttachConfirm(); } static inline bool detachHW(const char *name) { return TwDetachHW(strlen(name), name); } /* ok, back to normal methods */ static inline void setFontTranslation(const byte trans[0x80]) { TwSetFontTranslation(trans); } inline bool checkMagic() { TW_DECL_MAGIC(id); return Checked = TwCheckMagic(id); } inline bool open(const char *dpy = 0) { return Open = (Checked || checkMagic()) && TwOpen(dpy); } inline void close() { TwClose(); Open = Checked = false; } inline TMsgPort *getMsgPort() const { return MsgPort; } inline void setMsgPort(TMsgPort *P) { MsgPort = P; } inline bool isOpen() const { return Open; } static inline void beep() { // TwBeep(); } static inline tobj getOwnerSelection() { return TwGetOwnerSelection(); } static inline void exportSelection(tany Time = TW_SEL_CURRENTTIME, tany Frac = TW_SEL_CURRENTTIME) { TwSetOwnerSelection(Time, Frac); } static inline void setOwnerSelection(tany Time = TW_SEL_CURRENTTIME, tany Frac = TW_SEL_CURRENTTIME) { TwSetOwnerSelection(Time, Frac); } static inline void requestSelection(tobj Owner, uldat ReqPrivate = TW_NOID) { TwRequestSelection(Owner, ReqPrivate); } static inline void requestSelection() { TwRequestSelection(TwGetOwnerSelection(), TW_NOID); } static inline void notifySelection(tobj Requestor, uldat ReqPrivate, uldat Magic, const char MIME[TW_MAX_MIMELEN], uldat Len, const char *Data) { TwNotifySelection(Requestor, ReqPrivate, Magic, MIME, Len, Data); } static inline tscreen firstScreen() { return TwFirstScreen(); } static inline dat getDisplayWidth() { return TwGetDisplayWidth(); } static inline dat getDisplayHeight() { return TwGetDisplayHeight(); } static inline int connectionFd() { return TwConnectionFd(); } static inline uldat libraryVersion() { return TwLibraryVersion(); } static inline uldat serverVersion() { return TwServerVersion(); } static inline bool inPanic() { return TwInPanic(); } static inline bool flush() { return TwFlush(); } static inline byte timidFlush() { return TwTimidFlush(); } static inline bool sync() { return TwSync(); } static inline TMsg *pendingMsg() { return (TMsg *)TwPendingMsg(); } static inline TMsg *peekMsg() { return (TMsg *)TwPeekMsg(); } static inline TMsg *readMsg(bool Wait) { return (TMsg *)TwReadMsg(Wait); } static inline TMsg *cloneReadMsg(bool Wait) { return (TMsg *)TwCloneReadMsg(Wait); } static inline TListener *addListener(TKeyEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_WIDGET_KEY, L); } static inline TListener *addListener(TMouseEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_WIDGET_MOUSE, L); } static inline TListener *addListener(TControlEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_USER_CONTROL, L); } static inline TListener *addListener(TClientMsgEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_USER_CLIENTMSG, L); } static inline TListener *addListener(TDisplayEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_DISPLAY, L); } static inline TListener *addListener(TWidgetEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_WIDGET_CHANGE, L); } static inline TListener *addListener(TGadgetEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_WIDGET_GADGET, L); } static inline TListener *addListener(TMenuEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_MENU_ROW, L); } static inline TListener *addListener(TSelectionEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_SELECTION, L); } static inline TListener *addListener(TSelectionNotifyEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_SELECTIONNOTIFY, L); } static inline TListener *addListener(TSelectionRequestEvent *E, TListener *L) { return addListener((TEvent *)E, TW_MSG_SELECTIONREQUEST, L); } /* * these are aliases to allow writing * TW::addListener(new T*Event(...), listener [,arg]); * instead of * TW::addListener(new T*Event(...), new TListener(listener [,arg])); * * if you want to use a non-static method as listener, you must use: * TW::addListener(new T*Event(...), new TListenerNONSTATIC(listener, arg)); */ static inline TListener *addListener(TKeyEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline TListener *addListener(TMouseEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline TListener *addListener(TControlEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline TListener *addListener(TClientMsgEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline TListener *addListener(TDisplayEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline TListener *addListener(TWidgetEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline TListener *addListener(TGadgetEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline TListener *addListener(TMenuEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline TListener *addListener(TSelectionEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline TListener *addListener(TSelectionNotifyEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline TListener *addListener(TSelectionRequestEvent *E, TFnListener listener, void *arg = 0) { return addListener(E, new TListener(listener, arg)); } static inline void removeListener(TListener *L) { L->remove(); } static inline void deleteListener(TListener *L) { delete L; } private: static inline TListener *addListener(TEvent *E, uldat type, TListener *L) { return L->add(E, type); } public: static inline TDefaultListener *setDefaultListener(TDefaultListener *L) { TwSetDefaultListener((tfn_default_listener)L->Listener, L->Arg); return L; } /* * this is an alias to allow writing * TW::setDefaultListener(listener [,arg]); * instead of * TW::setDefaultListener(new TDefaultListener(listener [,arg])); * * if you want to use a non-static method as default listener, you must use: * TW::setDefaultListener(new TDefaultListenerNONSTATIC(listener, arg)); */ static inline void setDefaultListener(TFnDefaultListener listener, void *arg = 0) { TwSetDefaultListener((tfn_default_listener)listener, arg); } static inline byte mainLoop() { return TwMainLoop(); } static inline byte exec() { return TwMainLoop(); } static inline uldat error() { return TwErrno; } static inline uldat errorDetail() { return TwErrnoDetail; } static inline const char *strError(uldat e) { return (const char *)TwStrError(e); } static inline const char *strErrorDetail(uldat e, uldat d) { return (const char *)TwStrErrorDetail(e, d); } static inline void dumpError(const char *argv0) { uldat e = error(); fprintf(stderr, "%s: libtw error: %s%s\n", argv0, strError(e), strErrorDetail(e, errorDetail())); } }; inline TMsgPort::TMsgPort(TW *dpy, const char *name) { Id = TwCreateMsgPort(strlen(name), name); dpy->setMsgPort(this); } #endif /* TW_PLUS_PLUS_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/Tw.h��������������������������������������������������������������������������0000664�0000000�0000000�00000025557�13775351206�0015310�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Tw.h -- main include for all libtw data types, functions and macros * * Copyright (C) 1999-2001 by Massimiliano Ghilardi * * 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. * */ /* * <*> B I G F A T W A R N I N G <*> * * Tw_PendingMsg(), Tw_PeekMsg(), Tw_ReadMsg() and Tw_CloneReadMsg() * return a (tmsg) pointer to data in a static buffer. * the pointer becomes invalid after a call * to one of the following functions: * (but calling them with an arg pointing to data inside tmsg is legal, * even with this side effect) * * Tw_Sync(); * Tw_PeekMsg(); * Tw_ReadMsg(); * Tw_CloneReadMsg(); * Tw_CreateGadget(); * Tw_FindWidgetAtWidget(); * Tw_CreateWindow(); * Tw_Create4Menu2Row(); * Tw_Create4MenuWindow(); * Tw_Create4MenuMenuItem(); * Tw_CreateMsgPort(); * Tw_CreateMenu(); * Tw_FirstScreen(); * Tw_FirstMsgPort(); * [...] * * and in general after a call to any Tw_*() function of Tw.h * with non-void return value, so that it sends something * to the server and waits for the server to send the return value. * * If you are using threads, or just have a doubt that your code might * reference the message returned by Tw_ReadMsg() * after a call to one of the above functions, use Tw_CloneReadMsg() : * it's just like Tw_ReadMsg(), except that it returns a Tw_AllocMem() copy * of the message, that you can use as long as you wish. Just remember to * Tw_FreeMem() it when done! * * Other important notes: * 1. Only ONE MsgPort can exists at max on each connection. * 2. Tw_DeleteMsgPort() calls Tw_DeleteMenu() on all menus created by the client * and Tw_DeleteWidget[/Gadget/Window]() on all gadgets/widgets/windows created by the client. * 3. Tw_DeleteMenu() calls Tw_UnMapWindow() on all windows which use that menu. * 4. Tw_DeleteWidget[/Gadget/Window]() calls Tw_UnMapWidget() on all sub-gadgets/widgets/windows * of that widget, does NOT call Tw_DeleteWidget[/Gadget/Window]() recursively on them! * If you wish to delete a widget and all sub-widgets inside it, * use Tw_RecursiveDeleteWidget[/Gadget/Window]() * * also, if you exit() from your program without calling Tw_Flush(), Tw_Sync() or Tw_Close(), * pending data will *NOT* be sent to the server. */ #ifndef TW_H #define TW_H #ifdef __cplusplus extern "C" { #endif #if 0 } #endif #include <Tw/Tw_defs.h> #include <Tw/Twtypes.h> #include <Tw/missing.h> #include <Tw/mouse.h> /** type for groups of radio buttons */ typedef tobj tgroup; /** type for generic widgets */ typedef tobj twidget; /** type for buttons */ typedef tobj tgadget; /** type for windows */ typedef tobj twindow; /** type for screens */ typedef tobj tscreen; /** type for rows */ typedef tobj trow; /** type for menu items */ typedef tobj tmenuitem; /** type for menu bars */ typedef tobj tmenu; /** type for client message ports */ typedef tobj tmsgport; /** type for server-side mutexes (used for inter-client synchronization) */ typedef tobj tmutex; /** type for server topmost object */ typedef tobj tall; /* types for messages from server */ typedef struct s_tevent_common *tevent_common; /** type for common part of the various events a client can receive inside a tmsg */ struct s_tevent_common { twidget W; udat Code, pad; } TW_ATTR_TYPE_PACKED; typedef struct s_tevent_display *tevent_display; /** type for display-driver related events (not used by normal clients) */ struct s_tevent_display { twidget W; /* not used here */ udat Code, Len; dat X, Y; char Data[sizeof(uldat)]; /* [len] bytes actually */ } TW_ATTR_TYPE_PACKED; #define TW_SIZEOF_TEVENT_DISPLAY (sizeof(struct s_tevent_display) - sizeof(uldat)) /* Code */ enum e_tevent_display_code { TW_EV_DPY_DrawTCell = 0, TW_EV_DPY_FlushHW = 1, TW_EV_DPY_KeyboardEvent = 2, TW_EV_DPY_MouseEvent = 3, TW_EV_DPY_SetCursorType = 4, TW_EV_DPY_MoveToXY = 5, TW_EV_DPY_Resize = 6, TW_EV_DPY_SelectionExport = 8, TW_EV_DPY_DragArea = 9, TW_EV_DPY_Beep = 10, TW_EV_DPY_Configure = 11, TW_EV_DPY_SetPalette = 12, TW_EV_DPY_ResetPalette = 13, TW_EV_DPY_Helper = 14, TW_EV_DPY_RedrawVideo = 15, TW_EV_DPY_Quit = 16, }; typedef struct s_tevent_keyboard *tevent_keyboard; /** type for keypress events */ struct s_tevent_keyboard { twidget W; udat Code, ShiftFlags, SeqLen; byte pad; char AsciiSeq[1]; /* actually (SeqLen+1) bytes, including final \0 */ } TW_ATTR_TYPE_PACKED; typedef struct s_tevent_mouse *tevent_mouse; /** type for mouse events */ struct s_tevent_mouse { twidget W; udat Code, ShiftFlags; dat X, Y; /* these coords are relative to the widget top-left corner */ } TW_ATTR_TYPE_PACKED; typedef struct s_tevent_widget *tevent_widget; /** type for widget-related events (resize,expose,...) */ struct s_tevent_widget { twidget W; udat Code, Flags; dat XWidth, YWidth; dat X, Y; } TW_ATTR_TYPE_PACKED; /* some TW_MSG_WIDGET_CHANGE codes */ #define TW_MSG_WIDGET_RESIZE 0 #define TW_MSG_WIDGET_EXPOSE 1 /* some TW_MSG_WIDGET_CHANGE flags */ #define TW_MSG_WIDGETFL_SHADED 1 typedef struct s_tevent_gadget *tevent_gadget; /** type for gadget-related events (user click on buttons) */ struct s_tevent_gadget { twidget W; udat Code, Flags; /* the Flags of the gadget that was (de)activated */ } TW_ATTR_TYPE_PACKED; typedef struct s_tevent_menu *tevent_menu; /** type for menu-related events (user activation of a menu row) */ struct s_tevent_menu { twindow W; udat Code, pad; tmenu Menu; trow Row; } TW_ATTR_TYPE_PACKED; typedef struct s_tevent_selection *tevent_selection; /** type for 'user wants to paste selection' event */ struct s_tevent_selection { twidget W; udat Code, pad; /* unused */ dat X, Y; /* these coords are absolute, to allow cross-window cut-n-paste */ } TW_ATTR_TYPE_PACKED; #define TW_MAX_MIMELEN 64 typedef struct s_tevent_selectionnotify *tevent_selectionnotify; /** type for selection notification event (selection owner sends clipboard to who asks for it) */ struct s_tevent_selectionnotify { twidget W; udat Code, pad; /* unused */ uldat ReqPrivate; uldat Magic; char MIME[TW_MAX_MIMELEN]; uldat Len; char Data[sizeof(uldat)]; /* Data[] is Len bytes actually */ } TW_ATTR_TYPE_PACKED; /*SelectionNotify Magic*/ #define TW_SEL_UTF8MAGIC ((uldat)0x55746638) /* UTF-8 */ #define TW_SEL_FILEMAGIC ((uldat)0x46696c65) #define TW_SEL_URLMAGIC ((uldat)0xAB1691BA) #define TW_SEL_DATAMAGIC ((uldat)0xDA1AA1AD) /* check MIME if you get this */ #define TW_SEL_IDMAGIC ((uldat)0x49644964) typedef struct s_tevent_selectionrequest *tevent_selectionrequest; /** type to request selection to owner */ struct s_tevent_selectionrequest { twidget W; udat Code, pad; /* unused */ tmsgport Requestor; uldat ReqPrivate; } TW_ATTR_TYPE_PACKED; typedef struct s_tevent_control *tevent_control; /** type for inter-client control messages (quit,restart,open,dragndrop,...) */ struct s_tevent_control { twidget W; udat Code, Len; dat X, Y; char Data[sizeof(uldat)]; /* [Len+1] bytes actually, Data[Len] == '\0' */ } TW_ATTR_TYPE_PACKED; #define TW_SIZEOF_TEVENT_CONTROL (sizeof(struct s_tevent_control) - sizeof(uldat)) /* some TW_MSG_CONTROL codes */ #define TW_MSG_CONTROL_QUIT ((udat)0) #define TW_MSG_CONTROL_RESTART ((udat)1) #define TW_MSG_CONTROL_OPEN ((udat)2) #define TW_MSG_CONTROL_DRAGNDROP ((udat)3) typedef struct s_tevent_clientmsg *tevent_clientmsg; /** type for inter-client arbitrary messages */ struct s_tevent_clientmsg { twidget W; udat Code, Format; uldat Len; union { byte b[sizeof(uldat)]; udat d[sizeof(uldat) / sizeof(udat)]; uldat l[1]; } Data; /* [Len] bytes actually */ } TW_ATTR_TYPE_PACKED; #define TW_SIZEOF_TEVENT_CLIENTMSG (sizeof(struct s_tevent_clientmsg) - sizeof(uldat)) typedef union s_tevent_any *tevent_any; /** union of all event types */ union s_tevent_any { struct s_tevent_common EventCommon; struct s_tevent_display EventDisplay; struct s_tevent_keyboard EventKeyboard; struct s_tevent_mouse EventMouse; struct s_tevent_widget EventWidget; struct s_tevent_gadget EventGadget; struct s_tevent_menu EventMenu; struct s_tevent_selection EventSelection; struct s_tevent_selectionnotify EventSelectionNotify; struct s_tevent_selectionrequest EventSelectionRequest; struct s_tevent_control EventControl; struct s_tevent_clientmsg EventClientMsg; } TW_ATTR_TYPE_PACKED; typedef struct s_tmsg *tmsg; /** type to send/receive events; contains union s_tevent_any */ struct s_tmsg { uldat Len; /* length of this struct, including `Len' field */ uldat Magic; /* == msg_magic (if user-created) or == MSG_MAGIC (if received) */ uldat Type; /* only (udat) part is significative */ union s_tevent_any Event; } TW_ATTR_TYPE_PACKED; /* Msg Type : */ #define TW_MSG_DISPLAY ((udat)0x0FFF) #define TW_MSG_SYSTEM_FIRST ((udat)0x1000) #define TW_MSG_WIDGET_KEY ((udat)0x1000) #define TW_MSG_WIDGET_MOUSE ((udat)0x1001) #define TW_MSG_WIDGET_CHANGE ((udat)0x1002) #define TW_MSG_WIDGET_GADGET ((udat)0x1003) #define TW_MSG_MENU_ROW ((udat)0x1004) #define TW_MSG_SELECTION ((udat)0x1005) #define TW_MSG_SELECTIONNOTIFY ((udat)0x1006) #define TW_MSG_SELECTIONREQUEST ((udat)0x1007) #define TW_MSG_SELECTIONCLEAR ((udat)0x1008) #define TW_MSG_USER_FIRST ((udat)0x2000) #define TW_MSG_USER_CONTROL ((udat)0x2000) #define TW_MSG_USER_CONTROL_REPLY ((udat)0x2101) #define TW_MSG_USER_CLIENTMSG ((udat)0x2100) /** type containing information about server connection (it's an opaque pointer) */ typedef struct s_tw_d *tdisplay; /** type of function pointers passed to libtw as listeners (i.e. tmsg handlers) */ typedef void (*tfn_listener)(tevent_any, void *); /** type of function pointer passed to libtw as default listener (i.e. tmsg handler) */ typedef void (*tfn_default_listener)(tmsg, void *); /** type containing information about a listener (it's an opaque pointer) */ typedef struct s_tlistener *tlistener; tdisplay Tw_Open(TW_CONST char *Tw_Display); void Tw_Close(tdisplay TwD); /** Tw_AttachHW() flags: */ #define TW_ATTACH_HW_REDIRECT 1 #define TW_ATTACH_HW_EXCLUSIVE 2 /** Tw_CirculateWidgets() and Tw_CirculateRows() flags: */ #define TW_CIRCULATE_RAISE_LAST 0 #define TW_CIRCULATE_LOWER_FIRST 1 /* * maximum allowed Code for Gadgets, Rows and MenuRows is (TW_COD_RESERVED - 1) i.e. 0xF7FF */ #define TW_COD_RESERVED 0xF800 /* Tw_CreateMsgPort() flags */ #define TW_TIMER_ALWAYS ((byte)1) #define TW_TIMER_ONCE ((byte)2) /* Tw_SetOwnerSelection() Time useful value: */ #define TW_SEL_CURRENTTIME ((time_t)0) /** Tw_SetServerUid() privileges: */ #define TW_PRIV_NONE 0 #define TW_PRIV_SGIDTTY 1 #define TW_PRIV_SUIDROOT 2 /** return 1 if server supports all given libtw functions */ byte Tw_FindLFunction(tdisplay TwD, ...); #include <Tw/common_m4.h> #include <Tw/proto_m4.h> #include <Tw/alias_m4.h> #include <Tw/Tw1.h> #ifdef __cplusplus } #endif #endif /* TW_H */ �������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/Tw1.h�������������������������������������������������������������������������0000664�0000000�0000000�00000001750�13775351206�0015356�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Tw1.h -- single-head compatibility defines and prototypes for libtw * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TW1_H #define TW1_H /* * libtw.so.1 --- single head compatibility. these are too handy to drop them. */ extern tdisplay Tw_DefaultD; #define TwOpen(d) (!!(Tw_DefaultD = Tw_Open(d))) #define TwClose() (Tw_Close(Tw_DefaultD), Tw_DefaultD = (tdisplay)0) #ifdef __GNUC__ /* GCC has variable-arguments macros (they are ugly and tricky, but work) */ #define TwFindLFunction(Function...) Tw_FindLFunction(Tw_DefaultD, ##Function) #else byte TwFindLFunction(void *Function, ...); #endif #include <Tw/common1_m4.h> #include <Tw/proto1_m4.h> #include <Tw/alias1_m4.h> #endif /* TW1_H */ ������������������������twin-0.9.0/include/Tw/Tw_defs.h���������������������������������������������������������������������0000664�0000000�0000000�00000013314�13775351206�0016275�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Tw_defs.h -- #defines for libtw macros * * Copyright (C) 1999-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TW_DEFS_H #define TW_DEFS_H enum tw_magic { /* "Twin" in native byte-order */ TWIN_MAGIC = 0x6E697754ul, /* "Go!!" in native byte-order */ TW_GO_MAGIC = 0x21216F47ul, /* "Wait" in native byte-order */ TW_WAIT_MAGIC = 0x74696157ul, /* "Stop" in native byte-order */ TW_STOP_MAGIC = 0x706F7453ul, }; enum { TW_INET_PORT = 7754, }; /* these must be #defines, they are stringified with # preprocessor macro */ #define TW_SMALLBUFF 256 #define TW_BIGBUFF 4096 /* return from signal macros */ #define TW_RETFROMSIGNAL(value) return TW_ARG_IFNOTVOID(value, TW_RETSIGTYPE) #define TW_ARG_IFNOTVOID(value, type) TW_CAT(TW_ARG_IFNOTVOID_, type)(value) #define TW_ARG_IFNOTVOID_void(value) #define TW_ARG_IFNOTVOID_int(value) (value) /* maximum number of arguments of a libtw function */ #define TW_MAX_ARGS_N 20 /* enum for VGA (not ANSI!) colors */ enum tcolor_e { tblack = 0, tblue = 1, tgreen = 2, tcyan = tblue | tgreen, tred = 4, tmagenta = tblue | tred, tyellow = tgreen | tred, twhite = tblue | tgreen | tred, thigh = 8, tmaxcol = 0xF, }; #define TANSI2VGA(col) (((col)&0x1 ? tred : 0) | ((col)&0x2 ? tgreen : 0) | ((col)&0x4 ? tblue : 0)) #define TVGA2ANSI(col) TANSI2VGA(col) /* foreground / background colors handling */ /* * NOTE: draw.c:DoShadowColor() assumes that * TCOL(fg1, bg1) | TCOL(fg2, bg2) == TCOL(fg1|fg2, bg1|bg2) * and * TCOL(fg1, bg1) & TCOL(fg2, bg2) == TCOL(fg1&fg2, bg1&bg2) */ #define TFG(col) (col) #define TBG(col) ((col) << 4) #define TCOL(fg, bg) (TFG(fg) | TBG(bg)) #define TCOLBG(col) ((col) >> 4) #define TCOLFG(col) ((col)&0x0F) /**********************************/ enum { tmsg_magic = 0xA3A61CE4ul, /* this must match msg_magic in server/obj/magic.h */ }; /* keyboard events ShiftFlags */ enum tw_kbd_shift_flag { TW_KBD_SHIFT_FL = 0x1, TW_KBD_CTRL_FL = 0x2, TW_KBD_ALT_FL = 0x4, TW_KBD_CAPS_LOCK = 0x8, TW_KBD_NUM_LOCK = 0x10, }; /* Widget->Attr */ /* * ask the server to send events even for mouse motion without any pressed button. * works only if WIDGET_WANT_MOUSE is set too. */ enum tw_widget_attrib { TW_WIDGET_WANT_MOUSE_MOTION = 0x0001, TW_WIDGET_WANT_KEYS = 0x0002, TW_WIDGET_WANT_MOUSE = 0x0004, TW_WIDGET_WANT_CHANGES = 0x0008, TW_WIDGET_AUTO_FOCUS = 0x0010, }; /* Widget->Flags */ enum tw_widget_flag { TW_WIDGETFL_USEEXPOSE = 0x02, TW_WIDGETFL_USEFILL = 0x03, TW_WIDGETFL_USEANY = 0x07, /* mask of all above ones */ TW_WIDGETFL_NOTVISIBLE = 0x8000, }; /* Gadget->Attr */ enum tw_gadget_attrib { TW_GADGET_WANT_MOUSE_MOTION = TW_WIDGET_WANT_MOUSE_MOTION, /* 0x0001 */ TW_GADGET_WANT_KEYS = TW_WIDGET_WANT_KEYS, /* 0x0002 */ TW_GADGET_WANT_MOUSE = TW_WIDGET_WANT_MOUSE, /* 0x0004 */ TW_GADGET_WANT_CHANGES = TW_WIDGET_WANT_CHANGES, /* 0x0008 */ TW_GADGET_AUTO_FOCUS = TW_WIDGET_AUTO_FOCUS, /* 0x0010 */ }; /* Gadget->Flags */ enum tw_gadget_flag { TW_GADGETFL_USETEXT = 0x00, /* it's the default */ TW_GADGETFL_USEEXPOSE = TW_WIDGETFL_USEEXPOSE, /* 0x02 */ TW_GADGETFL_USEFILL = TW_WIDGETFL_USEFILL, /* 0x03 */ TW_GADGETFL_USEANY = TW_WIDGETFL_USEANY, /* 0x07 */ TW_GADGETFL_DISABLED = 0x0020, TW_GADGETFL_TEXT_DEFCOL = 0x0040, /* this makes the gadget 'checkable' : can be in 'checked' or 'unchecked' state. * also necessary to put the gadget in a group */ TW_GADGETFL_TOGGLE = 0x0080, TW_GADGETFL_PRESSED = 0x0100, TW_GADGETFL_NOTVISIBLE = TW_WIDGETFL_NOTVISIBLE, }; /* Window->Attr */ enum tw_window_attrib { TW_WINDOW_WANT_MOUSE_MOTION = TW_WIDGET_WANT_MOUSE_MOTION, /* 0x0001 */ TW_WINDOW_WANT_KEYS = TW_WIDGET_WANT_KEYS, /* 0x0002 */ TW_WINDOW_WANT_MOUSE = TW_WIDGET_WANT_MOUSE, /* 0x0004 */ TW_WINDOW_WANT_CHANGES = TW_WIDGET_WANT_CHANGES, /* 0x0008 */ TW_WINDOW_AUTO_FOCUS = TW_WIDGET_AUTO_FOCUS, /* 0x0010 */ TW_WINDOW_DRAG = 0x0100, TW_WINDOW_RESIZE = 0x0200, TW_WINDOW_CLOSE = 0x0400, TW_WINDOW_ROLLED_UP = 0x0800, TW_WINDOW_X_BAR = 0x1000, TW_WINDOW_Y_BAR = 0x2000, TW_WINDOW_AUTO_KEYS = 0x4000, }; /* Window->Flags */ enum tw_window_flag { TW_WINDOWFL_USEROWS = 0x00, /* it's the default */ TW_WINDOWFL_USECONTENTS = 0x01, TW_WINDOWFL_USEEXPOSE = TW_WIDGETFL_USEEXPOSE, /* 0x02 */ TW_WINDOWFL_USEFILL = TW_WIDGETFL_USEFILL, /* 0x03 */ TW_WINDOWFL_USEANY = TW_WIDGETFL_USEANY, /* 0x07 */ TW_WINDOWFL_CURSOR_ON = 0x10, TW_WINDOWFL_MENU = 0x20, TW_WINDOWFL_DISABLED = 0x40, TW_WINDOWFL_BORDERLESS = 0x80, TW_WINDOWFL_ROWS_INSERT = 0x0100, TW_WINDOWFL_ROWS_DEFCOL = 0x0200, TW_WINDOWFL_ROWS_SELCURRENT = 0x0400, TW_WINDOWFL_NOTVISIBLE = TW_WIDGETFL_NOTVISIBLE, }; /* Screen->Flags */ enum tw_screen_flag { TW_SCREENFL_USEBG = 0x00, /* it's the default */ TW_SCREENFL_USEEXPOSE = TW_WIDGETFL_USEEXPOSE, /* 0x02 */ TW_SCREENFL_USEFILL = TW_WIDGETFL_USEFILL, /* 0x03 */ TW_SCREENFL_USEANY = TW_WIDGETFL_USEANY, /* 0x07 */ TW_SCREENFL_NOTVISIBLE = TW_WIDGETFL_NOTVISIBLE, }; /* Window->CursorType : */ /* These come from linux/drivers/char/console.c */ enum tw_window_cursor { TW_DEFAULTCURSOR = 0, TW_NOCURSOR = 1, TW_LINECURSOR = 2, TW_SOLIDCURSOR = 8, }; /* Row->Flags : */ enum tw_row_flag { TW_ROW_INACTIVE = 0x00, TW_ROW_ACTIVE = 0x01, TW_ROW_IGNORE = 0x02, TW_ROW_DEFCOL = 0x04, }; #endif /* TW_DEFS_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/Twavl.h�����������������������������������������������������������������������0000664�0000000�0000000�00000002075�13775351206�0016001�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Twavl.h -- header for AVL trees functions * * Copyright (C) 2001 by Massimiliano Ghilardi * * 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. * */ #ifndef TW_AVL_H #define TW_AVL_H #include <Tw/Twtypes.h> typedef struct s_tavl *tavl; typedef struct s_tavl TW_CONST *tavl_c; typedef int (*tavl_compare)(tavl_c, tavl_c); struct s_tavl { tavl AVLLeft, AVLRight, AVLParent; uldat AVLkey; /* a quick-compare key (hash). If equal, tavl_compare is used * to check for actual matching of two tavl nodes */ byte AVLHeight; }; #define AVLHeightOf(L) (L ? L->AVLHeight : 0) tavl AVLFind(tavl_c key, tavl base, tavl_compare cmp); void AVLInsert(tavl key, tavl base, tavl_compare cmp, tavl *root); void AVLRemove(tavl node, tavl_compare cmp, tavl *root); void AVLRebalance(tavl base, tavl_compare cmp, tavl *root); #endif /* TW_AVL_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/Twerrno.h���������������������������������������������������������������������0000664�0000000�0000000�00000003745�13775351206�0016351�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Twerrno.h -- error handling stuff for libtw * * Copyright (C) 1999-2000 by Massimiliano Ghilardi * * 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. * */ #ifndef TW_ERRNO_H #define TW_ERRNO_H #include <Tw/Twtypes.h> #define TW_EBAD_SIZES 1 #define TW_EBAD_STRUCTS 2 #define TW_ENO_DISPLAY 4 #define TW_EBAD_DISPLAY 5 #define TW_ENO_HOST 6 #define TW_ENO_AUTH 7 #define TW_ESYS_NO_MEM 8 #define TW_ESYS_NO_SOCKET 9 #define TW_ESYS_CANNOT_CONNECT 10 #define TW_ESYS_CANNOT_WRITE 11 #define TW_ESERVER_BAD_VERSION 12 #define TW_ESERVER_BAD_PROTOCOL 13 #define TW_ESERVER_BAD_ENDIAN 14 #define TW_ESERVER_BAD_SIZES 15 #define TW_ESERVER_LOST_CONNECT 16 #define TW_ESERVER_ALREADY_CONNECT 17 #define TW_ESERVER_DENIED_CONNECT 18 #define TW_ESERVER_NO_FUNCTION 19 #define TW_ESERVER_BAD_FUNCTION 20 #define TW_ESERVER_BAD_RETURN 21 #define TW_EGZIP_BAD_PROTOCOL 22 #define TW_EGZIP_INTERNAL 23 #define TW_ECALL_BAD 24 #define TW_ECALL_BAD_ARG 25 #define TW_ESERVER_READ_TIMEOUT 26 #define TW_EDETAIL_NO_MODULE 1 typedef struct tw_errno { uldat E; uldat S; /* there may actually be more fields */ } tw_errno; #ifdef __cplusplus extern "C" { #endif tw_errno *Tw_ErrnoLocation(tdisplay TwD); #define Tw_Errno(TwD) (Tw_ErrnoLocation(TwD)->E) #define Tw_ErrnoDetail(TwD) (Tw_ErrnoLocation(TwD)->S) TW_ATTR_FN_CONST TW_CONST char *Tw_StrError(TW_CONST tdisplay TwD, uldat e); TW_ATTR_FN_CONST TW_CONST char *Tw_StrErrorDetail(TW_CONST tdisplay TwD, uldat e, uldat s); #define TwErrnoLocation Tw_ErrnoLocation(Tw_DefaultD) #define TwErrno Tw_Errno(Tw_DefaultD) #define TwErrnoDetail Tw_ErrnoDetail(Tw_DefaultD) #define TwStrError(e) Tw_StrError(Tw_DefaultD, (e)) #define TwStrErrorDetail(e, s) Tw_StrErrorDetail(Tw_DefaultD, (e), (s)) #ifdef __cplusplus } #endif #endif /* TW_ERRNO_H */ ���������������������������twin-0.9.0/include/Tw/Twkeys.h����������������������������������������������������������������������0000664�0000000�0000000�00000012672�13775351206�0016176�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Twkeys.h -- keycode enum for libtw keyboard events * * Copyright (C) 2000,2016 by Massimiliano Ghilardi * * 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. * */ #ifndef TW_KEYS_H #define TW_KEYS_H enum Twkey_e { TW_Tab = 0x09, TW_Linefeed = 0x0A, TW_Return = 0x0D, TW_Escape = 0x1B, TW_space = 0x20, /* no enums for 0x21...0x7E chars: they are plain ASCII! */ /* Latin 1 */ TW_nobreakspace = 0xA0, TW_exclamdown = 0xA1, TW_cent = 0xA2, TW_sterling = 0xA3, TW_currency = 0xA4, TW_yen = 0xA5, TW_brokenbar = 0xA6, TW_section = 0xA7, TW_diaeresis = 0xA8, TW_copyright = 0xA9, TW_ordfeminine = 0xAA, TW_guillemotleft = 0xAB, /* left angle quotation mark */ TW_notsign = 0xAC, TW_hyphen = 0xAD, TW_registered = 0xAE, TW_macron = 0xAF, TW_degree = 0xB0, TW_plusminus = 0xB1, TW_twosuperior = 0xB2, TW_threesuperior = 0xB3, TW_acute = 0xB4, TW_mu = 0xB5, TW_paragraph = 0xB6, TW_periodcentered = 0xB7, TW_cedilla = 0xB8, TW_onesuperior = 0xB9, TW_masculine = 0xBA, TW_guillemotright = 0xBB /* right angle quotation mark */, TW_onequarter = 0xBC, TW_onehalf = 0xBD, TW_threequarters = 0xBE, TW_questiondown = 0xBF, TW_Agrave = 0xC0, TW_Aacute = 0xC1, TW_Acircumflex = 0xC2, TW_Atilde = 0xC3, TW_Adiaeresis = 0xC4, TW_Aring = 0xC5, TW_AE = 0xC6, TW_Ccedilla = 0xC7, TW_Egrave = 0xC8, TW_Eacute = 0xC9, TW_Ecircumflex = 0xCA, TW_Ediaeresis = 0xCB, TW_Igrave = 0xCC, TW_Iacute = 0xCD, TW_Icircumflex = 0xCE, TW_Idiaeresis = 0xCF, TW_ETH = 0xD0, TW_Ntilde = 0xD1, TW_Ograve = 0xD2, TW_Oacute = 0xD3, TW_Ocircumflex = 0xD4, TW_Otilde = 0xdD, TW_Odiaeresis = 0xD6, TW_multiply = 0xD7, TW_Ooblique = 0xD8, TW_Ugrave = 0xD9, TW_Uacute = 0xDA, TW_Ucircumflex = 0xDB, TW_Udiaeresis = 0xDC, TW_Yacute = 0xDD, TW_THORN = 0xDE, TW_ssharp = 0xDF, TW_agrave = 0xE0, TW_aacute = 0xE1, TW_acircumflex = 0xE2, TW_atilde = 0xE3, TW_adiaeresis = 0xE4, TW_aring = 0xE5, TW_ae = 0xE6, TW_ccedilla = 0xE7, TW_egrave = 0xE8, TW_eacute = 0xE9, TW_ecircumflex = 0xEA, TW_ediaeresis = 0xEB, TW_igrave = 0xEC, TW_iacute = 0xED, TW_icircumflex = 0xEE, TW_idiaeresis = 0xEF, TW_eth = 0xF0, TW_ntilde = 0xF1, TW_ograve = 0xF2, TW_oacute = 0xF3, TW_ocircumflex = 0xF4, TW_otilde = 0xF5, TW_odiaeresis = 0xF6, TW_division = 0xF7, TW_oslash = 0xF8, TW_ugrave = 0xF9, TW_uacute = 0xFA, TW_ucircumflex = 0xFB, TW_udiaeresis = 0xFC, TW_yacute = 0xFD, TW_thorn = 0xFE, TW_ydiaeresis = 0xFF, /* end Latin 1 */ TW_BackSpace = 0x7F, TW_Home = 0x100, TW_Left = 0x101, TW_Up = 0x102, TW_Right = 0x103, TW_Down = 0x104, TW_Prior = 0x105, TW_Page_Up = TW_Prior, TW_Next = 0x106, TW_Page_Down = TW_Next, TW_End = 0x107, TW_Begin = 0x108, TW_Insert = 0x109, TW_Delete = 0x10A, TW_Pause = 0x10B, TW_Scroll_Lock = 0x10C, TW_Sys_Req = 0x10D, TW_Clear = 0x10E, TW_Select = 0x110, TW_Print = 0x111, TW_Execute = 0x112, TW_Undo = 0x115, TW_Redo = 0x116, TW_Menu = 0x117, TW_Find = 0x118, TW_Cancel = 0x119, TW_Help = 0x11A, TW_Break = 0x11B, TW_Caps_Lock = 0x11C, TW_Mode_switch = TW_Caps_Lock, TW_Shift_Lock = 0x11D, TW_Num_Lock = 0x11E, TW_KP_Begin = 0x11F, TW_KP_Home = 0x120, TW_KP_Left = 0x121, TW_KP_Up = 0x122, TW_KP_Right = 0x123, TW_KP_Down = 0x124, TW_KP_Prior = 0x125, TW_KP_Page_Up = TW_KP_Prior, TW_KP_Next = 0x126, TW_KP_Page_Down = TW_KP_Next, TW_KP_End = 0x127, TW_KP_Insert = 0x128, TW_KP_Delete = 0x129, TW_KP_Multiply = 0x12A, TW_KP_Add = 0x12B, TW_KP_Separator = 0x12C, TW_KP_Subtract = 0x12D, TW_KP_Decimal = 0x12E, TW_KP_Divide = 0x12F, TW_KP_Equal = 0x130, TW_KP_F1 = 0x131, TW_KP_F2 = 0x132, TW_KP_F3 = 0x133, TW_KP_F4 = 0x134, TW_KP_Space = 0x135, TW_KP_Tab = 0x136, TW_KP_Enter = 0x137, TW_KP_0 = 0x140, TW_KP_1 = 0x141, TW_KP_2 = 0x142, TW_KP_3 = 0x143, TW_KP_4 = 0x144, TW_KP_5 = 0x145, TW_KP_6 = 0x146, TW_KP_7 = 0x147, TW_KP_8 = 0x148, TW_KP_9 = 0x149, TW_F1 = 0x150, TW_F2 = 0x151, TW_F3 = 0x152, TW_F4 = 0x153, TW_F5 = 0x154, TW_F6 = 0x155, TW_F7 = 0x156, TW_F8 = 0x157, TW_F9 = 0x158, TW_F10 = 0x159, TW_F11 = 0x15A, TW_F12 = 0x15B, TW_F13 = 0x15C, TW_F14 = 0x15D, TW_F15 = 0x15E, TW_F16 = 0x15F, TW_F17 = 0x160, TW_F18 = 0x161, TW_F19 = 0x162, TW_F20 = 0x163, TW_Shift_L = 0x164, TW_Shift_R = 0x165, TW_Control_L = 0x166, TW_Control_R = 0x167, TW_Meta_L = 0x168, TW_Meta_R = 0x169, TW_Alt_L = 0x16A, TW_Alt_R = 0x16B, TW_Alt = TW_Alt_L, TW_AltGr = TW_Alt_R, TW_Super_L = 0x16C, TW_Super_R = 0x16D, TW_Hyper_L = 0x16E, TW_Hyper_R = 0x16F, TW_EcuSign = 0x170, TW_ColonSign = 0x171, TW_CruzeiroSign = 0x172, TW_FFrancSign = 0x173, TW_LiraSign = 0x174, TW_MillSign = 0x175, TW_NairaSign = 0x176, TW_PesetaSign = 0x177, TW_RupeeSign = 0x178, TW_WonSign = 0x179, TW_NewSheqelSign = 0x17A, TW_DongSign = 0x17B, TW_EuroSign = 0x17C, /* some other key, not among the ones above */ TW_Other = 0x1FD, /* a dummy value for xterm-style mouse reporting ASCII sequences */ TW_XTermMouse = 0x1FE, TW_Null = 0x1FF, TW_KEYCODE_MAX = (TW_Null + 1), }; typedef enum Twkey_e Twkey; #endif /* TW_KEYS_H */ ����������������������������������������������������������������������twin-0.9.0/include/Tw/Twstat.h����������������������������������������������������������������������0000664�0000000�0000000�00000007733�13775351206�0016200�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Twstat.h -- functions to get informations about libtw objects. * * Copyright (C) 2001 by Massimiliano Ghilardi * * 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. * */ #ifndef TW_STAT_H #define TW_STAT_H #include <stdarg.h> #include <Tw/Twtypes.h> #define TWS__CAT(a, b) a##b #define TWS_CAT(a, b) TWS__CAT(a, b) #define TWS__STR(a) #a #define TWS_STR(a) TWS__STR(a) /* the following are hardcoded in socket.c, libtw.c and libtw ABI, don't change! */ #define TWS_void 0 #define TWS_char 1 #define TWS_byte 1 #define TWS_num 1 #define TWS_dat 2 #define TWS_udat 2 #define TWS_ldat 3 #define TWS_uldat 3 #define TWS_tcolor 4 #define TWS_topaque 5 #define TWS_tany 6 #define TWS_trune 7 #define TWS_tcell 8 #define TWS_highest 9 #define TWS_tobj 0xFF #define TWS_obj 0xFF #define TWS_last 0xFF #define TWS_vec 0x100 /* this is used as TWS_vec | TWS_<some other type> */ #define TWS_vecW 0x200 /* this is used as TWS_vecW | TWS_<some other type> */ #define TWS_array 0xFD /* shortcut for TWS_vec|TWS_vecW|TWS_byte in (byte *) format strings */ /* the following are hardcoded in libtw ABI, don't change! */ #define TWS_void_CHR '\xFE' /* '\xFF' would conflict with TWS_obj */ #define TWS_void_STR "\xFE" #define TWS_char_STR "\x01" #define TWS_byte_STR "\x01" #define TWS_num_STR "\x01" #define TWS_dat_STR "\x02" #define TWS_udat_STR "\x02" #define TWS_ldat_STR "\x03" #define TWS_uldat_STR "\x03" #define TWS_tcolor_STR "\x04" #define TWS_topaque_STR "\x05" #define TWS_tany_STR "\x06" #define TWS_trune_STR "\x07" #define TWS_tcell_STR "\x08" #define TWS_array_STR \ "\xFD" /* used by server extensions as a shortcut for (TWS_vec | TWS_vecW | TWS_byte) */ #define TWS_field_byte val._ #define TWS_field_num val._ #define TWS_field_dat val._ #define TWS_field_udat val._ #define TWS_field_ldat val._ #define TWS_field_uldat val._ #define TWS_field_tcolor val._ #define TWS_field_trune val._ #define TWS_field_tcell val._ #define TWS_field_topaque val._ #define TWS_field_tany val._ #define TWS_field_tobj val._ #define TWS_field_scalar val._ #define TWS_field_obj val.o #define TWS_field_vecV val.vec.V #define TWS_field_vecCV val.vec.CV #define TWS_field_vecL val.vec.L #ifdef __cplusplus extern "C" { #endif #if 0 } #endif tany Tw_Stat(tdisplay TwD, tobj Id, udat h); tslist Tw_StatL(tdisplay TwD, tobj Id, udat hN, ...); tslist Tw_StatA(tdisplay TwD, tobj Id, udat hN, TW_CONST udat *h); tslist Tw_StatV(tdisplay TwD, tobj Id, udat hN, va_list h); tslist Tw_CloneStat(tdisplay TwD, tobj Id, udat hN, ...); tslist Tw_CloneStatL(tdisplay TwD, tobj Id, udat hN, ...); tslist Tw_CloneStatA(tdisplay TwD, tobj Id, udat hN, TW_CONST udat *h); tslist Tw_CloneStatV(tdisplay TwD, tobj Id, udat hN, va_list h); void Tw_DeleteStat(tdisplay TwD, tslist TSL); tsfield Tw_FindStat(tdisplay TwD, tslist TSL, udat label); void Tw_ChangeField(tdisplay TwD, tobj Obj, udat field, uldat CLEARMask, uldat XORMask); #define TwStat(Id, h) Tw_Stat(Tw_DefaultD, Id, h) /* GCC has variable-arguments macros (they are ugly and tricky, but work) */ #ifdef __GNUC__ #define TwStatL(Id, hN...) Tw_StatL(Tw_DefaultD, Id, ##hN) #else tslist TwStatL(tobj Id, uldat hN, ...); #endif #define TwStatA(Id, hN, h) Tw_StatA(Tw_DefaultD, Id, hN, h) #define TwStatV(Id, hN, h) Tw_StatV(Tw_DefaultD, Id, hN, h) #ifdef __GNUC__ #define TwCloneStatL(Id, hN...) Tw_CloneStatL(Tw_DefaultD, Id, ##hN) #else tslist TwCloneStatL(tobj Id, udat hN, ...); #endif #define TwCloneStatA(Id, hN, h) Tw_CloneStatA(Tw_DefaultD, Id, hN, h) #define TwCloneStatV(Id, hN, h) Tw_CloneStatV(Tw_DefaultD, Id, hN, h) #define TwDeleteStat(TSL) Tw_DeleteStat(Tw_DefaultD, TSL) #define TwFindStat(TSL, label) Tw_FindStat(Tw_DefaultD, TSL, label) #ifdef __cplusplus } #endif #endif /* TW_STAT_H */ �������������������������������������twin-0.9.0/include/Tw/Twstat_defs.h�����������������������������������������������������������������0000664�0000000�0000000�00000067464�13775351206�0017210�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Twstat.h -- functions to get informations about libtw objects. * * Copyright (C) 2001 by Massimiliano Ghilardi * * 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. * */ #ifndef TW_STAT_DEFS_H #define TW_STAT_DEFS_H #define TWS__None 0x0000 #define TWS_obj_Id 0x0001 #define TWS_obj_Prev 0x0002 #define TWS_obj_Next 0x0003 #define TWS_obj_Parent 0x0004 #define TWS_obj_Prev_List 0x0010 #define TWS_obj_Next_List 0x0011 #define TWS_obj_Parent_List 0x0012 #define TWS_widget_Id TWS_obj_Id #define TWS_widget_Prev TWS_obj_Prev #define TWS_widget_Next TWS_obj_Next #define TWS_widget_Parent TWS_obj_Parent #define TWS_widget_Prev_List TWS_Prev_List #define TWS_widget_Next_List TWS_Next_List #define TWS_widget_Parent_List TWS_Parent_List #define TWS_widget_FirstW 0x0100 #define TWS_widget_LastW 0x0101 #define TWS_widget_SelectW 0x0102 #define TWS_widget_FocusW TWS_widget_SelectW #define TWS_widget_Left 0x0103 #define TWS_widget_X TWS_widget_Left #define TWS_widget_Up 0x0104 #define TWS_widget_Y TWS_widget_Up #define TWS_widget_Width 0x0105 #define TWS_widget_XWidth TWS_widget_Width #define TWS_widget_Height 0x0106 #define TWS_widget_YWidth TWS_widget_Height #define TWS_widget_Attr 0x0107 #define TWS_widget_Flags 0x0108 #define TWS_widget_XLogic 0x0109 #define TWS_widget_YLogic 0x010A #define TWS_widget_O_Prev 0x010B #define TWS_widget_O_Next 0x010C #define TWS_widget_Owner 0x010D #define TWS_widget_Msgport TWS_widget_Owner #define TWS_widget_USE_Fill 0x010E #define TWS_widget_Fill TWS_widget_USE_Fill #define TWS_widget_ChildrenW_List 0x0120 #define TWS_widget_O_Prev_List 0x0121 #define TWS_widget_O_Next_List 0x0122 #define TWS_gadget_Id TWS_widget_Id #define TWS_gadget_Prev TWS_widget_Prev #define TWS_gadget_Next TWS_widget_Next #define TWS_gadget_Parent TWS_widget_Parent #define TWS_gadget_Prev_List TWS_widget_Prev_List #define TWS_gadget_Next_List TWS_widget_Next_List #define TWS_gadget_Parent_List TWS_widget_Parent_List #define TWS_gadget_FirstW TWS_widget_FirstW #define TWS_gadget_LastW TWS_widget_LastW #define TWS_gadget_SelectW TWS_widget_SelectW #define TWS_gadget_FocusW TWS_widget_FocusW #define TWS_gadget_Left TWS_widget_Left #define TWS_gadget_X TWS_widget_X #define TWS_gadget_Up TWS_widget_Up #define TWS_gadget_Y TWS_widget_Y #define TWS_gadget_Width TWS_widget_Width #define TWS_gadget_XWidth TWS_widget_XWidth #define TWS_gadget_Height TWS_widget_Height #define TWS_gadget_YWidth TWS_widget_YWidth #define TWS_gadget_Attr TWS_widget_Attr #define TWS_gadget_Flags TWS_widget_Flags #define TWS_gadget_XLogic TWS_widget_XLogic #define TWS_gadget_YLogic TWS_widget_YLogic #define TWS_gadget_O_Prev TWS_widget_O_Prev #define TWS_gadget_O_Next TWS_widget_O_Next #define TWS_gadget_Owner TWS_widget_Owner #define TWS_gadget_Msgport TWS_widget_Msgport #define TWS_gadget_USE_Fill TWS_widget_USE_Fill #define TWS_gadget_ChildrenW_List TWS_widget_ChildrenW_List #define TWS_gadget_O_Prev_List TWS_widget_O_Prev_List #define TWS_gadget_O_Next_List TWS_widget_O_Next_List #define TWS_gadget_ColText 0x0200 #define TWS_gadget_ColNormal TWS_gadget_ColText #define TWS_gadget_ColSelect 0x0201 #define TWS_gadget_ColDisabled 0x0202 #define TWS_gadget_ColSelectDisabled 0x0203 #define TWS_gadget_Code 0x0204 #define TWS_gadget_G_Prev 0x0205 #define TWS_gadget_G_Next 0x0206 #define TWS_gadget_Group 0x0207 #define TWS_gadget_USE_T_TextV0 0x0210 #define TWS_gadget_USE_T_TextV1 0x0211 #define TWS_gadget_USE_T_TextV2 0x0212 #define TWS_gadget_USE_T_TextV3 0x0213 #define TWS_gadget_USE_T_TextVN(n) (TWS_gadget_USE_T_TextV0 + (n)) #define TWS_gadget_USE_T_ColorV0 0x0214 #define TWS_gadget_USE_T_ColorV1 0x0215 #define TWS_gadget_USE_T_ColorV2 0x0216 #define TWS_gadget_USE_T_ColorV3 0x0217 #define TWS_gadget_USE_T_ColorVN(n) (TWS_gadget_USE_T_ColorV0 + (n)) #define TWS_gadget_G_Prev_List 0x0220 #define TWS_gadget_G_Next_List 0x0221 #define TWS_window_Id TWS_widget_Id #define TWS_window_Prev TWS_widget_Prev #define TWS_window_Next TWS_widget_Next #define TWS_window_Parent TWS_widget_Parent #define TWS_window_Prev_List TWS_widget_Prev_List #define TWS_window_Next_List TWS_widget_Next_List #define TWS_window_Parent_List TWS_widget_Parent_List #define TWS_window_FirstW TWS_widget_FirstW #define TWS_window_LastW TWS_widget_LastW #define TWS_window_SelectW TWS_widget_SelectW #define TWS_window_FocusW TWS_widget_FocusW #define TWS_window_Left TWS_widget_Left #define TWS_window_X TWS_widget_X #define TWS_window_Up TWS_widget_Up #define TWS_window_Y TWS_widget_Y #define TWS_window_Width TWS_widget_Width #define TWS_window_XWidth TWS_widget_XWidth #define TWS_window_Height TWS_widget_Height #define TWS_window_YWidth TWS_widget_YWidth #define TWS_window_Attr TWS_widget_Attr #define TWS_window_Flags TWS_widget_Flags #define TWS_window_XLogic TWS_widget_XLogic #define TWS_window_YLogic TWS_widget_YLogic #define TWS_window_O_Prev TWS_widget_O_Prev #define TWS_window_O_Next TWS_widget_O_Next #define TWS_window_Owner TWS_widget_Owner #define TWS_window_Msgport TWS_widget_Msgport #define TWS_window_USE_Fill TWS_widget_USE_Fill #define TWS_window_ChildrenW_List TWS_widget_ChildrenW_List #define TWS_window_O_Prev_List TWS_widget_O_Prev_List #define TWS_window_O_Next_List TWS_widget_O_Next_List #define TWS_window_Menu 0x0300 #define TWS_window_NameLen 0x0301 #define TWS_window_Name 0x0302 #define TWS_window_ColName 0x0303 #define TWS_window_BorderPatternV0 0x0304 #define TWS_window_BorderPatternV1 0x0305 #define TWS_window_BorderPatternVN(n) (TWS_window_BorderPatternV0 + (n)) #define TWS_window_CurX 0x0306 #define TWS_window_CurY 0x0307 #define TWS_window_XstSel 0x0308 #define TWS_window_YstSel 0x0309 #define TWS_window_XendSel 0x030A #define TWS_window_YendSel 0x030B #define TWS_window_MenuItem 0x030C #define TWS_window_ColGadgets 0x0310 #define TWS_window_ColArrows 0x0311 #define TWS_window_ColBars 0x0312 #define TWS_window_ColTabs 0x0313 #define TWS_window_ColBorder 0x0314 #define TWS_window_ColText 0x0315 #define TWS_window_ColSelect 0x0316 #define TWS_window_ColDisabled 0x0317 #define TWS_window_ColSelectDisabled 0x0318 #define TWS_window_State 0x0320 #define TWS_window_CursorType 0x0321 #define TWS_window_MinXWidth 0x0322 #define TWS_window_MinYWidth 0x0323 #define TWS_window_MaxXWidth 0x0324 #define TWS_window_MaxYWidth 0x0325 #define TWS_window_WLogic 0x0326 #define TWS_window_HLogic 0x0327 #define TWS_window_USE_C_Contents 0x0330 #define TWS_window_USE_C_HSplit 0x0331 #define TWS_window_USE_R_FirstRow 0x0332 #define TWS_window_USE_R_LastRow 0x0333 #define TWS_window_USE_R_ChildrenRow_List 0x0338 #define TWS_screen_Id TWS_widget_Id #define TWS_screen_Prev TWS_widget_Prev #define TWS_screen_Next TWS_widget_Next #define TWS_screen_Parent TWS_widget_Parent #define TWS_screen_Prev_List TWS_widget_Prev_List #define TWS_screen_Next_List TWS_widget_Next_List #define TWS_screen_Parent_List TWS_widget_Parent_List #define TWS_screen_FirstW TWS_widget_FirstW #define TWS_screen_LastW TWS_widget_LastW #define TWS_screen_SelectW TWS_widget_SelectW #define TWS_screen_FocusW TWS_widget_FocusW #define TWS_screen_Left TWS_widget_Left #define TWS_screen_X TWS_widget_X #define TWS_screen_Up TWS_widget_Up #define TWS_screen_Y TWS_widget_Y #define TWS_screen_Width TWS_widget_Width #define TWS_screen_XWidth TWS_widget_XWidth #define TWS_screen_Height TWS_widget_Height #define TWS_screen_YWidth TWS_widget_YWidth #define TWS_screen_Attr TWS_widget_Attr #define TWS_screen_Flags TWS_widget_Flags #define TWS_screen_XLogic TWS_widget_XLogic #define TWS_screen_YLogic TWS_widget_YLogic #define TWS_screen_O_Prev TWS_widget_O_Prev #define TWS_screen_O_Next TWS_widget_O_Next #define TWS_screen_Owner TWS_widget_Owner #define TWS_screen_Msgport TWS_widget_MsgPort #define TWS_screen_USE_Fill TWS_widget_USE_Fill #define TWS_screen_ChildrenW_List TWS_widget_ChildrenW_List #define TWS_screen_O_Prev_List TWS_widget_O_Prev_List #define TWS_screen_O_Next_List TWS_widget_O_Next_List #define TWS_screen_NameLen 0x0400 #define TWS_screen_Name 0x0401 #define TWS_screen_State 0x0402 #define TWS_screen_USE_B_BgWidth 0x0403 #define TWS_screen_USE_B_BgHeight 0x0404 #define TWS_screen_USE_B_Bg 0x0405 #define TWS_group_Id TWS_obj_Id #define TWS_group_Prev TWS_obj_Prev #define TWS_group_Next TWS_obj_Next #define TWS_group_Parent TWS_obj_Parent #define TWS_group_Prev_List TWS_obj_Prev_List #define TWS_group_Next_List TWS_obj_Next_List #define TWS_group_Parent_List TWS_obj_Parent_List #define TWS_group_Owner TWS_obj_Parent #define TWS_group_MsgPort TWS_obj_Parent #define TWS_group_FirstG 0x0500 #define TWS_group_LastG 0x0501 #define TWS_group_SelectG 0x0502 #define TWS_group_ChildrenG_List 0x0510 #define TWS_row_Id TWS_obj_Id #define TWS_row_Prev TWS_obj_Prev #define TWS_row_Next TWS_obj_Next #define TWS_row_Parent TWS_obj_Parent #define TWS_row_Prev_List TWS_obj_Prev_List #define TWS_row_Next_List TWS_obj_Next_List #define TWS_row_Parent_List TWS_obj_Parent_List #define TWS_row_Code 0x0600 #define TWS_row_Flags 0x0601 #define TWS_row_Len 0x0602 #define TWS_row_Text 0x0603 #define TWS_row_ColText 0x0604 #define TWS_menuitem_Id TWS_row_Id #define TWS_menuitem_Prev TWS_row_Prev #define TWS_menuitem_Next TWS_row_Next #define TWS_menuitem_Parent TWS_row_Parent #define TWS_menuitem_Prev_List TWS_row_Prev_List #define TWS_menuitem_Next_List TWS_row_Next_List #define TWS_menuitem_Parent_List TWS_row_Parent_List #define TWS_menuitem_Code TWS_row_Code #define TWS_menuitem_Flags TWS_row_Flags #define TWS_menuitem_Len TWS_row_Len #define TWS_menuitem_Text TWS_row_Text #define TWS_menuitem_ColText TWS_row_ColText #define TWS_menuitem_Window 0x0700 #define TWS_menuitem_Left 0x0702 #define TWS_menuitem_ShortCut 0x0704 #define TWS_menu_Id TWS_obj_Id #define TWS_menu_Prev TWS_obj_Prev #define TWS_menu_Next TWS_obj_Next #define TWS_menu_Parent TWS_obj_Parent #define TWS_menu_Prev_List TWS_obj_Prev_List #define TWS_menu_Next_List TWS_obj_Next_List #define TWS_menu_Parent_List TWS_obj_Parent_List #define TWS_menu_ColItem 0x0800 #define TWS_menu_ColSelect 0x0801 #define TWS_menu_ColDisabled 0x0802 #define TWS_menu_ColSelectDisabled 0x0803 #define TWS_menu_ColShtCut 0x0804 #define TWS_menu_ColSelShtCut 0x0805 #define TWS_menu_CommonItems 0x0806 #define TWS_menu_FlagDefColInfo 0x0807 #define TWS_menu_FirstI 0x0808 #define TWS_menu_LastI 0x0809 #define TWS_menu_SelectI 0x080A #define TWS_menu_ChildrenI_List 0x0810 #define TWS_msgport_Id TWS_obj_Id #define TWS_msgport_Prev TWS_obj_Prev #define TWS_msgport_Next TWS_obj_Next #define TWS_msgport_Parent TWS_obj_Parent #define TWS_msgport_Prev_List TWS_obj_Prev_List #define TWS_msgport_Next_List TWS_obj_Next_List #define TWS_msgport_Parent_List TWS_obj_Parent_List #define TWS_msgport_WakeUp 0x0900 #define TWS_msgport_NameLen 0x0901 #define TWS_msgport_Name 0x0902 #define TWS_msgport_FirstMenu 0x0903 #define TWS_msgport_LastMenu 0x0904 #define TWS_msgport_FirstW 0x0905 #define TWS_msgport_LastW 0x0906 #define TWS_msgport_FirstGroup 0x0907 #define TWS_msgport_LastGroup 0x0908 #define TWS_msgport_FirstMutex 0x0909 #define TWS_msgport_LastMutex 0x090A #define TWS_msgport_ChildrenMenu_List 0x0910 #define TWS_msgport_ChildrenW_List 0x0911 #define TWS_msgport_ChildrenGroup_List 0x0912 #define TWS_msgport_ChildrenMutex_List 0x0913 #define TWS_mutex_Id TWS_obj_Id #define TWS_mutex_Prev TWS_obj_Prev #define TWS_mutex_Next TWS_obj_Next #define TWS_mutex_Parent TWS_obj_Parent #define TWS_mutex_Prev_List TWS_obj_Prev_List #define TWS_mutex_Next_List TWS_obj_Next_List #define TWS_mutex_Parent_List TWS_obj_Parent_List #define TWS_mutex_O_Prev 0x0B00 #define TWS_mutex_O_Next 0x0B01 #define TWS_mutex_Owner 0x0B02 #define TWS_mutex_Msgport TWS_mutex_Owner #define TWS_mutex_Perm 0x0B03 #define TWS_mutex_NameLen 0x0B04 #define TWS_mutex_Name 0x0B05 #define TWS_mutex_O_Prev_List 0x0B10 #define TWS_mutex_O_Next_List 0x0B11 #define TWS_all_Id TWS_obj_Id #define TWS_all_Prev TWS_obj_Prev #define TWS_all_Next TWS_obj_Next #define TWS_all_Parent TWS_obj_Parent #define TWS_all_Prev_List TWS_obj_Prev_List #define TWS_all_Next_List TWS_obj_Next_List #define TWS_all_Parent_List TWS_obj_Parent_List #define TWS_all_FirstScreen 0xF000 #define TWS_all_LastScreen 0xF001 #define TWS_all_FirstMsgPort 0xF002 #define TWS_all_LastMsgPort 0xF003 #define TWS_all_FirstMutex 0xF004 #define TWS_all_LastMutex 0xF005 #define TWS_all_ChildrenScreen_List 0xF010 #define TWS_all_ChildrenMsgPort_List 0xF011 #define TWS_all_ChildrenMutex_List 0xF012 #define TWS_all_DisplayWidth 0xF020 #define TWS_all_DisplayHeight 0xF021 #define TWS_all_BuiltinMenu 0xF022 #define TWS_all_CommonMenu 0xF023 /* TWS_field_list_EL() does not include TWS_*_List fields. */ #define TWS_field_list_EL(EL) \ EL(obj_Id) \ EL(obj_Prev) \ EL(obj_Next) \ EL(obj_Parent) \ \ EL(widget_FirstW) \ EL(widget_LastW) \ EL(widget_SelectW) \ EL(widget_Left) \ EL(widget_Up) \ EL(widget_Width) \ EL(widget_Height) \ EL(widget_Attr) \ EL(widget_Flags) \ EL(widget_XLogic) \ EL(widget_YLogic) \ EL(widget_O_Prev) \ EL(widget_O_Next) \ EL(widget_Owner) \ EL(widget_USE_Fill) \ \ EL(gadget_ColText) \ EL(gadget_ColSelect) \ EL(gadget_ColDisabled) \ EL(gadget_ColSelectDisabled) \ EL(gadget_Code) \ EL(gadget_G_Prev) \ EL(gadget_G_Next) \ EL(gadget_Group) \ EL(gadget_USE_T_TextV0) \ EL(gadget_USE_T_TextV1) \ EL(gadget_USE_T_TextV2) \ EL(gadget_USE_T_TextV3) \ EL(gadget_USE_T_ColorV0) \ EL(gadget_USE_T_ColorV1) \ EL(gadget_USE_T_ColorV2) \ EL(gadget_USE_T_ColorV3) \ \ EL(window_Menu) \ EL(window_NameLen) \ EL(window_Name) \ EL(window_ColName) \ EL(window_BorderPatternV0) \ EL(window_BorderPatternV1) \ EL(window_CurX) \ EL(window_CurY) \ EL(window_XstSel) \ EL(window_YstSel) \ EL(window_XendSel) \ EL(window_YendSel) \ EL(window_MenuItem) \ EL(window_ColGadgets) \ EL(window_ColArrows) \ EL(window_ColBars) \ EL(window_ColTabs) \ EL(window_ColBorder) \ EL(window_ColText) \ EL(window_ColSelect) \ EL(window_ColDisabled) \ EL(window_ColSelectDisabled) \ EL(window_State) \ EL(window_CursorType) \ EL(window_MinXWidth) \ EL(window_MinYWidth) \ EL(window_MaxXWidth) \ EL(window_MaxYWidth) \ EL(window_WLogic) \ EL(window_HLogic) \ EL(window_USE_C_Contents) \ EL(window_USE_C_HSplit) \ EL(window_USE_R_FirstRow) \ EL(window_USE_R_LastRow) \ \ EL(screen_NameLen) \ EL(screen_Name) \ EL(screen_State) \ EL(screen_USE_B_BgWidth) \ EL(screen_USE_B_BgHeight) \ EL(screen_USE_B_Bg) \ \ EL(group_FirstG) \ EL(group_LastG) \ EL(group_SelectG) \ \ EL(row_Code) \ EL(row_Flags) \ EL(row_Len) \ EL(row_Text) \ EL(row_ColText) \ \ EL(menuitem_Window) \ EL(menuitem_Left) \ EL(menuitem_ShortCut) \ \ EL(menu_ColItem) \ EL(menu_ColSelect) \ EL(menu_ColDisabled) \ EL(menu_ColSelectDisabled) \ EL(menu_ColShtCut) \ EL(menu_ColSelShtCut) \ EL(menu_CommonItems) \ EL(menu_FlagDefColInfo) \ EL(menu_FirstI) \ EL(menu_LastI) \ EL(menu_SelectI) \ \ EL(msgport_WakeUp) \ EL(msgport_NameLen) \ EL(msgport_Name) \ EL(msgport_FirstMenu) \ EL(msgport_LastMenu) \ EL(msgport_FirstW) \ EL(msgport_LastW) \ EL(msgport_FirstGroup) \ EL(msgport_LastGroup) \ EL(msgport_FirstMutex) \ EL(msgport_LastMutex) \ \ EL(mutex_O_Prev) \ EL(mutex_O_Next) \ EL(mutex_Owner) \ EL(mutex_Perm) \ EL(mutex_NameLen) \ EL(mutex_Name) \ \ EL(all_FirstScreen) \ EL(all_LastScreen) \ EL(all_FirstMsgPort) \ EL(all_LastMsgPort) \ EL(all_FirstMutex) \ EL(all_LastMutex) \ EL(all_DisplayWidth) \ EL(all_DisplayHeight) \ EL(all_BuiltinMenu) \ EL(all_CommonMenu) /* TWS_*_List fields are kept separate */ #define TWS_field_list_List_EL(EL) \ EL(obj_Prev_List) \ EL(obj_Next_List) \ EL(obj_Parent_List) \ EL(widget_ChildrenW_List) \ EL(widget_O_Prev_List) \ EL(widget_O_Next_List) \ EL(gadget_G_Prev_List) \ EL(gadget_G_Next_List) \ EL(window_USE_R_ChildrenRow_List) \ EL(group_ChildrenG_List) \ EL(menu_ChildrenI_List) \ EL(msgport_ChildrenMenu_List) \ EL(msgport_ChildrenW_List) \ EL(msgport_ChildrenGroup_List) \ EL(msgport_ChildrenMutex_List) \ EL(all_ChildrenScreen_List) \ EL(all_ChildrenMsgPort_List) \ EL(all_ChildrenMutex_List) #endif /* TW_STAT_DEFS_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/Twtypes.h���������������������������������������������������������������������0000664�0000000�0000000�00000000414�13775351206�0016356�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef TW_TYPES_H #define TW_TYPES_H #include <Tw/autoconf.h> #include <Tw/osincludes.h> #include <Tw/compiler.h> #include <Tw/datatypes.h> #include <Tw/datasizes.h> #include <Tw/stattypes.h> #include <Tw/pagesize.h> #include <Tw/version.h> #endif /* TW_TYPES_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/alias1_m4.h�������������������������������������������������������������������0000664�0000000�0000000�00000014530�13775351206�0016455�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated with m4 from m4/Tw_alias.m4, do not edit! */ /* * alias_m4.h -- handy aliases for libtw function prototypes * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #define TwDeleteRow TwDeleteObj #define TwCirculateRows TwCirculateChildrenRow #define TwRestackRows TwRestackChildrenRow #define TwRow4Menu TwCreate4MenuRow #define TwDeleteMenuItem TwDeleteObj #define TwLowerMenuItem TwLowerRow #define TwRaiseMenuItem TwRaiseRow #define TwCirculateChildrenMenuItem TwCirculateChildrenRow #define TwCirculateMenuItems TwCirculateChildrenMenuItem #define TwRestackChildrenMenuItem TwRestackChildrenRow #define TwRestackMenuItems TwRestackChildrenMenuItem #define TwMenuItem4Menu TwCreate4MenuMenuItem #define TwItem4Menu TwCreate4MenuMenuItem #define TwItem4MenuCommon TwCreate4MenuCommonMenuItem #define TwDeleteMenu TwDeleteObj #define TwInfo4Menu TwSetInfoMenu #define TwDeleteMsgPort TwDeleteObj #define TwDeleteWidget TwDeleteObj #define TwCirculateWidgets TwCirculateChildrenWidget #define TwRestackWidgets TwRestackChildrenWidget #define TwDeleteGadget TwDeleteObj #define TwCirculateChildrenGadget TwCirculateChildrenWidget #define TwCirculateGadgets TwCirculateChildrenGadget #define TwDrawGadget TwDrawWidget #define TwDraw2Gadget TwDraw2Widget #define TwDrawTextGadget TwDrawTextWidget #define TwDrawTRuneGadget TwDrawTRuneWidget #define TwDrawTCellGadget TwDrawTCellWidget #define TwOwnerGadget TwOwnerWidget #define TwO_PrevGadget TwO_PrevWidget #define TwO_NextGadget TwO_NextWidget #define TwLowerGadget TwLowerWidget #define TwRaiseGadget TwRaiseWidget #define TwMapGadget TwMapWidget #define TwRecursiveDeleteGadget TwRecursiveDeleteWidget #define TwResizeGadget TwResizeWidget #define TwRestackChildrenGadget TwRestackChildrenWidget #define TwRestackGadgets TwRestackChildrenGadget #define TwScrollGadget TwScrollWidget #define TwSetXYGadget TwSetXYWidget #define TwUnMapGadget TwUnMapWidget #define TwDeleteWindow TwDeleteObj #define TwCirculateChildrenWindow TwCirculateChildrenWidget #define TwCirculateWindows TwCirculateChildrenWindow #define TwDrawWindow TwDrawWidget #define TwDraw2Window TwDraw2Widget #define TwDrawTextWindow TwDrawTextWidget #define TwDrawTRuneWindow TwDrawTRuneWidget #define TwDrawTCellWindow TwDrawTCellWidget #define TwOwnerWindow TwOwnerWidget #define TwO_PrevWindow TwO_PrevWidget #define TwO_NextWindow TwO_NextWidget #define TwLowerWindow TwLowerWidget #define TwRaiseWindow TwRaiseWidget #define TwMapWindow TwMapWidget #define TwRecursiveDeleteWindow TwRecursiveDeleteWidget #define TwResizeWindow TwResizeWidget #define TwRestackChildrenWindow TwRestackChildrenWidget #define TwRestackWindows TwRestackChildrenWindow #define TwScrollWindow TwScrollWidget #define TwSetXYWindow TwSetXYWidget #define TwUnMapWindow TwUnMapWidget #define TwWin4Menu TwCreate4MenuWindow #define TwWriteAsciiWindow TwWriteCharsetWindow #define TwDeleteScreen TwDeleteObj #define TwCirculateChildrenScreen TwCirculateChildrenWidget #define TwCirculateScreens TwCirculateChildrenScreen #define TwDrawScreen TwDrawWidget #define TwDraw2Screen TwDraw2Widget #define TwDrawTextScreen TwDrawTextWidget #define TwDrawTRuneScreen TwDrawTRuneWidget #define TwDrawTCellScreen TwDrawTCellWidget #define TwOwnerScreen TwOwnerWidget #define TwO_PrevScreen TwO_PrevWidget #define TwO_NextScreen TwO_NextWidget #define TwLowerScreen TwLowerWidget #define TwRaiseScreen TwRaiseWidget #define TwMapScreen TwMapWidget #define TwRecursiveDeleteScreen TwRecursiveDeleteWidget #define TwResizeScreen TwResizeWidget #define TwRestackChildrenScreen TwRestackChildrenWidget #define TwRestackScreens TwRestackChildrenScreen #define TwScrollScreen TwScrollWidget #define TwSetXYScreen TwSetXYWidget #define TwUnMapScreen TwUnMapWidget ������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/alias_m4.h��������������������������������������������������������������������0000664�0000000�0000000�00000015002�13775351206�0016367�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated with m4 from m4/Tw_alias.m4, do not edit! */ /* * alias_m4.h -- handy aliases for libtw function prototypes * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #define Tw_DeleteRow Tw_DeleteObj #define Tw_CirculateRows Tw_CirculateChildrenRow #define Tw_RestackRows Tw_RestackChildrenRow #define Tw_Row4Menu Tw_Create4MenuRow #define Tw_DeleteMenuItem Tw_DeleteObj #define Tw_LowerMenuItem Tw_LowerRow #define Tw_RaiseMenuItem Tw_RaiseRow #define Tw_CirculateChildrenMenuItem Tw_CirculateChildrenRow #define Tw_CirculateMenuItems Tw_CirculateChildrenMenuItem #define Tw_RestackChildrenMenuItem Tw_RestackChildrenRow #define Tw_RestackMenuItems Tw_RestackChildrenMenuItem #define Tw_MenuItem4Menu Tw_Create4MenuMenuItem #define Tw_Item4Menu Tw_Create4MenuMenuItem #define Tw_Item4MenuCommon Tw_Create4MenuCommonMenuItem #define Tw_DeleteMenu Tw_DeleteObj #define Tw_Info4Menu Tw_SetInfoMenu #define Tw_DeleteMsgPort Tw_DeleteObj #define Tw_DeleteWidget Tw_DeleteObj #define Tw_CirculateWidgets Tw_CirculateChildrenWidget #define Tw_RestackWidgets Tw_RestackChildrenWidget #define Tw_DeleteGadget Tw_DeleteObj #define Tw_CirculateChildrenGadget Tw_CirculateChildrenWidget #define Tw_CirculateGadgets Tw_CirculateChildrenGadget #define Tw_DrawGadget Tw_DrawWidget #define Tw_Draw2Gadget Tw_Draw2Widget #define Tw_DrawTextGadget Tw_DrawTextWidget #define Tw_DrawTRuneGadget Tw_DrawTRuneWidget #define Tw_DrawTCellGadget Tw_DrawTCellWidget #define Tw_OwnerGadget Tw_OwnerWidget #define Tw_O_PrevGadget Tw_O_PrevWidget #define Tw_O_NextGadget Tw_O_NextWidget #define Tw_LowerGadget Tw_LowerWidget #define Tw_RaiseGadget Tw_RaiseWidget #define Tw_MapGadget Tw_MapWidget #define Tw_RecursiveDeleteGadget Tw_RecursiveDeleteWidget #define Tw_ResizeGadget Tw_ResizeWidget #define Tw_RestackChildrenGadget Tw_RestackChildrenWidget #define Tw_RestackGadgets Tw_RestackChildrenGadget #define Tw_ScrollGadget Tw_ScrollWidget #define Tw_SetXYGadget Tw_SetXYWidget #define Tw_UnMapGadget Tw_UnMapWidget #define Tw_DeleteWindow Tw_DeleteObj #define Tw_CirculateChildrenWindow Tw_CirculateChildrenWidget #define Tw_CirculateWindows Tw_CirculateChildrenWindow #define Tw_DrawWindow Tw_DrawWidget #define Tw_Draw2Window Tw_Draw2Widget #define Tw_DrawTextWindow Tw_DrawTextWidget #define Tw_DrawTRuneWindow Tw_DrawTRuneWidget #define Tw_DrawTCellWindow Tw_DrawTCellWidget #define Tw_OwnerWindow Tw_OwnerWidget #define Tw_O_PrevWindow Tw_O_PrevWidget #define Tw_O_NextWindow Tw_O_NextWidget #define Tw_LowerWindow Tw_LowerWidget #define Tw_RaiseWindow Tw_RaiseWidget #define Tw_MapWindow Tw_MapWidget #define Tw_RecursiveDeleteWindow Tw_RecursiveDeleteWidget #define Tw_ResizeWindow Tw_ResizeWidget #define Tw_RestackChildrenWindow Tw_RestackChildrenWidget #define Tw_RestackWindows Tw_RestackChildrenWindow #define Tw_ScrollWindow Tw_ScrollWidget #define Tw_SetXYWindow Tw_SetXYWidget #define Tw_UnMapWindow Tw_UnMapWidget #define Tw_Win4Menu Tw_Create4MenuWindow #define Tw_WriteAsciiWindow Tw_WriteCharsetWindow #define Tw_DeleteScreen Tw_DeleteObj #define Tw_CirculateChildrenScreen Tw_CirculateChildrenWidget #define Tw_CirculateScreens Tw_CirculateChildrenScreen #define Tw_DrawScreen Tw_DrawWidget #define Tw_Draw2Screen Tw_Draw2Widget #define Tw_DrawTextScreen Tw_DrawTextWidget #define Tw_DrawTRuneScreen Tw_DrawTRuneWidget #define Tw_DrawTCellScreen Tw_DrawTCellWidget #define Tw_OwnerScreen Tw_OwnerWidget #define Tw_O_PrevScreen Tw_O_PrevWidget #define Tw_O_NextScreen Tw_O_NextWidget #define Tw_LowerScreen Tw_LowerWidget #define Tw_RaiseScreen Tw_RaiseWidget #define Tw_MapScreen Tw_MapWidget #define Tw_RecursiveDeleteScreen Tw_RecursiveDeleteWidget #define Tw_ResizeScreen Tw_ResizeWidget #define Tw_RestackChildrenScreen Tw_RestackChildrenWidget #define Tw_RestackScreens Tw_RestackChildrenScreen #define Tw_ScrollScreen Tw_ScrollWidget #define Tw_SetXYScreen Tw_SetXYWidget #define Tw_UnMapScreen Tw_UnMapWidget ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/common1_m4.h������������������������������������������������������������������0000664�0000000�0000000�00000013357�13775351206�0016662�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated with m4 from m4/Tw_common.m4, do not edit! */ /* * common_m4.h -- common libtw function prototypes * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #define TwCheckMagic Tw_CheckMagic #define TwMergeHyphensArgv Tw_MergeHyphensArgv #define TwConfigMalloc Tw_ConfigMalloc #define TwAllocMem Tw_AllocMem #define TwReAllocMem Tw_ReAllocMem #define TwFreeMem Tw_FreeMem #define TwAllocMem0 Tw_AllocMem0 #define TwReAllocMem0 Tw_ReAllocMem0 #define TwCloneMem Tw_CloneMem #define TwCloneStr Tw_CloneStr #define TwCloneStr2TRune Tw_CloneStr2TRune #define TwCopyStr Tw_CopyStr #define TwCopyMem Tw_CopyMem #define TwMoveMem Tw_MoveMem #define TwFindFunctionV(a1) Tw_FindFunctionV(Tw_DefaultD, a1) #define TwDropPrivileges Tw_DropPrivileges #define TwGetPrivileges Tw_GetPrivileges #define TwEnableGzip() Tw_EnableGzip(Tw_DefaultD) #define TwDisableGzip() Tw_DisableGzip(Tw_DefaultD) #define TwAttachGetReply(a1) Tw_AttachGetReply(Tw_DefaultD, a1) #define TwAttachConfirm() Tw_AttachConfirm(Tw_DefaultD) #define TwOwnerWidget(a1) Tw_OwnerWidget(Tw_DefaultD, a1) #define TwO_PrevWidget(a1) Tw_O_PrevWidget(Tw_DefaultD, a1) #define TwO_NextWidget(a1) Tw_O_NextWidget(Tw_DefaultD, a1) #define TwSetFillWidget(a1, a2) Tw_SetFillWidget(Tw_DefaultD, a1, a2) #define TwDraw2Widget(a1, a2, a3, a4, a5, a6, a7, a8, a9) Tw_Draw2Widget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7, a8, a9) #define TwDrawTextWidget(a1, a2, a3, a4, a5, a6, a7) Tw_DrawTextWidget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7) #define TwDrawTRuneWidget(a1, a2, a3, a4, a5, a6, a7) Tw_DrawTRuneWidget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7) #define TwDrawTCellWidget(a1, a2, a3, a4, a5, a6, a7) Tw_DrawTCellWidget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7) #define TwSetPressedGadget(a1, a2) Tw_SetPressedGadget(Tw_DefaultD, a1, a2) #define TwIsPressedGadget(a1) Tw_IsPressedGadget(Tw_DefaultD, a1) #define TwSetToggleGadget(a1, a2) Tw_SetToggleGadget(Tw_DefaultD, a1, a2) #define TwIsToggleGadget(a1) Tw_IsToggleGadget(Tw_DefaultD, a1) #define TwWriteTextGadget(a1, a2, a3, a4, a5, a6) Tw_WriteTextGadget(Tw_DefaultD, a1, a2, a3, a4, a5, a6) #define TwSetTextGadget(a1, a2, a3, a4, a5, a6) Tw_SetTextGadget(Tw_DefaultD, a1, a2, a3, a4, a5, a6) #define TwSetTextsGadget(a1, a2, a3, a4, a5, a6, a7) Tw_SetTextsGadget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7) #define TwGroupGadget(a1) Tw_GroupGadget(Tw_DefaultD, a1) #define TwG_PrevGadget(a1) Tw_G_PrevGadget(Tw_DefaultD, a1) #define TwG_NextGadget(a1) Tw_G_NextGadget(Tw_DefaultD, a1) #define TwWriteTRuneGadget(a1, a2, a3, a4, a5, a6) Tw_WriteTRuneGadget(Tw_DefaultD, a1, a2, a3, a4, a5, a6) #define TwSetTRuneGadget(a1, a2, a3, a4, a5, a6) Tw_SetTRuneGadget(Tw_DefaultD, a1, a2, a3, a4, a5, a6) #define TwSetTRunesGadget(a1, a2, a3, a4, a5, a6, a7) Tw_SetTRunesGadget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7) #define TwCreate4MenuRow(a1, a2, a3, a4, a5) Tw_Create4MenuRow(Tw_DefaultD, a1, a2, a3, a4, a5) #define TwCreate4MenuMenuItem(a1, a2, a3, a4, a5) Tw_Create4MenuMenuItem(Tw_DefaultD, a1, a2, a3, a4, a5) #define TwCreateMsg(a1, a2) Tw_CreateMsg(Tw_DefaultD, a1, a2) #define TwDeleteMsg(a1) Tw_DeleteMsg(Tw_DefaultD, a1) #define TwSendMsg(a1, a2) Tw_SendMsg(Tw_DefaultD, a1, a2) #define TwBlindSendMsg(a1, a2) Tw_BlindSendMsg(Tw_DefaultD, a1, a2) #define TwConnectionFd() Tw_ConnectionFd(Tw_DefaultD) #define TwLibraryVersion() Tw_LibraryVersion(Tw_DefaultD) #define TwServerVersion() Tw_ServerVersion(Tw_DefaultD) #define TwInPanic() Tw_InPanic(Tw_DefaultD) #define TwFlush() Tw_Flush(Tw_DefaultD) #define TwSync() Tw_Sync(Tw_DefaultD) #define TwTimidFlush() Tw_TimidFlush(Tw_DefaultD) #define TwPendingMsg() Tw_PendingMsg(Tw_DefaultD) #define TwPeekMsg() Tw_PeekMsg(Tw_DefaultD) #define TwReadMsg(a1) Tw_ReadMsg(Tw_DefaultD, a1) #define TwCloneReadMsg(a1) Tw_CloneReadMsg(Tw_DefaultD, a1) #define TwAddKeyboardListener(a1, a2, a3, a4, a5) Tw_AddKeyboardListener(Tw_DefaultD, a1, a2, a3, a4, a5) #define TwAddMouseListener(a1, a2, a3, a4, a5) Tw_AddMouseListener(Tw_DefaultD, a1, a2, a3, a4, a5) #define TwAddControlListener(a1, a2, a3, a4) Tw_AddControlListener(Tw_DefaultD, a1, a2, a3, a4) #define TwAddClientMsgListener(a1, a2, a3, a4) Tw_AddClientMsgListener(Tw_DefaultD, a1, a2, a3, a4) #define TwAddDisplayListener(a1, a2, a3) Tw_AddDisplayListener(Tw_DefaultD, a1, a2, a3) #define TwAddWidgetListener(a1, a2, a3, a4) Tw_AddWidgetListener(Tw_DefaultD, a1, a2, a3, a4) #define TwAddGadgetListener(a1, a2, a3, a4) Tw_AddGadgetListener(Tw_DefaultD, a1, a2, a3, a4) #define TwAddMenuListener(a1, a2, a3, a4, a5) Tw_AddMenuListener(Tw_DefaultD, a1, a2, a3, a4, a5) #define TwAddSelectionListener(a1, a2, a3) Tw_AddSelectionListener(Tw_DefaultD, a1, a2, a3) #define TwAddSelectionNotifyListener(a1, a2) Tw_AddSelectionNotifyListener(Tw_DefaultD, a1, a2) #define TwAddSelectionRequestListener(a1, a2) Tw_AddSelectionRequestListener(Tw_DefaultD, a1, a2) #define TwInsertListener(a1) Tw_InsertListener(Tw_DefaultD, a1) #define TwRemoveListener(a1) Tw_RemoveListener(Tw_DefaultD, a1) #define TwCreateListener(a1, a2, a3, a4) Tw_CreateListener(Tw_DefaultD, a1, a2, a3, a4) #define TwSetTEListener(a1, a2, a3) Tw_SetTEListener(Tw_DefaultD, a1, a2, a3) #define TwDeleteListener(a1) Tw_DeleteListener(Tw_DefaultD, a1) #define TwSetDefaultListener(a1, a2) Tw_SetDefaultListener(Tw_DefaultD, a1, a2) #define TwDispatchMsg(a1) Tw_DispatchMsg(Tw_DefaultD, a1) #define TwMainLoop() Tw_MainLoop(Tw_DefaultD) #define TwExitMainLoop() Tw_ExitMainLoop(Tw_DefaultD) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/common_m4.h�������������������������������������������������������������������0000664�0000000�0000000�00000020572�13775351206�0016576�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated with m4 from m4/Tw_common.m4, do not edit! */ /* * common_m4.h -- common libtw function prototypes * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /** check some magic data to ensure client and library have compatible types */ byte Tw_CheckMagic(TW_CONST byte id[]); /** strip double hyphens from argv long options (i.e. --option -> -option) */ void Tw_MergeHyphensArgv(int argc, char **argv); /** change Tw_AllocMem(),Tw_ReAllocMem(),Tw_FreeMem() function pointers */ void Tw_ConfigMalloc(void *(*my_malloc)(size_t), void *(*my_realloc)(void *, size_t), void (*my_free)(void *)); /** pointer to custom malloc() function; use Tw_ConfigMalloc() to change it */ extern void *(*Tw_AllocMem)(size_t); /** pointer to custom realloc() function; use Tw_ConfigMalloc() to change it */ extern void *(*Tw_ReAllocMem)(void *, size_t); /** pointer to custom free() function; use Tw_ConfigMalloc() to change it */ extern void (*Tw_FreeMem)(void *); /** equivalent to calloc() */ void *Tw_AllocMem0(size_t Size); /** equivalent to realloc()+memset() */ void *Tw_ReAllocMem0(void * Mem, size_t OldSize, size_t NewSize); /** custom malloc()+memcpy() function */ extern void *Tw_CloneMem(TW_CONST void *, size_t); /** custom strdup() function */ extern char *Tw_CloneStr(TW_CONST char *); /** custom byte-to-unicode conversion + strdup() function */ extern trune *Tw_CloneStr2TRune(TW_CONST char *, size_t); #define Tw_CopyStr(From,To) strcpy(To, From) #define Tw_CopyMem(From, To, Size) memcpy(To, From, Size) #define Tw_MoveMem(From, To, Size) memmove(To, From, Size) byte Tw_FindFunctionV(tdisplay TwD, va_list vargs); #define Tw_DropPrivileges() (setegid(getgid()), seteuid(getuid())) #define Tw_GetPrivileges() seteuid(0) /** try to enable compression (using zlib); return 1 if success or 0 if failed */ byte Tw_EnableGzip(tdisplay TwD); /** try to disable compression (using zlib); return 1 if success or 0 if failed */ byte Tw_DisableGzip(tdisplay TwD); /** return server diagnostic after Tw_AttachHW() */ TW_CONST char * Tw_AttachGetReply(tdisplay TwD, uldat *len); /** confirm to server it is ok to use newly opened display (used for synchronization) */ void Tw_AttachConfirm(tdisplay TwD); tmsgport Tw_OwnerWidget(tdisplay TwD, twidget W); twidget Tw_O_PrevWidget(tdisplay TwD, twidget W); twidget Tw_O_NextWidget(tdisplay TwD, twidget W); void Tw_SetFillWidget(tdisplay TwD, twidget W,tcell Fill); void Tw_Draw2Widget(tdisplay TwD, twidget W,dat XWidth,dat YWidth,dat Left,dat Up,dat Pitch,TW_CONST char *Text,TW_CONST trune *Font,TW_CONST tcell *Attr); void Tw_DrawTextWidget(tdisplay TwD, twidget W,dat XWidth,dat YWidth,dat Left,dat Up,dat Pitch,TW_CONST char *Text); void Tw_DrawTRuneWidget(tdisplay TwD, twidget W,dat XWidth,dat YWidth,dat Left,dat Up,dat Pitch,TW_CONST trune *Font); void Tw_DrawTCellWidget(tdisplay TwD, twidget W,dat XWidth,dat YWidth,dat Left,dat Up,dat Pitch,TW_CONST tcell *Attr); void Tw_SetPressedGadget(tdisplay TwD, tgadget Gadget,byte on); byte Tw_IsPressedGadget(tdisplay TwD, tgadget Gadget); void Tw_SetToggleGadget(tdisplay TwD, tgadget Gadget,byte on); byte Tw_IsToggleGadget(tdisplay TwD, tgadget Gadget); void Tw_WriteTextGadget(tdisplay TwD, tgadget Gadget,dat XWidth,dat YWidth,TW_CONST char *Text,dat Left,dat Up); void Tw_SetTextGadget(tdisplay TwD, tgadget Gadget,dat XWidth,dat YWidth,TW_CONST char *Text,dat Left,dat Up); void Tw_SetTextsGadget(tdisplay TwD, tgadget Gadget,byte bitmap,dat XWidth,dat YWidth,TW_CONST char *Text,dat Left,dat Up); tgroup Tw_GroupGadget(tdisplay TwD, tgadget Gadget); tgadget Tw_G_PrevGadget(tdisplay TwD, tgadget Gadget); tgadget Tw_G_NextGadget(tdisplay TwD, tgadget Gadget); void Tw_WriteTRuneGadget(tdisplay TwD, tgadget Gadget,dat XWidth,dat YWidth,TW_CONST trune * TRune,dat Left,dat Up); void Tw_SetTRuneGadget(tdisplay TwD, tgadget Gadget,dat XWidth,dat YWidth,TW_CONST trune * TRune,dat Left,dat Up); void Tw_SetTRunesGadget(tdisplay TwD, tgadget Gadget,byte bitmap,dat XWidth,dat YWidth,TW_CONST trune * TRune,dat Left,dat Up); tmenuitem Tw_Create4MenuRow(tdisplay TwD, twindow Window,udat Code,byte Flags,ldat Len,TW_CONST char *Text); tmenuitem Tw_Create4MenuMenuItem(tdisplay TwD, tobj Parent,twindow Window,byte Flags,dat Len,TW_CONST char *Name); tmsg Tw_CreateMsg(tdisplay TwD, uldat Type,uldat Len); void Tw_DeleteMsg(tdisplay TwD, tmsg Msg); byte Tw_SendMsg(tdisplay TwD, tmsgport MsgPort,tmsg Msg); void Tw_BlindSendMsg(tdisplay TwD, tmsgport MsgPort,tmsg Msg); int Tw_ConnectionFd(tdisplay TwD); uldat Tw_LibraryVersion(tdisplay TwD); uldat Tw_ServerVersion(tdisplay TwD); byte Tw_InPanic(tdisplay TwD); /** this returns tfalse only after libtw has paniced */ byte Tw_Flush(tdisplay TwD); /** this returns tfalse only after libtw has paniced */ byte Tw_Sync(tdisplay TwD); /** * try to write to the underlying socket. * if not all data could be written,write as much as possible,* keep the rest queued,then return. * * returns tfalse only after libtw has paniced,* returns ttrue+ttrue if not all data could be written. */ byte Tw_TimidFlush(tdisplay TwD); /** * This is the function you must call to check if there are pending Msgs,* i.e. already received from the socket. * Since Msgs can be received even during libtw calls,you cannot rely only * on select(Tw_ConnectionFd()) to detect incoming messages,as they could * be already queued in the library. So you must call either Tw_PendingMsg() * or Tw_PeekMsg() below to check for messages. * Returns the first pending Msg,without removing it from the queue,* ot (tmsg)0 if no Msgs are pending. */ tmsg Tw_PendingMsg(tdisplay TwD); /** * This is the function you must call to check if there are Msgs available,* i.e. either already received or that can be received non-blocking. * Returns the first available Msg,without removing it from the queue,* ot (tmsg)0 if no Msgs are available. */ tmsg Tw_PeekMsg(tdisplay TwD); /** * This is the function you must call to get a Msg from the server. * If Wait is ttrue and no Msg is available,it waits until a Msg arrives. * If Wait is tfalse and no Msg is available,it tries non-blocking * to receive more Msgs. * * In both cases,if there is at least a Msgs available it is returned * without waiting. */ tmsg Tw_ReadMsg(tdisplay TwD, byte Wait); /** * this is just like Tw_ReadMsg(),but returns a Tw_AllocMem()ed copy * of the message,to avoid concurrency problems with other threads. * You must Tw_FreeMem() it when done! */ tmsg Tw_CloneReadMsg(tdisplay TwD, byte Wait); tlistener Tw_AddKeyboardListener(tdisplay TwD, twidget W,udat Key,udat ShiftFlags,tfn_listener Listener,void *Arg); tlistener Tw_AddMouseListener(tdisplay TwD, twidget W,udat Code,udat ShiftFlags,tfn_listener Listener,void *Arg); tlistener Tw_AddControlListener(tdisplay TwD, twidget W,udat Code,tfn_listener Listener,void *Arg); tlistener Tw_AddClientMsgListener(tdisplay TwD, twidget W,udat Code,tfn_listener Listener,void *Arg); tlistener Tw_AddDisplayListener(tdisplay TwD, udat Code,tfn_listener Listener,void *Arg); tlistener Tw_AddWidgetListener(tdisplay TwD, twidget W,udat Code,tfn_listener Listener,void *Arg); tlistener Tw_AddGadgetListener(tdisplay TwD, twidget W,udat Code,tfn_listener Listener,void *Arg); tlistener Tw_AddMenuListener(tdisplay TwD, twidget W,tmenu Menu,udat Code,tfn_listener Listener,void *Arg); tlistener Tw_AddSelectionListener(tdisplay TwD, twidget W,tfn_listener Listener,void *Arg); tlistener Tw_AddSelectionNotifyListener(tdisplay TwD, tfn_listener Listener,void *Arg); tlistener Tw_AddSelectionRequestListener(tdisplay TwD, tfn_listener Listener,void *Arg); /** these five functions are used by Tw/Tw++.h */ void Tw_InsertListener(tdisplay TwD, tlistener L); void Tw_RemoveListener(tdisplay TwD, tlistener L); tlistener Tw_CreateListener(tdisplay TwD, udat Type,tevent_any E,tfn_listener Listener,void *Arg); void Tw_SetTEListener(tdisplay TwD, tlistener L,udat type,tevent_any E); void Tw_DeleteListener(tdisplay TwD, tlistener L); void Tw_SetDefaultListener(tdisplay TwD, tfn_default_listener listener,void *arg); byte Tw_DispatchMsg(tdisplay TwD, tmsg Msg); byte Tw_MainLoop(tdisplay TwD); void Tw_ExitMainLoop(tdisplay TwD); ��������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/compiler.h��������������������������������������������������������������������0000664�0000000�0000000�00000001653�13775351206�0016517�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TW_COMPILER_H #define TW_COMPILER_H /* library stuff. define macros with TW_ prefix */ #ifndef TW_STR #define TW__STR(s) #s #define TW_STR(s) TW__STR(s) #endif #ifndef TW_CAT #define TW__CAT(a, b) a##b #define TW_CAT(a, b) TW__CAT(a, b) #endif #ifndef TW_CAT3 #define TW__CAT3(a, b, c) a##b##c #define TW_CAT3(a, b, c) TW__CAT3(a, b, c) #endif #ifndef TW_CAT3 #define TW__CAT4(a, b, c, d) a##b##c##d #define TW_CAT4(a, b, c, d) TW__CAT4(a, b, c, d) #endif #ifndef TW_CONST #define TW_CONST const #endif #ifndef TW_VOLATILE #if defined(TW_HAVE_VOLATILE) || defined(volatile) #define TW_VOLATILE volatile #else #define TW_VOLATILE #endif #endif /* inline is NOT a standard C89 feature :( */ #ifndef TW_INLINE #if defined(TW_HAVE_STATIC_INLINE) #define TW_INLINE static inline #elif defined(TW_HAVE_INLINE) || defined(inline) #define TW_INLINE inline #else #define TW_INLINE static #endif #endif #endif /* TW_COMPILER_H */ �������������������������������������������������������������������������������������twin-0.9.0/include/Tw/datasizes.h�������������������������������������������������������������������0000664�0000000�0000000�00000003651�13775351206�0016674�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef TW_DATASIZES_H #define TW_DATASIZES_H #ifndef TWTWAUTOCONF_H #include <Tw/autoconf.h> #endif #if defined(TW_HAVE_LIMITS_H) #include <limits.h> /* for CHAR_BIT and (U|S)?(CHAR|SHRT|INT)_(MIN|MAX) */ #endif #ifdef TW_WORDS_BIGENDIAN #define TW_IS_LITTLE_ENDIAN 0 #define TW_IS_BIG_ENDIAN 1 #else #define TW_IS_LITTLE_ENDIAN 1 #define TW_IS_BIG_ENDIAN 0 #endif #ifdef CHAR_BIT #define TW_CHAR_BIT CHAR_BIT #else #define TW_CHAR_BIT 8 /* guess and hope... */ #endif #define TW_MAXU(t) ((t) ~(t)0) #define TW_MINS(t) ((t)((t)1 << (TW_CHAR_BIT * sizeof(t) - 1))) #define TW_MAXS(t) ((t)~TW_MINS(t)) #define TW_SIZEOF_BYTE TW_SIZEOF_CHAR #define TW_SIZEOF_SBYTE TW_SIZEOF_CHAR #define TW_SIZEOF_DAT TW_SIZEOF_SHORT #define TW_SIZEOF_UDAT TW_SIZEOF_SHORT #define TW_SIZEOF_LDAT TW_SIZEOF_INT #define TW_SIZEOF_ULDAT TW_SIZEOF_INT #define TW_SIZEOF_TOBJ TW_SIZEOF_INT #define TW_SIZEOF_TOPAQUE TW_SIZEOF_SIZE_T #define TW_SIZEOF_TANY TW_SIZEOF_SIZE_T #define TW_SIZEOF_TCOLOR 1 #define TW_SIZEOF_TRUNE 4 #define TW_SIZEOF_TCELL 4 #ifdef UCHAR_MAX #define TW_MAXBYTE UCHAR_MAX #define TW_MAXUDAT USHRT_MAX #define TW_MAXULDAT UINT_MAX #define TW_MINSBYTE SCHAR_MIN #define TW_MAXSBYTE SCHAR_MAX #define TW_MINDAT SHRT_MIN #define TW_MAXDAT SHRT_MAX #define TW_MINLDAT INT_MIN #define TW_MAXLDAT INT_MAX #else #define TW_MAXBYTE TW_MAXU(byte) #define TW_MAXUDAT TW_MAXU(udat) #define TW_MAXULDAT TW_MAXU(uldat) #define TW_MINSBYTE TW_MINS(sbyte) #define TW_MAXSBYTE TW_MAXS(sbyte) #define TW_MINDAT TW_MINS(dat) #define TW_MAXDAT TW_MAXS(dat) #define TW_MINLDAT TW_MINS(ldat) #define TW_MAXLDAT TW_MAXS(ldat) #endif #ifdef SIZE_MAX #define TW_MAXTOBJ TW_MAXULDAT #define TW_MAXTOPAQUE SIZE_MAX #define TW_MAXTANY SIZE_MAX #else #define TW_MAXTOBJ TW_MAXULDAT #define TW_MAXTOPAQUE TW_MAXU(topaque) #define TW_MAXTANY TW_MAXU(tany) #endif #define TW_MAXWCOL 0xFF #define TW_MAXWFONT 0xFFFFFFFF #define TW_MAXWATTR 0xFFFFFFFF #endif /* TW_DATASIZES_H */ ���������������������������������������������������������������������������������������twin-0.9.0/include/Tw/datatypes.h�������������������������������������������������������������������0000664�0000000�0000000�00000006726�13775351206�0016711�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef TW_DATATYPES_H #define TW_DATATYPES_H #ifndef TWTWAUTOCONF_H #include <Tw/autoconf.h> #endif #if defined(TW_HAVE_STDDEF_H) #include <stddef.h> /* for SIZE_T */ #endif #if defined(TW_HAVE_STDINT_H) #include <stdint.h> /* for uint8_t, uint32_t */ #endif #include <Tw/compiler.h> // for TW_INLINE #ifdef __cplusplus extern "C" { #endif /* common datatypes */ typedef signed char sbyte; typedef unsigned char byte; typedef signed short dat; typedef unsigned short udat; typedef signed int ldat; typedef unsigned int uldat; /* tobj, topaque, tany */ typedef uldat tobj; typedef size_t topaque; typedef size_t tany; /* tcolor, trune, tcell */ #ifdef TW_HAVE_STDINT_H typedef uint8_t tcolor; typedef uint32_t trune; typedef uint32_t tcell; #else typedef byte tcolor; typedef uldat trune; typedef uldat tcell; #endif /* hw* datatypes, for backward compatibility */ typedef tcolor hwcol; typedef trune hwfont; typedef tcell hwattr; typedef enum { tfalse, ttrue } tbool; typedef enum { tzero, tone, ttwo } tternary; /* miscellaneous types and constants */ #define TW_NOID ((uldat)0) #define TW_BADID ((uldat)-1) #define TW_NOFD (-1) #define TW_NOSLOT TW_MAXULDAT #define TW_DECL_MAGIC(id) \ static byte id[10 + sizeof(uldat)] = { \ 10 + sizeof(uldat), sizeof(byte), sizeof(udat), sizeof(uldat), sizeof(tcolor), \ sizeof(topaque), sizeof(tany), sizeof(trune), sizeof(tcell), 0} /* tcell bytes are { 'utf21_low', 'utf21_mid', 'utf21_high', 'color' } */ /* tcell <-> tcolor+trune conversion */ #define TCELL(col, font) ((tcell)(font) | ((tcell)(byte)(col) << 24)) #define TCELL_COLMASK(attr) ((attr)&0xFF000000) #define TCELL_FONTMASK(attr) ((attr)&0x00FFFFFF) #define TCOLOR(attr) ((tcolor)((attr) >> 24)) #define TRUNEEXTRA(attr) ((attr)&0x00FFFFFF) #define TRUNE(attr) Tw_trune(attr) trune Tw_trune(tcell attr); /* * Notes about the timevalue struct: * * it is used to represent both time intervals and absolute times; * the ->Seconds is a tany numeric field. * DON'T assume tany is 32 bit (or any other arbitrary size) * since in 19 Jan 2038 at 04:14:08 any signed, 32 bit tany will overflow. * So use sizeof(tany) if you really need. * * the ->Fraction is a tany numeric field. * As above, DON'T assume tany is 32 bit (or any other arbitrary size) * since in the future we may want a finer granularity than the nanosecond one * possible with a 32 bit tany. * So : * 1) use sizeof(tany) if you really need * 2) don't assume (tany)1 is a nanosecond (or any other arbitrary time), * but always use the form '1 NanoSECs', '250 MilliSECs + 7 MicroSECs', etc. * 3) if you _absolutely_ need to know to what time (tany)1 corresponds, * use this: '1 FullSECs' is the number of (tany)1 intervals in a second. * 4) for the moment, the only defined fractions of a second are: * FullSECs, MilliSECs, MicroSECs, NanoSECs. * Others may be added in the future (PicoSECs, FemtoSECs, AttoSECs, ...) */ typedef struct s_timevalue { tany Seconds; tany Fraction; } timevalue; #define THOUSAND ((tany)1000) #define NanoSEC 1 /* i.e. (tany)1 is a nanosecond */ #define MicroSEC (THOUSAND * NanoSEC) #define MilliSEC (THOUSAND * MicroSEC) #define FullSEC (THOUSAND * MilliSEC) #define NanoSECs *NanoSEC #define MicroSECs *MicroSEC #define MilliSECs *MilliSEC #define FullSECs *FullSEC #ifdef __cplusplus } #endif #endif /* TW_DATATYPES_H */ ������������������������������������������twin-0.9.0/include/Tw/m4/���������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015047�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/m4/alias.m4h������������������������������������������������������������������0000664�0000000�0000000�00000001020�13775351206�0016543�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ define(`TARGET') include(m4/Tw_alias.m4) divert(-1) define(`set', `define(`base', `$1')`'define(`this', `$2')') define(`push', `pushdef(`base', `$1')`'pushdef(`this', `$2')') define(`pop', `popdef(`base')`'popdef(`this')') define(`el', `set($1,$1)`'methods$1($1, $1)') define(`extends', `push($1,$2)`'methods$1($1, $2)`'pop()') define(`field', `ifelse(this, base, `', ` `#'define Tw_$1`'this Tw_$1`'base')') define(`alias', ` `#'define Tw_$1 Tw_$2`'this') divert Twlist() ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/m4/alias1.m4h�����������������������������������������������������������������0000664�0000000�0000000�00000001017�13775351206�0016632�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ define(`TARGET', 1) include(m4/Tw_alias.m4) divert(-1) define(`set', `define(`base', `$1')`'define(`this', `$2')') define(`push', `pushdef(`base', `$1')`'pushdef(`this', `$2')') define(`pop', `popdef(`base')`'popdef(`this')') define(`el', `set($1,$1)`'methods$1($1, $1)') define(`extends', `push($1,$2)`'methods$1($1, $2)`'pop()') define(`field', `ifelse(this, base, `', ` `#'define Tw$1`'this Tw$1`'base')') define(`alias', ` `#'define Tw$1 Tw$2`'this') divert Twlist() �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/m4/common.m4h�����������������������������������������������������������������0000664�0000000�0000000�00000000057�13775351206�0016753�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ define(`TARGET') include(`m4/Tw_common.m4') ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/m4/common1.m4h����������������������������������������������������������������0000664�0000000�0000000�00000000064�13775351206�0017032�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ define(`TARGET', `1') include(`m4/Tw_common.m4') ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/m4/proto.m4h������������������������������������������������������������������0000664�0000000�0000000�00000003612�13775351206�0016626�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/proto.m4h' : m4 macros to autogenerate proto_m4.h dnl Tell the user about this. /* This file was automatically generated with `m4' from `m4/proto.m4h', do not edit! */ /* * proto_m4.h -- check libtw functions prototypes from Tw_sockproto.m4h * against twin.h or against Tw/Tw.h include files. * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ divert(-1) define(`TRIM', `translit(`$1', ` ')') define(`CHAIN', `TRIM($1)`'TRIM($2)') define(`SELF', `$1`'') define(`NAME', `SELF(Tw_`'CHAIN($1,$2))') define(`NSHIFT', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')') define(`PREFIX_ANY', `tdisplay TwD`'ifelse($1, 5, `', `, ')') define(`tv', v) define(`t_', _) define(`tx', x) define(`tV', V) define(`tW', W) define(`tX', X) define(`tY', Y) define(`tO', _) define(`Tv', `void ') define(`T_', `$1 ') define(`Tx', `t$1 ') define(`TV', `TW_CONST $1 *') define(`TW', `TW_CONST $1 *') define(`TX', `TW_CONST t$1 *') define(`TY', `TW_CONST t$1 *') define(`TO', `$1 ') define(`TYPE', `T$2($1)') define(`A', `a$1') define(`ARG', `ifelse($3, v, `', `TYPE($2, $3)`'$4')') define(`_ARGS', `ifelse(eval($# < 3), 1, `', `, ARG($1,$2,t$3,$4)`'_ARGS(incr($1), NSHIFT(4, $@))')') define(`ARGS', `ifelse(eval($# < 3), 1, `', `ARG($1,$2,t$3,$4)`'ifelse($#, 4, `', `_ARGS(incr($1), NSHIFT(4, $@))')')') define(`PROTO', `TYPE($1,$2) NAME($3, $4)(PREFIX_ANY($#)`'ARGS(1, NSHIFT(5, $@)));') define(`PROTOFindFunction', defn(`PROTO')) define(`PROTOSyncSocket', defn(`PROTO')) define(`Tw_ChangeFieldObj', `Tw_ChangeField') define(`c_doxygen', ` $@')`'dnl divert include(`m4/Tw_sockproto.m4') ����������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/m4/proto1.m4h�����������������������������������������������������������������0000664�0000000�0000000�00000003033�13775351206�0016704�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/proto.m4' : m4 macros to autogenerate proto_m4.h dnl Tell the user about this. /* This file was automatically generated with `m4' from `m4/proto.m4', do not edit! */ /* * proto1_m4.h -- single-head compatibility defines for libtw functions prototypes * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ divert(-1) define(`TRIM', `translit(`$1', ` ')') define(`CHAIN', `TRIM($1)`'TRIM($2)') define(`SELF', `$1`'') define(`NAME', `SELF(Tw_`'CHAIN($1,$2))') define(`NAME1', `SELF(Tw`'CHAIN($1,$2))') define(`NSHIFT', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')') define(`PREFIX', `Tw_DefaultD`'ifelse($1, 5, `', `, ')') define(`ARG', `a$1') define(`_ARGS', `ifelse($1, $2, `', `, ARG($1)`'_ARGS(incr($1), $2)')') define(`ARGS', `ifelse($1, 0, `', $1, 1, `ARG(1)', `ARG(1)`'_ARGS(2, incr($1))')') define(`PROTO', ``#'define NAME1($3,$4)(ARGS(eval(($#-5)/3))) NAME($3,$4)(PREFIX($#)`'ARGS(eval(($#-5)/3)))') define(`PROTOFindFunction', defn(`PROTO')) define(`PROTOSyncSocket', defn(`PROTO')) define(`Tw_ChangeFieldObj', `Tw_ChangeField') define(`TwChangeFieldObj', `TwChangeField') define(`Tw_SyncSocket', `Tw_Sync') define(`TwSyncSocket', `TwSync') define(`c_doxygen', `dnl') divert include(`m4/Tw_sockproto.m4') �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/missing.h���������������������������������������������������������������������0000664�0000000�0000000�00000002624�13775351206�0016355�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TW_MISSING_H #define TW_MISSING_H #include <Tw/prefix.h> #include <Tw/autoconf.h> #ifndef TW_HAVE_GETENV char *Tw_missing_getenv(TW(CONST) char *name); #define getenv Tw_missing_getenv #endif #ifndef TW_HAVE_MEMCMP int Tw_missing_memcmp(TW(CONST) void *s1, TW(CONST) void *s2, size_t n); #define memcmp Tw_missing_memcmp #endif #ifdef TW_SETVBUF_REVERSED #define setvbuf(stream, buf, mode, size) setvbuf(stream, mode, buf, size) #endif #ifndef TW_HAVE_STRDUP char *Tw_missing_strdup(TW(CONST) char *s, void *(*missing_malloc)(size_t size)); #define strdup(s) Tw_missing_strdup((s), Tw(AllocMem)) #endif #ifndef TW_HAVE_STRERROR #define strerror(err) "" #endif #ifndef TW_HAVE_HSTRERROR #define hstrerror(herr) "" #endif #ifndef TW_HAVE_STRSPN size_t Tw_missing_strspn(TW(CONST) char *s, TW(CONST) char *accept); #define strspn Tw_missing_strspn #endif #ifndef TW_HAVE_STRSTR TW(CONST) char *Tw_missing_strstr(TW(CONST) char *haystack, TW(CONST) char *needle); #define strstr Tw_missing_strstr #endif #if defined(TW_HAVE_WAIT3) #define Tw_wait3 wait3 #elif defined(TW_HAVE_WAIT4) #define Tw_wait3(status, options, rusage) wait4(-1, status, options, rusage) #else #define Tw_wait3(status, options, rusage) ((pid_t)-1) #endif int Tw_option_strcmp(TW_CONST char *s1, TW_CONST char *s2); int Tw_option_strncmp(TW_CONST char *s1, TW_CONST char *s2, size_t n); #include <Tw/unprefix.h> #endif /* TW_MISSING_H */ ������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/mouse.h�����������������������������������������������������������������������0000664�0000000�0000000�00000007215�13775351206�0016035�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TW_MOUSE_H #define TW_MOUSE_H /* mouse events stuff */ #define BUTTON_N_MAX 5 /* number of supported mouse buttons */ #define BUTTON_BITSHIFT 0 #define BUTTON_ ((udat)1 << BUTTON_BITSHIFT) #define BUTTON_CODE(n) (BUTTON_ + (n)) /* n is 0,1,2,3,4 */ #define BUTTON_LEFT BUTTON_CODE(0) #define BUTTON_MIDDLE BUTTON_CODE(1) #define BUTTON_RIGHT BUTTON_CODE(2) #define BUTTON_WHEEL_REV BUTTON_CODE(3) #define BUTTON_WHEEL_FWD BUTTON_CODE(4) #define BUTTON_ANY \ (BUTTON_LEFT | BUTTON_MIDDLE | BUTTON_RIGHT | BUTTON_WHEEL_REV | BUTTON_WHEEL_FWD) #define HOLD_BITSHIFT 3 #define HOLD_ ((udat)1 << HOLD_BITSHIFT) #define HOLD_CODE(n) (HOLD_ << (n)) /* n is 0,1,2,3,4 */ #define HOLD_LEFT HOLD_CODE(0) #define HOLD_MIDDLE HOLD_CODE(1) #define HOLD_RIGHT HOLD_CODE(2) #define HOLD_WHEEL_REV HOLD_CODE(3) #define HOLD_WHEEL_FWD HOLD_CODE(4) #define HOLD_ANY (HOLD_LEFT | HOLD_MIDDLE | HOLD_RIGHT | HOLD_WHEEL_REV | HOLD_WHEEL_FWD) #define MOVE_ ((udat)0x00) #define MOVE_MOUSE MOVE_ #define MOVE_ANY MOVE_MOUSE #define PRESS_BITSHIFT 8 #define PRESS_ ((udat)1 << PRESS_BITSHIFT) #define PRESS_CODE(n) (PRESS_ | BUTTON_CODE(n)) /* n is 0,1,2,3,4 */ #define PRESS_LEFT PRESS_CODE(0) #define PRESS_MIDDLE PRESS_CODE(1) #define PRESS_RIGHT PRESS_CODE(2) #define PRESS_WHEEL_REV PRESS_CODE(3) #define PRESS_WHEEL_FWD PRESS_CODE(4) #define PRESS_ANY (PRESS_LEFT | PRESS_MIDDLE | PRESS_RIGHT | PRESS_WHEEL_REV | PRESS_WHEEL_FWD) #define RELEASE_BITSHIFT 9 #define RELEASE_ ((udat)1 << RELEASE_BITSHIFT) #define RELEASE_CODE(n) (RELEASE_ | BUTTON_CODE(n)) /* n is 0,1,2,3,4 */ #define RELEASE_LEFT RELEASE_CODE(0) #define RELEASE_MIDDLE RELEASE_CODE(1) #define RELEASE_RIGHT RELEASE_CODE(2) #define RELEASE_WHEEL_REV RELEASE_CODE(3) #define RELEASE_WHEEL_FWD RELEASE_CODE(4) #define RELEASE_ANY \ (RELEASE_LEFT | RELEASE_MIDDLE | RELEASE_RIGHT | RELEASE_WHEEL_REV | RELEASE_WHEEL_FWD) #define MOUSE_ACTION_MASK (MOVE_ | PRESS_ | RELEASE_) #define MOUSE_ACTION_ANY (MOVE_ANY | PRESS_ANY | RELEASE_ANY) #define MOUSE_ANY (MOVE_ANY | PRESS_ANY | RELEASE_ANY | HOLD_ANY) #define MOUSE_CODE_MAX (RELEASE_CODE(BUTTON_N_MAX) | (HOLD_ANY & ~HOLD_CODE(BUTTON_N_MAX))) #define isMOVE(code) (((code)&MOUSE_ACTION_MASK) == MOVE_) #define isPRESS(code) (((code)&MOUSE_ACTION_MASK) == PRESS_) #define isRELEASE(code) (((code)&MOUSE_ACTION_MASK) == RELEASE_) #define isSINGLE_MOVE(code) \ (isMOVE(code) && ((code) == (MOVE_ | HOLD_LEFT) || (code) == (MOVE_ | HOLD_MIDDLE) || \ (code) == (MOVE_ | HOLD_RIGHT) || (code) == (MOVE_ | HOLD_WHEEL_REV) || \ (code) == (MOVE_ | HOLD_WHEEL_FWD))) #define isSINGLE_PRESS(code) (isPRESS(code) && !((code)&HOLD_ANY)) #define isSINGLE_RELEASE(code) (isRELEASE(code) && !((code)&HOLD_ANY)) /* * These macros can be used only for proper mouse codes. * The button numbers are: 0 (Left), 1 (Middle), 2 (Right), 3 (Wheel Up), 4 (Wheel Down) */ /* if (code & HOLD_ANY) then HOLD_N(n) returns the lowest button # pressed in code */ #define HOLD_N(code) (ffs(((code)&HOLD_ANY) >> HOLD_BITSHIFT) - 1) /* * if (isPRESS(code) || isRELEASE(code)) then BUTTON_N(n) returns * the button # activated (pressed or released) in code */ #define BUTTON_N(code) (((code)&BUTTON_ANY) - BUTTON_CODE(0)) #define PRESS_N(code) BUTTON_N(code) #define RELEASE_N(code) BUTTON_N(code) /* if (isSINGLE_MOVE(code)) then MOVE_N(n) return the button # pressed in code */ #define MOVE_N(code) HOLD_N(code) #endif /* TW_MOUSE_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/osincludes.h������������������������������������������������������������������0000664�0000000�0000000�00000001107�13775351206�0017047�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef TW_OSINCLUDES_H #define TW_OSINCLUDES_H #include <errno.h> #ifdef TW_HAVE_STDDEF_H #include <stddef.h> #endif #include <stdio.h> #ifdef TW_HAVE_STDLIB_H #include <stdlib.h> #endif #ifdef TW_HAVE_STDINT_H #include <stdint.h> #endif #ifdef TW_HAVE_STDARG_H #include <stdarg.h> #endif #ifdef TW_HAVE_STRING_H #include <string.h> #endif #include <time.h> #include <sys/types.h> #ifdef TW_HAVE_LIMITS_H #include <limits.h> #endif #ifdef TW_HAVE_UNISTD_H #include <unistd.h> #endif #ifdef TW_TIME_WITH_SYS_TIME #include <sys/time.h> #endif #endif /* TW_OSINCLUDES_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/pagesize.h��������������������������������������������������������������������0000664�0000000�0000000�00000002256�13775351206�0016514�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef TW_PAGESIZE_H #define TW_PAGESIZE_H #ifndef TWTWAUTOCONF_H #include <Tw/autoconf.h> #endif #ifdef TW_HAVE_SYS_MMAN_H #include <sys/mman.h> #endif /* This mess was adapted from the GNU getpagesize.h. */ #ifdef TW_HAVE_UNISTD_H #include <unistd.h> #endif #ifndef TW_HAVE_GETPAGESIZE #if defined(_SC_PAGESIZE) && defined(TW_HAVE_SYSCONF) #define getpagesize() (sysconf(_SC_PAGESIZE)) #else /* no sysconf(_SC_PAGESIZE) */ #ifdef TW_HAVE_ASM_PAGE_H #include <asm/page.h> #endif #ifdef TW_HAVE_SYS_PARAM_H #include <sys/param.h> #endif #ifdef EXEC_PAGESIZE #define getpagesize() (EXEC_PAGESIZE) #else /* no EXEC_PAGESIZE */ #ifdef NBPG #ifndef CLSIZE #define CLSIZE 1 #endif /* no CLSIZE */ #define getpagesize() ((NBPG) * (CLSIZE)) #else /* no NBPG */ #ifdef NBPC #define getpagesize() (NBPC) #else /* no NBPC */ #ifdef PAGE_SIZE #define getpagesize() (PAGE_SIZE) #else /* no PAGE_SIZE */ #ifdef PAGESIZE #define getpagesize() (PAGESIZE) #else #error cannot detect PAGESIZE #endif /* no PAGESIZE */ #endif /* no PAGE_SIZE */ #endif /* no NBPC */ #endif /* no NBPG */ #endif /* no EXEC_PAGESIZE */ #endif /* no _SC_PAGESIZE */ #endif /* no TW_HAVE_GETPAGESIZE */ #endif /* TW_PAGESIZE_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/prefix.h����������������������������������������������������������������������0000664�0000000�0000000�00000000511�13775351206�0016172�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TW_PREFIX_H #define TW_PREFIX_H #ifdef TW_H #define TW_PREFIX 1 #define Tw(arg) Tw_##arg #define TW(arg) TW_##arg #ifndef TW_AUTOCONF_H #include <Tw/autoconf.h> #endif #else #define TW_PREFIX 0 #define Tw(arg) arg #define TW(arg) arg #ifndef TWAUTOCONF_H #include "twautoconf.h" #endif #endif #endif /* TW_PREFIX_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/proto1_m4.h�������������������������������������������������������������������0000664�0000000�0000000�00000017557�13775351206�0016543�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated with m4 from m4/proto.m4, do not edit! */ /* * proto1_m4.h -- single-head compatibility defines for libtw functions prototypes * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #define TwFindFunction(a1, a2, a3, a4) Tw_FindFunction(Tw_DefaultD, a1, a2, a3, a4) #define TwSync() Tw_Sync(Tw_DefaultD) #define TwServerSizeof(a1) Tw_ServerSizeof(Tw_DefaultD, a1) #define TwCanCompress() Tw_CanCompress(Tw_DefaultD) #define TwDoCompress(a1) Tw_DoCompress(Tw_DefaultD, a1) #define TwNeedResizeDisplay() Tw_NeedResizeDisplay(Tw_DefaultD) #define TwAttachHW(a1, a2, a3) Tw_AttachHW(Tw_DefaultD, a1, a2, a3) #define TwDetachHW(a1, a2) Tw_DetachHW(Tw_DefaultD, a1, a2) #define TwSetFontTranslation(a1) Tw_SetFontTranslation(Tw_DefaultD, a1) #define TwSetTRuneTranslation(a1) Tw_SetTRuneTranslation(Tw_DefaultD, a1) #define TwDeleteObj(a1) Tw_DeleteObj(Tw_DefaultD, a1) #define TwChangeField(a1, a2, a3, a4) Tw_ChangeField(Tw_DefaultD, a1, a2, a3, a4) #define TwCreateWidget(a1, a2, a3, a4, a5, a6, a7) Tw_CreateWidget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7) #define TwRecursiveDeleteWidget(a1) Tw_RecursiveDeleteWidget(Tw_DefaultD, a1) #define TwMapWidget(a1, a2) Tw_MapWidget(Tw_DefaultD, a1, a2) #define TwUnMapWidget(a1) Tw_UnMapWidget(Tw_DefaultD, a1) #define TwSetXYWidget(a1, a2, a3) Tw_SetXYWidget(Tw_DefaultD, a1, a2, a3) #define TwResizeWidget(a1, a2, a3) Tw_ResizeWidget(Tw_DefaultD, a1, a2, a3) #define TwScrollWidget(a1, a2, a3) Tw_ScrollWidget(Tw_DefaultD, a1, a2, a3) #define TwDrawWidget(a1, a2, a3, a4, a5, a6, a7, a8) Tw_DrawWidget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7, a8) #define TwSetVisibleWidget(a1, a2) Tw_SetVisibleWidget(Tw_DefaultD, a1, a2) #define TwFocusSubWidget(a1) Tw_FocusSubWidget(Tw_DefaultD, a1) #define TwFindWidgetAtWidget(a1, a2, a3) Tw_FindWidgetAtWidget(Tw_DefaultD, a1, a2, a3) #define TwRaiseWidget(a1) Tw_RaiseWidget(Tw_DefaultD, a1) #define TwLowerWidget(a1) Tw_LowerWidget(Tw_DefaultD, a1) #define TwRestackChildrenWidget(a1, a2, a3) Tw_RestackChildrenWidget(Tw_DefaultD, a1, a2, a3) #define TwCirculateChildrenWidget(a1, a2) Tw_CirculateChildrenWidget(Tw_DefaultD, a1, a2) #define TwCreateGadget(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) Tw_CreateGadget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) #define TwCreateButtonGadget(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) Tw_CreateButtonGadget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) #define TwWriteTextsGadget(a1, a2, a3, a4, a5, a6, a7) Tw_WriteTextsGadget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7) #define TwWriteTRunesGadget(a1, a2, a3, a4, a5, a6, a7) Tw_WriteTRunesGadget(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7) #define TwCreateWindow(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) Tw_CreateWindow(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) #define TwCreate4MenuWindow(a1) Tw_Create4MenuWindow(Tw_DefaultD, a1) #define TwWriteCharsetWindow(a1, a2, a3) Tw_WriteCharsetWindow(Tw_DefaultD, a1, a2, a3) #define TwWriteUtf8Window(a1, a2, a3) Tw_WriteUtf8Window(Tw_DefaultD, a1, a2, a3) #define TwWriteTRuneWindow(a1, a2, a3) Tw_WriteTRuneWindow(Tw_DefaultD, a1, a2, a3) #define TwWriteTCellWindow(a1, a2, a3, a4, a5) Tw_WriteTCellWindow(Tw_DefaultD, a1, a2, a3, a4, a5) #define TwGotoXYWindow(a1, a2, a3) Tw_GotoXYWindow(Tw_DefaultD, a1, a2, a3) #define TwSetTitleWindow(a1, a2, a3) Tw_SetTitleWindow(Tw_DefaultD, a1, a2, a3) #define TwSetColTextWindow(a1, a2) Tw_SetColTextWindow(Tw_DefaultD, a1, a2) #define TwSetColorsWindow(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) Tw_SetColorsWindow(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) #define TwConfigureWindow(a1, a2, a3, a4, a5, a6, a7, a8) Tw_ConfigureWindow(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7, a8) #define TwFindRowByCodeWindow(a1, a2) Tw_FindRowByCodeWindow(Tw_DefaultD, a1, a2) #define TwCreateGroup() Tw_CreateGroup(Tw_DefaultD) #define TwInsertGadgetGroup(a1, a2) Tw_InsertGadgetGroup(Tw_DefaultD, a1, a2) #define TwRemoveGadgetGroup(a1, a2) Tw_RemoveGadgetGroup(Tw_DefaultD, a1, a2) #define TwGetSelectedGadgetGroup(a1) Tw_GetSelectedGadgetGroup(Tw_DefaultD, a1) #define TwSetSelectedGadgetGroup(a1, a2) Tw_SetSelectedGadgetGroup(Tw_DefaultD, a1, a2) #define TwRaiseRow(a1) Tw_RaiseRow(Tw_DefaultD, a1) #define TwLowerRow(a1) Tw_LowerRow(Tw_DefaultD, a1) #define TwRestackChildrenRow(a1, a2, a3) Tw_RestackChildrenRow(Tw_DefaultD, a1, a2, a3) #define TwCirculateChildrenRow(a1, a2) Tw_CirculateChildrenRow(Tw_DefaultD, a1, a2) #define TwCreate4MenuAny(a1, a2, a3, a4, a5, a6) Tw_Create4MenuAny(Tw_DefaultD, a1, a2, a3, a4, a5, a6) #define TwCreate4MenuCommonMenuItem(a1) Tw_Create4MenuCommonMenuItem(Tw_DefaultD, a1) #define TwCreateMenu(a1, a2, a3, a4, a5, a6, a7) Tw_CreateMenu(Tw_DefaultD, a1, a2, a3, a4, a5, a6, a7) #define TwSetInfoMenu(a1, a2, a3, a4, a5) Tw_SetInfoMenu(Tw_DefaultD, a1, a2, a3, a4, a5) #define TwCreateMsgPort(a1, a2) Tw_CreateMsgPort(Tw_DefaultD, a1, a2) #define TwFindMsgPort(a1, a2, a3) Tw_FindMsgPort(Tw_DefaultD, a1, a2, a3) #define TwBgImageScreen(a1, a2, a3, a4) Tw_BgImageScreen(Tw_DefaultD, a1, a2, a3, a4) #define TwPrevObj(a1) Tw_PrevObj(Tw_DefaultD, a1) #define TwNextObj(a1) Tw_NextObj(Tw_DefaultD, a1) #define TwParentObj(a1) Tw_ParentObj(Tw_DefaultD, a1) #define TwFirstScreen() Tw_FirstScreen(Tw_DefaultD) #define TwFirstWidget(a1) Tw_FirstWidget(Tw_DefaultD, a1) #define TwFirstMsgPort() Tw_FirstMsgPort(Tw_DefaultD) #define TwFirstMenu(a1) Tw_FirstMenu(Tw_DefaultD, a1) #define TwFirstW(a1) Tw_FirstW(Tw_DefaultD, a1) #define TwFirstGroup(a1) Tw_FirstGroup(Tw_DefaultD, a1) #define TwFirstMutex(a1) Tw_FirstMutex(Tw_DefaultD, a1) #define TwFirstMenuItem(a1) Tw_FirstMenuItem(Tw_DefaultD, a1) #define TwFirstGadget(a1) Tw_FirstGadget(Tw_DefaultD, a1) #define TwGetDisplayWidth() Tw_GetDisplayWidth(Tw_DefaultD) #define TwGetDisplayHeight() Tw_GetDisplayHeight(Tw_DefaultD) #define TwGetAll() Tw_GetAll(Tw_DefaultD) #define TwSendToMsgPort(a1, a2, a3) Tw_SendToMsgPort(Tw_DefaultD, a1, a2, a3) #define TwBlindSendToMsgPort(a1, a2, a3) Tw_BlindSendToMsgPort(Tw_DefaultD, a1, a2, a3) #define TwGetOwnerSelection() Tw_GetOwnerSelection(Tw_DefaultD) #define TwSetOwnerSelection(a1, a2) Tw_SetOwnerSelection(Tw_DefaultD, a1, a2) #define TwRequestSelection(a1, a2) Tw_RequestSelection(Tw_DefaultD, a1, a2) #define TwNotifySelection(a1, a2, a3, a4, a5, a6) Tw_NotifySelection(Tw_DefaultD, a1, a2, a3, a4, a5, a6) #define TwSetServerUid(a1, a2) Tw_SetServerUid(Tw_DefaultD, a1, a2) �������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/proto_m4.h��������������������������������������������������������������������0000664�0000000�0000000�00000016642�13775351206�0016454�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated with m4 from m4/proto.m4h, do not edit! */ /* * proto_m4.h -- check libtw functions prototypes from Tw_sockproto.m4h * against twin.h or against Tw/Tw.h include files. * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ /** return server-side id of given libtw function name with given prototype */ uldat Tw_FindFunction(tdisplay TwD, byte namelen, TW_CONST char *name, byte protolen, TW_CONST char *proto); /** sync libtw socket: flush output buffer and wait for server replies */ byte Tw_SyncSocket(tdisplay TwD); /** return server idea of sizeof(type) */ byte Tw_ServerSizeof(tdisplay TwD, byte type); /** return 1 if server supports compression (using zlib) */ byte Tw_CanCompress(tdisplay TwD); /** used internally by libtw to enable/disable compression only on server side; * DO NOT USE THIS, use Tw_EnableGzip() and Tw_DisableGzip() instead */ byte Tw_DoCompress(tdisplay TwD, byte on_off); /** force a server display resize; used by twdisplay */ void Tw_NeedResizeDisplay(tdisplay TwD); /** tell server to open a new display; used by twattach/twdisplay */ void Tw_AttachHW(tdisplay TwD, uldat len, TW_CONST char *name, byte flags); /** tell server to close given display */ byte Tw_DetachHW(tdisplay TwD, uldat len, TW_CONST char *name); /** set server global charset translation */ void Tw_SetFontTranslation(tdisplay TwD, TW_CONST byte *trans); /** set server global charset translation */ void Tw_SetTRuneTranslation(tdisplay TwD, TW_CONST trune *trans); /** delete given object */ void Tw_DeleteObj(tdisplay TwD, tobj O); /** change given field of object; new_value = (old_value & ~clearmask) ^ xormask */ void Tw_ChangeField(tdisplay TwD, tobj O, udat field, uldat clearmask, uldat xormask); twidget Tw_CreateWidget(tdisplay TwD, dat w, dat h, uldat attrib, uldat flags, dat x, dat y, tcell fill); /** delete given widget and all its children */ void Tw_RecursiveDeleteWidget(tdisplay TwD, twidget W); void Tw_MapWidget(tdisplay TwD, twidget W, twidget parent); void Tw_UnMapWidget(tdisplay TwD, twidget W); void Tw_SetXYWidget(tdisplay TwD, twidget W, dat x, dat y); void Tw_ResizeWidget(tdisplay TwD, twidget W, dat w, dat h); void Tw_ScrollWidget(tdisplay TwD, twidget W, ldat dxl, ldat dyl); void Tw_DrawWidget(tdisplay TwD, twidget W, dat w, dat h, dat x, dat y, TW_CONST char *text, TW_CONST trune *textfont, TW_CONST tcell *textattr); void Tw_SetVisibleWidget(tdisplay TwD, twidget W, byte on_off); void Tw_FocusSubWidget(tdisplay TwD, twidget W); twidget Tw_FindWidgetAtWidget(tdisplay TwD, twidget W, dat x, dat y); void Tw_RaiseWidget(tdisplay TwD, twidget W); void Tw_LowerWidget(tdisplay TwD, twidget W); void Tw_RestackChildrenWidget(tdisplay TwD, twidget W, uldat n, TW_CONST twidget *children); void Tw_CirculateChildrenWidget(tdisplay TwD, twidget W, byte up_down); tgadget Tw_CreateGadget(tdisplay TwD, twidget parent, dat w, dat h, TW_CONST char *text, uldat attrib, uldat flags, udat code, tcolor coltext, tcolor colselect, tcolor coldisabled, tcolor colselectdisabled, dat x, dat y); tgadget Tw_CreateButtonGadget(tdisplay TwD, twidget parent, dat w, dat h, TW_CONST char *text, uldat flags, udat code, tcolor colbg, tcolor col, tcolor coldisabled, dat x, dat y); void Tw_WriteTextsGadget(tdisplay TwD, tgadget G, byte mask, dat w, dat h, TW_CONST char *text, dat x, dat y); void Tw_WriteTRunesGadget(tdisplay TwD, tgadget G, byte mask, dat w, dat h, TW_CONST trune *runes, dat x, dat y); twindow Tw_CreateWindow(tdisplay TwD, dat titlelen, TW_CONST char *title, TW_CONST tcolor *coltitle, tmenu M, tcolor coltext, uldat cursortype, uldat attrib, uldat flags, dat w, dat h, dat hscroll); twindow Tw_Create4MenuWindow(tdisplay TwD, tmenu M); void Tw_WriteCharsetWindow(tdisplay TwD, twindow W, uldat len, TW_CONST char *charset_bytes); void Tw_WriteUtf8Window(tdisplay TwD, twindow W, uldat len, TW_CONST char *utf8_bytes); void Tw_WriteTRuneWindow(tdisplay TwD, twindow W, uldat len, TW_CONST trune *runes); void Tw_WriteTCellWindow(tdisplay TwD, twindow W, dat x, dat y, uldat len, TW_CONST tcell *cells); void Tw_GotoXYWindow(tdisplay TwD, twindow W, ldat x, ldat y); void Tw_SetTitleWindow(tdisplay TwD, twindow W, dat titlelen, TW_CONST char *title); void Tw_SetColTextWindow(tdisplay TwD, twindow W, tcolor coltext); void Tw_SetColorsWindow(tdisplay TwD, twindow W, udat mask, tcolor colgadgets, tcolor colarrows, tcolor colbars, tcolor coltabs, tcolor colborder, tcolor coltext, tcolor colselect, tcolor coldisabled, tcolor colselectdisabled); void Tw_ConfigureWindow(tdisplay TwD, twindow W, byte mask, dat x, dat y, dat minw, dat minh, dat maxw, dat maxh); trow Tw_FindRowByCodeWindow(tdisplay TwD, twindow W, dat code); tgroup Tw_CreateGroup(tdisplay TwD); void Tw_InsertGadgetGroup(tdisplay TwD, tgroup g, tgadget G); void Tw_RemoveGadgetGroup(tdisplay TwD, tgroup g, tgadget G); tgadget Tw_GetSelectedGadgetGroup(tdisplay TwD, tgroup g); void Tw_SetSelectedGadgetGroup(tdisplay TwD, tgroup g, tgadget G); void Tw_RaiseRow(tdisplay TwD, trow R); void Tw_LowerRow(tdisplay TwD, trow R); void Tw_RestackChildrenRow(tdisplay TwD, tobj O, uldat n, TW_CONST trow *children); void Tw_CirculateChildrenRow(tdisplay TwD, tobj O, byte up_down); trow Tw_Create4MenuAny(tdisplay TwD, tobj parent, twindow W, udat code, byte flags, ldat len, TW_CONST char *text); uldat Tw_Create4MenuCommonMenuItem(tdisplay TwD, tmenu M); tmenu Tw_CreateMenu(tdisplay TwD, tcolor colitem, tcolor colselect, tcolor coldisabled, tcolor colselectdisabled, tcolor colshortcut, tcolor colshortcutselect, byte flags); void Tw_SetInfoMenu(tdisplay TwD, tmenu M, byte flags, ldat len, TW_CONST char *text, TW_CONST tcolor *coltext); tmsgport Tw_CreateMsgPort(tdisplay TwD, byte len, TW_CONST char *name); tmsgport Tw_FindMsgPort(tdisplay TwD, tmsgport prev, byte len, TW_CONST char *name); void Tw_BgImageScreen(tdisplay TwD, tscreen S, dat w, dat h, TW_CONST tcell *textattr); tobj Tw_PrevObj(tdisplay TwD, tobj O); tobj Tw_NextObj(tdisplay TwD, tobj O); tobj Tw_ParentObj(tdisplay TwD, tobj O); tscreen Tw_FirstScreen(tdisplay TwD); twidget Tw_FirstWidget(tdisplay TwD, twidget W); tmsgport Tw_FirstMsgPort(tdisplay TwD); tmenu Tw_FirstMenu(tdisplay TwD, tmsgport P); twidget Tw_FirstW(tdisplay TwD, tmsgport P); tgroup Tw_FirstGroup(tdisplay TwD, tmsgport P); tmutex Tw_FirstMutex(tdisplay TwD, tmsgport P); tmenuitem Tw_FirstMenuItem(tdisplay TwD, tmenu M); tgadget Tw_FirstGadget(tdisplay TwD, tgroup g); dat Tw_GetDisplayWidth(tdisplay TwD); dat Tw_GetDisplayHeight(tdisplay TwD); tall Tw_GetAll(tdisplay TwD); byte Tw_SendToMsgPort(tdisplay TwD, tmsgport P, udat len, TW_CONST byte *data); void Tw_BlindSendToMsgPort(tdisplay TwD, tmsgport P, udat len, TW_CONST byte *data); tobj Tw_GetOwnerSelection(tdisplay TwD); void Tw_SetOwnerSelection(tdisplay TwD, tany secnow, tany fracnow); void Tw_RequestSelection(tdisplay TwD, tobj owner, uldat reqprivate); void Tw_NotifySelection(tdisplay TwD, tobj requestor, uldat reqprivate, uldat magic, TW_CONST char *mime, uldat len, TW_CONST char *data); byte Tw_SetServerUid(tdisplay TwD, uldat uid, byte privileges); ����������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/stattypes.h�������������������������������������������������������������������0000664�0000000�0000000�00000000634�13775351206�0016743�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TW_STATTYPES_H #define TW_STATTYPES_H typedef union s_tsval { tany _; #ifdef obj obj o; #endif struct { union { void *V; TW_CONST void *CV; }; topaque L; } vec; } tsval; typedef struct s_tsfield { udat label; udat type; tsval val; } * tsfield; typedef struct s_tslist { udat N; udat flags; struct s_tsfield TSF[1]; } * tslist; #endif /* TW_STATTYPES_H */ ����������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/unprefix.h��������������������������������������������������������������������0000664�0000000�0000000�00000000150�13775351206�0016534�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifdef TW_PREFIX_H #undef TW_PREFIX #undef Tw #undef TW #undef TW_PREFIX_H #endif /* TW_PREFIX_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/Tw/version.h.in������������������������������������������������������������������0000664�0000000�0000000�00000001674�13775351206�0017002�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TW_VERSION_H #define TW_VERSION_H /* on-the-wire ABI compatibility version. different from ABI+API compatibility version in * libtw.so.x.y.z name */ #define TW_PROTOCOL_VERSION_MAJOR 4 #define TW_PROTOCOL_VERSION_MINOR 8 #define TW_PROTOCOL_VERSION_PATCH 0 #define TW_PROTOCOL_VERSION \ ((TW_PROTOCOL_VERSION_MAJOR << 16) | (TW_PROTOCOL_VERSION_MINOR << 8) | TW_PROTOCOL_VERSION_PATCH) #define TW_PROTOCOL_VERSION_STR \ TW_STR(TW_PROTOCOL_VERSION_MAJOR) \ "." TW_STR(TW_PROTOCOL_VERSION_MINOR) "." TW_STR(TW_PROTOCOL_VERSION_PATCH) #define TW_VER_MAJOR(n) ((n) >> 16) #define TW_VER_MINOR(n) (((n) >> 8) & 0xFF) #define TW_VER_PATCH(n) ((n)&0xFF) #define TW_VER_BUILD(M, m, p) (((M) << 16) | ((m) << 8) | (p)) #endif /* TW_VERSION_H */ ��������������������������������������������������������������������twin-0.9.0/include/compiler.h�����������������������������������������������������������������������0000664�0000000�0000000�00000003066�13775351206�0016125�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. */ /* server internal stuff. define macros without any prefix */ #ifndef TWIN_COMPILER_H #define TWIN_COMPILER_H #if !defined(CAT) #define _CAT(a, b) a##b #define CAT(a, b) _CAT(a, b) #define _CAT3(a, b, c) a##b##c #define CAT3(a, b, c) _CAT3(a, b, c) #define _CAT4(a, b, c, d) a##b##c##d #define CAT4(a, b, c, d) _CAT4(a, b, c, d) #define _CAT5(a, b, c, d, e) a##b##c##d##e #define CAT5(a, b, c, d, e) _CAT5(a, b, c, d, e) #define _CAT6(a, b, c, d, e, f) a##b##c##d##e##f #define CAT6(a, b, c, d, e, f) _CAT6(a, b, c, d, e, f) #define _CAT8(a, b, c, d, e, f, g, h) a##b##c##d##e##f##g##h #define CAT8(a, b, c, d, e, f, g, h) _CAT8(a, b, c, d, e, f, g, h) #endif #if !defined(STR) #define _STR(s) #s #define STR(s) _STR(s) #endif #ifndef CONST #define CONST const #endif #ifndef VOLATILE #if defined(HAVE_VOLATILE) || defined(volatile) #define VOLATILE volatile #else #define VOLATILE #endif #endif /* inline is NOT a standard C89 feature :( */ #ifndef INLINE #if defined(TW_HAVE_STATIC_INLINE) #define INLINE static inline #elif defined(TW_HAVE_INLINE) || defined(inline) #define INLINE inline #else #define INLINE static #endif #endif #ifndef EXTERN_C #ifdef __cplusplus #define EXTERN_C extern "C" #else #define EXTERN_C #endif #endif #endif /* TWIN_COMPILER_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/config.h.in����������������������������������������������������������������������0000664�0000000�0000000�00000044306�13775351206�0016167�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* include/config.h.in. Generated from configure.ac by autoheader. */ /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD /* Define to compiler's variant of __attribute__((const)), or to empty if not supported. */ #undef ATTR_FN_CONST /* Define to compiler's variant of __attribute__((aligned(1))), or to empty if not supported. */ #undef ATTR_PTR_ALIGNED_1 /* Define to compiler's variant of __attribute__((packed)), or to empty if not supported. */ #undef ATTR_TYPE_PACKED /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Define to 1 if you have the `alarm' function. */ #undef HAVE_ALARM /* Define to 1 if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA /* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the `alphasort' function. */ #undef HAVE_ALPHASORT /* Define to 1 if you have the `argz_add' function. */ #undef HAVE_ARGZ_ADD /* Define to 1 if you have the `argz_append' function. */ #undef HAVE_ARGZ_APPEND /* Define to 1 if you have the `argz_count' function. */ #undef HAVE_ARGZ_COUNT /* Define to 1 if you have the `argz_create_sep' function. */ #undef HAVE_ARGZ_CREATE_SEP /* Define to 1 if you have the <argz.h> header file. */ #undef HAVE_ARGZ_H /* Define to 1 if you have the `argz_insert' function. */ #undef HAVE_ARGZ_INSERT /* Define to 1 if you have the `argz_next' function. */ #undef HAVE_ARGZ_NEXT /* Define to 1 if you have the `argz_stringify' function. */ #undef HAVE_ARGZ_STRINGIFY /* Define to 1 if you have the <arpa/inet.h> header file. */ #undef HAVE_ARPA_INET_H /* Define to 1 if you have the <asm/page.h> header file. */ #undef HAVE_ASM_PAGE_H /* Define to 1 if your system has a working `chown' function. */ #undef HAVE_CHOWN /* Define to 1 if you have the `closedir' function. */ #undef HAVE_CLOSEDIR /* Define to 1 if you have the `crypt' function. */ #undef HAVE_CRYPT /* Define to 1 if you have the <crypt.h> header file. */ #undef HAVE_CRYPT_H /* Define to 1 if you have the declaration of `cygwin_conv_path', and to 0 if you don't. */ #undef HAVE_DECL_CYGWIN_CONV_PATH /* Define to 1 if you have the `deflate' function. */ #undef HAVE_DEFLATE /* Define to 1 if you have the <dirent.h> header file. */ #undef HAVE_DIRENT_H /* Define if you have the GNU dld library. */ #undef HAVE_DLD /* Define to 1 if you have the <dld.h> header file. */ #undef HAVE_DLD_H /* Define to 1 if you have the `dlerror' function. */ #undef HAVE_DLERROR /* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the `dlopen' function. */ #undef HAVE_DLOPEN /* Define to 1 if you have the <dl.h> header file. */ #undef HAVE_DL_H /* Define to 1 if you have the `dup2' function. */ #undef HAVE_DUP2 /* Define if you have the _dyld_func_lookup function. */ #undef HAVE_DYLD /* Define to 1 if the system has the type `error_t'. */ #undef HAVE_ERROR_T /* Define to 1 if you have the <fcntl.h> header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the <fontconfig/fontconfig.h> header file. */ #undef HAVE_FONTCONFIG_FONTCONFIG_H /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK /* Define to 1 if you have the `ftime' function. */ #undef HAVE_FTIME /* Define to 1 if you have the `getenv' function. */ #undef HAVE_GETENV /* Define to 1 if you have the `gethostbyname' function. */ #undef HAVE_GETHOSTBYNAME /* Define to 1 if you have the `gethostname' function. */ #undef HAVE_GETHOSTNAME /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE /* Define to 1 if you have the `getpt' function. */ #undef HAVE_GETPT /* Define to 1 if you have the `getspnam' function. */ #undef HAVE_GETSPNAM /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if you have the `Gpm_Open' function. */ #undef HAVE_GPM_OPEN /* Define to 1 if you have the `grantpt' function. */ #undef HAVE_GRANTPT /* Define to 1 if you have the <grp.h> header file. */ #undef HAVE_GRP_H /* Define to 1 if you have the `hstrerror' function. */ #undef HAVE_HSTRERROR /* Define to 1 if using the libltdl included with this package sources */ #undef HAVE_INCLUDED_LTDL /* Define to 1 if you have the `initgroups' function. */ #undef HAVE_INITGROUPS /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H /* Define if you have the libdl library or equivalent. */ #undef HAVE_LIBDL /* Define if libdlloader will be built on this platform */ #undef HAVE_LIBDLLOADER /* Define to 1 if you have the <libintl.h> header file. */ #undef HAVE_LIBINTL_H /* Define to 1 if you have the <limits.h> header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the <linux/kd.h> header file. */ #undef HAVE_LINUX_KD_H /* Define to 1 if you have the <linux/keyboard.h> header file. */ #undef HAVE_LINUX_KEYBOARD_H /* Define to 1 if you have the <linux/vt.h> header file. */ #undef HAVE_LINUX_VT_H /* Define to 1 if you have the <locale.h> header file. */ #undef HAVE_LOCALE_H /* Define to 1 if you have the `lstat' function. */ #undef HAVE_LSTAT /* Define this if a modern libltdl is already installed */ #undef HAVE_LTDL /* Define to 1 if you have the <machine/param.h> header file. */ #undef HAVE_MACHINE_PARAM_H /* Define to 1 if you have the <mach-o/dyld.h> header file. */ #undef HAVE_MACH_O_DYLD_H /* Define to 1 if your system has a GNU libc compatible `malloc' function, and to 0 otherwise. */ #undef HAVE_MALLOC /* Define to 1 if you have the <malloc.h> header file. */ #undef HAVE_MALLOC_H /* Define to 1 if you have the `memchr' function. */ #undef HAVE_MEMCHR /* Define to 1 if you have the `memcmp' function. */ #undef HAVE_MEMCMP /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP /* Define to 1 if you have the `munmap' function. */ #undef HAVE_MUNMAP /* Define to 1 if you have the <ncurses.h> header file. */ #undef HAVE_NCURSES_H /* Define to 1 if you have the <ncurses/ncurses.h> header file. */ #undef HAVE_NCURSES_NCURSES_H /* Define to 1 if you have the <ncurses/termcap.h> header file. */ #undef HAVE_NCURSES_TERMCAP_H /* Define to 1 if you have the <ndir.h> header file. */ #undef HAVE_NDIR_H /* Define to 1 if you have the <netdb.h> header file. */ #undef HAVE_NETDB_H /* Define to 1 if you have the <netinet/in.h> header file. */ #undef HAVE_NETINET_IN_H /* Define to 1 if you have the `opendir' function. */ #undef HAVE_OPENDIR /* Define if libtool can extract symbol lists from object files. */ #undef HAVE_PRELOADED_SYMBOLS /* Define to 1 if you have the `pthread_create' function. */ #undef HAVE_PTHREAD_CREATE /* Define to 1 if you have the <pthread.h> header file. */ #undef HAVE_PTHREAD_H /* Define to 1 if you have the `ptsname' function. */ #undef HAVE_PTSNAME /* Define to 1 if you have the `putenv' function. */ #undef HAVE_PUTENV /* Define to 1 if you have the <pwd.h> header file. */ #undef HAVE_PWD_H /* Define to 1 if you have the `readdir' function. */ #undef HAVE_READDIR /* Define to 1 if your system has a GNU libc compatible `realloc' function, and to 0 otherwise. */ #undef HAVE_REALLOC /* Define to 1 if you have the `scandir' function. */ #undef HAVE_SCANDIR /* Define to 1 if you have the `select' function. */ #undef HAVE_SELECT /* Define to 1 if you have the `setenv' function. */ #undef HAVE_SETENV /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the <shadow.h> header file. */ #undef HAVE_SHADOW_H /* Define if you have the shl_load function. */ #undef HAVE_SHL_LOAD /* Define to 1 if you have the `sigaction' function. */ #undef HAVE_SIGACTION /* Define to 1 if you have the <signal.h> header file. */ #undef HAVE_SIGNAL_H /* Define to 1 if you have the `socket' function. */ #undef HAVE_SOCKET /* Define to 1 if compiler supports 'static inline' functions. */ #undef HAVE_STATIC_INLINE /* Define to 1 if you have the <stdarg.h> header file. */ #undef HAVE_STDARG_H /* Define to 1 if you have the <stddef.h> header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the <stdint.h> header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the <stdlib.h> header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the <strings.h> header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strlcat' function. */ #undef HAVE_STRLCAT /* Define to 1 if you have the `strlcpy' function. */ #undef HAVE_STRLCPY /* Define to 1 if you have the `strrchr' function. */ #undef HAVE_STRRCHR /* Define to 1 if you have the `strspn' function. */ #undef HAVE_STRSPN /* Define to 1 if you have the `strstr' function. */ #undef HAVE_STRSTR /* Define to 1 if you have the `strtol' function. */ #undef HAVE_STRTOL /* Define to 1 if you have the `strtoul' function. */ #undef HAVE_STRTOUL /* Define to 1 if the `Gpm_Event' struct has a `wdy' member. */ #undef HAVE_STRUCT_GPM_EVENT_WDY /* Define to 1 if you have the `sysconf' function. */ #undef HAVE_SYSCONF /* Define to 1 if you have the <sys/dir.h> header file. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the <sys/dl.h> header file. */ #undef HAVE_SYS_DL_H /* Define to 1 if you have the <sys/filio.h> header file. */ #undef HAVE_SYS_FILIO_H /* Define to 1 if you have the <sys/ioctl.h> header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the <sys/mman.h> header file. */ #undef HAVE_SYS_MMAN_H /* Define to 1 if you have the <sys/ndir.h> header file. */ #undef HAVE_SYS_NDIR_H /* Define to 1 if you have the <sys/param.h> header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the <sys/resource.h> header file. */ #undef HAVE_SYS_RESOURCE_H /* Define to 1 if you have the <sys/select.h> header file. */ #undef HAVE_SYS_SELECT_H /* Define to 1 if you have the <sys/socket.h> header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the <sys/stat.h> header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the <sys/timeb.h> header file. */ #undef HAVE_SYS_TIMEB_H /* Define to 1 if you have the <sys/ttydefaults.h> header file. */ #undef HAVE_SYS_TTYDEFAULTS_H /* Define to 1 if you have the <sys/types.h> header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the <sys/un.h> header file. */ #undef HAVE_SYS_UN_H /* Define to 1 if you have the <sys/utsname.h> header file. */ #undef HAVE_SYS_UTSNAME_H /* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the `tcsetpgrp' function. */ #undef HAVE_TCSETPGRP /* Define to 1 if you have the <termcap.h> header file. */ #undef HAVE_TERMCAP_H /* Define to 1 if you have the <termios.h> header file. */ #undef HAVE_TERMIOS_H /* Define to 1 if you have the <termio.h> header file. */ #undef HAVE_TERMIO_H /* Define to 1 if you have the `tgetent' function. */ #undef HAVE_TGETENT /* Define to 1 if you have the `uname' function. */ #undef HAVE_UNAME /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `unlockpt' function. */ #undef HAVE_UNLOCKPT /* Define to 1 if you have the `usleep' function. */ #undef HAVE_USLEEP /* Define to 1 if you have the `versionsort' function. */ #undef HAVE_VERSIONSORT /* Define to 1 if you have the `vfork' function. */ #undef HAVE_VFORK /* Define to 1 if you have the <vfork.h> header file. */ #undef HAVE_VFORK_H /* Define to 1 if compiler supports 'volatile' keyword. */ #undef HAVE_VOLATILE /* Define to 1 if you have the `vprintf' function. */ #undef HAVE_VPRINTF /* Define to 1 if you have the `vsnprintf' function. */ #undef HAVE_VSNPRINTF /* Define to 1 if you have the `vsprintf' function. */ #undef HAVE_VSPRINTF /* Define to 1 if you have the `wait3' function. */ #undef HAVE_WAIT3 /* Define to 1 if you have the `wait4' function. */ #undef HAVE_WAIT4 /* This value is set to 1 to indicate that the system argz facility works */ #undef HAVE_WORKING_ARGZ /* Define to 1 if `fork' works. */ #undef HAVE_WORKING_FORK /* Define to 1 if `vfork' works. */ #undef HAVE_WORKING_VFORK /* Define to 1 if you have the <X11/Xft/Xft.h> header file. */ #undef HAVE_X11_XFT_XFT_H /* Define to 1 if you have the <zlib.h> header file. */ #undef HAVE_ZLIB_H /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Define if the OS needs help to load dependent libraries for dlopen(). */ #undef LTDL_DLOPEN_DEPLIBS /* Define to the system default library search path. */ #undef LT_DLSEARCH_PATH /* The archive extension */ #undef LT_LIBEXT /* The archive prefix */ #undef LT_LIBPREFIX /* Define to the extension used for runtime loadable modules, say, ".so". */ #undef LT_MODULE_EXT /* Define to the name of the environment variable that determines the run-time module search path. */ #undef LT_MODULE_PATH_VAR /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Define to the shared library suffix, say, ".dylib". */ #undef LT_SHARED_EXT /* Define to the shared archive member specification, say "(shr.o)". */ #undef LT_SHARED_LIB_MEMBER /* Define if dlsym() requires a leading underscore in symbol names. */ #undef NEED_USCORE /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE /* The size of `char', as computed by sizeof. */ #undef SIZEOF_CHAR /* The size of `int', as computed by sizeof. */ #undef SIZEOF_INT /* The size of `long', as computed by sizeof. */ #undef SIZEOF_LONG /* The size of `short', as computed by sizeof. */ #undef SIZEOF_SHORT /* The size of `size_t', as computed by sizeof. */ #undef SIZEOF_SIZE_T /* The size of `void *', as computed by sizeof. */ #undef SIZEOF_VOID_P /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ #undef TIME_WITH_SYS_TIME /* Define to 1 if your <sys/time.h> declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #undef VERSION /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD #if defined __BIG_ENDIAN__ #define WORDS_BIGENDIAN 1 #endif #else #ifndef WORDS_BIGENDIAN #undef WORDS_BIGENDIAN #endif #endif /* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>, <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT32_T /* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>, <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT8_T /* Define so that glibc/gnulib argp.h does not typedef error_t. */ #undef __error_t_defined /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to a type to use for 'error_t' if it is not otherwise available. */ #undef error_t /* Define to `int' if <sys/types.h> doesn't define. */ #undef gid_t /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to the type of a signed integer type of width exactly 16 bits if such a type exists and the standard includes do not define it. */ #undef int16_t /* Define to the type of a signed integer type of width exactly 32 bits if such a type exists and the standard includes do not define it. */ #undef int32_t /* Define to the type of a signed integer type of width exactly 8 bits if such a type exists and the standard includes do not define it. */ #undef int8_t /* Define to rpl_malloc if the replacement function should be used. */ #undef malloc /* Define to `long int' if <sys/types.h> does not define. */ #undef off_t /* Define to `int' if <sys/types.h> does not define. */ #undef pid_t /* Define to rpl_realloc if the replacement function should be used. */ #undef realloc /* Define to `unsigned int' if <sys/types.h> does not define. */ #undef size_t /* Define to `int' if <sys/types.h> does not define. */ #undef socklen_t /* Define to `int' if <sys/types.h> doesn't define. */ #undef uid_t /* Define to the type of an unsigned integer type of width exactly 16 bits if such a type exists and the standard includes do not define it. */ #undef uint16_t /* Define to the type of an unsigned integer type of width exactly 32 bits if such a type exists and the standard includes do not define it. */ #undef uint32_t /* Define to the type of an unsigned integer type of width exactly 8 bits if such a type exists and the standard includes do not define it. */ #undef uint8_t /* Define as `fork' if `vfork' does not work. */ #undef vfork ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/m4/������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014455�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/m4/TTattribute.m4����������������������������������������������������������������0000664�0000000�0000000�00000002165�13775351206�0017176�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ define(`encode_attribute', `0`'patsubst(`$1', `TT_ARG_', `encode_')') define(`encode_READ', `|e_R') define(`encode_WRITE', `|e_W') define(`encode_DIE', `|e_D') define(`encode_ARRAY_Z', `|e_Z') define(`encode_ARRAY', `|e_A(encode_array$1)') define(`encode_array', `ifelse(`$1', `', `', `encode_len($1)`'dnl `'ifelse(`$3', `', `', `|(_encode_array(shift(shift($@))))<<e_WFP')`'dnl `'|encode_op(`$2')')') define(`_encode_array', `ifelse(`$1', `', `', `encode_len($1)`'dnl `'ifelse(`$3', `', `', `|(_encode_array(shift(shift($@))))<<e_WFP')`'dnl `'ifelse(`$2', `', `', `|encode_op(`$2')')')') define(`encode_len', `patsubst($1, `_[FP]', `encode_len\&')') define(`encode_len_F', `e_F(this, $1)') define(`encode_len_P', `e_P($1)') define(`encode_op', `e_OP(ifelse($1, `', e_SET, $1, +, e_ADD, $1, *, e_MUL))') �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/m4/TTclasses.m4������������������������������������������������������������������0000664�0000000�0000000�00000155011�13775351206�0016627�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ ifdef(`c_comment', `', `define(`c_comment')') ifdef(`c_doxygen', `', `define(`c_doxygen')') dnl dnl _G is used to wrap each function argument. dnl _G0 is used to wrap including return value. dnl dnl _RW type modifier means TT_ARG_READ_WRITE (this is the default) dnl i.e. object will be read and/or written to, and may be accessed by libTT dnl even after the call returned, provided libTT sets up a mechanism dnl not to access the object anymore after it is destroyed. dnl _W type modifier means TT_ARG_WRITE i.e. object will not (and MUST not) dnl be read by libTT, but will be written to and will contain a return value dnl _R type modifier means TT_ARG_READ i.e. object will only be read (C `const') dnl and will *not* be accessed by libTT after the call returned. dnl _D type modifier means TT_ARG_DIE i.e. object may have be destroyed after dnl call is invoked dnl _A((x)) type modifier is used for arrays: dnl the array length is given by the value of x, dnl in particular, `x' may refer to the n-th function arg using _P(n) dnl and it may refer to the field named `f' using _F(f) dnl _Z type modifier is used for arrays: dnl the array is zero-terminated like C strings. dnl ifdef(`_G0', `', `define(`_G0', `$@')') ifdef(`_G', `', `define(`_G', `$@')') ifdef(`_W', `', `define(`_W', `TT_ARG_WRITE')') ifdef(`_RW', `', `define(`_RW', `TT_ARG_READ_WRITE')') ifdef(`_R', `', `define(`_R', `TT_ARG_READ')') ifdef(`_D', `', `define(`_D', `TT_ARG_DIE')') ifdef(`_Z', `', `define(`_Z', `TT_ARG_ARRAY_Z')') ifdef(`_A', `', `define(`_A', `TT_ARG_ARRAY($@)')') c_comment(` /* * m4/TTclasses.m4h -- header for libTT objects inheritance * used as template for a lot of autogenerated files. * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ ') divert(-1) define(`TTtypelist', `el(void) el(ttbyte) el(ttshort) el(ttint) el(ttcol) el(ttfont) el(ttattr) el(ttopaque) el(ttany) el(ttfunction_fn) el(va_list) el(ttarg)') define(`TTtypealiaslist', `el(ttsbyte,ttbyte) el(ttushort,ttshort) el(ttuint,ttint)') define(`TTtypefirst', `void') define(`TTtypelast', `ttarg') define(`NSHIFT', `ifdef(`NSHIFT$1', `NSHIFT$1($@)', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')')') define(`NSHIFT1', `shift(shift($@))') define(`NSHIFT3', `shift(shift(shift(shift($@))))') define(`NSHIFT6', `shift(shift(shift(shift(shift(shift(shift($@)))))))') define(`NSHIFT9', `shift(shift(shift(shift(shift(shift(shift(shift(shift(shift($@))))))))))') define(`merge', $1$2) define(`TTnlist') define(`TTlist') define(`TTnappend', `define(`TTlist', TTlist() el($1))') define(`TTappend', `define(`TTnlist', TTnlist() el($1))`'TTnappend($1)') define(`_apply', `ifelse(`$2', `', `', `, $1(`$2')`'_apply(`$1', shift(shift($@)))')') define(`apply', `ifelse(`$2', `', `', `$1(`$2')`'_apply(`$1', shift(shift($@)))')') dnl define(`apply_nocomma', `ifelse(`$2', `', `', `$1(`$2')`'apply_nocomma(`$1', shift(shift($@)))')') define(`_apply_nocomma', `ifelse(`$2', `', `', ` $1(`$2')`'_apply_nocomma(`$1', shift(shift($@)))')') define(`apply_nocomma', `ifelse(`$2', `', `', `$1(`$2')`'_apply_nocomma(`$1', shift(shift($@)))')') dnl define(`extract_args_decl_named', `regexp(`$1', `^[^(]*([^(]*)[^(]*(\(.*\))$', `\1')') dnl dnl We could have protected/public fields... for now, they all are just fields, dnl and third argument can be one of: dnl `' : field is protected, clients cannot access it. dnl `r' : field is public, clients can read it (so the method to read it dnl is autogenerated). dnl `w' : field is public, clients can write it (this just means a method dnl to set it exists among public* or final* methods) dnl TTnappend(ttobj) define(`TTdef_ttobj',`dnl `'`'c_comment(`/** ttobj: The base class of all objects */')`'dnl field(,ttclass_$1,Class)`'dnl field(,ttopaque,id)`'dnl ') define(`TTdef_ttclass_ttobj',`dnl dnl also extends ttobj, manually keep in sync with TTdef_ttobj: protected(Class,$1,-1, _G0(,ttclass_ttclass,Class))`'dnl protected(id,$1,-1, _G0(,ttopaque,id))`'dnl protected(magicmask,$1,-1, _G0(,ttuint,magicmask))`'dnl protected(magic,$1,-1, _G0(,ttuint,magic))`'dnl protected(size,$1,-1, _G0(,ttuint,size))`'dnl `'`'c_doxygen(`/** get `which' field value from ttobj `o' */')`'dnl `'`'final_alt(GetField,$1,3, _G0(,ttbyte,), _G(_R,$1,o), _G(_R,ttfield,which), _G(_W _A((1)),ttarg *,value))`'dnl `'`'c_doxygen(`/** set `which' field to `value' into ttobj `o' */')`'dnl `'`'final_alt(SetField,$1,3, _G0(,ttbyte,), _G( ,$1,o), _G(_R,ttfield,which), _G(_R _A((1)),ttarg *,value))`'dnl `'`'c_doxygen(`/** change `which' field value into ttobj `o' */')`'dnl `'`'final_alt(ChangeField,$1,3, _G0(,ttbyte,), _G( ,$1,o), _G(_R,ttfield,which), _G(,ttany,nand_value), _G(,ttany,xor_value))`'dnl ') TTappend(ttclass) define(`TTdef_ttclass',`extends(ttobj,$1)`'dnl `'`'c_comment(`/** ttclass: The runtime type of all objects */')`'dnl dnl manually keep in sync with TTdef_class_ttobj: field(,ttuint,magicmask)`'dnl field(,ttuint,magic)`'dnl field(,ttuint,size)`'dnl ') define(`TTdef_ttclass_ttclass',`extends(ttobj,$1)`'dnl `'`'c_doxygen(`/** get the name of the ttclass `o' */')`'dnl `'`'final_alt(GetName,$1,1, _G0(_R _Z,ttbyte *,), _G(_R,$1,o))`'dnl `'`'c_doxygen(`/** get the size (bytes) used by objects of type represented by ttclass `o' */')`'dnl `'`'final_alt(GetSize,$1,1, _G0(,ttopaque,), _G(_R,$1,o))`'dnl `'`'c_doxygen(`/** get the parent class of the ttclass `o' */')`'dnl `'`'final_alt(GetSuper,$1,1, _G0(_R,tt_class,), _G(_R,$1,o))`'dnl `'`'c_doxygen(`/** return TT_TRUE if type `t' can be cast to type `o' */')`'dnl `'`'final_alt(IsInstance,$1,2, _G0(,ttbyte,), _G(_R,$1,o), _G(_R,$1,t))`'dnl `'`'c_doxygen(`/** get the bare class of given type (removing attribute like _R, _W, _D, _A((x))) */')`'dnl `'`'final_alt(FromType,$1,1, _G0(_R,tt_class,), _G(,ttopaque,type))`'dnl `'`'c_doxygen(`/** return TT_TRUE if given type indicates an array */')`'dnl `'`'final_alt(IsArrayType,$1,1, _G0(,ttbyte,), _G(,ttopaque,type))`'dnl `'`'c_doxygen(`/** return TT_TRUE if given type indicates a primitive type (not a ttobj or derivate) */')`'dnl `'`'final_alt(IsPrimitiveType,$1,1, _G0(,ttbyte,), _G(,ttopaque,type))`'dnl ') TTappend(ttobject) define(`TTdef_ttobject', `extends(ttobj,$1)`'dnl field(,ttopaque,refcount,r)`'dnl field(,ttuint,oflags,r)`'dnl field(,ttany,native)`'dnl field(,ttany,target_private)`'dnl field(,ttany,user_data,rw)`'dnl field(,ttopaque,events_inprogress,r)`'dnl field(,ttopaque,events_informed,r)`'dnl ') define(`TTdef_ttclass_ttobject',`extends(ttobj,$1)`'dnl protected(New, $1,2, _G0(,$1,), _G(_R,ttclass_$1,Class), _G(,$1,o))`'dnl protected(Build,$1,1, _G0(,$1,), _G( ,$1,o))`'dnl protected(Break,$1,1, _G0(,void,), _G( ,$1,o))`'dnl protected(Del, $1,1, _G0(,void,), _G(_D,$1,o))`'dnl `'`'c_doxygen(`/** increase by 1 the reference count of object `o' */')`'dnl `'`'final(Ref,$1,1, _G0(,void,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** decrease by 1 the reference count of object `o' */')`'dnl `'`'final(Unref,$1,1, _G0(,void,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** set `user_data' of object `o' */')`'dnl `'`'final(SetUserData,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttany,user_data))`'dnl ') TTappend(ttvector) define(`TTdef_ttvector',`extends(ttobject,$1)`'dnl `'`'c_comment(`/** ttvector: A generic vector (array) */')`'dnl field(,ttopaque,array_size,r)`'dnl field(,ttopaque,array_n,r)`'dnl field(_A((_F(array_n))),ttany *,array,r)`'dnl ') define(`TTdef_ttclass_ttvector',`extends(ttobject,$1)`'dnl `'`'c_doxygen(`/** get vector element at given position */')`'dnl public(GetAt,$1,2, _G0(,ttany,), _G(_R,$1,o), _G(,ttopaque,pos))`'dnl `'`'c_doxygen(`/** set vector element at given position */')`'dnl public(SetAt,$1,3, _G0(,ttbyte,), _G( ,$1,o), _G(,ttopaque,pos), _G(,ttany,value))`'dnl dnl `'`'c_doxygen(`/** create vector containing given value */')`'dnl `'`'final(Create1,$1,1, _G0(,ttvector,), _G(,ttany,value))`'dnl `'`'c_doxygen(`/** create vector containing given values */')`'dnl `'`'final(CreateA,$1,3, _G0(,ttvector,), _G(,ttopaque,value_n), _G(_R _A((_P(1))),ttarg *,values))`'dnl `'`'c_doxygen(`/** create vector containing given values */')`'dnl `'`'final_var(CreateL,$1,2, _G0(,ttvector,), _G(,ttopaque,value_n), _G(,...,))`'dnl `'`'c_doxygen(`/** create vector containing given values */')`'dnl `'`'final(CreateR,$1,1, _G0(,ttvector,), _G(_R,$1,v))`'dnl `'`'c_doxygen(`/** create vector containing given values */')`'dnl `'`'final(CreateV,$1,2, _G0(,ttvector,), _G(,ttopaque,value_n), _G(_A((1)),va_list *,values))`'dnl `'`'c_doxygen(`/** create vector containing given values */')`'dnl `'`'final(CreateY,$1,2, _G0(,ttvector,), _G(,ttopaque,value_n), _G(_R _A((_P(1))),ttany *,values))`'dnl dnl `'`'c_doxygen(`/** add `value' at the end of the vector */')`'dnl `'`'final(Append,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttany,value))`'dnl `'`'c_doxygen(`/** add `value' at given pos of the vector */')`'dnl `'`'final(Add,$1,3, _G0(,ttbyte,), _G(,$1,o), _G(,ttopaque,pos), _G(,ttany,value))`'dnl `'`'c_doxygen(`/** add values at given position of ttvector `o' */')`'dnl `'`'final(AddA,$1,4, _G0(,ttbyte,), _G(,$1,o), _G(,ttopaque,pos), _G(,ttopaque,value_n), _G(_R _A((_P(2))),ttarg *,values))`'dnl `'`'c_doxygen(`/** add values at given position of ttvector `o' */')`'dnl `'`'final_var(AddL,$1,4, _G0(,ttbyte,), _G(,$1,o), _G(,ttopaque,pos), _G(,ttopaque,value_n), _G(,...,))`'dnl `'`'c_doxygen(`/** add values at given position of ttvector `o' */')`'dnl `'`'final(AddR,$1,3, _G0(,ttbyte,), _G(,$1,o), _G(,ttopaque,pos), _G(_R,$1,v))`'dnl `'`'c_doxygen(`/** add values at given position of ttvector `o' */')`'dnl `'`'final(AddV,$1,4, _G0(,ttbyte,), _G(,$1,o), _G(,ttopaque,pos), _G(,ttopaque,value_n), _G(_A((1)),va_list *,values))`'dnl `'`'c_doxygen(`/** add values at given position of ttvector `o' */')`'dnl public(AddY,$1,4, _G0(,ttbyte,), _G(,$1,o), _G(,ttopaque,pos), _G(,ttopaque,value_n), _G(_R _A((_P(2))),ttany *,values))`'dnl dnl `'`'c_doxygen(`/** search for the first occurrence of `value' in the vector */')`'dnl public(ContainsValue,$1,3, _G0(,ttopaque,), _G(_R,$1,o), _G(,ttopaque,pos_start), _G(,ttany,value))`'dnl `'`'c_doxygen(`/** remove value at given pos of the vector */')`'dnl `'`'final(RemoveAt,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttopaque,pos))`'dnl `'`'c_doxygen(`/** remove given range of values from ttvector `o' */')`'dnl public(RemoveRange,$1,3, _G0(,ttbyte,), _G(,$1,o), _G(,ttopaque,pos_start), _G(,ttopaque,pos_n))`'dnl ') TTappend(ttfield) define(`TTdef_ttfield',`extends(ttobj,$1)`'dnl `'`'c_comment(`/** ttfield: a reflective class, represents a field in an object */')`'dnl field(,ttopaque,name_len,r)`'dnl field(_R _Z,ttbyte *,name,r)`'dnl field(,ttopaque,type,r)`'dnl ') define(`TTdef_ttclass_ttfield',`extends(ttobj,$1)`'dnl `'`'c_doxygen(`/** get the field with given name */')`'dnl `'`'final_alt(Get,$1,1, _G0(_R,$1,), _G(_R _Z,ttbyte *,name))`'dnl `'`'c_doxygen(`/** get the value of field `f' in object `o' */')`'dnl `'`'final_alt(GetValue,$1,3, _G0(,ttbyte,), _G(_R,$1,f), _G(_R,ttobject,o), _G(_W _A((1)),ttarg *,value))`'dnl `'`'c_doxygen(`/** set the value of field `f' in object `o' */')`'dnl `'`'final_alt(SetValue,$1,3, _G0(,ttbyte,), _G(_R,$1,f), _G(,ttobject,o), _G(_R _A((1)),ttarg *,value))`'dnl `'`'c_doxygen(`/** change the value of field `f' in object `o' */')`'dnl `'`'final_alt(ChangeValue,$1,4, _G0(,ttbyte,), _G(_R,$1,f), _G(,ttobject,o), _G(,ttany,nand_value), _G(,ttany,xor_value))`'dnl `'`'c_doxygen(`/** return the ttuint representing field `f' in evcodes */')`'dnl `'`'final_alt(ToEvcode,$1,1, _G0(,ttopaque,), _G(_R,$1,f))`'dnl `'`'c_doxygen(`/** return the field corresponding to ttuint `i' in evcodes */')`'dnl `'`'final_alt(FromEvcode,$1,1, _G0(_R,$1,), _G(,ttopaque,i))`'dnl `'`'c_doxygen(`/** get the ttuint representing field `f' in evcodes given its name */')`'dnl `'`'final_alt(GetEvcode,$1,1, _G0(,ttopaque,), _G(_R _Z,ttbyte *,name))`'dnl ') TTappend(ttmethod) define(`TTdef_ttmethod',`extends(ttobj,$1)`'dnl `'`'c_comment(` /** * ttmethod: a reflective class, represents a method in an object. * It allows runtime inspecting the name, argument types and return types * of a method (i.e. almost any libTT function) and allows calling it. * * There are 5 different ways to invoke a method using ttmethod objects: * TTCall{A,L,R,V,Y}_ttmethod(). * Each one takes the method to call, the number of arguments you are passing to it * (but passing more arguments than needed is harmless), and respectively, * a (ttarg []), C variadic arg list, ttvector, (va_list *) or (tany []), of the arguments. * * A few libTT functions are not represented by ttmethods for various reasons, * thus cannot be inspected nor called using ttmethods: * * 1) functions not related to objects: * TTCheckMagic(), TTOpen(), TTReopen(), TTClose(), TTCloseQuickNDirty(), * TTConnectionFd(), TTInPanic(), TTFlush(), TTTimidFlush(), TTSync(), * TTConfigAllocMem(), TTAllocMem(), TTReallocMem(), TTFreeMem(), * TTMainLoop(), TTMainLoopOnce(), TTExitMainLoop() * * 2) variadic functions: * TTCreateL_ttvector(), TTCallL_ttmethod() * */')`'dnl field(,ttopaque,name_len,r)`'dnl field(_R _A((_F(name_len))),ttbyte *,name,r)`'dnl field(,ttfunction_fn,address,r)`'dnl field(,ttopaque,return_type,r)`'dnl field(,ttvector,parameter_type,r)`'dnl ') define(`TTdef_ttclass_ttmethod',`extends(ttobj,$1)`'dnl `'`'c_doxygen(`/** get the method with given name */')`'dnl `'`'final_alt(Get,$1,1, _G0(_R,$1,), _G(_R _Z,ttbyte *,name))`'dnl `'`'c_doxygen(`/** get the method with given address */')`'dnl `'`'final_alt(GetByAddress,$1,1, _G0(_R,$1,), _G(_R,ttfunction_fn,address))`'dnl `'`'c_doxygen(`/** get the needed array length for the given method arg */')`'dnl `'`'final_alt(GetArraySizeA,$1,3, _G0(,ttopaque,), _G(_R,$1,m), _G(,ttopaque,arg_array_n), _G(,ttopaque,args_n), _G(_R _A((_P(3))),ttarg *,args))`'dnl `'`'c_doxygen(`/** check whether the given args have correct array lengths for the method */')`'dnl `'`'final_alt(CheckArraySizesA,$1,3, _G0(,ttbyte,), _G(_R,$1,m), _G(,ttopaque,args_n), _G(_R _A((_P(2))),ttarg *,args))`'dnl `'`'c_doxygen(`/** invoke the method `m' with given args */')`'dnl `'`'final_alt(CallA,$1,4, _G0(,ttbyte,), _G(_R,$1,m), _G(_W _A((1)),ttarg *,return_value), _G(,ttopaque,args_n), _G(_R _A((_P(3))),ttarg *,args))`'dnl `'`'c_doxygen(`/** invoke the method `m' with given args */')`'dnl `'`'final_var(CallL,$1,4, _G0(,ttbyte,), _G(_R,$1,m), _G(_W _A((1)),ttarg *,return_value), _G(,ttopaque,args_n), _G(,...,))`'dnl `'`'c_doxygen(`/** invoke the method `m' with given args */')`'dnl `'`'final_alt(CallR,$1,3, _G0(,ttbyte,), _G(_R,$1,m), _G(_W _A((1)),ttarg *,return_value), _G(_R,ttvector,args))`'dnl `'`'c_doxygen(`/** invoke the method `m' with given args */')`'dnl `'`'final_alt(CallV,$1,4, _G0(,ttbyte,), _G(_R,$1,m), _G(_W _A((1)),ttarg *,return_value), _G(,ttopaque,args_n), _G(_A((1)),va_list *,args))`'dnl `'`'c_doxygen(`/** invoke the method `m' with given args */')`'dnl `'`'final_alt(CallY,$1,4, _G0(,ttbyte,), _G(_R,$1,m), _G(_W _A((1)),ttarg *,return_value), _G(,ttopaque,args_n), _G(_R _A((_P(3))),ttany *,args))`'dnl ') define(`TTdef_ttclass_handymethods', `dnl `'`'handy_method(LibraryVersion,,0, _G0(,ttuint,))`'dnl `'`'handy_method(ExitMainLoop,,0, _G0(,void,))`'dnl `'`'handy_method(New,,1, _G0(,ttobject,), _G(_R,ttclass,Class))`'dnl `'`'handy_method(Del,,1, _G0(,void,), _G(_D,ttobject,o))`'dnl `'`'handy_method(ClassOf,,1, _G0(_R,ttclass,), _G(_R,ttobj,o))`'dnl `'`'handy_method(SuperClassOf,,1, _G(_R,ttclass,), _G(_R,ttobj,o))`'dnl `'`'handy_method(InstanceOf,,2, _G0(,ttbyte,), _G(_R,ttclass,Class), _G(_R,ttobj,o))`'dnl `'`'handy_method(ClassNameOf,,1, _G0(_R _Z,ttbyte *,), _G(_R,ttobj,o))`'dnl ') TTappend(ttevent) define(`TTdef_ttevent',`extends(ttobject,$1)`'dnl `'`'c_comment(`/** ttevent: The common part of all events. */')`'dnl field(,ttcomponent,component,r)`'dnl field(,ttuint,evtype,r)`'dnl field(,ttuint,evcode,r)`'dnl field(,ttuint,evflags,r)`'dnl field(,ttevent,prev,r)`'dnl field(,ttevent,next,r)`'dnl ') define(`TTdef_ttclass_ttevent',`extends(ttobject,$1)`'dnl `'`'c_doxygen(`/** create a ttevent with given `evtype', `evcode' and `evflags' */')`'dnl `'`'final(Create,$1,3, _G0(,ttevent,), _G(,ttuint,evtype), _G(,ttuint,evcode), _G(,ttuint,evflags))`'dnl `'`'c_doxygen(`/** fire the ttevent `ev' on ttcomponent `o' */')`'dnl `'`'final(Fire,$1,2, _G0(,void,), _G(_D,$1,ev), _G(_R,ttcomponent,o))`'dnl ') TTappend(tteventbig) define(`TTdef_tteventbig',`extends(ttevent,$1)`'dnl `'`'c_comment(`/** tteventbig: The union of all events. */')`'dnl field(,ttshort,x,r)`'dnl field(,ttshort,y,r)`'dnl field(,ttshort,w,r)`'dnl field(,ttshort,h,r)`'dnl field(,ttany,value,r)`'dnl field(,ttany,old_value,r)`'dnl field(,ttopaque,data_len,r)`'dnl field(_R _A((_F(data_len))),ttbyte *,data,r)`'dnl ') define(`TTdef_ttclass_tteventbig',`extends(ttevent,$1)`'dnl `'`'c_doxygen(`/** create a tteventbig with given fields */')`'dnl `'`'final(Create8,$1,11, _G0(,tteventbig,), _G(,ttuint,evtype), _G(,ttuint,evcode), _G(,ttuint,evflags)`'dnl `'`'`'`'`', _G(,ttshort,x), _G(,ttshort,y), _G(,ttshort,w), _G(,ttshort,h), _G(,ttany,value), _G(,ttany,old_value)`'dnl `'`'`'`'`', _G(,ttopaque,data_len), _G(_R _A((_P(10))),ttbyte *,data))`'dnl `'`'c_doxygen(`/** create a tteventbig with given fields */')`'dnl `'`'final(Create4,$1,7, _G0(,tteventbig,), _G(,ttuint,evtype), _G(,ttuint,evcode), _G(,ttuint,evflags)`'dnl `'`'`'`'`', _G(,ttshort,x), _G0(,ttshort,y), _G(,ttshort,w), _G(,ttshort,h))`'dnl `'`'c_doxygen(`/** create a tteventbig with given fields */')`'dnl `'`'final(Create4s4,$1,7, _G0(,tteventbig,), _G(,ttuint,evtype), _G(,ttuint,evcode), _G(,ttuint,evflags)`'dnl `'`'`'`'`', _G(,ttany,value), _G(,ttany,old_value), _G(,ttopaque,data_len), _G(_R _A((_P(6))),ttbyte *,data))`'dnl ') TTappend(ttbitmask) define(`TTdef_ttbitmask',`extends(ttobject,$1)`'dnl `'`'c_comment(`/** ttbitmask: a bitmap mask of generic (ttany) values; * used, among others, to hold bitmaps of ttevent evtypes, evcodes and * components to block specific ttevents while calling event listeners. */')`'dnl field(,ttopaque,mask0)`'dnl field(,ttopaque,mask_max)`'dnl field(,ttopaque,mask_n)`'dnl field(_A((_F(mask_n))),ttany *,mask)`'dnl ') define(`TTdef_ttclass_ttbitmask',`extends(ttobject,$1)`'dnl `'`'c_doxygen(`/** create a ttbitmask with given value */')`'dnl `'`'final(Create,$1,1, _G0(,ttbitmask,), _G(,ttany,value))`'dnl `'`'c_doxygen(`/** create a ttbitmask equal to given one */')`'dnl `'`'final(CreateB2,$1,1, _G0(,ttbitmask,), _G(_R,$1,o))`'dnl `'`'c_doxygen(`/** create a ttbitmask with given `value' array and swallow `value' */')`'dnl `'`'final(CreateR,$1,1, _G0(,ttbitmask,), _G(_D,ttvector,value))`'dnl `'`'c_doxygen(`/** create a ttbitmask with a copy of given `value' array */')`'dnl `'`'final(CreateR2,$1,1, _G0(,ttbitmask,), _G(_R,ttvector,value))`'dnl `'`'c_doxygen(`/** initialize the ttbitmask `o' to empty */')`'dnl `'`'final(Clear,$1,1, _G0(,void,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** initialize the ttbitmask `o' to full */')`'dnl `'`'final(Fill,$1,1, _G0(,void,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** negate (i.e. make complement of) the ttbitmask `o' */')`'dnl `'`'final(Negate,$1,1, _G0(,void,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** change ttbitmask `o' applying given truth table (i.e. logical operation) */')`'dnl `'`'final(Change,$1,2, _G0(,void,), _G(,$1,o), _G(,ttuint,truth_table))`'dnl `'`'c_doxygen(`/** check whether `value' is member of the ttbitmask `o' */')`'dnl `'`'final(Contains,$1,2, _G0(,ttbyte,), _G(_R,$1,o), _G(,ttany,value))`'dnl `'`'c_doxygen(`/** add `value' to the ttbitmask `o' */')`'dnl `'`'final(Add,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttany,value))`'dnl `'`'c_doxygen(`/** add `value' bitmask to the ttbitmask `o' */')`'dnl `'`'final(AddB,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_R,$1,value))`'dnl `'`'c_doxygen(`/** add `value' array to the ttbitmask `o' */')`'dnl `'`'final(AddR,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_R,ttvector,value))`'dnl `'`'c_doxygen(`/** remove `value' from the ttbitmask `o' */')`'dnl `'`'final(Remove,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttany,value))`'dnl `'`'c_doxygen(`/** remove `value' bitmask from the ttbitmask `o' */')`'dnl `'`'final(RemoveB,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_R,$1,value))`'dnl `'`'c_doxygen(`/** remove `value' array from the ttbitmask `o' */')`'dnl `'`'final(RemoveR,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_R,ttvector,value))`'dnl `'`'c_doxygen(`/** combine ttbitmask `o' with `value' appling given truth table (i.e. logical operation) */')`'dnl `'`'final(Combine,$1,3, _G0(,ttbyte,), _G(,$1,o), _G(,ttany,value), _G(,ttuint,truth_table))`'dnl `'`'c_doxygen(`/** combine ttbitmask `o' with `value' array appling given truth table (i.e. logical operation) */')`'dnl `'`'final(CombineR,$1,3, _G0(,ttbyte,), _G(,$1,o), _G(_R,ttvector,value), _G(,ttuint,truth_table))`'dnl `'`'c_doxygen(`/** combine ttbitmask `o' with `value' appling given truth table (i.e. logical operation) */')`'dnl `'`'final(CombineB,$1,3, _G0(,ttbyte,), _G(,$1,o), _G(_R,$1,value), _G(,ttuint,truth_table))`'dnl ') TTappend(tteventmask) define(`TTdef_tteventmask',`extends(ttobject,$1)`'dnl `'`'c_comment(`/** tteventmask: a set of ttbitmasks used to block * events matching certain criteria */')`'dnl field(,ttbitmask,evtype_mask,rw)`'dnl field(,ttbitmask,evcode_mask,rw)`'dnl field(,ttbitmask,component_mask,rw)`'dnl field(,ttuint,truth_table,rw)`'dnl ') define(`TTdef_ttclass_tteventmask',`extends(ttobject,$1)`'dnl `'`'c_doxygen(`/** create a tteventmask with given fields and swallow the bitmasks */')`'dnl `'`'final(CreateB,$1,3, _G0(,tteventmask,), _G(_D,ttbitmask,evtype_mask), _G(_D,ttbitmask,evcode_mask), _G(_D,ttbitmask,component_mask))`'dnl `'`'c_doxygen(`/** create a tteventmask with a copy of given bitbasks */')`'dnl `'`'final(CreateB2,$1,3, _G0(,tteventmask,), _G(_R,ttbitmask,evtype_mask), _G(_R,ttbitmask,evcode_mask), _G(_R,ttbitmask,component_mask))`'dnl `'`'c_doxygen(`/** set the mask of blocked event types and swallow the evtype bitmask */')`'dnl `'`'final(SetEvtypeMask,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_D,ttbitmask,evtype_mask))`'dnl `'`'c_doxygen(`/** set the mask of blocked event codes and swallow the evtype bitmask */')`'dnl `'`'final(SetEvcodeMask,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_D,ttbitmask,evcode_mask))`'dnl `'`'c_doxygen(`/** set the mask of blocked event types and swallow the evtype bitmask */')`'dnl `'`'final(SetComponentMask,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_D,ttbitmask,component_mask))`'dnl `'`'c_doxygen(`/** set the truth table to combine masks of evtypes, evcodes and components of blocked events */')`'dnl `'`'final(SetTruthTable,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttuint,truth_table))`'dnl ') TTappend(ttcallback) define(`TTdef_ttcallback',`extends(ttobject,$1)`'dnl `'`'c_comment(`/** ttcallback: The entry point for internal event-based callbacks from target drivers */')`'dnl field(,ttuint,lflags,r)`'dnl field(,ttcomponent,component,r)`'dnl field(,$1,prev,r)`'dnl field(,$1,next,r)`'dnl ') define(`TTdef_ttclass_ttcallback',`extends(ttobject,$1)`'dnl protected(Create,$1,1, _G0(,ttcallback,), _G(,ttcomponent,o))`'dnl ') TTappend(ttlistener) define(`TTdef_ttlistener',`extends(ttcallback,$1)`'dnl `'`'c_comment(`/** ttlistener: A ttcallback derivative for user-set event-based callbacks */')`'dnl field(,s_ttavl,AVL)`'dnl field(,ttevent,event,r)`'dnl field(,ttlistener_fn,function,r)`'dnl field(,ttopaque,arg_component_n,r)`'dnl field(,ttopaque,arg_event_n,r)`'dnl field(,ttvector,args,r)`'dnl field(,tteventmask,event_mask,rw)`'dnl field(,ttlistener,inprogress_prev)`'dnl field(,ttlistener,inprogress_next)`'dnl ') define(`TTdef_ttclass_ttlistener',`extends(ttcallback,$1)`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent with given fields */')`'dnl `'`'final(Create,$1,5, _G0(,ttlistener,), _G(,ttcomponent,o), _G(,ttuint,evtype)`'dnl `'`'`'`'`', _G(,ttuint,lflags), _G(_R,ttlistener_fn,function), _G(,ttany,arg))`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent with given fields */')`'dnl `'`'final(CreateE,$1,5, _G0(,ttlistener,), _G(,ttcomponent,o), _G(_D,ttevent,ev)`'dnl `'`'`'`'`', _G(,ttuint,lflags), _G(_R,ttlistener_fn,function), _G(,ttany,arg))`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent with given fields */')`'dnl `'`'final(CreateR,$1,7, _G0(,ttlistener,), _G(,ttcomponent,o), _G(_D,ttevent,ev)`'dnl `'`'`'`'`', _G(,ttuint,lflags), _G(_R,ttlistener_fn,function), _G(,ttopaque,arg_component_n)`'dnl `'`'`'`'`', _G(,ttopaque,arg_event_n), _G(_D,ttvector,args))`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent "del" ttevent with given fields */')`'dnl `'`'final(CreateDel,$1,3, _G0(,ttlistener,), _G(,ttcomponent,o), _G(,ttuint,lflags), _G(_R,ttlistener_fn,function))`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent "askclose" ttevent with given fields */')`'dnl `'`'final(CreateAskclose,$1,3, _G0(,ttlistener,), _G(,ttcomponent,o), _G(,ttuint,lflags), _G(_R,ttlistener_fn,function))`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent "key" ttevent with given fields */')`'dnl `'`'final(CreateKey,$1,5, _G0(,ttlistener,), _G(,ttcomponent,o), _G(,ttuint,evcode)`'dnl `'`'`'`'`', _G(,ttuint,evflags), _G(,ttuint,lflags), _G(_R,ttlistener_fn,function))`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent "mouse" ttevent with given fields */')`'dnl `'`'final(CreateMouse,$1,5, _G0(,ttlistener,), _G(,ttcomponent,o), _G(,ttuint,evcode)`'dnl `'`'`'`'`', _G(,ttuint,evflags), _G(,ttuint,lflags), _G(_R,ttlistener_fn,function))`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent "activate" ttevent with given fields */')`'dnl `'`'final(CreateActivate,$1,3, _G0(,ttlistener,), _G(,ttcomponent,o), _G(,ttuint,lflags), _G(_R,ttlistener_fn,function))`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent "value change" ttevent with given fields */')`'dnl `'`'final(CreateChange,$1,4, _G0(,ttlistener,), _G(,ttcomponent,o), _G(,ttuint,evcode), _G(,ttuint,lflags), _G(_R,ttlistener_fn,function))`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent "key_data value change" ttevent with given fields (WARNING: listener will be called with `ttdata' as event component!)*/')`'dnl `'`'final(CreateKeyData,$1,4, _G0(,ttlistener,), _G(,ttcomponent,o), _G(_R _Z,ttbyte *,key), _G(,ttuint,lflags), _G(_R,ttlistener_fn,function))`'dnl `'`'c_doxygen(`/** create a ttlistener for a ttcomponent "expose" ttevent with given fields */')`'dnl `'`'final(CreateExpose,$1,3, _G0(,ttlistener,), _G(,ttcomponent,o), _G(,ttuint,lflags), _G(_R,ttlistener_fn,function))`'dnl `'`'dnl `'`'c_doxygen(`/** add `o' to the ttcomponent `c' */')`'dnl public(AddTo,$1,2, _G0(,void,), _G(,$1,o), _G(,ttcomponent,c))`'dnl `'`'c_doxygen(`/** remove `o' from the ttcomponent it is attached to */')`'dnl public(Remove,$1,1, _G0(,void,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** set the function args of the listener `o' */')`'dnl `'`'final(SetArgsR,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_D,ttvector,args))`'dnl `'`'c_doxygen(`/** set the mask of blocked events to be used while listener `o' is being called */')`'dnl `'`'final(SetEventMask,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_D,tteventmask,event_mask))`'dnl ') TTappend(tttimer) define(`TTdef_tttimer',`extends(ttlistener,$1)`'dnl `'`'c_comment(`/** tttimer: A ttlistener derivative for timer-based callbacks */')`'dnl field(,ttany,delay_t,r)`'dnl field(,ttany,delay_f,r)`'dnl field(,tttimer,timer_prev,r)`'dnl field(,tttimer,timer_next,r)`'dnl ') define(`TTdef_ttclass_tttimer',`extends(ttlistener,$1)`'dnl `'`'c_doxygen(`/** create a tttimer with given fields */')`'dnl `'`'final(CreateR,$1,8, _G0(,tttimer,), _G(,ttcomponent,r), _G(,ttuint,lflags), _G(_R,ttlistener_fn,function)`'dnl `'`'`'`'`', _G(,ttopaque,arg_component_n), _G(,ttopaque,arg_timer_n), _G(_D,ttvector,args), _G(,ttany,delay_t), _G(,ttany,delay_f))`'dnl `'`'c_doxygen(`/** create a tttimer with given fields */')`'dnl `'`'final(Create,$1,6, _G0(,tttimer,), _G(,ttcomponent,r), _G(,ttuint,lflags), _G(_R,ttlistener_fn,function)`'dnl `'`'`'`'`', _G(,ttany,arg), _G(,ttany,delay_t), _G(,ttany,delay_f))`'dnl `'`'c_doxygen(`/** set delay (seconds and fraction of seconds) */')`'dnl `'`'final(SetDelay,$1,3, _G0(,void,), _G(,$1,o), _G(,ttany,delay_t), _G(,ttany,delay_s))`'dnl `'`'c_doxygen(`/** enable or disable tttimer `o' */')`'dnl public(SetEnabled,$1,2, _G0(,void,), _G(,$1,o), _G(,ttbyte,enabled))`'dnl `'`'c_doxygen(`/** get whether tttimer `o' is enabled or disabled */')`'dnl public(IsEnabled,$1,1, _G0(,ttbyte,), _G(_R,$1,o))`'dnl ') TTappend(ttcomponent) define(`TTdef_ttcomponent',`extends(ttobject,$1)`'dnl `'`'c_comment(`/** ttcomponent: The superclass of all components (visible objects, groups, applications, ...) */')`'dnl field(,ttcallback,callbacks,r)`'dnl field(,ttlistener,listeners,r)`'dnl field(,tttimer,timers,r)`'dnl field(,ttdata,datas,r)`'dnl ') define(`TTdef_ttclass_ttcomponent',`extends(ttobject,$1)`'dnl `'`'c_doxygen(`/** add the ttlistener `c' to `o' */')`'dnl `'`'final(AddListener,$1,2, _G0(,void,), _G(,$1,o), _G(,ttlistener,l))`'dnl `'`'c_doxygen(`/** remove the ttlistener `c' from `o' */')`'dnl `'`'final(RemoveListener,$1,2, _G0(,void,), _G(,$1,o), _G(,ttlistener,l))`'dnl `'`'c_doxygen(`/** associate `data' with `key' in ttcomponent `o' */')`'dnl `'`'final(SetKeyData,$1,3, _G0(,ttdata,), _G(,$1,o), _G(_R _Z,ttbyte *,key), _G(,ttany,data))`'dnl `'`'c_doxygen(`/** get `data' associated with with `key' in ttcomponent `o' */')`'dnl `'`'final(GetKeyData,$1,2, _G0(,ttany,), _G(_R,$1,o), _G(_R _Z,ttbyte *,key))`'dnl `'`'c_doxygen(`/** remove `data' associated with `key' in ttcomponent `o' */')`'dnl `'`'final(UnsetKeyData,$1,2, _G0(,void,), _G(,$1,o), _G(_R _Z,ttbyte *,key))`'dnl `'`'c_doxygen(`/** get the ttdata containing `data' associated with with `key' in ttcomponent `o' */')`'dnl `'`'final(GetData,$1,2, _G0(,ttdata,), _G(_R,$1,o), _G(_R _Z,ttbyte *,key))`'dnl ') TTappend(ttdata) define(`TTdef_ttdata',`extends(ttcomponent,$1)`'dnl `'`'c_comment(`/** * ttdata: wrapper for user-defined data in ttcomponents; * this class is derived from ttcomponent to allow creating listeners on it, * but this implementation has the undesired side effect that you can * TT{Set,Get,Unset}KeyData_ttcomponent also on ttdatas themselves. */')`'dnl field(,s_ttavl,AVL)`'dnl field(,ttcomponent,component,r)`'dnl field(,ttopaque,key_len,r)`'dnl field(_A((_F(key_len))),ttbyte *,key,r)`'dnl field(,ttany,data,rw)`'dnl ') define(`TTdef_ttclass_ttdata',`extends(ttcomponent,$1)`'dnl dnl c_doxygen(`/** add `data' to the ttcomponent `c' */')`'dnl protected(AddTo,$1,2, _G0(,void,), _G(,$1,data), _G(,ttcomponent,c))`'dnl dnl c_doxygen(`/** remove `data' from the ttcomponent it is associated to */')`'dnl protected(Remove,$1,1, _G0(,void,), _G(,$1,data))`'dnl `'`'c_doxygen(`/** set the data in ttdata `o' */')`'dnl `'`'final(SetData,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttany,data))`'dnl ') TTappend(ttvisible) define(`TTdef_ttvisible',`extends(ttcomponent,$1)`'dnl `'`'c_comment(`/** ttvisible: The superclass of all visible objects */')`'dnl field(,ttuint,vflags,r)`'dnl field(,ttvisible,prev,r)`'dnl field(,ttvisible,next,r)`'dnl field(,ttvisible,parent,r)`'dnl field(,ttvisible,child_first,r)`'dnl field(,ttvisible,child_last,r)`'dnl field(,ttany,constraint,r)`'dnl field(,tttheme,theme,rw)`'dnl field(,ttvisible_repaint_fn,repaint,rw)`'dnl ') define(`TTdef_ttclass_ttvisible',`extends(ttcomponent,$1)`'dnl `'`'c_doxygen(`/** add the ttvisible `o' into `parent' */')`'dnl public_set(AddTo,$1,3, _G0(,void,), _G(,$1,o), _G(,ttvisible,parent), _G(,ttany,constraint))`'dnl `'`'c_doxygen(`/** apply layout the children of current component */')`'dnl public(Validate,$1,1, _G0(,void,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** remove the ttvisible `o' from its parent */')`'dnl public_set(Remove,$1,1, _G0(,void,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** invalidate ttvisible `o' internal caches (to force redrawing it) */')`'dnl public(Invalidate,$1,1, _G0(,void,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** set the ttvisible `o' to be visible or not */')`'dnl public_set(SetVisible,$1,2, _G0(,void,), _G(,$1,o), _G(,ttbyte,visible))`'dnl `'`'c_doxygen(`/** set the tttheme `theme' of the ttvisible `o' */')`'dnl public_set(SetTheme,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_R,tttheme,theme))`'dnl `'`'c_doxygen(`/** actually draw (part of) the contents of the ttvisible `o' - internally called by TTBuiltinRepaint_ttvisible */')`'dnl public(Draw,$1,9, _G0(,void,), _G(,$1,o), _G(,ttshort,x), _G(,ttshort,y), _G(,ttshort,w), _G(,ttshort,h), _G(,ttshort,pitch)`'dnl `'`'`'`'`', _G(_R _A((_P(5),*,_P(6))),ttbyte *,asciidata), _G(_R _A((_P(5),*,_P(6))),ttfont *,fontdata), _G(_R _A((_P(5),*,_P(6))),ttattr *,attrdata))`'dnl `'`'c_doxygen(`/** internal libTT method that repaints (part of) the ttvisible `o' using its theme */')`'dnl public(BuiltinRepaint,$1,5, _G0(,void,), _G(,$1,o), _G(,ttshort,x), _G(,ttshort,y), _G(,ttshort,w), _G(,ttshort,h))`' `'`'c_doxygen(`/** change the internal libTT method used to repaint (part of) the ttvisible `o' */')`'dnl `'`'final(SetRepaint,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_R,ttvisible_repaint_fn,repaint))`'dnl `'`'c_doxygen(`/** request a repaint for the given part of the ttvisible `o' */')`'dnl `'`'final(Expose,$1,5, _G0(,void,), _G(,$1,o), _G(,ttshort,x), _G(,ttshort,y), _G(,ttshort,w), _G(,ttshort,h))`'dnl `'`'c_doxygen(`/** add the ttvisible `child' into `o' */')`'dnl `'`'final(Add,$1,3, _G0(,void,), _G(,$1,o), _G(,ttvisible,child), _G(,ttany,constraint))`'dnl ') TTappend(ttlayout) define(`TTdef_ttlayout',`extends(ttcomponent,$1)`'dnl `'`'c_comment(`/** ttlayout: The superclass of all layouts */')`'dnl field(,ttwidget,widget,r)`'dnl ') define(`TTdef_ttclass_ttlayout',`extends(ttcomponent,$1)`'dnl `'`'c_doxygen(`/** set the current widget */')`'dnl protected(SetWidget,$1,2, _G0(,void,), _G(,$1,o), _G(,ttwidget,w))`'dnl `'`'c_doxygen(`/** apply layout to the contents of current widget */')`'dnl protected(DoLayout,$1,1, _G0(,void,), _G(,$1,o))`'dnl ') TTappend(ttboxlayout) define(`TTdef_ttboxlayout',`extends(ttlayout,$1)`'dnl `'`'c_comment(`/** ttlayout: a box (horizontal or vertical) layout */')`'dnl field(,ttuint,orientation,r)`'dnl ') define(`TTdef_ttclass_ttboxlayout',`extends(ttlayout,$1)`'dnl `'`'c_doxygen(`/** create a ttboxlayout with given orientation */')`'dnl `'`'final(Create,$1,1, _G0(,ttboxlayout,), _G(,ttany,orientation))`'dnl ') TTappend(ttborderlayout) define(`TTdef_ttborderlayout',`extends(ttlayout,$1)`'dnl `'`'c_comment(`/** ttlayout: a border (north+south+west+east+center) layout */')`'dnl ') define(`TTdef_ttclass_ttborderlayout',`extends(ttlayout,$1)`'dnl ') TTappend(ttnative) define(`TTdef_ttnative',`extends(ttvisible,$1)`'dnl `'`'c_comment(`/** ttnative: class representing all server visible objects not created by us */')`'dnl ') define(`TTdef_ttclass_ttnative',`extends(ttvisible,$1)`'dnl `'`'c_doxygen(`/** get the ttnative `root' object into which each top level ttvisible is added */')`'dnl public(GetRoot,$1,0, _G0(,ttnative,))`'dnl `'`'c_doxygen(`/** get `w' (width) field of given ttnative */')`'dnl public(GetW,$1,1, _G0(,ttshort,), _G(_R,$1,o))`'dnl `'`'c_doxygen(`/** get `h' (height) field of given ttnative */')`'dnl public(GetH,$1,1, _G0(,ttshort,), _G(_R,$1,o))`'dnl `'`'c_doxygen(`/** create a ttnative with given fields */')`'dnl `'`'final(Create,$1,1, _G0(,ttnative,), _G(,ttany,native_value))`'dnl ') TTappend(ttwidget) define(`TTdef_ttwidget',`extends(ttvisible,$1)`'dnl `'`'c_comment(`/** ttwidget: The superclass of all window-like visible containers */')`'dnl field(,ttshort,x,rw)`'dnl field(,ttshort,y,rw)`'dnl field(,ttshort,w,rw)`'dnl field(,ttshort,h,rw)`'dnl field(,ttlayout,layout,r)`'dnl field(,ttint,xl,rw)`'dnl field(,ttint,yl,rw)`'dnl field(,ttint,wl,rw)`'dnl field(,ttint,hl,rw)`'dnl field(,ttcol,col,r)`'dnl field(,tttooltip,tooltip,rw)`'dnl ') define(`TTdef_ttclass_ttwidget',`extends(ttvisible,$1)`'dnl `'`'c_doxygen(`/** set the layout of the ttvisible `o' */')`'dnl public_set(SetLayout,$1,2, _G0(,void,), _G(,$1,o), _G(,ttlayout,l))`'dnl `'`'c_doxygen(`/** set the position `x' and `y' of the ttwidget `o' */')`'dnl public_set(SetXY,$1,3, _G0(,ttbyte,), _G(,$1,o), _G(,ttshort,x), _G(,ttshort,y))`'dnl `'`'c_doxygen(`/** set the size `w' and `h' of the ttwidget `o' */')`'dnl public_set(SetWH,$1,3, _G0(,ttbyte,), _G(,$1,o), _G(,ttshort,w), _G(,ttshort,h))`'dnl `'`'c_doxygen(`/** set the inside scroll position `xl' of the ttwidget `o' */')`'dnl public_set(SetXl,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,xl))`'dnl `'`'c_doxygen(`/** set the inside scroll position `yl' of the ttwidget `o' */')`'dnl public_set(SetYl,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,yl))`'dnl `'`'c_doxygen(`/** set the inside scroll size `wl' of the ttwidget `o' */')`'dnl public_set(SetWl,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,wl))`'dnl `'`'c_doxygen(`/** set the inside scroll size `hl' of the ttwidget `o' */')`'dnl public_set(SetHl,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,hl))`'dnl `'`'c_doxygen(`/** set the the tttooltip of the ttwidget `o' */')`'dnl public_set(SetTooltip,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_D,tttooltip,t))`'dnl `'`'c_doxygen(`/** set some (depeding on `mask') of the inside scroll position `xl' and `yl' of the ttwidget `o' */')`'dnl `'`'final(SetXlYl,$1,4, _G0(,ttbyte,), _G(,$1,o), _G(,ttuint,mask), _G(,ttint,xl), _G(,ttint,yl))`'dnl `'`'c_doxygen(`/** set some (depeding on `mask') of the inside scroll sizes `wl' and `hl' of the ttwidget `o' */')`'dnl `'`'final(SetWlHl,$1,4, _G0(,ttbyte,), _G(,$1,o), _G(,ttuint,mask), _G(,ttint,wl), _G(,ttint,hl))`'dnl `'`'c_doxygen(`/** set some (depeding on `mask') of the position `x' and `y' and the size `w' and `h' of the ttwidget `o' */')`'dnl `'`'final(SetXYWH,$1,6, _G0(,ttbyte,), _G(,$1,o), _G(,ttuint,mask), _G(,ttshort,x), _G(,ttshort,y), _G(,ttshort,w), _G(,ttshort,h))`'dnl `'`'c_doxygen(`/** set the position `x' of the ttwidget `o' */')`'dnl `'`'final(SetX,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttshort,x))`'dnl `'`'c_doxygen(`/** set the position `y' of the ttwidget `o' */')`'dnl `'`'final(SetY,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttshort,y))`'dnl `'`'c_doxygen(`/** set the size `w' of the ttwidget `o' */')`'dnl `'`'final(SetW,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttshort,w))`'dnl `'`'c_doxygen(`/** set the size `h' of the ttwidget `o' */')`'dnl `'`'final(SetH,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttshort,h))`'dnl ') TTappend(ttlabel) define(`TTdef_ttlabel',`extends(ttwidget,$1)`'dnl `'`'c_comment(`/** ttlabel: A simple text label */')`'dnl field(,ttopaque,text_len,r)`'dnl field(_A((_F(text_len))),ttfont *,text,r)`'dnl ') define(`TTdef_ttclass_ttlabel',`extends(ttwidget,$1)`'dnl `'`'c_doxygen(`/** set the text of the ttlabel `o' and swallow `text' */')`'dnl public_set(SetFontD,$1,3, _G0(,void,), _G(,$1,o), _G(,ttopaque,text_len), _G(_D _A((_P(2))),ttfont *,text))`'dnl `'`'c_doxygen(`/** set the text of the ttlabel `o' to a copy of `text' */')`'dnl `'`'final(SetFont,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_R _Z,ttfont *,text))`'dnl `'`'c_doxygen(`/** set the text of the ttlabel `o' to a copy of `text' */')`'dnl `'`'final(SetText,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_R _Z,ttbyte *,text))`'dnl `'`'c_doxygen(`/** create a ttlabel with a copy of given text */')`'dnl `'`'final(Create,$1,1, _G0(,ttlabel,), _G(_R _Z,ttbyte *,text))`'dnl ') TTappend(tttooltip) define(`TTdef_tttooltip',`extends(ttlabel,$1)`'dnl `'`'c_comment(`/** tttooltip: A simple tooltip */')`'dnl field(,ttopaque,widget_id)`'dnl field(,ttwidget,widget,r)`'dnl ') define(`TTdef_ttclass_tttooltip',`extends(ttlabel,$1)`'dnl `'`'c_doxygen(`/** set the widget the tttooltip `o' is connected to */')`'dnl public_set(SetWidget,$1,2, _G0(,ttbyte,), _G(_D,$1,o), _G(,ttwidget,w))`'dnl ') TTappend(ttbuttongroup) define(`TTdef_ttbuttongroup',`extends(ttcomponent,$1)`'dnl `'`'c_comment(`/** ttbuttongroup: a mutual-exclusion group of radiobuttons */')`'dnl field(,ttradiobutton,group_first,r)`'dnl field(,ttradiobutton,group_last,r)`'dnl field(,ttradiobutton,checked,r)`'dnl ') define(`TTdef_ttclass_ttbuttongroup',`extends(ttcomponent,$1)`'dnl `'`'c_doxygen(`/** add the ttradiobutton `r' to the ttbuttongroup `o' */')`'dnl public_set(Add,$1,2, _G0(,void,), _G(,$1,o), _G(,ttradiobutton,r))`'dnl `'`'c_doxygen(`/** remove the ttradiobutton `r' from the ttbuttongroup `o' */')`'dnl public_set(Remove,$1,2, _G0(,void,), _G(,$1,o), _G(,ttradiobutton,r))`'dnl `'`'c_doxygen(`/** set which ttradiobutton in the ttbuttongroup `o' is checked */')`'dnl public_set(SetChecked,$1,2, _G0(,void,), _G(,$1,o), _G(,ttradiobutton,r))`'dnl ') TTappend(ttanybutton) define(`TTdef_ttanybutton',`extends(ttwidget,$1)`'dnl `'`'c_comment(`/** ttanybutton: the abstract class all buttons are derived from */')`'dnl field(,ttshort,text_width,r)`'dnl field(,ttshort,text_height,r)`'dnl field(_A((_F(text_width),*,_F(text_height))),ttattr *,text,r)`'dnl `'`'dnl cheat: we define enough space for all derived objects shapes field(,struct s_ttshape,theme_shape[ttderived_ttanybutton_shape_max])`'dnl ') define(`TTdef_ttclass_ttanybutton',`extends(ttwidget,$1)`'dnl protected(CacheThemeShape,$1,1, _G0(,ttuint,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** set the text of the ttanybutton `o' and swallow `text' */')`'dnl public_set(SetAttrD,$1,5, _G0(,void,), _G(,$1,o), _G(,ttshort,w), _G(,ttshort,h), _G(,ttshort,pitch), _G(_D _A((_P(3),*,_P(4))),ttattr *,text))`'dnl `'`'c_doxygen(`/** set the text of the ttanybutton `o' to a copy of `text' */')`'dnl `'`'final(SetAttr,$1,5, _G0(,ttbyte,), _G(,$1,o), _G(,ttshort,w), _G(,ttshort,h), _G(,ttshort,pitch), _G(_R _A((_P(3),*,_P(4))),ttattr *,text))`'dnl `'`'c_doxygen(`/** set the text of the ttanybutton `o' to a copy of `text' */')`'dnl `'`'final(SetFont,$1,5, _G0(,ttbyte,), _G(,$1,o), _G(,ttshort,w), _G(,ttshort,h), _G(,ttshort,pitch), _G(_R _A((_P(3),*,_P(4))),ttfont *,text))`'dnl `'`'c_doxygen(`/** set the text of the ttanybutton `o' to a copy of `text' */')`'dnl `'`'final(SetText,$1,5, _G0(,ttbyte,), _G(,$1,o), _G(,ttshort,w), _G(,ttshort,h), _G(,ttshort,pitch), _G(_R _A((_P(3),*,_P(4))),ttbyte *,text))`'dnl `'`'c_doxygen(`/** create a ttanybutton with a copy of given text */')`'dnl `'`'final(Create,$1,4, _G0(,ttanybutton,), _G(,ttshort,w), _G(,ttshort,h), _G(,ttshort,pitch), _G(_R _A((_P(2),*,_P(3))),ttbyte *,text))`'dnl ') TTappend(ttbutton) define(`TTdef_ttbutton',`extends(ttanybutton,$1)`'dnl `'`'c_comment(`/** ttbutton: a normal click-to-activate button */')`'dnl ') define(`TTdef_ttclass_ttbutton',`extends(ttanybutton,$1)`'dnl `'`'c_doxygen(`/** set whether the ttbutton `o' is pressed or not */')`'dnl public_set(SetPressed,$1,2, _G0(,void,), _G(,$1,o), _G(,ttbyte,pressed))`'dnl `'`'c_doxygen(`/** get whether the ttbutton `o' is pressed or not */')`'dnl `'`'final(IsPressed,$1,1, _G0(,ttbyte,), _G(_R,$1,o))`'dnl `'`'c_doxygen(`/** create a ttbutton with given text */')`'dnl `'`'final(Create,$1,4, _G0(,ttbutton,), _G(,ttshort,w), _G(,ttshort,h), _G(,ttshort,pitch), _G(_R _A((_P(2),*,_P(3))),ttbyte *,text))`'dnl ') TTappend(ttcheckbutton) define(`TTdef_ttcheckbutton',`extends(ttbutton,$1)`'dnl `'`'c_comment(`/** ttcheckbutton: a two-state (on/off) button */')`'dnl ') define(`TTdef_ttclass_ttcheckbutton',`extends(ttbutton,$1)`'dnl `'`'c_doxygen(`/** set whether the ttbutton `o' is checked or not */')`'dnl public_set(SetChecked,$1,2, _G0(,void,), _G(,$1,o), _G(,ttbyte,checked))`'dnl `'`'c_doxygen(`/** get whether the ttbutton `o' is checked or not */')`'dnl `'`'final(IsChecked,$1,1, _G0(,ttbyte,), _G(_R,$1,o))`'dnl `'`'c_doxygen(`/** create a ttcheckbutton with given text */')`'dnl `'`'final(Create,$1,4, _G0(,ttcheckbutton,), _G(,ttshort,w), _G(,ttshort,h), _G(,ttshort,pitch), _G(_R _A((_P(2),*,_P(3))),ttbyte *,text))`'dnl ') TTappend(ttradiobutton) define(`TTdef_ttradiobutton',`extends(ttcheckbutton,$1)`'dnl `'`'c_comment(`/** ttradiobutton: a two-state mutual-exclusion button */')`'dnl field(,ttbuttongroup,group,r)`'dnl field(,ttradiobutton,group_prev,r)`'dnl field(,ttradiobutton,group_next,r)`'dnl ') define(`TTdef_ttclass_ttradiobutton',`extends(ttcheckbutton,$1)`'dnl `'`'c_doxygen(`/** add the ttradiobutton `o' to the ttbuttongroup `g' */')`'dnl `'`'final(AddToGroup,$1,2, _G0(,void,), _G(,$1,o), _G(,ttbuttongroup,g))`'dnl `'`'c_doxygen(`/** remove the ttradiobutton `o' from its ttbuttongroup */')`'dnl `'`'final(RemoveFromGroup,$1,1, _G0(,void,), _G(,$1,o))`'dnl `'`'c_doxygen(`/** create a ttradiobutton with given text */')`'dnl `'`'final(Create,$1,4, _G0(,ttradiobutton,), _G(,ttshort,w), _G(,ttshort,h), _G(,ttshort,pitch), _G(_R _A((_P(2),*,_P(3))),ttbyte *,text))`'dnl ') TTappend(ttanyscroll) define(`TTdef_ttanyscroll',`extends(ttanybutton,$1)`'dnl `'`'c_comment(`/** ttanyscroll: the abstract class all scroll-like widgets are derived from */')`'dnl field(,ttbyte,orientation,rw)`'dnl field(,ttint,size,rw)`'dnl field(,ttint,real_size,rw)`'dnl field(,ttint,view_size,rw)`'dnl field(,ttint,real_view_size)`'dnl field(,ttint,position,rw)`'dnl field(,ttint,real_position,r)`'dnl field(,ttuint,state,r)`'dnl ') define(`TTdef_ttclass_ttanyscroll',`extends(ttanybutton,$1)`'dnl protected(Recalculate,$1,5, _G0(,void,), _G(,$1,o), _G(,ttint,size), _G(,ttint,real_size), _G(,ttint,view_size), _G(,ttint,position))`'dnl protected(SetState,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttuint,state))`'dnl `'`'c_doxygen(`/** set the orientation of the ttanyscroll `o' */')`'dnl public_set(SetOrientation,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttbyte,orientation))`'dnl `'`'c_doxygen(`/** set the (virtual) size of the ttanyscroll `o' */')`'dnl public_set(SetSize,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,size))`'dnl `'`'c_doxygen(`/** set the (real) size of the ttanyscroll `o' */')`'dnl public_set(SetRealSize,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,real_size))`'dnl `'`'c_doxygen(`/** set the (virtual) view size of the ttanyscroll `o' */')`'dnl public_set(SetViewSize,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,view_size))`'dnl `'`'c_doxygen(`/** set the (virtual) position of the ttanyscroll `o' */')`'dnl public_set(SetPosition,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,position))`'dnl ') TTappend(ttscrollbar) define(`TTdef_ttscrollbar',`extends(ttanyscroll,$1)`'dnl `'`'c_comment(`/** ttscrollbar: a normal, interactive scroll bar */')`'dnl field(,ttscrollpane,scrollpane)`'dnl ') define(`TTdef_ttclass_ttscrollbar',`extends(ttanyscroll,$1)`'dnl `'`'c_doxygen(`/** create a ttscrollbar with given fields */')`'dnl `'`'final(Create1,$1,1, _G0(,ttscrollbar,), _G(,ttbyte,orientation))`'dnl `'`'c_doxygen(`/** create a ttscrollbar with given fields */')`'dnl `'`'final(Create4,$1,4, _G0(,ttscrollbar,), _G(,ttbyte,orientation), _G(,ttint,size), _G(,ttint,real_size), _G(,ttint,view_size))`'dnl ') TTappend(ttslider) define(`TTdef_ttslider',`extends(ttanyscroll,$1)`'dnl `'`'c_comment(`/** ttslider: a sliding knob within a bounded interval */')`'dnl field(,ttint,slide_min,rw)`'dnl field(,ttint,slide_max,rw)`'dnl field(,ttint,slide_value,rw)`'dnl ') define(`TTdef_ttclass_ttslider',`extends(ttanyscroll,$1)`'dnl `'`'c_doxygen(`/** set the slide minimum of the ttslider `o' */')`'dnl public_set(SetSlideMin,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,slide_min))`'dnl `'`'c_doxygen(`/** set the slide maximum of the ttslider `o' */')`'dnl public_set(SetSlideMax,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,slide_max))`'dnl `'`'c_doxygen(`/** set the slide position of the ttslider `o' */')`'dnl public_set(SetSlideValue,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttint,slide_value))`'dnl `'`'c_doxygen(`/** create a ttslider with given fields */')`'dnl `'`'final(Create,$1,2, _G0(,ttslider,), _G(,ttbyte,orientation), _G(,ttint,real_size))`'dnl ') TTappend(ttprogressbar) define(`TTdef_ttprogressbar',`extends(ttanyscroll,$1)`'dnl `'`'c_comment(`/** ttprogressbar: a percentage completion bar */')`'dnl field(,ttint,real_position_frac_above)`'dnl field(,ttint,real_position_frac_below)`'dnl ') define(`TTdef_ttclass_ttprogressbar',`extends(ttanyscroll,$1)`'dnl `'`'c_doxygen(`/** create a ttprogressbar with given fields */')`'dnl `'`'final(Create,$1,1, _G0(,ttprogressbar,), _G(,ttbyte,orientation))`'dnl ') TTappend(ttscrollpane) define(`TTdef_ttscrollpane',`extends(ttwidget,$1)`'dnl `'`'c_comment(`/** ttscrollpane: a scrollable widget; * it keeps track of its wl and hl * from the ttwidgets you put inside it; * also used as the scrollpane of a ttscroller. */')`'dnl field(,ttscrollbar,bar_x,rw)`'dnl field(,ttscrollbar,bar_y,rw)`'dnl ') define(`TTdef_ttclass_ttscrollpane',`extends(ttwidget,$1)`'dnl `'`'c_doxygen(`/** create a ttscrollpane with given size */')`'dnl `'`'final(Create,$1,2, _G0(,ttscrollpane,), _G(,ttshort,w), _G(,ttshort,h))`'dnl `'`'c_doxygen(`/** set the x scrollbar the ttscrollpane `o' is connected to */')`'dnl public_set(SetBarX,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttscrollbar,bar_x))`'dnl `'`'c_doxygen(`/** set the y scrollbar the ttscrollpane `o' is connected to */')`'dnl public_set(SetBarY,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(,ttscrollbar,bar_y))`'dnl ') TTappend(ttwindow) define(`TTdef_ttwindow',`extends(ttwidget,$1)`'dnl `'`'c_comment(`/** ttwindow: a full-featured window */')`'dnl field(,ttopaque,title_len,r)`'dnl field(_A((_F(title_len))),ttbyte *,title,r)`'dnl ') define(`TTdef_ttclass_ttwindow',`extends(ttwidget,$1)`'dnl `'`'c_doxygen(`/** set the title of the ttwindow `o' */')`'dnl public_set(SetTitle,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_R _Z,ttbyte *,title))`'dnl ') TTappend(ttframe) define(`TTdef_ttframe',`extends(ttwindow,$1)`'dnl `'`'c_comment(`/** ttframe: a toplevel window */')`'dnl field(,ttmenubar,menubar,rw)`'dnl ') define(`TTdef_ttclass_ttframe',`extends(ttwindow,$1)`'dnl `'`'c_doxygen(`/** set the menubar of the ttframe `o' */')`'dnl public_set(SetMenubar,$1,2, _G0(,ttbyte,), _G(,$1,o), _G(_R,ttmenubar,m))`'dnl `'`'c_doxygen(`/** create a ttframe with given title */')`'dnl `'`'final(Create,$1,1, _G0(,ttframe,), _G(_R _Z,ttbyte *,title))`'dnl ') TTappend(ttscroller) define(`TTdef_ttscroller',`extends(ttwindow,$1)`'dnl `'`'c_comment(`/** ttscroller: a scrollable container; * you can put any ttwidget inside its scrollpane */')`'dnl field(,ttscrollpane,scrollpane,r)`'dnl ') define(`TTdef_ttclass_ttscroller',`extends(ttwindow,$1)`'dnl `'`'c_doxygen(`/** create a ttscroller with given size */')`'dnl `'`'final(Create,$1,2, _G0(,ttscroller,), _G(,ttshort,w), _G(,ttshort,h))`'dnl ') TTappend(ttmenuitem) define(`TTdef_ttmenuitem',`extends(ttvisible,$1)`'dnl `'`'c_comment(`/** ttmenuitem: a simple line in a menu */')`'dnl field(,ttopaque,name_len,r)`'dnl field(_A((_F(name_len))),ttbyte *,name,r)`'dnl ') define(`TTdef_ttclass_ttmenuitem',`extends(ttvisible,$1)`'dnl ') TTappend(ttcheckmenuitem) define(`TTdef_ttcheckmenuitem',`extends(ttmenuitem,$1)`'dnl `'`'c_comment(`/** ttcheckmenuitem: a checkable line in a menu */')`'dnl ') define(`TTdef_ttclass_ttcheckmenuitem',`extends(ttmenuitem,$1)`'dnl ') TTappend(ttradiomenuitem) define(`TTdef_ttradiomenuitem',`extends(ttcheckmenuitem,$1)`'dnl `'`'c_comment(`/** ttradiomenuitem: a radio (mutual-exclusion) line in a menu */')`'dnl ') define(`TTdef_ttclass_ttradiomenuitem',`extends(ttcheckmenuitem,$1)`'dnl ') TTappend(ttmenu) define(`TTdef_ttmenu',`extends(ttmenuitem,$1)`'dnl `'`'c_comment(`/** ttmenu: a line in a menu pointing to a sub menu */')`'dnl field(,ttmenubar,menubar,r)`'dnl ') define(`TTdef_ttclass_ttmenu',`extends(ttmenuitem,$1)`'dnl ') TTappend(ttmenubar) define(`TTdef_ttmenubar',`extends(ttvisible,$1)`'dnl `'`'c_comment(`/** ttmenubar: a complete menu bar */')`'dnl ') define(`TTdef_ttclass_ttmenubar',`extends(ttvisible,$1)`'dnl `'`'c_doxygen(`/** get the default ttmenubar used by ttwidget:s */')`'dnl `'`'final(GetDefault,$1,0, _G0(,ttmenubar,))`'dnl ') TTappend(ttanytext) define(`TTdef_ttanytext',`extends(ttwindow,$1)`'dnl `'`'c_comment(`/** ttanytext: the superclass of all text-only widgets */')`'dnl field(,ttopaque,text_len,r)`'dnl field(_A((_F(text_len))),ttattr *,text,r)`'dnl ') define(`TTdef_ttclass_ttanytext',`extends(ttwindow,$1)`'dnl ') TTappend(tttextfield) define(`TTdef_tttextfield',`extends(ttanytext,$1)`'dnl `'`'c_comment(`/** tttextfield: a single line user editable text-only widget */')`'dnl ') define(`TTdef_ttclass_tttextfield',`extends(ttanytext,$1)`'dnl ') TTappend(tttextarea) define(`TTdef_tttextarea',`extends(tttextfield,$1)`'dnl `'`'c_comment(`/** tttextarea: a multi line user editable text-only widget */')`'dnl ') define(`TTdef_ttclass_tttextarea',`extends(tttextfield,$1)`'dnl ') TTappend(tttheme) define(`TTdef_tttheme',`extends(ttcomponent,$1)`'dnl `'`'c_comment(`/** tttheme: the look-n-feel of the application */')`'dnl field(,ttopaque,name_len,r)`'dnl field(_A((_F(name_len))),ttbyte *,name,r)`'dnl field(,ttfont,fill)`'dnl field(_A((_F(tttheme_bg_max))),ttcol,bg[tttheme_bg_max])`'dnl field(_A((_F(tttheme_val_max))),ttint,val[tttheme_val_max])`'dnl field(_A((_F(tttheme_shape_max)*2)),struct s_ttshape,shape[tttheme_shape_max][2])`'dnl ') define(`TTdef_ttclass_tttheme',`extends(ttcomponent,$1)`'dnl `'`'c_doxygen(`/** get the default tttheme used by ttvisible:s */')`'dnl `'`'final(GetDefault,$1,0, _G0(,tttheme,))`'dnl ') TTappend(ttapplication) define(`TTdef_ttapplication',`extends(ttcomponent,$1)`'dnl `'`'c_comment(`/** ttapplication: the topmost object */')`'dnl field(,ttopaque,name_len,r)`'dnl field(_A((_F(name_len))),ttbyte *,name,r)`'dnl ') define(`TTdef_ttclass_ttapplication',`extends(ttcomponent,$1)`'dnl `'`'c_doxygen(`/** create (only one allowed) a ttapplication with given name */')`'dnl `'`'final(Create,$1,1, _G0(,ttapplication,), _G(_R _Z,ttbyte *,name))`'dnl `'`'c_doxygen(`/** get the current application */')`'dnl `'`'final(Get,$1,0, _G0(,ttapplication,))`'dnl ') dnl defines for objects and types hierarchy define(`m4_super_ttobj', `ttobj') define(`m4_super_ttclass_ttobj', `ttclass_ttobj') define(`m4_super_ttclass', `ttclass') define(`extends',`dnl define(`m4_super_$2',`$1')`'dnl define(`m4_super_ttclass_$2',`ttclass_$1')`'dnl ') define(`field',`') define(`el',`TTdef_$1($1)`'dnl ') TTlist() define(`field') define(`extends') define(`protected') define(`public') define(`public_set') define(`final') define(`final_alt', `final($@)') define(`final_var') undefine(`TTappend') undefine(`el') divert �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/m4/TTclient.m4�������������������������������������������������������������������0000664�0000000�0000000�00000000700�13775351206�0016442�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ dnl handy aliases (required on client side due to library tricks) */ define(`tt_class', `ttclass') define(`tt_obj', `ttobj') ����������������������������������������������������������������twin-0.9.0/include/m4/TTdecay.m4��������������������������������������������������������������������0000664�0000000�0000000�00000006143�13775351206�0016260�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ dnl first, non-decay stuff define(`c_arg_type', `addspace_ifnotempty($1)`'$2') define(`c_arg_decl', `c_arg_type($1,$2) $3') define(`c_args_decl', `ifelse(`$2', `', `', `$5', `', `c_arg_decl($1,$2,$3)', `c_arg_decl($1,$2,$3), c_args_decl(NSHIFT(3, $@))')') define(`c_arg_call', `$3') define(`_c_args_call', `ifelse($3, `', `', `, c_arg_call($1,$2,$3)`'_c_args_call(NSHIFT(3, $@))')') define(`c_args_call', `ifelse($3, `', `', $6, `', `c_arg_call($1,$2,$3)', `c_arg_call($1,$2,$3)`'_c_args_call(NSHIFT(3, $@))')') define(`isaddress', `ifelse(regexp(`$2', `\(^tt_class\|^tt_obj\|_fn$\|\*\)'), -1, `', `1')') define(`opaque_ifaddress', `ifelse(isaddress(`$1',`$2'), `1', `(opaque)')') define(`opaque_ifobject_or_address', `ifdef(`m4_super_$2', (opaque), `ifdef(`m4_super_ttclass_$2', (opaque), `opaque_ifaddress($@)')')') define(`_R_ifaddress', `ifelse(index(`$1', _R), -1, `ifelse(`isaddress(`$1',`$2')', `1', `_R ')')') define(`addspace_ifnotempty', `ifelse(`$1', `', `', `$1 ')') dnl then, decay stuff define(`c_arg_type_decay', `addspace_ifnotempty($1)`'ifdef(`m4_super_$2', tt_obj, `ifdef(`m4_super_ttclass_$2', tt_class, $2)')') define(`c_arg_val_decay', `ifdef(`m4_super_$2', (tt_obj)(opaque), `ifdef(`m4_super_ttclass_$2', (tt_class)(opaque), `(c_arg_type($1,$2))opaque_ifaddress($1,$2)')')') define(`c_arg_ret_decay', `opaque_ifaddress($1,$2)') define(`c_arg_ret_undecay_ifnotvoid', `ifelse($2, void, `', `opaque_ifobject_or_address($@)')') define(`obj2id_ifnotvoid_ifdecay', `ifelse($1, void, $2, `ifdef(`m4_super_$1', `OBJ2ID($2)', $2)')') define(`tt_obj_obj2id_ifnotvoid_ifdecay', `ifelse($1, void, $2, `ifdef(`m4_super_$1', `(tt_obj)OBJ2ID($2)', $2)')') define(`c_arg_decl_decay', `c_arg_type_decay($1,$2) $3') define(`c_args_decl_decay', `ifelse($2, `', `', $5, `', `c_arg_decl_decay($1,$2,$3)', `c_arg_decl_decay($1,$2,$3), c_args_decl_decay(NSHIFT(3, $@))')') define(`c_arg_call_decay', `ifdef(`m4_super_$2', `ID2($2,$3)', `ifdef(`m4_super_$2', `ID2CLASS($3)', $3)')') define(`_c_args_call_decay', `ifelse($3, `', `', `, c_arg_call_decay($1,$2,$3)`'_c_args_call_decay(NSHIFT(3, $@))')') define(`c_args_call_decay', `ifelse($3, `', `', $6, `', `c_arg_call_decay($1,$2,$3)', `c_arg_call_decay($1,$2,$3)`'_c_args_call_decay(NSHIFT(3, $@))')') define(`c_decl_decay_a0_ifnotvoid', `ifelse($2, void, `', `c_arg_decl_decay($1,$2,a0) = c_arg_val_decay($1,$2)0; ')') define(`a0_eq_ifnotvoid', `ifelse($2, void, `', `a0 = ')') define(`a0_ifnotvoid', `ifelse($2, void, `', `a0')') define(`type_function_decay', `ifelse(regexp(`$1', `_fn$'), -1, `$1', ttfunction_fn)') define(`trim_star_n_space', `translit(`$1', ` *')') dnl define(`type_attributes', `patsubst(`$1', `^ *\(\([^ ]+ +\)*\)\([a-zA-Z0-9_]+\) *\*? *$', `\1')') dnl define(`trim_attributes', `patsubst(`$1', `^ *\(\([^ ]+ +\)*\)\([a-zA-Z0-9_]+\) *\*? *$', `\2')') �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/m4/TTfield.m4��������������������������������������������������������������������0000664�0000000�0000000�00000001603�13775351206�0016252�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ define(`tolower', `translit(`$1', `A-Z', `a-z')') define(`toupper', `translit(`$1', `a-z', `A-Z')') define(`Toupper', `toupper(substr(`$1', 0, 1))`'patsubst(substr(`$1', 1), `_\(\w\)',``'toupper(`\1')')') define(`Toupper2', `Toupper($1)`'Toupper($2)') define(`get_field', `ifelse(index(`$4', `r'), -1, `', `getset_method(get,$3,this,1, _G0(_R_ifaddress($1,$2)`'$1,$2,), _G(_R,this,o))')') define(`set_field', `ifelse(index(`$4', `w'), -1, `', `getset_method(set,$3,this,2, _G0(,ttbyte,), _G(,this,o), _G($1,$2,$3))')') define(`getset_field', `get_field($@)`'set_field($@)') �����������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/m4/Tw_alias.m4�������������������������������������������������������������������0000664�0000000�0000000�00000004551�13775351206�0016467�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/Tw_alias.m4' : m4 macros to autogenerate alias_m4.h dnl Tell the user about this. /* This file was automatically generated with `m4' from `m4/Tw_alias.m4', do not edit! */ /* * alias_m4.h -- handy aliases for libtw function prototypes * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ divert(-1) define(`Twlist') define(`Twappend', `define(`Twlist', Twlist() el($1))') Twappend(Obj) define(`methodsObj', ` field(Delete)`'dnl ') Twappend(Row) define(`methodsRow', `extends(Obj, $2)`'dnl field(Lower)`'dnl field(Raise)`'dnl field(CirculateChildren)`'dnl alias(Circulate$2`'s, CirculateChildren)`'dnl field(RestackChildren)`'dnl alias(Restack$2`'s, RestackChildren)`'dnl alias($2`'4Menu, Create4Menu)`'dnl ') Twappend(MenuItem) define(`methodsMenuItem', `extends(Row, $2)`'dnl alias(Item4Menu, Create4Menu)`'dnl alias(Item4MenuCommon, Create4MenuCommon)`'dnl ') Twappend(Menu) define(`methodsMenu', `extends(Obj, $2)`'dnl alias(Info4$2, SetInfo)`'dnl ') Twappend(MsgPort) define(`methodsMsgPort', `extends(Obj, $2)`'dnl ') Twappend(Widget) define(`methodsWidget', `extends(Obj, $2)`'dnl field(CirculateChildren)`'dnl alias(Circulate$2`'s, CirculateChildren)`'dnl field(Draw)`'dnl field(Draw2)`'dnl field(DrawText)`'dnl field(DrawTRune)`'dnl field(DrawTCell)`'dnl field(Owner)`'dnl field(O_Prev)`'dnl field(O_Next)`'dnl field(Lower)`'dnl field(Raise)`'dnl field(Map)`'dnl field(RecursiveDelete)`'dnl field(Resize)`'dnl field(RestackChildren)`'dnl alias(Restack$2`'s, RestackChildren)`'dnl field(Scroll)`'dnl field(SetXY)`'dnl field(UnMap)`'dnl ') Twappend(Gadget) define(`methodsGadget', `extends(Widget, $2)`'dnl field(Group)`'dnl field(G_Prev)`'dnl field(G_Next)`'dnl ') Twappend(Window) define(`methodsWindow', `extends(Widget, $2)`'dnl alias(Win4Menu, Create4Menu)`'dnl alias(WriteAscii$2, WriteCharset)`'dnl ') Twappend(Screen) define(`methodsScreen', `extends(Widget, $2)`'dnl ') undefine(`Twappend') define(`field') define(`alias') divert �������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/m4/Tw_common.m4������������������������������������������������������������������0000664�0000000�0000000�00000022304�13775351206�0016662�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/Tw_common.m4' : m4 macros to autogenerate Tw_common_m4.h dnl Tell the user about this. /* This file was automatically generated with `m4' from `m4/Tw_common.m4', do not edit! */ /* * common_m4.h -- common libtw function prototypes * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ divert(-1) define(`NSHIFT', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')') define(`COMMA', `ifelse($1, 2, `', `, ')') define(`ARG', `a$1') define(`_ARGS', `ifelse($1, $2, `', `, ARG($1)`'_ARGS(incr($1), $2)')') define(`ARGS', `ifelse($1, 2, `', $1, 3, `ARG(1)', `ARG(1)`'_ARGS(2, decr($1))')') ifelse(TARGET, `1', ` define(`c_doxygen') define(`EASY', ``#'define Tw`'$1 Tw_`'$1') define(`DECL', ``#'define Tw`'$2`'(ARGS($#)) Tw_`'$2`'(Tw_DefaultD`'COMMA($#)`'ARGS($#))') ', ` define(`EASY', `$2')`'dnl define(`DECL', `$1 Tw_`'$2`'(tdisplay TwD`'COMMA($#)`'NSHIFT(2, $@));') define(`c_doxygen', `$@') ') divert c_doxygen(/** check some magic data to ensure client and library have compatible types */) EASY(CheckMagic, byte Tw_CheckMagic(TW_CONST byte id[]);) c_doxygen(/** strip double hyphens from argv long options (i.e. --option -> -option) */) EASY(MergeHyphensArgv, void Tw_MergeHyphensArgv(int argc, char **argv);) c_doxygen(/** change Tw_AllocMem(), Tw_ReAllocMem(), Tw_FreeMem() function pointers */) EASY(ConfigMalloc, void Tw_ConfigMalloc(void *(*my_malloc)(size_t), void *(*my_realloc)(void *, size_t), void (*my_free)(void *));) c_doxygen(/** pointer to custom malloc() function; use Tw_ConfigMalloc() to change it */) EASY(AllocMem, extern void *(*Tw_AllocMem)(size_t);) c_doxygen(/** pointer to custom realloc() function; use Tw_ConfigMalloc() to change it */) EASY(ReAllocMem, extern void *(*Tw_ReAllocMem)(void *, size_t);) c_doxygen(/** pointer to custom free() function; use Tw_ConfigMalloc() to change it */) EASY(FreeMem, extern void (*Tw_FreeMem)(void *);) c_doxygen(/** equivalent to calloc() */) EASY(AllocMem0, void *Tw_AllocMem0(size_t Size);) c_doxygen(/** equivalent to realloc()+memset() */) EASY(ReAllocMem0, void *Tw_ReAllocMem0(void * Mem, size_t OldSize, size_t NewSize);) c_doxygen(/** custom malloc()+memcpy() function */) EASY(CloneMem, extern void *Tw_CloneMem(TW_CONST void *, size_t);) c_doxygen(/** custom strdup() function */) EASY(CloneStr, extern char *Tw_CloneStr(TW_CONST char *);) c_doxygen(/** custom byte-to-unicode conversion + strdup() function */) EASY(CloneStr2TRune, extern trune *Tw_CloneStr2TRune(TW_CONST char *, size_t);) EASY(CopyStr, `#define Tw_CopyStr(From,To) strcpy(To, From)') EASY(CopyMem, `#define Tw_CopyMem(From, To, Size) memcpy(To, From, Size)') EASY(MoveMem, `#define Tw_MoveMem(From, To, Size) memmove(To, From, Size)') DECL(byte,FindFunctionV, va_list vargs) EASY(DropPrivileges, `#define Tw_DropPrivileges() (setegid(getgid()), seteuid(getuid()))') EASY(GetPrivileges, `#define Tw_GetPrivileges() seteuid(0)') c_doxygen(/** try to enable compression (using zlib); return 1 if success or 0 if failed */) DECL(byte,EnableGzip) c_doxygen(/** try to disable compression (using zlib); return 1 if success or 0 if failed */) DECL(byte,DisableGzip) c_doxygen(/** return server diagnostic after Tw_AttachHW() */) DECL(TW_CONST char *,AttachGetReply,uldat *len) c_doxygen(/** confirm to server it is ok to use newly opened display (used for synchronization) */) DECL(void,AttachConfirm) DECL(tmsgport,OwnerWidget, twidget W) DECL(twidget, O_PrevWidget, twidget W) DECL(twidget, O_NextWidget, twidget W) DECL(void,SetFillWidget,twidget W, tcell Fill) DECL(void,Draw2Widget, twidget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, TW_CONST char *Text, TW_CONST trune *Font, TW_CONST tcell *Attr) DECL(void,DrawTextWidget, twidget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, TW_CONST char *Text) DECL(void,DrawTRuneWidget,twidget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, TW_CONST trune *Font) DECL(void,DrawTCellWidget,twidget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, TW_CONST tcell *Attr) DECL(void,SetPressedGadget, tgadget Gadget, byte on) DECL(byte,IsPressedGadget, tgadget Gadget) DECL(void,SetToggleGadget, tgadget Gadget, byte on) DECL(byte,IsToggleGadget, tgadget Gadget) DECL(void,WriteTextGadget, tgadget Gadget, dat XWidth, dat YWidth, TW_CONST char *Text, dat Left, dat Up) DECL(void,SetTextGadget, tgadget Gadget, dat XWidth, dat YWidth, TW_CONST char *Text, dat Left, dat Up) DECL(void,SetTextsGadget, tgadget Gadget, byte bitmap, dat XWidth, dat YWidth, TW_CONST char *Text, dat Left, dat Up) DECL(tgroup, GroupGadget, tgadget Gadget) DECL(tgadget,G_PrevGadget, tgadget Gadget) DECL(tgadget,G_NextGadget, tgadget Gadget) DECL(void,WriteTRuneGadget, tgadget Gadget, dat XWidth, dat YWidth, TW_CONST trune * TRune, dat Left, dat Up) DECL(void,SetTRuneGadget, tgadget Gadget, dat XWidth, dat YWidth, TW_CONST trune * TRune, dat Left, dat Up) DECL(void,SetTRunesGadget, tgadget Gadget, byte bitmap, dat XWidth, dat YWidth, TW_CONST trune * TRune, dat Left, dat Up) DECL(tmenuitem,Create4MenuRow, twindow Window, udat Code, byte Flags, ldat Len, TW_CONST char *Text) DECL(tmenuitem,Create4MenuMenuItem, tobj Parent, twindow Window, byte Flags, dat Len, TW_CONST char *Name) DECL(tmsg,CreateMsg, uldat Type, uldat Len) DECL(void,DeleteMsg, tmsg Msg) DECL(byte,SendMsg, tmsgport MsgPort, tmsg Msg) DECL(void,BlindSendMsg, tmsgport MsgPort, tmsg Msg) DECL(int,ConnectionFd) DECL(uldat,LibraryVersion) DECL(uldat,ServerVersion) DECL(byte,InPanic) c_doxygen(/** this returns tfalse only after libtw has paniced */) DECL(byte,Flush) c_doxygen(/** this returns tfalse only after libtw has paniced */) DECL(byte,Sync) c_doxygen( /** * try to write to the underlying socket. * if not all data could be written, write as much as possible, * keep the rest queued, then return. * * returns tfalse only after libtw has paniced, * returns ttrue+ttrue if not all data could be written. */) DECL(byte,TimidFlush) c_doxygen( /** * This is the function you must call to check if there are pending Msgs, * i.e. already received from the socket. * Since Msgs can be received even during libtw calls, you cannot rely only * on select(Tw_ConnectionFd()) to detect incoming messages, as they could * be already queued in the library. So you must call either Tw_PendingMsg() * or Tw_PeekMsg() below to check for messages. * Returns the first pending Msg, without removing it from the queue, * ot (tmsg)0 if no Msgs are pending. */) DECL(tmsg,PendingMsg) c_doxygen( /** * This is the function you must call to check if there are Msgs available, * i.e. either already received or that can be received non-blocking. * Returns the first available Msg, without removing it from the queue, * ot (tmsg)0 if no Msgs are available. */) DECL(tmsg,PeekMsg) c_doxygen( /** * This is the function you must call to get a Msg from the server. * If Wait is ttrue and no Msg is available, it waits until a Msg arrives. * If Wait is tfalse and no Msg is available, it tries non-blocking * to receive more Msgs. * * In both cases, if there is at least a Msgs available it is returned * without waiting. */) DECL(tmsg,ReadMsg, byte Wait) c_doxygen( /** * this is just like Tw_ReadMsg(), but returns a Tw_AllocMem()ed copy * of the message, to avoid concurrency problems with other threads. * You must Tw_FreeMem() it when done! */) DECL(tmsg,CloneReadMsg, byte Wait) DECL(tlistener,AddKeyboardListener, twidget W, udat Key, udat ShiftFlags, tfn_listener Listener, void *Arg) DECL(tlistener,AddMouseListener, twidget W, udat Code, udat ShiftFlags, tfn_listener Listener, void *Arg) DECL(tlistener,AddControlListener, twidget W, udat Code, tfn_listener Listener, void *Arg) DECL(tlistener,AddClientMsgListener, twidget W, udat Code, tfn_listener Listener, void *Arg) DECL(tlistener,AddDisplayListener, udat Code, tfn_listener Listener, void *Arg) DECL(tlistener,AddWidgetListener, twidget W, udat Code, tfn_listener Listener, void *Arg) DECL(tlistener,AddGadgetListener, twidget W, udat Code, tfn_listener Listener, void *Arg) DECL(tlistener,AddMenuListener, twidget W, tmenu Menu, udat Code, tfn_listener Listener, void *Arg) DECL(tlistener,AddSelectionListener, twidget W, tfn_listener Listener, void *Arg) DECL(tlistener,AddSelectionNotifyListener, tfn_listener Listener, void *Arg) DECL(tlistener,AddSelectionRequestListener, tfn_listener Listener, void *Arg) c_doxygen(/** these five functions are used by Tw/Tw++.h */) DECL(void, InsertListener, tlistener L) DECL(void, RemoveListener, tlistener L) DECL(tlistener,CreateListener, udat Type, tevent_any E, tfn_listener Listener, void *Arg) DECL(void, SetTEListener, tlistener L, udat type, tevent_any E) DECL(void, DeleteListener, tlistener L) DECL(void,SetDefaultListener, tfn_default_listener listener, void *arg) DECL(byte,DispatchMsg, tmsg Msg) DECL(byte,MainLoop) DECL(void,ExitMainLoop) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/m4/Tw_sockproto.m4���������������������������������������������������������������0000664�0000000�0000000�00000022446�13775351206�0017424�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ ifdef(`c_comment', `', `define(`c_comment')') ifdef(`c_doxygen', `', `define(`c_doxygen')') c_comment([ /* * m4/sockproto.m4h -- macroized prototypes for libtw functions. * used as template for a lot of autogenerated files. * * the prototypes are used both on client and server side * to implement function calls <-> socket data stream * conversion. * You can also see this as a custom version of * `remote procedure calling'. * * Copyright (C) 1999-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ ]) define(`rem') rem([ format of this file: each non-empty line is of the form `PROTO'(<rettype>,<retflag>, <action>,<object>,<self>, <arg1type>,<arg1flag>,<arg1name> ...) the number of arguments the function wants must be deduced from the number of formal args in each `PROTO'(...) definition. <flag> : v = void _ = scalar (any integer) x = pointer V(len) = vector of <len> elements (<len> has 'uldat' type) <len> can be an expression, and may access the other arguments of the function as A(n) where <n> is the progressive number of the argument: A(1) is the first arg, A(2) the second, ... W(len) = vector of <len> elements, with double-checking/autodetect on len so that you can safely pass NULL instead of the vector. X(len) = same as V(len), but is a vector of pointers (x) Y(len) = same as W(len), but is a vector of pointers (x) O = variable return type. the function has a special (byte [2]) last argument that contains the actual return type. Function calls wait until server has processed the command and returned the result if their return value is not void. <action> : the function name (Create, Map, Delete, ...) <object> : the object it acts upon (Gadget, Window, ...) <self> : 0 if the server implementation does not need the Fn##object method pointer : 1 if the function in the server needs the Fn##object method pointer : 2 if the Fn##object method pointer is extracted from the first argument ]) c_doxygen(/** return server-side id of given libtw function name with given prototype */) PROTOFindFunction(uldat,_, Find,Function,0, byte,_,namelen, char,V(A(1)),name, byte,_,protolen, char,V(A(3)),proto) c_doxygen(/** sync libtw socket: flush output buffer and wait for server replies */) PROTOSyncSocket(byte,_, Sync,Socket,0) c_doxygen(/** return server idea of sizeof(type) */) PROTO(byte,_, Server,Sizeof,0, byte,_,type) c_doxygen(/** return 1 if server supports compression (using zlib) */) PROTO(byte,_, Can,Compress,0) c_doxygen(/** used internally by libtw to enable/disable compression only on server side; * DO NOT USE THIS`,' use Tw_EnableGzip() and Tw_DisableGzip() instead */) PROTO(byte,_, Do,Compress,0, byte,_,on_off) c_doxygen(/** force a server display resize; used by twdisplay */) PROTO(void,v, NeedResize,Display,0) c_doxygen(/** tell server to open a new display; used by twattach/twdisplay */) PROTO(void,v, Attach,HW,0, uldat,_,len, char,V(A(1)),name, byte,_,flags) c_doxygen(/** tell server to close given display */) PROTO(byte,_, Detach,HW,0, uldat,_,len, char,V(A(1)),name) c_doxygen(/** set server global charset translation */) PROTO(void,v, Set, FontTranslation,0, byte,V(0x80),trans) c_doxygen(/** set server global charset translation */) PROTO(void,v, Set,TRuneTranslation,0,trune,V(0x80),trans) c_doxygen(/** delete given object */) PROTO(void,v, Delete,Obj,0, obj,x,O) c_doxygen(/** change given field of object; new_value = (old_value & ~clearmask) ^ xormask */) PROTO(void,v,ChangeField,Obj,2, obj,x,O, udat,_,field, uldat,_,clearmask, uldat,_,xormask) PROTO(widget,x, Create,Widget,0, dat,_,w, dat,_,h, uldat,_,attrib, uldat,_,flags, dat,_,x, dat,_,y, tcell,_,fill) c_doxygen(/** delete given widget and all its children */) PROTO(void,v,RecursiveDelete,Widget,0, widget,x,W) PROTO(void,v, Map,Widget,2, widget,x,W, widget,x,parent) PROTO(void,v, UnMap,Widget,2, widget,x,W) PROTO(void,v, SetXY,Widget,0, widget,x,W, dat,_,x, dat,_,y) PROTO(void,v, Resize,Widget,0, widget,x,W, dat,_,w, dat,_,h) PROTO(void,v, Scroll,Widget,0, widget,x,W, ldat,_,dxl, ldat,_,dyl) PROTO(void,v, Draw,Widget,0, widget,x,W, dat,_,w, dat,_,h, dat,_,x, dat,_,y, char,W(A(2)*A(3)),text, trune,W(A(2)*A(3)),textfont, tcell,W(A(2)*A(3)),textattr) PROTO(void,v, SetVisible,Widget,0, widget,x,W, byte,_,on_off) PROTO(void,v, FocusSub,Widget,0, widget,x,W) PROTO(widget,x,FindWidgetAt,Widget,2, widget,x,W, dat,_,x, dat,_,y) PROTO(void,v, Raise,Widget,2, widget,x,W) PROTO(void,v, Lower,Widget,2, widget,x,W) PROTO(void,v, RestackChildren,Widget,0, widget,x,W, uldat,_,n, widget,X(A(2)),children) PROTO(void,v,CirculateChildren,Widget,0, widget,x,W, byte,_,up_down) PROTO(gadget,x, Create,Gadget,0, widget,x,parent, dat,_,w, dat,_,h, char,W(A(2)*A(3)),text, uldat,_,attrib, uldat,_,flags, udat,_,code, tcolor,_,coltext, tcolor,_,colselect, tcolor,_,coldisabled, tcolor,_,colselectdisabled, dat,_,x, dat,_,y) PROTO(gadget,x, CreateButton,Gadget,1, widget,x,parent, dat,_,w, dat,_,h, char,V(A(2)*A(3)),text, uldat,_,flags, udat,_,code, tcolor,_,colbg, tcolor,_,col, tcolor,_,coldisabled, dat,_,x, dat,_,y) PROTO(void,v, WriteTexts,Gadget,2, gadget,x,G, byte,_,mask, dat,_,w, dat,_,h, char,W(A(2)*A(3)),text, dat,_,x, dat,_,y) PROTO(void,v, WriteTRunes,Gadget,2, gadget,x,G, byte,_,mask, dat,_,w, dat,_,h, trune,W(A(2)*A(3)),runes, dat,_,x, dat,_,y) PROTO(window,x, Create,Window,0, dat,_,titlelen, char,V(A(1)),title, tcolor,W(A(1)),coltitle, menu,x,M, tcolor,_,coltext, uldat,_,cursortype, uldat,_,attrib, uldat,_,flags, dat,_,w, dat,_,h, dat,_,hscroll) PROTO(window,x, Create4Menu,Window,1, menu,x,M) PROTO(void,v, WriteCharset,Window,0, window,x,W, uldat,_,len, char,V(A(2)),charset_bytes) PROTO(void,v, WriteUtf8 ,Window,0, window,x,W, uldat,_,len, char,V(A(2)),utf8_bytes) PROTO(void,v, WriteTRune ,Window,0, window,x,W, uldat,_,len,trune,V(A(2)),runes) PROTO(void,v, WriteTCell ,Window,0, window,x,W, dat,_,x, dat,_,y, uldat,_,len, tcell,V(A(4)),cells) PROTO(void,v, GotoXY,Window,2, window,x,W, ldat,_,x, ldat,_,y) PROTO(void,v, SetTitle,Window,0, window,x,W, dat,_,titlelen, char,V(A(2)),title) PROTO(void,v, SetColText,Window,2, window,x,W, tcolor,_,coltext) PROTO(void,v, SetColors,Window,2, window,x,W, udat,_,mask, tcolor,_,colgadgets, tcolor,_,colarrows, tcolor,_,colbars, tcolor,_,coltabs, tcolor,_,colborder, tcolor,_,coltext, tcolor,_,colselect, tcolor,_,coldisabled, tcolor,_,colselectdisabled) PROTO(void,v, Configure,Window,2, window,x,W, byte,_,mask, dat,_,x, dat,_,y, dat,_,minw, dat,_,minh, dat,_,maxw, dat,_,maxh) PROTO(row,x, FindRowByCode,Window,0, window,x,W, dat,_,code) PROTO(group,x, Create,Group,0) PROTO(void,v, InsertGadget,Group,2, group,x,g, gadget,x,G) PROTO(void,v, RemoveGadget,Group,2, group,x,g, gadget,x,G) PROTO(gadget,x, GetSelectedGadget,Group,2, group,x,g) PROTO(void,v, SetSelectedGadget,Group,2, group,x,g, gadget,x,G) PROTO(void,v, Raise,Row,2, row,x,R) PROTO(void,v, Lower,Row,2, row,x,R) PROTO(void,v, RestackChildren,Row,0, obj,x,O, uldat,_,n, row,X(A(2)),children) PROTO(void,v,CirculateChildren,Row,0, obj,x,O, byte,_,up_down) PROTO(row,x, Create4Menu,Any,0, obj,x,parent, window,x,W, udat,_,code, byte,_,flags, ldat,_,len, char,V(A(5)),text) PROTO(uldat,_, Create4MenuCommon,MenuItem,1, menu,x,M) PROTO(menu,x, Create,Menu,0, tcolor,_,colitem, tcolor,_,colselect, tcolor,_,coldisabled, tcolor,_,colselectdisabled, tcolor,_,colshortcut, tcolor,_,colshortcutselect, byte,_,flags) PROTO(void,v, SetInfo,Menu,2, menu,x,M, byte,_,flags, ldat,_,len, char,V(A(3)),text, tcolor,W(A(3)),coltext) PROTO(msgport,x,Create,MsgPort,0, byte,_,len, char,V(A(1)),name) PROTO(msgport,x, Find,MsgPort,0, msgport,x,prev, byte,_,len, char,V(A(2)),name) PROTO(void,v, BgImage,Screen,2, screen,x,S, dat,_,w, dat,_,h, tcell,V(A(2)*A(3)),textattr) PROTO(obj,x, Prev,Obj,0, obj,x,O) PROTO(obj,x, Next,Obj,0, obj,x,O) PROTO(obj,x, Parent,Obj,0, obj,x,O) PROTO(screen ,x, First,Screen, 0) PROTO(widget ,x, First,Widget, 0, widget ,x,W) PROTO(msgport ,x, First,MsgPort, 0) PROTO(menu ,x, First,Menu, 0, msgport,x,P) PROTO(widget ,x, First,W, 0, msgport,x,P) PROTO(group ,x, First,Group, 0, msgport,x,P) PROTO(mutex ,x, First,Mutex, 0, msgport,x,P) PROTO(menuitem,x, First,MenuItem,0, menu ,x,M) PROTO(gadget ,x, First,Gadget, 0, group ,x,g) PROTO(dat,_, GetDisplay,Width,0) PROTO(dat,_, GetDisplay,Height,0) PROTO(all,x, Get ,All,0) PROTO(byte,_, SendTo,MsgPort,0, msgport,x,P, udat,_,len, byte,V(A(2)),data) PROTO(void,v, BlindSendTo,MsgPort,0, msgport,x,P, udat,_,len, byte,V(A(2)),data) PROTO(obj, x, GetOwner,Selection,0) PROTO(void,v, SetOwner,Selection,0, tany,_,secnow, tany,_,fracnow) PROTO(void,v, Request,Selection,0, obj,x,owner, uldat,_,reqprivate) PROTO(void,v, Notify,Selection,0, obj,x,requestor, uldat,_,reqprivate, uldat,_,magic, char,V(TW_MAX_MIMELEN),mime, uldat,_,len, char,V(A(5)),data) PROTO(byte,_, SetServer,Uid,0, uldat,_,uid, byte,_,privileges) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/m4/socklist.m4h������������������������������������������������������������������0000664�0000000�0000000�00000001712�13775351206�0016723�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/socklist.m4' : m4 macros to autogenerate socklist_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/socklist.m4', do not edit! * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* clang-format off */ define(`TRIM', `translit(`$1', ` ')') define(`PROTO', `EL(TRIM($3)`'TRIM($4))') define(`PROTOFindFunction', `PROTO($@)') define(`PROTOSyncSocket', `PROTO($@)') #define OK_MAGIC ((uldat)0x3E4B4F3Cul) #define FAIL_MAGIC ((uldat)0xFFFFFFFFul) #define FIND_MAGIC ((uldat)0x646E6946ul) /* i.e. "Find" */ #define MSG_MAGIC ((uldat)0x2167734dul) /* i.e. "Msg!" */ include(`m4/Tw_sockproto.m4') ������������������������������������������������������twin-0.9.0/include/md5.h����������������������������������������������������������������������������0000664�0000000�0000000�00000003026�13775351206�0014774�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * This code implements the MD5 message-digest algorithm. * The algorithm is due to Ron Rivest. This code was * written by Colin Plumb in 1993, no copyright is claimed. * This code is in the public domain; do with it what you wish. * * Equivalent code is available from RSA Data Security, Inc. * This code has been tested against that, and is equivalent, * except that you don't need to include two pages of legalese * with every copy. * * To compute the message digest of a chunk of bytes, declare an * MD5Context structure, pass it to MD5Init, call MD5Update as * needed on buffers full of bytes, and then call MD5Final, which * will fill a supplied 16-byte array with the digest. */ #ifndef MD5_H #define MD5_H #include "twautoconf.h" /* TW_HAVE_*, uint32_t */ #include <Tw/compiler.h> /* TW_INLINE, TW_CONST */ #ifdef TW_HAVE_STDINT_H #include <stdint.h> /* uint32_t */ #endif #ifdef TW_HAVE_STDDEF_H #include <stddef.h> /* size_t */ #endif typedef uint32_t md5_uint32; typedef char assert_md5_uint32_is_really_32_bits_wide[sizeof(md5_uint32) == 4 ? 1 : -1]; struct MD5Context { md5_uint32 buf[4]; md5_uint32 bits[2]; md5_uint32 in[16]; }; void MD5Init(struct MD5Context *context); void MD5Update(struct MD5Context *context, void TW_CONST *mem, size_t len); void MD5Final(unsigned char digest[16], struct MD5Context *context); void MD5Transform(md5_uint32 buf[4], md5_uint32 TW_CONST in[16]); /* * This is needed to make RSAREF happy on some MS-DOS compilers. */ typedef struct MD5Context MD5_CTX; #endif /* MD5_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/mutex.h��������������������������������������������������������������������������0000664�0000000�0000000�00000017515�13775351206�0015461�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * mutex.h -- mutex locking functions for libtw, libTT, ... * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TWIN_MUTEX_H #define TWIN_MUTEX_H #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #define th_self pthread_t #define th_self_none ((th_self)-1) #define th_self_get() pthread_self() #define th_mutex pthread_mutex_t #define TH_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER #define th_mutex_init(__mx) pthread_mutex_init(&(__mx), NULL) #define th_mutex_destroy(__mx) pthread_mutex_destroy(&(__mx)) #define th_mutex_lock(__mx) pthread_mutex_lock(&(__mx)) #define th_mutex_unlock(__mx) pthread_mutex_unlock(&(__mx)) /* implementation of recursive mutexes. use native ones if available, else emulate. */ #ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP #define th_r_mutex th_mutex #define TH_R_MUTEX_INITIALIZER PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP #define th_r_mutex_init(__mx) th_mutex_init(__mx) #define th_r_mutex_destroy(__mx) th_mutex_destroy(__mx) #define th_r_mutex_lock(__mx) th_mutex_lock(__mx) #define th_r_mutex_unlock(__mx) th_mutex_unlock(__mx) #define TH_R_MUTEX_HELPER_DEFS(attr) typedef th_r_mutex _th_r_mutex #else /* #warning no recursive pthreads available, emulating them */ #define th_r_mutex th_r_mutex typedef struct { unsigned __c; th_self __s; th_mutex __m1, __m2; } th_r_mutex; #define TH_R_MUTEX_INITIALIZER \ { 0, th_self_none, PTHREAD_MUTEX_INITIALIZER, PTHREAD_MUTEX_INITIALIZER } #define th_r_mutex_init(__mx) \ do { \ (__mx).__c = 0; \ (__mx).__s = th_self_none; \ th_mutex_init((__mx).__m1); \ th_mutex_init((__mx).__m2); \ } while (0) #define th_r_mutex_destroy(__mx) \ do { \ th_mutex_destroy((__mx).__m2); \ th_mutex_destroy((__mx).__m1); \ } while (0) #define th_r_mutex_lock(__mx) _th_r_mutex_lock(&(__mx)) #define th_r_mutex_unlock(__mx) _th_r_mutex_unlock(&(__mx)) #define TH_R_MUTEX_HELPER_DEFS(attr) \ attr void _th_r_mutex_lock(th_r_mutex *__mx) { \ th_self __self = th_self_get(); \ \ th_mutex_lock(__mx->__m1); \ if (__mx->__s == th_self_none || __mx->__s == __self) { \ __mx->__s = __self; \ __mx->__c++; \ } else { \ th_mutex_unlock(__mx->__m1); \ /* some other thread might steal us __mx->__m2 here, but that's semantically ok */ \ th_mutex_lock(__mx->__m2); \ th_mutex_lock(__mx->__m1); \ __mx->__s = __self; \ __mx->__c++; \ } \ th_mutex_unlock(__mx->__m1); \ } \ attr void _th_r_mutex_unlock(th_r_mutex *__mx) { \ unsigned __c = 1; \ th_mutex_lock(__mx->__m1); \ if (__mx->__s == th_self_get()) \ if (!(__c = --__mx->__c)) \ __mx->__s = th_self_none; \ th_mutex_unlock(__mx->__m1); \ if (!__c) \ th_mutex_unlock(__mx->__m2); \ } \ typedef th_r_mutex _th_r_mutex #endif #else /* !CONF_SOCKET_PTHREADS */ #undef th_self #define th_self_none 0 #define th_self_get() 0 #undef th_mutex #define TH_MUTEX_INITIALIZER \ {} #define th_mutex_init(__mx) \ do { \ } while (0) #define th_mutex_lock(__mx) \ do { \ } while (0) #define th_mutex_unlock(__mx) \ do { \ } while (0) #define th_mutex_destroy(__mx) \ do { \ } while (0) #undef th_r_mutex #define TH_R_MUTEX_INITIALIZER \ {} #define th_r_mutex_init(__mx) \ do { \ } while (0) #define th_r_mutex_lock(__mx) \ do { \ } while (0) #define th_r_mutex_unlock(__mx) \ do { \ } while (0) #define th_r_mutex_destroy(__mx) \ do { \ } while (0) #define TH_R_MUTEX_HELPER_DEFS(attr) typedef int _th_r_mutex #endif /* CONF_SOCKET_PTHREADS */ #endif /* TWIN_MUTEX_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/my_ttydefaults.h�����������������������������������������������������������������0000664�0000000�0000000�00000007056�13775351206�0017373�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/*- * Copyright (c) 1982, 1986, 1993 * The Regents of the University of California. All rights reserved. * (c) UNIX System Laboratories, Inc. * All or some portions of this file are derived from material licensed * to the University of California by American Telephone and Telegraph * Co. or Unix System Laboratories, Inc. and are reproduced herein with * the permission of UNIX System Laboratories, Inc. * * 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. * 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. * * @(#)ttydefaults.h 8.4 (Berkeley) 1/21/94 */ /* * System wide defaults for terminal state. Linux version. */ #ifndef TWIN_MY_TTYDEFAULTS_H #define TWIN_MY_TTYDEFAULTS_H /* * Defaults on "first" open. */ #define TTYDEF_IFLAG (BRKINT | ISTRIP | ICRNL | ITW_MAXBEL | IXON | IXANY) #define TTYDEF_OFLAG (OPOST | ONLCR | XTABS) #define TTYDEF_LFLAG (ECHO | ICANON | ISIG | IEXTEN | ECHOE | ECHOKE | ECHOCTL) #define TTYDEF_CFLAG (CREAD | CS7 | PARENB | HUPCL) #define TTYDEF_SPEED (B9600) /* * Control Character Defaults */ #ifndef CTRL #define CTRL(x) (x & 037) #endif #define CEOF CTRL('d') #ifdef _POSIX_VDISABLE #define CEOL _POSIX_VDISABLE #else #define CEOL '\0' /* XXX avoid _POSIX_VDISABLE */ #endif #define CERASE 0177 #define CINTR CTRL('c') #ifdef _POSIX_VDISABLE #define CSTATUS _POSIX_VDISABLE #else #define CSTATUS '\0' /* XXX avoid _POSIX_VDISABLE */ #endif #define CKILL CTRL('u') #define CMIN 1 #define CQUIT 034 /* FS, ^\ */ #define CSUSP CTRL('z') #define CTIME 0 #define CDSUSP CTRL('y') #define CSTART CTRL('q') #define CSTOP CTRL('s') #define CLNEXT CTRL('v') #define CDISCARD CTRL('o') #define CWERASE CTRL('w') #define CREPRINT CTRL('r') #define CEOT CEOF /* compat */ #define CBRK CEOL #define CRPRNT CREPRINT #define CFLUSH CDISCARD /* PROTECTED INCLUSION ENDS HERE */ #endif /* !TWIN_MY_TTYDEFAULTS_H */ /* * #define TTYDEFCHARS to include an array of default control characters. */ #ifdef TTYDEFCHARS cc_t ttydefchars[NCCS] = { CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT, _POSIX_VDISABLE, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT, CDISCARD, CMIN, CTIME, CSTATUS, _POSIX_VDISABLE}; #undef TTYDEFCHARS #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/osincludes.h���������������������������������������������������������������������0000664�0000000�0000000�00000001560�13775351206�0016460�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. */ #ifndef TWIN_OSINCLUDES_H #define TWIN_OSINCLUDES_H #include <time.h> #include <sys/types.h> #ifdef TW_HAVE_SYS_STAT_H #include <sys/stat.h> #endif #ifdef TW_HAVE_FCNTL_H #include <fcntl.h> #endif #ifdef TW_HAVE_LIMITS_H #include <limits.h> #endif #ifdef TW_HAVE_UNISTD_H #include <unistd.h> #endif #ifdef TW_HAVE_MACHINE_PARAM_H #include <machine/param.h> #endif #ifdef TW_HAVE_SYS_FILIO_H #include <sys/filio.h> #endif #ifdef TW_HAVE_SYS_SELECT_H #include <sys/select.h> #endif #ifdef TIME_WITH_SYS_TIME #include <sys/time.h> #endif #endif /* TWIN_OSINCLUDES_H */ ������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/socklist_m4.h��������������������������������������������������������������������0000664�0000000�0000000�00000004307�13775351206�0016545�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/socklist.m4, do not edit! * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* clang-format off */ #define OK_MAGIC ((uldat)0x3E4B4F3Cul) #define FAIL_MAGIC ((uldat)0xFFFFFFFFul) #define FIND_MAGIC ((uldat)0x646E6946ul) /* i.e. "Find" */ #define MSG_MAGIC ((uldat)0x2167734dul) /* i.e. "Msg!" */ EL(FindFunction) EL(SyncSocket) EL(ServerSizeof) EL(CanCompress) EL(DoCompress) EL(NeedResizeDisplay) EL(AttachHW) EL(DetachHW) EL(SetFontTranslation) EL(SetTRuneTranslation) EL(DeleteObj) EL(ChangeFieldObj) EL(CreateWidget) EL(RecursiveDeleteWidget) EL(MapWidget) EL(UnMapWidget) EL(SetXYWidget) EL(ResizeWidget) EL(ScrollWidget) EL(DrawWidget) EL(SetVisibleWidget) EL(FocusSubWidget) EL(FindWidgetAtWidget) EL(RaiseWidget) EL(LowerWidget) EL(RestackChildrenWidget) EL(CirculateChildrenWidget) EL(CreateGadget) EL(CreateButtonGadget) EL(WriteTextsGadget) EL(WriteTRunesGadget) EL(CreateWindow) EL(Create4MenuWindow) EL(WriteCharsetWindow) EL(WriteUtf8Window) EL(WriteTRuneWindow) EL(WriteTCellWindow) EL(GotoXYWindow) EL(SetTitleWindow) EL(SetColTextWindow) EL(SetColorsWindow) EL(ConfigureWindow) EL(FindRowByCodeWindow) EL(CreateGroup) EL(InsertGadgetGroup) EL(RemoveGadgetGroup) EL(GetSelectedGadgetGroup) EL(SetSelectedGadgetGroup) EL(RaiseRow) EL(LowerRow) EL(RestackChildrenRow) EL(CirculateChildrenRow) EL(Create4MenuAny) EL(Create4MenuCommonMenuItem) EL(CreateMenu) EL(SetInfoMenu) EL(CreateMsgPort) EL(FindMsgPort) EL(BgImageScreen) EL(PrevObj) EL(NextObj) EL(ParentObj) EL(FirstScreen) EL(FirstWidget) EL(FirstMsgPort) EL(FirstMenu) EL(FirstW) EL(FirstGroup) EL(FirstMutex) EL(FirstMenuItem) EL(FirstGadget) EL(GetDisplayWidth) EL(GetDisplayHeight) EL(GetAll) EL(SendToMsgPort) EL(BlindSendToMsgPort) EL(GetOwnerSelection) EL(SetOwnerSelection) EL(RequestSelection) EL(NotifySelection) EL(SetServerUid) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/�����������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014737�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/alloc.h����������������������������������������������������������������������0000664�0000000�0000000�00000001472�13775351206�0016206�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_ALLOC_H #define TWIN_STL_ALLOC_H #include <cstddef> // size_t void *AllocMem(size_t len); /* wrapper for malloc() */ void *ReAllocMem(void *addr, size_t len); /* wrapper for realloc() */ void FreeMem(void *addr); /* wrapper for free() */ void *AllocMem0(size_t len); /* wrapper for calloc() */ void *ReAllocMem0(void *mem, size_t old_len, size_t new_len); /* wrapper for realloc() + memset() */ #endif /* TWIN_STL_ALLOC_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/any.h������������������������������������������������������������������������0000664�0000000�0000000�00000004443�13775351206�0015704�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_ANY_H #define TWIN_STL_ANY_H #include <stddef.h> // size_t #include <string.h> // memcpy #include <assert.h> // can contain a value of arbitrary type T, with two constraints: // 1. T has trivial copy constructor and destructor // 2. sizeof(T) <= 2 * sizeof(size_t) class Any { public: typedef void (*TypeTag)(); template <class T> class Type { friend class Any; typedef char sizeof_T_less_eq_sizeof_Any_data[sizeof(T) <= 2 * sizeof(size_t) ? 1 : -1]; enum { check = sizeof(sizeof_T_less_eq_sizeof_Any_data) / sizeof(char) }; static void func() { } TypeTag func_; public: Type() : func_(func) { } operator TypeTag() const { return func_; } }; public: Any() : type_(NULL) { } template <class T> explicit Any(const T &value) { set<T>(value); } // Any(const Any &other) = default; // ~Any() = default; Any &operator=(const Any &other) { copy(other); return *this; } template <class T> Any &operator=(const T &value) { set<T>(value); return *this; } TypeTag type() const { return type_; } template <class T> bool is() const { return type_ == Type<T>(); } template <class T> bool get(T &result) const { if (is<T>()) { memcpy(reinterpret_cast<void *>(&result), raw_, sizeof(T)); return true; } return false; } template <class T> T &value() { assert(is<T>()); return *reinterpret_cast<T *>(raw_); } template <class T> const T &value() const { assert(is<T>()); return *reinterpret_cast<const T *>(raw_); } private: unsigned char raw_[2 * sizeof(size_t)]; TypeTag type_; template <class T> void set(const T &value) { memcpy(raw_, reinterpret_cast<const void *>(&value), sizeof(T) * Type<T>::check); memset(raw_ + sizeof(T), '\0', sizeof(raw_) - sizeof(T)); type_ = Type<T>(); } void copy(const Any &other) { memcpy(raw_, other.raw_, sizeof(raw_)); type_ = other.type_; } }; #endif /* TWIN_STL_ANY_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/attic/�����������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0016043�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/attic/type.h�����������������������������������������������������������������0000664�0000000�0000000�00000004073�13775351206�0017201�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_TYPE_H #define TWIN_STL_TYPE_H #include <stddef.h> // size_t #include <new> // placement new // --------------------------- TypeId -------------------------------- class TypeId { protected: struct Impl { void (*construct)(const void *src, void *dst); void (*destroy)(void *addr); size_t size; }; const Impl *impl; explicit TypeId(const Impl *ptr) : impl(ptr) { } ~TypeId() { } public: bool operator==(const TypeId &other) const { return impl == other.impl; } size_t size() const { return impl->size; } void construct(const void *src, void *dst) { impl->construct(src, dst); } void destroy(void *addr) { impl->destroy(addr); } void copy(const void *src, void *dst) { impl->destroy(dst); impl->construct(src, dst); } }; // --------------------------- Type<T> -------------------------------- template <class T = void> class Type : public TypeId { private: static const Impl *getImpl() { static Impl instance(construct_T, destroy_T, assign_T, sizeof(T)); return &instance; } static void construct_T(const void *src, void *dst) { new (dst) T(*reinterpret_cast<const T *>(src)); } static void destroy_T(void *addr) { reinterpret_cast<T *>(addr)->~T(); } public: Type() : TypeId(getImpl()) { } ~Type() { } }; // --------------------------- Type<void> -------------------------------- template <> class Type<void> : public TypeId { private: static const Impl *getImpl() { static Impl instance(construct_T, destroy_T, assign_T, 0); return &instance; } static void construct_T(const void *src, void *dst) { } static void destroy_T(void *addr) { } public: Type() : TypeId(getImpl()) { } ~Type() { } }; #endif /* TWIN_STL_TYPE_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/defs.h�����������������������������������������������������������������������0000664�0000000�0000000�00000001053�13775351206�0016030�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_DEFS_H #define TWIN_STL_DEFS_H #if defined(__cplusplus) && __cplusplus >= 201103L #define STL_CXX11 #define STL_CXX11_EXPLICIT explicit #else #undef STL_CXX11 #define STL_CXX11_EXPLICIT #endif #endif /* TWIN_STL_DEFS_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/err.h������������������������������������������������������������������������0000664�0000000�0000000�00000001244�13775351206�0015701�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * alloc.c -- wrappers around malloc() / realloc() / free() * * Copyright (C) 1999-2000,2016 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_ERR_H #define TWIN_STL_ERR_H typedef enum errnum_e { SUCCESS = 0, NOMEMORY = 1, NOTABLES = 2, DLERROR = 3, SYSERROR = 4, } errnum; extern errnum Err; extern const char *Errstr; bool Error(errnum err); // always returns false #endif /* TWIN_STL_ERR_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/fwd.h������������������������������������������������������������������������0000664�0000000�0000000�00000001012�13775351206�0015662�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_FWD_H #define TWIN_STL_FWD_H #include "stl/defs.h" template <class T> class Span; class String; template <class T> class Vector; template <class T> class View; #endif /* TWIN_STL_FWD_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/mem.h������������������������������������������������������������������������0000664�0000000�0000000�00000004601�13775351206�0015667�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_MEM_H #define TWIN_STL_MEM_H #include "stl/alloc.h" #include <string.h> // memcmp(), memcpy() namespace mem { template <class T> inline T *alloc(size_t n) { return reinterpret_cast<T *>(AllocMem(n * sizeof(T))); } template <class T> inline T *realloc(T *addr, size_t /*old_n*/, size_t new_n) { return reinterpret_cast<T *>(ReAllocMem(addr, new_n * sizeof(T))); } template <class T> inline void free(T *addr) { FreeMem(addr); } /* zero-initialize returned memory */ template <class T> inline T *alloc0(size_t n) { return reinterpret_cast<T *>(AllocMem0(n * sizeof(T))); } /* if new_n > old_n, zero-initialize additional memory */ template <class T> inline T *realloc0(T *addr, size_t old_n, size_t new_n) { return reinterpret_cast<T *>(ReAllocMem0(addr, old_n * sizeof(T), new_n * sizeof(T))); } template <class T> void rawswap(T &a, T &b) { const T temp(a); a = b; b = temp; } template <class T1, class T2> inline bool equalvec(const T1 *left, size_t left_n, const T2 *right, size_t right_n) { typedef char sizeof_T1_equals_sizeof_T2[sizeof(T1) == sizeof(T2) ? sizeof(T2) : -1]; const void *left_v = static_cast<const void *>(left); const void *right_v = static_cast<const void *>(right); return sizeof(T1) == sizeof(T2) && left_n == right_n && (left_v == right_v || !memcmp(left_v, right_v, right_n * sizeof(sizeof_T1_equals_sizeof_T2) / sizeof(char))); } template <class Vec1, class Vec2> inline bool equalvec(const Vec1 &left, const Vec2 &right) { return equalvec(left.data(), left.size(), right.data(), right.size()); } template <class T1, class T2> void copyvec(const T1 *src, size_t src_n, T2 *dst, size_t dst_n) { typedef char sizeof_T1_equals_sizeof_T2[sizeof(T1) == sizeof(T2) ? sizeof(T2) : -1]; memmove(static_cast<void *>(dst), static_cast<const void *>(src), dst_n * sizeof(sizeof_T1_equals_sizeof_T2) / sizeof(char)); } template <class Vec1, class Vec2> inline void copyvec(const Vec1 &src, Vec2 &dst) { copyvec(src.data(), src.size(), dst.data(), dst.size()); } } // namespace mem #endif /* TWIN_STL_ALLOC_H */ �������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/span.h�����������������������������������������������������������������������0000664�0000000�0000000�00000004622�13775351206�0016055�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_SPAN_H #define TWIN_STL_SPAN_H #include "stl/view.h" /** read-write span of T[] */ template <class T> class Span : protected View<T> { private: typedef View<T> Base; protected: using Base::data_; using Base::size_; public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef T value_type; typedef T &reference; typedef T *pointer; typedef T *iterator; typedef const T &const_reference; typedef const T *const_pointer; typedef const T *const_iterator; Span() : Base() { } template <size_t N> Span(T (&addr)[N]) : Base(addr, N - 1) { } Span(T *addr, size_t n) : Base(addr, n) { } Span(Vector<T> &other) : Base(other) { } // Span(const Span&) = default; // ~Span() = default; // operator=(const Span&) = default; Span &operator=(Vector<T> &other) { ref(other); return *this; } using Base::begin; using Base::capacity; using Base::data; using Base::empty; using Base::end; using Base::operator==; using Base::operator[]; using Base::operator bool; using Base::size; using Base::view; T *data() { return const_cast<T *>(data_); } T &operator[](size_t index) { assert(index < size_); return data()[index]; } void ref(T *addr, size_t n) { data_ = addr; size_ = n; } void ref(Span &other) { data_ = other.data_; size_ = other.size_; } void ref(Vector<T> &other); T *begin() { return data(); } T *end() { assert(data_ || !size_); return data() + size_; } Span<T> span(size_t start, size_t end) { assert(start <= end); assert(end <= size()); return Span<T>(data() + start, end - start); } void copy(View<T> src) { assert(src.size() == size()); mem::copyvec(src, *this); } void swap(Span &other) { Span temp = *this; *this = other; other = temp; } }; template <class T> void View<T>::ref(const Span<T> &other) { data_ = other.data(); size_ = other.size(); } template <class T> void swap(Span<T> &left, Span<T> &right) { left.swap(right); } typedef Span<char> CharSpan; #endif /* TWIN_STL_SPAN_H */ ��������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/string.h���������������������������������������������������������������������0000664�0000000�0000000�00000003573�13775351206�0016426�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_STRING_H #define TWIN_STL_STRING_H #include "stl/vector.h" #include "stl/utf8.h" class String : public Vector<char> { private: typedef char T; typedef Vector<T> Base; // do not implement. reason: any allocation failure would not be visible String &operator=(const String &other); // = delete; public: String() : Base() { } String(const T *addr, size_t n) : Base(addr, n) { } // all one-argument constructors are explicit because they allocate, // thus they mail fail => we require users to explicitly invoke them. explicit String(size_t n) : Base(n) { } template <size_t N> explicit String(const T (&cstr)[N]) : Base(cstr, N - 1) { } explicit String(const View<T> &other) : Base(other) { } explicit String(const Span<T> &other) : Base(other) { } explicit String(const Vector<T> &other) : Base(other) { } String(const String &other) : Base(other) { } // ~String() = default; using Base::append; bool append(Utf8 seq) { return append(Chars(seq.data(), seq.size())); } // convert UTF-32 runes to UTF-8 and append them to this string bool append(View<trune> runes); bool operator+=(char ch) { return append(ch); } bool operator+=(Utf8 seq) { return append(seq); } bool operator+=(Chars other) { return append(other); } // convert UTF-32 runes to UTF-8 and append them to this string bool operator+=(View<trune> runes) { return append(runes); } }; inline void swap(String &left, String &right) { // invoke Vector<char>::swap() left.swap(right); } #endif /* TWIN_STL_STRING_H */ �������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/utf8.h�����������������������������������������������������������������������0000664�0000000�0000000�00000003225�13775351206�0016000�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_UTF8_H #define TWIN_STL_UTF8_H #include <stddef.h> // size_t #include <stdint.h> // uint32_t typedef uint32_t trune; template <class T> class View; class Utf8 { private: union seq { char b[4]; uint32_t val; } u; static bool valid(seq x); static trune to_rune(seq x); static size_t to_size(seq x); static seq to_utf8(trune rune); static bool less(seq x, seq y); explicit Utf8(seq x) { u.val = x.val; } public: Utf8() { u.val = 0; } Utf8(const Utf8 &other) { u.val = other.u.val; } // convert Unicode codepoint 'rune' from UTF-32 to UTF-8 explicit Utf8(trune rune) { u.val = to_utf8(rune).val; } // parse UTF-8 sequence from chars bool parse(View<char> chars, View<char> *remaining = NULL); trune rune() const { return to_rune(u); } //! @return length of UTF-8 byte sequence size_t size() const { return to_size(u); } //! @return pointer to UTF-8 byte sequence const char *data() const { return u.b; } //! @return view on UTF-8 byte sequence View<char> chars() const; Utf8 &operator=(const Utf8 &other) { u.val = other.u.val; return *this; } bool operator==(const Utf8 &other) const { return u.val == other.u.val; } bool operator<(const Utf8 &other) const { return less(u, other.u); } }; #endif /* TWIN_STL_UTF8_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/vector.h���������������������������������������������������������������������0000664�0000000�0000000�00000011326�13775351206�0016415�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_VECTOR_H #define TWIN_STL_VECTOR_H #include "stl/span.h" #include "stl/mem.h" #include <cstring> // memset() // dynamically resizeable vector of arbitrary type T, with two constraints: // 1. T must have trivial copy constructor, destructor and assignment operator // 2. zero-initializing T must be equivalent to T default constructor template <class T> class Vector : protected Span<T> { private: typedef Span<T> Base; // do not implement. reason: any allocation failure would not be visible Vector<T> &operator=(const Vector<T> &other); // = delete; protected: using Base::data_; using Base::size_; size_t cap_; bool init(size_t n) { data_ = mem::alloc<T>(n); if (n && !data_) { // mem::alloc() failed data_ = NULL; cap_ = size_ = 0; return false; } cap_ = size_ = n; return true; } void destroy() { if (data_ != NULL) { mem::free(data()); } } bool ensure_capacity(size_t n) { if (cap_ >= n) { return true; } const size_t cap2 = cap_ >= 10 ? cap_ * 2 : 10; return reserve(n >= cap2 ? n : cap2); } bool resize0(size_t n, bool zerofill) { if (!ensure_capacity(n)) { return false; } if (n > size_) { memset(data() + size_, '\0', (n - size_) * sizeof(T)); } size_ = n; return true; } public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef T value_type; typedef T &reference; typedef T *pointer; typedef T *iterator; typedef const T &const_reference; typedef const T *const_pointer; typedef const T *const_iterator; Vector() : Base(), cap_(0) { } Vector(const T *addr, size_t n) : Base(), cap_(0) { dup(addr, n); } // all one-argument constructors are explicit because they allocate, // thus they mail fail => we require users to explicitly invoke them. explicit Vector(size_t n) : Base(), cap_(0) { init(n); } template <size_t N> explicit Vector(const T (&addr)[N]) : Base(), cap_(0) { dup(addr, N - 1); } explicit Vector(const View<T> &other) : Base(), cap_(0) { dup(other.data(), other.size()); } explicit Vector(const Span<T> &other) : Base(), cap_(0) { dup(other.data(), other.size()); } explicit Vector(const Vector &other) : Base(), cap_(0) { dup(other.data(), other.size()); } ~Vector() { destroy(); } template <class VEC> bool operator==(const VEC &other) { return mem::equalvec(*this, other); } bool fail() const { return data_ == NULL; } size_t capacity() const { return cap_; } using Base::begin; using Base::copy; using Base::data; using Base::empty; using Base::end; using Base::operator[]; using Base::operator bool; using Base::operator==; using Base::size; using Base::span; using Base::view; bool dup(const T *addr, size_t n) { if (!ensure_capacity(n)) { return false; } memcpy(data(), addr, n * sizeof(T)); size_ = n; return true; } bool dup(const View<T> &other) { return dup(other.data(), other.size()); } bool dup(const Span<T> &other) { return dup(other.data(), other.size()); } bool dup(const Vector &other) { return dup(other.data(), other.size()); } void clear() { (void)resize(0); } bool resize(size_t n) { return resize0(n, true); } bool reserve(size_t newcap) { if (newcap > cap_) { T *olddata = fail() ? (T *)0 : data(); T *newdata = mem::realloc(olddata, cap_, newcap); if (!newdata) { if (cap_ == 0) { data_ = NULL; } return false; } data_ = newdata; cap_ = newcap; } return true; } bool append(const T &src) { return append(View<T>(&src, 1)); } bool append(View<T> src) { const size_t oldn = size_; const size_t srcn = src.size(); if (!resize0(oldn + srcn, false)) { return false; } span(oldn, size()).copy(src); return true; } void swap(Vector &other) { mem::rawswap(data_, other.data_); mem::rawswap(size_, other.size_); mem::rawswap(cap_, other.cap_); } }; template <class T> void View<T>::ref(const Vector<T> &other) { data_ = other.data(); size_ = other.size(); } template <class T> void Span<T>::ref(Vector<T> &other) { data_ = other.data(); size_ = other.size(); } template <class T> void swap(Vector<T> &left, Vector<T> &right) { left.swap(right); } typedef Vector<char> CharVec; #endif /* TWIN_STL_VECTOR_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/stl/view.h�����������������������������������������������������������������������0000664�0000000�0000000�00000005203�13775351206�0016062�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_STL_VIEW_H #define TWIN_STL_VIEW_H #include "stl/fwd.h" #include "stl/defs.h" // STL_CXX11_EXPLICIT #include "stl/mem.h" #include <stddef.h> // size_t #include <assert.h> /** read-only view of T[] */ template <class T> class View { protected: const T *data_; size_t size_; public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef const T value_type; typedef const T &reference; typedef const T *pointer; typedef const T *iterator; typedef const T &const_reference; typedef const T *const_pointer; typedef const T *const_iterator; View() : data_(NULL), size_(0) { } template <size_t N> View(const T (&addr)[N]) : data_(addr), size_(N - 1) { } View(const T *addr, size_t n) : data_(addr), size_(n) { } View(const Span<T> &other) { ref(other); } View(const Vector<T> &other) { ref(other); } // View(const View&) = default; // ~View() = default; // operator=(const View&) = default; View &operator=(const Span<T> &other) { ref(other); return *this; } View &operator=(const Vector<T> &other) { ref(other); return *this; } size_t capacity() const { return size_; } size_t size() const { return size_; } const T *data() const { return data_; } const T &operator[](size_t index) const { assert(index < size_); return data_[index]; } STL_CXX11_EXPLICIT operator bool() const { return size_ != 0; } bool empty() const { return size_ == 0; } template <class VEC> bool operator==(const VEC &other) const { return mem::equalvec(*this, other); } void ref(const T *addr, size_t n) { data_ = addr; size_ = n; } void ref(const View<T> &other) { data_ = other.data_; size_ = other.size_; } void ref(const Span<T> &other); void ref(const Vector<T> &other); const T *begin() const { return data_; } const T *end() const { assert(data_ || !size_); return data_ + size_; } View view(size_t start, size_t end) const { assert(start <= end); assert(end <= size_); return View(data_ + start, end - start); } void swap(View &other) { View temp = *this; *this = other; other = temp; } }; template <class T> void swap(View<T> &left, View<T> &right) { left.swap(right); } typedef View<char> Chars; #endif /* TWIN_STL_VIEW_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/tty_ioctl.h����������������������������������������������������������������������0000664�0000000�0000000�00000001726�13775351206�0016326�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. */ #ifndef TWIN_TTY_IOCTL_H #define TWIN_TTY_IOCTL_H #ifndef TWAUTOCONF_H #include "twautoconf.h" #endif #if defined(TW_HAVE_TERMIOS_H) #include <termios.h> #elif defined(TW_HAVE_TERMIO_H) #include <termio.h> #endif #ifdef TW_HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif #ifdef TCSETS #define tty_setioctl(tty_fd, ttyb) ioctl((tty_fd), TCSETS, (ttyb)) #define tty_getioctl(tty_fd, ttyb) ioctl((tty_fd), TCGETS, (ttyb)) #else #ifdef TCSANOW #define tty_setioctl(tty_fd, ttyb) tcsetattr((tty_fd), TCSANOW, (ttyb)) #define tty_getioctl(tty_fd, ttyb) tcgetattr((tty_fd), (ttyb)) #else #error TCSETS and TCSANOW both undefined. #endif #endif #endif /* TWIN_TTY_IOCTL_H */ ������������������������������������������twin-0.9.0/include/twfixconfig.h��������������������������������������������������������������������0000664�0000000�0000000�00000000663�13775351206�0016642�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * twfixconfig.h -- cleanup configuration * * Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. */ #ifndef TWFIXCONFIG_H #define TWFIXCONFIG_H #endif /* TWFIXCONFIG_H */ �����������������������������������������������������������������������������twin-0.9.0/include/unaligned.h����������������������������������������������������������������������0000664�0000000�0000000�00000003215�13775351206�0016255�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. */ #ifndef TWIN_UNALIGNED_H #define TWIN_UNALIGNED_H #include <string.h> // memcpy() #define PopV(s, len, vec) (memcpy(vec, s, len), (s) += (len)) #define PopAddr(s, type, len, ptr) ((ptr) = (len) ? (type *)(s) : (type *)0, (s) += (len)) #define PushV(s, len, vec) (memcpy(s, vec, len), (s) += (len)) #ifdef __cplusplus template <class T> inline byte *Pop(const byte *src, T &val) { memcpy(&val, src, sizeof(T)); return const_cast<byte *>(src) + sizeof(T); } template <class T> inline char *Pop(const char *src, T &val) { memcpy(&val, src, sizeof(T)); return const_cast<char *>(src) + sizeof(T); } template <class T> inline byte *Push(byte *dst, T val) { memcpy(dst, &val, sizeof(T)); return dst + sizeof(T); } #define Pop(s, type, lval) ((s) = Pop<type>(s, lval)) #define Push(s, type, val) ((s) = Push<type>(s, val)) #else /* not C++ */ #define Pop(s, type, lval) PopV(s, sizeof(type), &(lval)) #define Push(s, type, val) \ do { \ type __tmp = (val); \ PushV(s, sizeof(type), &__tmp); \ } while (0) #endif #endif /* TWIN_UNALIGNED_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/include/version.h.in���������������������������������������������������������������������0000664�0000000�0000000�00000002103�13775351206�0016374�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. */ #ifndef TWIN_VERSION_H #define TWIN_VERSION_H /* clang-format off */ #if !defined(TW_CAT) #define TW__CAT(a, b) a##b #define TW_CAT(a, b) TW__CAT(a, b) #endif #if !defined(TW_STR) #define TW__STR(s) #s #define TW_STR(s) TW__STR(s) #endif #define TWIN_VERSION_MAJOR @PACKAGE_VERSION_MAJOR@ #define TWIN_VERSION_MINOR @PACKAGE_VERSION_MINOR@ #define TWIN_VERSION_PATCH @PACKAGE_VERSION_PATCH@ #define TWIN_VERSION ((TWIN_VERSION_MAJOR << 16) | (TWIN_VERSION_MINOR << 8) | TWIN_VERSION_PATCH) #define TWIN_VERSION_STR \ TW_STR(TWIN_VERSION_MAJOR) "." TW_STR(TWIN_VERSION_MINOR) "." TW_STR(TWIN_VERSION_PATCH) #define TWIN_VERSION_EXTRA_STR TW_STR(@PACKAGE_VERSION_EXTRA@) #endif /* TWIN_VERSION_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/������������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0013443�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/Makefile.am�������������������������������������������������������������������������0000664�0000000�0000000�00000000102�13775351206�0015470�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������SUBDIRS = $(SUBDIR_LIBLTDL) libtstl libtutf libtw $(SUBDIR_LIBTT) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/Makefile.in�������������������������������������������������������������������������0000664�0000000�0000000�00000047411�13775351206�0015517�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = $(SUBDIR_LIBLTDL) libtstl libtutf libtw $(SUBDIR_LIBTT) all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libs/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libs/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014461�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/���������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014777�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/Makefile.am����������������������������������������������������������������0000664�0000000�0000000�00000000000�13775351206�0017021�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/X11_c����������������������������������������������������������������������0000664�0000000�0000000�00000022412�13775351206�0015576�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is `X11_c' and is preprocessed by m4 to produce `X11_m4.c' * * It must be a valid m4 file, and must produce a valid C include file. * */ #include <X11/X.h> #include <X11/Xlib.h> #include <X11/Xatom.h> #include <X11/Xutil.h> DECL_BEFORE /* * We need to write down only overloaded methods. */ #define XNUMCOL 16 static Display *dpy; static Window root; static int xwfont, xhfont, xupfont; static int screen; static int depth; static Colormap colormap; static unsigned long xcol[XNUMCOL]; static XFontStruct *xsfont; static GC xgc; static XGCValues xsgc; static Atom xWM_PROTOCOLS, xWM_DELETE_WINDOW, xTARGETS; static XSizeHints xhints; static Tutf_function xUTF_16_to_charset; #if 0 static ttbyte exitmainloop; #endif static ttfont X11_UTF_16_to_UTF_16(ttfont c) { if ((c & 0xFE00) == 0xF000) /* direct-to-font zone */ c &= 0x01FF; return c; } /* this can stay static, X11_FlushHW() is not reentrant */ static ttcol _col; # define XDRAW(col, buf, buflen) \ if (xsgc.foreground != xcol[TCOLFG(col)]) \ XSetForeground(dpy, xgc, xsgc.foreground = xcol[TCOLFG(col)]); \ if (xsgc.background != xcol[TCOLBG(col)]) \ XSetBackground(dpy, xgc, xsgc.background = xcol[TCOLBG(col)]); \ XDrawImageString16(dpy, w, xgc, xbegin, ybegin + xupfont, buf, buflen) TT_INLINE void X11_Mogrify(Window w, ttshort x, ttshort y, ttattr *Text, ttattr *OldText, ttuint len, ttbyte ValidOldText) { ttattr *V, *oV; ttcol col; ttushort buflen = 0; ttfont f; XChar2b buf[TT_SMALLBUFF]; int xbegin = x * xwfont, ybegin = y * xhfont; V = Text; oV = OldText; for (_col = ~TCOLOR(*V); len; x++, V++, oV++, len--) { col = TCOLOR(*V); if (buflen && (col != _col || (ValidOldText && *V == *oV) || buflen == TT_SMALLBUFF)) { XDRAW(_col, buf, buflen); buflen = 0; } if (!ValidOldText || *V != *oV) { if (!buflen) { xbegin = x * xwfont; _col = col; } f = xUTF_16_to_charset(TRUNE(*V)); buf[buflen ].byte1 = f >> 8; buf[buflen++].byte2 = f & 0xFF; } } if (buflen) { XDRAW(_col, buf, buflen); buflen = 0; } } /* ttobj */ /* ttobject */ static BREAK(ttobject) { if (o) { if (o->native) { XDestroyWindow(dpy, (Window)o->native); o->native = (opaque)0; } } } /* ttnative */ static ttnative DEF(GetRoot_ttnative)(void) { return Create_ttnative(root); } static BREAK(ttnative) { o->native = TT_NOID; FNDEFAULT(ttnative)->Break(o); } /* ttwidget */ static BUILD(ttwidget) { if ((o->native = (opaque)XCreateSimpleWindow (dpy, root, o->x * xwfont, o->y * xhfont, o->w * xwfont, o->h * xhfont, 0, 0, xcol[o->col]))) { return o; } return NULL; } static void DEF(AddTo_ttwidget)(ttwidget o, ttvisible parent, ttany constraints) { if (parent && !o->parent) { FNDEFAULT(ttwidget)->AddTo(o, parent, constraints); XReparentWindow(dpy, (Window)o->native, (Window)parent->native, o->x * xwfont, o->y * xhfont); if (o->vflags & ttvisible_vflags_visible) XMapWindow(dpy, (Window)o->native); } } static void DEF(SetVisible_ttwidget)(ttwidget o, ttbyte on_off) { if (!on_off != !(o->vflags & ttvisible_vflags_visible)) { o->vflags ^= ttvisible_vflags_visible; if (o->parent && on_off) XMapWindow(dpy, (Window)o->native); else XUnmapWindow(dpy, (Window)o->native); } } static void DEF(Remove_ttwidget)(ttwidget o) { if (o->parent) { FNDEFAULT(ttwidget)->Remove(o); XUnmapWindow(dpy, (Window)o->native); } } /* ttframe */ static BUILD(ttframe) { /* ttframe are non-visible when created */ o->vflags &= ~ttvisible_vflags_visible; if (FNDEFAULT(ttframe)->Build(o)) { XChangeProperty(dpy, (Window)o->native, xWM_PROTOCOLS, XA_ATOM, 32, PropModeReplace, (unsigned char *) &xWM_DELETE_WINDOW, 1); XSetWMNormalHints(dpy, (Window)o->native, &xhints); o->Class->AddTo(o, (ttvisible)TClass(ttnative)->GetRoot(), ttlayout_constraint_root); return o; } return NULL; } static ttbyte X11_FireEvent(XEvent *ev) { /* FIXME: finish this */ return TRUE; } static ttbyte HWDEF(Sync)(void) { return XSync(dpy, False); } static ttbyte HWDEF(Flush)(void) { return XFlush(dpy); } static ttbyte HWDEF(TimidFlush)(void) { return XFlush(dpy); } #if 0 static ttbyte HWDEF(MainLoop)(void) { XEvent ev; while (!exitmainloop && XNextEvent(dpy, &ev)) { if (!X11_FireEvent(&ev)) break; } exitmainloop = FALSE; return 1; } static void HWDEF(ExitMainLoop)(void) { exitmainloop = TT_TRUE; } #endif static ttbyte HWDEF(MainLoopOnce)(ttbyte wait) { XEvent ev; do { if (wait || XEventsQueued(dpy, QueuedAfterFlush)) { XNextEvent(dpy, &ev); X11_FireEvent(&ev); } } while (XEventsQueued(dpy, QueuedAlready)); return 1; } static void HWDEF(DeleteCallback)(ttcallback o) { } static void HWDEF(Close)(void) { XCloseDisplay(dpy); dpy = NULL; } static int HWDEF(ConnectionFd)(void) { return XConnectionNumber(dpy); } static ttuint HWDEF(GetErrno)(void) { return 0; } static ttuint HWDEF(GetErrnoDetail)(void) { return 0; } static TT_CONST ttbyte *HWDEF(StrError)(ttuint E) { switch (E) { } return ""; } static TT_CONST ttbyte *HWDEF(StrErrorDetail)(ttuint E, ttuint S) { return ""; } static Tutf_function X11_UTF_16_to_charset_function(TT_CONST ttbyte *charset) { XFontProp *fp; Atom fontatom; TT_CONST ttbyte *s, *fontname = NULL; ttuint i; if (!charset) { /* attempt to autodetect encoding. */ fp = xsfont->properties; fontatom = XInternAtom (dpy, "FONT", False); i = xsfont->n_properties; while (i--) { if (fp->name == fontatom) { fontname = XGetAtomName(dpy, fp->card32); /*fprintf(stderr, " X11_UTF_16_to...: font name: `%s\'\n", fontname);*/ break; } fp++; } if (fontname && !strcmp(fontname, "vga")) { charset = T_NAME_CP437; } else if (fontname) { i = 2; for (s = fontname + strlen(fontname) - 1; i && s >= fontname; s--) { if (*s == '-') i--; } if (!i) charset = s + 2; /* skip current char and '-' */ } if (!charset) { if (xsfont->min_byte1 < xsfont->max_byte1) { /* font is more than just 8-bit. For now, assume it's unicode */ /* printk(" _TT_X11_Init: font `%."TTSB"s\' has no known charset encoding,\n" " assuming Unicode.\n", fontname); */ return NULL; } /* else assume codepage437. gross. */ /* printk(" _TT_X11_Init: font `%."TTSB"s\' has no known charset encoding,\n" " assuming CP437 codepage (\"VGA\").\n", fontname); */ return Tutf_UTF_16_to_CP437; } } i = Tutf_charset_id(charset); s = Tutf_charset_name(i); if (s && !strcmp(s, T_NAME_UTF_16)) { /* this is an Unicode font. good. */ return NULL; } if (i == (ttuint)-1) { /* printk(" X11_InitHW(): libtutf warning: unknown charset `%."TTSB"s', assuming `CP437'\n", charset); */ return Tutf_UTF_16_to_CP437; } return Tutf_UTF_16_to_charset_function(i); } #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_X11_InitHW(tthw *HW) #endif { XColor xcolor; ttuint i; TT_CONST ttbyte *fontname = NULL, *charset = NULL; /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = &X11_TTClasses.HW; do if ((dpy = XOpenDisplay(NULL))) { root = DefaultRootWindow(dpy); screen = DefaultScreen(dpy); depth = DefaultDepth(dpy, screen); colormap = DefaultColormap(dpy, screen); for (i = 0; i < XNUMCOL; i++) { xcolor.red = 0x5555 * ((i & 4 ? 2 : 0) | (i & 8 ? 1 : 0)); xcolor.green = 0x5555 * ((i & 2 ? 2 : 0) | (i & 8 ? 1 : 0)); xcolor.blue = 0x5555 * ((i & 1 ? 2 : 0) | (i & 8 ? 1 : 0)); if (!XAllocColor(dpy, colormap, &xcolor)) { break; } xcol[i] = xcolor.pixel; } if (i < XNUMCOL) break; if (((fontname && (xsfont = XLoadQueryFont(dpy, fontname))) || (xsfont = XLoadQueryFont(dpy, "vga")) || (xsfont = XLoadQueryFont(dpy, "fixed")))) { xwfont = xsfont->min_bounds.width; xhfont = (xupfont = xsfont->ascent) + xsfont->descent; xsgc.foreground = xsgc.background = xcol[0]; xsgc.graphics_exposures = False; xsgc.font = xsfont->fid; if ((xgc = XCreateGC(dpy, root, GCFont|GCForeground|GCBackground| GCGraphicsExposures, &xsgc))) { /* * ask ICCCM-compliant window manager to tell us when close window * has been chosen, rather than just killing us */ xWM_PROTOCOLS = XInternAtom(dpy, "WM_PROTOCOLS", False); xWM_DELETE_WINDOW = XInternAtom(dpy, "WM_DELETE_WINDOW", False); xTARGETS = XInternAtom(dpy, "TARGETS", False); xhints.flags = PResizeInc; xhints.width_inc = xwfont; xhints.height_inc = xhfont; if (!(xUTF_16_to_charset = X11_UTF_16_to_charset_function(charset))) xUTF_16_to_charset = X11_UTF_16_to_UTF_16; return &X11_TTClasses; } } } while (0); if (dpy) X11_Close(); /*FAIL(, ); */ return (ttclasses)0; } DECL_AFTER ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/X11_m4.c�������������������������������������������������������������������0000664�0000000�0000000�00000170774�13775351206�0016134�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from X11_c by m4/hw.m4h, do not edit! */ /* * X11_m4.c -- implementation of libTT methods on "X11" target display * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is X11_c and is preprocessed by m4 to produce X11_m4.c * * It must be a valid m4 file, and must produce a valid C include file. * */ #include <X11/X.h> #include <X11/Xlib.h> #include <X11/Xatom.h> #include <X11/Xutil.h> /* order is crucial here! */ #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #endif /* include our internal copy of TT.h instead of the public one */ #include "TT.h" #include <TT/TTerrno.h> #include "mutex.h" #include "TTextern.h" #include "TTassert.h" #include "utils.h" #include "inlines.h" #include "seterrno.h" #include "theme.h" #include "common_m4.h" static s_ttclasses X11_TTClasses; /* * We need to write down only overloaded methods. */ #define XNUMCOL 16 static Display *dpy; static Window root; static int xwfont, xhfont, xupfont; static int screen; static int depth; static Colormap colormap; static unsigned long xcol[XNUMCOL]; static XFontStruct *xsfont; static GC xgc; static XGCValues xsgc; static Atom xWM_PROTOCOLS, xWM_DELETE_WINDOW, xTARGETS; static XSizeHints xhints; static Tutf_function xUTF_16_to_charset; #if 0 static ttbyte exitmainloop; #endif static ttfont X11_UTF_16_to_UTF_16(ttfont c) { if ((c & 0xFE00) == 0xF000) /* direct-to-font zone */ c &= 0x01FF; return c; } /* this can stay static, X11_FlushHW() is not reentrant */ static ttcol _col; #define XDRAW(col, buf, buflen) \ if (xsgc.foreground != xcol[TCOLFG(col)]) \ XSetForeground(dpy, xgc, xsgc.foreground = xcol[TCOLFG(col)]); \ if (xsgc.background != xcol[TCOLBG(col)]) \ XSetBackground(dpy, xgc, xsgc.background = xcol[TCOLBG(col)]); \ XDrawImageString16(dpy, w, xgc, xbegin, ybegin + xupfont, buf, buflen) TT_INLINE void X11_Mogrify(Window w, ttshort x, ttshort y, ttattr *Text, ttattr *OldText, ttuint len, ttbyte ValidOldText) { ttattr *V, *oV; ttcol col; ttushort buflen = 0; ttfont f; XChar2b buf[TT_SMALLBUFF]; int xbegin = x * xwfont, ybegin = y * xhfont; V = Text; oV = OldText; for (_col = ~TCOLOR(*V); len; x++, V++, oV++, len--) { col = TCOLOR(*V); if (buflen && (col != _col || (ValidOldText && *V == *oV) || buflen == TT_SMALLBUFF)) { XDRAW(_col, buf, buflen); buflen = 0; } if (!ValidOldText || *V != *oV) { if (!buflen) { xbegin = x * xwfont; _col = col; } f = xUTF_16_to_charset(TRUNE(*V)); buf[buflen].byte1 = f >> 8; buf[buflen++].byte2 = f & 0xFF; } } if (buflen) { XDRAW(_col, buf, buflen); buflen = 0; } } /* ttobj */ /* ttobject */ static void X11_Break_ttobject(ttobject o) { if (o) { if (o->native) { XDestroyWindow(dpy, (Window)o->native); o->native = (opaque)0; } } } /* ttnative */ static ttnative X11_GetRoot_ttnative(void) { return Create_ttnative(root); } static void X11_Break_ttnative(ttnative o) { o->native = TT_NOID; TClass_default(ttnative)->Break(o); } /* ttwidget */ static ttwidget X11_Build_ttwidget(ttwidget o) { if ((o->native = (opaque)XCreateSimpleWindow(dpy, root, o->x * xwfont, o->y * xhfont, o->w * xwfont, o->h * xhfont, 0, 0, xcol[o->col]))) { return o; } return NULL; } static void X11_AddTo_ttwidget(ttwidget o, ttvisible parent, ttany constraints) { if (parent && !o->parent) { TClass_default(ttwidget)->AddTo(o, parent, constraints); XReparentWindow(dpy, (Window)o->native, (Window)parent->native, o->x * xwfont, o->y * xhfont); if (o->vflags & ttvisible_vflags_visible) XMapWindow(dpy, (Window)o->native); } } static void X11_SetVisible_ttwidget(ttwidget o, ttbyte on_off) { if (!on_off != !(o->vflags & ttvisible_vflags_visible)) { o->vflags ^= ttvisible_vflags_visible; if (o->parent && on_off) XMapWindow(dpy, (Window)o->native); else XUnmapWindow(dpy, (Window)o->native); } } static void X11_Remove_ttwidget(ttwidget o) { if (o->parent) { TClass_default(ttwidget)->Remove(o); XUnmapWindow(dpy, (Window)o->native); } } /* ttframe */ static ttframe X11_Build_ttframe(ttframe o) { /* ttframe are non-visible when created */ o->vflags &= ~ttvisible_vflags_visible; if (TClass_default(ttframe)->Build(o)) { XChangeProperty(dpy, (Window)o->native, xWM_PROTOCOLS, XA_ATOM, 32, PropModeReplace, (unsigned char *)&xWM_DELETE_WINDOW, 1); XSetWMNormalHints(dpy, (Window)o->native, &xhints); o->Class->AddTo(o, (ttvisible)TClass(ttnative)->GetRoot(), ttlayout_constraint_root); return o; } return NULL; } static ttbyte X11_FireEvent(XEvent *ev) { /* FIXME: finish this */ return ttrue; } static ttbyte X11_Sync(void) { return XSync(dpy, False); } static ttbyte X11_Flush(void) { return XFlush(dpy); } static ttbyte X11_TimidFlush(void) { return XFlush(dpy); } #if 0 static ttbyte X11_MainLoop(void) { XEvent ev; while (!exitmainloop && XNextEvent(dpy, &ev)) { if (!X11_FireEvent(&ev)) break; } exitmainloop = tfalse; return 1; } static void X11_ExitMainLoop(void) { exitmainloop = TT_TRUE; } #endif static ttbyte X11_MainLoopOnce(ttbyte wait) { XEvent ev; do { if (wait || XEventsQueued(dpy, QueuedAfterFlush)) { XNextEvent(dpy, &ev); X11_FireEvent(&ev); } } while (XEventsQueued(dpy, QueuedAlready)); return 1; } static void X11_DeleteCallback(ttcallback o) { } static void X11_Close(void) { XCloseDisplay(dpy); dpy = NULL; } static int X11_ConnectionFd(void) { return XConnectionNumber(dpy); } static ttuint X11_GetErrno(void) { return 0; } static ttuint X11_GetErrnoDetail(void) { return 0; } static TT_CONST ttbyte *X11_StrError(ttuint E) { switch (E) {} return ""; } static TT_CONST ttbyte *X11_StrErrorDetail(ttuint E, ttuint S) { return ""; } static Tutf_function X11_UTF_16_to_charset_function(TT_CONST ttbyte *charset) { XFontProp *fp; Atom fontatom; TT_CONST ttbyte *s, *fontname = NULL; ttuint i; if (!charset) { /* attempt to autodetect encoding. */ fp = xsfont->properties; fontatom = XInternAtom(dpy, "FONT", False); i = xsfont->n_properties; while (i--) { if (fp->name == fontatom) { fontname = XGetAtomName(dpy, fp->card32); /*fprintf(stderr, " X11_UTF_16_to...: font name: %s\\n", fontname);*/ break; } fp++; } if (fontname && !strcmp(fontname, "vga")) { charset = T_NAME_CP437; } else if (fontname) { i = 2; for (s = fontname + strlen(fontname) - 1; i && s >= fontname; s--) { if (*s == '-') i--; } if (!i) charset = s + 2; /* skip current char and '-' */ } if (!charset) { if (xsfont->min_byte1 < xsfont->max_byte1) { /* font is more than just 8-bit. For now, assume it's unicode */ /* printk(" _TT_X11_Init: font %."TTSB"s\ has no known charset encoding,\n" " assuming Unicode.\n", fontname); */ return NULL; } /* else assume codepage437. gross. */ /* printk(" _TT_X11_Init: font %."TTSB"s\ has no known charset encoding,\n" " assuming CP437 codepage (\"VGA\").\n", fontname); */ return Tutf_UTF_16_to_CP437; } } i = Tutf_charset_id(charset); s = Tutf_charset_name(i); if (s && !strcmp(s, T_NAME_UTF_16)) { /* this is an Unicode font. good. */ return NULL; } if (i == (ttuint)-1) { /* printk(" X11_InitHW(): libtutf warning: unknown charset %."TTSB"s, assuming CP437\n", charset); */ return Tutf_UTF_16_to_CP437; } return Tutf_UTF_16_to_charset_function(i); } #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_X11_InitHW(tthw *HW) #endif { XColor xcolor; ttuint i; TT_CONST ttbyte *fontname = NULL, *charset = NULL; /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = &X11_TTClasses.HW; do if ((dpy = XOpenDisplay(NULL))) { root = DefaultRootWindow(dpy); screen = DefaultScreen(dpy); depth = DefaultDepth(dpy, screen); colormap = DefaultColormap(dpy, screen); for (i = 0; i < XNUMCOL; i++) { xcolor.red = 0x5555 * ((i & 4 ? 2 : 0) | (i & 8 ? 1 : 0)); xcolor.green = 0x5555 * ((i & 2 ? 2 : 0) | (i & 8 ? 1 : 0)); xcolor.blue = 0x5555 * ((i & 1 ? 2 : 0) | (i & 8 ? 1 : 0)); if (!XAllocColor(dpy, colormap, &xcolor)) { break; } xcol[i] = xcolor.pixel; } if (i < XNUMCOL) break; if (((fontname && (xsfont = XLoadQueryFont(dpy, fontname))) || (xsfont = XLoadQueryFont(dpy, "vga")) || (xsfont = XLoadQueryFont(dpy, "fixed")))) { xwfont = xsfont->min_bounds.width; xhfont = (xupfont = xsfont->ascent) + xsfont->descent; xsgc.foreground = xsgc.background = xcol[0]; xsgc.graphics_exposures = False; xsgc.font = xsfont->fid; if ((xgc = XCreateGC(dpy, root, GCFont | GCForeground | GCBackground | GCGraphicsExposures, &xsgc))) { /* * ask ICCCM-compliant window manager to tell us when close window * has been chosen, rather than just killing us */ xWM_PROTOCOLS = XInternAtom(dpy, "WM_PROTOCOLS", False); xWM_DELETE_WINDOW = XInternAtom(dpy, "WM_DELETE_WINDOW", False); xTARGETS = XInternAtom(dpy, "TARGETS", False); xhints.flags = PResizeInc; xhints.width_inc = xwfont; xhints.height_inc = xhfont; if (!(xUTF_16_to_charset = X11_UTF_16_to_charset_function(charset))) xUTF_16_to_charset = X11_UTF_16_to_UTF_16; return &X11_TTClasses; } } } while (0); if (dpy) X11_Close(); /*FAIL(, ); */ return (ttclasses)0; } /* * use default values for methods not implemented in X11_c * * null display target MUST IMPLEMENT ALL METHODS, even if as stubs. */ static s_ttclasses X11_TTClasses = { { Class_ttobj, id_ttobj, magicmask_ttobj, magic_ttobj, size_ttobj, }, { Class_ttclass, id_ttclass, magicmask_ttclass, magic_ttclass, size_ttclass, /* extends ttclass_ttobj */ }, { Class_ttobject, id_ttobject, magicmask_ttobject, magic_ttobject, size_ttobject, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttobject */, (void *)NULL /* UNDEFINED: Build_ttobject */, X11_Break_ttobject, (void *)NULL /* UNDEFINED: Del_ttobject */, }, { Class_ttvector, id_ttvector, magicmask_ttvector, magic_ttvector, size_ttvector, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvector */, (void *)NULL /* UNDEFINED: Build_ttvector */, (void *)NULL /* inherits: Break_ttvector >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttvector */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: GetAt_ttvector */, (void *)NULL /* UNDEFINED: SetAt_ttvector */, (void *)NULL /* UNDEFINED: AddY_ttvector */, (void *)NULL /* UNDEFINED: ContainsValue_ttvector */, (void *)NULL /* UNDEFINED: RemoveRange_ttvector */, }, { Class_ttfield, id_ttfield, magicmask_ttfield, magic_ttfield, size_ttfield, /* extends ttclass_ttobj */ }, { Class_ttmethod, id_ttmethod, magicmask_ttmethod, magic_ttmethod, size_ttmethod, /* extends ttclass_ttobj */ }, { Class_ttevent, id_ttevent, magicmask_ttevent, magic_ttevent, size_ttevent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttevent */, (void *)NULL /* UNDEFINED: Build_ttevent */, (void *)NULL /* inherits: Break_ttevent >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttevent */, /* extends ttclass_ttobject */ }, { Class_tteventbig, id_tteventbig, magicmask_tteventbig, magic_tteventbig, size_tteventbig, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventbig */, (void *)NULL /* UNDEFINED: Build_tteventbig */, (void *)NULL /* inherits: Break_tteventbig >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tteventbig */, /* extends ttclass_ttobject */ /* extends ttclass_ttevent */ }, { Class_ttbitmask, id_ttbitmask, magicmask_ttbitmask, magic_ttbitmask, size_ttbitmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbitmask */, (void *)NULL /* UNDEFINED: Build_ttbitmask */, (void *)NULL /* inherits: Break_ttbitmask >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbitmask */, /* extends ttclass_ttobject */ }, { Class_tteventmask, id_tteventmask, magicmask_tteventmask, magic_tteventmask, size_tteventmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventmask */, (void *)NULL /* UNDEFINED: Build_tteventmask */, (void *)NULL /* inherits: Break_tteventmask >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tteventmask */, /* extends ttclass_ttobject */ }, { Class_ttcallback, id_ttcallback, magicmask_ttcallback, magic_ttcallback, size_ttcallback, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcallback */, (void *)NULL /* UNDEFINED: Build_ttcallback */, (void *)NULL /* inherits: Break_ttcallback >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcallback */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttcallback */, }, { Class_ttlistener, id_ttlistener, magicmask_ttlistener, magic_ttlistener, size_ttlistener, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlistener */, (void *)NULL /* UNDEFINED: Build_ttlistener */, (void *)NULL /* inherits: Break_ttlistener >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlistener */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttlistener */, /* extends ttclass_ttcallback */ (void *)NULL /* UNDEFINED: AddTo_ttlistener */, (void *)NULL /* UNDEFINED: Remove_ttlistener */, }, { Class_tttimer, id_tttimer, magicmask_tttimer, magic_tttimer, size_tttimer, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttimer */, (void *)NULL /* UNDEFINED: Build_tttimer */, (void *)NULL /* inherits: Break_tttimer >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttimer */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_tttimer */, /* extends ttclass_ttcallback */ (void *)NULL /* UNDEFINED: AddTo_tttimer */, (void *)NULL /* UNDEFINED: Remove_tttimer */, /* extends ttclass_ttlistener */ (void *)NULL /* UNDEFINED: SetEnabled_tttimer */, (void *)NULL /* UNDEFINED: IsEnabled_tttimer */, }, { Class_ttcomponent, id_ttcomponent, magicmask_ttcomponent, magic_ttcomponent, size_ttcomponent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcomponent */, (void *)NULL /* UNDEFINED: Build_ttcomponent */, (void *)NULL /* inherits: Break_ttcomponent >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcomponent */, /* extends ttclass_ttobject */ }, { Class_ttdata, id_ttdata, magicmask_ttdata, magic_ttdata, size_ttdata, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttdata */, (void *)NULL /* UNDEFINED: Build_ttdata */, (void *)NULL /* inherits: Break_ttdata >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttdata */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttdata */, (void *)NULL /* UNDEFINED: Remove_ttdata */, }, { Class_ttvisible, id_ttvisible, magicmask_ttvisible, magic_ttvisible, size_ttvisible, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvisible */, (void *)NULL /* UNDEFINED: Build_ttvisible */, (void *)NULL /* inherits: Break_ttvisible >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttvisible */, (void *)NULL /* UNDEFINED: Validate_ttvisible */, (void *)NULL /* UNDEFINED: Remove_ttvisible */, (void *)NULL /* UNDEFINED: Invalidate_ttvisible */, (void *)NULL /* UNDEFINED: SetVisible_ttvisible */, (void *)NULL /* UNDEFINED: SetTheme_ttvisible */, (void *)NULL /* UNDEFINED: Draw_ttvisible */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttvisible */, }, { Class_ttlayout, id_ttlayout, magicmask_ttlayout, magic_ttlayout, size_ttlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlayout */, (void *)NULL /* UNDEFINED: Build_ttlayout */, (void *)NULL /* inherits: Break_ttlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttlayout */, }, { Class_ttboxlayout, id_ttboxlayout, magicmask_ttboxlayout, magic_ttboxlayout, size_ttboxlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttboxlayout */, (void *)NULL /* UNDEFINED: Build_ttboxlayout */, (void *)NULL /* inherits: Break_ttboxlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttboxlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttboxlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttboxlayout */, /* extends ttclass_ttlayout */ }, { Class_ttborderlayout, id_ttborderlayout, magicmask_ttborderlayout, magic_ttborderlayout, size_ttborderlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttborderlayout */, (void *)NULL /* UNDEFINED: Build_ttborderlayout */, (void *)NULL /* inherits: Break_ttborderlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttborderlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttborderlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttborderlayout */, /* extends ttclass_ttlayout */ }, { Class_ttnative, id_ttnative, magicmask_ttnative, magic_ttnative, size_ttnative, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttnative */, (void *)NULL /* UNDEFINED: Build_ttnative */, X11_Break_ttnative, (void *)NULL /* UNDEFINED: Del_ttnative */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttnative */, (void *)NULL /* UNDEFINED: Validate_ttnative */, (void *)NULL /* UNDEFINED: Remove_ttnative */, (void *)NULL /* UNDEFINED: Invalidate_ttnative */, (void *)NULL /* UNDEFINED: SetVisible_ttnative */, (void *)NULL /* UNDEFINED: SetTheme_ttnative */, (void *)NULL /* UNDEFINED: Draw_ttnative */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttnative */, /* extends ttclass_ttvisible */ X11_GetRoot_ttnative, (void *)NULL /* UNDEFINED: GetW_ttnative */, (void *)NULL /* UNDEFINED: GetH_ttnative */, }, { Class_ttwidget, id_ttwidget, magicmask_ttwidget, magic_ttwidget, size_ttwidget, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwidget */, X11_Build_ttwidget, (void *)NULL /* inherits: Break_ttwidget >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttwidget */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ X11_AddTo_ttwidget, (void *)NULL /* UNDEFINED: Validate_ttwidget */, X11_Remove_ttwidget, (void *)NULL /* UNDEFINED: Invalidate_ttwidget */, X11_SetVisible_ttwidget, (void *)NULL /* UNDEFINED: SetTheme_ttwidget */, (void *)NULL /* UNDEFINED: Draw_ttwidget */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttwidget */, (void *)NULL /* UNDEFINED: SetXY_ttwidget */, (void *)NULL /* UNDEFINED: SetWH_ttwidget */, (void *)NULL /* UNDEFINED: SetXl_ttwidget */, (void *)NULL /* UNDEFINED: SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttwidget */, (void *)NULL /* UNDEFINED: SetHl_ttwidget */, (void *)NULL /* UNDEFINED: SetTooltip_ttwidget */, }, { Class_ttlabel, id_ttlabel, magicmask_ttlabel, magic_ttlabel, size_ttlabel, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlabel */, (void *)NULL /* inherits: Build_ttlabel >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttlabel >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlabel */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttlabel >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttlabel */, (void *)NULL /* inherits: Remove_ttlabel >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttlabel */, (void *)NULL /* inherits: SetVisible_ttlabel >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttlabel */, (void *)NULL /* UNDEFINED: Draw_ttlabel */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttlabel */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttlabel */, (void *)NULL /* UNDEFINED: SetXY_ttlabel */, (void *)NULL /* UNDEFINED: SetWH_ttlabel */, (void *)NULL /* UNDEFINED: SetXl_ttlabel */, (void *)NULL /* UNDEFINED: SetYl_ttlabel */, (void *)NULL /* UNDEFINED: SetWl_ttlabel */, (void *)NULL /* UNDEFINED: SetHl_ttlabel */, (void *)NULL /* UNDEFINED: SetTooltip_ttlabel */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetFontD_ttlabel */, }, { Class_tttooltip, id_tttooltip, magicmask_tttooltip, magic_tttooltip, size_tttooltip, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttooltip */, (void *)NULL /* inherits: Build_tttooltip >> Build_ttwidget */, (void *)NULL /* inherits: Break_tttooltip >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttooltip */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttooltip >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttooltip */, (void *)NULL /* inherits: Remove_tttooltip >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_tttooltip */, (void *)NULL /* inherits: SetVisible_tttooltip >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttooltip */, (void *)NULL /* UNDEFINED: Draw_tttooltip */, (void *)NULL /* UNDEFINED: BuiltinRepaint_tttooltip */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttooltip */, (void *)NULL /* UNDEFINED: SetXY_tttooltip */, (void *)NULL /* UNDEFINED: SetWH_tttooltip */, (void *)NULL /* UNDEFINED: SetXl_tttooltip */, (void *)NULL /* UNDEFINED: SetYl_tttooltip */, (void *)NULL /* UNDEFINED: SetWl_tttooltip */, (void *)NULL /* UNDEFINED: SetHl_tttooltip */, (void *)NULL /* UNDEFINED: SetTooltip_tttooltip */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetFontD_tttooltip */, /* extends ttclass_ttlabel */ (void *)NULL /* UNDEFINED: SetWidget_tttooltip */, }, { Class_ttbuttongroup, id_ttbuttongroup, magicmask_ttbuttongroup, magic_ttbuttongroup, size_ttbuttongroup, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbuttongroup */, (void *)NULL /* UNDEFINED: Build_ttbuttongroup */, (void *)NULL /* inherits: Break_ttbuttongroup >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbuttongroup */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: Add_ttbuttongroup */, (void *)NULL /* UNDEFINED: Remove_ttbuttongroup */, (void *)NULL /* UNDEFINED: SetChecked_ttbuttongroup */, }, { Class_ttanybutton, id_ttanybutton, magicmask_ttanybutton, magic_ttanybutton, size_ttanybutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanybutton */, (void *)NULL /* inherits: Build_ttanybutton >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttanybutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanybutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanybutton */, (void *)NULL /* inherits: Remove_ttanybutton >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttanybutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanybutton */, (void *)NULL /* UNDEFINED: Draw_ttanybutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanybutton */, (void *)NULL /* UNDEFINED: SetXY_ttanybutton */, (void *)NULL /* UNDEFINED: SetWH_ttanybutton */, (void *)NULL /* UNDEFINED: SetXl_ttanybutton */, (void *)NULL /* UNDEFINED: SetYl_ttanybutton */, (void *)NULL /* UNDEFINED: SetWl_ttanybutton */, (void *)NULL /* UNDEFINED: SetHl_ttanybutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttanybutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanybutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttanybutton */, }, { Class_ttbutton, id_ttbutton, magicmask_ttbutton, magic_ttbutton, size_ttbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbutton */, (void *)NULL /* inherits: Build_ttbutton >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttbutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttbutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttbutton */, (void *)NULL /* inherits: Remove_ttbutton >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttbutton */, (void *)NULL /* inherits: SetVisible_ttbutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttbutton */, (void *)NULL /* UNDEFINED: Draw_ttbutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttbutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttbutton */, (void *)NULL /* UNDEFINED: SetXY_ttbutton */, (void *)NULL /* UNDEFINED: SetWH_ttbutton */, (void *)NULL /* UNDEFINED: SetXl_ttbutton */, (void *)NULL /* UNDEFINED: SetYl_ttbutton */, (void *)NULL /* UNDEFINED: SetWl_ttbutton */, (void *)NULL /* UNDEFINED: SetHl_ttbutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttbutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttbutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttbutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttbutton */, }, { Class_ttcheckbutton, id_ttcheckbutton, magicmask_ttcheckbutton, magic_ttcheckbutton, size_ttcheckbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckbutton */, (void *)NULL /* inherits: Build_ttcheckbutton >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttcheckbutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcheckbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttcheckbutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttcheckbutton */, (void *)NULL /* inherits: Remove_ttcheckbutton >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttcheckbutton */, (void *)NULL /* inherits: SetVisible_ttcheckbutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttcheckbutton */, (void *)NULL /* UNDEFINED: Draw_ttcheckbutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttcheckbutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetXY_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetWH_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetXl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetYl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetWl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetHl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttcheckbutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttcheckbutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttcheckbutton */, /* extends ttclass_ttbutton */ (void *)NULL /* UNDEFINED: SetChecked_ttcheckbutton */, }, { Class_ttradiobutton, id_ttradiobutton, magicmask_ttradiobutton, magic_ttradiobutton, size_ttradiobutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiobutton */, (void *)NULL /* inherits: Build_ttradiobutton >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttradiobutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttradiobutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttradiobutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttradiobutton */, (void *)NULL /* inherits: Remove_ttradiobutton >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttradiobutton */, (void *)NULL /* inherits: SetVisible_ttradiobutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttradiobutton */, (void *)NULL /* UNDEFINED: Draw_ttradiobutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttradiobutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttradiobutton */, (void *)NULL /* UNDEFINED: SetXY_ttradiobutton */, (void *)NULL /* UNDEFINED: SetWH_ttradiobutton */, (void *)NULL /* UNDEFINED: SetXl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetYl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetWl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetHl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttradiobutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttradiobutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttradiobutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttradiobutton */, /* extends ttclass_ttbutton */ (void *)NULL /* UNDEFINED: SetChecked_ttradiobutton */, /* extends ttclass_ttcheckbutton */ }, { Class_ttanyscroll, id_ttanyscroll, magicmask_ttanyscroll, magic_ttanyscroll, size_ttanyscroll, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanyscroll */, (void *)NULL /* inherits: Build_ttanyscroll >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttanyscroll >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanyscroll */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanyscroll >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanyscroll */, (void *)NULL /* inherits: Remove_ttanyscroll >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttanyscroll */, (void *)NULL /* inherits: SetVisible_ttanyscroll >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanyscroll */, (void *)NULL /* UNDEFINED: Draw_ttanyscroll */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttanyscroll */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanyscroll */, (void *)NULL /* UNDEFINED: SetXY_ttanyscroll */, (void *)NULL /* UNDEFINED: SetWH_ttanyscroll */, (void *)NULL /* UNDEFINED: SetXl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetYl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetWl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetHl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetTooltip_ttanyscroll */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanyscroll */, (void *)NULL /* UNDEFINED: SetAttrD_ttanyscroll */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttanyscroll */, (void *)NULL /* UNDEFINED: SetState_ttanyscroll */, (void *)NULL /* UNDEFINED: SetOrientation_ttanyscroll */, (void *)NULL /* UNDEFINED: SetSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetRealSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetViewSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetPosition_ttanyscroll */, }, { Class_ttscrollbar, id_ttscrollbar, magicmask_ttscrollbar, magic_ttscrollbar, size_ttscrollbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollbar */, (void *)NULL /* inherits: Build_ttscrollbar >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttscrollbar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscrollbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollbar >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscrollbar */, (void *)NULL /* inherits: Remove_ttscrollbar >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttscrollbar */, (void *)NULL /* inherits: SetVisible_ttscrollbar >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscrollbar */, (void *)NULL /* UNDEFINED: Draw_ttscrollbar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttscrollbar */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscrollbar */, (void *)NULL /* UNDEFINED: SetXY_ttscrollbar */, (void *)NULL /* UNDEFINED: SetWH_ttscrollbar */, (void *)NULL /* UNDEFINED: SetXl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetYl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetWl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetHl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetTooltip_ttscrollbar */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttscrollbar */, (void *)NULL /* UNDEFINED: SetAttrD_ttscrollbar */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttscrollbar */, (void *)NULL /* UNDEFINED: SetState_ttscrollbar */, (void *)NULL /* UNDEFINED: SetOrientation_ttscrollbar */, (void *)NULL /* UNDEFINED: SetSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetRealSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetViewSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetPosition_ttscrollbar */, /* extends ttclass_ttanyscroll */ }, { Class_ttslider, id_ttslider, magicmask_ttslider, magic_ttslider, size_ttslider, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttslider */, (void *)NULL /* inherits: Build_ttslider >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttslider >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttslider */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttslider >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttslider */, (void *)NULL /* inherits: Remove_ttslider >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttslider */, (void *)NULL /* inherits: SetVisible_ttslider >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttslider */, (void *)NULL /* UNDEFINED: Draw_ttslider */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttslider */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttslider */, (void *)NULL /* UNDEFINED: SetXY_ttslider */, (void *)NULL /* UNDEFINED: SetWH_ttslider */, (void *)NULL /* UNDEFINED: SetXl_ttslider */, (void *)NULL /* UNDEFINED: SetYl_ttslider */, (void *)NULL /* UNDEFINED: SetWl_ttslider */, (void *)NULL /* UNDEFINED: SetHl_ttslider */, (void *)NULL /* UNDEFINED: SetTooltip_ttslider */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttslider */, (void *)NULL /* UNDEFINED: SetAttrD_ttslider */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttslider */, (void *)NULL /* UNDEFINED: SetState_ttslider */, (void *)NULL /* UNDEFINED: SetOrientation_ttslider */, (void *)NULL /* UNDEFINED: SetSize_ttslider */, (void *)NULL /* UNDEFINED: SetRealSize_ttslider */, (void *)NULL /* UNDEFINED: SetViewSize_ttslider */, (void *)NULL /* UNDEFINED: SetPosition_ttslider */, /* extends ttclass_ttanyscroll */ (void *)NULL /* UNDEFINED: SetSlideMin_ttslider */, (void *)NULL /* UNDEFINED: SetSlideMax_ttslider */, (void *)NULL /* UNDEFINED: SetSlideValue_ttslider */, }, { Class_ttprogressbar, id_ttprogressbar, magicmask_ttprogressbar, magic_ttprogressbar, size_ttprogressbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttprogressbar */, (void *)NULL /* inherits: Build_ttprogressbar >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttprogressbar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttprogressbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttprogressbar >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttprogressbar */, (void *)NULL /* inherits: Remove_ttprogressbar >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttprogressbar */, (void *)NULL /* inherits: SetVisible_ttprogressbar >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttprogressbar */, (void *)NULL /* UNDEFINED: Draw_ttprogressbar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttprogressbar */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttprogressbar */, (void *)NULL /* UNDEFINED: SetXY_ttprogressbar */, (void *)NULL /* UNDEFINED: SetWH_ttprogressbar */, (void *)NULL /* UNDEFINED: SetXl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetYl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetWl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetHl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetTooltip_ttprogressbar */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttprogressbar */, (void *)NULL /* UNDEFINED: SetAttrD_ttprogressbar */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttprogressbar */, (void *)NULL /* UNDEFINED: SetState_ttprogressbar */, (void *)NULL /* UNDEFINED: SetOrientation_ttprogressbar */, (void *)NULL /* UNDEFINED: SetSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetRealSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetViewSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetPosition_ttprogressbar */, /* extends ttclass_ttanyscroll */ }, { Class_ttscrollpane, id_ttscrollpane, magicmask_ttscrollpane, magic_ttscrollpane, size_ttscrollpane, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollpane */, (void *)NULL /* inherits: Build_ttscrollpane >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttscrollpane >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscrollpane */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollpane >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscrollpane */, (void *)NULL /* inherits: Remove_ttscrollpane >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttscrollpane */, (void *)NULL /* inherits: SetVisible_ttscrollpane >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscrollpane */, (void *)NULL /* UNDEFINED: Draw_ttscrollpane */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttscrollpane */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscrollpane */, (void *)NULL /* UNDEFINED: SetXY_ttscrollpane */, (void *)NULL /* UNDEFINED: SetWH_ttscrollpane */, (void *)NULL /* UNDEFINED: SetXl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetYl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetWl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetHl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetTooltip_ttscrollpane */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetBarX_ttscrollpane */, (void *)NULL /* UNDEFINED: SetBarY_ttscrollpane */, }, { Class_ttwindow, id_ttwindow, magicmask_ttwindow, magic_ttwindow, size_ttwindow, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwindow */, (void *)NULL /* inherits: Build_ttwindow >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttwindow >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttwindow */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttwindow >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttwindow */, (void *)NULL /* inherits: Remove_ttwindow >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttwindow */, (void *)NULL /* inherits: SetVisible_ttwindow >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttwindow */, (void *)NULL /* UNDEFINED: Draw_ttwindow */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttwindow */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttwindow */, (void *)NULL /* UNDEFINED: SetXY_ttwindow */, (void *)NULL /* UNDEFINED: SetWH_ttwindow */, (void *)NULL /* UNDEFINED: SetXl_ttwindow */, (void *)NULL /* UNDEFINED: SetYl_ttwindow */, (void *)NULL /* UNDEFINED: SetWl_ttwindow */, (void *)NULL /* UNDEFINED: SetHl_ttwindow */, (void *)NULL /* UNDEFINED: SetTooltip_ttwindow */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttwindow */, }, { Class_ttframe, id_ttframe, magicmask_ttframe, magic_ttframe, size_ttframe, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttframe */, X11_Build_ttframe, (void *)NULL /* inherits: Break_ttframe >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttframe */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttframe >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttframe */, (void *)NULL /* inherits: Remove_ttframe >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttframe */, (void *)NULL /* inherits: SetVisible_ttframe >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttframe */, (void *)NULL /* UNDEFINED: Draw_ttframe */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttframe */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttframe */, (void *)NULL /* UNDEFINED: SetXY_ttframe */, (void *)NULL /* UNDEFINED: SetWH_ttframe */, (void *)NULL /* UNDEFINED: SetXl_ttframe */, (void *)NULL /* UNDEFINED: SetYl_ttframe */, (void *)NULL /* UNDEFINED: SetWl_ttframe */, (void *)NULL /* UNDEFINED: SetHl_ttframe */, (void *)NULL /* UNDEFINED: SetTooltip_ttframe */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttframe */, /* extends ttclass_ttwindow */ (void *)NULL /* UNDEFINED: SetMenubar_ttframe */, }, { Class_ttscroller, id_ttscroller, magicmask_ttscroller, magic_ttscroller, size_ttscroller, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscroller */, (void *)NULL /* inherits: Build_ttscroller >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttscroller >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscroller */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscroller >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscroller */, (void *)NULL /* inherits: Remove_ttscroller >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttscroller */, (void *)NULL /* inherits: SetVisible_ttscroller >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscroller */, (void *)NULL /* UNDEFINED: Draw_ttscroller */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttscroller */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscroller */, (void *)NULL /* UNDEFINED: SetXY_ttscroller */, (void *)NULL /* UNDEFINED: SetWH_ttscroller */, (void *)NULL /* UNDEFINED: SetXl_ttscroller */, (void *)NULL /* UNDEFINED: SetYl_ttscroller */, (void *)NULL /* UNDEFINED: SetWl_ttscroller */, (void *)NULL /* UNDEFINED: SetHl_ttscroller */, (void *)NULL /* UNDEFINED: SetTooltip_ttscroller */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttscroller */, /* extends ttclass_ttwindow */ }, { Class_ttmenuitem, id_ttmenuitem, magicmask_ttmenuitem, magic_ttmenuitem, size_ttmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenuitem */, (void *)NULL /* UNDEFINED: Build_ttmenuitem */, (void *)NULL /* inherits: Break_ttmenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenuitem */, (void *)NULL /* UNDEFINED: Validate_ttmenuitem */, (void *)NULL /* UNDEFINED: Remove_ttmenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttmenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttmenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttmenuitem */, (void *)NULL /* UNDEFINED: Draw_ttmenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenuitem */, /* extends ttclass_ttvisible */ }, { Class_ttcheckmenuitem, id_ttcheckmenuitem, magicmask_ttcheckmenuitem, magic_ttcheckmenuitem, size_ttcheckmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Build_ttcheckmenuitem */, (void *)NULL /* inherits: Break_ttcheckmenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcheckmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Validate_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Remove_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Draw_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttcheckmenuitem */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttradiomenuitem, id_ttradiomenuitem, magicmask_ttradiomenuitem, magic_ttradiomenuitem, size_ttradiomenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Build_ttradiomenuitem */, (void *)NULL /* inherits: Break_ttradiomenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttradiomenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Validate_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Remove_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttradiomenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttradiomenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Draw_ttradiomenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttradiomenuitem */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ /* extends ttclass_ttcheckmenuitem */ }, { Class_ttmenu, id_ttmenu, magicmask_ttmenu, magic_ttmenu, size_ttmenu, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenu */, (void *)NULL /* UNDEFINED: Build_ttmenu */, (void *)NULL /* inherits: Break_ttmenu >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenu */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenu */, (void *)NULL /* UNDEFINED: Validate_ttmenu */, (void *)NULL /* UNDEFINED: Remove_ttmenu */, (void *)NULL /* UNDEFINED: Invalidate_ttmenu */, (void *)NULL /* UNDEFINED: SetVisible_ttmenu */, (void *)NULL /* UNDEFINED: SetTheme_ttmenu */, (void *)NULL /* UNDEFINED: Draw_ttmenu */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenu */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttmenubar, id_ttmenubar, magicmask_ttmenubar, magic_ttmenubar, size_ttmenubar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenubar */, (void *)NULL /* UNDEFINED: Build_ttmenubar */, (void *)NULL /* inherits: Break_ttmenubar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenubar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenubar */, (void *)NULL /* UNDEFINED: Validate_ttmenubar */, (void *)NULL /* UNDEFINED: Remove_ttmenubar */, (void *)NULL /* UNDEFINED: Invalidate_ttmenubar */, (void *)NULL /* UNDEFINED: SetVisible_ttmenubar */, (void *)NULL /* UNDEFINED: SetTheme_ttmenubar */, (void *)NULL /* UNDEFINED: Draw_ttmenubar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenubar */, /* extends ttclass_ttvisible */ }, { Class_ttanytext, id_ttanytext, magicmask_ttanytext, magic_ttanytext, size_ttanytext, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanytext */, (void *)NULL /* inherits: Build_ttanytext >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttanytext >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanytext */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanytext >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanytext */, (void *)NULL /* inherits: Remove_ttanytext >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttanytext */, (void *)NULL /* inherits: SetVisible_ttanytext >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanytext */, (void *)NULL /* UNDEFINED: Draw_ttanytext */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttanytext */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanytext */, (void *)NULL /* UNDEFINED: SetXY_ttanytext */, (void *)NULL /* UNDEFINED: SetWH_ttanytext */, (void *)NULL /* UNDEFINED: SetXl_ttanytext */, (void *)NULL /* UNDEFINED: SetYl_ttanytext */, (void *)NULL /* UNDEFINED: SetWl_ttanytext */, (void *)NULL /* UNDEFINED: SetHl_ttanytext */, (void *)NULL /* UNDEFINED: SetTooltip_ttanytext */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttanytext */, /* extends ttclass_ttwindow */ }, { Class_tttextfield, id_tttextfield, magicmask_tttextfield, magic_tttextfield, size_tttextfield, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextfield */, (void *)NULL /* inherits: Build_tttextfield >> Build_ttwidget */, (void *)NULL /* inherits: Break_tttextfield >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttextfield */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextfield >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttextfield */, (void *)NULL /* inherits: Remove_tttextfield >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_tttextfield */, (void *)NULL /* inherits: SetVisible_tttextfield >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttextfield */, (void *)NULL /* UNDEFINED: Draw_tttextfield */, (void *)NULL /* UNDEFINED: BuiltinRepaint_tttextfield */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttextfield */, (void *)NULL /* UNDEFINED: SetXY_tttextfield */, (void *)NULL /* UNDEFINED: SetWH_tttextfield */, (void *)NULL /* UNDEFINED: SetXl_tttextfield */, (void *)NULL /* UNDEFINED: SetYl_tttextfield */, (void *)NULL /* UNDEFINED: SetWl_tttextfield */, (void *)NULL /* UNDEFINED: SetHl_tttextfield */, (void *)NULL /* UNDEFINED: SetTooltip_tttextfield */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_tttextfield */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ }, { Class_tttextarea, id_tttextarea, magicmask_tttextarea, magic_tttextarea, size_tttextarea, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextarea */, (void *)NULL /* inherits: Build_tttextarea >> Build_ttwidget */, (void *)NULL /* inherits: Break_tttextarea >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttextarea */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextarea >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttextarea */, (void *)NULL /* inherits: Remove_tttextarea >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_tttextarea */, (void *)NULL /* inherits: SetVisible_tttextarea >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttextarea */, (void *)NULL /* UNDEFINED: Draw_tttextarea */, (void *)NULL /* UNDEFINED: BuiltinRepaint_tttextarea */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttextarea */, (void *)NULL /* UNDEFINED: SetXY_tttextarea */, (void *)NULL /* UNDEFINED: SetWH_tttextarea */, (void *)NULL /* UNDEFINED: SetXl_tttextarea */, (void *)NULL /* UNDEFINED: SetYl_tttextarea */, (void *)NULL /* UNDEFINED: SetWl_tttextarea */, (void *)NULL /* UNDEFINED: SetHl_tttextarea */, (void *)NULL /* UNDEFINED: SetTooltip_tttextarea */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_tttextarea */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ /* extends ttclass_tttextfield */ }, { Class_tttheme, id_tttheme, magicmask_tttheme, magic_tttheme, size_tttheme, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttheme */, (void *)NULL /* UNDEFINED: Build_tttheme */, (void *)NULL /* inherits: Break_tttheme >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttheme */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { Class_ttapplication, id_ttapplication, magicmask_ttapplication, magic_ttapplication, size_ttapplication, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttapplication */, (void *)NULL /* UNDEFINED: Build_ttapplication */, (void *)NULL /* inherits: Break_ttapplication >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttapplication */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { X11_Sync, X11_Flush, X11_TimidFlush, X11_MainLoopOnce, X11_DeleteCallback, X11_Close, X11_ConnectionFd, X11_GetErrno, X11_GetErrnoDetail, X11_StrError, X11_StrErrorDetail, }, }; ����twin-0.9.0/libs/libTT/HW/common_m4.h����������������������������������������������������������������0000664�0000000�0000000�00000024256�13775351206�0017051�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* This file was automatically generated from m4/common.m4, do not edit! */ /* * common_m4.h -- common #defines for all target drivers * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_HW_COMMON_H #define TT_HW_COMMON_H /* clang-format off */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* defines for ttclass_ttobj fields: Class, id, size */ #define Class_ttobj TClass_ttclass #define id_ttobj id_ttclass_ttobj #define size_ttobj sizeof(struct s_ttobj) /* defines for ttclass_ttclass fields: Class, id, size */ #define Class_ttclass TClass_ttclass #define id_ttclass id_ttclass_ttclass #define size_ttclass sizeof(struct s_ttclass) /* defines for ttclass_ttobject fields: Class, id, size */ #define Class_ttobject TClass_ttclass #define id_ttobject id_ttclass_ttobject #define size_ttobject sizeof(struct s_ttobject) /* defines for ttclass_ttvector fields: Class, id, size */ #define Class_ttvector TClass_ttclass #define id_ttvector id_ttclass_ttvector #define size_ttvector sizeof(struct s_ttvector) /* defines for ttclass_ttfield fields: Class, id, size */ #define Class_ttfield TClass_ttclass #define id_ttfield id_ttclass_ttfield #define size_ttfield sizeof(struct s_ttfield) /* defines for ttclass_ttmethod fields: Class, id, size */ #define Class_ttmethod TClass_ttclass #define id_ttmethod id_ttclass_ttmethod #define size_ttmethod sizeof(struct s_ttmethod) /* defines for ttclass_ttevent fields: Class, id, size */ #define Class_ttevent TClass_ttclass #define id_ttevent id_ttclass_ttevent #define size_ttevent sizeof(struct s_ttevent) /* defines for ttclass_tteventbig fields: Class, id, size */ #define Class_tteventbig TClass_ttclass #define id_tteventbig id_ttclass_tteventbig #define size_tteventbig sizeof(struct s_tteventbig) /* defines for ttclass_ttbitmask fields: Class, id, size */ #define Class_ttbitmask TClass_ttclass #define id_ttbitmask id_ttclass_ttbitmask #define size_ttbitmask sizeof(struct s_ttbitmask) /* defines for ttclass_tteventmask fields: Class, id, size */ #define Class_tteventmask TClass_ttclass #define id_tteventmask id_ttclass_tteventmask #define size_tteventmask sizeof(struct s_tteventmask) /* defines for ttclass_ttcallback fields: Class, id, size */ #define Class_ttcallback TClass_ttclass #define id_ttcallback id_ttclass_ttcallback #define size_ttcallback sizeof(struct s_ttcallback) /* defines for ttclass_ttlistener fields: Class, id, size */ #define Class_ttlistener TClass_ttclass #define id_ttlistener id_ttclass_ttlistener #define size_ttlistener sizeof(struct s_ttlistener) /* defines for ttclass_tttimer fields: Class, id, size */ #define Class_tttimer TClass_ttclass #define id_tttimer id_ttclass_tttimer #define size_tttimer sizeof(struct s_tttimer) /* defines for ttclass_ttcomponent fields: Class, id, size */ #define Class_ttcomponent TClass_ttclass #define id_ttcomponent id_ttclass_ttcomponent #define size_ttcomponent sizeof(struct s_ttcomponent) /* defines for ttclass_ttdata fields: Class, id, size */ #define Class_ttdata TClass_ttclass #define id_ttdata id_ttclass_ttdata #define size_ttdata sizeof(struct s_ttdata) /* defines for ttclass_ttvisible fields: Class, id, size */ #define Class_ttvisible TClass_ttclass #define id_ttvisible id_ttclass_ttvisible #define size_ttvisible sizeof(struct s_ttvisible) /* defines for ttclass_ttlayout fields: Class, id, size */ #define Class_ttlayout TClass_ttclass #define id_ttlayout id_ttclass_ttlayout #define size_ttlayout sizeof(struct s_ttlayout) /* defines for ttclass_ttboxlayout fields: Class, id, size */ #define Class_ttboxlayout TClass_ttclass #define id_ttboxlayout id_ttclass_ttboxlayout #define size_ttboxlayout sizeof(struct s_ttboxlayout) /* defines for ttclass_ttborderlayout fields: Class, id, size */ #define Class_ttborderlayout TClass_ttclass #define id_ttborderlayout id_ttclass_ttborderlayout #define size_ttborderlayout sizeof(struct s_ttborderlayout) /* defines for ttclass_ttnative fields: Class, id, size */ #define Class_ttnative TClass_ttclass #define id_ttnative id_ttclass_ttnative #define size_ttnative sizeof(struct s_ttnative) /* defines for ttclass_ttwidget fields: Class, id, size */ #define Class_ttwidget TClass_ttclass #define id_ttwidget id_ttclass_ttwidget #define size_ttwidget sizeof(struct s_ttwidget) /* defines for ttclass_ttlabel fields: Class, id, size */ #define Class_ttlabel TClass_ttclass #define id_ttlabel id_ttclass_ttlabel #define size_ttlabel sizeof(struct s_ttlabel) /* defines for ttclass_tttooltip fields: Class, id, size */ #define Class_tttooltip TClass_ttclass #define id_tttooltip id_ttclass_tttooltip #define size_tttooltip sizeof(struct s_tttooltip) /* defines for ttclass_ttbuttongroup fields: Class, id, size */ #define Class_ttbuttongroup TClass_ttclass #define id_ttbuttongroup id_ttclass_ttbuttongroup #define size_ttbuttongroup sizeof(struct s_ttbuttongroup) /* defines for ttclass_ttanybutton fields: Class, id, size */ #define Class_ttanybutton TClass_ttclass #define id_ttanybutton id_ttclass_ttanybutton #define size_ttanybutton sizeof(struct s_ttanybutton) /* defines for ttclass_ttbutton fields: Class, id, size */ #define Class_ttbutton TClass_ttclass #define id_ttbutton id_ttclass_ttbutton #define size_ttbutton sizeof(struct s_ttbutton) /* defines for ttclass_ttcheckbutton fields: Class, id, size */ #define Class_ttcheckbutton TClass_ttclass #define id_ttcheckbutton id_ttclass_ttcheckbutton #define size_ttcheckbutton sizeof(struct s_ttcheckbutton) /* defines for ttclass_ttradiobutton fields: Class, id, size */ #define Class_ttradiobutton TClass_ttclass #define id_ttradiobutton id_ttclass_ttradiobutton #define size_ttradiobutton sizeof(struct s_ttradiobutton) /* defines for ttclass_ttanyscroll fields: Class, id, size */ #define Class_ttanyscroll TClass_ttclass #define id_ttanyscroll id_ttclass_ttanyscroll #define size_ttanyscroll sizeof(struct s_ttanyscroll) /* defines for ttclass_ttscrollbar fields: Class, id, size */ #define Class_ttscrollbar TClass_ttclass #define id_ttscrollbar id_ttclass_ttscrollbar #define size_ttscrollbar sizeof(struct s_ttscrollbar) /* defines for ttclass_ttslider fields: Class, id, size */ #define Class_ttslider TClass_ttclass #define id_ttslider id_ttclass_ttslider #define size_ttslider sizeof(struct s_ttslider) /* defines for ttclass_ttprogressbar fields: Class, id, size */ #define Class_ttprogressbar TClass_ttclass #define id_ttprogressbar id_ttclass_ttprogressbar #define size_ttprogressbar sizeof(struct s_ttprogressbar) /* defines for ttclass_ttscrollpane fields: Class, id, size */ #define Class_ttscrollpane TClass_ttclass #define id_ttscrollpane id_ttclass_ttscrollpane #define size_ttscrollpane sizeof(struct s_ttscrollpane) /* defines for ttclass_ttwindow fields: Class, id, size */ #define Class_ttwindow TClass_ttclass #define id_ttwindow id_ttclass_ttwindow #define size_ttwindow sizeof(struct s_ttwindow) /* defines for ttclass_ttframe fields: Class, id, size */ #define Class_ttframe TClass_ttclass #define id_ttframe id_ttclass_ttframe #define size_ttframe sizeof(struct s_ttframe) /* defines for ttclass_ttscroller fields: Class, id, size */ #define Class_ttscroller TClass_ttclass #define id_ttscroller id_ttclass_ttscroller #define size_ttscroller sizeof(struct s_ttscroller) /* defines for ttclass_ttmenuitem fields: Class, id, size */ #define Class_ttmenuitem TClass_ttclass #define id_ttmenuitem id_ttclass_ttmenuitem #define size_ttmenuitem sizeof(struct s_ttmenuitem) /* defines for ttclass_ttcheckmenuitem fields: Class, id, size */ #define Class_ttcheckmenuitem TClass_ttclass #define id_ttcheckmenuitem id_ttclass_ttcheckmenuitem #define size_ttcheckmenuitem sizeof(struct s_ttcheckmenuitem) /* defines for ttclass_ttradiomenuitem fields: Class, id, size */ #define Class_ttradiomenuitem TClass_ttclass #define id_ttradiomenuitem id_ttclass_ttradiomenuitem #define size_ttradiomenuitem sizeof(struct s_ttradiomenuitem) /* defines for ttclass_ttmenu fields: Class, id, size */ #define Class_ttmenu TClass_ttclass #define id_ttmenu id_ttclass_ttmenu #define size_ttmenu sizeof(struct s_ttmenu) /* defines for ttclass_ttmenubar fields: Class, id, size */ #define Class_ttmenubar TClass_ttclass #define id_ttmenubar id_ttclass_ttmenubar #define size_ttmenubar sizeof(struct s_ttmenubar) /* defines for ttclass_ttanytext fields: Class, id, size */ #define Class_ttanytext TClass_ttclass #define id_ttanytext id_ttclass_ttanytext #define size_ttanytext sizeof(struct s_ttanytext) /* defines for ttclass_tttextfield fields: Class, id, size */ #define Class_tttextfield TClass_ttclass #define id_tttextfield id_ttclass_tttextfield #define size_tttextfield sizeof(struct s_tttextfield) /* defines for ttclass_tttextarea fields: Class, id, size */ #define Class_tttextarea TClass_ttclass #define id_tttextarea id_ttclass_tttextarea #define size_tttextarea sizeof(struct s_tttextarea) /* defines for ttclass_tttheme fields: Class, id, size */ #define Class_tttheme TClass_ttclass #define id_tttheme id_ttclass_tttheme #define size_tttheme sizeof(struct s_tttheme) /* defines for ttclass_ttapplication fields: Class, id, size */ #define Class_ttapplication TClass_ttclass #define id_ttapplication id_ttclass_ttapplication #define size_ttapplication sizeof(struct s_ttapplication) #endif /* TT_HW_COMMON_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/gtk_c����������������������������������������������������������������������0000664�0000000�0000000�00000011414�13775351206�0016012�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * WARNING! * * this file is `gtk_c' and is preprocessed by m4 to produce `gtk_m4.c' * * It must be a valid m4 file, and must produce a valid C include file. * * * Copyright (C) 2002 by Massimiliano Ghilardi and Adam Olsen * * 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 * */ #include <gtk/gtk.h> DECL_BEFORE /* * We need to write down only overloaded methods. */ #define TT_GTK_EUNFINISHED 1 /* ttobject */ static BREAK(ttobject) { if (o) { if (o->native) { gtk_object_destroy((GtkObject *)(opaque)o->native); o->native = (opaque)0; } } } /* ttwidget */ static BUILD(ttwidget) { if ((o->native = (opaque)gtk_fixed_new())) { gtk_widget_realize((GtkWidget *)(opaque)o->native); return o; } return NULL; } static void DEF(AddTo_ttwidget)(ttwidget o, ttvisible parent, ttany constraints) { if (parent && !o->parent) { FNDEFAULT(ttwidget)->AddTo(o, parent, constraints); gtk_widget_reparent((GtkWidget *)(opaque)o->native, (GtkWidget *)(opaque)parent->native); if (o->vflags & ttvisible_vflags_visible) gtk_widget_show((GtkWidget *)(opaque)o->native); } } static void DEF(SetVisible_ttwidget)(ttwidget o, ttbyte on_off) { if (!on_off != !(o->vflags & ttvisible_vflags_visible)) { o->vflags ^= ttvisible_vflags_visible; if (o->parent) { if (on_off) gtk_widget_show((GtkWidget *)(opaque)o->native); else gtk_widget_hide((GtkWidget *)(opaque)o->native); } } } static void DEF(Remove_ttwidget)(ttwidget o) { if (o->parent) { FNDEFAULT(ttwidget)->Remove(o); gtk_widget_reparent((GtkWidget *)(opaque)o->native, (GtkWidget *)0); } } /* ttframe */ static gint target()_AskCloseCallback_ttframe(GtkWidget *widget, GdkEvent *event, gpointer data) { ttframe o = ID2(ttframe,(opaque)data); if (o) FireSimpleEvent((ttcomponent)o, ttevent_evtype_askclose); return TRUE; /* The event handler will delete the window itself if it wants to */ } static ttcallback target()_AddAskCloseCallback_ttframe(ttframe o) { ttcallback l; opaque id = OBJ2ID(o); if ((l = Create_ttcallback((ttcomponent)o))) { if ((l->native = (opaque)gtk_signal_connect(GTK_OBJECT((gpointer)o->native), "delete_event", GTK_SIGNAL_FUNC(target()_AskCloseCallback_ttframe), (gpointer)id))) return l; TDEL(l); } return NULL; } static BUILD(ttframe) { if ((o->native = (opaque)gtk_window_new(GTK_WINDOW_TOPLEVEL)) && target()_AddAskCloseCallback_ttframe(o)) return o; return NULL; } static void DEF(SetVisible_ttframe)(ttframe o, ttbyte on_off) { o->vflags ^= ttvisible_vflags_visible; if (on_off) gtk_widget_show((GtkWidget *)o->native); else gtk_widget_hide((GtkWidget *)o->native); } static ttbyte HWDEF(Sync)(void) { return 1; } static ttbyte HWDEF(Flush)(void) { return 1; } static ttbyte HWDEF(TimidFlush)(void) { return 1; } #if 0 /* not used */ static ttbyte HWDEF(MainLoop)(void) { gtk_main(); return 1; } static void HWDEF(ExitMainLoop)(void) { gtk_main_quit(); } #endif static ttbyte HWDEF(MainLoopOnce)(ttbyte wait) { gtk_main_iteration_do((gboolean)wait); return 1; } static void HWDEF(DeleteCallback)(ttcallback o) { } static void HWDEF(Close)(void) { } static int HWDEF(ConnectionFd)(void) { return -1; } static ttuint HWDEF(GetErrno)(void) { return TT_GTK_EUNFINISHED; } static ttuint HWDEF(GetErrnoDetail)(void) { return 0; } static TT_CONST ttbyte *HWDEF(StrError)(ttuint E) { switch (E) { case TT_GTK_EUNFINISHED: return "gtk support is not finished yet :("; } return ""; } static TT_CONST ttbyte *HWDEF(StrErrorDetail)(ttuint E, ttuint S) { return ""; } #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_gtk_InitHW(tthw *HW) #endif { int argc = 1; char *argv_real[] = {"FIXME", NULL}; char **argv = argv_real; /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = >k_TTClasses.HW; if (gtk_init_check(&argc, &argv)) return >k_TTClasses; FAIL(TT_GTK_EUNFINISHED, 0); /* it's unfinished... */ return (ttclasses)0; } DECL_AFTER ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/gtk_m4.c�������������������������������������������������������������������0000664�0000000�0000000�00000156161�13775351206�0016342�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from gtk_c by m4/hw.m4h, do not edit! */ /* * gtk_m4.c -- implementation of libTT methods on "gtk" target display * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is gtk_c and is preprocessed by m4 to produce gtk_m4.c * * It must be a valid m4 file, and must produce a valid C include file. * * * Copyright (C) 2002 by Massimiliano Ghilardi and Adam Olsen * * 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 * */ #include <gtk/gtk.h> /* order is crucial here! */ #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #endif /* include our internal copy of TT.h instead of the public one */ #include "TT.h" #include <TT/TTerrno.h> #include "mutex.h" #include "TTextern.h" #include "TTassert.h" #include "utils.h" #include "inlines.h" #include "seterrno.h" #include "theme.h" #include "common_m4.h" static s_ttclasses gtk_TTClasses; /* * We need to write down only overloaded methods. */ #define TT_GTK_EUNFINISHED 1 /* ttobject */ static void gtk_Break_ttobject(ttobject o) { if (o) { if (o->native) { gtk_object_destroy((GtkObject *)(opaque)o->native); o->native = (opaque)0; } } } /* ttwidget */ static ttwidget gtk_Build_ttwidget(ttwidget o) { if ((o->native = (opaque)gtk_fixed_new())) { gtk_widget_realize((GtkWidget *)(opaque)o->native); return o; } return NULL; } static void gtk_AddTo_ttwidget(ttwidget o, ttvisible parent, ttany constraints) { if (parent && !o->parent) { TClass_default(ttwidget)->AddTo(o, parent, constraints); gtk_widget_reparent((GtkWidget *)(opaque)o->native, (GtkWidget *)(opaque)parent->native); if (o->vflags & ttvisible_vflags_visible) gtk_widget_show((GtkWidget *)(opaque)o->native); } } static void gtk_SetVisible_ttwidget(ttwidget o, ttbyte on_off) { if (!on_off != !(o->vflags & ttvisible_vflags_visible)) { o->vflags ^= ttvisible_vflags_visible; if (o->parent) { if (on_off) gtk_widget_show((GtkWidget *)(opaque)o->native); else gtk_widget_hide((GtkWidget *)(opaque)o->native); } } } static void gtk_Remove_ttwidget(ttwidget o) { if (o->parent) { TClass_default(ttwidget)->Remove(o); gtk_widget_reparent((GtkWidget *)(opaque)o->native, (GtkWidget *)0); } } /* ttframe */ static gint gtk_AskCloseCallback_ttframe(GtkWidget *widget, GdkEvent *event, gpointer data) { ttframe o = ID2(ttframe, (opaque)data); if (o) FireSimpleEvent((ttcomponent)o, ttevent_evtype_askclose); return ttrue; /* The event handler will delete the window itself if it wants to */ } static ttcallback gtk_AddAskCloseCallback_ttframe(ttframe o) { ttcallback l; opaque id = OBJ2ID(o); if ((l = Create_ttcallback((ttcomponent)o))) { if ((l->native = (opaque)gtk_signal_connect(GTK_OBJECT((gpointer)o->native), "delete_event", GTK_SIGNAL_FUNC(gtk_AskCloseCallback_ttframe), (gpointer)id))) return l; TDEL(l); } return NULL; } static ttframe gtk_Build_ttframe(ttframe o) { if ((o->native = (opaque)gtk_window_new(GTK_WINDOW_TOPLEVEL)) && gtk_AddAskCloseCallback_ttframe(o)) return o; return NULL; } static void gtk_SetVisible_ttframe(ttframe o, ttbyte on_off) { o->vflags ^= ttvisible_vflags_visible; if (on_off) gtk_widget_show((GtkWidget *)o->native); else gtk_widget_hide((GtkWidget *)o->native); } static ttbyte gtk_Sync(void) { return 1; } static ttbyte gtk_Flush(void) { return 1; } static ttbyte gtk_TimidFlush(void) { return 1; } #if 0 /* not used */ static ttbyte gtk_MainLoop(void) { gtk_main(); return 1; } static void gtk_ExitMainLoop(void) { gtk_main_quit(); } #endif static ttbyte gtk_MainLoopOnce(ttbyte wait) { gtk_main_iteration_do((gboolean)wait); return 1; } static void gtk_DeleteCallback(ttcallback o) {} static void gtk_Close(void) {} static int gtk_ConnectionFd(void) { return -1; } static ttuint gtk_GetErrno(void) { return TT_GTK_EUNFINISHED; } static ttuint gtk_GetErrnoDetail(void) { return 0; } static TT_CONST ttbyte *gtk_StrError(ttuint E) { switch (E) { case TT_GTK_EUNFINISHED: return "gtk support is not finished yet :("; } return ""; } static TT_CONST ttbyte *gtk_StrErrorDetail(ttuint E, ttuint S) { return ""; } #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_gtk_InitHW(tthw *HW) #endif { int argc = 1; char *argv_real[] = {"FIXME", NULL}; char **argv = argv_real; /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = >k_TTClasses.HW; if (gtk_init_check(&argc, &argv)) return >k_TTClasses; FAIL(TT_GTK_EUNFINISHED, 0); /* it's unfinished... */ return (ttclasses)0; } /* * use default values for methods not implemented in gtk_c * * null display target MUST IMPLEMENT ALL METHODS, even if as stubs. */ static s_ttclasses gtk_TTClasses = { { Class_ttobj, id_ttobj, magicmask_ttobj, magic_ttobj, size_ttobj, }, { Class_ttclass, id_ttclass, magicmask_ttclass, magic_ttclass, size_ttclass, /* extends ttclass_ttobj */ }, { Class_ttobject, id_ttobject, magicmask_ttobject, magic_ttobject, size_ttobject, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttobject */, (void *)NULL /* UNDEFINED: Build_ttobject */, gtk_Break_ttobject, (void *)NULL /* UNDEFINED: Del_ttobject */, }, { Class_ttvector, id_ttvector, magicmask_ttvector, magic_ttvector, size_ttvector, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvector */, (void *)NULL /* UNDEFINED: Build_ttvector */, (void *)NULL /* inherits: Break_ttvector >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttvector */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: GetAt_ttvector */, (void *)NULL /* UNDEFINED: SetAt_ttvector */, (void *)NULL /* UNDEFINED: AddY_ttvector */, (void *)NULL /* UNDEFINED: ContainsValue_ttvector */, (void *)NULL /* UNDEFINED: RemoveRange_ttvector */, }, { Class_ttfield, id_ttfield, magicmask_ttfield, magic_ttfield, size_ttfield, /* extends ttclass_ttobj */ }, { Class_ttmethod, id_ttmethod, magicmask_ttmethod, magic_ttmethod, size_ttmethod, /* extends ttclass_ttobj */ }, { Class_ttevent, id_ttevent, magicmask_ttevent, magic_ttevent, size_ttevent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttevent */, (void *)NULL /* UNDEFINED: Build_ttevent */, (void *)NULL /* inherits: Break_ttevent >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttevent */, /* extends ttclass_ttobject */ }, { Class_tteventbig, id_tteventbig, magicmask_tteventbig, magic_tteventbig, size_tteventbig, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventbig */, (void *)NULL /* UNDEFINED: Build_tteventbig */, (void *)NULL /* inherits: Break_tteventbig >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tteventbig */, /* extends ttclass_ttobject */ /* extends ttclass_ttevent */ }, { Class_ttbitmask, id_ttbitmask, magicmask_ttbitmask, magic_ttbitmask, size_ttbitmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbitmask */, (void *)NULL /* UNDEFINED: Build_ttbitmask */, (void *)NULL /* inherits: Break_ttbitmask >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbitmask */, /* extends ttclass_ttobject */ }, { Class_tteventmask, id_tteventmask, magicmask_tteventmask, magic_tteventmask, size_tteventmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventmask */, (void *)NULL /* UNDEFINED: Build_tteventmask */, (void *)NULL /* inherits: Break_tteventmask >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tteventmask */, /* extends ttclass_ttobject */ }, { Class_ttcallback, id_ttcallback, magicmask_ttcallback, magic_ttcallback, size_ttcallback, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcallback */, (void *)NULL /* UNDEFINED: Build_ttcallback */, (void *)NULL /* inherits: Break_ttcallback >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcallback */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttcallback */, }, { Class_ttlistener, id_ttlistener, magicmask_ttlistener, magic_ttlistener, size_ttlistener, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlistener */, (void *)NULL /* UNDEFINED: Build_ttlistener */, (void *)NULL /* inherits: Break_ttlistener >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlistener */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttlistener */, /* extends ttclass_ttcallback */ (void *)NULL /* UNDEFINED: AddTo_ttlistener */, (void *)NULL /* UNDEFINED: Remove_ttlistener */, }, { Class_tttimer, id_tttimer, magicmask_tttimer, magic_tttimer, size_tttimer, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttimer */, (void *)NULL /* UNDEFINED: Build_tttimer */, (void *)NULL /* inherits: Break_tttimer >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttimer */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_tttimer */, /* extends ttclass_ttcallback */ (void *)NULL /* UNDEFINED: AddTo_tttimer */, (void *)NULL /* UNDEFINED: Remove_tttimer */, /* extends ttclass_ttlistener */ (void *)NULL /* UNDEFINED: SetEnabled_tttimer */, (void *)NULL /* UNDEFINED: IsEnabled_tttimer */, }, { Class_ttcomponent, id_ttcomponent, magicmask_ttcomponent, magic_ttcomponent, size_ttcomponent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcomponent */, (void *)NULL /* UNDEFINED: Build_ttcomponent */, (void *)NULL /* inherits: Break_ttcomponent >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcomponent */, /* extends ttclass_ttobject */ }, { Class_ttdata, id_ttdata, magicmask_ttdata, magic_ttdata, size_ttdata, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttdata */, (void *)NULL /* UNDEFINED: Build_ttdata */, (void *)NULL /* inherits: Break_ttdata >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttdata */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttdata */, (void *)NULL /* UNDEFINED: Remove_ttdata */, }, { Class_ttvisible, id_ttvisible, magicmask_ttvisible, magic_ttvisible, size_ttvisible, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvisible */, (void *)NULL /* UNDEFINED: Build_ttvisible */, (void *)NULL /* inherits: Break_ttvisible >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttvisible */, (void *)NULL /* UNDEFINED: Validate_ttvisible */, (void *)NULL /* UNDEFINED: Remove_ttvisible */, (void *)NULL /* UNDEFINED: Invalidate_ttvisible */, (void *)NULL /* UNDEFINED: SetVisible_ttvisible */, (void *)NULL /* UNDEFINED: SetTheme_ttvisible */, (void *)NULL /* UNDEFINED: Draw_ttvisible */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttvisible */, }, { Class_ttlayout, id_ttlayout, magicmask_ttlayout, magic_ttlayout, size_ttlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlayout */, (void *)NULL /* UNDEFINED: Build_ttlayout */, (void *)NULL /* inherits: Break_ttlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttlayout */, }, { Class_ttboxlayout, id_ttboxlayout, magicmask_ttboxlayout, magic_ttboxlayout, size_ttboxlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttboxlayout */, (void *)NULL /* UNDEFINED: Build_ttboxlayout */, (void *)NULL /* inherits: Break_ttboxlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttboxlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttboxlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttboxlayout */, /* extends ttclass_ttlayout */ }, { Class_ttborderlayout, id_ttborderlayout, magicmask_ttborderlayout, magic_ttborderlayout, size_ttborderlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttborderlayout */, (void *)NULL /* UNDEFINED: Build_ttborderlayout */, (void *)NULL /* inherits: Break_ttborderlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttborderlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttborderlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttborderlayout */, /* extends ttclass_ttlayout */ }, { Class_ttnative, id_ttnative, magicmask_ttnative, magic_ttnative, size_ttnative, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttnative */, (void *)NULL /* UNDEFINED: Build_ttnative */, (void *)NULL /* inherits: Break_ttnative >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttnative */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttnative */, (void *)NULL /* UNDEFINED: Validate_ttnative */, (void *)NULL /* UNDEFINED: Remove_ttnative */, (void *)NULL /* UNDEFINED: Invalidate_ttnative */, (void *)NULL /* UNDEFINED: SetVisible_ttnative */, (void *)NULL /* UNDEFINED: SetTheme_ttnative */, (void *)NULL /* UNDEFINED: Draw_ttnative */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttnative */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: GetRoot_ttnative */, (void *)NULL /* UNDEFINED: GetW_ttnative */, (void *)NULL /* UNDEFINED: GetH_ttnative */, }, { Class_ttwidget, id_ttwidget, magicmask_ttwidget, magic_ttwidget, size_ttwidget, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwidget */, gtk_Build_ttwidget, (void *)NULL /* inherits: Break_ttwidget >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttwidget */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ gtk_AddTo_ttwidget, (void *)NULL /* UNDEFINED: Validate_ttwidget */, gtk_Remove_ttwidget, (void *)NULL /* UNDEFINED: Invalidate_ttwidget */, gtk_SetVisible_ttwidget, (void *)NULL /* UNDEFINED: SetTheme_ttwidget */, (void *)NULL /* UNDEFINED: Draw_ttwidget */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttwidget */, (void *)NULL /* UNDEFINED: SetXY_ttwidget */, (void *)NULL /* UNDEFINED: SetWH_ttwidget */, (void *)NULL /* UNDEFINED: SetXl_ttwidget */, (void *)NULL /* UNDEFINED: SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttwidget */, (void *)NULL /* UNDEFINED: SetHl_ttwidget */, (void *)NULL /* UNDEFINED: SetTooltip_ttwidget */, }, { Class_ttlabel, id_ttlabel, magicmask_ttlabel, magic_ttlabel, size_ttlabel, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlabel */, (void *)NULL /* inherits: Build_ttlabel >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttlabel >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlabel */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttlabel >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttlabel */, (void *)NULL /* inherits: Remove_ttlabel >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttlabel */, (void *)NULL /* inherits: SetVisible_ttlabel >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttlabel */, (void *)NULL /* UNDEFINED: Draw_ttlabel */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttlabel */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttlabel */, (void *)NULL /* UNDEFINED: SetXY_ttlabel */, (void *)NULL /* UNDEFINED: SetWH_ttlabel */, (void *)NULL /* UNDEFINED: SetXl_ttlabel */, (void *)NULL /* UNDEFINED: SetYl_ttlabel */, (void *)NULL /* UNDEFINED: SetWl_ttlabel */, (void *)NULL /* UNDEFINED: SetHl_ttlabel */, (void *)NULL /* UNDEFINED: SetTooltip_ttlabel */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetFontD_ttlabel */, }, { Class_tttooltip, id_tttooltip, magicmask_tttooltip, magic_tttooltip, size_tttooltip, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttooltip */, (void *)NULL /* inherits: Build_tttooltip >> Build_ttwidget */, (void *)NULL /* inherits: Break_tttooltip >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttooltip */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttooltip >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttooltip */, (void *)NULL /* inherits: Remove_tttooltip >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_tttooltip */, (void *)NULL /* inherits: SetVisible_tttooltip >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttooltip */, (void *)NULL /* UNDEFINED: Draw_tttooltip */, (void *)NULL /* UNDEFINED: BuiltinRepaint_tttooltip */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttooltip */, (void *)NULL /* UNDEFINED: SetXY_tttooltip */, (void *)NULL /* UNDEFINED: SetWH_tttooltip */, (void *)NULL /* UNDEFINED: SetXl_tttooltip */, (void *)NULL /* UNDEFINED: SetYl_tttooltip */, (void *)NULL /* UNDEFINED: SetWl_tttooltip */, (void *)NULL /* UNDEFINED: SetHl_tttooltip */, (void *)NULL /* UNDEFINED: SetTooltip_tttooltip */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetFontD_tttooltip */, /* extends ttclass_ttlabel */ (void *)NULL /* UNDEFINED: SetWidget_tttooltip */, }, { Class_ttbuttongroup, id_ttbuttongroup, magicmask_ttbuttongroup, magic_ttbuttongroup, size_ttbuttongroup, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbuttongroup */, (void *)NULL /* UNDEFINED: Build_ttbuttongroup */, (void *)NULL /* inherits: Break_ttbuttongroup >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbuttongroup */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: Add_ttbuttongroup */, (void *)NULL /* UNDEFINED: Remove_ttbuttongroup */, (void *)NULL /* UNDEFINED: SetChecked_ttbuttongroup */, }, { Class_ttanybutton, id_ttanybutton, magicmask_ttanybutton, magic_ttanybutton, size_ttanybutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanybutton */, (void *)NULL /* inherits: Build_ttanybutton >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttanybutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanybutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanybutton */, (void *)NULL /* inherits: Remove_ttanybutton >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttanybutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanybutton */, (void *)NULL /* UNDEFINED: Draw_ttanybutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanybutton */, (void *)NULL /* UNDEFINED: SetXY_ttanybutton */, (void *)NULL /* UNDEFINED: SetWH_ttanybutton */, (void *)NULL /* UNDEFINED: SetXl_ttanybutton */, (void *)NULL /* UNDEFINED: SetYl_ttanybutton */, (void *)NULL /* UNDEFINED: SetWl_ttanybutton */, (void *)NULL /* UNDEFINED: SetHl_ttanybutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttanybutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanybutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttanybutton */, }, { Class_ttbutton, id_ttbutton, magicmask_ttbutton, magic_ttbutton, size_ttbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbutton */, (void *)NULL /* inherits: Build_ttbutton >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttbutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttbutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttbutton */, (void *)NULL /* inherits: Remove_ttbutton >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttbutton */, (void *)NULL /* inherits: SetVisible_ttbutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttbutton */, (void *)NULL /* UNDEFINED: Draw_ttbutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttbutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttbutton */, (void *)NULL /* UNDEFINED: SetXY_ttbutton */, (void *)NULL /* UNDEFINED: SetWH_ttbutton */, (void *)NULL /* UNDEFINED: SetXl_ttbutton */, (void *)NULL /* UNDEFINED: SetYl_ttbutton */, (void *)NULL /* UNDEFINED: SetWl_ttbutton */, (void *)NULL /* UNDEFINED: SetHl_ttbutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttbutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttbutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttbutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttbutton */, }, { Class_ttcheckbutton, id_ttcheckbutton, magicmask_ttcheckbutton, magic_ttcheckbutton, size_ttcheckbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckbutton */, (void *)NULL /* inherits: Build_ttcheckbutton >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttcheckbutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcheckbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttcheckbutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttcheckbutton */, (void *)NULL /* inherits: Remove_ttcheckbutton >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttcheckbutton */, (void *)NULL /* inherits: SetVisible_ttcheckbutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttcheckbutton */, (void *)NULL /* UNDEFINED: Draw_ttcheckbutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttcheckbutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetXY_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetWH_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetXl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetYl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetWl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetHl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttcheckbutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttcheckbutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttcheckbutton */, /* extends ttclass_ttbutton */ (void *)NULL /* UNDEFINED: SetChecked_ttcheckbutton */, }, { Class_ttradiobutton, id_ttradiobutton, magicmask_ttradiobutton, magic_ttradiobutton, size_ttradiobutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiobutton */, (void *)NULL /* inherits: Build_ttradiobutton >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttradiobutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttradiobutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttradiobutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttradiobutton */, (void *)NULL /* inherits: Remove_ttradiobutton >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttradiobutton */, (void *)NULL /* inherits: SetVisible_ttradiobutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttradiobutton */, (void *)NULL /* UNDEFINED: Draw_ttradiobutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttradiobutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttradiobutton */, (void *)NULL /* UNDEFINED: SetXY_ttradiobutton */, (void *)NULL /* UNDEFINED: SetWH_ttradiobutton */, (void *)NULL /* UNDEFINED: SetXl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetYl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetWl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetHl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttradiobutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttradiobutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttradiobutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttradiobutton */, /* extends ttclass_ttbutton */ (void *)NULL /* UNDEFINED: SetChecked_ttradiobutton */, /* extends ttclass_ttcheckbutton */ }, { Class_ttanyscroll, id_ttanyscroll, magicmask_ttanyscroll, magic_ttanyscroll, size_ttanyscroll, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanyscroll */, (void *)NULL /* inherits: Build_ttanyscroll >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttanyscroll >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanyscroll */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanyscroll >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanyscroll */, (void *)NULL /* inherits: Remove_ttanyscroll >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttanyscroll */, (void *)NULL /* inherits: SetVisible_ttanyscroll >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanyscroll */, (void *)NULL /* UNDEFINED: Draw_ttanyscroll */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttanyscroll */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanyscroll */, (void *)NULL /* UNDEFINED: SetXY_ttanyscroll */, (void *)NULL /* UNDEFINED: SetWH_ttanyscroll */, (void *)NULL /* UNDEFINED: SetXl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetYl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetWl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetHl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetTooltip_ttanyscroll */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanyscroll */, (void *)NULL /* UNDEFINED: SetAttrD_ttanyscroll */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttanyscroll */, (void *)NULL /* UNDEFINED: SetState_ttanyscroll */, (void *)NULL /* UNDEFINED: SetOrientation_ttanyscroll */, (void *)NULL /* UNDEFINED: SetSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetRealSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetViewSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetPosition_ttanyscroll */, }, { Class_ttscrollbar, id_ttscrollbar, magicmask_ttscrollbar, magic_ttscrollbar, size_ttscrollbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollbar */, (void *)NULL /* inherits: Build_ttscrollbar >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttscrollbar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscrollbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollbar >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscrollbar */, (void *)NULL /* inherits: Remove_ttscrollbar >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttscrollbar */, (void *)NULL /* inherits: SetVisible_ttscrollbar >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscrollbar */, (void *)NULL /* UNDEFINED: Draw_ttscrollbar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttscrollbar */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscrollbar */, (void *)NULL /* UNDEFINED: SetXY_ttscrollbar */, (void *)NULL /* UNDEFINED: SetWH_ttscrollbar */, (void *)NULL /* UNDEFINED: SetXl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetYl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetWl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetHl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetTooltip_ttscrollbar */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttscrollbar */, (void *)NULL /* UNDEFINED: SetAttrD_ttscrollbar */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttscrollbar */, (void *)NULL /* UNDEFINED: SetState_ttscrollbar */, (void *)NULL /* UNDEFINED: SetOrientation_ttscrollbar */, (void *)NULL /* UNDEFINED: SetSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetRealSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetViewSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetPosition_ttscrollbar */, /* extends ttclass_ttanyscroll */ }, { Class_ttslider, id_ttslider, magicmask_ttslider, magic_ttslider, size_ttslider, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttslider */, (void *)NULL /* inherits: Build_ttslider >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttslider >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttslider */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttslider >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttslider */, (void *)NULL /* inherits: Remove_ttslider >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttslider */, (void *)NULL /* inherits: SetVisible_ttslider >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttslider */, (void *)NULL /* UNDEFINED: Draw_ttslider */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttslider */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttslider */, (void *)NULL /* UNDEFINED: SetXY_ttslider */, (void *)NULL /* UNDEFINED: SetWH_ttslider */, (void *)NULL /* UNDEFINED: SetXl_ttslider */, (void *)NULL /* UNDEFINED: SetYl_ttslider */, (void *)NULL /* UNDEFINED: SetWl_ttslider */, (void *)NULL /* UNDEFINED: SetHl_ttslider */, (void *)NULL /* UNDEFINED: SetTooltip_ttslider */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttslider */, (void *)NULL /* UNDEFINED: SetAttrD_ttslider */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttslider */, (void *)NULL /* UNDEFINED: SetState_ttslider */, (void *)NULL /* UNDEFINED: SetOrientation_ttslider */, (void *)NULL /* UNDEFINED: SetSize_ttslider */, (void *)NULL /* UNDEFINED: SetRealSize_ttslider */, (void *)NULL /* UNDEFINED: SetViewSize_ttslider */, (void *)NULL /* UNDEFINED: SetPosition_ttslider */, /* extends ttclass_ttanyscroll */ (void *)NULL /* UNDEFINED: SetSlideMin_ttslider */, (void *)NULL /* UNDEFINED: SetSlideMax_ttslider */, (void *)NULL /* UNDEFINED: SetSlideValue_ttslider */, }, { Class_ttprogressbar, id_ttprogressbar, magicmask_ttprogressbar, magic_ttprogressbar, size_ttprogressbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttprogressbar */, (void *)NULL /* inherits: Build_ttprogressbar >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttprogressbar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttprogressbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttprogressbar >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttprogressbar */, (void *)NULL /* inherits: Remove_ttprogressbar >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttprogressbar */, (void *)NULL /* inherits: SetVisible_ttprogressbar >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttprogressbar */, (void *)NULL /* UNDEFINED: Draw_ttprogressbar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttprogressbar */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttprogressbar */, (void *)NULL /* UNDEFINED: SetXY_ttprogressbar */, (void *)NULL /* UNDEFINED: SetWH_ttprogressbar */, (void *)NULL /* UNDEFINED: SetXl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetYl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetWl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetHl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetTooltip_ttprogressbar */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttprogressbar */, (void *)NULL /* UNDEFINED: SetAttrD_ttprogressbar */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttprogressbar */, (void *)NULL /* UNDEFINED: SetState_ttprogressbar */, (void *)NULL /* UNDEFINED: SetOrientation_ttprogressbar */, (void *)NULL /* UNDEFINED: SetSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetRealSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetViewSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetPosition_ttprogressbar */, /* extends ttclass_ttanyscroll */ }, { Class_ttscrollpane, id_ttscrollpane, magicmask_ttscrollpane, magic_ttscrollpane, size_ttscrollpane, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollpane */, (void *)NULL /* inherits: Build_ttscrollpane >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttscrollpane >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscrollpane */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollpane >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscrollpane */, (void *)NULL /* inherits: Remove_ttscrollpane >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttscrollpane */, (void *)NULL /* inherits: SetVisible_ttscrollpane >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscrollpane */, (void *)NULL /* UNDEFINED: Draw_ttscrollpane */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttscrollpane */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscrollpane */, (void *)NULL /* UNDEFINED: SetXY_ttscrollpane */, (void *)NULL /* UNDEFINED: SetWH_ttscrollpane */, (void *)NULL /* UNDEFINED: SetXl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetYl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetWl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetHl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetTooltip_ttscrollpane */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetBarX_ttscrollpane */, (void *)NULL /* UNDEFINED: SetBarY_ttscrollpane */, }, { Class_ttwindow, id_ttwindow, magicmask_ttwindow, magic_ttwindow, size_ttwindow, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwindow */, (void *)NULL /* inherits: Build_ttwindow >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttwindow >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttwindow */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttwindow >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttwindow */, (void *)NULL /* inherits: Remove_ttwindow >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttwindow */, (void *)NULL /* inherits: SetVisible_ttwindow >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttwindow */, (void *)NULL /* UNDEFINED: Draw_ttwindow */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttwindow */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttwindow */, (void *)NULL /* UNDEFINED: SetXY_ttwindow */, (void *)NULL /* UNDEFINED: SetWH_ttwindow */, (void *)NULL /* UNDEFINED: SetXl_ttwindow */, (void *)NULL /* UNDEFINED: SetYl_ttwindow */, (void *)NULL /* UNDEFINED: SetWl_ttwindow */, (void *)NULL /* UNDEFINED: SetHl_ttwindow */, (void *)NULL /* UNDEFINED: SetTooltip_ttwindow */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttwindow */, }, { Class_ttframe, id_ttframe, magicmask_ttframe, magic_ttframe, size_ttframe, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttframe */, gtk_Build_ttframe, (void *)NULL /* inherits: Break_ttframe >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttframe */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttframe >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttframe */, (void *)NULL /* inherits: Remove_ttframe >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttframe */, gtk_SetVisible_ttframe, (void *)NULL /* UNDEFINED: SetTheme_ttframe */, (void *)NULL /* UNDEFINED: Draw_ttframe */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttframe */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttframe */, (void *)NULL /* UNDEFINED: SetXY_ttframe */, (void *)NULL /* UNDEFINED: SetWH_ttframe */, (void *)NULL /* UNDEFINED: SetXl_ttframe */, (void *)NULL /* UNDEFINED: SetYl_ttframe */, (void *)NULL /* UNDEFINED: SetWl_ttframe */, (void *)NULL /* UNDEFINED: SetHl_ttframe */, (void *)NULL /* UNDEFINED: SetTooltip_ttframe */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttframe */, /* extends ttclass_ttwindow */ (void *)NULL /* UNDEFINED: SetMenubar_ttframe */, }, { Class_ttscroller, id_ttscroller, magicmask_ttscroller, magic_ttscroller, size_ttscroller, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscroller */, (void *)NULL /* inherits: Build_ttscroller >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttscroller >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscroller */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscroller >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscroller */, (void *)NULL /* inherits: Remove_ttscroller >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttscroller */, (void *)NULL /* inherits: SetVisible_ttscroller >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscroller */, (void *)NULL /* UNDEFINED: Draw_ttscroller */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttscroller */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscroller */, (void *)NULL /* UNDEFINED: SetXY_ttscroller */, (void *)NULL /* UNDEFINED: SetWH_ttscroller */, (void *)NULL /* UNDEFINED: SetXl_ttscroller */, (void *)NULL /* UNDEFINED: SetYl_ttscroller */, (void *)NULL /* UNDEFINED: SetWl_ttscroller */, (void *)NULL /* UNDEFINED: SetHl_ttscroller */, (void *)NULL /* UNDEFINED: SetTooltip_ttscroller */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttscroller */, /* extends ttclass_ttwindow */ }, { Class_ttmenuitem, id_ttmenuitem, magicmask_ttmenuitem, magic_ttmenuitem, size_ttmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenuitem */, (void *)NULL /* UNDEFINED: Build_ttmenuitem */, (void *)NULL /* inherits: Break_ttmenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenuitem */, (void *)NULL /* UNDEFINED: Validate_ttmenuitem */, (void *)NULL /* UNDEFINED: Remove_ttmenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttmenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttmenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttmenuitem */, (void *)NULL /* UNDEFINED: Draw_ttmenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenuitem */, /* extends ttclass_ttvisible */ }, { Class_ttcheckmenuitem, id_ttcheckmenuitem, magicmask_ttcheckmenuitem, magic_ttcheckmenuitem, size_ttcheckmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Build_ttcheckmenuitem */, (void *)NULL /* inherits: Break_ttcheckmenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcheckmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Validate_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Remove_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Draw_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttcheckmenuitem */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttradiomenuitem, id_ttradiomenuitem, magicmask_ttradiomenuitem, magic_ttradiomenuitem, size_ttradiomenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Build_ttradiomenuitem */, (void *)NULL /* inherits: Break_ttradiomenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttradiomenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Validate_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Remove_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttradiomenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttradiomenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Draw_ttradiomenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttradiomenuitem */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ /* extends ttclass_ttcheckmenuitem */ }, { Class_ttmenu, id_ttmenu, magicmask_ttmenu, magic_ttmenu, size_ttmenu, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenu */, (void *)NULL /* UNDEFINED: Build_ttmenu */, (void *)NULL /* inherits: Break_ttmenu >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenu */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenu */, (void *)NULL /* UNDEFINED: Validate_ttmenu */, (void *)NULL /* UNDEFINED: Remove_ttmenu */, (void *)NULL /* UNDEFINED: Invalidate_ttmenu */, (void *)NULL /* UNDEFINED: SetVisible_ttmenu */, (void *)NULL /* UNDEFINED: SetTheme_ttmenu */, (void *)NULL /* UNDEFINED: Draw_ttmenu */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenu */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttmenubar, id_ttmenubar, magicmask_ttmenubar, magic_ttmenubar, size_ttmenubar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenubar */, (void *)NULL /* UNDEFINED: Build_ttmenubar */, (void *)NULL /* inherits: Break_ttmenubar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenubar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenubar */, (void *)NULL /* UNDEFINED: Validate_ttmenubar */, (void *)NULL /* UNDEFINED: Remove_ttmenubar */, (void *)NULL /* UNDEFINED: Invalidate_ttmenubar */, (void *)NULL /* UNDEFINED: SetVisible_ttmenubar */, (void *)NULL /* UNDEFINED: SetTheme_ttmenubar */, (void *)NULL /* UNDEFINED: Draw_ttmenubar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenubar */, /* extends ttclass_ttvisible */ }, { Class_ttanytext, id_ttanytext, magicmask_ttanytext, magic_ttanytext, size_ttanytext, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanytext */, (void *)NULL /* inherits: Build_ttanytext >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttanytext >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanytext */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanytext >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanytext */, (void *)NULL /* inherits: Remove_ttanytext >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttanytext */, (void *)NULL /* inherits: SetVisible_ttanytext >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanytext */, (void *)NULL /* UNDEFINED: Draw_ttanytext */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttanytext */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanytext */, (void *)NULL /* UNDEFINED: SetXY_ttanytext */, (void *)NULL /* UNDEFINED: SetWH_ttanytext */, (void *)NULL /* UNDEFINED: SetXl_ttanytext */, (void *)NULL /* UNDEFINED: SetYl_ttanytext */, (void *)NULL /* UNDEFINED: SetWl_ttanytext */, (void *)NULL /* UNDEFINED: SetHl_ttanytext */, (void *)NULL /* UNDEFINED: SetTooltip_ttanytext */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttanytext */, /* extends ttclass_ttwindow */ }, { Class_tttextfield, id_tttextfield, magicmask_tttextfield, magic_tttextfield, size_tttextfield, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextfield */, (void *)NULL /* inherits: Build_tttextfield >> Build_ttwidget */, (void *)NULL /* inherits: Break_tttextfield >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttextfield */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextfield >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttextfield */, (void *)NULL /* inherits: Remove_tttextfield >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_tttextfield */, (void *)NULL /* inherits: SetVisible_tttextfield >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttextfield */, (void *)NULL /* UNDEFINED: Draw_tttextfield */, (void *)NULL /* UNDEFINED: BuiltinRepaint_tttextfield */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttextfield */, (void *)NULL /* UNDEFINED: SetXY_tttextfield */, (void *)NULL /* UNDEFINED: SetWH_tttextfield */, (void *)NULL /* UNDEFINED: SetXl_tttextfield */, (void *)NULL /* UNDEFINED: SetYl_tttextfield */, (void *)NULL /* UNDEFINED: SetWl_tttextfield */, (void *)NULL /* UNDEFINED: SetHl_tttextfield */, (void *)NULL /* UNDEFINED: SetTooltip_tttextfield */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_tttextfield */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ }, { Class_tttextarea, id_tttextarea, magicmask_tttextarea, magic_tttextarea, size_tttextarea, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextarea */, (void *)NULL /* inherits: Build_tttextarea >> Build_ttwidget */, (void *)NULL /* inherits: Break_tttextarea >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttextarea */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextarea >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttextarea */, (void *)NULL /* inherits: Remove_tttextarea >> Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_tttextarea */, (void *)NULL /* inherits: SetVisible_tttextarea >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttextarea */, (void *)NULL /* UNDEFINED: Draw_tttextarea */, (void *)NULL /* UNDEFINED: BuiltinRepaint_tttextarea */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttextarea */, (void *)NULL /* UNDEFINED: SetXY_tttextarea */, (void *)NULL /* UNDEFINED: SetWH_tttextarea */, (void *)NULL /* UNDEFINED: SetXl_tttextarea */, (void *)NULL /* UNDEFINED: SetYl_tttextarea */, (void *)NULL /* UNDEFINED: SetWl_tttextarea */, (void *)NULL /* UNDEFINED: SetHl_tttextarea */, (void *)NULL /* UNDEFINED: SetTooltip_tttextarea */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_tttextarea */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ /* extends ttclass_tttextfield */ }, { Class_tttheme, id_tttheme, magicmask_tttheme, magic_tttheme, size_tttheme, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttheme */, (void *)NULL /* UNDEFINED: Build_tttheme */, (void *)NULL /* inherits: Break_tttheme >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttheme */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { Class_ttapplication, id_ttapplication, magicmask_ttapplication, magic_ttapplication, size_ttapplication, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttapplication */, (void *)NULL /* UNDEFINED: Build_ttapplication */, (void *)NULL /* inherits: Break_ttapplication >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttapplication */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { gtk_Sync, gtk_Flush, gtk_TimidFlush, gtk_MainLoopOnce, gtk_DeleteCallback, gtk_Close, gtk_ConnectionFd, gtk_GetErrno, gtk_GetErrnoDetail, gtk_StrError, gtk_StrErrorDetail, }, }; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/m4/������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015317�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/m4/common.m4h��������������������������������������������������������������0000664�0000000�0000000�00000001610�13775351206�0017217�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl This file is m4/common.m4 : m4 macros to autogenerate common_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/common.m4', do not edit! */ /* * common_m4.h -- common #defines for all target drivers * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_HW_COMMON_H #define TT_HW_COMMON_H /* clang-format off */ include(`m4/TTclasses.m4') define(`el',` /* defines for ttclass_$1 fields: Class, id, size */ `#'define Class_$1 TClass_ttclass `#'define id_$1 id_ttclass_$1 `#'define size_$1 sizeof(struct s_$1) ') TTlist() undefine(`el') #endif /* TT_HW_COMMON_H */ ������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/m4/hw.m4�������������������������������������������������������������������0000664�0000000�0000000�00000011665�13775351206�0016210�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is m4/hw.m4h : m4 macros to autogenerate *_m4.c dnl Tell the user about this. /* This file was automatically generated from target()_c by m4/hw.m4h, do not edit! */ /* * target()_m4.c -- implementation of libTT methods on "target()" `target' display * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ include(`m4/TTclasses.m4') divert(-1) dnl dnl DESIGN PROBLEM dnl dnl we have to deal with a multipath inheritance, and there is no automatic way dnl to determine which is the default implementation of methods that are not explicitly dnl overridden by display targets. dnl dnl let's try to explain with an example and a picture: dnl dnl the base driver null_c defines method `SetXY' for ttwidget saying DEF(SetXY_ttwidget) dnl then later overrides the same method `SetXY' for ttscrollpane saying DEF(SetXY_ttscrollpane) dnl dnl the derivate driver twin_c does exactly the same: dnl says DEF(SetXY_ttwidget) and later DEF(SetXY_ttscrollpane); see the picture below: dnl dnl null_c: DEF(SetXY_ttwidget) DEF(SetXY_ttscrollpane) dnl dnl twin_c: DEF(SetXY_ttwidget) DEF(SetXY_ttscrollpane) dnl dnl now, calling FNSUPER(ttscrollpane)->SetXY() from twin_SetXY_ttscrollpane dnl which function should invoke: twin_SetXY_ttwidget or null_SetXY_ttscrollpane? dnl dnl SOLUTION dnl dnl solution: we implement a double inheritance: dnl FNDEFAULT(ttscrollpane)->SetXY() calls null_SetXY_ttscrollpane, while dnl FNSUPER(ttscrollpane)->SetXY() calls twin_SetXY_ttwidget. dnl dnl also, in case twin_SetXY_ttscrollpane was not defined, dnl calling TTSetXY_ttwidget() on a ttscrollpane results in a call to dnl null_SetXY_ttscrollpane, which if needed can call twin_SetXY_ttwidget dnl simply as FNSUPER(ttscrollpane)->SetXY(). dnl define(`HWDEF',`define(`hw_$1')target()_$1') define(`DEF',`define(`mtd_$1')target()_$1') define(`BUILD',`$1 DEF(Build_$1)($1 o)') define(`BREAK',`void DEF(Break_$1)($1 o)') define(`NEW',`$1 DEF(New_$1)(ttclass_$1 Class, $1 o)') define(`DEL',`void DEF(Del_$1)($1 o)') define(`SUPER',`m4_super_$1') define(`FNDEFAULT',`TClass_default($1)') define(`FNSUPER',`TClass(m4_super_$1)') define(`NEWDEFAULT',`FNDEFAULT($1)->New(Class, o)') define(`NEWSUPER',`($1)FNSUPER($1)->New((ttclass_`'m4_super_$1)Class, (m4_super_$1)o)') define(`DELDEFAULT',`FNDEFAULT($1)->Del(o)') define(`DELSUPER',`FNSUPER($1)->Del((m4_super_$1)o)') define(`DECL_BEFORE', ` /* order is crucial here! */ #ifdef CONF_SOCKET_PTHREADS # include <pthread.h> #endif /* include our internal copy of TT.h instead of the `public' one */ #include "TT.h" #include <TT/TTerrno.h> #include "mutex.h" #include "TTextern.h" #include "TTassert.h" #include "utils.h" #include "inlines.h" #include "seterrno.h" #include "theme.h" #include "common_m4.h" static s_ttclasses target()_TTClasses; ') dnl m4Class_*, m4id_*, m4magicmask_*, m4magic_*, m4size_* /* and m4_super_class_* */ must always be defined! define(`el',`dnl `'`'define(`m4Class_$1')`'dnl `'`'define(`m4id_$1')`'dnl `'`'define(`m4order_$1')`'dnl `'`'define(`m4magicmask_$1')`'dnl `'`'define(`m4magic_$1')`'dnl `'`'define(`m4size_$1')`'dnl ') TTlist() undefine(`el') define(`softfail', `NULL /* UNDEFINED: $1 */') define(`hardfail', `NULL `#'error: undefined target()_$1 ') define(`fail', `ifelse(target(), `null', `hardfail($1)', `softfail($1)')') define(`DECL_AFTER', ` ifdef(`hwfail', `', `define(`hwfail', `hardfail')') /* * use default values for methods not implemented in target()_c * * null display `target' MUST IMPLEMENT ALL METHODS, even if as stubs. */ define(`extends',`TTdef_ttclass_$'`1($'`2) /* `extends' ttclass_$'`1 */ ') define(`superfield', `ifdef(`mtd'_$'`1_$'`3, `NULL /* inherits: '$'`1`_'$'`2` >> '$'`1`_'$'`3` */', dnl `ifelse('$'`3`, `ttobj', `fail(''$'`1``_''$'`2``)', `superfield(''$'`1``, ''$'`2``, m4_super_''$'`3``)')')') define(`protected', `ifdef(`m4'$'`1_$'`2, $'`1_$'`2, `ifdef(`mtd'_'$'`1`_'$'`2`, target()_'$'`1`_'$'`2`, dnl `(void *)superfield(''$'`1``, ''$'`2``, m4_super_''$'`2``)')'), ') define(`public_set',`protected($'`@)') define(`public',`protected($'`@)') define(`el',` { TTdef_ttclass_$'`1($'`1) }, ') static s_ttclasses target()_TTClasses = { TTlist() undefine(`el')`'dnl define(`public')`'dnl define(`public_set')`'dnl define(`protected')`'dnl define(`extends')`'dnl dnl dnl define(`TTHWlist', `el(Sync) el(Flush) el(TimidFlush) el(MainLoopOnce) el(DeleteCallback) dnl el(Close) el(ConnectionFd) el(GetErrno) el(GetErrnoDetail) dnl el(StrError) el(StrErrorDetail) dnl ') dnl define(`el',`ifdef(`hw'_$'`1, ` target()_'$'`1`,', ` hwfail('$'`1`),')') { TTHWlist() }, }; undefine(`el') ') divert include(target()_c) ���������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/null_c���������������������������������������������������������������������0000664�0000000�0000000�00000210742�13775351206�0016204�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is `null_c' and is preprocessed by m4 to produce `null_m4.c' * * It must be a valid m4 file, and must produce a valid C include file. * */ /* * We need to write down only overloaded methods. */ DECL_BEFORE #define REVALIDATE(call) do { \ o->Class->Invalidate(o); \ call; \ if (o->parent && (o->vflags & ttvisible_vflags_visible)) \ Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); \ } while (0) /* ttobj */ /* ttobj has no methods. nothing to do */ /* ttobject */ static NEW(ttobject) { /* * if argument (o) is non-NULL, use it instead of allocating memory. * in this case, set o->oflags to ttobject_oflags_static to avoid * deallocating it later with TTFreeMem(). */ ttuint oflags = (ttopaque)o ? ttobject_oflags_static : 0; if ((o || (o = (ttobject)TTAllocMem(Class->size)))) { if (AssignId((ttclass)Class, (ttobj)o)) { o->Class = Class; o->refcount = ttobject_refcount_alive; o->oflags = oflags; o->native = o->target_private = o->user_data = (ttany)0; o->events_inprogress = o->events_informed = (ttopaque)0; return o; } if (!(oflags & ttobject_oflags_static)) TTFreeMem(o); } return (ttobject)0; } static BUILD(ttobject) { /* * this is necessary for all derived classes that do not overload Class->Build. * It is not actually useful for ttobject. */ return o; } static BREAK(ttobject) { /* * this is necessary for all derived classes that do not overload Class->Break. * It is not actually useful for ttobject. */ } static DEL(ttobject) { if (o) { o->Class->Break(o); /* ttobject_refcount_alive flag should already be removed */ if (!o->refcount) { /* drop Id as late as possible (for listeners) */ DropId((ttobj)o); if (!(o->oflags & ttobject_oflags_static)) TTFreeMem(o); } else { /* * WARNING: we did not delete o, let's clear * o->events_inprogress so that we can delete it later */ o->events_inprogress &= ~ttmask(ttevent_evtype_del); } } } /* ttvector */ static NEW(ttvector) { if ((o = NEWSUPER(ttvector))) { o->array_size = o->array_n = (ttopaque)0; o->array = (ttany *)0; } return o; } static DEL(ttvector) { if (o) { if (o->array) { TTFreeMem(o->array); o->array = (ttany *)0; } DELSUPER(ttvector); } } static ttbyte null_Grow_ttvector(ttvector o, ttopaque delta_n) { ttopaque new_size = (o->array_n + delta_n) * 3 / 2; ttany * new_array; if (new_size < 6) new_size = 6; if (!(new_array = TTReallocMem(o->array, new_size * sizeof(ttany)))) { new_size = o->array_n + delta_n; if (!(new_array = TTReallocMem(o->array, new_size * sizeof(ttany)))) return TT_FALSE; } o->array = new_array; o->array_size = new_size; return TT_TRUE; } ttany DEF(GetAt_ttvector)(ttvector o, ttopaque pos) { if (TTAssert(o && IS(ttvector,o)) && pos < o->array_n) return o->array[pos]; return (ttany)0; } ttbyte DEF(SetAt_ttvector)(ttvector o, ttopaque pos, ttany value) { if (TTAssert(o && IS(ttvector,o)) && pos < o->array_n) { o->array[pos] = value; return TT_TRUE; } return TT_FALSE; } ttbyte DEF(AddY_ttvector)(ttvector o, ttopaque pos, ttopaque value_n, _R _A(_P(2)) ttany *values) { if (!value_n) return TT_TRUE; if (values && pos <= o->array_n && (o->array_size >= o->array_n + value_n || null_Grow_ttvector(o, value_n))) { if (pos < o->array_n) TTMoveMem(o->array + pos, o->array + pos + value_n, (o->array_n - pos) * sizeof(ttany)); TTCopyMem(values, o->array + pos, value_n * sizeof(ttany)); o->array_n += value_n; return TT_TRUE; } return TT_FALSE; } ttopaque DEF(ContainsValue_ttvector)(ttvector o, ttopaque pos_start, ttany value) { while (pos_start < o->array_n) { if (o->array[pos_start] == value) return pos_start; pos_start++; } return (ttopaque)-1; } ttbyte DEF(RemoveRange_ttvector)(ttvector o, ttopaque pos, ttopaque pos_n) { if (pos + pos_n <= o->array_n) { if (pos + pos_n < o->array_n) TTMoveMem(o->array + pos + pos_n, o->array + pos, (o->array_n - pos - pos_n) * sizeof(ttany)); o->array_n -= pos_n; } return TT_TRUE; } /* ttevent */ static NEW(ttevent) { if ((o = NEWSUPER(ttevent))) { o->component = (ttcomponent)0; o->evtype = o->evcode = o->evflags = 0; o->prev = o->next = (ttevent)0; } return o; } /* tteventbig */ static NEW(tteventbig) { if ((o = NEWSUPER(tteventbig))) { o->x = o->y = o->w = o->h = (ttshort)0; o->value = o->old_value = (ttany)0; o->data = (TT_CONST ttbyte *)0; o->data_len = (ttopaque)0; } return o; } /* ttbitmask */ static NEW(ttbitmask) { if ((o = NEWSUPER(ttbitmask))) { o->mask0 = o->mask_max = o->mask_n = (opaque)0; o->mask = (ttany *)0; } return o; } /* tteventmask */ static NEW(tteventmask) { if ((o = NEWSUPER(tteventmask))) { o->truth_table = 0x80; /* logical AND */ o->evtype_mask = o->evcode_mask = o->component_mask = (ttbitmask)0; } return o; } static DEL(tteventmask) { if (o) { if (TTD.InstalledEM == o) TTD.InstalledEM = (tteventmask)0; if (TTD.DefaultEM == o) TTD.DefaultEM = (tteventmask)0; if (o->evtype_mask) { TDEL(o->evtype_mask); o->evtype_mask = (ttbitmask)0; } if (o->evcode_mask) { TDEL(o->evcode_mask); o->evcode_mask = (ttbitmask)0; } if (o->component_mask) { TDEL(o->component_mask); o->component_mask = (ttbitmask)0; } DELSUPER(tteventmask); } } /* ttcallback */ static NEW(ttcallback) { if ((o = NEWSUPER(ttcallback))) { o->lflags = 0; o->component = (ttcomponent)0; o->prev = o->next = (ttcallback)0; } return o; } static DEL(ttcallback) { if (o) { if (o->next) o->next->prev = o->prev; if (o->prev) o->prev->next = o->next; else if (o->component && o->component->callbacks == o) o->component->callbacks = o->next; o->prev = o->next = (ttcallback)0; THW.DeleteCallback(o); DELSUPER(ttcallback); } } static ttcallback DEF(Create_ttcallback)(ttcomponent c) { ttcallback o; if ((o = TNEW(ttcallback))) { if ((o->next = c->callbacks)) o->next->prev = o; o->component = c; c->callbacks = o; } return o; } static TT_CONST struct s_tavl empty_AVL; /* ttlistener */ static NEW(ttlistener) { if ((o = NEWSUPER(ttlistener))) { o->AVL = empty_AVL; o->prev = o->next = (ttlistener)0; o->event = (ttevent)0; o->function = (ttany)0; o->arg_component_n = o->arg_event_n = (ttuint)-1; o->args = (ttvector)0; o->event_mask = (tteventmask)0; o->inprogress_prev = o->inprogress_next = (ttlistener)0; } return o; } static DEL(ttlistener) { if (o) { o->Class->Remove(o); if (o->event) { TDEL(o->event); o->event = (ttevent)0; } if (o->args) { TDEL(o->args); o->args = (ttvector)0; } if (o->event_mask) { TDEL(o->event_mask); o->event_mask = (tteventmask)0; } DELSUPER(ttlistener); } } static void DEF(AddTo_ttlistener)(ttlistener c, ttcomponent o) { /* implemented in libTT.c */ AddTo_ttlistener(c, o); } static void DEF(Remove_ttlistener)(ttlistener o) { /* implemented in libTT.c */ Remove_ttlistener(o); } /* tttimer */ static NEW(tttimer) { if ((o = NEWSUPER(tttimer))) { o->delay_t = o->delay_f = (ttany)0; o->timer_prev = o->timer_next = (tttimer)0; } return o; } static DEL(tttimer) { if (o) { o->Class->Remove(o); DELSUPER(tttimer); } } static BUILD(tttimer) { if (o->lflags & tttimer_lflags_enabled) Activate_tttimer(o, TT_TRUE); return o; } static BREAK(tttimer) { if (o->lflags & tttimer_lflags_enabled) Activate_tttimer(o, TT_FALSE); } static void DEF(SetEnabled_tttimer)(tttimer o, ttbyte enable) { if (!enable != !(o->lflags & tttimer_lflags_enabled)) { o->lflags ^= tttimer_lflags_enabled; Activate_tttimer(o, enable); } } static ttbyte DEF(IsEnabled_tttimer)(tttimer o) { return !!(o->lflags & tttimer_lflags_enabled); } static void DEF(AddTo_tttimer)(tttimer o, ttcomponent c) { /* prepend */ if (c && !o->component) { if ((o->next = c->timers)) c->timers->prev = o; c->timers = o; o->prev = NULL; o->component = c; } } static void DEF(Remove_tttimer)(tttimer o) { ttcomponent c; if ((c = o->component)) { if (o->prev) o->prev->next = o->next; else c->timers = o->next; if (o->next) o->next->prev = o->prev; o->component = NULL; } } /* ttdata */ static NEW(ttdata) { if ((o = NEWSUPER(ttdata))) { o->AVL = empty_AVL; o->component = (ttcomponent)0; o->key_len = (ttopaque)0; o->key = NULL; o->data = (ttany)0; } return o; } static DEL(ttdata) { if (o) { o->Class->Remove(o); DELSUPER(ttdata); } } static void DEF(AddTo_ttdata)(ttdata o, ttcomponent c) { /* implemented in libTT.c */ AddTo_ttdata(o, c, TT_FALSE); } static void DEF(Remove_ttdata)(ttdata o) { /* implemented in libTT.c */ Remove_ttdata(o); } /* ttcomponent */ static NEW(ttcomponent) { if ((o = NEWSUPER(ttcomponent))) { o->callbacks = (ttcallback)0; o->listeners = (ttlistener)0; o->timers = (tttimer)0; o->datas = (ttdata)0; } return o; } static DEL(ttcomponent) { if (o) { if (!(o->events_informed & ttmask(ttevent_evtype_del))) { /* be sure we fire delete event only ONCE! */ o->events_informed |= ttmask(ttevent_evtype_del); FireSimpleEvent(o, ttevent_evtype_del); } if (!o->refcount) /* delete listeners and other stuff only if * it's our last chance to do that */ DelAllExtras_ttcomponent(o); DELSUPER(ttcomponent); } } /* ttvisible */ static NEW(ttvisible) { if ((o = NEWSUPER(ttvisible))) { o->vflags = ttvisible_vflags_visible; o->prev = o->next = o->parent = o->child_first = o->child_last = NULL; o->constraint = (ttany)0; o->theme = NULL; o->repaint = (ttvisible_repaint_fn)0; } return o; } static DEL(ttvisible) { ttvisible c; if (o) { o->Class->Remove(o); while ((c = o->child_first)) c->Class->Remove(c); DELSUPER(ttvisible); } } static void DEF(AddTo_ttvisible)(ttvisible o, ttvisible parent, ttany constraint) { /* append */ if (parent && !o->parent) { if ((o->prev = parent->child_last)) parent->child_last->next = o; else parent->child_first = o; parent->child_last = o; o->next = NULL; o->parent = parent; o->constraint = constraint; parent->Class->Validate(parent); } } static void DEF(Validate_ttvisible)(ttvisible o) { } static void DEF(SetVisible_ttvisible)(ttvisible o, byte visible) { if (visible) o->vflags |= ttvisible_vflags_visible; else o->vflags &= ~ttvisible_vflags_visible; } static void DEF(Remove_ttvisible)(ttvisible o) { ttvisible parent; if ((parent = o->parent)) { if (o->prev) o->prev->next = o->next; else parent->child_first = o->next; if (o->next) o->next->prev = o->prev; else parent->child_last = o->prev; o->parent = NULL; } } static void DEF(Invalidate_ttvisible)(ttvisible o) { /* nothing to do here */ } static ttbyte DEF(SetTheme_ttvisible)(ttvisible o, tttheme theme) { tttheme oldtheme = myTheme(o); o->theme = theme; o->Class->Invalidate(o); if (theme != oldtheme && o->parent && (o->vflags & ttvisible_vflags_visible)) Expose_ttvisible(o, ttvisible_repaint_args_WHOLE); return TT_TRUE; } static void DEF(Draw_ttvisible)(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_CONST ttbyte *asciidata, TT_CONST ttfont *fontdata, TT_CONST ttattr *attrdata) { /* do-nothing */ } static void DEF(BuiltinRepaint_ttvisible)(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h) { /* do-nothing */ } /* ttlayout */ static NEW(ttlayout) { if ((o = NEWSUPER(ttlayout))) { o->widget = NULL; } return o; } static DEL(ttlayout) { if (o) { if (o->widget) o->widget->Class->SetLayout(o->widget, NULL); DELSUPER(ttlayout); } } static void DEF(SetWidget_ttlayout)(ttlayout o, ttwidget w) { o->widget = w; } static void DEF(DoLayout_ttlayout)(ttlayout o) { } /* ttboxlayout */ static NEW(ttboxlayout) { if ((o = NEWSUPER(ttboxlayout))) { o->orientation = ttboxlayout_orientation_x; } return o; } /* ttborderlayout */ /* ttnative */ static ttnative DEF(GetRoot_ttnative)(void) { return Create_ttnative((ttany)0); } static ttshort DEF(GetW_ttnative)(ttnative o) { return (ttshort)1; } static ttshort DEF(GetH_ttnative)(ttnative o) { return (ttshort)1; } /* ttwidget */ static NEW(ttwidget) { if ((o = NEWSUPER(ttwidget))) { o->x = o->y = o->xl = o->yl = 0; o->layout = NULL; o->w = o->h = o->wl = o->hl = 1; o->col = myTheme(o)->bg[tttheme_bg_normal]; o->tooltip = (tttooltip)0; } return o; } static DEL(ttwidget) { if (o) { if (o->tooltip) { TDEL(o->tooltip); o->tooltip = (tttooltip)0; } DELSUPER(ttwidget); } } static void DEF(AddTo_ttwidget)(ttwidget o, ttvisible parent, ttany constraint) { if (parent && !o->parent) { /* prepend to list, cannot use FNSUPER(ttwidget)->AddTo() */ if ((o->next = parent->child_first)) parent->child_first->prev = (ttvisible)o; else parent->child_last = (ttvisible)o; parent->child_first = (ttvisible)o; o->prev = NULL; o->parent = parent; o->constraint = constraint; parent->Class->Validate(parent); } } static void DEF(Validate_ttwidget)(ttwidget o) { } static void DEF(Invalidate_ttwidget)(ttwidget o) { tttheme t = myTheme(o); #ifdef ttwidget_col /* in case o->col is client-visible */ FIRE_EVENT(o->col = t->bg[tttheme_bg_normal], o, ttwidget_col, t->bg[tttheme_bg_normal], o->col); #else o->col = t->bg[tttheme_bg_normal]; #endif } static ttbyte DEF(SetXY_ttwidget)(ttwidget o, ttshort x, ttshort y) { o->x = x; o->y = y; return TT_TRUE; } static ttbyte DEF(SetWH_ttwidget)(ttwidget o, ttshort w, ttshort h) { o->w = w; o->h = h; return TT_TRUE; } static ttbyte DEF(SetXl_ttwidget)(ttwidget o, ttint xl) { o->xl = xl; return TT_TRUE; } static ttbyte DEF(SetYl_ttwidget)(ttwidget o, ttint yl) { o->yl = yl; return TT_TRUE; } static ttbyte DEF(SetWl_ttwidget)(ttwidget o, ttint wl) { o->wl = wl; return TT_TRUE; } static ttbyte DEF(SetHl_ttwidget)(ttwidget o, ttint hl) { o->hl = hl; return TT_TRUE; } static ttbyte DEF(SetTooltip_ttwidget)(ttwidget o, tttooltip t) { if (o->tooltip != t) { if (o->tooltip) TDEL(o->tooltip); if ((o->tooltip = t)) return t->Class->SetWidget(t, o); } return TT_TRUE; } static void DEF(SetLayout_ttwidget)(ttwidget o, ttlayout l) { TDEL(o->layout); o->layout = l; o->Class->Validate(o); } /* ttlabel */ static NEW(ttlabel) { if ((o = NEWSUPER(ttlabel))) { o->text_len = 0; o->text = NULL; o->col = myTheme(o)->bg[tttheme_bg_label]; } return o; } static DEL(ttlabel) { if (o) { if (o->text) { TTFreeMem(o->text); o->text = NULL; } DELSUPER(ttlabel); } } static void DEF(SetFontD_ttlabel)(ttlabel o, ttopaque text_len, TT_ARG_DIE TT_ARG_ARRAY((_P(2))) ttfont * text) { if (o->text) TTFreeMem(o->text); o->text_len = text_len; o->text = text; if (o->parent && o->vflags & ttvisible_vflags_visible) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } /* tttooltip */ static NEW(tttooltip) { if ((o = NEWSUPER(tttooltip))) { o->widget = (ttwidget)0; } return o; } static ttbyte DEF(SetWidget_tttooltip)(tttooltip o, ttwidget w) { if (o->widget != w) { o->widget = w; /* * CAUTION: infinite loop risk: * we call SetTooltip_ttwidget(), which may call us. * * solution: we do not call it if w->tooltip is already correct */ if (w && w->tooltip != o) return w->Class->SetTooltip(w, o); } return TT_TRUE; } static DEL(tttooltip) { if (o) { if (o->widget) { /* could FIRE_EVENT() here, but this is more compact */ TTSetWidget_tttooltip((tt_obj)o->id, TT_NOID); } DELSUPER(tttooltip); } } /* ttbuttongroup */ static NEW(ttbuttongroup) { if ((o = NEWSUPER(ttbuttongroup))) { o->group_first = o->group_last = o->checked = (ttradiobutton)0; } return o; } static DEL(ttbuttongroup) { while (o->group_first) { o->Class->Remove(o, o->group_first); } DELSUPER(ttbuttongroup); } static void DEF(Add_ttbuttongroup)(ttbuttongroup g, ttradiobutton o) { if (o && !o->group) { if (g->checked && (o->vflags & ttcheckbutton_vflags_checked)) /* we already have a checked button, uncheck this */ o->Class->SetChecked(o, TT_FALSE); if ((o->group_prev = g->group_last)) g->group_last->group_next = o; else g->group_first = o; g->group_last = o; o->group_next = NULL; o->group = g; if (!g->checked && (o->vflags & ttcheckbutton_vflags_checked)) { /* we do not have a checked button, use this as the checked one */ FIRE_EVENT(g->checked = o, g, ttbuttongroup_checked, (ttany)(opaque)o, (ttany)0); } } } static void DEF(Remove_ttbuttongroup)(ttbuttongroup g, ttradiobutton o) { if (o && o->group == g) { if (o == g->checked) g->Class->SetChecked(g, (ttradiobutton)0); if (o->group_prev) o->group_prev->group_next = o->group_next; else g->group_first = o->group_next; if (o->group_next) o->group_next->group_prev = o->group_prev; else g->group_last = o->group_prev; o->group_prev = o->group_next = (ttradiobutton)0; o->group = (ttbuttongroup)0; } } static void DEF(SetChecked_ttbuttongroup)(ttbuttongroup g, ttradiobutton o) { ttradiobutton c; if (o != (c = g->checked)) { /* * CAUTION: infinite loop risk: * we call SetChecked_ttradiobutton(), which may call us. * * solution: we update g->checked *before* calling it. */ FIRE_EVENT(g->checked = o, g, ttbuttongroup_checked, (ttany)(opaque)o, (ttany)(opaque)c); if (c) c->Class->SetChecked(c, TT_FALSE); if (o) o->Class->SetChecked(o, TT_TRUE); } } /* ttanybutton */ static NEW(ttanybutton) { if ((o = NEWSUPER(ttanybutton))) { o->text = NULL; o->text_width = o->text_height = 0; o->col = myTheme(o)->bg[tttheme_bg_anybutton]; TTWriteMem(o->theme_shape, '\0', sizeof(o->theme_shape)); return o; } return NULL; } static void DEF(Invalidate_ttanybutton)(ttanybutton o) { ttbyte i; #ifdef DEBUG_TT_HW_NULL fprintf(stderr, "null_Invalidate_ttanybutton(o=0x%X)\n", (unsigned)o->id); #endif for (i = 0; i < sizeof(o->theme_shape)/sizeof(o->theme_shape[0]); i++) { if (o->theme_shape[i].attr) { TTFreeMem(o->theme_shape[i].attr); o->theme_shape[i].attr = NULL; } } } static DEL(ttanybutton) { if (o) { o->Class->Invalidate(o); if (o->text) { TTFreeMem(o->text); o->text = NULL; } DELSUPER(ttanybutton); } } static void DEF(SetAttrD_ttanybutton)(ttanybutton o, ttshort width, ttshort height, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text) { o->Class->Invalidate(o); o->text_width = width; o->text_height = height; if (o->text) TTFreeMem(o->text); o->text = text; if (o->parent && o->vflags & ttvisible_vflags_visible) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } static ttuint DEF(CacheThemeShape_ttanybutton)(ttanybutton o) { return (ttuint)-1; } static void null_AddShape(ttattr *attr, ttshort pitch, ttshort w, ttshort h, ttattr *tattr, ttshort tw, ttshort th, ttshort b_left, ttshort b_up, ttshort b_right, ttshort b_down, ttbyte also_inside) { ttshort ti, i, tj, j; ttattr a; /* set inside */ if (also_inside) { for (j = tj = b_up; j < h - b_down; j++, tj++) { if (tj >= th - b_down) tj = b_up; for (i = ti = b_left; i < w - b_right; i++, ti++) { if (ti >= tw - b_right) ti = b_left; if ((a = tattr[ti+tj*tw])) attr[i+j*pitch] = a; } } } /* set left and right upper corners */ for (j = 0; j < b_up; j++) { for (i = 0; i < b_left; i++) { if ((a = tattr[i+j*tw])) attr[i+j*pitch] = a; } for (i = 0; i < b_right; i++) { if ((a = tattr[i+(j+1)*tw-b_right])) attr[i+(j+1)*pitch-b_right] = a; } } /* set left and right borders */ for (j = tj = b_up; j < h - b_down; j++, tj++) { if (tj >= tw - b_down) tj = b_up; for (i = 0; i < b_left; i++) { if ((a = tattr[i+tj*tw])) attr[i+j*pitch] = a; } for (i = 0; i < b_right; i++) { if ((a = tattr[i+(tj+1)*tw-b_right])) attr[i+(j+1)*pitch-b_right] = a; } } /* set left and right lower corners */ for (j = 0; j < b_down; j++) { for (i = 0; i < b_left; i++) { if ((a = tattr[i+(th-b_down+j)*tw])) attr[i+(h-b_down+j)*pitch] = a; } for (i = 0; i < b_right; i++) { if ((a = tattr[i+(th-b_down+j+1)*tw-b_right])) attr[i+(h-b_down+j+1)*pitch-b_right] = a; } } /* set upper border */ for (j = 0; j < b_up; j++) { for (i = ti = b_left; i < w - b_right; i++, ti++) { if (ti >= tw - b_right) ti = 0; if ((a = tattr[ti+j*tw])) attr[i+j*pitch] = a; } } /* set lower border */ for (j = 0; j < b_down; j++) { for (i = ti = b_left; i < w - b_right; i++, ti++) { if (ti >= tw - b_right) ti = b_left; if ((a = tattr[ti+(th-b_down+j)*tw])) attr[i+(h-b_down+j)*pitch] = a; } } } #define null_AddShapeI(attr, pitch, w, h, tattr, tw, th, b_left, b_up, b_right, b_down) \ null_AddShape((attr), (pitch), (w), (h), (tattr), (tw), (th), (b_left), (b_up), (b_right), (b_down), TT_TRUE) #define null_AddShapeN(attr, pitch, w, h, tattr, tw, th, b_left, b_up, b_right, b_down) \ null_AddShape((attr), (pitch), (w), (h), (tattr), (tw), (th), (b_left), (b_up), (b_right), (b_down), TT_FALSE) static void null_AddText(ttattr *attr, ttshort w, ttattr *text, ttshort tw, ttshort th) { ttshort _tw; ttfont f; ttcol c; for (; th; th--) { for (_tw = tw; _tw; _tw--, attr++, text++) { f = TTGetFont_ttattr(*text); c = TTGetCol_ttattr(*attr); *attr = TTAttr(c, f); } attr += w - tw; } } static ttuint null_CacheThemeShape_anybutton(ttanybutton o, ttuint statemask, ttuint case_n, TT_CONST ttuint case_flags[][3]) { ttuint i, vflags; vflags = o->vflags & statemask; for (i = 0; i < case_n; i++) { if (case_flags[i][0] == vflags) break; } if (i >= case_n) return (ttuint)-1; if (o->theme_shape[case_flags[i][1]].attr) return case_flags[i][1]; { ttbyte button_i = i; ttbyte theme_i = case_flags[i][2]; tttheme t = myTheme(o); ttshape t_shape = &t->shape[theme_i][0], s_shape = &t->shape[theme_i][1]; ttattr *shape; ttshort w = o->text_width, h = o->text_height; ttshort b_left = t_shape->border[tt_x_left], b_up = t_shape->border[tt_y_up]; ttshort b_right = t_shape->border[tt_x_right], b_down = t_shape->border[tt_y_down]; if ((shape = (ttattr *)TTAllocMem((w += b_left+b_right) * (h += b_up+b_down) * sizeof(ttattr) ))) { TTWriteMem(shape, '\0', w * h * sizeof(ttattr)); o->theme_shape[button_i].width = w; o->theme_shape[button_i].height = h; TTCopyMem(t_shape->border, o->theme_shape[button_i].border, 4*sizeof(ttshort)); null_AddShapeI(shape, w, w, h, t_shape->attr, t_shape->width, t_shape->height, b_left, b_up, b_right, b_down); null_AddShapeI(shape, w, w, h, s_shape->attr, s_shape->width, s_shape->height, s_shape->border[tt_x_left], s_shape->border[tt_y_up], s_shape->border[tt_x_right], s_shape->border[tt_y_down]); null_AddText(shape + b_left + w * b_up, w, o->text, o->text_width, o->text_height); o->theme_shape[case_flags[i][1]].attr = shape; if (o->w < w || o->h < h) /* could FIRE_EVENT() here, but this is more compact */ TTSetWH_ttwidget((tt_obj)o->id, w, h); return case_flags[i][1]; } } return (ttuint)-1; } /* ttbutton */ static void null_MouseListener_ttbutton(ttany arg) { ttbutton o; tteventbig ev; ttuint old_vflags, vflags; ttbyte inside, activated = TT_FALSE; /* default mouse handler */ if (!((ev = ID2(tteventbig,arg)) && TTAssert(ev) && TTAssert(ev->evtype == ttevent_evtype_mouse) && (o = (ttbutton)ev->component) && TTAssert(IS(ttbutton,o)))) return; vflags = old_vflags = o->vflags; inside = ev->x >= 0 && ev->y >= 0 && ev->x < o->w && ev->y < o->h; switch (ev->evcode) { case ttevent_evcode_mouse_move: if (inside) vflags |= ttanybutton_vflags_prelight; else vflags &= ~ttanybutton_vflags_prelight; break; case ttevent_evcode_mouse_press_1: vflags &= ~ttanybutton_vflags_prelight; vflags |= ttanybutton_vflags_pressed; break; case ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1: if (inside) vflags |= ttanybutton_vflags_pressed; else vflags &= ~ttanybutton_vflags_pressed; break; case ttevent_evcode_mouse_release_1: vflags &= ~ttanybutton_vflags_pressed; if (inside) { vflags |= ttanybutton_vflags_prelight; activated = TT_TRUE; } break; default: break; } if (vflags != old_vflags) { FIRE_EVENT(o->vflags = vflags, o, ttvisible_vflags, vflags, old_vflags); if (o->parent && (o->vflags & ttvisible_vflags_visible)) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } if (activated) FireSimpleEvent((ttcomponent)o, ttevent_evtype_activate); } static ttlistener null_CreateListener_ttbutton(ttbutton o, ttuint evcode) { return CreateE_ttlistener ((ttcomponent)o, Create_ttevent(ttevent_evtype_mouse, evcode, 0), ttlistener_lflags_arg0_event, (ttlistener_fn)null_MouseListener_ttbutton, (ttany)0); } static NEW(ttbutton) { if ((o = NEWSUPER(ttbutton))) { if (null_CreateListener_ttbutton(o, ttevent_evcode_mouse_move) && null_CreateListener_ttbutton(o, ttevent_evcode_mouse_press_1) && null_CreateListener_ttbutton(o, ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1) && null_CreateListener_ttbutton(o, ttevent_evcode_mouse_release_1)) { return o; } TDEL(o); } return (ttbutton)0; } static void DEF(SetPressed_ttbutton)(ttbutton o, byte pressed) { if (pressed) o->vflags |= ttanybutton_vflags_pressed; else o->vflags &= ~ttanybutton_vflags_pressed; if (o->vflags != o->vflags && (o->vflags & ttvisible_vflags_visible) && o->parent) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } static ttuint DEF(CacheThemeShape_ttbutton)(ttbutton o) { static TT_CONST ttuint case_flags[][3] = { { ttanybutton_vflags_normal, ttbutton_shape_normal, tttheme_shape_ttbutton_normal, }, { ttanybutton_vflags_prelight, ttbutton_shape_prelight, tttheme_shape_ttbutton_prelight, }, { ttanybutton_vflags_pressed, ttbutton_shape_pressed, tttheme_shape_ttbutton_pressed, }, { ttanybutton_vflags_disabled, ttbutton_shape_disabled, tttheme_shape_ttbutton_disabled, }, }; return null_CacheThemeShape_anybutton((ttanybutton)o, ttanybutton_vflags_statemask, sizeof(case_flags)/sizeof(case_flags[0]), case_flags); } /* ttcheckbutton */ static void null_MouseListener_ttcheckbutton(ttany arg) { ttcheckbutton o; ttbyte checked; if (TTAssert(o = ID2(ttcheckbutton,arg))) { if (IS(ttradiobutton,o)) /* always set to `checked' state upon `activate' event */ checked = TT_TRUE; else /* IS(ttcheckbutton,o) */ /* toggle `checked' state upon `activate' event */ checked = !(o->vflags & ttcheckbutton_vflags_checked); /* could FIRE_EVENT() here, but this is more compact */ TTSetChecked_ttcheckbutton((tt_obj)o->id, checked); } } static NEW(ttcheckbutton) { if ((o = NEWSUPER(ttcheckbutton))) { if (Create_ttlistener ((ttcomponent)o, ttevent_evtype_activate, ttlistener_lflags_arg0_component, (ttlistener_fn)null_MouseListener_ttcheckbutton, (ttany)0)) { return o; } TDEL(o); } return NULL; } static void DEF(SetChecked_ttcheckbutton)(ttcheckbutton o, ttbyte checked) { ttuint old_vflags = o->vflags; if (checked) o->vflags |= ttcheckbutton_vflags_checked; else o->vflags &= ~ttcheckbutton_vflags_checked; if (o->vflags != old_vflags && (o->vflags & ttvisible_vflags_visible) && o->parent) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } static ttuint DEF(CacheThemeShape_ttcheckbutton)(ttcheckbutton o) { #define c ttcheckbutton_vflags_checked static TT_CONST ttuint case_flags[][3] = { { ttanybutton_vflags_normal, ttcheckbutton_shape_normal, tttheme_shape_ttcheckbutton_normal, }, { ttanybutton_vflags_prelight, ttcheckbutton_shape_prelight, tttheme_shape_ttcheckbutton_prelight, }, { ttanybutton_vflags_pressed, ttcheckbutton_shape_pressed, tttheme_shape_ttcheckbutton_pressed, }, { ttanybutton_vflags_disabled, ttcheckbutton_shape_disabled, tttheme_shape_ttcheckbutton_disabled, }, { c|ttanybutton_vflags_normal, ttcheckbutton_shape_checked_normal, tttheme_shape_ttcheckbutton_checked_normal, }, { c|ttanybutton_vflags_prelight, ttcheckbutton_shape_checked_prelight, tttheme_shape_ttcheckbutton_checked_prelight, }, { c|ttanybutton_vflags_pressed, ttcheckbutton_shape_checked_pressed, tttheme_shape_ttcheckbutton_checked_pressed, }, { c|ttanybutton_vflags_disabled, ttcheckbutton_shape_checked_disabled, tttheme_shape_ttcheckbutton_checked_disabled, }, }; #undef c return null_CacheThemeShape_anybutton((ttanybutton)o, ttcheckbutton_vflags_statemask, sizeof(case_flags)/sizeof(case_flags[0]), case_flags); } /* ttradiobutton */ static NEW(ttradiobutton) { if ((o = NEWSUPER(ttradiobutton))) { o->group = (ttbuttongroup)0; o->group_prev = o->group_next = (ttradiobutton)0; } return o; } static DEL(ttradiobutton) { ttbuttongroup g; if (o) { if ((g = o->group)) g->Class->Remove(g, o); DELSUPER(ttradiobutton); } } static void DEF(SetChecked_ttradiobutton)(ttradiobutton o, ttbyte checked) { ttbuttongroup g; FNSUPER(ttradiobutton)->SetChecked((SUPER(ttradiobutton))o, checked); /* * CAUTION: infinite loop risk: * we call SetChecked_ttbuttongroup(), which may call us. * * solution: we do not call it if o->group->checked is already correct */ if ((g = o->group)) { if (checked && g->checked != o) g->Class->SetChecked(g, o); else if (!checked && g->checked == o) g->Class->SetChecked(g, (ttradiobutton)0); } } static ttuint DEF(CacheThemeShape_ttradiobutton)(ttradiobutton o) { #define c ttcheckbutton_vflags_checked static TT_CONST ttuint case_flags[][3] = { { ttanybutton_vflags_normal, ttradiobutton_shape_normal, tttheme_shape_ttradiobutton_normal, }, { ttanybutton_vflags_prelight, ttradiobutton_shape_prelight, tttheme_shape_ttradiobutton_prelight, }, { ttanybutton_vflags_pressed, ttradiobutton_shape_pressed, tttheme_shape_ttradiobutton_pressed, }, { ttanybutton_vflags_disabled, ttradiobutton_shape_disabled, tttheme_shape_ttradiobutton_disabled, }, { c|ttanybutton_vflags_normal, ttradiobutton_shape_checked_normal, tttheme_shape_ttradiobutton_checked_normal, }, { c|ttanybutton_vflags_prelight, ttradiobutton_shape_checked_prelight, tttheme_shape_ttradiobutton_checked_prelight, }, { c|ttanybutton_vflags_pressed, ttradiobutton_shape_checked_pressed, tttheme_shape_ttradiobutton_checked_pressed, }, { c|ttanybutton_vflags_disabled, ttradiobutton_shape_checked_disabled, tttheme_shape_ttradiobutton_checked_disabled, }, }; #undef c return null_CacheThemeShape_anybutton((ttanybutton)o, ttcheckbutton_vflags_statemask, sizeof(case_flags)/sizeof(case_flags[0]), case_flags); } /* ttanyscroll */ static NEW(ttanyscroll) { if ((o = NEWSUPER(ttanyscroll))) { o->orientation = ttanyscroll_orientation_x; o->size = o->real_size = o->view_size = o->real_view_size = 1; o->position = o->real_position = 0; o->state = ttanyscroll_state_normal; } return o; } static void DEF(Recalculate_ttanyscroll)(ttanyscroll o, ttint size, ttint real_size, ttint view_size, ttint position) { if (size != TT_MIN_ttint) o->size = minBOUND(size, 0); if (real_size != TT_MIN_ttint) o->real_size = minBOUND(real_size, 0); if (view_size != TT_MIN_ttint) o->view_size = BOUND(view_size, 0, o->size); if (position != TT_MIN_ttint) { if (o->size - o->view_size > 0) o->position = BOUND(position, 0, o->size - o->view_size); else o->position = 0; } if (o->size > 0) { /* round up */ o->real_view_size = (o->view_size * o->real_size + o->size - 1) / o->size; /* round to nearest */ o->real_position = (o->position * o->real_size + o->size / 2) / o->size; o->real_position = BOUND(o->real_position, 0, o->real_size - o->real_view_size); } else o->real_view_size = o->real_position = 0; } static ttbyte DEF(SetOrientation_ttanyscroll)(ttanyscroll o, ttbyte orientation) { REVALIDATE(o->orientation = orientation); return TT_TRUE; } static ttbyte DEF(SetSize_ttanyscroll)(ttanyscroll o, ttint size) { REVALIDATE(o->Class->Recalculate(o, size, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint)); return TT_TRUE; } static ttbyte DEF(SetRealSize_ttanyscroll)(ttanyscroll o, ttint real_size) { REVALIDATE(o->Class->Recalculate(o, TT_MIN_ttint, real_size, TT_MIN_ttint, TT_MIN_ttint)); return TT_TRUE; } static ttbyte DEF(SetViewSize_ttanyscroll)(ttanyscroll o, ttint view_size) { REVALIDATE(o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, view_size, TT_MIN_ttint)); return TT_TRUE; } static ttbyte DEF(SetPosition_ttanyscroll)(ttanyscroll o, ttint position) { REVALIDATE(o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint, position)); return TT_TRUE; } static ttbyte DEF(SetState_ttanyscroll)(ttanyscroll o, ttuint state) { REVALIDATE(o->state = state); return TT_TRUE; } static ttuint null_CacheThemeShape_anyscroll(ttanyscroll o, ttuint statemask, ttuint case_n, TT_CONST ttuint case_flags[][3]) { ttuint i, vflags; vflags = o->vflags & statemask; for (i = 0; i < case_n; i++) { if (case_flags[i][0] == vflags) break; } if (i >= case_n) return (ttuint)-1; if (o->theme_shape[case_flags[i][1]].attr) return case_flags[i][1]; o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint); { ttbyte x_or_y = o->orientation == ttanyscroll_orientation_x; ttbyte scroll_i = i; ttbyte theme_i = case_flags[i][2]; tttheme t = myTheme(o); ttshape t_shape = &t->shape[theme_i][0], s_shape = &t->shape[theme_i][1]; ttattr *shape; ttshort w, h; ttshort b_left = t_shape->border[tt_x_left], b_up = t_shape->border[tt_y_up]; ttshort b_right = t_shape->border[tt_x_right], b_down = t_shape->border[tt_y_down]; ttint real_pos = o->real_position; if (x_or_y) w = o->real_size, h = t_shape->height; else w = t_shape->width, h = o->real_size; if ((shape = (ttattr *)TTAllocMem((w += b_left+b_right) * (h += b_up+b_down) * sizeof(ttattr) ))) { TTWriteMem(shape, '\0', w * h * sizeof(ttattr)); o->theme_shape[scroll_i].width = w; o->theme_shape[scroll_i].height = h; TTCopyMem(t_shape->border, o->theme_shape[scroll_i].border, 4*sizeof(ttshort)); null_AddShapeI(shape, w, w, h, t_shape->attr, t_shape->width, t_shape->height, b_left, b_up, b_right, b_down); if (x_or_y) { null_AddShapeI(shape + real_pos, w, o->real_view_size, h, s_shape->attr, s_shape->width, s_shape->height, s_shape->border[tt_x_left], s_shape->border[tt_y_up], s_shape->border[tt_x_right], s_shape->border[tt_y_down]); } else { null_AddShapeI(shape + w * real_pos, w, w, o->real_view_size, s_shape->attr, s_shape->width, s_shape->height, s_shape->border[tt_x_left], s_shape->border[tt_y_up], s_shape->border[tt_x_right], s_shape->border[tt_y_down]); } o->theme_shape[case_flags[i][1]].attr = shape; if (o->w != w || o->h != h) /* could FIRE_EVENT() here, but this is more compact */ TTSetWH_ttwidget((tt_obj)o->id, w, h); return case_flags[i][1]; } } return (ttuint)-1; } /* ttscrollbar */ static DEL(ttscrollbar) { ttscrollpane w; if (o) { if ((w = o->scrollpane)) { o->scrollpane = NULL; if (o->orientation == ttanyscroll_orientation_x) TTSetBarX_ttscrollpane((tt_obj)w->id, NULL); else TTSetBarY_ttscrollpane((tt_obj)w->id, NULL); } DELSUPER(ttscrollbar); } } static void null_SyncScrollpane_ttscrollbar(ttscrollbar o, ttscrollpane w) { if (o->orientation == ttanyscroll_orientation_x) { if (o->position != w->xl) /* could FIRE_EVENT() here, but this is more compact */ TTSetXl_ttwidget((tt_obj)w->id, o->position); } else if (o->orientation == ttanyscroll_orientation_y) { if (o->position != w->yl) /* could FIRE_EVENT() here, but this is more compact */ TTSetYl_ttwidget((tt_obj)w->id, o->position); } } static void DEF(Recalculate_ttscrollbar)(ttscrollbar o, ttint size, ttint real_size, ttint view_size, ttint position) { FNSUPER(ttscrollbar)->Recalculate((SUPER(ttscrollbar))o, size, real_size, view_size, position); if (o->scrollpane) null_SyncScrollpane_ttscrollbar(o, o->scrollpane); } static ttuint null_ComputeMouseState_ttscrollbar(ttscrollbar o, ttint x, ttint y, ttint *ret_p) { /* calculate where the mouse is */ tttheme t = myTheme(o); ttint rev1, rev2, fwd1, fwd2, s, S, p, P; ttuint i, state = ttscrollbar_state_normal; ttbyte inside = TT_FALSE, orientation = o->orientation == ttanyscroll_orientation_x; ttint b1, b2; i = o->Class->CacheThemeShape(o); if (i == (ttuint)-1) return state; if (orientation) { p = x; P = y; s = o->w; S = o->h; rev1 = t->val[tttheme_val_ttscrollbar_x_arrow_rev_min]; rev2 = t->val[tttheme_val_ttscrollbar_x_arrow_rev_max]; fwd1 = t->val[tttheme_val_ttscrollbar_x_arrow_fwd_min]; fwd2 = t->val[tttheme_val_ttscrollbar_x_arrow_fwd_max]; b1 = o->theme_shape[i].border[tt_x_left]; b2 = o->theme_shape[i].border[tt_x_right]; } else { p = y; P = x; s = o->h; S = o->w; rev1 = t->val[tttheme_val_ttscrollbar_y_arrow_rev_min]; rev2 = t->val[tttheme_val_ttscrollbar_y_arrow_rev_max]; fwd1 = t->val[tttheme_val_ttscrollbar_y_arrow_fwd_min]; fwd2 = t->val[tttheme_val_ttscrollbar_y_arrow_fwd_max]; b1 = o->theme_shape[i].border[tt_y_up]; b2 = o->theme_shape[i].border[tt_y_down]; } if (rev1 < 0) rev1 += s; if (rev2 < 0) rev2 += s; if (fwd1 < 0) fwd1 += s; if (fwd2 < 0) fwd2 += s; if (P >= 0 && P < S) inside = TT_TRUE; if (inside) { if (p >= rev1 && p <= rev2) state = ttscrollbar_state_arrow_rev; else if (inside && p >= fwd1 && p <= fwd2) state = ttscrollbar_state_arrow_fwd; else if (p >= b1 && p <= s - b2) { p -= b1; if (p < o->real_position) state = ttscrollbar_state_page_rev; else if (p >= o->real_position + o->real_view_size) state = ttscrollbar_state_page_fwd; else state = ttscrollbar_state_tab; p += b1; } } else state = ttscrollbar_state_tab; *ret_p = p - b1; return state; } static void null_MouseListener_ttscrollbar(ttany arg) { ttscrollbar o; tteventbig ev; tttimer t; ttint p, delta = 0, real_delta = 0, position, real_position; ttuint old_vflags, vflags, state; ttbyte inside, set_state = TT_FALSE, set_timer = TT_FALSE; /* default mouse handler */ if (!(TTAssert(ev = ID2(tteventbig,arg)) && TTAssert(ev->evtype == ttevent_evtype_mouse) && (o = (ttscrollbar)ev->component) && TTAssert(IS(ttscrollbar,o)))) return; vflags = old_vflags = o->vflags; inside = ev->x >= 0 && ev->y >= 0 && ev->x < o->w && ev->y < o->h; state = null_ComputeMouseState_ttscrollbar(o, ev->x, ev->y, &p); switch (ev->evcode) { case ttevent_evcode_mouse_move: if (inside) vflags |= ttanybutton_vflags_prelight; else vflags &= ~ttanybutton_vflags_prelight; break; case ttevent_evcode_mouse_press_1: vflags &= ~ttanybutton_vflags_prelight; vflags |= ttanybutton_vflags_pressed; set_state = set_timer = TT_TRUE; switch (state) { case ttscrollbar_state_page_rev: delta = o->view_size > 1 ? 1 - o->view_size : -1; break; case ttscrollbar_state_page_fwd: delta = o->view_size > 1 ? o->view_size - 1 : 1; break; case ttscrollbar_state_arrow_rev: delta = -1; break; case ttscrollbar_state_arrow_fwd: delta = 1; break; case ttscrollbar_state_tab: state += p - o->real_position; set_timer = TT_FALSE; break; default: set_timer = TT_FALSE; break; } break; case ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1: if (o->state >= ttscrollbar_state_tab) real_delta = p - o->real_position - (o->state - ttscrollbar_state_tab); break; case ttevent_evcode_mouse_release_1: vflags &= ~ttanybutton_vflags_pressed; if (inside) vflags |= ttanybutton_vflags_prelight; state = ttscrollbar_state_normal; set_state = TT_TRUE; break; default: break; } if (real_delta) { /* be careful with rounding! round position, not delta */ real_position = o->real_position + real_delta; /* round to nearest */ position = (real_position * o->size + o->real_size/2) / o->real_size; delta = position - o->position; } if (delta) { /* could FIRE_EVENT() here, but this is more compact */ TTSetPosition_ttanyscroll((tt_obj)o->id, o->position + delta); } if (set_state) { o->Class->SetState(o, state); } if ((t = o->timers) && !!(t->lflags & tttimer_lflags_enabled) != set_timer) { if (t->args && t->args->array_n > 1) t->args->array[1] = (ttany)delta; if (set_timer) TTSetDelay_tttimer((tt_obj)t->id, 0, 200 MilliSECs); t->Class->SetEnabled(t, set_timer); } if (vflags != old_vflags) { FIRE_EVENT(o->vflags = vflags, o, ttvisible_vflags, vflags, old_vflags); if (o->parent && (o->vflags & ttvisible_vflags_visible)) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } } static ttlistener null_CreateMouseListener_ttscrollbar(ttscrollbar o, ttuint evcode) { return CreateE_ttlistener ((ttcomponent)o, Create_ttevent(ttevent_evtype_mouse, evcode, 0), ttlistener_lflags_arg0_event, (ttlistener_fn)null_MouseListener_ttscrollbar, (ttany)0); } static void null_TimerListener_ttscrollbar(ttany arg0, ttany arg1) { tttimer t; ttscrollbar o; ttint delta; /* default timer handler */ if (!((t = ID2(tttimer,arg0)) && TTAssert(t) && (o = (ttscrollbar)t->component) && TTAssert(IS(ttscrollbar,o)))) return; if ((delta = (ttint)arg1)) { /* could FIRE_EVENT() here, but this is more compact */ TTSetPosition_ttanyscroll((tt_obj)o->id, o->position + delta); } /* reactivate the timer itself */ TTSetDelay_tttimer((tt_obj)t->id, 0, 30 MilliSECs); } TT_INLINE tttimer null_CreateTimer_ttscrollbar(ttscrollbar o) { return CreateR_tttimer((ttcomponent)o, 0, (ttlistener_fn)null_TimerListener_ttscrollbar, -1, 0, CreateL_ttvector(2, (ttany)0, (ttany)0), 0, 0); } static NEW(ttscrollbar) { if ((o = NEWSUPER(ttscrollbar))) { o->view_size = o->real_view_size = 1; o->scrollpane = (ttscrollpane)0; if (null_CreateMouseListener_ttscrollbar(o, ttevent_evcode_mouse_move) && null_CreateMouseListener_ttscrollbar(o, ttevent_evcode_mouse_press_1) && null_CreateMouseListener_ttscrollbar(o, ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1) && null_CreateMouseListener_ttscrollbar(o, ttevent_evcode_mouse_release_1) && null_CreateTimer_ttscrollbar(o)) { return o; } TDEL(o); } return (ttscrollbar)0; } static ttuint DEF(CacheThemeShape_ttscrollbar)(ttscrollbar o) { static TT_CONST ttuint case_flags_x[][3] = { { ttanybutton_vflags_normal, ttscrollbar_shape_normal, tttheme_shape_ttscrollbar_x_normal, }, { ttanybutton_vflags_prelight, ttscrollbar_shape_prelight, tttheme_shape_ttscrollbar_x_prelight, }, { ttanybutton_vflags_pressed, ttscrollbar_shape_pressed, tttheme_shape_ttscrollbar_x_pressed, }, { ttanybutton_vflags_disabled, ttscrollbar_shape_disabled, tttheme_shape_ttscrollbar_x_disabled, }, }; static TT_CONST ttuint case_flags_y[][3] = { { ttanybutton_vflags_normal, ttscrollbar_shape_normal, tttheme_shape_ttscrollbar_y_normal, }, { ttanybutton_vflags_prelight, ttscrollbar_shape_prelight, tttheme_shape_ttscrollbar_y_prelight, }, { ttanybutton_vflags_pressed, ttscrollbar_shape_pressed, tttheme_shape_ttscrollbar_y_pressed, }, { ttanybutton_vflags_disabled, ttscrollbar_shape_disabled, tttheme_shape_ttscrollbar_y_disabled, }, }; return null_CacheThemeShape_anyscroll ((ttanyscroll)o, ttanybutton_vflags_statemask, sizeof(case_flags_x)/sizeof(case_flags_x[0]), o->orientation == ttanyscroll_orientation_x ? case_flags_x : case_flags_y); } /* ttslider */ static ttuint null_ComputeMouseState_ttslider(ttslider o, ttint x, ttint y, ttint *ret_p) { /* calculate where the mouse is */ ttint s, S, p, P; ttuint i, state = ttslider_state_normal; ttbyte inside = TT_FALSE, orientation = o->orientation == ttanyscroll_orientation_x; i = o->Class->CacheThemeShape(o); if (i == (ttuint)-1) return state; if (orientation) { p = x; P = y; s = o->w; S = o->h; } else { p = y; P = x; s = o->h; S = o->w; } if (P >= 0 && P < S) inside = TT_TRUE; if (inside) { if (p < o->real_position) state = ttslider_state_page_rev; else if (p >= o->real_position + o->real_view_size) state = ttslider_state_page_fwd; else state = ttslider_state_tab; } else state = ttslider_state_tab; *ret_p = p; return state; } static void null_MouseListener_ttslider(ttany arg) { ttslider o; tteventbig ev; tttimer t; ttint p, delta = 0, real_delta = 0, position, real_position; ttuint old_vflags, vflags, state; ttbyte inside, set_state = TT_FALSE, set_timer = TT_FALSE; /* default mouse handler */ if (!(TTAssert(ev = ID2(tteventbig,arg)) && TTAssert(ev->evtype == ttevent_evtype_mouse) && (o = (ttslider)ev->component) && TTAssert(IS(ttslider,o)))) return; vflags = old_vflags = o->vflags; inside = ev->x >= 0 && ev->y >= 0 && ev->x < o->w && ev->y < o->h; state = null_ComputeMouseState_ttslider(o, ev->x, ev->y, &p); switch (ev->evcode) { case ttevent_evcode_mouse_move: if (inside) vflags |= ttanybutton_vflags_prelight; else vflags &= ~ttanybutton_vflags_prelight; break; case ttevent_evcode_mouse_press_1: vflags &= ~ttanybutton_vflags_prelight; vflags |= ttanybutton_vflags_pressed; set_state = set_timer = TT_TRUE; switch (state) { case ttslider_state_page_rev: delta = -1; break; case ttslider_state_page_fwd: delta = 1; break; case ttslider_state_tab: state += p - o->real_position; set_timer = TT_FALSE; break; default: set_timer = TT_FALSE; break; } break; case ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1: if (o->state >= ttslider_state_tab) real_delta = p - o->real_position - (o->state - ttslider_state_tab); break; case ttevent_evcode_mouse_release_1: vflags &= ~ttanybutton_vflags_pressed; if (inside) vflags |= ttanybutton_vflags_prelight; state = ttslider_state_normal; set_state = TT_TRUE; break; default: break; } if (real_delta) { /* be careful with rounding! round position, not delta */ real_position = o->real_position + real_delta; /* round to nearest */ position = (real_position * o->size + o->real_size/2) / o->real_size; delta = position - o->position; } if (delta) { /* could FIRE_EVENT() here, but this is more compact */ TTSetPosition_ttanyscroll((tt_obj)o->id, o->position + delta); } if (set_state) { o->Class->SetState(o, state); } if ((t = o->timers) && !!(t->lflags & tttimer_lflags_enabled) != set_timer) { if (t->args && t->args->array_n > 1) t->args->array[1] = (ttany)delta; if (set_timer) TTSetDelay_tttimer((tt_obj)t->id, 0, 200 MilliSECs); t->Class->SetEnabled(t, set_timer); } if (vflags != old_vflags) { FIRE_EVENT(o->vflags = vflags, o, ttvisible_vflags, vflags, old_vflags); if (o->parent && (o->vflags & ttvisible_vflags_visible)) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } } static ttlistener null_CreateMouseListener_ttslider(ttslider o, ttuint evcode) { return CreateE_ttlistener ((ttcomponent)o, Create_ttevent(ttevent_evtype_mouse, evcode, 0), ttlistener_lflags_arg0_event, (ttlistener_fn)null_MouseListener_ttslider, (ttany)0); } static void null_TimerListener_ttslider(ttany arg0, ttany arg1) { tttimer t; ttslider o; ttint delta; /* default timer handler */ if (!((t = ID2(tttimer,arg0)) && TTAssert(t) && (o = (ttslider)t->component) && TTAssert(IS(ttslider,o)))) return; if ((delta = (ttint)arg1)) { /* could FIRE_EVENT() here, but this is more compact */ TTSetPosition_ttanyscroll((tt_obj)o->id, o->position + delta); } /* reactivate the timer itself */ TTSetDelay_tttimer((tt_obj)t->id, 0, 30 MilliSECs); } TT_INLINE tttimer null_CreateTimer_ttslider(ttslider o) { return CreateR_tttimer((ttcomponent)o, 0, (ttlistener_fn)null_TimerListener_ttslider, -1, 0, CreateL_ttvector(2, (ttany)0, (ttany)0), 0, 0); } static NEW(ttslider) { if ((o = NEWSUPER(ttslider))) { o->slide_min = o->slide_value = 0; o->slide_max = 10; if (null_CreateMouseListener_ttslider(o, ttevent_evcode_mouse_move) && null_CreateMouseListener_ttslider(o, ttevent_evcode_mouse_press_1) && null_CreateMouseListener_ttslider(o, ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1) && null_CreateMouseListener_ttslider(o, ttevent_evcode_mouse_release_1) && null_CreateTimer_ttslider(o)) { return o; } TDEL(o); } return NULL; } static void DEF(Recalculate_ttslider)(ttslider o, ttint size, ttint real_size, ttint view_size, ttint position) { tttheme t = myTheme(o); ttint real_size_, real_view_size, view_size_; if (size < 0) { if (o->real_size - o->real_view_size > 0) { size = o->slide_max - o->slide_min; if (size < 0) size = -size; size = o->real_size * size / (o->real_size - o->real_view_size); } else size = 0; } real_view_size = size > 0 ? o->orientation == ttanyscroll_orientation_x ? t->shape[ttslider_shape_normal][1].width : t->shape[ttslider_shape_normal][1].height : 0; real_size_ = real_size >= 0 ? real_size : o->real_size; view_size_ = real_size_ > 0 ? real_view_size * size / real_size_ : 0; if (size == o->size) size = TT_MIN_ttint; FNSUPER(ttslider)->Recalculate((SUPER(ttslider))o, size, real_size, view_size_, position); } static ttuint DEF(CacheThemeShape_ttslider)(ttslider o) { static TT_CONST ttuint case_flags_x[][3] = { { ttanybutton_vflags_normal, ttslider_shape_normal, tttheme_shape_ttslider_x_normal, }, { ttanybutton_vflags_prelight, ttslider_shape_prelight, tttheme_shape_ttslider_x_prelight, }, { ttanybutton_vflags_pressed, ttslider_shape_pressed, tttheme_shape_ttslider_x_pressed, }, { ttanybutton_vflags_disabled, ttslider_shape_disabled, tttheme_shape_ttslider_x_disabled, }, }; static TT_CONST ttuint case_flags_y[][3] = { { ttanybutton_vflags_normal, ttslider_shape_normal, tttheme_shape_ttslider_y_normal, }, { ttanybutton_vflags_prelight, ttslider_shape_prelight, tttheme_shape_ttslider_y_prelight, }, { ttanybutton_vflags_pressed, ttslider_shape_pressed, tttheme_shape_ttslider_y_pressed, }, { ttanybutton_vflags_disabled, ttslider_shape_disabled, tttheme_shape_ttslider_y_disabled, }, }; return null_CacheThemeShape_anyscroll ((ttanyscroll)o, ttanybutton_vflags_statemask, sizeof(case_flags_x)/sizeof(case_flags_x[0]), o->orientation == ttanyscroll_orientation_x ? case_flags_x : case_flags_y); } static ttbyte DEF(SetSize_ttslider)(ttslider o, ttint size) { /* do-nothing; use SetSlideMin() and SetSlideMax() instead */ return TT_FALSE; } static ttbyte DEF(SetSlideMin_ttslider)(ttslider o, ttint slide_min) { REVALIDATE(o->slide_min = slide_min); return TT_TRUE; } static ttbyte DEF(SetSlideMax_ttslider)(ttslider o, ttint slide_max) { REVALIDATE(o->slide_max = slide_max); return TT_TRUE; } static ttbyte DEF(SetSlideValue_ttslider)(ttslider o, ttint slide_value) { ttint low, high, position; REVALIDATE( if (o->slide_min < o->slide_max) { low = o->slide_min; high = o->slide_max; } else { low = o->slide_max; high = o->slide_min; } o->slide_value = slide_value = BOUND(slide_value, low, high); if ((position = slide_value - o->slide_min) < 0) position = -position; if (position != o->position) FIRE_EVENT( o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint, position), o, ttanyscroll_position, position, o->position ) ); return TT_TRUE; } static ttbyte DEF(SetPosition_ttslider)(ttslider o, ttint position) { ttint sign, slide_value; REVALIDATE( o->position = position = BOUND(position, 0, o->size); if (o->slide_min < o->slide_max) sign = 1; else sign = -1; slide_value = o->slide_min + sign * position; if (slide_value != o->slide_value) FIRE_EVENT( o->slide_value = slide_value, o, ttslider_slide_value, slide_value, o->slide_value ); o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint, position) ); return TT_TRUE; } /* ttprogressbar */ static NEW(ttprogressbar) { if ((o = NEWSUPER(ttprogressbar))) { o->size = 100; o->view_size = o->real_view_size = o->real_position_frac_above = 0; o->real_position_frac_below = 1; } return o; } static void DEF(Recalculate_ttprogressbar)(ttprogressbar o, ttint size, ttint real_size, ttint view_size, ttint position) { FNSUPER(ttscrollbar)->Recalculate((SUPER(ttprogressbar))o, size, real_size, view_size, position); if (o->size > 0) { static TT_CONST ttuint case_flags_i[] = { tttheme_shape_ttprogressbar_x_normal, tttheme_shape_ttprogressbar_x_disabled, tttheme_shape_ttprogressbar_y_normal, tttheme_shape_ttprogressbar_y_disabled, }; ttuint theme_i = (o->orientation == ttanyscroll_orientation_x ? 2 : 0) | ((o->vflags & ttprogressbar_vflags_statemask) == ttprogressbar_vflags_disabled ? 1 : 0); ttshape shape = & myTheme(o)->shape[case_flags_i[theme_i]][0]; ttuint frac_below = o->real_position_frac_below = o->orientation == ttanyscroll_orientation_x ? shape->width - shape->border[tt_x_left] - shape->border[tt_x_right] : shape->height- shape->border[tt_y_up] - shape->border[tt_y_down]; /* round to nearest */ ttint real_pos = (o->position * o->real_size * frac_below + o->size / 2) / o->size; o->real_position = real_pos / frac_below; o->real_position = BOUND(o->real_position, 0, o->real_size - o->real_view_size); o->real_position_frac_above = real_pos % frac_below; } else o->real_position_frac_above = 0; } static void null_AddShapeI_progressbar(ttattr *attr, ttshort pitch, ttshort w, ttshort h, ttattr *tattr, ttshort tw, ttshort th, ttshort b_left, ttshort b_up, ttshort b_right, ttshort b_down, ttprogressbar o) { ttshort ti, i, tj, j; ttint above = o->real_position_frac_above; ttshort max = o->real_position_frac_below - 1; if (o->orientation == ttanyscroll_orientation_x) { /* set horizontal progressbar inside */ for (j = tj = b_up; j < h - b_down; j++, tj++) { if (tj >= th - b_down) tj = b_up; for (i = b_left; i < w - b_right; i++) { ti = i - b_left; if (ti < o->real_position) attr[i+j*pitch] = tattr[max + tj*tw]; else if (ti == o->real_position) attr[i+j*pitch] = tattr[above + tj*tw]; else attr[i+j*pitch] = tattr[0 + tj*tw]; } } } else { /* set vertical progressbar inside */ for (j = b_up; j < h - b_down; j++) { tj = j - b_up; for (i = ti = b_left; i < w - b_right; i++, ti++) { if (ti >= tw - b_right) ti = b_left; if (tj < o->real_position) attr[i+j*pitch] = tattr[ti + max*tw]; else if (tj == o->real_position) attr[i+j*pitch] = tattr[ti + above*tw]; else attr[i+j*pitch] = tattr[ti + 0*tw]; } } } } static ttuint DEF(CacheThemeShape_ttprogressbar)(ttprogressbar o) { static TT_CONST ttuint case_flags_x[][3] = { { ttprogressbar_vflags_normal, ttprogressbar_shape_normal, tttheme_shape_ttprogressbar_x_normal, }, { ttprogressbar_vflags_disabled, ttprogressbar_shape_disabled, tttheme_shape_ttprogressbar_x_disabled, }, }; static TT_CONST ttuint case_flags_y[][3] = { { ttprogressbar_vflags_normal, ttprogressbar_shape_normal, tttheme_shape_ttprogressbar_y_normal, }, { ttprogressbar_vflags_disabled, ttprogressbar_shape_disabled, tttheme_shape_ttprogressbar_y_disabled, }, }; /* this is almost equal to null_CacheThemeShape_anyscroll(), except where noted below */ ttuint statemask = ttprogressbar_vflags_statemask; ttuint case_n = sizeof(case_flags_x)/sizeof(case_flags_x[0]); TT_CONST ttuint (*case_flags)[3] = o->orientation == ttanyscroll_orientation_x ? case_flags_x : case_flags_y; ttuint i, vflags; vflags = o->vflags & statemask; for (i = 0; i < case_n; i++) { if (case_flags[i][0] == vflags) break; } if (i >= case_n) return (ttuint)-1; if (o->theme_shape[case_flags[i][1]].attr) return case_flags[i][1]; o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint); { ttbyte x_or_y = o->orientation == ttanyscroll_orientation_x; ttbyte scroll_i = i; ttbyte theme_i = case_flags[i][2]; tttheme t = myTheme(o); ttshape t_shape = &t->shape[theme_i][0], s_shape = &t->shape[theme_i][1]; ttattr *shape; ttshort w, h; ttshort b_left = t_shape->border[tt_x_left], b_up = t_shape->border[tt_y_up]; ttshort b_right = t_shape->border[tt_x_right], b_down = t_shape->border[tt_y_down]; ttint real_pos = o->real_position; if (x_or_y) w = o->real_size, h = t_shape->height; else w = t_shape->width, h = o->real_size; if ((shape = (ttattr *)TTAllocMem((w += b_left+b_right) * (h += b_up+b_down) * sizeof(ttattr) ))) { TTWriteMem(shape, '\0', w * h * sizeof(ttattr)); o->theme_shape[scroll_i].width = w; o->theme_shape[scroll_i].height = h; TTCopyMem(t_shape->border, o->theme_shape[scroll_i].border, 4*sizeof(ttshort)); /* this differs from null_CacheThemeShape_anyscroll() : */ #if 1 null_AddShapeN(shape, w, w, h, t_shape->attr, t_shape->width, t_shape->height, b_left, b_up, b_right, b_down); null_AddShapeI_progressbar(shape, w, w, h, t_shape->attr, t_shape->width, t_shape->height, b_left, b_up, b_right, b_down, o); #else null_AddShapeI(shape, w, w, h, t_shape->attr, t_shape->width, t_shape->height, b_left, b_up, b_right, b_down); #endif if (x_or_y) { null_AddShapeI(shape + real_pos, w, o->real_view_size, h, s_shape->attr, s_shape->width, s_shape->height, s_shape->border[tt_x_left], s_shape->border[tt_y_up], s_shape->border[tt_x_right], s_shape->border[tt_y_down]); } else { null_AddShapeI(shape + w * real_pos, w, w, o->real_view_size, s_shape->attr, s_shape->width, s_shape->height, s_shape->border[tt_x_left], s_shape->border[tt_y_up], s_shape->border[tt_x_right], s_shape->border[tt_y_down]); } o->theme_shape[case_flags[i][1]].attr = shape; if (o->w != w || o->h != h) /* could FIRE_EVENT() here, but this is more compact */ TTSetWH_ttwidget((tt_obj)o->id, w, h); return case_flags[i][1]; } } return (ttuint)-1; } /* ttscrollpane */ static NEW(ttscrollpane) { ttscrollbar sx, sy; if ((o = NEWSUPER(ttscrollpane))) { if ((sx = Create1_ttscrollbar(ttanyscroll_orientation_x)) && (sy = Create1_ttscrollbar(ttanyscroll_orientation_y))) { o->Class->SetBarX(o, sx); o->Class->SetBarY(o, sy); return o; } TDEL(o); } return (ttscrollpane)0; } static DEL(ttscrollpane) { if (o) { if (o->bar_x) { TDEL(o->bar_x); o->bar_x = NULL; } if (o->bar_y) { TDEL(o->bar_y); o->bar_y = NULL; } DELSUPER(ttscrollpane); } } static ttbyte DEF(SetWH_ttscrollpane)(ttscrollpane o, ttshort w, ttshort h) { ttshort ow = o->w, oh = o->h; ttscrollbar sx = o->bar_x, sy = o->bar_y; FNSUPER(ttscrollpane)->SetWH((SUPER(ttscrollpane))o, w, h); w = o->w; h = o->h; /* a scrollpane must have logic size at least equal to real size */ /* and must keep in sync with its scrollbars */ /* * must call these FIRST, or scrollbars size will be wrong and will * incorrectly bound also their view_size */ if (o->wl < w) TTSetWl_ttwidget((tt_obj)o->id, w); if (o->hl < h) TTSetHl_ttwidget((tt_obj)o->id, h); if (w != ow) { if (sx) { TTSetRealSize_ttanyscroll((tt_obj)sx->id, w - 2); TTSetViewSize_ttanyscroll((tt_obj)sx->id, w); } if (sy) TTSetXY_ttwidget((tt_obj)sy->id, w, 0); } if (h != oh) { if (sy) { TTSetRealSize_ttanyscroll((tt_obj)sy->id, h - 2); TTSetViewSize_ttanyscroll((tt_obj)sy->id, h); } if (sx) TTSetXY_ttwidget((tt_obj)sx->id, 0, h); } return TT_TRUE; } static ttbyte DEF(SetXl_ttscrollpane)(ttscrollpane o, ttint xl) { ttint oxl = o->xl; FNSUPER(ttscrollpane)->SetXl((SUPER(ttscrollpane))o, xl); xl = o->xl; /* a scrollpane must keep in sync with its scrollbars */ if (xl != oxl && o->bar_x) TTSetPosition_ttanyscroll((tt_obj)o->bar_x->id, xl); return TT_TRUE; } static ttbyte DEF(SetYl_ttscrollpane)(ttscrollpane o, ttint yl) { ttint oyl = o->yl; FNSUPER(ttscrollpane)->SetYl((SUPER(ttscrollpane))o, yl); yl = o->yl; /* a scrollpane must keep in sync with its scrollbars */ if (yl != oyl && o->bar_y) TTSetPosition_ttanyscroll((tt_obj)o->bar_y->id, yl); return TT_TRUE; } static ttbyte DEF(SetWl_ttscrollpane)(ttscrollpane o, ttint wl) { ttint owl = o->wl; FNSUPER(ttscrollpane)->SetWl((SUPER(ttscrollpane))o, wl); wl = o->wl; /* a scrollpane must keep in sync with its scrollbars */ if (wl != owl && o->bar_x) TTSetSize_ttanyscroll((tt_obj)o->bar_x->id, wl); return TT_TRUE; } static ttbyte DEF(SetHl_ttscrollpane)(ttscrollpane o, ttint hl) { ttint ohl = o->hl; FNSUPER(ttscrollpane)->SetHl((SUPER(ttscrollpane))o, hl); hl = o->hl; /* a scrollpane must keep in sync with its scrollbars */ if (hl != ohl && o->bar_y) TTSetSize_ttanyscroll((tt_obj)o->bar_y->id, hl); return TT_TRUE; } static void DEF(AddTo_ttscrollpane)(ttscrollpane o, ttvisible parent, ttany constraint) { ttscrollbar sx, sy; FNSUPER(ttscrollpane)->AddTo((SUPER(ttscrollpane))o, parent, constraint); if ((sx = o->bar_x)) TTAdd_ttvisible((tt_obj)parent->id, (tt_obj)sx->id, ttborderlayout_constraint_south); if ((sy = o->bar_y)) TTAdd_ttvisible((tt_obj)parent->id, (tt_obj)sy->id, ttborderlayout_constraint_east); } static void DEF(Remove_ttscrollpane)(ttscrollpane o) { ttscrollbar sx, sy; FNSUPER(ttscrollpane)->Remove((SUPER(ttscrollpane))o); if ((sx = o->bar_x)) TTRemove_ttvisible((tt_obj)sx->id); if ((sy = o->bar_y)) TTRemove_ttvisible((tt_obj)sy->id); } /* FIXME: scrollpanes must listen for children add/remove and recalculate wl,hl */ static ttbyte DEF(SetBarX_ttscrollpane)(ttscrollpane o, ttscrollbar b) { ttscrollbar ob = o->bar_x; if (b != ob && (!b || (b->orientation == ttanyscroll_orientation_x))) { if (ob) ob->scrollpane = (ttscrollpane)0; if (b) { if (b->scrollpane) TTSetBarX_ttscrollpane((tt_obj)b->scrollpane->id, NULL); b->scrollpane = o; } FIRE_EVENT(o->bar_x = b, o, ttscrollpane_bar_x, (ttany)(opaque)b, (ttany)(opaque)ob); if (b) { /* FIXME: we should fire events too */ if (b->parent != o->parent) { b->Class->Remove(b); b->Class->AddTo(b, o->parent, ttborderlayout_constraint_east); } b->Class->SetXY(b, 0, o->h); b->Class->Recalculate(b, o->wl, TT_MIN_ttint, o->w, o->xl); } } return TT_TRUE; } static ttbyte DEF(SetBarY_ttscrollpane)(ttscrollpane o, ttscrollbar b) { ttscrollbar ob = o->bar_y; if (b != ob && (!b || (b->orientation == ttanyscroll_orientation_y))) { if (ob) ob->scrollpane = (ttscrollpane)0; if (b) { if (b->scrollpane) TTSetBarY_ttscrollpane((tt_obj)b->scrollpane->id, NULL); b->scrollpane = o; } FIRE_EVENT(o->bar_y = b, o, ttscrollpane_bar_y, (ttany)(opaque)b, (ttany)(opaque)ob); if (b) { /* FIXME: we should fire events too */ if (b->parent != o->parent) { b->Class->Remove(b); b->Class->AddTo(b, o->parent, ttborderlayout_constraint_south); } b->Class->SetXY(b, o->w, 0); b->Class->Recalculate(b, o->hl, TT_MIN_ttint, o->h, o->yl); } } return TT_TRUE; } /* ttscroller */ static NEW(ttscroller) { ttscrollpane sp; if ((o = NEWSUPER(ttscroller))) { o->Class->SetLayout(o, (ttlayout)TNEW(ttborderlayout)); if (o->layout && (o->scrollpane = sp = Create_ttscrollpane(o->w - 1, o->h - 1))) { sp->Class->AddTo(sp, (ttvisible)o, ttborderlayout_constraint_center); return o; } TDEL(o); } return NULL; } static DEL(ttscroller) { if (o) { if (o->scrollpane) { TDEL(o->scrollpane); o->scrollpane = (ttscrollpane)0; } DELSUPER(ttscroller); } } static ttbyte DEF(SetWH_ttscroller)(ttscroller o, ttshort w, ttshort h) { ttscrollpane sp; ttshort ow = o->w, oh = o->h; FNSUPER(ttscroller)->SetWH((SUPER(ttscroller))o, w, h); w = o->w; h = o->h; /* a scroller must keep its scrollpane in sync */ if (w != ow || h != oh) { if ((sp = o->scrollpane)) TTSetWH_ttwidget((tt_obj)sp->id, w - 1, h - 1); } return TT_TRUE; } /* ttwindow */ static NEW(ttwindow) { if ((o = NEWSUPER(ttwindow))) { o->title_len = 0; o->title = NULL; } return o; } static DEL(ttwindow) { if (o) { if (o->title) { TTFreeMem(o->title); o->title = NULL; } DELSUPER(ttwindow); } } static ttbyte DEF(SetTitle_ttwindow)(ttwindow o, TT_ARG_READ ttbyte *title) { ttbyte *_title = NULL; ttopaque title_len; if (!title || ((title_len = TTLenStr(title)), (_title = TTCloneStrL(title, title_len + 1)))) { if (o->title) TTFreeMem(o->title); o->title = _title; o->title_len = title_len; return TT_TRUE; } return TT_FALSE; } /* ttframe */ static NEW(ttframe) { if ((o = NEWSUPER(ttframe))) { o->menubar = NULL; } return o; } static BUILD(ttframe) { /* ttframe are non-visible when created */ o->vflags &= ~ttvisible_vflags_visible; o->Class->AddTo(o, (ttvisible)TClass_ttnative->GetRoot(), ttlayout_constraint_root); return o; } static ttbyte DEF(SetMenubar_ttframe)(ttframe o, ttmenubar m) { o->menubar = m; return TT_TRUE; } /* ttmenuitem */ /* ttcheckmenuitem */ /* ttradiomenuitem */ /* ttmenuwindow */ /* ttmenu */ static NEW(ttmenu) { if ((o = NEWSUPER(ttmenu))) { o->menubar = (ttmenubar)0; } return o; } /* ttmenubar */ static DEL(ttmenubar) { if (o) { if (TTD.Menubar == o) TTD.Menubar = (ttmenubar)0; DELSUPER(ttmenubar); } } /* ttanytext */ static NEW(ttanytext) { if ((o = NEWSUPER(ttanytext))) { o->text = NULL; o->text_len = 0; } return o; } /* tttextfield */ /* tttextarea */ /* tttheme */ static BUILD(tttheme) { /* FIXME finish this */ return o; } static DEL(tttheme) { if (o) { if (TTD.Theme == o) TTD.Theme = (tttheme)0; DELSUPER(tttheme); } } /* ttapplication */ static NEW(ttapplication) { if ((o = NEWSUPER(ttapplication))) { o->name = (ttbyte *)0; } return o; } static DEL(ttapplication) { if (o) { if (TTD.Application == o) TTD.Application = (ttapplication)0; if (o->name) { TTFreeMem(o->name); o->name = (ttbyte *)0; } DELSUPER(ttapplication); } } /* common stuff: */ static byte HWDEF(Sync)(void) { return TT_TRUE; } static byte HWDEF(Flush)(void) { return TT_TRUE; } static byte HWDEF(TimidFlush)(void) { return TT_TRUE; } static byte HWDEF(MainLoopOnce)(ttbyte wait) { return TT_TRUE; } static void HWDEF(DeleteCallback)(ttcallback o) { } static void HWDEF(Close)(void) { } static int HWDEF(ConnectionFd)(void) { return TT_NOFD; } static ttuint HWDEF(GetErrno)(void) { return 0; } static ttuint HWDEF(GetErrnoDetail)(void) { return 0; } static TT_CONST byte *HWDEF(StrError)(ttuint E) { return ""; } static TT_CONST byte *HWDEF(StrErrorDetail)(ttuint E, ttuint S) { return ""; } ttclasses _TT_null_InitHW(tthw *HW) { *HW = &null_TTClasses.HW; return &null_TTClasses; } DECL_AFTER ������������������������������twin-0.9.0/libs/libTT/HW/null_m4.c������������������������������������������������������������������0000664�0000000�0000000�00000404233�13775351206�0016523�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from null_c by m4/hw.m4h, do not edit! */ /* * null_m4.c -- implementation of libTT methods on "null" target display * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is null_c and is preprocessed by m4 to produce null_m4.c * * It must be a valid m4 file, and must produce a valid C include file. * */ /* * We need to write down only overloaded methods. */ /* order is crucial here! */ #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #endif /* include our internal copy of TT.h instead of the public one */ #include "TT.h" #include <TT/TTerrno.h> #include "mutex.h" #include "TTextern.h" #include "TTassert.h" #include "utils.h" #include "inlines.h" #include "seterrno.h" #include "theme.h" #include "common_m4.h" static s_ttclasses null_TTClasses; #define REVALIDATE(call) \ do { \ o->Class->Invalidate(o); \ call; \ if (o->parent && (o->vflags & ttvisible_vflags_visible)) \ Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); \ } while (0) /* ttobj */ /* ttobj has no methods. nothing to do */ /* ttobject */ static ttobject null_New_ttobject(ttclass_ttobject Class, ttobject o) { /* * if argument (o) is non-NULL, use it instead of allocating memory. * in this case, set o->oflags to ttobject_oflags_static to avoid * deallocating it later with TTFreeMem(). */ ttuint oflags = (ttopaque)o ? ttobject_oflags_static : 0; if ((o || (o = (ttobject)TTAllocMem(Class->size)))) { if (AssignId((ttclass)Class, (ttobj)o)) { o->Class = Class; o->refcount = ttobject_refcount_alive; o->oflags = oflags; o->native = o->target_private = o->user_data = (ttany)0; o->events_inprogress = o->events_informed = (ttopaque)0; return o; } if (!(oflags & ttobject_oflags_static)) TTFreeMem(o); } return (ttobject)0; } static ttobject null_Build_ttobject(ttobject o) { /* * this is necessary for all derived classes that do not overload Class->Build. * It is not actually useful for ttobject. */ return o; } static void null_Break_ttobject(ttobject o) { /* * this is necessary for all derived classes that do not overload Class->Break. * It is not actually useful for ttobject. */ } static void null_Del_ttobject(ttobject o) { if (o) { o->Class->Break(o); /* ttobject_refcount_alive flag should already be removed */ if (!o->refcount) { /* drop Id as late as possible (for listeners) */ DropId((ttobj)o); if (!(o->oflags & ttobject_oflags_static)) TTFreeMem(o); } else { /* * WARNING: we did not delete o, let's clear * o->events_inprogress so that we can delete it later */ o->events_inprogress &= ~ttmask(ttevent_evtype_del); } } } /* ttvector */ static ttvector null_New_ttvector(ttclass_ttvector Class, ttvector o) { if ((o = (ttvector)TClass(ttobject)->New((ttclass_ttobject)Class, (ttobject)o))) { o->array_size = o->array_n = (ttopaque)0; o->array = (ttany *)0; } return o; } static void null_Del_ttvector(ttvector o) { if (o) { if (o->array) { TTFreeMem(o->array); o->array = (ttany *)0; } TClass(ttobject)->Del((ttobject)o); } } static ttbyte null_Grow_ttvector(ttvector o, ttopaque delta_n) { ttopaque new_size = (o->array_n + delta_n) * 3 / 2; ttany *new_array; if (new_size < 6) new_size = 6; if (!(new_array = TTReallocMem(o->array, new_size * sizeof(ttany)))) { new_size = o->array_n + delta_n; if (!(new_array = TTReallocMem(o->array, new_size * sizeof(ttany)))) return TT_FALSE; } o->array = new_array; o->array_size = new_size; return TT_TRUE; } ttany null_GetAt_ttvector(ttvector o, ttopaque pos) { if (TTAssert(o && IS(ttvector, o)) && pos < o->array_n) return o->array[pos]; return (ttany)0; } ttbyte null_SetAt_ttvector(ttvector o, ttopaque pos, ttany value) { if (TTAssert(o && IS(ttvector, o)) && pos < o->array_n) { o->array[pos] = value; return TT_TRUE; } return TT_FALSE; } ttbyte null_AddY_ttvector(ttvector o, ttopaque pos, ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY(_P(2)) ttany *values) { if (!value_n) return TT_TRUE; if (values && pos <= o->array_n && (o->array_size >= o->array_n + value_n || null_Grow_ttvector(o, value_n))) { if (pos < o->array_n) TTMoveMem(o->array + pos, o->array + pos + value_n, (o->array_n - pos) * sizeof(ttany)); TTCopyMem(values, o->array + pos, value_n * sizeof(ttany)); o->array_n += value_n; return TT_TRUE; } return TT_FALSE; } ttopaque null_ContainsValue_ttvector(ttvector o, ttopaque pos_start, ttany value) { while (pos_start < o->array_n) { if (o->array[pos_start] == value) return pos_start; pos_start++; } return (ttopaque)-1; } ttbyte null_RemoveRange_ttvector(ttvector o, ttopaque pos, ttopaque pos_n) { if (pos + pos_n <= o->array_n) { if (pos + pos_n < o->array_n) TTMoveMem(o->array + pos + pos_n, o->array + pos, (o->array_n - pos - pos_n) * sizeof(ttany)); o->array_n -= pos_n; } return TT_TRUE; } /* ttevent */ static ttevent null_New_ttevent(ttclass_ttevent Class, ttevent o) { if ((o = (ttevent)TClass(ttobject)->New((ttclass_ttobject)Class, (ttobject)o))) { o->component = (ttcomponent)0; o->evtype = o->evcode = o->evflags = 0; o->prev = o->next = (ttevent)0; } return o; } /* tteventbig */ static tteventbig null_New_tteventbig(ttclass_tteventbig Class, tteventbig o) { if ((o = (tteventbig)TClass(ttevent)->New((ttclass_ttevent)Class, (ttevent)o))) { o->x = o->y = o->w = o->h = (ttshort)0; o->value = o->old_value = (ttany)0; o->data = (TT_CONST ttbyte *)0; o->data_len = (ttopaque)0; } return o; } /* ttbitmask */ static ttbitmask null_New_ttbitmask(ttclass_ttbitmask Class, ttbitmask o) { if ((o = (ttbitmask)TClass(ttobject)->New((ttclass_ttobject)Class, (ttobject)o))) { o->mask0 = o->mask_max = o->mask_n = (opaque)0; o->mask = (ttany *)0; } return o; } /* tteventmask */ static tteventmask null_New_tteventmask(ttclass_tteventmask Class, tteventmask o) { if ((o = (tteventmask)TClass(ttobject)->New((ttclass_ttobject)Class, (ttobject)o))) { o->truth_table = 0x80; /* logical AND */ o->evtype_mask = o->evcode_mask = o->component_mask = (ttbitmask)0; } return o; } static void null_Del_tteventmask(tteventmask o) { if (o) { if (TTD.InstalledEM == o) TTD.InstalledEM = (tteventmask)0; if (TTD.DefaultEM == o) TTD.DefaultEM = (tteventmask)0; if (o->evtype_mask) { TDEL(o->evtype_mask); o->evtype_mask = (ttbitmask)0; } if (o->evcode_mask) { TDEL(o->evcode_mask); o->evcode_mask = (ttbitmask)0; } if (o->component_mask) { TDEL(o->component_mask); o->component_mask = (ttbitmask)0; } TClass(ttobject)->Del((ttobject)o); } } /* ttcallback */ static ttcallback null_New_ttcallback(ttclass_ttcallback Class, ttcallback o) { if ((o = (ttcallback)TClass(ttobject)->New((ttclass_ttobject)Class, (ttobject)o))) { o->lflags = 0; o->component = (ttcomponent)0; o->prev = o->next = (ttcallback)0; } return o; } static void null_Del_ttcallback(ttcallback o) { if (o) { if (o->next) o->next->prev = o->prev; if (o->prev) o->prev->next = o->next; else if (o->component && o->component->callbacks == o) o->component->callbacks = o->next; o->prev = o->next = (ttcallback)0; THW.DeleteCallback(o); TClass(ttobject)->Del((ttobject)o); } } static ttcallback null_Create_ttcallback(ttcomponent c) { ttcallback o; if ((o = TNEW(ttcallback))) { if ((o->next = c->callbacks)) o->next->prev = o; o->component = c; c->callbacks = o; } return o; } static TT_CONST struct s_tavl empty_AVL; /* ttlistener */ static ttlistener null_New_ttlistener(ttclass_ttlistener Class, ttlistener o) { if ((o = (ttlistener)TClass(ttcallback)->New((ttclass_ttcallback)Class, (ttcallback)o))) { o->AVL = empty_AVL; o->prev = o->next = (ttlistener)0; o->event = (ttevent)0; o->function = (ttany)0; o->arg_component_n = o->arg_event_n = (ttuint)-1; o->args = (ttvector)0; o->event_mask = (tteventmask)0; o->inprogress_prev = o->inprogress_next = (ttlistener)0; } return o; } static void null_Del_ttlistener(ttlistener o) { if (o) { o->Class->Remove(o); if (o->event) { TDEL(o->event); o->event = (ttevent)0; } if (o->args) { TDEL(o->args); o->args = (ttvector)0; } if (o->event_mask) { TDEL(o->event_mask); o->event_mask = (tteventmask)0; } TClass(ttcallback)->Del((ttcallback)o); } } static void null_AddTo_ttlistener(ttlistener c, ttcomponent o) { /* implemented in libTT.c */ AddTo_ttlistener(c, o); } static void null_Remove_ttlistener(ttlistener o) { /* implemented in libTT.c */ Remove_ttlistener(o); } /* tttimer */ static tttimer null_New_tttimer(ttclass_tttimer Class, tttimer o) { if ((o = (tttimer)TClass(ttlistener)->New((ttclass_ttlistener)Class, (ttlistener)o))) { o->delay_t = o->delay_f = (ttany)0; o->timer_prev = o->timer_next = (tttimer)0; } return o; } static void null_Del_tttimer(tttimer o) { if (o) { o->Class->Remove(o); TClass(ttlistener)->Del((ttlistener)o); } } static tttimer null_Build_tttimer(tttimer o) { if (o->lflags & tttimer_lflags_enabled) Activate_tttimer(o, TT_TRUE); return o; } static void null_Break_tttimer(tttimer o) { if (o->lflags & tttimer_lflags_enabled) Activate_tttimer(o, TT_FALSE); } static void null_SetEnabled_tttimer(tttimer o, ttbyte enable) { if (!enable != !(o->lflags & tttimer_lflags_enabled)) { o->lflags ^= tttimer_lflags_enabled; Activate_tttimer(o, enable); } } static ttbyte null_IsEnabled_tttimer(tttimer o) { return !!(o->lflags & tttimer_lflags_enabled); } static void null_AddTo_tttimer(tttimer o, ttcomponent c) { /* prepend */ if (c && !o->component) { if ((o->next = c->timers)) c->timers->prev = o; c->timers = o; o->prev = NULL; o->component = c; } } static void null_Remove_tttimer(tttimer o) { ttcomponent c; if ((c = o->component)) { if (o->prev) o->prev->next = o->next; else c->timers = o->next; if (o->next) o->next->prev = o->prev; o->component = NULL; } } /* ttdata */ static ttdata null_New_ttdata(ttclass_ttdata Class, ttdata o) { if ((o = (ttdata)TClass(ttcomponent)->New((ttclass_ttcomponent)Class, (ttcomponent)o))) { o->AVL = empty_AVL; o->component = (ttcomponent)0; o->key_len = (ttopaque)0; o->key = NULL; o->data = (ttany)0; } return o; } static void null_Del_ttdata(ttdata o) { if (o) { o->Class->Remove(o); TClass(ttcomponent)->Del((ttcomponent)o); } } static void null_AddTo_ttdata(ttdata o, ttcomponent c) { /* implemented in libTT.c */ AddTo_ttdata(o, c, TT_FALSE); } static void null_Remove_ttdata(ttdata o) { /* implemented in libTT.c */ Remove_ttdata(o); } /* ttcomponent */ static ttcomponent null_New_ttcomponent(ttclass_ttcomponent Class, ttcomponent o) { if ((o = (ttcomponent)TClass(ttobject)->New((ttclass_ttobject)Class, (ttobject)o))) { o->callbacks = (ttcallback)0; o->listeners = (ttlistener)0; o->timers = (tttimer)0; o->datas = (ttdata)0; } return o; } static void null_Del_ttcomponent(ttcomponent o) { if (o) { if (!(o->events_informed & ttmask(ttevent_evtype_del))) { /* be sure we fire delete event only ONCE! */ o->events_informed |= ttmask(ttevent_evtype_del); FireSimpleEvent(o, ttevent_evtype_del); } if (!o->refcount) /* delete listeners and other stuff only if * it's our last chance to do that */ DelAllExtras_ttcomponent(o); TClass(ttobject)->Del((ttobject)o); } } /* ttvisible */ static ttvisible null_New_ttvisible(ttclass_ttvisible Class, ttvisible o) { if ((o = (ttvisible)TClass(ttcomponent)->New((ttclass_ttcomponent)Class, (ttcomponent)o))) { o->vflags = ttvisible_vflags_visible; o->prev = o->next = o->parent = o->child_first = o->child_last = NULL; o->constraint = (ttany)0; o->theme = NULL; o->repaint = (ttvisible_repaint_fn)0; } return o; } static void null_Del_ttvisible(ttvisible o) { ttvisible c; if (o) { o->Class->Remove(o); while ((c = o->child_first)) c->Class->Remove(c); TClass(ttcomponent)->Del((ttcomponent)o); } } static void null_AddTo_ttvisible(ttvisible o, ttvisible parent, ttany constraint) { /* append */ if (parent && !o->parent) { if ((o->prev = parent->child_last)) parent->child_last->next = o; else parent->child_first = o; parent->child_last = o; o->next = NULL; o->parent = parent; o->constraint = constraint; parent->Class->Validate(parent); } } static void null_Validate_ttvisible(ttvisible o) {} static void null_SetVisible_ttvisible(ttvisible o, byte visible) { if (visible) o->vflags |= ttvisible_vflags_visible; else o->vflags &= ~ttvisible_vflags_visible; } static void null_Remove_ttvisible(ttvisible o) { ttvisible parent; if ((parent = o->parent)) { if (o->prev) o->prev->next = o->next; else parent->child_first = o->next; if (o->next) o->next->prev = o->prev; else parent->child_last = o->prev; o->parent = NULL; } } static void null_Invalidate_ttvisible(ttvisible o) { /* nothing to do here */ } static ttbyte null_SetTheme_ttvisible(ttvisible o, tttheme theme) { tttheme oldtheme = myTheme(o); o->theme = theme; o->Class->Invalidate(o); if (theme != oldtheme && o->parent && (o->vflags & ttvisible_vflags_visible)) Expose_ttvisible(o, ttvisible_repaint_args_WHOLE); return TT_TRUE; } static void null_Draw_ttvisible(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_CONST ttbyte *asciidata, TT_CONST ttfont *fontdata, TT_CONST ttattr *attrdata) { /* do-nothing */ } static void null_BuiltinRepaint_ttvisible(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h) { /* do-nothing */ } /* ttlayout */ static ttlayout null_New_ttlayout(ttclass_ttlayout Class, ttlayout o) { if ((o = (ttlayout)TClass(ttcomponent)->New((ttclass_ttcomponent)Class, (ttcomponent)o))) { o->widget = NULL; } return o; } static void null_Del_ttlayout(ttlayout o) { if (o) { if (o->widget) o->widget->Class->SetLayout(o->widget, NULL); TClass(ttcomponent)->Del((ttcomponent)o); } } static void null_SetWidget_ttlayout(ttlayout o, ttwidget w) { o->widget = w; } static void null_DoLayout_ttlayout(ttlayout o) {} /* ttboxlayout */ static ttboxlayout null_New_ttboxlayout(ttclass_ttboxlayout Class, ttboxlayout o) { if ((o = (ttboxlayout)TClass(ttlayout)->New((ttclass_ttlayout)Class, (ttlayout)o))) { o->orientation = ttboxlayout_orientation_x; } return o; } /* ttborderlayout */ /* ttnative */ static ttnative null_GetRoot_ttnative(void) { return Create_ttnative((ttany)0); } static ttshort null_GetW_ttnative(ttnative o) { return (ttshort)1; } static ttshort null_GetH_ttnative(ttnative o) { return (ttshort)1; } /* ttwidget */ static ttwidget null_New_ttwidget(ttclass_ttwidget Class, ttwidget o) { if ((o = (ttwidget)TClass(ttvisible)->New((ttclass_ttvisible)Class, (ttvisible)o))) { o->x = o->y = o->xl = o->yl = 0; o->layout = NULL; o->w = o->h = o->wl = o->hl = 1; o->col = myTheme(o)->bg[tttheme_bg_normal]; o->tooltip = (tttooltip)0; } return o; } static void null_Del_ttwidget(ttwidget o) { if (o) { if (o->tooltip) { TDEL(o->tooltip); o->tooltip = (tttooltip)0; } TClass(ttvisible)->Del((ttvisible)o); } } static void null_AddTo_ttwidget(ttwidget o, ttvisible parent, ttany constraint) { if (parent && !o->parent) { /* prepend to list, cannot use TClass(ttvisible)->AddTo() */ if ((o->next = parent->child_first)) parent->child_first->prev = (ttvisible)o; else parent->child_last = (ttvisible)o; parent->child_first = (ttvisible)o; o->prev = NULL; o->parent = parent; o->constraint = constraint; parent->Class->Validate(parent); } } static void null_Validate_ttwidget(ttwidget o) {} static void null_Invalidate_ttwidget(ttwidget o) { tttheme t = myTheme(o); #ifdef ttwidget_col /* in case o->col is client-visible */ FIRE_EVENT(o->col = t->bg[tttheme_bg_normal], o, ttwidget_col, t->bg[tttheme_bg_normal], o->col); #else o->col = t->bg[tttheme_bg_normal]; #endif } static ttbyte null_SetXY_ttwidget(ttwidget o, ttshort x, ttshort y) { o->x = x; o->y = y; return TT_TRUE; } static ttbyte null_SetWH_ttwidget(ttwidget o, ttshort w, ttshort h) { o->w = w; o->h = h; return TT_TRUE; } static ttbyte null_SetXl_ttwidget(ttwidget o, ttint xl) { o->xl = xl; return TT_TRUE; } static ttbyte null_SetYl_ttwidget(ttwidget o, ttint yl) { o->yl = yl; return TT_TRUE; } static ttbyte null_SetWl_ttwidget(ttwidget o, ttint wl) { o->wl = wl; return TT_TRUE; } static ttbyte null_SetHl_ttwidget(ttwidget o, ttint hl) { o->hl = hl; return TT_TRUE; } static ttbyte null_SetTooltip_ttwidget(ttwidget o, tttooltip t) { if (o->tooltip != t) { if (o->tooltip) TDEL(o->tooltip); if ((o->tooltip = t)) return t->Class->SetWidget(t, o); } return TT_TRUE; } static void null_SetLayout_ttwidget(ttwidget o, ttlayout l) { TDEL(o->layout); o->layout = l; o->Class->Validate(o); } /* ttlabel */ static ttlabel null_New_ttlabel(ttclass_ttlabel Class, ttlabel o) { if ((o = (ttlabel)TClass(ttwidget)->New((ttclass_ttwidget)Class, (ttwidget)o))) { o->text_len = 0; o->text = NULL; o->col = myTheme(o)->bg[tttheme_bg_label]; } return o; } static void null_Del_ttlabel(ttlabel o) { if (o) { if (o->text) { TTFreeMem(o->text); o->text = NULL; } TClass(ttwidget)->Del((ttwidget)o); } } static void null_SetFontD_ttlabel(ttlabel o, ttopaque text_len, TT_ARG_DIE TT_ARG_ARRAY((_P(2))) ttfont *text) { if (o->text) TTFreeMem(o->text); o->text_len = text_len; o->text = text; if (o->parent && o->vflags & ttvisible_vflags_visible) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } /* tttooltip */ static tttooltip null_New_tttooltip(ttclass_tttooltip Class, tttooltip o) { if ((o = (tttooltip)TClass(ttlabel)->New((ttclass_ttlabel)Class, (ttlabel)o))) { o->widget = (ttwidget)0; } return o; } static ttbyte null_SetWidget_tttooltip(tttooltip o, ttwidget w) { if (o->widget != w) { o->widget = w; /* * CAUTION: infinite loop risk: * we call SetTooltip_ttwidget(), which may call us. * * solution: we do not call it if w->tooltip is already correct */ if (w && w->tooltip != o) return w->Class->SetTooltip(w, o); } return TT_TRUE; } static void null_Del_tttooltip(tttooltip o) { if (o) { if (o->widget) { /* could FIRE_EVENT() here, but this is more compact */ TTSetWidget_tttooltip((tt_obj)o->id, TT_NOID); } TClass(ttlabel)->Del((ttlabel)o); } } /* ttbuttongroup */ static ttbuttongroup null_New_ttbuttongroup(ttclass_ttbuttongroup Class, ttbuttongroup o) { if ((o = (ttbuttongroup)TClass(ttcomponent)->New((ttclass_ttcomponent)Class, (ttcomponent)o))) { o->group_first = o->group_last = o->checked = (ttradiobutton)0; } return o; } static void null_Del_ttbuttongroup(ttbuttongroup o) { while (o->group_first) { o->Class->Remove(o, o->group_first); } TClass(ttcomponent)->Del((ttcomponent)o); } static void null_Add_ttbuttongroup(ttbuttongroup g, ttradiobutton o) { if (o && !o->group) { if (g->checked && (o->vflags & ttcheckbutton_vflags_checked)) /* we already have a checked button, uncheck this */ o->Class->SetChecked(o, TT_FALSE); if ((o->group_prev = g->group_last)) g->group_last->group_next = o; else g->group_first = o; g->group_last = o; o->group_next = NULL; o->group = g; if (!g->checked && (o->vflags & ttcheckbutton_vflags_checked)) { /* we do not have a checked button, use this as the checked one */ FIRE_EVENT(g->checked = o, g, ttbuttongroup_checked, (ttany)(opaque)o, (ttany)0); } } } static void null_Remove_ttbuttongroup(ttbuttongroup g, ttradiobutton o) { if (o && o->group == g) { if (o == g->checked) g->Class->SetChecked(g, (ttradiobutton)0); if (o->group_prev) o->group_prev->group_next = o->group_next; else g->group_first = o->group_next; if (o->group_next) o->group_next->group_prev = o->group_prev; else g->group_last = o->group_prev; o->group_prev = o->group_next = (ttradiobutton)0; o->group = (ttbuttongroup)0; } } static void null_SetChecked_ttbuttongroup(ttbuttongroup g, ttradiobutton o) { ttradiobutton c; if (o != (c = g->checked)) { /* * CAUTION: infinite loop risk: * we call SetChecked_ttradiobutton(), which may call us. * * solution: we update g->checked *before* calling it. */ FIRE_EVENT(g->checked = o, g, ttbuttongroup_checked, (ttany)(opaque)o, (ttany)(opaque)c); if (c) c->Class->SetChecked(c, TT_FALSE); if (o) o->Class->SetChecked(o, TT_TRUE); } } /* ttanybutton */ static ttanybutton null_New_ttanybutton(ttclass_ttanybutton Class, ttanybutton o) { if ((o = (ttanybutton)TClass(ttwidget)->New((ttclass_ttwidget)Class, (ttwidget)o))) { o->text = NULL; o->text_width = o->text_height = 0; o->col = myTheme(o)->bg[tttheme_bg_anybutton]; TTWriteMem(o->theme_shape, '\0', sizeof(o->theme_shape)); return o; } return NULL; } static void null_Invalidate_ttanybutton(ttanybutton o) { ttbyte i; #ifdef DEBUG_TT_HW_NULL fprintf(stderr, "null_Invalidate_ttanybutton(o=0x%X)\n", (unsigned)o->id); #endif for (i = 0; i < sizeof(o->theme_shape) / sizeof(o->theme_shape[0]); i++) { if (o->theme_shape[i].attr) { TTFreeMem(o->theme_shape[i].attr); o->theme_shape[i].attr = NULL; } } } static void null_Del_ttanybutton(ttanybutton o) { if (o) { o->Class->Invalidate(o); if (o->text) { TTFreeMem(o->text); o->text = NULL; } TClass(ttwidget)->Del((ttwidget)o); } } static void null_SetAttrD_ttanybutton(ttanybutton o, ttshort width, ttshort height, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3), *, _P(4))) ttattr *text) { o->Class->Invalidate(o); o->text_width = width; o->text_height = height; if (o->text) TTFreeMem(o->text); o->text = text; if (o->parent && o->vflags & ttvisible_vflags_visible) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } static ttuint null_CacheThemeShape_ttanybutton(ttanybutton o) { return (ttuint)-1; } static void null_AddShape(ttattr *attr, ttshort pitch, ttshort w, ttshort h, ttattr *tattr, ttshort tw, ttshort th, ttshort b_left, ttshort b_up, ttshort b_right, ttshort b_down, ttbyte also_inside) { ttshort ti, i, tj, j; ttattr a; /* set inside */ if (also_inside) { for (j = tj = b_up; j < h - b_down; j++, tj++) { if (tj >= th - b_down) tj = b_up; for (i = ti = b_left; i < w - b_right; i++, ti++) { if (ti >= tw - b_right) ti = b_left; if ((a = tattr[ti + tj * tw])) attr[i + j * pitch] = a; } } } /* set left and right upper corners */ for (j = 0; j < b_up; j++) { for (i = 0; i < b_left; i++) { if ((a = tattr[i + j * tw])) attr[i + j * pitch] = a; } for (i = 0; i < b_right; i++) { if ((a = tattr[i + (j + 1) * tw - b_right])) attr[i + (j + 1) * pitch - b_right] = a; } } /* set left and right borders */ for (j = tj = b_up; j < h - b_down; j++, tj++) { if (tj >= tw - b_down) tj = b_up; for (i = 0; i < b_left; i++) { if ((a = tattr[i + tj * tw])) attr[i + j * pitch] = a; } for (i = 0; i < b_right; i++) { if ((a = tattr[i + (tj + 1) * tw - b_right])) attr[i + (j + 1) * pitch - b_right] = a; } } /* set left and right lower corners */ for (j = 0; j < b_down; j++) { for (i = 0; i < b_left; i++) { if ((a = tattr[i + (th - b_down + j) * tw])) attr[i + (h - b_down + j) * pitch] = a; } for (i = 0; i < b_right; i++) { if ((a = tattr[i + (th - b_down + j + 1) * tw - b_right])) attr[i + (h - b_down + j + 1) * pitch - b_right] = a; } } /* set upper border */ for (j = 0; j < b_up; j++) { for (i = ti = b_left; i < w - b_right; i++, ti++) { if (ti >= tw - b_right) ti = 0; if ((a = tattr[ti + j * tw])) attr[i + j * pitch] = a; } } /* set lower border */ for (j = 0; j < b_down; j++) { for (i = ti = b_left; i < w - b_right; i++, ti++) { if (ti >= tw - b_right) ti = b_left; if ((a = tattr[ti + (th - b_down + j) * tw])) attr[i + (h - b_down + j) * pitch] = a; } } } #define null_AddShapeI(attr, pitch, w, h, tattr, tw, th, b_left, b_up, b_right, b_down) \ null_AddShape((attr), (pitch), (w), (h), (tattr), (tw), (th), (b_left), (b_up), (b_right), \ (b_down), TT_TRUE) #define null_AddShapeN(attr, pitch, w, h, tattr, tw, th, b_left, b_up, b_right, b_down) \ null_AddShape((attr), (pitch), (w), (h), (tattr), (tw), (th), (b_left), (b_up), (b_right), \ (b_down), TT_FALSE) static void null_AddText(ttattr *attr, ttshort w, ttattr *text, ttshort tw, ttshort th) { ttshort _tw; ttfont f; ttcol c; for (; th; th--) { for (_tw = tw; _tw; _tw--, attr++, text++) { f = TTGetFont_ttattr(*text); c = TTGetCol_ttattr(*attr); *attr = TTAttr(c, f); } attr += w - tw; } } static ttuint null_CacheThemeShape_anybutton(ttanybutton o, ttuint statemask, ttuint case_n, TT_CONST ttuint case_flags[][3]) { ttuint i, vflags; vflags = o->vflags & statemask; for (i = 0; i < case_n; i++) { if (case_flags[i][0] == vflags) break; } if (i >= case_n) return (ttuint)-1; if (o->theme_shape[case_flags[i][1]].attr) return case_flags[i][1]; { ttbyte button_i = i; ttbyte theme_i = case_flags[i][2]; tttheme t = myTheme(o); ttshape t_shape = &t->shape[theme_i][0], s_shape = &t->shape[theme_i][1]; ttattr *shape; ttshort w = o->text_width, h = o->text_height; ttshort b_left = t_shape->border[tt_x_left], b_up = t_shape->border[tt_y_up]; ttshort b_right = t_shape->border[tt_x_right], b_down = t_shape->border[tt_y_down]; if ((shape = (ttattr *)TTAllocMem((w += b_left + b_right) * (h += b_up + b_down) * sizeof(ttattr)))) { TTWriteMem(shape, '\0', w * h * sizeof(ttattr)); o->theme_shape[button_i].width = w; o->theme_shape[button_i].height = h; TTCopyMem(t_shape->border, o->theme_shape[button_i].border, 4 * sizeof(ttshort)); null_AddShapeI(shape, w, w, h, t_shape->attr, t_shape->width, t_shape->height, b_left, b_up, b_right, b_down); null_AddShapeI(shape, w, w, h, s_shape->attr, s_shape->width, s_shape->height, s_shape->border[tt_x_left], s_shape->border[tt_y_up], s_shape->border[tt_x_right], s_shape->border[tt_y_down]); null_AddText(shape + b_left + w * b_up, w, o->text, o->text_width, o->text_height); o->theme_shape[case_flags[i][1]].attr = shape; if (o->w < w || o->h < h) /* could FIRE_EVENT() here, but this is more compact */ TTSetWH_ttwidget((tt_obj)o->id, w, h); return case_flags[i][1]; } } return (ttuint)-1; } /* ttbutton */ static void null_MouseListener_ttbutton(ttany arg) { ttbutton o; tteventbig ev; ttuint old_vflags, vflags; ttbyte inside, activated = TT_FALSE; /* default mouse handler */ if (!((ev = ID2(tteventbig, arg)) && TTAssert(ev) && TTAssert(ev->evtype == ttevent_evtype_mouse) && (o = (ttbutton)ev->component) && TTAssert(IS(ttbutton, o)))) return; vflags = old_vflags = o->vflags; inside = ev->x >= 0 && ev->y >= 0 && ev->x < o->w && ev->y < o->h; switch (ev->evcode) { case ttevent_evcode_mouse_move: if (inside) vflags |= ttanybutton_vflags_prelight; else vflags &= ~ttanybutton_vflags_prelight; break; case ttevent_evcode_mouse_press_1: vflags &= ~ttanybutton_vflags_prelight; vflags |= ttanybutton_vflags_pressed; break; case ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1: if (inside) vflags |= ttanybutton_vflags_pressed; else vflags &= ~ttanybutton_vflags_pressed; break; case ttevent_evcode_mouse_release_1: vflags &= ~ttanybutton_vflags_pressed; if (inside) { vflags |= ttanybutton_vflags_prelight; activated = TT_TRUE; } break; default: break; } if (vflags != old_vflags) { FIRE_EVENT(o->vflags = vflags, o, ttvisible_vflags, vflags, old_vflags); if (o->parent && (o->vflags & ttvisible_vflags_visible)) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } if (activated) FireSimpleEvent((ttcomponent)o, ttevent_evtype_activate); } static ttlistener null_CreateListener_ttbutton(ttbutton o, ttuint evcode) { return CreateE_ttlistener((ttcomponent)o, Create_ttevent(ttevent_evtype_mouse, evcode, 0), ttlistener_lflags_arg0_event, (ttlistener_fn)null_MouseListener_ttbutton, (ttany)0); } static ttbutton null_New_ttbutton(ttclass_ttbutton Class, ttbutton o) { if ((o = (ttbutton)TClass(ttanybutton)->New((ttclass_ttanybutton)Class, (ttanybutton)o))) { if (null_CreateListener_ttbutton(o, ttevent_evcode_mouse_move) && null_CreateListener_ttbutton(o, ttevent_evcode_mouse_press_1) && null_CreateListener_ttbutton(o, ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1) && null_CreateListener_ttbutton(o, ttevent_evcode_mouse_release_1)) { return o; } TDEL(o); } return (ttbutton)0; } static void null_SetPressed_ttbutton(ttbutton o, byte pressed) { if (pressed) o->vflags |= ttanybutton_vflags_pressed; else o->vflags &= ~ttanybutton_vflags_pressed; if (o->vflags != o->vflags && (o->vflags & ttvisible_vflags_visible) && o->parent) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } static ttuint null_CacheThemeShape_ttbutton(ttbutton o) { static TT_CONST ttuint case_flags[][3] = { { ttanybutton_vflags_normal, ttbutton_shape_normal, tttheme_shape_ttbutton_normal, }, { ttanybutton_vflags_prelight, ttbutton_shape_prelight, tttheme_shape_ttbutton_prelight, }, { ttanybutton_vflags_pressed, ttbutton_shape_pressed, tttheme_shape_ttbutton_pressed, }, { ttanybutton_vflags_disabled, ttbutton_shape_disabled, tttheme_shape_ttbutton_disabled, }, }; return null_CacheThemeShape_anybutton((ttanybutton)o, ttanybutton_vflags_statemask, sizeof(case_flags) / sizeof(case_flags[0]), case_flags); } /* ttcheckbutton */ static void null_MouseListener_ttcheckbutton(ttany arg) { ttcheckbutton o; ttbyte checked; if (TTAssert(o = ID2(ttcheckbutton, arg))) { if (IS(ttradiobutton, o)) /* always set to checked state upon activate event */ checked = TT_TRUE; else /* IS(ttcheckbutton,o) */ /* toggle checked state upon activate event */ checked = !(o->vflags & ttcheckbutton_vflags_checked); /* could FIRE_EVENT() here, but this is more compact */ TTSetChecked_ttcheckbutton((tt_obj)o->id, checked); } } static ttcheckbutton null_New_ttcheckbutton(ttclass_ttcheckbutton Class, ttcheckbutton o) { if ((o = (ttcheckbutton)TClass(ttbutton)->New((ttclass_ttbutton)Class, (ttbutton)o))) { if (Create_ttlistener((ttcomponent)o, ttevent_evtype_activate, ttlistener_lflags_arg0_component, (ttlistener_fn)null_MouseListener_ttcheckbutton, (ttany)0)) { return o; } TDEL(o); } return NULL; } static void null_SetChecked_ttcheckbutton(ttcheckbutton o, ttbyte checked) { ttuint old_vflags = o->vflags; if (checked) o->vflags |= ttcheckbutton_vflags_checked; else o->vflags &= ~ttcheckbutton_vflags_checked; if (o->vflags != old_vflags && (o->vflags & ttvisible_vflags_visible) && o->parent) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } static ttuint null_CacheThemeShape_ttcheckbutton(ttcheckbutton o) { #define c ttcheckbutton_vflags_checked static TT_CONST ttuint case_flags[][3] = { { ttanybutton_vflags_normal, ttcheckbutton_shape_normal, tttheme_shape_ttcheckbutton_normal, }, { ttanybutton_vflags_prelight, ttcheckbutton_shape_prelight, tttheme_shape_ttcheckbutton_prelight, }, { ttanybutton_vflags_pressed, ttcheckbutton_shape_pressed, tttheme_shape_ttcheckbutton_pressed, }, { ttanybutton_vflags_disabled, ttcheckbutton_shape_disabled, tttheme_shape_ttcheckbutton_disabled, }, { c | ttanybutton_vflags_normal, ttcheckbutton_shape_checked_normal, tttheme_shape_ttcheckbutton_checked_normal, }, { c | ttanybutton_vflags_prelight, ttcheckbutton_shape_checked_prelight, tttheme_shape_ttcheckbutton_checked_prelight, }, { c | ttanybutton_vflags_pressed, ttcheckbutton_shape_checked_pressed, tttheme_shape_ttcheckbutton_checked_pressed, }, { c | ttanybutton_vflags_disabled, ttcheckbutton_shape_checked_disabled, tttheme_shape_ttcheckbutton_checked_disabled, }, }; #undef c return null_CacheThemeShape_anybutton((ttanybutton)o, ttcheckbutton_vflags_statemask, sizeof(case_flags) / sizeof(case_flags[0]), case_flags); } /* ttradiobutton */ static ttradiobutton null_New_ttradiobutton(ttclass_ttradiobutton Class, ttradiobutton o) { if ((o = (ttradiobutton)TClass(ttcheckbutton) ->New((ttclass_ttcheckbutton)Class, (ttcheckbutton)o))) { o->group = (ttbuttongroup)0; o->group_prev = o->group_next = (ttradiobutton)0; } return o; } static void null_Del_ttradiobutton(ttradiobutton o) { ttbuttongroup g; if (o) { if ((g = o->group)) g->Class->Remove(g, o); TClass(ttcheckbutton)->Del((ttcheckbutton)o); } } static void null_SetChecked_ttradiobutton(ttradiobutton o, ttbyte checked) { ttbuttongroup g; TClass(ttcheckbutton)->SetChecked((ttcheckbutton)o, checked); /* * CAUTION: infinite loop risk: * we call SetChecked_ttbuttongroup(), which may call us. * * solution: we do not call it if o->group->checked is already correct */ if ((g = o->group)) { if (checked && g->checked != o) g->Class->SetChecked(g, o); else if (!checked && g->checked == o) g->Class->SetChecked(g, (ttradiobutton)0); } } static ttuint null_CacheThemeShape_ttradiobutton(ttradiobutton o) { #define c ttcheckbutton_vflags_checked static TT_CONST ttuint case_flags[][3] = { { ttanybutton_vflags_normal, ttradiobutton_shape_normal, tttheme_shape_ttradiobutton_normal, }, { ttanybutton_vflags_prelight, ttradiobutton_shape_prelight, tttheme_shape_ttradiobutton_prelight, }, { ttanybutton_vflags_pressed, ttradiobutton_shape_pressed, tttheme_shape_ttradiobutton_pressed, }, { ttanybutton_vflags_disabled, ttradiobutton_shape_disabled, tttheme_shape_ttradiobutton_disabled, }, { c | ttanybutton_vflags_normal, ttradiobutton_shape_checked_normal, tttheme_shape_ttradiobutton_checked_normal, }, { c | ttanybutton_vflags_prelight, ttradiobutton_shape_checked_prelight, tttheme_shape_ttradiobutton_checked_prelight, }, { c | ttanybutton_vflags_pressed, ttradiobutton_shape_checked_pressed, tttheme_shape_ttradiobutton_checked_pressed, }, { c | ttanybutton_vflags_disabled, ttradiobutton_shape_checked_disabled, tttheme_shape_ttradiobutton_checked_disabled, }, }; #undef c return null_CacheThemeShape_anybutton((ttanybutton)o, ttcheckbutton_vflags_statemask, sizeof(case_flags) / sizeof(case_flags[0]), case_flags); } /* ttanyscroll */ static ttanyscroll null_New_ttanyscroll(ttclass_ttanyscroll Class, ttanyscroll o) { if ((o = (ttanyscroll)TClass(ttanybutton)->New((ttclass_ttanybutton)Class, (ttanybutton)o))) { o->orientation = ttanyscroll_orientation_x; o->size = o->real_size = o->view_size = o->real_view_size = 1; o->position = o->real_position = 0; o->state = ttanyscroll_state_normal; } return o; } static void null_Recalculate_ttanyscroll(ttanyscroll o, ttint size, ttint real_size, ttint view_size, ttint position) { if (size != TT_MIN_ttint) o->size = minBOUND(size, 0); if (real_size != TT_MIN_ttint) o->real_size = minBOUND(real_size, 0); if (view_size != TT_MIN_ttint) o->view_size = BOUND(view_size, 0, o->size); if (position != TT_MIN_ttint) { if (o->size - o->view_size > 0) o->position = BOUND(position, 0, o->size - o->view_size); else o->position = 0; } if (o->size > 0) { /* round up */ o->real_view_size = (o->view_size * o->real_size + o->size - 1) / o->size; /* round to nearest */ o->real_position = (o->position * o->real_size + o->size / 2) / o->size; o->real_position = BOUND(o->real_position, 0, o->real_size - o->real_view_size); } else o->real_view_size = o->real_position = 0; } static ttbyte null_SetOrientation_ttanyscroll(ttanyscroll o, ttbyte orientation) { REVALIDATE(o->orientation = orientation); return TT_TRUE; } static ttbyte null_SetSize_ttanyscroll(ttanyscroll o, ttint size) { REVALIDATE(o->Class->Recalculate(o, size, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint)); return TT_TRUE; } static ttbyte null_SetRealSize_ttanyscroll(ttanyscroll o, ttint real_size) { REVALIDATE(o->Class->Recalculate(o, TT_MIN_ttint, real_size, TT_MIN_ttint, TT_MIN_ttint)); return TT_TRUE; } static ttbyte null_SetViewSize_ttanyscroll(ttanyscroll o, ttint view_size) { REVALIDATE(o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, view_size, TT_MIN_ttint)); return TT_TRUE; } static ttbyte null_SetPosition_ttanyscroll(ttanyscroll o, ttint position) { REVALIDATE(o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint, position)); return TT_TRUE; } static ttbyte null_SetState_ttanyscroll(ttanyscroll o, ttuint state) { REVALIDATE(o->state = state); return TT_TRUE; } static ttuint null_CacheThemeShape_anyscroll(ttanyscroll o, ttuint statemask, ttuint case_n, TT_CONST ttuint case_flags[][3]) { ttuint i, vflags; vflags = o->vflags & statemask; for (i = 0; i < case_n; i++) { if (case_flags[i][0] == vflags) break; } if (i >= case_n) return (ttuint)-1; if (o->theme_shape[case_flags[i][1]].attr) return case_flags[i][1]; o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint); { ttbyte x_or_y = o->orientation == ttanyscroll_orientation_x; ttbyte scroll_i = i; ttbyte theme_i = case_flags[i][2]; tttheme t = myTheme(o); ttshape t_shape = &t->shape[theme_i][0], s_shape = &t->shape[theme_i][1]; ttattr *shape; ttshort w, h; ttshort b_left = t_shape->border[tt_x_left], b_up = t_shape->border[tt_y_up]; ttshort b_right = t_shape->border[tt_x_right], b_down = t_shape->border[tt_y_down]; ttint real_pos = o->real_position; if (x_or_y) w = o->real_size, h = t_shape->height; else w = t_shape->width, h = o->real_size; if ((shape = (ttattr *)TTAllocMem((w += b_left + b_right) * (h += b_up + b_down) * sizeof(ttattr)))) { TTWriteMem(shape, '\0', w * h * sizeof(ttattr)); o->theme_shape[scroll_i].width = w; o->theme_shape[scroll_i].height = h; TTCopyMem(t_shape->border, o->theme_shape[scroll_i].border, 4 * sizeof(ttshort)); null_AddShapeI(shape, w, w, h, t_shape->attr, t_shape->width, t_shape->height, b_left, b_up, b_right, b_down); if (x_or_y) { null_AddShapeI(shape + real_pos, w, o->real_view_size, h, s_shape->attr, s_shape->width, s_shape->height, s_shape->border[tt_x_left], s_shape->border[tt_y_up], s_shape->border[tt_x_right], s_shape->border[tt_y_down]); } else { null_AddShapeI(shape + w * real_pos, w, w, o->real_view_size, s_shape->attr, s_shape->width, s_shape->height, s_shape->border[tt_x_left], s_shape->border[tt_y_up], s_shape->border[tt_x_right], s_shape->border[tt_y_down]); } o->theme_shape[case_flags[i][1]].attr = shape; if (o->w != w || o->h != h) /* could FIRE_EVENT() here, but this is more compact */ TTSetWH_ttwidget((tt_obj)o->id, w, h); return case_flags[i][1]; } } return (ttuint)-1; } /* ttscrollbar */ static void null_Del_ttscrollbar(ttscrollbar o) { ttscrollpane w; if (o) { if ((w = o->scrollpane)) { o->scrollpane = NULL; if (o->orientation == ttanyscroll_orientation_x) TTSetBarX_ttscrollpane((tt_obj)w->id, NULL); else TTSetBarY_ttscrollpane((tt_obj)w->id, NULL); } TClass(ttanyscroll)->Del((ttanyscroll)o); } } static void null_SyncScrollpane_ttscrollbar(ttscrollbar o, ttscrollpane w) { if (o->orientation == ttanyscroll_orientation_x) { if (o->position != w->xl) /* could FIRE_EVENT() here, but this is more compact */ TTSetXl_ttwidget((tt_obj)w->id, o->position); } else if (o->orientation == ttanyscroll_orientation_y) { if (o->position != w->yl) /* could FIRE_EVENT() here, but this is more compact */ TTSetYl_ttwidget((tt_obj)w->id, o->position); } } static void null_Recalculate_ttscrollbar(ttscrollbar o, ttint size, ttint real_size, ttint view_size, ttint position) { TClass(ttanyscroll)->Recalculate((ttanyscroll)o, size, real_size, view_size, position); if (o->scrollpane) null_SyncScrollpane_ttscrollbar(o, o->scrollpane); } static ttuint null_ComputeMouseState_ttscrollbar(ttscrollbar o, ttint x, ttint y, ttint *ret_p) { /* calculate where the mouse is */ tttheme t = myTheme(o); ttint rev1, rev2, fwd1, fwd2, s, S, p, P; ttuint i, state = ttscrollbar_state_normal; ttbyte inside = TT_FALSE, orientation = o->orientation == ttanyscroll_orientation_x; ttint b1, b2; i = o->Class->CacheThemeShape(o); if (i == (ttuint)-1) return state; if (orientation) { p = x; P = y; s = o->w; S = o->h; rev1 = t->val[tttheme_val_ttscrollbar_x_arrow_rev_min]; rev2 = t->val[tttheme_val_ttscrollbar_x_arrow_rev_max]; fwd1 = t->val[tttheme_val_ttscrollbar_x_arrow_fwd_min]; fwd2 = t->val[tttheme_val_ttscrollbar_x_arrow_fwd_max]; b1 = o->theme_shape[i].border[tt_x_left]; b2 = o->theme_shape[i].border[tt_x_right]; } else { p = y; P = x; s = o->h; S = o->w; rev1 = t->val[tttheme_val_ttscrollbar_y_arrow_rev_min]; rev2 = t->val[tttheme_val_ttscrollbar_y_arrow_rev_max]; fwd1 = t->val[tttheme_val_ttscrollbar_y_arrow_fwd_min]; fwd2 = t->val[tttheme_val_ttscrollbar_y_arrow_fwd_max]; b1 = o->theme_shape[i].border[tt_y_up]; b2 = o->theme_shape[i].border[tt_y_down]; } if (rev1 < 0) rev1 += s; if (rev2 < 0) rev2 += s; if (fwd1 < 0) fwd1 += s; if (fwd2 < 0) fwd2 += s; if (P >= 0 && P < S) inside = TT_TRUE; if (inside) { if (p >= rev1 && p <= rev2) state = ttscrollbar_state_arrow_rev; else if (inside && p >= fwd1 && p <= fwd2) state = ttscrollbar_state_arrow_fwd; else if (p >= b1 && p <= s - b2) { p -= b1; if (p < o->real_position) state = ttscrollbar_state_page_rev; else if (p >= o->real_position + o->real_view_size) state = ttscrollbar_state_page_fwd; else state = ttscrollbar_state_tab; p += b1; } } else state = ttscrollbar_state_tab; *ret_p = p - b1; return state; } static void null_MouseListener_ttscrollbar(ttany arg) { ttscrollbar o; tteventbig ev; tttimer t; ttint p, delta = 0, real_delta = 0, position, real_position; ttuint old_vflags, vflags, state; ttbyte inside, set_state = TT_FALSE, set_timer = TT_FALSE; /* default mouse handler */ if (!(TTAssert(ev = ID2(tteventbig, arg)) && TTAssert(ev->evtype == ttevent_evtype_mouse) && (o = (ttscrollbar)ev->component) && TTAssert(IS(ttscrollbar, o)))) return; vflags = old_vflags = o->vflags; inside = ev->x >= 0 && ev->y >= 0 && ev->x < o->w && ev->y < o->h; state = null_ComputeMouseState_ttscrollbar(o, ev->x, ev->y, &p); switch (ev->evcode) { case ttevent_evcode_mouse_move: if (inside) vflags |= ttanybutton_vflags_prelight; else vflags &= ~ttanybutton_vflags_prelight; break; case ttevent_evcode_mouse_press_1: vflags &= ~ttanybutton_vflags_prelight; vflags |= ttanybutton_vflags_pressed; set_state = set_timer = TT_TRUE; switch (state) { case ttscrollbar_state_page_rev: delta = o->view_size > 1 ? 1 - o->view_size : -1; break; case ttscrollbar_state_page_fwd: delta = o->view_size > 1 ? o->view_size - 1 : 1; break; case ttscrollbar_state_arrow_rev: delta = -1; break; case ttscrollbar_state_arrow_fwd: delta = 1; break; case ttscrollbar_state_tab: state += p - o->real_position; set_timer = TT_FALSE; break; default: set_timer = TT_FALSE; break; } break; case ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1: if (o->state >= ttscrollbar_state_tab) real_delta = p - o->real_position - (o->state - ttscrollbar_state_tab); break; case ttevent_evcode_mouse_release_1: vflags &= ~ttanybutton_vflags_pressed; if (inside) vflags |= ttanybutton_vflags_prelight; state = ttscrollbar_state_normal; set_state = TT_TRUE; break; default: break; } if (real_delta) { /* be careful with rounding! round position, not delta */ real_position = o->real_position + real_delta; /* round to nearest */ position = (real_position * o->size + o->real_size / 2) / o->real_size; delta = position - o->position; } if (delta) { /* could FIRE_EVENT() here, but this is more compact */ TTSetPosition_ttanyscroll((tt_obj)o->id, o->position + delta); } if (set_state) { o->Class->SetState(o, state); } if ((t = o->timers) && !!(t->lflags & tttimer_lflags_enabled) != set_timer) { if (t->args && t->args->array_n > 1) t->args->array[1] = (ttany)delta; if (set_timer) TTSetDelay_tttimer((tt_obj)t->id, 0, 200 MilliSECs); t->Class->SetEnabled(t, set_timer); } if (vflags != old_vflags) { FIRE_EVENT(o->vflags = vflags, o, ttvisible_vflags, vflags, old_vflags); if (o->parent && (o->vflags & ttvisible_vflags_visible)) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } } static ttlistener null_CreateMouseListener_ttscrollbar(ttscrollbar o, ttuint evcode) { return CreateE_ttlistener((ttcomponent)o, Create_ttevent(ttevent_evtype_mouse, evcode, 0), ttlistener_lflags_arg0_event, (ttlistener_fn)null_MouseListener_ttscrollbar, (ttany)0); } static void null_TimerListener_ttscrollbar(ttany arg0, ttany arg1) { tttimer t; ttscrollbar o; ttint delta; /* default timer handler */ if (!((t = ID2(tttimer, arg0)) && TTAssert(t) && (o = (ttscrollbar)t->component) && TTAssert(IS(ttscrollbar, o)))) return; if ((delta = (ttint)arg1)) { /* could FIRE_EVENT() here, but this is more compact */ TTSetPosition_ttanyscroll((tt_obj)o->id, o->position + delta); } /* reactivate the timer itself */ TTSetDelay_tttimer((tt_obj)t->id, 0, 30 MilliSECs); } TT_INLINE tttimer null_CreateTimer_ttscrollbar(ttscrollbar o) { return CreateR_tttimer((ttcomponent)o, 0, (ttlistener_fn)null_TimerListener_ttscrollbar, -1, 0, CreateL_ttvector(2, (ttany)0, (ttany)0), 0, 0); } static ttscrollbar null_New_ttscrollbar(ttclass_ttscrollbar Class, ttscrollbar o) { if ((o = (ttscrollbar)TClass(ttanyscroll)->New((ttclass_ttanyscroll)Class, (ttanyscroll)o))) { o->view_size = o->real_view_size = 1; o->scrollpane = (ttscrollpane)0; if (null_CreateMouseListener_ttscrollbar(o, ttevent_evcode_mouse_move) && null_CreateMouseListener_ttscrollbar(o, ttevent_evcode_mouse_press_1) && null_CreateMouseListener_ttscrollbar(o, ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1) && null_CreateMouseListener_ttscrollbar(o, ttevent_evcode_mouse_release_1) && null_CreateTimer_ttscrollbar(o)) { return o; } TDEL(o); } return (ttscrollbar)0; } static ttuint null_CacheThemeShape_ttscrollbar(ttscrollbar o) { static TT_CONST ttuint case_flags_x[][3] = { { ttanybutton_vflags_normal, ttscrollbar_shape_normal, tttheme_shape_ttscrollbar_x_normal, }, { ttanybutton_vflags_prelight, ttscrollbar_shape_prelight, tttheme_shape_ttscrollbar_x_prelight, }, { ttanybutton_vflags_pressed, ttscrollbar_shape_pressed, tttheme_shape_ttscrollbar_x_pressed, }, { ttanybutton_vflags_disabled, ttscrollbar_shape_disabled, tttheme_shape_ttscrollbar_x_disabled, }, }; static TT_CONST ttuint case_flags_y[][3] = { { ttanybutton_vflags_normal, ttscrollbar_shape_normal, tttheme_shape_ttscrollbar_y_normal, }, { ttanybutton_vflags_prelight, ttscrollbar_shape_prelight, tttheme_shape_ttscrollbar_y_prelight, }, { ttanybutton_vflags_pressed, ttscrollbar_shape_pressed, tttheme_shape_ttscrollbar_y_pressed, }, { ttanybutton_vflags_disabled, ttscrollbar_shape_disabled, tttheme_shape_ttscrollbar_y_disabled, }, }; return null_CacheThemeShape_anyscroll( (ttanyscroll)o, ttanybutton_vflags_statemask, sizeof(case_flags_x) / sizeof(case_flags_x[0]), o->orientation == ttanyscroll_orientation_x ? case_flags_x : case_flags_y); } /* ttslider */ static ttuint null_ComputeMouseState_ttslider(ttslider o, ttint x, ttint y, ttint *ret_p) { /* calculate where the mouse is */ ttint s, S, p, P; ttuint i, state = ttslider_state_normal; ttbyte inside = TT_FALSE, orientation = o->orientation == ttanyscroll_orientation_x; i = o->Class->CacheThemeShape(o); if (i == (ttuint)-1) return state; if (orientation) { p = x; P = y; s = o->w; S = o->h; } else { p = y; P = x; s = o->h; S = o->w; } if (P >= 0 && P < S) inside = TT_TRUE; if (inside) { if (p < o->real_position) state = ttslider_state_page_rev; else if (p >= o->real_position + o->real_view_size) state = ttslider_state_page_fwd; else state = ttslider_state_tab; } else state = ttslider_state_tab; *ret_p = p; return state; } static void null_MouseListener_ttslider(ttany arg) { ttslider o; tteventbig ev; tttimer t; ttint p, delta = 0, real_delta = 0, position, real_position; ttuint old_vflags, vflags, state; ttbyte inside, set_state = TT_FALSE, set_timer = TT_FALSE; /* default mouse handler */ if (!(TTAssert(ev = ID2(tteventbig, arg)) && TTAssert(ev->evtype == ttevent_evtype_mouse) && (o = (ttslider)ev->component) && TTAssert(IS(ttslider, o)))) return; vflags = old_vflags = o->vflags; inside = ev->x >= 0 && ev->y >= 0 && ev->x < o->w && ev->y < o->h; state = null_ComputeMouseState_ttslider(o, ev->x, ev->y, &p); switch (ev->evcode) { case ttevent_evcode_mouse_move: if (inside) vflags |= ttanybutton_vflags_prelight; else vflags &= ~ttanybutton_vflags_prelight; break; case ttevent_evcode_mouse_press_1: vflags &= ~ttanybutton_vflags_prelight; vflags |= ttanybutton_vflags_pressed; set_state = set_timer = TT_TRUE; switch (state) { case ttslider_state_page_rev: delta = -1; break; case ttslider_state_page_fwd: delta = 1; break; case ttslider_state_tab: state += p - o->real_position; set_timer = TT_FALSE; break; default: set_timer = TT_FALSE; break; } break; case ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1: if (o->state >= ttslider_state_tab) real_delta = p - o->real_position - (o->state - ttslider_state_tab); break; case ttevent_evcode_mouse_release_1: vflags &= ~ttanybutton_vflags_pressed; if (inside) vflags |= ttanybutton_vflags_prelight; state = ttslider_state_normal; set_state = TT_TRUE; break; default: break; } if (real_delta) { /* be careful with rounding! round position, not delta */ real_position = o->real_position + real_delta; /* round to nearest */ position = (real_position * o->size + o->real_size / 2) / o->real_size; delta = position - o->position; } if (delta) { /* could FIRE_EVENT() here, but this is more compact */ TTSetPosition_ttanyscroll((tt_obj)o->id, o->position + delta); } if (set_state) { o->Class->SetState(o, state); } if ((t = o->timers) && !!(t->lflags & tttimer_lflags_enabled) != set_timer) { if (t->args && t->args->array_n > 1) t->args->array[1] = (ttany)delta; if (set_timer) TTSetDelay_tttimer((tt_obj)t->id, 0, 200 MilliSECs); t->Class->SetEnabled(t, set_timer); } if (vflags != old_vflags) { FIRE_EVENT(o->vflags = vflags, o, ttvisible_vflags, vflags, old_vflags); if (o->parent && (o->vflags & ttvisible_vflags_visible)) Expose_ttvisible((ttvisible)o, ttvisible_repaint_args_WHOLE); } } static ttlistener null_CreateMouseListener_ttslider(ttslider o, ttuint evcode) { return CreateE_ttlistener((ttcomponent)o, Create_ttevent(ttevent_evtype_mouse, evcode, 0), ttlistener_lflags_arg0_event, (ttlistener_fn)null_MouseListener_ttslider, (ttany)0); } static void null_TimerListener_ttslider(ttany arg0, ttany arg1) { tttimer t; ttslider o; ttint delta; /* default timer handler */ if (!((t = ID2(tttimer, arg0)) && TTAssert(t) && (o = (ttslider)t->component) && TTAssert(IS(ttslider, o)))) return; if ((delta = (ttint)arg1)) { /* could FIRE_EVENT() here, but this is more compact */ TTSetPosition_ttanyscroll((tt_obj)o->id, o->position + delta); } /* reactivate the timer itself */ TTSetDelay_tttimer((tt_obj)t->id, 0, 30 MilliSECs); } TT_INLINE tttimer null_CreateTimer_ttslider(ttslider o) { return CreateR_tttimer((ttcomponent)o, 0, (ttlistener_fn)null_TimerListener_ttslider, -1, 0, CreateL_ttvector(2, (ttany)0, (ttany)0), 0, 0); } static ttslider null_New_ttslider(ttclass_ttslider Class, ttslider o) { if ((o = (ttslider)TClass(ttanyscroll)->New((ttclass_ttanyscroll)Class, (ttanyscroll)o))) { o->slide_min = o->slide_value = 0; o->slide_max = 10; if (null_CreateMouseListener_ttslider(o, ttevent_evcode_mouse_move) && null_CreateMouseListener_ttslider(o, ttevent_evcode_mouse_press_1) && null_CreateMouseListener_ttslider(o, ttevent_evcode_mouse_move | ttevent_evcode_mouse_hold_1) && null_CreateMouseListener_ttslider(o, ttevent_evcode_mouse_release_1) && null_CreateTimer_ttslider(o)) { return o; } TDEL(o); } return NULL; } static void null_Recalculate_ttslider(ttslider o, ttint size, ttint real_size, ttint view_size, ttint position) { tttheme t = myTheme(o); ttint real_size_, real_view_size, view_size_; if (size < 0) { if (o->real_size - o->real_view_size > 0) { size = o->slide_max - o->slide_min; if (size < 0) size = -size; size = o->real_size * size / (o->real_size - o->real_view_size); } else size = 0; } real_view_size = size > 0 ? o->orientation == ttanyscroll_orientation_x ? t->shape[ttslider_shape_normal][1].width : t->shape[ttslider_shape_normal][1].height : 0; real_size_ = real_size >= 0 ? real_size : o->real_size; view_size_ = real_size_ > 0 ? real_view_size * size / real_size_ : 0; if (size == o->size) size = TT_MIN_ttint; TClass(ttanyscroll)->Recalculate((ttanyscroll)o, size, real_size, view_size_, position); } static ttuint null_CacheThemeShape_ttslider(ttslider o) { static TT_CONST ttuint case_flags_x[][3] = { { ttanybutton_vflags_normal, ttslider_shape_normal, tttheme_shape_ttslider_x_normal, }, { ttanybutton_vflags_prelight, ttslider_shape_prelight, tttheme_shape_ttslider_x_prelight, }, { ttanybutton_vflags_pressed, ttslider_shape_pressed, tttheme_shape_ttslider_x_pressed, }, { ttanybutton_vflags_disabled, ttslider_shape_disabled, tttheme_shape_ttslider_x_disabled, }, }; static TT_CONST ttuint case_flags_y[][3] = { { ttanybutton_vflags_normal, ttslider_shape_normal, tttheme_shape_ttslider_y_normal, }, { ttanybutton_vflags_prelight, ttslider_shape_prelight, tttheme_shape_ttslider_y_prelight, }, { ttanybutton_vflags_pressed, ttslider_shape_pressed, tttheme_shape_ttslider_y_pressed, }, { ttanybutton_vflags_disabled, ttslider_shape_disabled, tttheme_shape_ttslider_y_disabled, }, }; return null_CacheThemeShape_anyscroll( (ttanyscroll)o, ttanybutton_vflags_statemask, sizeof(case_flags_x) / sizeof(case_flags_x[0]), o->orientation == ttanyscroll_orientation_x ? case_flags_x : case_flags_y); } static ttbyte null_SetSize_ttslider(ttslider o, ttint size) { /* do-nothing; use SetSlideMin() and SetSlideMax() instead */ return TT_FALSE; } static ttbyte null_SetSlideMin_ttslider(ttslider o, ttint slide_min) { REVALIDATE(o->slide_min = slide_min); return TT_TRUE; } static ttbyte null_SetSlideMax_ttslider(ttslider o, ttint slide_max) { REVALIDATE(o->slide_max = slide_max); return TT_TRUE; } static ttbyte null_SetSlideValue_ttslider(ttslider o, ttint slide_value) { ttint low, high, position; REVALIDATE( if (o->slide_min < o->slide_max) { low = o->slide_min; high = o->slide_max; } else { low = o->slide_max; high = o->slide_min; } o->slide_value = slide_value = BOUND(slide_value, low, high); if ((position = slide_value - o->slide_min) < 0) position = -position; if (position != o->position) FIRE_EVENT(o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint, position), o, ttanyscroll_position, position, o->position)); return TT_TRUE; } static ttbyte null_SetPosition_ttslider(ttslider o, ttint position) { ttint sign, slide_value; REVALIDATE(o->position = position = BOUND(position, 0, o->size); if (o->slide_min < o->slide_max) sign = 1; else sign = -1; slide_value = o->slide_min + sign * position; if (slide_value != o->slide_value) FIRE_EVENT(o->slide_value = slide_value, o, ttslider_slide_value, slide_value, o->slide_value); o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint, position)); return TT_TRUE; } /* ttprogressbar */ static ttprogressbar null_New_ttprogressbar(ttclass_ttprogressbar Class, ttprogressbar o) { if ((o = (ttprogressbar)TClass(ttanyscroll)->New((ttclass_ttanyscroll)Class, (ttanyscroll)o))) { o->size = 100; o->view_size = o->real_view_size = o->real_position_frac_above = 0; o->real_position_frac_below = 1; } return o; } static void null_Recalculate_ttprogressbar(ttprogressbar o, ttint size, ttint real_size, ttint view_size, ttint position) { TClass(ttanyscroll)->Recalculate((ttanyscroll)o, size, real_size, view_size, position); if (o->size > 0) { static TT_CONST ttuint case_flags_i[] = { tttheme_shape_ttprogressbar_x_normal, tttheme_shape_ttprogressbar_x_disabled, tttheme_shape_ttprogressbar_y_normal, tttheme_shape_ttprogressbar_y_disabled, }; ttuint theme_i = (o->orientation == ttanyscroll_orientation_x ? 2 : 0) | ((o->vflags & ttprogressbar_vflags_statemask) == ttprogressbar_vflags_disabled ? 1 : 0); ttshape shape = &myTheme(o)->shape[case_flags_i[theme_i]][0]; ttuint frac_below = o->real_position_frac_below = o->orientation == ttanyscroll_orientation_x ? shape->width - shape->border[tt_x_left] - shape->border[tt_x_right] : shape->height - shape->border[tt_y_up] - shape->border[tt_y_down]; /* round to nearest */ ttint real_pos = (o->position * o->real_size * frac_below + o->size / 2) / o->size; o->real_position = real_pos / frac_below; o->real_position = BOUND(o->real_position, 0, o->real_size - o->real_view_size); o->real_position_frac_above = real_pos % frac_below; } else o->real_position_frac_above = 0; } static void null_AddShapeI_progressbar(ttattr *attr, ttshort pitch, ttshort w, ttshort h, ttattr *tattr, ttshort tw, ttshort th, ttshort b_left, ttshort b_up, ttshort b_right, ttshort b_down, ttprogressbar o) { ttshort ti, i, tj, j; ttint above = o->real_position_frac_above; ttshort max = o->real_position_frac_below - 1; if (o->orientation == ttanyscroll_orientation_x) { /* set horizontal progressbar inside */ for (j = tj = b_up; j < h - b_down; j++, tj++) { if (tj >= th - b_down) tj = b_up; for (i = b_left; i < w - b_right; i++) { ti = i - b_left; if (ti < o->real_position) attr[i + j * pitch] = tattr[max + tj * tw]; else if (ti == o->real_position) attr[i + j * pitch] = tattr[above + tj * tw]; else attr[i + j * pitch] = tattr[0 + tj * tw]; } } } else { /* set vertical progressbar inside */ for (j = b_up; j < h - b_down; j++) { tj = j - b_up; for (i = ti = b_left; i < w - b_right; i++, ti++) { if (ti >= tw - b_right) ti = b_left; if (tj < o->real_position) attr[i + j * pitch] = tattr[ti + max * tw]; else if (tj == o->real_position) attr[i + j * pitch] = tattr[ti + above * tw]; else attr[i + j * pitch] = tattr[ti + 0 * tw]; } } } } static ttuint null_CacheThemeShape_ttprogressbar(ttprogressbar o) { static TT_CONST ttuint case_flags_x[][3] = { { ttprogressbar_vflags_normal, ttprogressbar_shape_normal, tttheme_shape_ttprogressbar_x_normal, }, { ttprogressbar_vflags_disabled, ttprogressbar_shape_disabled, tttheme_shape_ttprogressbar_x_disabled, }, }; static TT_CONST ttuint case_flags_y[][3] = { { ttprogressbar_vflags_normal, ttprogressbar_shape_normal, tttheme_shape_ttprogressbar_y_normal, }, { ttprogressbar_vflags_disabled, ttprogressbar_shape_disabled, tttheme_shape_ttprogressbar_y_disabled, }, }; /* this is almost equal to null_CacheThemeShape_anyscroll(), except where noted below */ ttuint statemask = ttprogressbar_vflags_statemask; ttuint case_n = sizeof(case_flags_x) / sizeof(case_flags_x[0]); TT_CONST ttuint(*case_flags)[3] = o->orientation == ttanyscroll_orientation_x ? case_flags_x : case_flags_y; ttuint i, vflags; vflags = o->vflags & statemask; for (i = 0; i < case_n; i++) { if (case_flags[i][0] == vflags) break; } if (i >= case_n) return (ttuint)-1; if (o->theme_shape[case_flags[i][1]].attr) return case_flags[i][1]; o->Class->Recalculate(o, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint, TT_MIN_ttint); { ttbyte x_or_y = o->orientation == ttanyscroll_orientation_x; ttbyte scroll_i = i; ttbyte theme_i = case_flags[i][2]; tttheme t = myTheme(o); ttshape t_shape = &t->shape[theme_i][0], s_shape = &t->shape[theme_i][1]; ttattr *shape; ttshort w, h; ttshort b_left = t_shape->border[tt_x_left], b_up = t_shape->border[tt_y_up]; ttshort b_right = t_shape->border[tt_x_right], b_down = t_shape->border[tt_y_down]; ttint real_pos = o->real_position; if (x_or_y) w = o->real_size, h = t_shape->height; else w = t_shape->width, h = o->real_size; if ((shape = (ttattr *)TTAllocMem((w += b_left + b_right) * (h += b_up + b_down) * sizeof(ttattr)))) { TTWriteMem(shape, '\0', w * h * sizeof(ttattr)); o->theme_shape[scroll_i].width = w; o->theme_shape[scroll_i].height = h; TTCopyMem(t_shape->border, o->theme_shape[scroll_i].border, 4 * sizeof(ttshort)); /* this differs from null_CacheThemeShape_anyscroll() : */ #if 1 null_AddShapeN(shape, w, w, h, t_shape->attr, t_shape->width, t_shape->height, b_left, b_up, b_right, b_down); null_AddShapeI_progressbar(shape, w, w, h, t_shape->attr, t_shape->width, t_shape->height, b_left, b_up, b_right, b_down, o); #else null_AddShapeI(shape, w, w, h, t_shape->attr, t_shape->width, t_shape->height, b_left, b_up, b_right, b_down); #endif if (x_or_y) { null_AddShapeI(shape + real_pos, w, o->real_view_size, h, s_shape->attr, s_shape->width, s_shape->height, s_shape->border[tt_x_left], s_shape->border[tt_y_up], s_shape->border[tt_x_right], s_shape->border[tt_y_down]); } else { null_AddShapeI(shape + w * real_pos, w, w, o->real_view_size, s_shape->attr, s_shape->width, s_shape->height, s_shape->border[tt_x_left], s_shape->border[tt_y_up], s_shape->border[tt_x_right], s_shape->border[tt_y_down]); } o->theme_shape[case_flags[i][1]].attr = shape; if (o->w != w || o->h != h) /* could FIRE_EVENT() here, but this is more compact */ TTSetWH_ttwidget((tt_obj)o->id, w, h); return case_flags[i][1]; } } return (ttuint)-1; } /* ttscrollpane */ static ttscrollpane null_New_ttscrollpane(ttclass_ttscrollpane Class, ttscrollpane o) { ttscrollbar sx, sy; if ((o = (ttscrollpane)TClass(ttwidget)->New((ttclass_ttwidget)Class, (ttwidget)o))) { if ((sx = Create1_ttscrollbar(ttanyscroll_orientation_x)) && (sy = Create1_ttscrollbar(ttanyscroll_orientation_y))) { o->Class->SetBarX(o, sx); o->Class->SetBarY(o, sy); return o; } TDEL(o); } return (ttscrollpane)0; } static void null_Del_ttscrollpane(ttscrollpane o) { if (o) { if (o->bar_x) { TDEL(o->bar_x); o->bar_x = NULL; } if (o->bar_y) { TDEL(o->bar_y); o->bar_y = NULL; } TClass(ttwidget)->Del((ttwidget)o); } } static ttbyte null_SetWH_ttscrollpane(ttscrollpane o, ttshort w, ttshort h) { ttshort ow = o->w, oh = o->h; ttscrollbar sx = o->bar_x, sy = o->bar_y; TClass(ttwidget)->SetWH((ttwidget)o, w, h); w = o->w; h = o->h; /* a scrollpane must have logic size at least equal to real size */ /* and must keep in sync with its scrollbars */ /* * must call these FIRST, or scrollbars size will be wrong and will * incorrectly bound also their view_size */ if (o->wl < w) TTSetWl_ttwidget((tt_obj)o->id, w); if (o->hl < h) TTSetHl_ttwidget((tt_obj)o->id, h); if (w != ow) { if (sx) { TTSetRealSize_ttanyscroll((tt_obj)sx->id, w - 2); TTSetViewSize_ttanyscroll((tt_obj)sx->id, w); } if (sy) TTSetXY_ttwidget((tt_obj)sy->id, w, 0); } if (h != oh) { if (sy) { TTSetRealSize_ttanyscroll((tt_obj)sy->id, h - 2); TTSetViewSize_ttanyscroll((tt_obj)sy->id, h); } if (sx) TTSetXY_ttwidget((tt_obj)sx->id, 0, h); } return TT_TRUE; } static ttbyte null_SetXl_ttscrollpane(ttscrollpane o, ttint xl) { ttint oxl = o->xl; TClass(ttwidget)->SetXl((ttwidget)o, xl); xl = o->xl; /* a scrollpane must keep in sync with its scrollbars */ if (xl != oxl && o->bar_x) TTSetPosition_ttanyscroll((tt_obj)o->bar_x->id, xl); return TT_TRUE; } static ttbyte null_SetYl_ttscrollpane(ttscrollpane o, ttint yl) { ttint oyl = o->yl; TClass(ttwidget)->SetYl((ttwidget)o, yl); yl = o->yl; /* a scrollpane must keep in sync with its scrollbars */ if (yl != oyl && o->bar_y) TTSetPosition_ttanyscroll((tt_obj)o->bar_y->id, yl); return TT_TRUE; } static ttbyte null_SetWl_ttscrollpane(ttscrollpane o, ttint wl) { ttint owl = o->wl; TClass(ttwidget)->SetWl((ttwidget)o, wl); wl = o->wl; /* a scrollpane must keep in sync with its scrollbars */ if (wl != owl && o->bar_x) TTSetSize_ttanyscroll((tt_obj)o->bar_x->id, wl); return TT_TRUE; } static ttbyte null_SetHl_ttscrollpane(ttscrollpane o, ttint hl) { ttint ohl = o->hl; TClass(ttwidget)->SetHl((ttwidget)o, hl); hl = o->hl; /* a scrollpane must keep in sync with its scrollbars */ if (hl != ohl && o->bar_y) TTSetSize_ttanyscroll((tt_obj)o->bar_y->id, hl); return TT_TRUE; } static void null_AddTo_ttscrollpane(ttscrollpane o, ttvisible parent, ttany constraint) { ttscrollbar sx, sy; TClass(ttwidget)->AddTo((ttwidget)o, parent, constraint); if ((sx = o->bar_x)) TTAdd_ttvisible((tt_obj)parent->id, (tt_obj)sx->id, ttborderlayout_constraint_south); if ((sy = o->bar_y)) TTAdd_ttvisible((tt_obj)parent->id, (tt_obj)sy->id, ttborderlayout_constraint_east); } static void null_Remove_ttscrollpane(ttscrollpane o) { ttscrollbar sx, sy; TClass(ttwidget)->Remove((ttwidget)o); if ((sx = o->bar_x)) TTRemove_ttvisible((tt_obj)sx->id); if ((sy = o->bar_y)) TTRemove_ttvisible((tt_obj)sy->id); } /* FIXME: scrollpanes must listen for children add/remove and recalculate wl,hl */ static ttbyte null_SetBarX_ttscrollpane(ttscrollpane o, ttscrollbar b) { ttscrollbar ob = o->bar_x; if (b != ob && (!b || (b->orientation == ttanyscroll_orientation_x))) { if (ob) ob->scrollpane = (ttscrollpane)0; if (b) { if (b->scrollpane) TTSetBarX_ttscrollpane((tt_obj)b->scrollpane->id, NULL); b->scrollpane = o; } FIRE_EVENT(o->bar_x = b, o, ttscrollpane_bar_x, (ttany)(opaque)b, (ttany)(opaque)ob); if (b) { /* FIXME: we should fire events too */ if (b->parent != o->parent) { b->Class->Remove(b); b->Class->AddTo(b, o->parent, ttborderlayout_constraint_east); } b->Class->SetXY(b, 0, o->h); b->Class->Recalculate(b, o->wl, TT_MIN_ttint, o->w, o->xl); } } return TT_TRUE; } static ttbyte null_SetBarY_ttscrollpane(ttscrollpane o, ttscrollbar b) { ttscrollbar ob = o->bar_y; if (b != ob && (!b || (b->orientation == ttanyscroll_orientation_y))) { if (ob) ob->scrollpane = (ttscrollpane)0; if (b) { if (b->scrollpane) TTSetBarY_ttscrollpane((tt_obj)b->scrollpane->id, NULL); b->scrollpane = o; } FIRE_EVENT(o->bar_y = b, o, ttscrollpane_bar_y, (ttany)(opaque)b, (ttany)(opaque)ob); if (b) { /* FIXME: we should fire events too */ if (b->parent != o->parent) { b->Class->Remove(b); b->Class->AddTo(b, o->parent, ttborderlayout_constraint_south); } b->Class->SetXY(b, o->w, 0); b->Class->Recalculate(b, o->hl, TT_MIN_ttint, o->h, o->yl); } } return TT_TRUE; } /* ttscroller */ static ttscroller null_New_ttscroller(ttclass_ttscroller Class, ttscroller o) { ttscrollpane sp; if ((o = (ttscroller)TClass(ttwindow)->New((ttclass_ttwindow)Class, (ttwindow)o))) { o->Class->SetLayout(o, (ttlayout)TNEW(ttborderlayout)); if (o->layout && (o->scrollpane = sp = Create_ttscrollpane(o->w - 1, o->h - 1))) { sp->Class->AddTo(sp, (ttvisible)o, ttborderlayout_constraint_center); return o; } TDEL(o); } return NULL; } static void null_Del_ttscroller(ttscroller o) { if (o) { if (o->scrollpane) { TDEL(o->scrollpane); o->scrollpane = (ttscrollpane)0; } TClass(ttwindow)->Del((ttwindow)o); } } static ttbyte null_SetWH_ttscroller(ttscroller o, ttshort w, ttshort h) { ttscrollpane sp; ttshort ow = o->w, oh = o->h; TClass(ttwindow)->SetWH((ttwindow)o, w, h); w = o->w; h = o->h; /* a scroller must keep its scrollpane in sync */ if (w != ow || h != oh) { if ((sp = o->scrollpane)) TTSetWH_ttwidget((tt_obj)sp->id, w - 1, h - 1); } return TT_TRUE; } /* ttwindow */ static ttwindow null_New_ttwindow(ttclass_ttwindow Class, ttwindow o) { if ((o = (ttwindow)TClass(ttwidget)->New((ttclass_ttwidget)Class, (ttwidget)o))) { o->title_len = 0; o->title = NULL; } return o; } static void null_Del_ttwindow(ttwindow o) { if (o) { if (o->title) { TTFreeMem(o->title); o->title = NULL; } TClass(ttwidget)->Del((ttwidget)o); } } static ttbyte null_SetTitle_ttwindow(ttwindow o, TT_ARG_READ ttbyte *title) { ttbyte *_title = NULL; ttopaque title_len; if (!title || ((title_len = TTLenStr(title)), (_title = TTCloneStrL(title, title_len + 1)))) { if (o->title) TTFreeMem(o->title); o->title = _title; o->title_len = title_len; return TT_TRUE; } return TT_FALSE; } /* ttframe */ static ttframe null_New_ttframe(ttclass_ttframe Class, ttframe o) { if ((o = (ttframe)TClass(ttwindow)->New((ttclass_ttwindow)Class, (ttwindow)o))) { o->menubar = NULL; } return o; } static ttframe null_Build_ttframe(ttframe o) { /* ttframe are non-visible when created */ o->vflags &= ~ttvisible_vflags_visible; o->Class->AddTo(o, (ttvisible)TClass_ttnative->GetRoot(), ttlayout_constraint_root); return o; } static ttbyte null_SetMenubar_ttframe(ttframe o, ttmenubar m) { o->menubar = m; return TT_TRUE; } /* ttmenuitem */ /* ttcheckmenuitem */ /* ttradiomenuitem */ /* ttmenuwindow */ /* ttmenu */ static ttmenu null_New_ttmenu(ttclass_ttmenu Class, ttmenu o) { if ((o = (ttmenu)TClass(ttmenuitem)->New((ttclass_ttmenuitem)Class, (ttmenuitem)o))) { o->menubar = (ttmenubar)0; } return o; } /* ttmenubar */ static void null_Del_ttmenubar(ttmenubar o) { if (o) { if (TTD.Menubar == o) TTD.Menubar = (ttmenubar)0; TClass(ttvisible)->Del((ttvisible)o); } } /* ttanytext */ static ttanytext null_New_ttanytext(ttclass_ttanytext Class, ttanytext o) { if ((o = (ttanytext)TClass(ttwindow)->New((ttclass_ttwindow)Class, (ttwindow)o))) { o->text = NULL; o->text_len = 0; } return o; } /* tttextfield */ /* tttextarea */ /* tttheme */ static tttheme null_Build_tttheme(tttheme o) { /* FIXME finish this */ return o; } static void null_Del_tttheme(tttheme o) { if (o) { if (TTD.Theme == o) TTD.Theme = (tttheme)0; TClass(ttcomponent)->Del((ttcomponent)o); } } /* ttapplication */ static ttapplication null_New_ttapplication(ttclass_ttapplication Class, ttapplication o) { if ((o = (ttapplication)TClass(ttcomponent)->New((ttclass_ttcomponent)Class, (ttcomponent)o))) { o->name = (ttbyte *)0; } return o; } static void null_Del_ttapplication(ttapplication o) { if (o) { if (TTD.Application == o) TTD.Application = (ttapplication)0; if (o->name) { TTFreeMem(o->name); o->name = (ttbyte *)0; } TClass(ttcomponent)->Del((ttcomponent)o); } } /* common stuff: */ static byte null_Sync(void) { return TT_TRUE; } static byte null_Flush(void) { return TT_TRUE; } static byte null_TimidFlush(void) { return TT_TRUE; } static byte null_MainLoopOnce(ttbyte wait) { return TT_TRUE; } static void null_DeleteCallback(ttcallback o) {} static void null_Close(void) {} static int null_ConnectionFd(void) { return TT_NOFD; } static ttuint null_GetErrno(void) { return 0; } static ttuint null_GetErrnoDetail(void) { return 0; } static TT_CONST byte *null_StrError(ttuint E) { return ""; } static TT_CONST byte *null_StrErrorDetail(ttuint E, ttuint S) { return ""; } ttclasses _TT_null_InitHW(tthw *HW) { *HW = &null_TTClasses.HW; return &null_TTClasses; } /* * use default values for methods not implemented in null_c * * null display target MUST IMPLEMENT ALL METHODS, even if as stubs. */ static s_ttclasses null_TTClasses = { { Class_ttobj, id_ttobj, magicmask_ttobj, magic_ttobj, size_ttobj, }, { Class_ttclass, id_ttclass, magicmask_ttclass, magic_ttclass, size_ttclass, /* extends ttclass_ttobj */ }, { Class_ttobject, id_ttobject, magicmask_ttobject, magic_ttobject, size_ttobject, /* extends ttclass_ttobj */ null_New_ttobject, null_Build_ttobject, null_Break_ttobject, null_Del_ttobject, }, { Class_ttvector, id_ttvector, magicmask_ttvector, magic_ttvector, size_ttvector, /* extends ttclass_ttobj */ null_New_ttvector, (void *)NULL /* inherits: Build_ttvector >> Build_ttobject */, (void *)NULL /* inherits: Break_ttvector >> Break_ttobject */, null_Del_ttvector, /* extends ttclass_ttobject */ null_GetAt_ttvector, null_SetAt_ttvector, null_AddY_ttvector, null_ContainsValue_ttvector, null_RemoveRange_ttvector, }, { Class_ttfield, id_ttfield, magicmask_ttfield, magic_ttfield, size_ttfield, /* extends ttclass_ttobj */ }, { Class_ttmethod, id_ttmethod, magicmask_ttmethod, magic_ttmethod, size_ttmethod, /* extends ttclass_ttobj */ }, { Class_ttevent, id_ttevent, magicmask_ttevent, magic_ttevent, size_ttevent, /* extends ttclass_ttobj */ null_New_ttevent, (void *)NULL /* inherits: Build_ttevent >> Build_ttobject */, (void *)NULL /* inherits: Break_ttevent >> Break_ttobject */, (void *)NULL /* inherits: Del_ttevent >> Del_ttobject */, /* extends ttclass_ttobject */ }, { Class_tteventbig, id_tteventbig, magicmask_tteventbig, magic_tteventbig, size_tteventbig, /* extends ttclass_ttobj */ null_New_tteventbig, (void *)NULL /* inherits: Build_tteventbig >> Build_ttobject */, (void *)NULL /* inherits: Break_tteventbig >> Break_ttobject */, (void *)NULL /* inherits: Del_tteventbig >> Del_ttobject */, /* extends ttclass_ttobject */ /* extends ttclass_ttevent */ }, { Class_ttbitmask, id_ttbitmask, magicmask_ttbitmask, magic_ttbitmask, size_ttbitmask, /* extends ttclass_ttobj */ null_New_ttbitmask, (void *)NULL /* inherits: Build_ttbitmask >> Build_ttobject */, (void *)NULL /* inherits: Break_ttbitmask >> Break_ttobject */, (void *)NULL /* inherits: Del_ttbitmask >> Del_ttobject */, /* extends ttclass_ttobject */ }, { Class_tteventmask, id_tteventmask, magicmask_tteventmask, magic_tteventmask, size_tteventmask, /* extends ttclass_ttobj */ null_New_tteventmask, (void *)NULL /* inherits: Build_tteventmask >> Build_ttobject */, (void *)NULL /* inherits: Break_tteventmask >> Break_ttobject */, null_Del_tteventmask, /* extends ttclass_ttobject */ }, { Class_ttcallback, id_ttcallback, magicmask_ttcallback, magic_ttcallback, size_ttcallback, /* extends ttclass_ttobj */ null_New_ttcallback, (void *)NULL /* inherits: Build_ttcallback >> Build_ttobject */, (void *)NULL /* inherits: Break_ttcallback >> Break_ttobject */, null_Del_ttcallback, /* extends ttclass_ttobject */ null_Create_ttcallback, }, { Class_ttlistener, id_ttlistener, magicmask_ttlistener, magic_ttlistener, size_ttlistener, /* extends ttclass_ttobj */ null_New_ttlistener, (void *)NULL /* inherits: Build_ttlistener >> Build_ttobject */, (void *)NULL /* inherits: Break_ttlistener >> Break_ttobject */, null_Del_ttlistener, /* extends ttclass_ttobject */ (void *)NULL /* inherits: Create_ttlistener >> Create_ttcallback */, /* extends ttclass_ttcallback */ null_AddTo_ttlistener, null_Remove_ttlistener, }, { Class_tttimer, id_tttimer, magicmask_tttimer, magic_tttimer, size_tttimer, /* extends ttclass_ttobj */ null_New_tttimer, null_Build_tttimer, null_Break_tttimer, null_Del_tttimer, /* extends ttclass_ttobject */ (void *)NULL /* inherits: Create_tttimer >> Create_ttcallback */, /* extends ttclass_ttcallback */ null_AddTo_tttimer, null_Remove_tttimer, /* extends ttclass_ttlistener */ null_SetEnabled_tttimer, null_IsEnabled_tttimer, }, { Class_ttcomponent, id_ttcomponent, magicmask_ttcomponent, magic_ttcomponent, size_ttcomponent, /* extends ttclass_ttobj */ null_New_ttcomponent, (void *)NULL /* inherits: Build_ttcomponent >> Build_ttobject */, (void *)NULL /* inherits: Break_ttcomponent >> Break_ttobject */, null_Del_ttcomponent, /* extends ttclass_ttobject */ }, { Class_ttdata, id_ttdata, magicmask_ttdata, magic_ttdata, size_ttdata, /* extends ttclass_ttobj */ null_New_ttdata, (void *)NULL /* inherits: Build_ttdata >> Build_ttobject */, (void *)NULL /* inherits: Break_ttdata >> Break_ttobject */, null_Del_ttdata, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ null_AddTo_ttdata, null_Remove_ttdata, }, { Class_ttvisible, id_ttvisible, magicmask_ttvisible, magic_ttvisible, size_ttvisible, /* extends ttclass_ttobj */ null_New_ttvisible, (void *)NULL /* inherits: Build_ttvisible >> Build_ttobject */, (void *)NULL /* inherits: Break_ttvisible >> Break_ttobject */, null_Del_ttvisible, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ null_AddTo_ttvisible, null_Validate_ttvisible, null_Remove_ttvisible, null_Invalidate_ttvisible, null_SetVisible_ttvisible, null_SetTheme_ttvisible, null_Draw_ttvisible, null_BuiltinRepaint_ttvisible, }, { Class_ttlayout, id_ttlayout, magicmask_ttlayout, magic_ttlayout, size_ttlayout, /* extends ttclass_ttobj */ null_New_ttlayout, (void *)NULL /* inherits: Build_ttlayout >> Build_ttobject */, (void *)NULL /* inherits: Break_ttlayout >> Break_ttobject */, null_Del_ttlayout, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ null_SetWidget_ttlayout, null_DoLayout_ttlayout, }, { Class_ttboxlayout, id_ttboxlayout, magicmask_ttboxlayout, magic_ttboxlayout, size_ttboxlayout, /* extends ttclass_ttobj */ null_New_ttboxlayout, (void *)NULL /* inherits: Build_ttboxlayout >> Build_ttobject */, (void *)NULL /* inherits: Break_ttboxlayout >> Break_ttobject */, (void *)NULL /* inherits: Del_ttboxlayout >> Del_ttlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: SetWidget_ttboxlayout >> SetWidget_ttlayout */, (void *)NULL /* inherits: DoLayout_ttboxlayout >> DoLayout_ttlayout */, /* extends ttclass_ttlayout */ }, { Class_ttborderlayout, id_ttborderlayout, magicmask_ttborderlayout, magic_ttborderlayout, size_ttborderlayout, /* extends ttclass_ttobj */ (void *)NULL /* inherits: New_ttborderlayout >> New_ttlayout */, (void *)NULL /* inherits: Build_ttborderlayout >> Build_ttobject */, (void *)NULL /* inherits: Break_ttborderlayout >> Break_ttobject */, (void *)NULL /* inherits: Del_ttborderlayout >> Del_ttlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: SetWidget_ttborderlayout >> SetWidget_ttlayout */, (void *)NULL /* inherits: DoLayout_ttborderlayout >> DoLayout_ttlayout */, /* extends ttclass_ttlayout */ }, { Class_ttnative, id_ttnative, magicmask_ttnative, magic_ttnative, size_ttnative, /* extends ttclass_ttobj */ (void *)NULL /* inherits: New_ttnative >> New_ttvisible */, (void *)NULL /* inherits: Build_ttnative >> Build_ttobject */, (void *)NULL /* inherits: Break_ttnative >> Break_ttobject */, (void *)NULL /* inherits: Del_ttnative >> Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttnative >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttnative >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttnative >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttnative >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttnative >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttnative >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttnative >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttnative >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ null_GetRoot_ttnative, null_GetW_ttnative, null_GetH_ttnative, }, { Class_ttwidget, id_ttwidget, magicmask_ttwidget, magic_ttwidget, size_ttwidget, /* extends ttclass_ttobj */ null_New_ttwidget, (void *)NULL /* inherits: Build_ttwidget >> Build_ttobject */, (void *)NULL /* inherits: Break_ttwidget >> Break_ttobject */, null_Del_ttwidget, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ null_AddTo_ttwidget, null_Validate_ttwidget, (void *)NULL /* inherits: Remove_ttwidget >> Remove_ttvisible */, null_Invalidate_ttwidget, (void *)NULL /* inherits: SetVisible_ttwidget >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttwidget >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttwidget >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttwidget >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ null_SetLayout_ttwidget, null_SetXY_ttwidget, null_SetWH_ttwidget, null_SetXl_ttwidget, null_SetYl_ttwidget, null_SetWl_ttwidget, null_SetHl_ttwidget, null_SetTooltip_ttwidget, }, { Class_ttlabel, id_ttlabel, magicmask_ttlabel, magic_ttlabel, size_ttlabel, /* extends ttclass_ttobj */ null_New_ttlabel, (void *)NULL /* inherits: Build_ttlabel >> Build_ttobject */, (void *)NULL /* inherits: Break_ttlabel >> Break_ttobject */, null_Del_ttlabel, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttlabel >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttlabel >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttlabel >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttlabel >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttlabel >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttlabel >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttlabel >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttlabel >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttlabel >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttlabel >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttlabel >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttlabel >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttlabel >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttlabel >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttlabel >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttlabel >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ null_SetFontD_ttlabel, }, { Class_tttooltip, id_tttooltip, magicmask_tttooltip, magic_tttooltip, size_tttooltip, /* extends ttclass_ttobj */ null_New_tttooltip, (void *)NULL /* inherits: Build_tttooltip >> Build_ttobject */, (void *)NULL /* inherits: Break_tttooltip >> Break_ttobject */, null_Del_tttooltip, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttooltip >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_tttooltip >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_tttooltip >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_tttooltip >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_tttooltip >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_tttooltip >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_tttooltip >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_tttooltip >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_tttooltip >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_tttooltip >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttooltip >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttooltip >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttooltip >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_tttooltip >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_tttooltip >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_tttooltip >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetFontD_tttooltip >> SetFontD_ttlabel */, /* extends ttclass_ttlabel */ null_SetWidget_tttooltip, }, { Class_ttbuttongroup, id_ttbuttongroup, magicmask_ttbuttongroup, magic_ttbuttongroup, size_ttbuttongroup, /* extends ttclass_ttobj */ null_New_ttbuttongroup, (void *)NULL /* inherits: Build_ttbuttongroup >> Build_ttobject */, (void *)NULL /* inherits: Break_ttbuttongroup >> Break_ttobject */, null_Del_ttbuttongroup, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ null_Add_ttbuttongroup, null_Remove_ttbuttongroup, null_SetChecked_ttbuttongroup, }, { Class_ttanybutton, id_ttanybutton, magicmask_ttanybutton, magic_ttanybutton, size_ttanybutton, /* extends ttclass_ttobj */ null_New_ttanybutton, (void *)NULL /* inherits: Build_ttanybutton >> Build_ttobject */, (void *)NULL /* inherits: Break_ttanybutton >> Break_ttobject */, null_Del_ttanybutton, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanybutton >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttanybutton >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttanybutton >> Remove_ttvisible */, null_Invalidate_ttanybutton, (void *)NULL /* inherits: SetVisible_ttanybutton >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttanybutton >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttanybutton >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttanybutton >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttanybutton >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttanybutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanybutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanybutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanybutton >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttanybutton >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttanybutton >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttanybutton >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ null_CacheThemeShape_ttanybutton, null_SetAttrD_ttanybutton, }, { Class_ttbutton, id_ttbutton, magicmask_ttbutton, magic_ttbutton, size_ttbutton, /* extends ttclass_ttobj */ null_New_ttbutton, (void *)NULL /* inherits: Build_ttbutton >> Build_ttobject */, (void *)NULL /* inherits: Break_ttbutton >> Break_ttobject */, (void *)NULL /* inherits: Del_ttbutton >> Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttbutton >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttbutton >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttbutton >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttbutton >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttbutton >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttbutton >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttbutton >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttbutton >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttbutton >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttbutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttbutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttbutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttbutton >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttbutton >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttbutton >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttbutton >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ null_CacheThemeShape_ttbutton, (void *)NULL /* inherits: SetAttrD_ttbutton >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ null_SetPressed_ttbutton, }, { Class_ttcheckbutton, id_ttcheckbutton, magicmask_ttcheckbutton, magic_ttcheckbutton, size_ttcheckbutton, /* extends ttclass_ttobj */ null_New_ttcheckbutton, (void *)NULL /* inherits: Build_ttcheckbutton >> Build_ttobject */, (void *)NULL /* inherits: Break_ttcheckbutton >> Break_ttobject */, (void *)NULL /* inherits: Del_ttcheckbutton >> Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttcheckbutton >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttcheckbutton >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttcheckbutton >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttcheckbutton >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttcheckbutton >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttcheckbutton >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttcheckbutton >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttcheckbutton >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttcheckbutton >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttcheckbutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttcheckbutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttcheckbutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttcheckbutton >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttcheckbutton >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttcheckbutton >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttcheckbutton >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ null_CacheThemeShape_ttcheckbutton, (void *)NULL /* inherits: SetAttrD_ttcheckbutton >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* inherits: SetPressed_ttcheckbutton >> SetPressed_ttbutton */, /* extends ttclass_ttbutton */ null_SetChecked_ttcheckbutton, }, { Class_ttradiobutton, id_ttradiobutton, magicmask_ttradiobutton, magic_ttradiobutton, size_ttradiobutton, /* extends ttclass_ttobj */ null_New_ttradiobutton, (void *)NULL /* inherits: Build_ttradiobutton >> Build_ttobject */, (void *)NULL /* inherits: Break_ttradiobutton >> Break_ttobject */, null_Del_ttradiobutton, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttradiobutton >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttradiobutton >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttradiobutton >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttradiobutton >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttradiobutton >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttradiobutton >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttradiobutton >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttradiobutton >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttradiobutton >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttradiobutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttradiobutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttradiobutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttradiobutton >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttradiobutton >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttradiobutton >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttradiobutton >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ null_CacheThemeShape_ttradiobutton, (void *)NULL /* inherits: SetAttrD_ttradiobutton >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* inherits: SetPressed_ttradiobutton >> SetPressed_ttbutton */, /* extends ttclass_ttbutton */ null_SetChecked_ttradiobutton, /* extends ttclass_ttcheckbutton */ }, { Class_ttanyscroll, id_ttanyscroll, magicmask_ttanyscroll, magic_ttanyscroll, size_ttanyscroll, /* extends ttclass_ttobj */ null_New_ttanyscroll, (void *)NULL /* inherits: Build_ttanyscroll >> Build_ttobject */, (void *)NULL /* inherits: Break_ttanyscroll >> Break_ttobject */, (void *)NULL /* inherits: Del_ttanyscroll >> Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanyscroll >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttanyscroll >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttanyscroll >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttanyscroll >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttanyscroll >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttanyscroll >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttanyscroll >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttanyscroll >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttanyscroll >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttanyscroll >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanyscroll >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanyscroll >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanyscroll >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttanyscroll >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttanyscroll >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttanyscroll >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: CacheThemeShape_ttanyscroll >> CacheThemeShape_ttanybutton */, (void *)NULL /* inherits: SetAttrD_ttanyscroll >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ null_Recalculate_ttanyscroll, null_SetState_ttanyscroll, null_SetOrientation_ttanyscroll, null_SetSize_ttanyscroll, null_SetRealSize_ttanyscroll, null_SetViewSize_ttanyscroll, null_SetPosition_ttanyscroll, }, { Class_ttscrollbar, id_ttscrollbar, magicmask_ttscrollbar, magic_ttscrollbar, size_ttscrollbar, /* extends ttclass_ttobj */ null_New_ttscrollbar, (void *)NULL /* inherits: Build_ttscrollbar >> Build_ttobject */, (void *)NULL /* inherits: Break_ttscrollbar >> Break_ttobject */, null_Del_ttscrollbar, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollbar >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttscrollbar >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttscrollbar >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttscrollbar >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttscrollbar >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttscrollbar >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttscrollbar >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttscrollbar >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttscrollbar >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttscrollbar >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttscrollbar >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttscrollbar >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscrollbar >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttscrollbar >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttscrollbar >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttscrollbar >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ null_CacheThemeShape_ttscrollbar, (void *)NULL /* inherits: SetAttrD_ttscrollbar >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ null_Recalculate_ttscrollbar, (void *)NULL /* inherits: SetState_ttscrollbar >> SetState_ttanyscroll */, (void *)NULL /* inherits: SetOrientation_ttscrollbar >> SetOrientation_ttanyscroll */, (void *)NULL /* inherits: SetSize_ttscrollbar >> SetSize_ttanyscroll */, (void *)NULL /* inherits: SetRealSize_ttscrollbar >> SetRealSize_ttanyscroll */, (void *)NULL /* inherits: SetViewSize_ttscrollbar >> SetViewSize_ttanyscroll */, (void *)NULL /* inherits: SetPosition_ttscrollbar >> SetPosition_ttanyscroll */, /* extends ttclass_ttanyscroll */ }, { Class_ttslider, id_ttslider, magicmask_ttslider, magic_ttslider, size_ttslider, /* extends ttclass_ttobj */ null_New_ttslider, (void *)NULL /* inherits: Build_ttslider >> Build_ttobject */, (void *)NULL /* inherits: Break_ttslider >> Break_ttobject */, (void *)NULL /* inherits: Del_ttslider >> Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttslider >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttslider >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttslider >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttslider >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttslider >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttslider >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttslider >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttslider >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttslider >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttslider >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttslider >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttslider >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttslider >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttslider >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttslider >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttslider >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ null_CacheThemeShape_ttslider, (void *)NULL /* inherits: SetAttrD_ttslider >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ null_Recalculate_ttslider, (void *)NULL /* inherits: SetState_ttslider >> SetState_ttanyscroll */, (void *)NULL /* inherits: SetOrientation_ttslider >> SetOrientation_ttanyscroll */, null_SetSize_ttslider, (void *)NULL /* inherits: SetRealSize_ttslider >> SetRealSize_ttanyscroll */, (void *)NULL /* inherits: SetViewSize_ttslider >> SetViewSize_ttanyscroll */, null_SetPosition_ttslider, /* extends ttclass_ttanyscroll */ null_SetSlideMin_ttslider, null_SetSlideMax_ttslider, null_SetSlideValue_ttslider, }, { Class_ttprogressbar, id_ttprogressbar, magicmask_ttprogressbar, magic_ttprogressbar, size_ttprogressbar, /* extends ttclass_ttobj */ null_New_ttprogressbar, (void *)NULL /* inherits: Build_ttprogressbar >> Build_ttobject */, (void *)NULL /* inherits: Break_ttprogressbar >> Break_ttobject */, (void *)NULL /* inherits: Del_ttprogressbar >> Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttprogressbar >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttprogressbar >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttprogressbar >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttprogressbar >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttprogressbar >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttprogressbar >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttprogressbar >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttprogressbar >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttprogressbar >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttprogressbar >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttprogressbar >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttprogressbar >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttprogressbar >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttprogressbar >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttprogressbar >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttprogressbar >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ null_CacheThemeShape_ttprogressbar, (void *)NULL /* inherits: SetAttrD_ttprogressbar >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ null_Recalculate_ttprogressbar, (void *)NULL /* inherits: SetState_ttprogressbar >> SetState_ttanyscroll */, (void *)NULL /* inherits: SetOrientation_ttprogressbar >> SetOrientation_ttanyscroll */, (void *)NULL /* inherits: SetSize_ttprogressbar >> SetSize_ttanyscroll */, (void *)NULL /* inherits: SetRealSize_ttprogressbar >> SetRealSize_ttanyscroll */, (void *)NULL /* inherits: SetViewSize_ttprogressbar >> SetViewSize_ttanyscroll */, (void *)NULL /* inherits: SetPosition_ttprogressbar >> SetPosition_ttanyscroll */, /* extends ttclass_ttanyscroll */ }, { Class_ttscrollpane, id_ttscrollpane, magicmask_ttscrollpane, magic_ttscrollpane, size_ttscrollpane, /* extends ttclass_ttobj */ null_New_ttscrollpane, (void *)NULL /* inherits: Build_ttscrollpane >> Build_ttobject */, (void *)NULL /* inherits: Break_ttscrollpane >> Break_ttobject */, null_Del_ttscrollpane, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ null_AddTo_ttscrollpane, (void *)NULL /* inherits: Validate_ttscrollpane >> Validate_ttwidget */, null_Remove_ttscrollpane, (void *)NULL /* inherits: Invalidate_ttscrollpane >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttscrollpane >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttscrollpane >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttscrollpane >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttscrollpane >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttscrollpane >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttscrollpane >> SetXY_ttwidget */, null_SetWH_ttscrollpane, null_SetXl_ttscrollpane, null_SetYl_ttscrollpane, null_SetWl_ttscrollpane, null_SetHl_ttscrollpane, (void *)NULL /* inherits: SetTooltip_ttscrollpane >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ null_SetBarX_ttscrollpane, null_SetBarY_ttscrollpane, }, { Class_ttwindow, id_ttwindow, magicmask_ttwindow, magic_ttwindow, size_ttwindow, /* extends ttclass_ttobj */ null_New_ttwindow, (void *)NULL /* inherits: Build_ttwindow >> Build_ttobject */, (void *)NULL /* inherits: Break_ttwindow >> Break_ttobject */, null_Del_ttwindow, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttwindow >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttwindow >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttwindow >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttwindow >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttwindow >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttwindow >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttwindow >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttwindow >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttwindow >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttwindow >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttwindow >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttwindow >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttwindow >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttwindow >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttwindow >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttwindow >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ null_SetTitle_ttwindow, }, { Class_ttframe, id_ttframe, magicmask_ttframe, magic_ttframe, size_ttframe, /* extends ttclass_ttobj */ null_New_ttframe, null_Build_ttframe, (void *)NULL /* inherits: Break_ttframe >> Break_ttobject */, (void *)NULL /* inherits: Del_ttframe >> Del_ttwindow */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttframe >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttframe >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttframe >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttframe >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttframe >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttframe >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttframe >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttframe >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttframe >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttframe >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttframe >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttframe >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttframe >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttframe >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttframe >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttframe >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetTitle_ttframe >> SetTitle_ttwindow */, /* extends ttclass_ttwindow */ null_SetMenubar_ttframe, }, { Class_ttscroller, id_ttscroller, magicmask_ttscroller, magic_ttscroller, size_ttscroller, /* extends ttclass_ttobj */ null_New_ttscroller, (void *)NULL /* inherits: Build_ttscroller >> Build_ttobject */, (void *)NULL /* inherits: Break_ttscroller >> Break_ttobject */, null_Del_ttscroller, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscroller >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttscroller >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttscroller >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttscroller >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttscroller >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttscroller >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttscroller >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttscroller >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttscroller >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttscroller >> SetXY_ttwidget */, null_SetWH_ttscroller, (void *)NULL /* inherits: SetXl_ttscroller >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscroller >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttscroller >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttscroller >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttscroller >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetTitle_ttscroller >> SetTitle_ttwindow */, /* extends ttclass_ttwindow */ }, { Class_ttmenuitem, id_ttmenuitem, magicmask_ttmenuitem, magic_ttmenuitem, size_ttmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* inherits: New_ttmenuitem >> New_ttvisible */, (void *)NULL /* inherits: Build_ttmenuitem >> Build_ttobject */, (void *)NULL /* inherits: Break_ttmenuitem >> Break_ttobject */, (void *)NULL /* inherits: Del_ttmenuitem >> Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttmenuitem >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttmenuitem >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttmenuitem >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttmenuitem >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttmenuitem >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttmenuitem >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttmenuitem >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttmenuitem >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ }, { Class_ttcheckmenuitem, id_ttcheckmenuitem, magicmask_ttcheckmenuitem, magic_ttcheckmenuitem, size_ttcheckmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* inherits: New_ttcheckmenuitem >> New_ttvisible */, (void *)NULL /* inherits: Build_ttcheckmenuitem >> Build_ttobject */, (void *)NULL /* inherits: Break_ttcheckmenuitem >> Break_ttobject */, (void *)NULL /* inherits: Del_ttcheckmenuitem >> Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttcheckmenuitem >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttcheckmenuitem >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttcheckmenuitem >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttcheckmenuitem >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttcheckmenuitem >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttcheckmenuitem >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttcheckmenuitem >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttcheckmenuitem >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttradiomenuitem, id_ttradiomenuitem, magicmask_ttradiomenuitem, magic_ttradiomenuitem, size_ttradiomenuitem, /* extends ttclass_ttobj */ (void *)NULL /* inherits: New_ttradiomenuitem >> New_ttvisible */, (void *)NULL /* inherits: Build_ttradiomenuitem >> Build_ttobject */, (void *)NULL /* inherits: Break_ttradiomenuitem >> Break_ttobject */, (void *)NULL /* inherits: Del_ttradiomenuitem >> Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttradiomenuitem >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttradiomenuitem >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttradiomenuitem >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttradiomenuitem >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttradiomenuitem >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttradiomenuitem >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttradiomenuitem >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttradiomenuitem >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ /* extends ttclass_ttcheckmenuitem */ }, { Class_ttmenu, id_ttmenu, magicmask_ttmenu, magic_ttmenu, size_ttmenu, /* extends ttclass_ttobj */ null_New_ttmenu, (void *)NULL /* inherits: Build_ttmenu >> Build_ttobject */, (void *)NULL /* inherits: Break_ttmenu >> Break_ttobject */, (void *)NULL /* inherits: Del_ttmenu >> Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttmenu >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttmenu >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttmenu >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttmenu >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttmenu >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttmenu >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttmenu >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttmenu >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttmenubar, id_ttmenubar, magicmask_ttmenubar, magic_ttmenubar, size_ttmenubar, /* extends ttclass_ttobj */ (void *)NULL /* inherits: New_ttmenubar >> New_ttvisible */, (void *)NULL /* inherits: Build_ttmenubar >> Build_ttobject */, (void *)NULL /* inherits: Break_ttmenubar >> Break_ttobject */, null_Del_ttmenubar, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttmenubar >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttmenubar >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttmenubar >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttmenubar >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttmenubar >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttmenubar >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttmenubar >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttmenubar >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ }, { Class_ttanytext, id_ttanytext, magicmask_ttanytext, magic_ttanytext, size_ttanytext, /* extends ttclass_ttobj */ null_New_ttanytext, (void *)NULL /* inherits: Build_ttanytext >> Build_ttobject */, (void *)NULL /* inherits: Break_ttanytext >> Break_ttobject */, (void *)NULL /* inherits: Del_ttanytext >> Del_ttwindow */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanytext >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_ttanytext >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_ttanytext >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttanytext >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttanytext >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttanytext >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttanytext >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttanytext >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttanytext >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttanytext >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanytext >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanytext >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanytext >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttanytext >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttanytext >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttanytext >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetTitle_ttanytext >> SetTitle_ttwindow */, /* extends ttclass_ttwindow */ }, { Class_tttextfield, id_tttextfield, magicmask_tttextfield, magic_tttextfield, size_tttextfield, /* extends ttclass_ttobj */ (void *)NULL /* inherits: New_tttextfield >> New_ttanytext */, (void *)NULL /* inherits: Build_tttextfield >> Build_ttobject */, (void *)NULL /* inherits: Break_tttextfield >> Break_ttobject */, (void *)NULL /* inherits: Del_tttextfield >> Del_ttwindow */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextfield >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_tttextfield >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_tttextfield >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_tttextfield >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_tttextfield >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_tttextfield >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_tttextfield >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_tttextfield >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_tttextfield >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_tttextfield >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttextfield >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttextfield >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttextfield >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_tttextfield >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_tttextfield >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_tttextfield >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetTitle_tttextfield >> SetTitle_ttwindow */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ }, { Class_tttextarea, id_tttextarea, magicmask_tttextarea, magic_tttextarea, size_tttextarea, /* extends ttclass_ttobj */ (void *)NULL /* inherits: New_tttextarea >> New_ttanytext */, (void *)NULL /* inherits: Build_tttextarea >> Build_ttobject */, (void *)NULL /* inherits: Break_tttextarea >> Break_ttobject */, (void *)NULL /* inherits: Del_tttextarea >> Del_ttwindow */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextarea >> AddTo_ttwidget */, (void *)NULL /* inherits: Validate_tttextarea >> Validate_ttwidget */, (void *)NULL /* inherits: Remove_tttextarea >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_tttextarea >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_tttextarea >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_tttextarea >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_tttextarea >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_tttextarea >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_tttextarea >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_tttextarea >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttextarea >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttextarea >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttextarea >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_tttextarea >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_tttextarea >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_tttextarea >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetTitle_tttextarea >> SetTitle_ttwindow */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ /* extends ttclass_tttextfield */ }, { Class_tttheme, id_tttheme, magicmask_tttheme, magic_tttheme, size_tttheme, /* extends ttclass_ttobj */ (void *)NULL /* inherits: New_tttheme >> New_ttcomponent */, null_Build_tttheme, (void *)NULL /* inherits: Break_tttheme >> Break_ttobject */, null_Del_tttheme, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { Class_ttapplication, id_ttapplication, magicmask_ttapplication, magic_ttapplication, size_ttapplication, /* extends ttclass_ttobj */ null_New_ttapplication, (void *)NULL /* inherits: Build_ttapplication >> Build_ttobject */, (void *)NULL /* inherits: Break_ttapplication >> Break_ttobject */, null_Del_ttapplication, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { null_Sync, null_Flush, null_TimidFlush, null_MainLoopOnce, null_DeleteCallback, null_Close, null_ConnectionFd, null_GetErrno, null_GetErrnoDetail, null_StrError, null_StrErrorDetail, }, }; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/twin_c���������������������������������������������������������������������0000664�0000000�0000000�00000002412�13775351206�0016204�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is `twin_c' and is preprocessed by m4 to produce `twin_m4.c' * * It must be a valid m4 file, and must produce a valid C file. * */ #include <Tw/Tw.h> #include <Tw/Twavl.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include <Tw/Twerrno.h> DECL_BEFORE dnl m4_begin " define(`CALL', `Tw$1(shift($@))') define(`SYM', `Tw$1') include(`twin_h') include(`twin_hw_h') dnl " m4_end TW_DECL_MAGIC(TT_Tw_magic); #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_twin_InitHW(tthw *HW) #endif { /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = &twin_TTClasses.HW; CALL(ConfigMalloc, TTAllocMem, TTReallocMem, TTFreeMem); if (CALL(CheckMagic, TT_Tw_magic) && CALL(Open, TTD.HWOptions)) return &twin_TTClasses; FAIL(SYM(Errno), SYM(ErrnoDetail)); return (ttclasses)0; } DECL_AFTER ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/twin_detunnel_c������������������������������������������������������������0000664�0000000�0000000�00000010061�13775351206�0020101�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is `twin_detunnel_c' and is preprocessed by m4 to produce `twin_detunnel_m4.c' * * It must be a valid m4 file, and must produce a valid C file. * */ #include "twin.h" #include <Tw/Tw.h> #include <Tw/Twavl.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include <Tw/Twerrno.h> /* get twin server internal headers */ #include "../../../server/extreg.h" #include "../../../server/socket_id.h" DECL_BEFORE /* FIXME finish these ! */ static tany twin_detunnel_TwStat(tobj Id, udat h) { return (tany)0; } static void twin_detunnel_TwDraw2Widget(twidget W,dat XWidth,dat YWidth,dat Left,dat Up,dat Pitch,TW_CONST byte *Text,TW_CONST trune *Font,TW_CONST tcell *Attr) { } static void twin_detunnel_TwSetFillWidget(twidget W,tcell Fill) { } static void twin_detunnel_TwDrawTRuneWidget(twidget W,dat XWidth,dat YWidth,dat Left,dat Up,dat Pitch,TW_CONST trune *Font) { } static void twin_detunnel_TwDrawTCellWidget(twidget W,dat XWidth,dat YWidth,dat Left,dat Up,dat Pitch,TW_CONST tcell *Attr) { } static tlistener twin_detunnel_TwAddMouseListener(twidget W,udat Code,udat ShiftFlags,tfn_listener Listener,void *Arg) { return (tlistener)0; } static tlistener twin_detunnel_TwAddGadgetListener(twidget W,udat Code,tfn_listener Listener,void *Arg) { return (tlistener)0; } static tlistener twin_detunnel_TwAddWidgetListener(twidget W,udat Code,tfn_listener Listener,void *Arg) { return (tlistener)0; } static tmenuitem twin_detunnel_TwCreate4MenuRow(twindow Window,udat Code,byte Flags,ldat Len,TW_CONST byte *Text) { return (tmenuitem)0; } static tmenuitem twin_detunnel_TwCreate4MenuMenuItem(tobj Parent,twindow Window,byte Flags,dat Len,TW_CONST byte *Name) { return (tmenuitem)0; } dnl m4_begin " define(`Row4Menu', `Create4MenuRow') define(`Item4Menu', `Create4MenuMenuItem') define(`Item4MenuCommon', `Create4MenuCommonMenuItem') divert(-1) define(`EL', `define(`m4_order_$1')dnl order_$1,') include(`socklist_m4.h') divert `#'define Multiplex Ext(Socket,MultiplexL) `#'define TD(name) CAT(twin_detunnel_Tw,name) define(`CALL', `ifdef(m4_order_`$1', Multiplex(order_$@), TD($1)(shift($@)))') define(`SYM', `$1') include(`twin_h') dnl " m4_end; static ttbyte HWDEF(Sync)(void) { return TT_TRUE; } static ttbyte HWDEF(Flush)(void) { return TT_TRUE; } static ttbyte HWDEF(TimidFlush)(void) { return TT_TRUE; } static ttbyte HWDEF(MainLoopOnce)(ttbyte wait) { tmsg Msg; /* loop until all already queued messages are dispatched */ do { if ((Msg = TwCloneReadMsg(wait))) { TwDispatchMsg(Msg); TwFreeMem(Msg); } } while (TwPendingMsg()); return !TwInPanic(); } static void HWDEF(DeleteCallback)(ttcallback o) { if (o->native != (opaque)TW_NOID) TwDeleteListener((tlistener)(opaque)o->native); } static void HWDEF(Close)(void) { TwClose(); } static int HWDEF(ConnectionFd)(void) { return TwConnectionFd(); } static ttuint HWDEF(GetErrno)(void) { return TwErrno; } static ttuint HWDEF(GetErrnoDetail)(void) { return TwErrnoDetail; } static TT_CONST ttbyte *HWDEF(StrError)(ttuint E) { return TwStrError(E); } static TT_CONST ttbyte *HWDEF(StrErrorDetail)(ttuint E, ttuint S) { return TwStrErrorDetail(E, S); } TW_DECL_MAGIC(TT_Tw_magic); #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_twin_detunnel_InitHW(tthw *HW) #endif { /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = &twin_detunnel_TTClasses.HW; TwConfigMalloc(TTAllocMem, TTReallocMem, TTFreeMem); if (TwCheckMagic(TT_Tw_magic) && TwOpen(TTD.HWOptions)) return &twin_detunnel_TTClasses; FAIL(TwErrno, TwErrnoDetail); return (ttclasses)0; } DECL_AFTER �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/twin_detunnel_m4.c���������������������������������������������������������0000664�0000000�0000000�00000226014�13775351206�0020427�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from twin_detunnel_c by m4/hw.m4h, do not edit! */ /* * twin_detunnel_m4.c -- implementation of libTT methods on "twin_detunnel" target display * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is twin_detunnel_c and is preprocessed by m4 to produce twin_detunnel_m4.c * * It must be a valid m4 file, and must produce a valid C file. * */ #include "twin.h" #include <Tw/Tw.h> #include <Tw/Twavl.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include <Tw/Twerrno.h> /* get twin server internal headers */ #include "../../../server/extreg.h" #include "../../../server/socket_id.h" /* order is crucial here! */ #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #endif /* include our internal copy of TT.h instead of the public one */ #include "TT.h" #include <TT/TTerrno.h> #include "mutex.h" #include "TTextern.h" #include "TTassert.h" #include "utils.h" #include "inlines.h" #include "seterrno.h" #include "theme.h" #include "common_m4.h" static s_ttclasses twin_detunnel_TTClasses; /* FIXME finish these ! */ static tany twin_detunnel_TwStat(tobj Id, udat h) { return (tany)0; } static void twin_detunnel_TwDraw2Widget(twidget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, TW_CONST byte *Text, TW_CONST trune *Font, TW_CONST tcell *Attr) { } static void twin_detunnel_TwSetFillWidget(twidget W, tcell Fill) { } static void twin_detunnel_TwDrawTRuneWidget(twidget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, TW_CONST trune *Font) { } static void twin_detunnel_TwDrawTCellWidget(twidget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, TW_CONST tcell *Attr) { } static tlistener twin_detunnel_TwAddMouseListener(twidget W, udat Code, udat ShiftFlags, tfn_listener Listener, void *Arg) { return (tlistener)0; } static tlistener twin_detunnel_TwAddGadgetListener(twidget W, udat Code, tfn_listener Listener, void *Arg) { return (tlistener)0; } static tlistener twin_detunnel_TwAddWidgetListener(twidget W, udat Code, tfn_listener Listener, void *Arg) { return (tlistener)0; } static tmenuitem twin_detunnel_TwCreate4MenuRow(twindow Window, udat Code, byte Flags, ldat Len, TW_CONST byte *Text) { return (tmenuitem)0; } static tmenuitem twin_detunnel_TwCreate4MenuMenuItem(tobj Parent, twindow Window, byte Flags, dat Len, TW_CONST byte *Name) { return (tmenuitem)0; } #define Multiplex Ext(Socket, MultiplexL) #define TD(name) CAT(twin_detunnel_Tw, name) /* * WARNING! * * this file is twin_h and is included by m4 files twin_c and twin_detunnel_c * * It must be a valid m4 file, and must produce a valid C file. * */ /* * We need to write down only overloaded methods. */ /* ttobj */ /* ttobject */ static void twin_detunnel_Break_ttobject(ttobject o) { if (o) { if (o->native != TW_NOID) { Multiplex(order_DeleteObj, o->native); o->native = TW_NOID; } /* call null_Break_ttobj: */ TClass_default(ttobject)->Break(o); } } /* ttvisible */ static void twin_detunnel_AtBuild_ttvisible(ttvisible o) { /* * add all children of this ttvisible: * they have not been added yet, since we just * called Build() on the parent ttvisible */ opaque native = o->native, child_native; ttvisible child = o->child_first; if (IS(ttwidget, o) && native != TW_NOID) while (child) { if ((child_native = child->native)) Multiplex(order_MapWidget, child_native, native); child = child->next; } } /* ttnative */ static ttnative twin_detunnel_GetRoot_ttnative(void) { return Create_ttnative(Multiplex(order_FirstScreen)); } static void twin_detunnel_Break_ttnative(ttnative o) { o->native = TW_NOID; TClass_default(ttnative)->Break(o); } static ttshort twin_detunnel_GetW_ttnative(ttnative o) { ttnative r = TClass_ttnative->GetRoot(); if (r && r->native == o->native) return Multiplex(order_GetDisplayWidth); return TD(Stat)(o->native, TWS_widget_Width); } static ttshort twin_detunnel_GetH_ttnative(ttnative o) { ttnative r = TClass_ttnative->GetRoot(); if (r && r->native == o->native) return Multiplex(order_GetDisplayHeight); return TD(Stat)(o->native, TWS_widget_Height); } /* ttwidget */ static void twin_detunnel_BuiltinRepaint_ttwidget(ttwidget o, dat x, dat y, dat w, dat h) { TD(DrawTCellWidget)(o->native, w, h, x, y, w, NULL); } static void twin_detunnel_ExposeCallback_ttwidget(tevent_any e, void *id) { ttwidget o = ID2(ttwidget, (opaque)id); if (o) Expose_ttvisible((ttvisible)o, e->EventWidget.X, e->EventWidget.Y, e->EventWidget.XWidth, e->EventWidget.YWidth); } static void twin_detunnel_ResizeCallback_ttwidget(tevent_any e, void *id) { ttwidget o = ID2(ttwidget, (opaque)id); if (o) { FIRE_EVENT(o->w = e->EventWidget.XWidth, o, ttwidget_w, e->EventWidget.XWidth, o->w); FIRE_EVENT(o->h = e->EventWidget.YWidth, o, ttwidget_h, e->EventWidget.YWidth, o->h); } } static ttcallback twin_detunnel_AddCommonCallbacks_ttwidget(ttwidget o) { ttcallback l[5]; byte i = 0; void *id = (void *)OBJ2ID(o); if ((l[i] = Create_ttcallback((ttcomponent)o)) && (l[i]->native = (opaque)TD(AddWidgetListener)( o->native, TW_MSG_WIDGET_EXPOSE, (tfn_listener)twin_detunnel_ExposeCallback_ttwidget, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)TD(AddWidgetListener)( o->native, TW_MSG_WIDGET_RESIZE, (tfn_listener)twin_detunnel_ResizeCallback_ttwidget, id))) { return l[i]; } while (i) { TDEL(l[i]); i--; } return NULL; } static ttwidget twin_detunnel_Build_ttwidget(ttwidget o) { tttheme t = myTheme(o); trune f = t->fill; tcolor c = o->col; if (TW_NOID != (o->native = Multiplex(order_CreateWidget, o->w, o->h, 0, TW_WIDGETFL_USEFILL, 0, TW_MAXDAT, TCELL(c, f)))) { twin_detunnel_AtBuild_ttvisible((ttvisible)o); return o; } return NULL; } static void twin_detunnel_AddTo_ttwidget(ttwidget o, ttvisible parent, ttany constraint) { if (parent && !o->parent) { TClass_default(ttwidget)->AddTo(o, parent, constraint); if (o->native != TW_NOID && parent->native != TW_NOID) Multiplex(order_MapWidget, o->native, parent->native); } } static void twin_detunnel_SetVisible_ttwidget(ttwidget o, ttbyte visible) { ttuint isvisible, wasvisibile; wasvisibile = o->vflags & ttvisible_vflags_visible; TClass_default(ttwidget)->SetVisible(o, visible); isvisible = o->vflags & ttvisible_vflags_visible; if (isvisible != wasvisibile && o->native != TW_NOID) Multiplex(order_SetVisibleWidget, o->native, visible); } static void twin_detunnel_Remove_ttwidget(ttwidget o) { if (o->parent) { TClass_default(ttwidget)->Remove(o); if (o->native != TW_NOID) Multiplex(order_UnMapWidget, o->native); } } static ttbyte twin_detunnel_SetXY_ttwidget(ttwidget o, ttshort x, ttshort y) { Multiplex(order_SetXYWidget, o->native, o->x = x, o->y = y); return TT_TRUE; } static ttbyte twin_detunnel_SetWH_ttwidget(ttwidget o, ttshort w, ttshort h) { Multiplex(order_ResizeWidget, o->native, o->w = w, o->h = h); return TT_TRUE; } static ttbyte twin_detunnel_SetXl_ttwidget(ttwidget o, ttint xl) { Multiplex(order_ScrollWidget, o->native, xl - o->xl, 0); o->xl = xl; return TT_TRUE; } static ttbyte twin_detunnel_SetYl_ttwidget(ttwidget o, ttint yl) { Multiplex(order_ScrollWidget, o->native, 0, yl - o->yl); o->yl = yl; return TT_TRUE; } static void twin_detunnel_Draw_ttwidget(ttwidget o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_CONST ttbyte *asciidata, TT_CONST ttfont *fontdata, TT_CONST ttattr *attrdata) { TD(Draw2Widget)(o->native, w, h, x, y, pitch, asciidata, fontdata, attrdata); } /* ttlabel */ static ttlabel twin_detunnel_Build_ttlabel(ttlabel o) { if (TW_NOID != (o->native = Multiplex(order_CreateWidget, o->text_len, 1, 0, TW_WIDGETFL_USEEXPOSE, 0, TW_MAXDAT, TCELL(o->col, myTheme(o)->fill)))) { if (twin_detunnel_AddCommonCallbacks_ttwidget((ttwidget)o)) { twin_detunnel_AtBuild_ttvisible((ttvisible)o); return o; } } return NULL; } static void twin_detunnel_Invalidate_ttwidget(ttwidget o) { tttheme t; TClass_default(ttwidget)->Invalidate(o); t = myTheme(o); TD(SetFillWidget)(o->native, TCELL(o->col, t->fill)); } static void twin_detunnel_BuiltinRepaint_ttlabel(ttlabel o, dat x, dat y, dat w, dat h) { if (y == 0) { if (x < o->text_len) TD(DrawTRuneWidget) (o->native, TT_MIN2(w, o->text_len - x), 1, x, 0, o->text_len, o->text + x); if (x + w > o->text_len) TD(DrawTRuneWidget)(o->native, o->text_len - x - w, 1, o->text_len, 0, 0, NULL); } } /* ttbuttongroup */ /* ttanybutton */ static void twin_detunnel_Invalidate_ttanybutton(ttanybutton o) { /* needed because we have overridden Invalidate_ttwidget above */ ttbyte i; #ifdef DEBUG_TT_HW_TWIN fprintf(stderr, "twin_detunnel_Invalidate_ttanybutton(o=0x%X)\n", (unsigned)o->id); #endif for (i = 0; i < sizeof(o->theme_shape) / sizeof(o->theme_shape[0]); i++) { if (o->theme_shape[i].attr) { TTFreeMem(o->theme_shape[i].attr); o->theme_shape[i].attr = NULL; } } } static void twin_detunnel_BuiltinRepaint_ttanybutton(ttanybutton o, dat x, dat y, dat w, dat h) { ttattr *t; dat tw, th; ttuint i; i = o->Class->CacheThemeShape(o); if (i != (ttuint)-1) { t = o->theme_shape[i].attr; tw = o->theme_shape[i].width; th = o->theme_shape[i].height; if (h + y > th) h = th - y; if (w + x > tw) w = tw - x; if (h > 0 && w > 0 && y < th && x < tw) TD(DrawTCellWidget) (o->native, TT_MIN2(w, tw - x), TT_MIN2(h, th - y), x, y, tw, t + x + (y * tw)); } else if (o->text && o->Class == TClass_ttanybutton) { if (h + y > o->text_height) h = o->text_height - y; if (w + x > o->text_width) w = o->text_width - x; if (h > 0 && w > 0 && y < o->text_height && x < o->text_width) TD(DrawTCellWidget) (o->native, TT_MIN2(w, o->text_width - x), TT_MIN2(h, o->text_height - y), x, y, o->text_width, o->text + x + (y * o->text_width)); } else TD(DrawTCellWidget)(o->native, w, h, x, y, w, NULL); } static void twin_detunnel_MouseCallback_ttanybutton(tevent_any e, tobj id) { ttanybutton o = ID2(ttanybutton, id); ttevent ev; ttuint evcode; udat code; /* * libtw and libTT have the different encoding for mouse event codes, * but shiftflags are the same */ if (o) { code = e->EventMouse.Code; evcode = 0; if (isMOVE(code)) { evcode = ttevent_evcode_mouse_move; } else if (isPRESS(code)) { switch (code & PRESS_ANY) { case PRESS_LEFT: evcode = ttevent_evcode_mouse_press_1; break; case PRESS_MIDDLE: evcode = ttevent_evcode_mouse_press_2; break; case PRESS_RIGHT: evcode = ttevent_evcode_mouse_press_3; break; #ifdef HOLD_WHEEL_REV case PRESS_WHEEL_REV: evcode = ttevent_evcode_mouse_press_4; break; #endif #ifdef HOLD_WHEEL_FWD case PRESS_WHEEL_FWD: evcode = ttevent_evcode_mouse_press_5; break; #endif default: /* unknown code! */ return; } } else if (isRELEASE(code)) { switch (code & RELEASE_ANY) { case RELEASE_LEFT: evcode = ttevent_evcode_mouse_release_1; break; case RELEASE_MIDDLE: evcode = ttevent_evcode_mouse_release_2; break; case RELEASE_RIGHT: evcode = ttevent_evcode_mouse_release_3; break; #ifdef HOLD_WHEEL_REV case RELEASE_WHEEL_REV: evcode = ttevent_evcode_mouse_release_4; break; #endif #ifdef HOLD_WHEEL_FWD case RELEASE_WHEEL_FWD: evcode = ttevent_evcode_mouse_release_5; break; #endif default: /* unknown code! */ return; } } else { /* unknown code! */ return; } if ((code & HOLD_ANY)) { evcode |= (code & HOLD_LEFT ? ttevent_evcode_mouse_hold_1 : 0) | (code & HOLD_MIDDLE ? ttevent_evcode_mouse_hold_2 : 0) | (code & HOLD_RIGHT ? ttevent_evcode_mouse_hold_3 : 0) | #ifdef HOLD_WHEEL_REV (code & HOLD_WHEEL_REV ? ttevent_evcode_mouse_hold_4 : 0) | #endif #ifdef HOLD_WHEEL_FWD (code & HOLD_WHEEL_FWD ? ttevent_evcode_mouse_hold_5 : 0) | #endif 0; } if (evcode >= ttevent_evcode_mouse_first && evcode <= ttevent_evcode_mouse_last && (ev = (ttevent)Create4_tteventbig(ttevent_evtype_mouse, evcode, e->EventMouse.ShiftFlags, e->EventMouse.X, e->EventMouse.Y, 0, 0))) { FireEvent(ev, (ttcomponent)o); /* FireEvent also deletes ev */ } } } static ttcallback twin_detunnel_AddCommonCallbacks_ttanybutton(ttanybutton o) { ttcallback l[5]; byte i = 0; void *id = (void *)OBJ2ID(o); if ((l[i] = twin_detunnel_AddCommonCallbacks_ttwidget((ttwidget)o)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)TD(AddMouseListener)( o->native, MOVE_MOUSE, 0, (tfn_listener)twin_detunnel_MouseCallback_ttanybutton, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)TD(AddMouseListener)( o->native, PRESS_LEFT, 0, (tfn_listener)twin_detunnel_MouseCallback_ttanybutton, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)TD(AddMouseListener)( o->native, MOVE_MOUSE | HOLD_LEFT, 0, (tfn_listener)twin_detunnel_MouseCallback_ttanybutton, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)TD(AddMouseListener)( o->native, RELEASE_LEFT, 0, (tfn_listener)twin_detunnel_MouseCallback_ttanybutton, id))) { return l[i]; } while (i) { TDEL(l[i]); i--; } return NULL; } static ttanybutton twin_detunnel_Build_ttanybutton(ttanybutton o) { /* calculate o->w and o->h using theme: */ o->Class->CacheThemeShape(o); if (TW_NOID != (o->native = Multiplex(order_CreateWidget, o->w, o->h, TW_WIDGET_WANT_MOUSE | TW_WIDGET_WANT_MOUSE_MOTION | TW_WIDGET_AUTO_FOCUS, TW_WIDGETFL_USEEXPOSE, 0, 0, o->col))) { if (twin_detunnel_AddCommonCallbacks_ttanybutton((ttanybutton)o)) { twin_detunnel_AtBuild_ttvisible((ttvisible)o); return o; } } return NULL; } /* ttbutton */ /* ttcheckbutton */ /* ttradiobutton */ /* ttscrollbar */ /* ttslider */ /* ttscrollpane */ /* ttwindow */ static ttwindow twin_detunnel_Build_ttwindow(ttwindow o) { if (TW_NOID != (o->native = Multiplex( order_CreateWindow, o->title ? TTLenStr(o->title) : 0, o->title, NULL, TW_NOID, o->col, TW_LINECURSOR, TW_WINDOW_DRAG | TW_WINDOW_WANT_CHANGES | TW_WINDOW_WANT_KEYS | TW_WINDOW_WANT_MOUSE | TW_WINDOW_WANT_MOUSE_MOTION | TW_WIDGET_AUTO_FOCUS, TW_WINDOWFL_USEEXPOSE | TW_WINDOWFL_CURSOR_ON | TW_WINDOWFL_BORDERLESS, o->w, o->h, 0))) { if (twin_detunnel_AddCommonCallbacks_ttwidget((ttwidget)o)) { twin_detunnel_AtBuild_ttvisible((ttvisible)o); return o; } } return NULL; } /* ttframe */ static void twin_detunnel_AskCloseCallback_ttframe(tevent_any ev, tobj id) { ttframe o = ID2(ttframe, id); if (o) FireSimpleEvent((ttcomponent)o, ttevent_evtype_askclose); } static ttcallback twin_detunnel_AddAskCloseCallback_ttframe(ttframe o) { ttcallback l; opaque id = OBJ2ID(o); if ((l = Create_ttcallback((ttcomponent)o))) { if ((l->native = (opaque)TD(AddGadgetListener)( o->native, 0 /*CLOSE code*/, (tfn_listener)twin_detunnel_AskCloseCallback_ttframe, (void *)id))) return l; TDEL(l); } return NULL; } static ttframe twin_detunnel_Build_ttframe(ttframe o) { /* ttframe are non-visible when created */ o->vflags &= ~ttvisible_vflags_visible; if (TW_NOID != (o->native = Multiplex( order_CreateWindow, o->title ? TTLenStr(o->title) : 0, o->title, NULL, myMenubar_n(o), o->col, TW_LINECURSOR, TW_WINDOW_DRAG | TW_WINDOW_RESIZE | TW_WINDOW_CLOSE | TW_WINDOW_WANT_CHANGES | TW_WINDOW_WANT_KEYS | TW_WINDOW_WANT_MOUSE | TW_WINDOW_WANT_MOUSE_MOTION | TW_WIDGET_AUTO_FOCUS, TW_WINDOWFL_USEEXPOSE | TW_WINDOWFL_CURSOR_ON, o->w, o->h, 0)) && twin_detunnel_AddCommonCallbacks_ttwidget((ttwidget)o) && twin_detunnel_AddAskCloseCallback_ttframe(o)) { twin_detunnel_AtBuild_ttvisible((ttvisible)o); o->Class->AddTo(o, (ttvisible)TClass_ttnative->GetRoot(), 0); return o; } return NULL; } /* * HACK WARNING: libtw does not support non-visible * top-level widgets, so we emulate them with TwUnmapWidget(). * This is why we override AddTo_ttframe() and SetVisible_ttframe() */ static void twin_detunnel_AddTo_ttframe(ttframe o, ttvisible parent, ttany constraint) { if (parent && !o->parent) { /* prepend to list */ if ((o->next = parent->child_first)) parent->child_first->prev = (ttvisible)o; else parent->child_last = (ttvisible)o; parent->child_first = (ttvisible)o; o->prev = NULL; o->parent = parent; if (o->vflags & ttvisible_vflags_visible) Multiplex(order_MapWidget, o->native, parent->native); } } static void twin_detunnel_SetVisible_ttframe(ttframe o, byte on_off) { on_off = !!on_off; if (on_off != !!(o->vflags & ttvisible_vflags_visible)) { o->vflags ^= ttvisible_vflags_visible; if (o->parent) { if (on_off) Multiplex(order_MapWidget, o->native, o->parent->native); else Multiplex(order_UnMapWidget, o->native); } } } static ttbyte twin_detunnel_SetTitle_ttframe(ttframe o, TT_ARG_READ ttbyte *title) { if (TClass_default(ttframe)->SetTitle(o, title)) { Multiplex(order_SetTitleWindow, o->native, o->title_len, o->title); return TT_TRUE; } return TT_FALSE; } static void twin_detunnel_BuiltinRepaint_ttframe(ttframe o, dat x, dat y, dat w, dat h) { TD(DrawTCellWidget)(o->native, w, h, x, y, w, NULL); } /* ttscroller */ /* ttmenuitem */ static void twin_detunnel_AddTo_ttmenuitem(ttmenuitem o, ttvisible parent, ttany constraint) { /* append */ tobj Code; if (parent && !o->parent && TTAssert(IS(ttmenu, parent)) && (o->name || (o->name = TTCloneStr("")))) { /* hack warning: this is dirty */ Code = OBJ2ID(o) + 1; while (Code && ((udat)Code == 0 || (udat)Code >= TW_COD_RESERVED)) Code >>= (8 * sizeof(udat)); if (!(udat)Code) Code = 1 + (rand() & 0xFFF); o->native = TD(Create4MenuRow)( parent->target_private, Code, *o->name ? (o->vflags & ttanybutton_vflags_disabled) ? TW_ROW_ACTIVE : TW_ROW_INACTIVE : TW_ROW_IGNORE, strlen(o->name), o->name); TClass_default(ttmenuitem)->AddTo(o, parent, constraint); } } static void twin_detunnel_Remove_ttmenuitem(ttmenuitem o) { if (o->parent) { TClass_default(ttmenuitem)->Remove(o); if (TW_NOID != o->native) Multiplex(order_DeleteObj, o->native); } } /* ttcheckmenuitem */ /* ttradiomenuitem */ /* ttmenu */ static void twin_detunnel_AddTo_ttmenu(ttmenu o, ttvisible parent, ttany constraint) { if (!o->parent && parent && TTAssert(IS(ttmenu, parent) || IS(ttmenubar, parent)) && (o->name || (o->name = TTCloneStr("")))) { if (!o->menubar) { if (IS(ttmenubar, parent)) o->menubar = (ttmenubar)parent; else if (IS(ttmenu, parent)) o->menubar = ((ttmenu)parent)->menubar; } if (TW_NOID != (o->target_private = Multiplex(order_Create4MenuWindow, myMenubar_n(o))) && TW_NOID != (o->native = TD(Create4MenuMenuItem)(parent->native, o->target_private, !(o->vflags & ttanybutton_vflags_disabled), strlen(o->name), o->name))) { TClass_default(ttmenu)->AddTo(o, parent, constraint); } } } static void twin_detunnel_Remove_ttmenu(ttmenu o) { if (o->parent) { TClass_default(ttmenu)->Remove(o); if (o->target_private != TW_NOID) { Multiplex(order_DeleteObj, o->target_private); o->target_private = TW_NOID; } if (o->native != TW_NOID) { Multiplex(order_DeleteObj, o->native); o->native = TW_NOID; } } } /* ttmenubar */ static ttmenubar twin_detunnel_Build_ttmenubar(ttmenubar o) { tttheme t = myTheme(o); if (TW_NOID != (o->native = Multiplex(order_CreateMenu, t->bg[tttheme_bg_menu_normal], t->bg[tttheme_bg_menu_select], t->bg[tttheme_bg_menu_disabled], t->bg[tttheme_bg_menu_selectdisabled], t->bg[tttheme_bg_menu_shcut], t->bg[tttheme_bg_menu_selectshcut], 0))) { Multiplex(order_Create4MenuCommonMenuItem, o->native); twin_detunnel_AtBuild_ttvisible((ttvisible)o); return o; } return NULL; } /* ttanytext */ /* tttextfield */ /* tttextarea */ /* tttheme */ /* ttapplication */ static ttapplication twin_detunnel_Build_ttapplication(ttapplication o) { if (o->name && TW_NOID != (o->native = Multiplex(order_CreateMsgPort, strlen(o->name), o->name))) return o; return NULL; } static ttbyte twin_detunnel_Sync(void) { return TT_TRUE; } static ttbyte twin_detunnel_Flush(void) { return TT_TRUE; } static ttbyte twin_detunnel_TimidFlush(void) { return TT_TRUE; } static ttbyte twin_detunnel_MainLoopOnce(ttbyte wait) { tmsg Msg; /* loop until all already queued messages are dispatched */ do { if ((Msg = TwCloneReadMsg(wait))) { TwDispatchMsg(Msg); TwFreeMem(Msg); } } while (TwPendingMsg()); return !TwInPanic(); } static void twin_detunnel_DeleteCallback(ttcallback o) { if (o->native != (opaque)TW_NOID) TwDeleteListener((tlistener)(opaque)o->native); } static void twin_detunnel_Close(void) { TwClose(); } static int twin_detunnel_ConnectionFd(void) { return TwConnectionFd(); } static ttuint twin_detunnel_GetErrno(void) { return TwErrno; } static ttuint twin_detunnel_GetErrnoDetail(void) { return TwErrnoDetail; } static TT_CONST ttbyte *twin_detunnel_StrError(ttuint E) { return TwStrError(E); } static TT_CONST ttbyte *twin_detunnel_StrErrorDetail(ttuint E, ttuint S) { return TwStrErrorDetail(E, S); } TW_DECL_MAGIC(TT_Tw_magic); #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_twin_detunnel_InitHW(tthw *HW) #endif { /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = &twin_detunnel_TTClasses.HW; TwConfigMalloc(TTAllocMem, TTReallocMem, TTFreeMem); if (TwCheckMagic(TT_Tw_magic) && TwOpen(TTD.HWOptions)) return &twin_detunnel_TTClasses; FAIL(TwErrno, TwErrnoDetail); return (ttclasses)0; } /* * use default values for methods not implemented in twin_detunnel_c * * null display target MUST IMPLEMENT ALL METHODS, even if as stubs. */ static s_ttclasses twin_detunnel_TTClasses = { { Class_ttobj, id_ttobj, magicmask_ttobj, magic_ttobj, size_ttobj, }, { Class_ttclass, id_ttclass, magicmask_ttclass, magic_ttclass, size_ttclass, /* extends ttclass_ttobj */ }, { Class_ttobject, id_ttobject, magicmask_ttobject, magic_ttobject, size_ttobject, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttobject */, (void *)NULL /* UNDEFINED: Build_ttobject */, twin_detunnel_Break_ttobject, (void *)NULL /* UNDEFINED: Del_ttobject */, }, { Class_ttvector, id_ttvector, magicmask_ttvector, magic_ttvector, size_ttvector, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvector */, (void *)NULL /* UNDEFINED: Build_ttvector */, (void *)NULL /* inherits: Break_ttvector >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttvector */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: GetAt_ttvector */, (void *)NULL /* UNDEFINED: SetAt_ttvector */, (void *)NULL /* UNDEFINED: AddY_ttvector */, (void *)NULL /* UNDEFINED: ContainsValue_ttvector */, (void *)NULL /* UNDEFINED: RemoveRange_ttvector */, }, { Class_ttfield, id_ttfield, magicmask_ttfield, magic_ttfield, size_ttfield, /* extends ttclass_ttobj */ }, { Class_ttmethod, id_ttmethod, magicmask_ttmethod, magic_ttmethod, size_ttmethod, /* extends ttclass_ttobj */ }, { Class_ttevent, id_ttevent, magicmask_ttevent, magic_ttevent, size_ttevent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttevent */, (void *)NULL /* UNDEFINED: Build_ttevent */, (void *)NULL /* inherits: Break_ttevent >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttevent */, /* extends ttclass_ttobject */ }, { Class_tteventbig, id_tteventbig, magicmask_tteventbig, magic_tteventbig, size_tteventbig, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventbig */, (void *)NULL /* UNDEFINED: Build_tteventbig */, (void *)NULL /* inherits: Break_tteventbig >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tteventbig */, /* extends ttclass_ttobject */ /* extends ttclass_ttevent */ }, { Class_ttbitmask, id_ttbitmask, magicmask_ttbitmask, magic_ttbitmask, size_ttbitmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbitmask */, (void *)NULL /* UNDEFINED: Build_ttbitmask */, (void *)NULL /* inherits: Break_ttbitmask >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbitmask */, /* extends ttclass_ttobject */ }, { Class_tteventmask, id_tteventmask, magicmask_tteventmask, magic_tteventmask, size_tteventmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventmask */, (void *)NULL /* UNDEFINED: Build_tteventmask */, (void *)NULL /* inherits: Break_tteventmask >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tteventmask */, /* extends ttclass_ttobject */ }, { Class_ttcallback, id_ttcallback, magicmask_ttcallback, magic_ttcallback, size_ttcallback, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcallback */, (void *)NULL /* UNDEFINED: Build_ttcallback */, (void *)NULL /* inherits: Break_ttcallback >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcallback */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttcallback */, }, { Class_ttlistener, id_ttlistener, magicmask_ttlistener, magic_ttlistener, size_ttlistener, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlistener */, (void *)NULL /* UNDEFINED: Build_ttlistener */, (void *)NULL /* inherits: Break_ttlistener >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlistener */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttlistener */, /* extends ttclass_ttcallback */ (void *)NULL /* UNDEFINED: AddTo_ttlistener */, (void *)NULL /* UNDEFINED: Remove_ttlistener */, }, { Class_tttimer, id_tttimer, magicmask_tttimer, magic_tttimer, size_tttimer, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttimer */, (void *)NULL /* UNDEFINED: Build_tttimer */, (void *)NULL /* inherits: Break_tttimer >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttimer */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_tttimer */, /* extends ttclass_ttcallback */ (void *)NULL /* UNDEFINED: AddTo_tttimer */, (void *)NULL /* UNDEFINED: Remove_tttimer */, /* extends ttclass_ttlistener */ (void *)NULL /* UNDEFINED: SetEnabled_tttimer */, (void *)NULL /* UNDEFINED: IsEnabled_tttimer */, }, { Class_ttcomponent, id_ttcomponent, magicmask_ttcomponent, magic_ttcomponent, size_ttcomponent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcomponent */, (void *)NULL /* UNDEFINED: Build_ttcomponent */, (void *)NULL /* inherits: Break_ttcomponent >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcomponent */, /* extends ttclass_ttobject */ }, { Class_ttdata, id_ttdata, magicmask_ttdata, magic_ttdata, size_ttdata, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttdata */, (void *)NULL /* UNDEFINED: Build_ttdata */, (void *)NULL /* inherits: Break_ttdata >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttdata */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttdata */, (void *)NULL /* UNDEFINED: Remove_ttdata */, }, { Class_ttvisible, id_ttvisible, magicmask_ttvisible, magic_ttvisible, size_ttvisible, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvisible */, (void *)NULL /* UNDEFINED: Build_ttvisible */, (void *)NULL /* inherits: Break_ttvisible >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttvisible */, (void *)NULL /* UNDEFINED: Validate_ttvisible */, (void *)NULL /* UNDEFINED: Remove_ttvisible */, (void *)NULL /* UNDEFINED: Invalidate_ttvisible */, (void *)NULL /* UNDEFINED: SetVisible_ttvisible */, (void *)NULL /* UNDEFINED: SetTheme_ttvisible */, (void *)NULL /* UNDEFINED: Draw_ttvisible */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttvisible */, }, { Class_ttlayout, id_ttlayout, magicmask_ttlayout, magic_ttlayout, size_ttlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlayout */, (void *)NULL /* UNDEFINED: Build_ttlayout */, (void *)NULL /* inherits: Break_ttlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttlayout */, }, { Class_ttboxlayout, id_ttboxlayout, magicmask_ttboxlayout, magic_ttboxlayout, size_ttboxlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttboxlayout */, (void *)NULL /* UNDEFINED: Build_ttboxlayout */, (void *)NULL /* inherits: Break_ttboxlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttboxlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttboxlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttboxlayout */, /* extends ttclass_ttlayout */ }, { Class_ttborderlayout, id_ttborderlayout, magicmask_ttborderlayout, magic_ttborderlayout, size_ttborderlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttborderlayout */, (void *)NULL /* UNDEFINED: Build_ttborderlayout */, (void *)NULL /* inherits: Break_ttborderlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttborderlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttborderlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttborderlayout */, /* extends ttclass_ttlayout */ }, { Class_ttnative, id_ttnative, magicmask_ttnative, magic_ttnative, size_ttnative, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttnative */, (void *)NULL /* UNDEFINED: Build_ttnative */, twin_detunnel_Break_ttnative, (void *)NULL /* UNDEFINED: Del_ttnative */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttnative */, (void *)NULL /* UNDEFINED: Validate_ttnative */, (void *)NULL /* UNDEFINED: Remove_ttnative */, (void *)NULL /* UNDEFINED: Invalidate_ttnative */, (void *)NULL /* UNDEFINED: SetVisible_ttnative */, (void *)NULL /* UNDEFINED: SetTheme_ttnative */, (void *)NULL /* UNDEFINED: Draw_ttnative */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttnative */, /* extends ttclass_ttvisible */ twin_detunnel_GetRoot_ttnative, twin_detunnel_GetW_ttnative, twin_detunnel_GetH_ttnative, }, { Class_ttwidget, id_ttwidget, magicmask_ttwidget, magic_ttwidget, size_ttwidget, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwidget */, twin_detunnel_Build_ttwidget, (void *)NULL /* inherits: Break_ttwidget >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttwidget */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ twin_detunnel_AddTo_ttwidget, (void *)NULL /* UNDEFINED: Validate_ttwidget */, twin_detunnel_Remove_ttwidget, twin_detunnel_Invalidate_ttwidget, twin_detunnel_SetVisible_ttwidget, (void *)NULL /* UNDEFINED: SetTheme_ttwidget */, twin_detunnel_Draw_ttwidget, twin_detunnel_BuiltinRepaint_ttwidget, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttwidget */, twin_detunnel_SetXY_ttwidget, twin_detunnel_SetWH_ttwidget, twin_detunnel_SetXl_ttwidget, twin_detunnel_SetYl_ttwidget, (void *)NULL /* UNDEFINED: SetWl_ttwidget */, (void *)NULL /* UNDEFINED: SetHl_ttwidget */, (void *)NULL /* UNDEFINED: SetTooltip_ttwidget */, }, { Class_ttlabel, id_ttlabel, magicmask_ttlabel, magic_ttlabel, size_ttlabel, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlabel */, twin_detunnel_Build_ttlabel, (void *)NULL /* inherits: Break_ttlabel >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlabel */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttlabel >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttlabel */, (void *)NULL /* inherits: Remove_ttlabel >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttlabel >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttlabel >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttlabel */, (void *)NULL /* inherits: Draw_ttlabel >> Draw_ttwidget */, twin_detunnel_BuiltinRepaint_ttlabel, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttlabel */, (void *)NULL /* inherits: SetXY_ttlabel >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttlabel >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttlabel >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttlabel >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttlabel */, (void *)NULL /* UNDEFINED: SetHl_ttlabel */, (void *)NULL /* UNDEFINED: SetTooltip_ttlabel */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetFontD_ttlabel */, }, { Class_tttooltip, id_tttooltip, magicmask_tttooltip, magic_tttooltip, size_tttooltip, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttooltip */, (void *)NULL /* inherits: Build_tttooltip >> Build_ttlabel */, (void *)NULL /* inherits: Break_tttooltip >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttooltip */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttooltip >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttooltip */, (void *)NULL /* inherits: Remove_tttooltip >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_tttooltip >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_tttooltip >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttooltip */, (void *)NULL /* inherits: Draw_tttooltip >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_tttooltip >> BuiltinRepaint_ttlabel */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttooltip */, (void *)NULL /* inherits: SetXY_tttooltip >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttooltip >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttooltip >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttooltip >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_tttooltip */, (void *)NULL /* UNDEFINED: SetHl_tttooltip */, (void *)NULL /* UNDEFINED: SetTooltip_tttooltip */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetFontD_tttooltip */, /* extends ttclass_ttlabel */ (void *)NULL /* UNDEFINED: SetWidget_tttooltip */, }, { Class_ttbuttongroup, id_ttbuttongroup, magicmask_ttbuttongroup, magic_ttbuttongroup, size_ttbuttongroup, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbuttongroup */, (void *)NULL /* UNDEFINED: Build_ttbuttongroup */, (void *)NULL /* inherits: Break_ttbuttongroup >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbuttongroup */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: Add_ttbuttongroup */, (void *)NULL /* UNDEFINED: Remove_ttbuttongroup */, (void *)NULL /* UNDEFINED: SetChecked_ttbuttongroup */, }, { Class_ttanybutton, id_ttanybutton, magicmask_ttanybutton, magic_ttanybutton, size_ttanybutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanybutton */, twin_detunnel_Build_ttanybutton, (void *)NULL /* inherits: Break_ttanybutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanybutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanybutton */, (void *)NULL /* inherits: Remove_ttanybutton >> Remove_ttwidget */, twin_detunnel_Invalidate_ttanybutton, (void *)NULL /* inherits: SetVisible_ttanybutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanybutton */, (void *)NULL /* inherits: Draw_ttanybutton >> Draw_ttwidget */, twin_detunnel_BuiltinRepaint_ttanybutton, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanybutton */, (void *)NULL /* inherits: SetXY_ttanybutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanybutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanybutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanybutton >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttanybutton */, (void *)NULL /* UNDEFINED: SetHl_ttanybutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttanybutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanybutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttanybutton */, }, { Class_ttbutton, id_ttbutton, magicmask_ttbutton, magic_ttbutton, size_ttbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbutton */, (void *)NULL /* inherits: Build_ttbutton >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttbutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttbutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttbutton */, (void *)NULL /* inherits: Remove_ttbutton >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttbutton >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttbutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttbutton */, (void *)NULL /* inherits: Draw_ttbutton >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttbutton >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttbutton */, (void *)NULL /* inherits: SetXY_ttbutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttbutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttbutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttbutton >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttbutton */, (void *)NULL /* UNDEFINED: SetHl_ttbutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttbutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttbutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttbutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttbutton */, }, { Class_ttcheckbutton, id_ttcheckbutton, magicmask_ttcheckbutton, magic_ttcheckbutton, size_ttcheckbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckbutton */, (void *)NULL /* inherits: Build_ttcheckbutton >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttcheckbutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcheckbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttcheckbutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttcheckbutton */, (void *)NULL /* inherits: Remove_ttcheckbutton >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttcheckbutton >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttcheckbutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttcheckbutton */, (void *)NULL /* inherits: Draw_ttcheckbutton >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttcheckbutton >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttcheckbutton */, (void *)NULL /* inherits: SetXY_ttcheckbutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttcheckbutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttcheckbutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttcheckbutton >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetHl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttcheckbutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttcheckbutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttcheckbutton */, /* extends ttclass_ttbutton */ (void *)NULL /* UNDEFINED: SetChecked_ttcheckbutton */, }, { Class_ttradiobutton, id_ttradiobutton, magicmask_ttradiobutton, magic_ttradiobutton, size_ttradiobutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiobutton */, (void *)NULL /* inherits: Build_ttradiobutton >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttradiobutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttradiobutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttradiobutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttradiobutton */, (void *)NULL /* inherits: Remove_ttradiobutton >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttradiobutton >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttradiobutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttradiobutton */, (void *)NULL /* inherits: Draw_ttradiobutton >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttradiobutton >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttradiobutton */, (void *)NULL /* inherits: SetXY_ttradiobutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttradiobutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttradiobutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttradiobutton >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetHl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttradiobutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttradiobutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttradiobutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttradiobutton */, /* extends ttclass_ttbutton */ (void *)NULL /* UNDEFINED: SetChecked_ttradiobutton */, /* extends ttclass_ttcheckbutton */ }, { Class_ttanyscroll, id_ttanyscroll, magicmask_ttanyscroll, magic_ttanyscroll, size_ttanyscroll, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanyscroll */, (void *)NULL /* inherits: Build_ttanyscroll >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttanyscroll >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanyscroll */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanyscroll >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanyscroll */, (void *)NULL /* inherits: Remove_ttanyscroll >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttanyscroll >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttanyscroll >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanyscroll */, (void *)NULL /* inherits: Draw_ttanyscroll >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttanyscroll >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanyscroll */, (void *)NULL /* inherits: SetXY_ttanyscroll >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanyscroll >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanyscroll >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanyscroll >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetHl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetTooltip_ttanyscroll */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanyscroll */, (void *)NULL /* UNDEFINED: SetAttrD_ttanyscroll */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttanyscroll */, (void *)NULL /* UNDEFINED: SetState_ttanyscroll */, (void *)NULL /* UNDEFINED: SetOrientation_ttanyscroll */, (void *)NULL /* UNDEFINED: SetSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetRealSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetViewSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetPosition_ttanyscroll */, }, { Class_ttscrollbar, id_ttscrollbar, magicmask_ttscrollbar, magic_ttscrollbar, size_ttscrollbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollbar */, (void *)NULL /* inherits: Build_ttscrollbar >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttscrollbar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscrollbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollbar >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscrollbar */, (void *)NULL /* inherits: Remove_ttscrollbar >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttscrollbar >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttscrollbar >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscrollbar */, (void *)NULL /* inherits: Draw_ttscrollbar >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttscrollbar >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscrollbar */, (void *)NULL /* inherits: SetXY_ttscrollbar >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttscrollbar >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttscrollbar >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscrollbar >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetHl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetTooltip_ttscrollbar */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttscrollbar */, (void *)NULL /* UNDEFINED: SetAttrD_ttscrollbar */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttscrollbar */, (void *)NULL /* UNDEFINED: SetState_ttscrollbar */, (void *)NULL /* UNDEFINED: SetOrientation_ttscrollbar */, (void *)NULL /* UNDEFINED: SetSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetRealSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetViewSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetPosition_ttscrollbar */, /* extends ttclass_ttanyscroll */ }, { Class_ttslider, id_ttslider, magicmask_ttslider, magic_ttslider, size_ttslider, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttslider */, (void *)NULL /* inherits: Build_ttslider >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttslider >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttslider */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttslider >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttslider */, (void *)NULL /* inherits: Remove_ttslider >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttslider >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttslider >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttslider */, (void *)NULL /* inherits: Draw_ttslider >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttslider >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttslider */, (void *)NULL /* inherits: SetXY_ttslider >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttslider >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttslider >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttslider >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttslider */, (void *)NULL /* UNDEFINED: SetHl_ttslider */, (void *)NULL /* UNDEFINED: SetTooltip_ttslider */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttslider */, (void *)NULL /* UNDEFINED: SetAttrD_ttslider */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttslider */, (void *)NULL /* UNDEFINED: SetState_ttslider */, (void *)NULL /* UNDEFINED: SetOrientation_ttslider */, (void *)NULL /* UNDEFINED: SetSize_ttslider */, (void *)NULL /* UNDEFINED: SetRealSize_ttslider */, (void *)NULL /* UNDEFINED: SetViewSize_ttslider */, (void *)NULL /* UNDEFINED: SetPosition_ttslider */, /* extends ttclass_ttanyscroll */ (void *)NULL /* UNDEFINED: SetSlideMin_ttslider */, (void *)NULL /* UNDEFINED: SetSlideMax_ttslider */, (void *)NULL /* UNDEFINED: SetSlideValue_ttslider */, }, { Class_ttprogressbar, id_ttprogressbar, magicmask_ttprogressbar, magic_ttprogressbar, size_ttprogressbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttprogressbar */, (void *)NULL /* inherits: Build_ttprogressbar >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttprogressbar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttprogressbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttprogressbar >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttprogressbar */, (void *)NULL /* inherits: Remove_ttprogressbar >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttprogressbar >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttprogressbar >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttprogressbar */, (void *)NULL /* inherits: Draw_ttprogressbar >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttprogressbar >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttprogressbar */, (void *)NULL /* inherits: SetXY_ttprogressbar >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttprogressbar >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttprogressbar >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttprogressbar >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetHl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetTooltip_ttprogressbar */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttprogressbar */, (void *)NULL /* UNDEFINED: SetAttrD_ttprogressbar */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttprogressbar */, (void *)NULL /* UNDEFINED: SetState_ttprogressbar */, (void *)NULL /* UNDEFINED: SetOrientation_ttprogressbar */, (void *)NULL /* UNDEFINED: SetSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetRealSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetViewSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetPosition_ttprogressbar */, /* extends ttclass_ttanyscroll */ }, { Class_ttscrollpane, id_ttscrollpane, magicmask_ttscrollpane, magic_ttscrollpane, size_ttscrollpane, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollpane */, (void *)NULL /* inherits: Build_ttscrollpane >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttscrollpane >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscrollpane */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollpane >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscrollpane */, (void *)NULL /* inherits: Remove_ttscrollpane >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttscrollpane >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttscrollpane >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscrollpane */, (void *)NULL /* inherits: Draw_ttscrollpane >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttscrollpane >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscrollpane */, (void *)NULL /* inherits: SetXY_ttscrollpane >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttscrollpane >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttscrollpane >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscrollpane >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetHl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetTooltip_ttscrollpane */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetBarX_ttscrollpane */, (void *)NULL /* UNDEFINED: SetBarY_ttscrollpane */, }, { Class_ttwindow, id_ttwindow, magicmask_ttwindow, magic_ttwindow, size_ttwindow, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwindow */, twin_detunnel_Build_ttwindow, (void *)NULL /* inherits: Break_ttwindow >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttwindow */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttwindow >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttwindow */, (void *)NULL /* inherits: Remove_ttwindow >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttwindow >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttwindow >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttwindow */, (void *)NULL /* inherits: Draw_ttwindow >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttwindow >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttwindow */, (void *)NULL /* inherits: SetXY_ttwindow >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttwindow >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttwindow >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttwindow >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttwindow */, (void *)NULL /* UNDEFINED: SetHl_ttwindow */, (void *)NULL /* UNDEFINED: SetTooltip_ttwindow */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttwindow */, }, { Class_ttframe, id_ttframe, magicmask_ttframe, magic_ttframe, size_ttframe, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttframe */, twin_detunnel_Build_ttframe, (void *)NULL /* inherits: Break_ttframe >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttframe */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ twin_detunnel_AddTo_ttframe, (void *)NULL /* UNDEFINED: Validate_ttframe */, (void *)NULL /* inherits: Remove_ttframe >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttframe >> Invalidate_ttwidget */, twin_detunnel_SetVisible_ttframe, (void *)NULL /* UNDEFINED: SetTheme_ttframe */, (void *)NULL /* inherits: Draw_ttframe >> Draw_ttwidget */, twin_detunnel_BuiltinRepaint_ttframe, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttframe */, (void *)NULL /* inherits: SetXY_ttframe >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttframe >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttframe >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttframe >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttframe */, (void *)NULL /* UNDEFINED: SetHl_ttframe */, (void *)NULL /* UNDEFINED: SetTooltip_ttframe */, /* extends ttclass_ttwidget */ twin_detunnel_SetTitle_ttframe, /* extends ttclass_ttwindow */ (void *)NULL /* UNDEFINED: SetMenubar_ttframe */, }, { Class_ttscroller, id_ttscroller, magicmask_ttscroller, magic_ttscroller, size_ttscroller, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscroller */, (void *)NULL /* inherits: Build_ttscroller >> Build_ttwindow */, (void *)NULL /* inherits: Break_ttscroller >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscroller */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscroller >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscroller */, (void *)NULL /* inherits: Remove_ttscroller >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttscroller >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttscroller >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscroller */, (void *)NULL /* inherits: Draw_ttscroller >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttscroller >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscroller */, (void *)NULL /* inherits: SetXY_ttscroller >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttscroller >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttscroller >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscroller >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttscroller */, (void *)NULL /* UNDEFINED: SetHl_ttscroller */, (void *)NULL /* UNDEFINED: SetTooltip_ttscroller */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttscroller */, /* extends ttclass_ttwindow */ }, { Class_ttmenuitem, id_ttmenuitem, magicmask_ttmenuitem, magic_ttmenuitem, size_ttmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenuitem */, (void *)NULL /* UNDEFINED: Build_ttmenuitem */, (void *)NULL /* inherits: Break_ttmenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ twin_detunnel_AddTo_ttmenuitem, (void *)NULL /* UNDEFINED: Validate_ttmenuitem */, twin_detunnel_Remove_ttmenuitem, (void *)NULL /* UNDEFINED: Invalidate_ttmenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttmenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttmenuitem */, (void *)NULL /* UNDEFINED: Draw_ttmenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenuitem */, /* extends ttclass_ttvisible */ }, { Class_ttcheckmenuitem, id_ttcheckmenuitem, magicmask_ttcheckmenuitem, magic_ttcheckmenuitem, size_ttcheckmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Build_ttcheckmenuitem */, (void *)NULL /* inherits: Break_ttcheckmenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcheckmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttcheckmenuitem >> AddTo_ttmenuitem */, (void *)NULL /* UNDEFINED: Validate_ttcheckmenuitem */, (void *)NULL /* inherits: Remove_ttcheckmenuitem >> Remove_ttmenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Draw_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttcheckmenuitem */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttradiomenuitem, id_ttradiomenuitem, magicmask_ttradiomenuitem, magic_ttradiomenuitem, size_ttradiomenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Build_ttradiomenuitem */, (void *)NULL /* inherits: Break_ttradiomenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttradiomenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttradiomenuitem >> AddTo_ttmenuitem */, (void *)NULL /* UNDEFINED: Validate_ttradiomenuitem */, (void *)NULL /* inherits: Remove_ttradiomenuitem >> Remove_ttmenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttradiomenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttradiomenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Draw_ttradiomenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttradiomenuitem */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ /* extends ttclass_ttcheckmenuitem */ }, { Class_ttmenu, id_ttmenu, magicmask_ttmenu, magic_ttmenu, size_ttmenu, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenu */, (void *)NULL /* UNDEFINED: Build_ttmenu */, (void *)NULL /* inherits: Break_ttmenu >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenu */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ twin_detunnel_AddTo_ttmenu, (void *)NULL /* UNDEFINED: Validate_ttmenu */, twin_detunnel_Remove_ttmenu, (void *)NULL /* UNDEFINED: Invalidate_ttmenu */, (void *)NULL /* UNDEFINED: SetVisible_ttmenu */, (void *)NULL /* UNDEFINED: SetTheme_ttmenu */, (void *)NULL /* UNDEFINED: Draw_ttmenu */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenu */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttmenubar, id_ttmenubar, magicmask_ttmenubar, magic_ttmenubar, size_ttmenubar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenubar */, twin_detunnel_Build_ttmenubar, (void *)NULL /* inherits: Break_ttmenubar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenubar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenubar */, (void *)NULL /* UNDEFINED: Validate_ttmenubar */, (void *)NULL /* UNDEFINED: Remove_ttmenubar */, (void *)NULL /* UNDEFINED: Invalidate_ttmenubar */, (void *)NULL /* UNDEFINED: SetVisible_ttmenubar */, (void *)NULL /* UNDEFINED: SetTheme_ttmenubar */, (void *)NULL /* UNDEFINED: Draw_ttmenubar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenubar */, /* extends ttclass_ttvisible */ }, { Class_ttanytext, id_ttanytext, magicmask_ttanytext, magic_ttanytext, size_ttanytext, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanytext */, (void *)NULL /* inherits: Build_ttanytext >> Build_ttwindow */, (void *)NULL /* inherits: Break_ttanytext >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanytext */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanytext >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanytext */, (void *)NULL /* inherits: Remove_ttanytext >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttanytext >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttanytext >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanytext */, (void *)NULL /* inherits: Draw_ttanytext >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttanytext >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanytext */, (void *)NULL /* inherits: SetXY_ttanytext >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanytext >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanytext >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanytext >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttanytext */, (void *)NULL /* UNDEFINED: SetHl_ttanytext */, (void *)NULL /* UNDEFINED: SetTooltip_ttanytext */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttanytext */, /* extends ttclass_ttwindow */ }, { Class_tttextfield, id_tttextfield, magicmask_tttextfield, magic_tttextfield, size_tttextfield, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextfield */, (void *)NULL /* inherits: Build_tttextfield >> Build_ttwindow */, (void *)NULL /* inherits: Break_tttextfield >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttextfield */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextfield >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttextfield */, (void *)NULL /* inherits: Remove_tttextfield >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_tttextfield >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_tttextfield >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttextfield */, (void *)NULL /* inherits: Draw_tttextfield >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_tttextfield >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttextfield */, (void *)NULL /* inherits: SetXY_tttextfield >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttextfield >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttextfield >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttextfield >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_tttextfield */, (void *)NULL /* UNDEFINED: SetHl_tttextfield */, (void *)NULL /* UNDEFINED: SetTooltip_tttextfield */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_tttextfield */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ }, { Class_tttextarea, id_tttextarea, magicmask_tttextarea, magic_tttextarea, size_tttextarea, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextarea */, (void *)NULL /* inherits: Build_tttextarea >> Build_ttwindow */, (void *)NULL /* inherits: Break_tttextarea >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttextarea */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextarea >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttextarea */, (void *)NULL /* inherits: Remove_tttextarea >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_tttextarea >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_tttextarea >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttextarea */, (void *)NULL /* inherits: Draw_tttextarea >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_tttextarea >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttextarea */, (void *)NULL /* inherits: SetXY_tttextarea >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttextarea >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttextarea >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttextarea >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_tttextarea */, (void *)NULL /* UNDEFINED: SetHl_tttextarea */, (void *)NULL /* UNDEFINED: SetTooltip_tttextarea */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_tttextarea */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ /* extends ttclass_tttextfield */ }, { Class_tttheme, id_tttheme, magicmask_tttheme, magic_tttheme, size_tttheme, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttheme */, (void *)NULL /* UNDEFINED: Build_tttheme */, (void *)NULL /* inherits: Break_tttheme >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttheme */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { Class_ttapplication, id_ttapplication, magicmask_ttapplication, magic_ttapplication, size_ttapplication, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttapplication */, twin_detunnel_Build_ttapplication, (void *)NULL /* inherits: Break_ttapplication >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttapplication */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { twin_detunnel_Sync, twin_detunnel_Flush, twin_detunnel_TimidFlush, twin_detunnel_MainLoopOnce, twin_detunnel_DeleteCallback, twin_detunnel_Close, twin_detunnel_ConnectionFd, twin_detunnel_GetErrno, twin_detunnel_GetErrnoDetail, twin_detunnel_StrError, twin_detunnel_StrErrorDetail, }, }; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/twin_h���������������������������������������������������������������������0000664�0000000�0000000�00000041331�13775351206�0016214�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * WARNING! * * this file is `twin_h' and is included by m4 files `twin_c' and `twin_detunnel_c' * * It must be a valid m4 file, and must produce a valid C file. * */ /* * We need to write down only overloaded methods. */ /* ttobj */ /* ttobject */ static BREAK(ttobject) { if (o) { if (o->native != TW_NOID) { CALL(DeleteObj, o->native); o->native = TW_NOID; } /* call null_Break_ttobj: */ FNDEFAULT(ttobject)->Break(o); } } /* ttvisible */ static void target()_AtBuild_ttvisible(ttvisible o) { /* * add all children of this ttvisible: * they have not been added yet, since we just * called Build() on the parent ttvisible */ opaque native = o->native, child_native; ttvisible child = o->child_first; if (IS(ttwidget,o) && native != TW_NOID) while (child) { if ((child_native = child->native)) CALL(MapWidget, child_native, native); child = child->next; } } /* ttnative */ static ttnative DEF(GetRoot_ttnative)(void) { return Create_ttnative(CALL(FirstScreen)); } static BREAK(ttnative) { o->native = TW_NOID; FNDEFAULT(ttnative)->Break(o); } static ttshort DEF(GetW_ttnative)(ttnative o) { ttnative r = TClass_ttnative->GetRoot(); if (r && r->native == o->native) return CALL(GetDisplayWidth); return CALL(Stat, o->native, TWS_widget_Width); } static ttshort DEF(GetH_ttnative)(ttnative o) { ttnative r = TClass_ttnative->GetRoot(); if (r && r->native == o->native) return CALL(GetDisplayHeight); return CALL(Stat, o->native, TWS_widget_Height); } /* ttwidget */ static void DEF(BuiltinRepaint_ttwidget)(ttwidget o, dat x, dat y, dat w, dat h) { CALL(DrawTCellWidget, o->native, w, h, x, y, w, NULL); } static void target()_ExposeCallback_ttwidget(tevent_any e, void *id) { ttwidget o = ID2(ttwidget,(opaque)id); if (o) Expose_ttvisible((ttvisible)o, e->EventWidget.X, e->EventWidget.Y, e->EventWidget.XWidth, e->EventWidget.YWidth); } static void target()_ResizeCallback_ttwidget(tevent_any e, void *id) { ttwidget o = ID2(ttwidget,(opaque)id); if (o) { FIRE_EVENT(o->w = e->EventWidget.XWidth, o, ttwidget_w, e->EventWidget.XWidth, o->w); FIRE_EVENT(o->h = e->EventWidget.YWidth, o, ttwidget_h, e->EventWidget.YWidth, o->h); } } static ttcallback target()_AddCommonCallbacks_ttwidget(ttwidget o) { ttcallback l[5]; byte i = 0; void *id = (void *)OBJ2ID(o); if ((l[i] = Create_ttcallback((ttcomponent)o)) && (l[i]->native = (opaque)CALL(AddWidgetListener, o->native, TW_MSG_WIDGET_EXPOSE, (tfn_listener)target()_ExposeCallback_ttwidget, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)CALL(AddWidgetListener, o->native, TW_MSG_WIDGET_RESIZE, (tfn_listener)target()_ResizeCallback_ttwidget, id))) { return l[i]; } while (i) { TDEL(l[i]); i--; } return NULL; } static BUILD(ttwidget) { tttheme t = myTheme(o); trune f = t->fill; tcolor c = o->col; if (TW_NOID != (o->native = CALL(CreateWidget, o->w, o->h, 0, TW_WIDGETFL_USEFILL, 0, MAXDAT, TCELL(c, f)))) { target()_AtBuild_ttvisible((ttvisible)o); return o; } return NULL; } static void DEF(AddTo_ttwidget)(ttwidget o, ttvisible parent, ttany constraint) { if (parent && !o->parent) { FNDEFAULT(ttwidget)->AddTo(o, parent, constraint); if (o->native != TW_NOID && parent->native != TW_NOID) CALL(MapWidget, o->native, parent->native); } } static void DEF(SetVisible_ttwidget)(ttwidget o, ttbyte visible) { ttuint isvisible, wasvisibile; wasvisibile = o->vflags & ttvisible_vflags_visible; FNDEFAULT(ttwidget)->SetVisible(o, visible); isvisible = o->vflags & ttvisible_vflags_visible; if (isvisible != wasvisibile && o->native != TW_NOID) CALL(SetVisibleWidget, o->native, visible); } static void DEF(Remove_ttwidget)(ttwidget o) { if (o->parent) { FNDEFAULT(ttwidget)->Remove(o); if (o->native != TW_NOID) CALL(UnMapWidget, o->native); } } static ttbyte DEF(SetXY_ttwidget)(ttwidget o, ttshort x, ttshort y) { CALL(SetXYWidget, o->native, o->x = x, o->y = y); return TT_TRUE; } static ttbyte DEF(SetWH_ttwidget)(ttwidget o, ttshort w, ttshort h) { CALL(ResizeWidget, o->native, o->w = w, o->h = h); return TT_TRUE; } static ttbyte DEF(SetXl_ttwidget)(ttwidget o, ttint xl) { CALL(ScrollWidget, o->native, xl - o->xl, 0); o->xl = xl; return TT_TRUE; } static ttbyte DEF(SetYl_ttwidget)(ttwidget o, ttint yl) { CALL(ScrollWidget, o->native, 0, yl - o->yl); o->yl = yl; return TT_TRUE; } static void DEF(Draw_ttwidget)(ttwidget o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_CONST ttbyte *asciidata, TT_CONST ttfont *fontdata, TT_CONST ttattr *attrdata) { CALL(Draw2Widget, o->native, w, h, x, y, pitch, asciidata, fontdata, attrdata); } /* ttlabel */ static BUILD(ttlabel) { if (TW_NOID != (o->native = CALL(CreateWidget, o->text_len, 1, 0, TW_WIDGETFL_USEEXPOSE, 0, MAXDAT, TCELL(o->col, myTheme(o)->fill)))) { if (target()_AddCommonCallbacks_ttwidget((ttwidget)o)) { target()_AtBuild_ttvisible((ttvisible)o); return o; } } return NULL; } static void DEF(Invalidate_ttwidget)(ttwidget o) { tttheme t; FNDEFAULT(ttwidget)->Invalidate(o); t = myTheme(o); CALL(SetFillWidget, o->native, TCELL(o->col, t->fill)); } static void DEF(BuiltinRepaint_ttlabel)(ttlabel o, dat x, dat y, dat w, dat h) { if (y == 0) { if (x < o->text_len) CALL(DrawTRuneWidget, o->native, TT_MIN2(w,o->text_len-x), 1, x, 0, o->text_len, o->text+x); if (x+w > o->text_len) CALL(DrawTRuneWidget, o->native, o->text_len-x-w, 1, o->text_len, 0, 0, NULL); } } /* ttbuttongroup */ /* ttanybutton */ static void DEF(Invalidate_ttanybutton)(ttanybutton o) { /* needed because we have overridden Invalidate_ttwidget above */ ttbyte i; #ifdef DEBUG_TT_HW_TWIN fprintf(stderr, "target()_Invalidate_ttanybutton(o=0x%X)\n", (unsigned)o->id); #endif for (i = 0; i < sizeof(o->theme_shape)/sizeof(o->theme_shape[0]); i++) { if (o->theme_shape[i].attr) { TTFreeMem(o->theme_shape[i].attr); o->theme_shape[i].attr = NULL; } } } static void DEF(BuiltinRepaint_ttanybutton)(ttanybutton o, dat x, dat y, dat w, dat h) { ttattr *t; dat tw, th; ttuint i; i = o->Class->CacheThemeShape(o); if (i != (ttuint)-1) { t = o->theme_shape[i].attr; tw = o->theme_shape[i].width; th = o->theme_shape[i].height; if (h+y > th) h = th - y; if (w+x > tw) w = tw - x; if (h > 0 && w > 0 && y < th && x < tw) CALL(DrawTCellWidget, o->native, TT_MIN2(w,tw-x), TT_MIN2(h, th-y), x, y, tw, t + x + (y * tw)); } else if (o->text && o->Class == TClass_ttanybutton) { if (h+y > o->text_height) h = o->text_height - y; if (w+x > o->text_width) w = o->text_width - x; if (h > 0 && w > 0 && y < o->text_height && x < o->text_width) CALL(DrawTCellWidget, o->native, TT_MIN2(w,o->text_width-x), TT_MIN2(h, o->text_height-y), x, y, o->text_width, o->text + x + (y * o->text_width)); } else CALL(DrawTCellWidget, o->native, w, h, x, y, w, NULL); } static void target()_MouseCallback_ttanybutton(tevent_any e, tobj id) { ttanybutton o = ID2(ttanybutton,id); ttevent ev; ttuint evcode; udat code; /* * libtw and libTT have the different encoding for mouse event codes, * but shiftflags are the same */ if (o) { code = e->EventMouse.Code; evcode = 0; if (isMOVE(code)) { evcode = ttevent_evcode_mouse_move; } else if (isPRESS(code)) { switch (code & PRESS_ANY) { case PRESS_LEFT: evcode = ttevent_evcode_mouse_press_1; break; case PRESS_MIDDLE: evcode = ttevent_evcode_mouse_press_2; break; case PRESS_RIGHT: evcode = ttevent_evcode_mouse_press_3; break; #ifdef HOLD_WHEEL_REV case PRESS_WHEEL_REV: evcode = ttevent_evcode_mouse_press_4; break; #endif #ifdef HOLD_WHEEL_FWD case PRESS_WHEEL_FWD: evcode = ttevent_evcode_mouse_press_5; break; #endif default: /* unknown code! */ return; } } else if (isRELEASE(code)) { switch (code & RELEASE_ANY) { case RELEASE_LEFT: evcode = ttevent_evcode_mouse_release_1; break; case RELEASE_MIDDLE: evcode = ttevent_evcode_mouse_release_2; break; case RELEASE_RIGHT: evcode = ttevent_evcode_mouse_release_3; break; #ifdef HOLD_WHEEL_REV case RELEASE_WHEEL_REV: evcode = ttevent_evcode_mouse_release_4; break; #endif #ifdef HOLD_WHEEL_FWD case RELEASE_WHEEL_FWD: evcode = ttevent_evcode_mouse_release_5; break; #endif default: /* unknown code! */ return; } } else { /* unknown code! */ return; } if ((code & HOLD_ANY)) { evcode |= (code & HOLD_LEFT ? ttevent_evcode_mouse_hold_1 : 0) | (code & HOLD_MIDDLE ? ttevent_evcode_mouse_hold_2 : 0) | (code & HOLD_RIGHT ? ttevent_evcode_mouse_hold_3 : 0) | #ifdef HOLD_WHEEL_REV (code & HOLD_WHEEL_REV ? ttevent_evcode_mouse_hold_4 : 0) | #endif #ifdef HOLD_WHEEL_FWD (code & HOLD_WHEEL_FWD ? ttevent_evcode_mouse_hold_5 : 0) | #endif 0; } if (evcode >= ttevent_evcode_mouse_first && evcode <= ttevent_evcode_mouse_last && (ev = (ttevent)Create4_tteventbig (ttevent_evtype_mouse, evcode, e->EventMouse.ShiftFlags, e->EventMouse.X, e->EventMouse.Y, 0, 0))) { FireEvent(ev, (ttcomponent)o); /* FireEvent also deletes ev */ } } } static ttcallback target()_AddCommonCallbacks_ttanybutton(ttanybutton o) { ttcallback l[5]; byte i = 0; void *id = (void *)OBJ2ID(o); if ((l[i] = target()_AddCommonCallbacks_ttwidget((ttwidget)o)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)CALL(AddMouseListener, o->native, MOVE_MOUSE, 0, (tfn_listener)target()_MouseCallback_ttanybutton, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)CALL(AddMouseListener, o->native, PRESS_LEFT, 0, (tfn_listener)target()_MouseCallback_ttanybutton, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)CALL(AddMouseListener, o->native, MOVE_MOUSE|HOLD_LEFT, 0, (tfn_listener)target()_MouseCallback_ttanybutton, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)CALL(AddMouseListener, o->native, RELEASE_LEFT, 0, (tfn_listener)target()_MouseCallback_ttanybutton, id))) { return l[i]; } while (i) { TDEL(l[i]); i--; } return NULL; } static BUILD(ttanybutton) { /* calculate o->w and o->h using theme: */ o->Class->CacheThemeShape(o); if (TW_NOID != (o->native = CALL(CreateWidget, o->w, o->h, TW_WIDGET_WANT_MOUSE|TW_WIDGET_WANT_MOUSE_MOTION|TW_WIDGET_AUTO_FOCUS, TW_WIDGETFL_USEEXPOSE, 0, 0, o->col))) { if (target()_AddCommonCallbacks_ttanybutton((ttanybutton)o)) { target()_AtBuild_ttvisible((ttvisible)o); return o; } } return NULL; } /* ttbutton */ /* ttcheckbutton */ /* ttradiobutton */ /* ttscrollbar */ /* ttslider */ /* ttscrollpane */ /* ttwindow */ static BUILD(ttwindow) { if (TW_NOID != (o->native = CALL(CreateWindow, o->title ? TTLenStr(o->title) : 0, o->title, NULL, TW_NOID, o->col, TW_LINECURSOR, TW_WINDOW_DRAG|TW_WINDOW_WANT_CHANGES|TW_WINDOW_WANT_KEYS| TW_WINDOW_WANT_MOUSE|TW_WINDOW_WANT_MOUSE_MOTION|TW_WIDGET_AUTO_FOCUS, TW_WINDOWFL_USEEXPOSE|TW_WINDOWFL_CURSOR_ON|TW_WINDOWFL_BORDERLESS, o->w, o->h, 0))) { if (target()_AddCommonCallbacks_ttwidget((ttwidget)o)) { target()_AtBuild_ttvisible((ttvisible)o); return o; } } return NULL; } /* ttframe */ static void target()_AskCloseCallback_ttframe(tevent_any ev, tobj id) { ttframe o = ID2(ttframe,id); if (o) FireSimpleEvent((ttcomponent)o, ttevent_evtype_askclose); } static ttcallback target()_AddAskCloseCallback_ttframe(ttframe o) { ttcallback l; opaque id = OBJ2ID(o); if ((l = Create_ttcallback((ttcomponent)o))) { if ((l->native = (opaque)CALL(AddGadgetListener, o->native, 0 /*CLOSE code*/, (tfn_listener)target()_AskCloseCallback_ttframe, (void *)id))) return l; TDEL(l); } return NULL; } static BUILD(ttframe) { /* ttframe are non-visible when created */ o->vflags &= ~ttvisible_vflags_visible; if (TW_NOID != (o->native = CALL(CreateWindow, o->title ? TTLenStr(o->title) : 0, o->title, NULL, myMenubar_n(o), o->col, TW_LINECURSOR, TW_WINDOW_DRAG|TW_WINDOW_RESIZE|TW_WINDOW_CLOSE|TW_WINDOW_WANT_CHANGES| TW_WINDOW_WANT_KEYS|TW_WINDOW_WANT_MOUSE|TW_WINDOW_WANT_MOUSE_MOTION|TW_WIDGET_AUTO_FOCUS, TW_WINDOWFL_USEEXPOSE|TW_WINDOWFL_CURSOR_ON, o->w, o->h, 0)) && target()_AddCommonCallbacks_ttwidget((ttwidget)o) && target()_AddAskCloseCallback_ttframe(o)) { target()_AtBuild_ttvisible((ttvisible)o); o->Class->AddTo(o, (ttvisible)TClass_ttnative->GetRoot(), 0); return o; } return NULL; } /* * HACK WARNING: libtw does not support non-visible * top-level widgets, so we emulate them with TwUnmapWidget(). * This is why we override AddTo_ttframe() and SetVisible_ttframe() */ static void DEF(AddTo_ttframe)(ttframe o, ttvisible parent, ttany constraint) { if (parent && !o->parent) { /* prepend to list */ if ((o->next = parent->child_first)) parent->child_first->prev = (ttvisible)o; else parent->child_last = (ttvisible)o; parent->child_first = (ttvisible)o; o->prev = NULL; o->parent = parent; if (o->vflags & ttvisible_vflags_visible) CALL(MapWidget, o->native, parent->native); } } static void DEF(SetVisible_ttframe)(ttframe o, byte on_off) { on_off = !!on_off; if (on_off != !!(o->vflags & ttvisible_vflags_visible)) { o->vflags ^= ttvisible_vflags_visible; if (o->parent) { if (on_off) CALL(MapWidget, o->native, o->parent->native); else CALL(UnMapWidget, o->native); } } } static ttbyte DEF(SetTitle_ttframe)(ttframe o, TT_ARG_READ ttbyte *title) { if (FNDEFAULT(ttframe)->SetTitle(o, title)) { CALL(SetTitleWindow, o->native, o->title_len, o->title); return TT_TRUE; } return TT_FALSE; } static void DEF(BuiltinRepaint_ttframe)(ttframe o, dat x, dat y, dat w, dat h) { CALL(DrawTCellWidget, o->native, w, h, x, y, w, NULL); } /* ttscroller */ /* ttmenuitem */ static void DEF(AddTo_ttmenuitem)(ttmenuitem o, ttvisible parent, ttany constraint) { /* append */ tobj Code; if (parent && !o->parent && TTAssert(IS(ttmenu,parent)) && (o->name || (o->name = TTCloneStr("")))) { /* hack warning: this is dirty */ Code = OBJ2ID(o) + 1; while (Code && ((udat)Code == 0 || (udat)Code >= TW_COD_RESERVED)) Code >>= (8*sizeof(udat)); if (!(udat)Code) Code = 1 + (rand() & 0xFFF); o->native = CALL(Row4Menu, parent->target_private, Code, *o->name ? (o->vflags & ttanybutton_vflags_disabled) ? TW_ROW_ACTIVE : TW_ROW_INACTIVE : TW_ROW_IGNORE, strlen(o->name), o->name); FNDEFAULT(ttmenuitem)->AddTo(o, parent, constraint); } } static void DEF(Remove_ttmenuitem)(ttmenuitem o) { if (o->parent) { FNDEFAULT(ttmenuitem)->Remove(o); if (TW_NOID != o->native) CALL(DeleteObj, o->native); } } /* ttcheckmenuitem */ /* ttradiomenuitem */ /* ttmenu */ static void DEF(AddTo_ttmenu)(ttmenu o, ttvisible parent, ttany constraint) { if (!o->parent && parent && TTAssert(IS(ttmenu,parent) || IS(ttmenubar,parent)) && (o->name || (o->name = TTCloneStr("")))) { if (!o->menubar) { if (IS(ttmenubar,parent)) o->menubar = (ttmenubar)parent; else if (IS(ttmenu,parent)) o->menubar = ((ttmenu)parent)->menubar; } if (TW_NOID != (o->target_private = CALL(Create4MenuWindow, myMenubar_n(o))) && TW_NOID != (o->native = CALL(Item4Menu, parent->native, o->target_private, !(o->vflags & ttanybutton_vflags_disabled), strlen(o->name), o->name))) { FNDEFAULT(ttmenu)->AddTo(o, parent, constraint); } } } static void DEF(Remove_ttmenu)(ttmenu o) { if (o->parent) { FNDEFAULT(ttmenu)->Remove(o); if (o->target_private != TW_NOID) { CALL(DeleteObj, o->target_private); o->target_private = TW_NOID; } if (o->native != TW_NOID) { CALL(DeleteObj, o->native); o->native = TW_NOID; } } } /* ttmenubar */ static BUILD(ttmenubar) { tttheme t = myTheme(o); if (TW_NOID != (o->native = CALL(CreateMenu, t->bg[tttheme_bg_menu_normal], t->bg[tttheme_bg_menu_select], t->bg[tttheme_bg_menu_disabled], t->bg[tttheme_bg_menu_selectdisabled], t->bg[tttheme_bg_menu_shcut], t->bg[tttheme_bg_menu_selectshcut], 0))) { CALL(Item4MenuCommon, o->native); target()_AtBuild_ttvisible((ttvisible)o); return o; } return NULL; } /* ttanytext */ /* tttextfield */ /* tttextarea */ /* tttheme */ /* ttapplication */ static BUILD(ttapplication) { if (o->name && TW_NOID != (o->native = CALL(CreateMsgPort, strlen(o->name), o->name))) return o; return NULL; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/twin_hw_h������������������������������������������������������������������0000664�0000000�0000000�00000002115�13775351206�0016707�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������static ttbyte HWDEF(Sync)(void) { return CALL(Sync); } static ttbyte HWDEF(Flush)(void) { return CALL(Flush); } static ttbyte HWDEF(TimidFlush)(void) { return CALL(TimidFlush); } static ttbyte HWDEF(MainLoopOnce)(ttbyte wait) { tmsg Msg; /* loop until all already queued messages are dispatched */ do { if ((Msg = CALL(CloneReadMsg, wait))) { CALL(DispatchMsg, Msg); CALL(FreeMem, Msg); } } while (CALL(PendingMsg)); return !CALL(InPanic); } static void HWDEF(DeleteCallback)(ttcallback o) { if (o->native != (opaque)TW_NOID) CALL(DeleteListener, (tlistener)(opaque)o->native); } static void HWDEF(Close)(void) { CALL(Close); } static int HWDEF(ConnectionFd)(void) { return CALL(ConnectionFd); } static ttuint HWDEF(GetErrno)(void) { return SYM(Errno); } static ttuint HWDEF(GetErrnoDetail)(void) { return SYM(ErrnoDetail); } static TT_CONST ttbyte *HWDEF(StrError)(ttuint E) { return CALL(StrError, E); } static TT_CONST ttbyte *HWDEF(StrErrorDetail)(ttuint E, ttuint S) { return CALL(StrErrorDetail, E, S); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/twin_m4.c������������������������������������������������������������������0000664�0000000�0000000�00000216663�13775351206�0016542�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from twin_c by m4/hw.m4h, do not edit! */ /* * twin_m4.c -- implementation of libTT methods on "twin" target display * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is twin_c and is preprocessed by m4 to produce twin_m4.c * * It must be a valid m4 file, and must produce a valid C file. * */ #include <Tw/Tw.h> #include <Tw/Twavl.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include <Tw/Twerrno.h> /* order is crucial here! */ #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #endif /* include our internal copy of TT.h instead of the public one */ #include "TT.h" #include <TT/TTerrno.h> #include "mutex.h" #include "TTextern.h" #include "TTassert.h" #include "utils.h" #include "inlines.h" #include "seterrno.h" #include "theme.h" #include "common_m4.h" static s_ttclasses twin_TTClasses; /* * WARNING! * * this file is twin_h and is included by m4 files twin_c and twin_detunnel_c * * It must be a valid m4 file, and must produce a valid C file. * */ /* * We need to write down only overloaded methods. */ /* ttobj */ /* ttobject */ static void twin_Break_ttobject(ttobject o) { if (o) { if (o->native != TW_NOID) { TwDeleteObj(o->native); o->native = TW_NOID; } /* call null_Break_ttobj: */ TClass_default(ttobject)->Break(o); } } /* ttvisible */ static void twin_AtBuild_ttvisible(ttvisible o) { /* * add all children of this ttvisible: * they have not been added yet, since we just * called Build() on the parent ttvisible */ opaque native = o->native, child_native; ttvisible child = o->child_first; if (IS(ttwidget, o) && native != TW_NOID) while (child) { if ((child_native = child->native)) TwMapWidget(child_native, native); child = child->next; } } /* ttnative */ static ttnative twin_GetRoot_ttnative(void) { return Create_ttnative(TwFirstScreen()); } static void twin_Break_ttnative(ttnative o) { o->native = TW_NOID; TClass_default(ttnative)->Break(o); } static ttshort twin_GetW_ttnative(ttnative o) { ttnative r = TClass_ttnative->GetRoot(); if (r && r->native == o->native) return TwGetDisplayWidth(); return TwStat(o->native, TWS_widget_Width); } static ttshort twin_GetH_ttnative(ttnative o) { ttnative r = TClass_ttnative->GetRoot(); if (r && r->native == o->native) return TwGetDisplayHeight(); return TwStat(o->native, TWS_widget_Height); } /* ttwidget */ static void twin_BuiltinRepaint_ttwidget(ttwidget o, dat x, dat y, dat w, dat h) { TwDrawTCellWidget(o->native, w, h, x, y, w, NULL); } static void twin_ExposeCallback_ttwidget(tevent_any e, void *id) { ttwidget o = ID2(ttwidget, (opaque)id); if (o) Expose_ttvisible((ttvisible)o, e->EventWidget.X, e->EventWidget.Y, e->EventWidget.XWidth, e->EventWidget.YWidth); } static void twin_ResizeCallback_ttwidget(tevent_any e, void *id) { ttwidget o = ID2(ttwidget, (opaque)id); if (o) { FIRE_EVENT(o->w = e->EventWidget.XWidth, o, ttwidget_w, e->EventWidget.XWidth, o->w); FIRE_EVENT(o->h = e->EventWidget.YWidth, o, ttwidget_h, e->EventWidget.YWidth, o->h); } } static ttcallback twin_AddCommonCallbacks_ttwidget(ttwidget o) { ttcallback l[5]; byte i = 0; void *id = (void *)OBJ2ID(o); if ((l[i] = Create_ttcallback((ttcomponent)o)) && (l[i]->native = (opaque)TwAddWidgetListener( o->native, TW_MSG_WIDGET_EXPOSE, (tfn_listener)twin_ExposeCallback_ttwidget, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)TwAddWidgetListener( o->native, TW_MSG_WIDGET_RESIZE, (tfn_listener)twin_ResizeCallback_ttwidget, id))) { return l[i]; } while (i) { TDEL(l[i]); i--; } return NULL; } static ttwidget twin_Build_ttwidget(ttwidget o) { tttheme t = myTheme(o); trune f = t->fill; tcolor c = o->col; if (TW_NOID != (o->native = TwCreateWidget(o->w, o->h, 0, TW_WIDGETFL_USEFILL, 0, TW_MAXDAT, TCELL(c, f)))) { twin_AtBuild_ttvisible((ttvisible)o); return o; } return NULL; } static void twin_AddTo_ttwidget(ttwidget o, ttvisible parent, ttany constraint) { if (parent && !o->parent) { TClass_default(ttwidget)->AddTo(o, parent, constraint); if (o->native != TW_NOID && parent->native != TW_NOID) TwMapWidget(o->native, parent->native); } } static void twin_SetVisible_ttwidget(ttwidget o, ttbyte visible) { ttuint isvisible, wasvisibile; wasvisibile = o->vflags & ttvisible_vflags_visible; TClass_default(ttwidget)->SetVisible(o, visible); isvisible = o->vflags & ttvisible_vflags_visible; if (isvisible != wasvisibile && o->native != TW_NOID) TwSetVisibleWidget(o->native, visible); } static void twin_Remove_ttwidget(ttwidget o) { if (o->parent) { TClass_default(ttwidget)->Remove(o); if (o->native != TW_NOID) TwUnMapWidget(o->native); } } static ttbyte twin_SetXY_ttwidget(ttwidget o, ttshort x, ttshort y) { TwSetXYWidget(o->native, o->x = x, o->y = y); return TT_TRUE; } static ttbyte twin_SetWH_ttwidget(ttwidget o, ttshort w, ttshort h) { TwResizeWidget(o->native, o->w = w, o->h = h); return TT_TRUE; } static ttbyte twin_SetXl_ttwidget(ttwidget o, ttint xl) { TwScrollWidget(o->native, xl - o->xl, 0); o->xl = xl; return TT_TRUE; } static ttbyte twin_SetYl_ttwidget(ttwidget o, ttint yl) { TwScrollWidget(o->native, 0, yl - o->yl); o->yl = yl; return TT_TRUE; } static void twin_Draw_ttwidget(ttwidget o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_CONST ttbyte *asciidata, TT_CONST ttfont *fontdata, TT_CONST ttattr *attrdata) { TwDraw2Widget(o->native, w, h, x, y, pitch, asciidata, fontdata, attrdata); } /* ttlabel */ static ttlabel twin_Build_ttlabel(ttlabel o) { if (TW_NOID != (o->native = TwCreateWidget(o->text_len, 1, 0, TW_WIDGETFL_USEEXPOSE, 0, TW_MAXDAT, TCELL(o->col, myTheme(o)->fill)))) { if (twin_AddCommonCallbacks_ttwidget((ttwidget)o)) { twin_AtBuild_ttvisible((ttvisible)o); return o; } } return NULL; } static void twin_Invalidate_ttwidget(ttwidget o) { tttheme t; TClass_default(ttwidget)->Invalidate(o); t = myTheme(o); TwSetFillWidget(o->native, TCELL(o->col, t->fill)); } static void twin_BuiltinRepaint_ttlabel(ttlabel o, dat x, dat y, dat w, dat h) { if (y == 0) { if (x < o->text_len) TwDrawTRuneWidget(o->native, TT_MIN2(w, o->text_len - x), 1, x, 0, o->text_len, o->text + x); if (x + w > o->text_len) TwDrawTRuneWidget(o->native, o->text_len - x - w, 1, o->text_len, 0, 0, NULL); } } /* ttbuttongroup */ /* ttanybutton */ static void twin_Invalidate_ttanybutton(ttanybutton o) { /* needed because we have overridden Invalidate_ttwidget above */ ttbyte i; #ifdef DEBUG_TT_HW_TWIN fprintf(stderr, "twin_Invalidate_ttanybutton(o=0x%X)\n", (unsigned)o->id); #endif for (i = 0; i < sizeof(o->theme_shape) / sizeof(o->theme_shape[0]); i++) { if (o->theme_shape[i].attr) { TTFreeMem(o->theme_shape[i].attr); o->theme_shape[i].attr = NULL; } } } static void twin_BuiltinRepaint_ttanybutton(ttanybutton o, dat x, dat y, dat w, dat h) { ttattr *t; dat tw, th; ttuint i; i = o->Class->CacheThemeShape(o); if (i != (ttuint)-1) { t = o->theme_shape[i].attr; tw = o->theme_shape[i].width; th = o->theme_shape[i].height; if (h + y > th) h = th - y; if (w + x > tw) w = tw - x; if (h > 0 && w > 0 && y < th && x < tw) TwDrawTCellWidget(o->native, TT_MIN2(w, tw - x), TT_MIN2(h, th - y), x, y, tw, t + x + (y * tw)); } else if (o->text && o->Class == TClass_ttanybutton) { if (h + y > o->text_height) h = o->text_height - y; if (w + x > o->text_width) w = o->text_width - x; if (h > 0 && w > 0 && y < o->text_height && x < o->text_width) TwDrawTCellWidget(o->native, TT_MIN2(w, o->text_width - x), TT_MIN2(h, o->text_height - y), x, y, o->text_width, o->text + x + (y * o->text_width)); } else TwDrawTCellWidget(o->native, w, h, x, y, w, NULL); } static void twin_MouseCallback_ttanybutton(tevent_any e, tobj id) { ttanybutton o = ID2(ttanybutton, id); ttevent ev; ttuint evcode; udat code; /* * libtw and libTT have the different encoding for mouse event codes, * but shiftflags are the same */ if (o) { code = e->EventMouse.Code; evcode = 0; if (isMOVE(code)) { evcode = ttevent_evcode_mouse_move; } else if (isPRESS(code)) { switch (code & PRESS_ANY) { case PRESS_LEFT: evcode = ttevent_evcode_mouse_press_1; break; case PRESS_MIDDLE: evcode = ttevent_evcode_mouse_press_2; break; case PRESS_RIGHT: evcode = ttevent_evcode_mouse_press_3; break; #ifdef HOLD_WHEEL_REV case PRESS_WHEEL_REV: evcode = ttevent_evcode_mouse_press_4; break; #endif #ifdef HOLD_WHEEL_FWD case PRESS_WHEEL_FWD: evcode = ttevent_evcode_mouse_press_5; break; #endif default: /* unknown code! */ return; } } else if (isRELEASE(code)) { switch (code & RELEASE_ANY) { case RELEASE_LEFT: evcode = ttevent_evcode_mouse_release_1; break; case RELEASE_MIDDLE: evcode = ttevent_evcode_mouse_release_2; break; case RELEASE_RIGHT: evcode = ttevent_evcode_mouse_release_3; break; #ifdef HOLD_WHEEL_REV case RELEASE_WHEEL_REV: evcode = ttevent_evcode_mouse_release_4; break; #endif #ifdef HOLD_WHEEL_FWD case RELEASE_WHEEL_FWD: evcode = ttevent_evcode_mouse_release_5; break; #endif default: /* unknown code! */ return; } } else { /* unknown code! */ return; } if ((code & HOLD_ANY)) { evcode |= (code & HOLD_LEFT ? ttevent_evcode_mouse_hold_1 : 0) | (code & HOLD_MIDDLE ? ttevent_evcode_mouse_hold_2 : 0) | (code & HOLD_RIGHT ? ttevent_evcode_mouse_hold_3 : 0) | #ifdef HOLD_WHEEL_REV (code & HOLD_WHEEL_REV ? ttevent_evcode_mouse_hold_4 : 0) | #endif #ifdef HOLD_WHEEL_FWD (code & HOLD_WHEEL_FWD ? ttevent_evcode_mouse_hold_5 : 0) | #endif 0; } if (evcode >= ttevent_evcode_mouse_first && evcode <= ttevent_evcode_mouse_last && (ev = (ttevent)Create4_tteventbig(ttevent_evtype_mouse, evcode, e->EventMouse.ShiftFlags, e->EventMouse.X, e->EventMouse.Y, 0, 0))) { FireEvent(ev, (ttcomponent)o); /* FireEvent also deletes ev */ } } } static ttcallback twin_AddCommonCallbacks_ttanybutton(ttanybutton o) { ttcallback l[5]; byte i = 0; void *id = (void *)OBJ2ID(o); if ((l[i] = twin_AddCommonCallbacks_ttwidget((ttwidget)o)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)TwAddMouseListener( o->native, MOVE_MOUSE, 0, (tfn_listener)twin_MouseCallback_ttanybutton, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)TwAddMouseListener( o->native, PRESS_LEFT, 0, (tfn_listener)twin_MouseCallback_ttanybutton, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)TwAddMouseListener(o->native, MOVE_MOUSE | HOLD_LEFT, 0, (tfn_listener)twin_MouseCallback_ttanybutton, id)) && (i++, (l[i] = Create_ttcallback((ttcomponent)o))) && (l[i]->native = (opaque)TwAddMouseListener( o->native, RELEASE_LEFT, 0, (tfn_listener)twin_MouseCallback_ttanybutton, id))) { return l[i]; } while (i) { TDEL(l[i]); i--; } return NULL; } static ttanybutton twin_Build_ttanybutton(ttanybutton o) { /* calculate o->w and o->h using theme: */ o->Class->CacheThemeShape(o); if (TW_NOID != (o->native = TwCreateWidget( o->w, o->h, TW_WIDGET_WANT_MOUSE | TW_WIDGET_WANT_MOUSE_MOTION | TW_WIDGET_AUTO_FOCUS, TW_WIDGETFL_USEEXPOSE, 0, 0, o->col))) { if (twin_AddCommonCallbacks_ttanybutton((ttanybutton)o)) { twin_AtBuild_ttvisible((ttvisible)o); return o; } } return NULL; } /* ttbutton */ /* ttcheckbutton */ /* ttradiobutton */ /* ttscrollbar */ /* ttslider */ /* ttscrollpane */ /* ttwindow */ static ttwindow twin_Build_ttwindow(ttwindow o) { if (TW_NOID != (o->native = TwCreateWindow( o->title ? TTLenStr(o->title) : 0, o->title, NULL, TW_NOID, o->col, TW_LINECURSOR, TW_WINDOW_DRAG | TW_WINDOW_WANT_CHANGES | TW_WINDOW_WANT_KEYS | TW_WINDOW_WANT_MOUSE | TW_WINDOW_WANT_MOUSE_MOTION | TW_WIDGET_AUTO_FOCUS, TW_WINDOWFL_USEEXPOSE | TW_WINDOWFL_CURSOR_ON | TW_WINDOWFL_BORDERLESS, o->w, o->h, 0))) { if (twin_AddCommonCallbacks_ttwidget((ttwidget)o)) { twin_AtBuild_ttvisible((ttvisible)o); return o; } } return NULL; } /* ttframe */ static void twin_AskCloseCallback_ttframe(tevent_any ev, tobj id) { ttframe o = ID2(ttframe, id); if (o) FireSimpleEvent((ttcomponent)o, ttevent_evtype_askclose); } static ttcallback twin_AddAskCloseCallback_ttframe(ttframe o) { ttcallback l; opaque id = OBJ2ID(o); if ((l = Create_ttcallback((ttcomponent)o))) { if ((l->native = (opaque)TwAddGadgetListener( o->native, 0 /*CLOSE code*/, (tfn_listener)twin_AskCloseCallback_ttframe, (void *)id))) return l; TDEL(l); } return NULL; } static ttframe twin_Build_ttframe(ttframe o) { /* ttframe are non-visible when created */ o->vflags &= ~ttvisible_vflags_visible; if (TW_NOID != (o->native = TwCreateWindow( o->title ? TTLenStr(o->title) : 0, o->title, NULL, myMenubar_n(o), o->col, TW_LINECURSOR, TW_WINDOW_DRAG | TW_WINDOW_RESIZE | TW_WINDOW_CLOSE | TW_WINDOW_WANT_CHANGES | TW_WINDOW_WANT_KEYS | TW_WINDOW_WANT_MOUSE | TW_WINDOW_WANT_MOUSE_MOTION | TW_WIDGET_AUTO_FOCUS, TW_WINDOWFL_USEEXPOSE | TW_WINDOWFL_CURSOR_ON, o->w, o->h, 0)) && twin_AddCommonCallbacks_ttwidget((ttwidget)o) && twin_AddAskCloseCallback_ttframe(o)) { twin_AtBuild_ttvisible((ttvisible)o); o->Class->AddTo(o, (ttvisible)TClass_ttnative->GetRoot(), 0); return o; } return NULL; } /* * HACK WARNING: libtw does not support non-visible * top-level widgets, so we emulate them with TwUnmapWidget(). * This is why we override AddTo_ttframe() and SetVisible_ttframe() */ static void twin_AddTo_ttframe(ttframe o, ttvisible parent, ttany constraint) { if (parent && !o->parent) { /* prepend to list */ if ((o->next = parent->child_first)) parent->child_first->prev = (ttvisible)o; else parent->child_last = (ttvisible)o; parent->child_first = (ttvisible)o; o->prev = NULL; o->parent = parent; if (o->vflags & ttvisible_vflags_visible) TwMapWidget(o->native, parent->native); } } static void twin_SetVisible_ttframe(ttframe o, byte on_off) { on_off = !!on_off; if (on_off != !!(o->vflags & ttvisible_vflags_visible)) { o->vflags ^= ttvisible_vflags_visible; if (o->parent) { if (on_off) TwMapWidget(o->native, o->parent->native); else TwUnMapWidget(o->native); } } } static ttbyte twin_SetTitle_ttframe(ttframe o, TT_ARG_READ ttbyte *title) { if (TClass_default(ttframe)->SetTitle(o, title)) { TwSetTitleWindow(o->native, o->title_len, o->title); return TT_TRUE; } return TT_FALSE; } static void twin_BuiltinRepaint_ttframe(ttframe o, dat x, dat y, dat w, dat h) { TwDrawTCellWidget(o->native, w, h, x, y, w, NULL); } /* ttscroller */ /* ttmenuitem */ static void twin_AddTo_ttmenuitem(ttmenuitem o, ttvisible parent, ttany constraint) { /* append */ tobj Code; if (parent && !o->parent && TTAssert(IS(ttmenu, parent)) && (o->name || (o->name = TTCloneStr("")))) { /* hack warning: this is dirty */ Code = OBJ2ID(o) + 1; while (Code && ((udat)Code == 0 || (udat)Code >= TW_COD_RESERVED)) Code >>= (8 * sizeof(udat)); if (!(udat)Code) Code = 1 + (rand() & 0xFFF); o->native = TwRow4Menu(parent->target_private, Code, *o->name ? (o->vflags & ttanybutton_vflags_disabled) ? TW_ROW_ACTIVE : TW_ROW_INACTIVE : TW_ROW_IGNORE, strlen(o->name), o->name); TClass_default(ttmenuitem)->AddTo(o, parent, constraint); } } static void twin_Remove_ttmenuitem(ttmenuitem o) { if (o->parent) { TClass_default(ttmenuitem)->Remove(o); if (TW_NOID != o->native) TwDeleteObj(o->native); } } /* ttcheckmenuitem */ /* ttradiomenuitem */ /* ttmenu */ static void twin_AddTo_ttmenu(ttmenu o, ttvisible parent, ttany constraint) { if (!o->parent && parent && TTAssert(IS(ttmenu, parent) || IS(ttmenubar, parent)) && (o->name || (o->name = TTCloneStr("")))) { if (!o->menubar) { if (IS(ttmenubar, parent)) o->menubar = (ttmenubar)parent; else if (IS(ttmenu, parent)) o->menubar = ((ttmenu)parent)->menubar; } if (TW_NOID != (o->target_private = TwCreate4MenuWindow(myMenubar_n(o))) && TW_NOID != (o->native = TwItem4Menu(parent->native, o->target_private, !(o->vflags & ttanybutton_vflags_disabled), strlen(o->name), o->name))) { TClass_default(ttmenu)->AddTo(o, parent, constraint); } } } static void twin_Remove_ttmenu(ttmenu o) { if (o->parent) { TClass_default(ttmenu)->Remove(o); if (o->target_private != TW_NOID) { TwDeleteObj(o->target_private); o->target_private = TW_NOID; } if (o->native != TW_NOID) { TwDeleteObj(o->native); o->native = TW_NOID; } } } /* ttmenubar */ static ttmenubar twin_Build_ttmenubar(ttmenubar o) { tttheme t = myTheme(o); if (TW_NOID != (o->native = TwCreateMenu( t->bg[tttheme_bg_menu_normal], t->bg[tttheme_bg_menu_select], t->bg[tttheme_bg_menu_disabled], t->bg[tttheme_bg_menu_selectdisabled], t->bg[tttheme_bg_menu_shcut], t->bg[tttheme_bg_menu_selectshcut], 0))) { TwItem4MenuCommon(o->native); twin_AtBuild_ttvisible((ttvisible)o); return o; } return NULL; } /* ttanytext */ /* tttextfield */ /* tttextarea */ /* tttheme */ /* ttapplication */ static ttapplication twin_Build_ttapplication(ttapplication o) { if (o->name && TW_NOID != (o->native = TwCreateMsgPort(strlen(o->name), o->name))) return o; return NULL; } static ttbyte twin_Sync(void) { return TwSync(); } static ttbyte twin_Flush(void) { return TwFlush(); } static ttbyte twin_TimidFlush(void) { return TwTimidFlush(); } static ttbyte twin_MainLoopOnce(ttbyte wait) { tmsg Msg; /* loop until all already queued messages are dispatched */ do { if ((Msg = TwCloneReadMsg(wait))) { TwDispatchMsg(Msg); TwFreeMem(Msg); } } while (TwPendingMsg()); return !TwInPanic(); } static void twin_DeleteCallback(ttcallback o) { if (o->native != (opaque)TW_NOID) TwDeleteListener((tlistener)(opaque)o->native); } static void twin_Close(void) { TwClose(); } static int twin_ConnectionFd(void) { return TwConnectionFd(); } static ttuint twin_GetErrno(void) { return TwErrno; } static ttuint twin_GetErrnoDetail(void) { return TwErrnoDetail; } static TT_CONST ttbyte *twin_StrError(ttuint E) { return TwStrError(E); } static TT_CONST ttbyte *twin_StrErrorDetail(ttuint E, ttuint S) { return TwStrErrorDetail(E, S); } TW_DECL_MAGIC(TT_Tw_magic); #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_twin_InitHW(tthw *HW) #endif { /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = &twin_TTClasses.HW; TwConfigMalloc(TTAllocMem, TTReallocMem, TTFreeMem); if (TwCheckMagic(TT_Tw_magic) && TwOpen(TTD.HWOptions)) return &twin_TTClasses; FAIL(TwErrno, TwErrnoDetail); return (ttclasses)0; } /* * use default values for methods not implemented in twin_c * * null display target MUST IMPLEMENT ALL METHODS, even if as stubs. */ static s_ttclasses twin_TTClasses = { { Class_ttobj, id_ttobj, magicmask_ttobj, magic_ttobj, size_ttobj, }, { Class_ttclass, id_ttclass, magicmask_ttclass, magic_ttclass, size_ttclass, /* extends ttclass_ttobj */ }, { Class_ttobject, id_ttobject, magicmask_ttobject, magic_ttobject, size_ttobject, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttobject */, (void *)NULL /* UNDEFINED: Build_ttobject */, twin_Break_ttobject, (void *)NULL /* UNDEFINED: Del_ttobject */, }, { Class_ttvector, id_ttvector, magicmask_ttvector, magic_ttvector, size_ttvector, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvector */, (void *)NULL /* UNDEFINED: Build_ttvector */, (void *)NULL /* inherits: Break_ttvector >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttvector */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: GetAt_ttvector */, (void *)NULL /* UNDEFINED: SetAt_ttvector */, (void *)NULL /* UNDEFINED: AddY_ttvector */, (void *)NULL /* UNDEFINED: ContainsValue_ttvector */, (void *)NULL /* UNDEFINED: RemoveRange_ttvector */, }, { Class_ttfield, id_ttfield, magicmask_ttfield, magic_ttfield, size_ttfield, /* extends ttclass_ttobj */ }, { Class_ttmethod, id_ttmethod, magicmask_ttmethod, magic_ttmethod, size_ttmethod, /* extends ttclass_ttobj */ }, { Class_ttevent, id_ttevent, magicmask_ttevent, magic_ttevent, size_ttevent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttevent */, (void *)NULL /* UNDEFINED: Build_ttevent */, (void *)NULL /* inherits: Break_ttevent >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttevent */, /* extends ttclass_ttobject */ }, { Class_tteventbig, id_tteventbig, magicmask_tteventbig, magic_tteventbig, size_tteventbig, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventbig */, (void *)NULL /* UNDEFINED: Build_tteventbig */, (void *)NULL /* inherits: Break_tteventbig >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tteventbig */, /* extends ttclass_ttobject */ /* extends ttclass_ttevent */ }, { Class_ttbitmask, id_ttbitmask, magicmask_ttbitmask, magic_ttbitmask, size_ttbitmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbitmask */, (void *)NULL /* UNDEFINED: Build_ttbitmask */, (void *)NULL /* inherits: Break_ttbitmask >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbitmask */, /* extends ttclass_ttobject */ }, { Class_tteventmask, id_tteventmask, magicmask_tteventmask, magic_tteventmask, size_tteventmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventmask */, (void *)NULL /* UNDEFINED: Build_tteventmask */, (void *)NULL /* inherits: Break_tteventmask >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tteventmask */, /* extends ttclass_ttobject */ }, { Class_ttcallback, id_ttcallback, magicmask_ttcallback, magic_ttcallback, size_ttcallback, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcallback */, (void *)NULL /* UNDEFINED: Build_ttcallback */, (void *)NULL /* inherits: Break_ttcallback >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcallback */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttcallback */, }, { Class_ttlistener, id_ttlistener, magicmask_ttlistener, magic_ttlistener, size_ttlistener, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlistener */, (void *)NULL /* UNDEFINED: Build_ttlistener */, (void *)NULL /* inherits: Break_ttlistener >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlistener */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttlistener */, /* extends ttclass_ttcallback */ (void *)NULL /* UNDEFINED: AddTo_ttlistener */, (void *)NULL /* UNDEFINED: Remove_ttlistener */, }, { Class_tttimer, id_tttimer, magicmask_tttimer, magic_tttimer, size_tttimer, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttimer */, (void *)NULL /* UNDEFINED: Build_tttimer */, (void *)NULL /* inherits: Break_tttimer >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttimer */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_tttimer */, /* extends ttclass_ttcallback */ (void *)NULL /* UNDEFINED: AddTo_tttimer */, (void *)NULL /* UNDEFINED: Remove_tttimer */, /* extends ttclass_ttlistener */ (void *)NULL /* UNDEFINED: SetEnabled_tttimer */, (void *)NULL /* UNDEFINED: IsEnabled_tttimer */, }, { Class_ttcomponent, id_ttcomponent, magicmask_ttcomponent, magic_ttcomponent, size_ttcomponent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcomponent */, (void *)NULL /* UNDEFINED: Build_ttcomponent */, (void *)NULL /* inherits: Break_ttcomponent >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcomponent */, /* extends ttclass_ttobject */ }, { Class_ttdata, id_ttdata, magicmask_ttdata, magic_ttdata, size_ttdata, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttdata */, (void *)NULL /* UNDEFINED: Build_ttdata */, (void *)NULL /* inherits: Break_ttdata >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttdata */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttdata */, (void *)NULL /* UNDEFINED: Remove_ttdata */, }, { Class_ttvisible, id_ttvisible, magicmask_ttvisible, magic_ttvisible, size_ttvisible, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvisible */, (void *)NULL /* UNDEFINED: Build_ttvisible */, (void *)NULL /* inherits: Break_ttvisible >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttvisible */, (void *)NULL /* UNDEFINED: Validate_ttvisible */, (void *)NULL /* UNDEFINED: Remove_ttvisible */, (void *)NULL /* UNDEFINED: Invalidate_ttvisible */, (void *)NULL /* UNDEFINED: SetVisible_ttvisible */, (void *)NULL /* UNDEFINED: SetTheme_ttvisible */, (void *)NULL /* UNDEFINED: Draw_ttvisible */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttvisible */, }, { Class_ttlayout, id_ttlayout, magicmask_ttlayout, magic_ttlayout, size_ttlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlayout */, (void *)NULL /* UNDEFINED: Build_ttlayout */, (void *)NULL /* inherits: Break_ttlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttlayout */, }, { Class_ttboxlayout, id_ttboxlayout, magicmask_ttboxlayout, magic_ttboxlayout, size_ttboxlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttboxlayout */, (void *)NULL /* UNDEFINED: Build_ttboxlayout */, (void *)NULL /* inherits: Break_ttboxlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttboxlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttboxlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttboxlayout */, /* extends ttclass_ttlayout */ }, { Class_ttborderlayout, id_ttborderlayout, magicmask_ttborderlayout, magic_ttborderlayout, size_ttborderlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttborderlayout */, (void *)NULL /* UNDEFINED: Build_ttborderlayout */, (void *)NULL /* inherits: Break_ttborderlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttborderlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttborderlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttborderlayout */, /* extends ttclass_ttlayout */ }, { Class_ttnative, id_ttnative, magicmask_ttnative, magic_ttnative, size_ttnative, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttnative */, (void *)NULL /* UNDEFINED: Build_ttnative */, twin_Break_ttnative, (void *)NULL /* UNDEFINED: Del_ttnative */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttnative */, (void *)NULL /* UNDEFINED: Validate_ttnative */, (void *)NULL /* UNDEFINED: Remove_ttnative */, (void *)NULL /* UNDEFINED: Invalidate_ttnative */, (void *)NULL /* UNDEFINED: SetVisible_ttnative */, (void *)NULL /* UNDEFINED: SetTheme_ttnative */, (void *)NULL /* UNDEFINED: Draw_ttnative */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttnative */, /* extends ttclass_ttvisible */ twin_GetRoot_ttnative, twin_GetW_ttnative, twin_GetH_ttnative, }, { Class_ttwidget, id_ttwidget, magicmask_ttwidget, magic_ttwidget, size_ttwidget, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwidget */, twin_Build_ttwidget, (void *)NULL /* inherits: Break_ttwidget >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttwidget */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ twin_AddTo_ttwidget, (void *)NULL /* UNDEFINED: Validate_ttwidget */, twin_Remove_ttwidget, twin_Invalidate_ttwidget, twin_SetVisible_ttwidget, (void *)NULL /* UNDEFINED: SetTheme_ttwidget */, twin_Draw_ttwidget, twin_BuiltinRepaint_ttwidget, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttwidget */, twin_SetXY_ttwidget, twin_SetWH_ttwidget, twin_SetXl_ttwidget, twin_SetYl_ttwidget, (void *)NULL /* UNDEFINED: SetWl_ttwidget */, (void *)NULL /* UNDEFINED: SetHl_ttwidget */, (void *)NULL /* UNDEFINED: SetTooltip_ttwidget */, }, { Class_ttlabel, id_ttlabel, magicmask_ttlabel, magic_ttlabel, size_ttlabel, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlabel */, twin_Build_ttlabel, (void *)NULL /* inherits: Break_ttlabel >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlabel */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttlabel >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttlabel */, (void *)NULL /* inherits: Remove_ttlabel >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttlabel >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttlabel >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttlabel */, (void *)NULL /* inherits: Draw_ttlabel >> Draw_ttwidget */, twin_BuiltinRepaint_ttlabel, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttlabel */, (void *)NULL /* inherits: SetXY_ttlabel >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttlabel >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttlabel >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttlabel >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttlabel */, (void *)NULL /* UNDEFINED: SetHl_ttlabel */, (void *)NULL /* UNDEFINED: SetTooltip_ttlabel */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetFontD_ttlabel */, }, { Class_tttooltip, id_tttooltip, magicmask_tttooltip, magic_tttooltip, size_tttooltip, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttooltip */, (void *)NULL /* inherits: Build_tttooltip >> Build_ttlabel */, (void *)NULL /* inherits: Break_tttooltip >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttooltip */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttooltip >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttooltip */, (void *)NULL /* inherits: Remove_tttooltip >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_tttooltip >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_tttooltip >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttooltip */, (void *)NULL /* inherits: Draw_tttooltip >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_tttooltip >> BuiltinRepaint_ttlabel */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttooltip */, (void *)NULL /* inherits: SetXY_tttooltip >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttooltip >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttooltip >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttooltip >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_tttooltip */, (void *)NULL /* UNDEFINED: SetHl_tttooltip */, (void *)NULL /* UNDEFINED: SetTooltip_tttooltip */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetFontD_tttooltip */, /* extends ttclass_ttlabel */ (void *)NULL /* UNDEFINED: SetWidget_tttooltip */, }, { Class_ttbuttongroup, id_ttbuttongroup, magicmask_ttbuttongroup, magic_ttbuttongroup, size_ttbuttongroup, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbuttongroup */, (void *)NULL /* UNDEFINED: Build_ttbuttongroup */, (void *)NULL /* inherits: Break_ttbuttongroup >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbuttongroup */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: Add_ttbuttongroup */, (void *)NULL /* UNDEFINED: Remove_ttbuttongroup */, (void *)NULL /* UNDEFINED: SetChecked_ttbuttongroup */, }, { Class_ttanybutton, id_ttanybutton, magicmask_ttanybutton, magic_ttanybutton, size_ttanybutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanybutton */, twin_Build_ttanybutton, (void *)NULL /* inherits: Break_ttanybutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanybutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanybutton */, (void *)NULL /* inherits: Remove_ttanybutton >> Remove_ttwidget */, twin_Invalidate_ttanybutton, (void *)NULL /* inherits: SetVisible_ttanybutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanybutton */, (void *)NULL /* inherits: Draw_ttanybutton >> Draw_ttwidget */, twin_BuiltinRepaint_ttanybutton, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanybutton */, (void *)NULL /* inherits: SetXY_ttanybutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanybutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanybutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanybutton >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttanybutton */, (void *)NULL /* UNDEFINED: SetHl_ttanybutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttanybutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanybutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttanybutton */, }, { Class_ttbutton, id_ttbutton, magicmask_ttbutton, magic_ttbutton, size_ttbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbutton */, (void *)NULL /* inherits: Build_ttbutton >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttbutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttbutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttbutton */, (void *)NULL /* inherits: Remove_ttbutton >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttbutton >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttbutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttbutton */, (void *)NULL /* inherits: Draw_ttbutton >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttbutton >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttbutton */, (void *)NULL /* inherits: SetXY_ttbutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttbutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttbutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttbutton >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttbutton */, (void *)NULL /* UNDEFINED: SetHl_ttbutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttbutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttbutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttbutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttbutton */, }, { Class_ttcheckbutton, id_ttcheckbutton, magicmask_ttcheckbutton, magic_ttcheckbutton, size_ttcheckbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckbutton */, (void *)NULL /* inherits: Build_ttcheckbutton >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttcheckbutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcheckbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttcheckbutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttcheckbutton */, (void *)NULL /* inherits: Remove_ttcheckbutton >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttcheckbutton >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttcheckbutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttcheckbutton */, (void *)NULL /* inherits: Draw_ttcheckbutton >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttcheckbutton >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttcheckbutton */, (void *)NULL /* inherits: SetXY_ttcheckbutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttcheckbutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttcheckbutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttcheckbutton >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetHl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttcheckbutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttcheckbutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttcheckbutton */, /* extends ttclass_ttbutton */ (void *)NULL /* UNDEFINED: SetChecked_ttcheckbutton */, }, { Class_ttradiobutton, id_ttradiobutton, magicmask_ttradiobutton, magic_ttradiobutton, size_ttradiobutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiobutton */, (void *)NULL /* inherits: Build_ttradiobutton >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttradiobutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttradiobutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttradiobutton >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttradiobutton */, (void *)NULL /* inherits: Remove_ttradiobutton >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttradiobutton >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttradiobutton >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttradiobutton */, (void *)NULL /* inherits: Draw_ttradiobutton >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttradiobutton >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttradiobutton */, (void *)NULL /* inherits: SetXY_ttradiobutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttradiobutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttradiobutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttradiobutton >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetHl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttradiobutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttradiobutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttradiobutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttradiobutton */, /* extends ttclass_ttbutton */ (void *)NULL /* UNDEFINED: SetChecked_ttradiobutton */, /* extends ttclass_ttcheckbutton */ }, { Class_ttanyscroll, id_ttanyscroll, magicmask_ttanyscroll, magic_ttanyscroll, size_ttanyscroll, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanyscroll */, (void *)NULL /* inherits: Build_ttanyscroll >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttanyscroll >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanyscroll */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanyscroll >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanyscroll */, (void *)NULL /* inherits: Remove_ttanyscroll >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttanyscroll >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttanyscroll >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanyscroll */, (void *)NULL /* inherits: Draw_ttanyscroll >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttanyscroll >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanyscroll */, (void *)NULL /* inherits: SetXY_ttanyscroll >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanyscroll >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanyscroll >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanyscroll >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetHl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetTooltip_ttanyscroll */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanyscroll */, (void *)NULL /* UNDEFINED: SetAttrD_ttanyscroll */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttanyscroll */, (void *)NULL /* UNDEFINED: SetState_ttanyscroll */, (void *)NULL /* UNDEFINED: SetOrientation_ttanyscroll */, (void *)NULL /* UNDEFINED: SetSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetRealSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetViewSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetPosition_ttanyscroll */, }, { Class_ttscrollbar, id_ttscrollbar, magicmask_ttscrollbar, magic_ttscrollbar, size_ttscrollbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollbar */, (void *)NULL /* inherits: Build_ttscrollbar >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttscrollbar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscrollbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollbar >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscrollbar */, (void *)NULL /* inherits: Remove_ttscrollbar >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttscrollbar >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttscrollbar >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscrollbar */, (void *)NULL /* inherits: Draw_ttscrollbar >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttscrollbar >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscrollbar */, (void *)NULL /* inherits: SetXY_ttscrollbar >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttscrollbar >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttscrollbar >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscrollbar >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetHl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetTooltip_ttscrollbar */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttscrollbar */, (void *)NULL /* UNDEFINED: SetAttrD_ttscrollbar */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttscrollbar */, (void *)NULL /* UNDEFINED: SetState_ttscrollbar */, (void *)NULL /* UNDEFINED: SetOrientation_ttscrollbar */, (void *)NULL /* UNDEFINED: SetSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetRealSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetViewSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetPosition_ttscrollbar */, /* extends ttclass_ttanyscroll */ }, { Class_ttslider, id_ttslider, magicmask_ttslider, magic_ttslider, size_ttslider, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttslider */, (void *)NULL /* inherits: Build_ttslider >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttslider >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttslider */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttslider >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttslider */, (void *)NULL /* inherits: Remove_ttslider >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttslider >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttslider >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttslider */, (void *)NULL /* inherits: Draw_ttslider >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttslider >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttslider */, (void *)NULL /* inherits: SetXY_ttslider >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttslider >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttslider >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttslider >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttslider */, (void *)NULL /* UNDEFINED: SetHl_ttslider */, (void *)NULL /* UNDEFINED: SetTooltip_ttslider */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttslider */, (void *)NULL /* UNDEFINED: SetAttrD_ttslider */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttslider */, (void *)NULL /* UNDEFINED: SetState_ttslider */, (void *)NULL /* UNDEFINED: SetOrientation_ttslider */, (void *)NULL /* UNDEFINED: SetSize_ttslider */, (void *)NULL /* UNDEFINED: SetRealSize_ttslider */, (void *)NULL /* UNDEFINED: SetViewSize_ttslider */, (void *)NULL /* UNDEFINED: SetPosition_ttslider */, /* extends ttclass_ttanyscroll */ (void *)NULL /* UNDEFINED: SetSlideMin_ttslider */, (void *)NULL /* UNDEFINED: SetSlideMax_ttslider */, (void *)NULL /* UNDEFINED: SetSlideValue_ttslider */, }, { Class_ttprogressbar, id_ttprogressbar, magicmask_ttprogressbar, magic_ttprogressbar, size_ttprogressbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttprogressbar */, (void *)NULL /* inherits: Build_ttprogressbar >> Build_ttanybutton */, (void *)NULL /* inherits: Break_ttprogressbar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttprogressbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttprogressbar >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttprogressbar */, (void *)NULL /* inherits: Remove_ttprogressbar >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttprogressbar >> Invalidate_ttanybutton */, (void *)NULL /* inherits: SetVisible_ttprogressbar >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttprogressbar */, (void *)NULL /* inherits: Draw_ttprogressbar >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttprogressbar >> BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttprogressbar */, (void *)NULL /* inherits: SetXY_ttprogressbar >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttprogressbar >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttprogressbar >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttprogressbar >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetHl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetTooltip_ttprogressbar */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttprogressbar */, (void *)NULL /* UNDEFINED: SetAttrD_ttprogressbar */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttprogressbar */, (void *)NULL /* UNDEFINED: SetState_ttprogressbar */, (void *)NULL /* UNDEFINED: SetOrientation_ttprogressbar */, (void *)NULL /* UNDEFINED: SetSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetRealSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetViewSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetPosition_ttprogressbar */, /* extends ttclass_ttanyscroll */ }, { Class_ttscrollpane, id_ttscrollpane, magicmask_ttscrollpane, magic_ttscrollpane, size_ttscrollpane, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollpane */, (void *)NULL /* inherits: Build_ttscrollpane >> Build_ttwidget */, (void *)NULL /* inherits: Break_ttscrollpane >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscrollpane */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollpane >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscrollpane */, (void *)NULL /* inherits: Remove_ttscrollpane >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttscrollpane >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttscrollpane >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscrollpane */, (void *)NULL /* inherits: Draw_ttscrollpane >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttscrollpane >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscrollpane */, (void *)NULL /* inherits: SetXY_ttscrollpane >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttscrollpane >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttscrollpane >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscrollpane >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetHl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetTooltip_ttscrollpane */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetBarX_ttscrollpane */, (void *)NULL /* UNDEFINED: SetBarY_ttscrollpane */, }, { Class_ttwindow, id_ttwindow, magicmask_ttwindow, magic_ttwindow, size_ttwindow, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwindow */, twin_Build_ttwindow, (void *)NULL /* inherits: Break_ttwindow >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttwindow */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttwindow >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttwindow */, (void *)NULL /* inherits: Remove_ttwindow >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttwindow >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttwindow >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttwindow */, (void *)NULL /* inherits: Draw_ttwindow >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttwindow >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttwindow */, (void *)NULL /* inherits: SetXY_ttwindow >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttwindow >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttwindow >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttwindow >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttwindow */, (void *)NULL /* UNDEFINED: SetHl_ttwindow */, (void *)NULL /* UNDEFINED: SetTooltip_ttwindow */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttwindow */, }, { Class_ttframe, id_ttframe, magicmask_ttframe, magic_ttframe, size_ttframe, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttframe */, twin_Build_ttframe, (void *)NULL /* inherits: Break_ttframe >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttframe */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ twin_AddTo_ttframe, (void *)NULL /* UNDEFINED: Validate_ttframe */, (void *)NULL /* inherits: Remove_ttframe >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttframe >> Invalidate_ttwidget */, twin_SetVisible_ttframe, (void *)NULL /* UNDEFINED: SetTheme_ttframe */, (void *)NULL /* inherits: Draw_ttframe >> Draw_ttwidget */, twin_BuiltinRepaint_ttframe, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttframe */, (void *)NULL /* inherits: SetXY_ttframe >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttframe >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttframe >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttframe >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttframe */, (void *)NULL /* UNDEFINED: SetHl_ttframe */, (void *)NULL /* UNDEFINED: SetTooltip_ttframe */, /* extends ttclass_ttwidget */ twin_SetTitle_ttframe, /* extends ttclass_ttwindow */ (void *)NULL /* UNDEFINED: SetMenubar_ttframe */, }, { Class_ttscroller, id_ttscroller, magicmask_ttscroller, magic_ttscroller, size_ttscroller, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscroller */, (void *)NULL /* inherits: Build_ttscroller >> Build_ttwindow */, (void *)NULL /* inherits: Break_ttscroller >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscroller */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscroller >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttscroller */, (void *)NULL /* inherits: Remove_ttscroller >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttscroller >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttscroller >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttscroller */, (void *)NULL /* inherits: Draw_ttscroller >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttscroller >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscroller */, (void *)NULL /* inherits: SetXY_ttscroller >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttscroller >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttscroller >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscroller >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttscroller */, (void *)NULL /* UNDEFINED: SetHl_ttscroller */, (void *)NULL /* UNDEFINED: SetTooltip_ttscroller */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttscroller */, /* extends ttclass_ttwindow */ }, { Class_ttmenuitem, id_ttmenuitem, magicmask_ttmenuitem, magic_ttmenuitem, size_ttmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenuitem */, (void *)NULL /* UNDEFINED: Build_ttmenuitem */, (void *)NULL /* inherits: Break_ttmenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ twin_AddTo_ttmenuitem, (void *)NULL /* UNDEFINED: Validate_ttmenuitem */, twin_Remove_ttmenuitem, (void *)NULL /* UNDEFINED: Invalidate_ttmenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttmenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttmenuitem */, (void *)NULL /* UNDEFINED: Draw_ttmenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenuitem */, /* extends ttclass_ttvisible */ }, { Class_ttcheckmenuitem, id_ttcheckmenuitem, magicmask_ttcheckmenuitem, magic_ttcheckmenuitem, size_ttcheckmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Build_ttcheckmenuitem */, (void *)NULL /* inherits: Break_ttcheckmenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcheckmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttcheckmenuitem >> AddTo_ttmenuitem */, (void *)NULL /* UNDEFINED: Validate_ttcheckmenuitem */, (void *)NULL /* inherits: Remove_ttcheckmenuitem >> Remove_ttmenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Draw_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttcheckmenuitem */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttradiomenuitem, id_ttradiomenuitem, magicmask_ttradiomenuitem, magic_ttradiomenuitem, size_ttradiomenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Build_ttradiomenuitem */, (void *)NULL /* inherits: Break_ttradiomenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttradiomenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttradiomenuitem >> AddTo_ttmenuitem */, (void *)NULL /* UNDEFINED: Validate_ttradiomenuitem */, (void *)NULL /* inherits: Remove_ttradiomenuitem >> Remove_ttmenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttradiomenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttradiomenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Draw_ttradiomenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttradiomenuitem */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ /* extends ttclass_ttcheckmenuitem */ }, { Class_ttmenu, id_ttmenu, magicmask_ttmenu, magic_ttmenu, size_ttmenu, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenu */, (void *)NULL /* UNDEFINED: Build_ttmenu */, (void *)NULL /* inherits: Break_ttmenu >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenu */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ twin_AddTo_ttmenu, (void *)NULL /* UNDEFINED: Validate_ttmenu */, twin_Remove_ttmenu, (void *)NULL /* UNDEFINED: Invalidate_ttmenu */, (void *)NULL /* UNDEFINED: SetVisible_ttmenu */, (void *)NULL /* UNDEFINED: SetTheme_ttmenu */, (void *)NULL /* UNDEFINED: Draw_ttmenu */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenu */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttmenubar, id_ttmenubar, magicmask_ttmenubar, magic_ttmenubar, size_ttmenubar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenubar */, twin_Build_ttmenubar, (void *)NULL /* inherits: Break_ttmenubar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenubar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenubar */, (void *)NULL /* UNDEFINED: Validate_ttmenubar */, (void *)NULL /* UNDEFINED: Remove_ttmenubar */, (void *)NULL /* UNDEFINED: Invalidate_ttmenubar */, (void *)NULL /* UNDEFINED: SetVisible_ttmenubar */, (void *)NULL /* UNDEFINED: SetTheme_ttmenubar */, (void *)NULL /* UNDEFINED: Draw_ttmenubar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenubar */, /* extends ttclass_ttvisible */ }, { Class_ttanytext, id_ttanytext, magicmask_ttanytext, magic_ttanytext, size_ttanytext, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanytext */, (void *)NULL /* inherits: Build_ttanytext >> Build_ttwindow */, (void *)NULL /* inherits: Break_ttanytext >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanytext */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanytext >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttanytext */, (void *)NULL /* inherits: Remove_ttanytext >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_ttanytext >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_ttanytext >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttanytext */, (void *)NULL /* inherits: Draw_ttanytext >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_ttanytext >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanytext */, (void *)NULL /* inherits: SetXY_ttanytext >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanytext >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanytext >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanytext >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttanytext */, (void *)NULL /* UNDEFINED: SetHl_ttanytext */, (void *)NULL /* UNDEFINED: SetTooltip_ttanytext */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttanytext */, /* extends ttclass_ttwindow */ }, { Class_tttextfield, id_tttextfield, magicmask_tttextfield, magic_tttextfield, size_tttextfield, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextfield */, (void *)NULL /* inherits: Build_tttextfield >> Build_ttwindow */, (void *)NULL /* inherits: Break_tttextfield >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttextfield */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextfield >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttextfield */, (void *)NULL /* inherits: Remove_tttextfield >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_tttextfield >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_tttextfield >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttextfield */, (void *)NULL /* inherits: Draw_tttextfield >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_tttextfield >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttextfield */, (void *)NULL /* inherits: SetXY_tttextfield >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttextfield >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttextfield >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttextfield >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_tttextfield */, (void *)NULL /* UNDEFINED: SetHl_tttextfield */, (void *)NULL /* UNDEFINED: SetTooltip_tttextfield */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_tttextfield */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ }, { Class_tttextarea, id_tttextarea, magicmask_tttextarea, magic_tttextarea, size_tttextarea, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextarea */, (void *)NULL /* inherits: Build_tttextarea >> Build_ttwindow */, (void *)NULL /* inherits: Break_tttextarea >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttextarea */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextarea >> AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_tttextarea */, (void *)NULL /* inherits: Remove_tttextarea >> Remove_ttwidget */, (void *)NULL /* inherits: Invalidate_tttextarea >> Invalidate_ttwidget */, (void *)NULL /* inherits: SetVisible_tttextarea >> SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_tttextarea */, (void *)NULL /* inherits: Draw_tttextarea >> Draw_ttwidget */, (void *)NULL /* inherits: BuiltinRepaint_tttextarea >> BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttextarea */, (void *)NULL /* inherits: SetXY_tttextarea >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttextarea >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttextarea >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttextarea >> SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_tttextarea */, (void *)NULL /* UNDEFINED: SetHl_tttextarea */, (void *)NULL /* UNDEFINED: SetTooltip_tttextarea */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_tttextarea */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ /* extends ttclass_tttextfield */ }, { Class_tttheme, id_tttheme, magicmask_tttheme, magic_tttheme, size_tttheme, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttheme */, (void *)NULL /* UNDEFINED: Build_tttheme */, (void *)NULL /* inherits: Break_tttheme >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttheme */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { Class_ttapplication, id_ttapplication, magicmask_ttapplication, magic_ttapplication, size_ttapplication, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttapplication */, twin_Build_ttapplication, (void *)NULL /* inherits: Break_ttapplication >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttapplication */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { twin_Sync, twin_Flush, twin_TimidFlush, twin_MainLoopOnce, twin_DeleteCallback, twin_Close, twin_ConnectionFd, twin_GetErrno, twin_GetErrnoDetail, twin_StrError, twin_StrErrorDetail, }, }; �����������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/twin_tunnel_c��������������������������������������������������������������0000664�0000000�0000000�00000020417�13775351206�0017576�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * WARNING! * * this file is `twin_tunnel_c' and is preprocessed by m4 to produce `twin_tunnel_m4.c' * * It must be a valid m4 file, and must produce a valid C file. * */ #include <Tw/Tw.h> #include <Tw/Twavl.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include <Tw/Twerrno.h> DECL_BEFORE #include "array.h" static ttobject OverwriteIdFromNative(ttobject o); static ttany TunnelCall(opaque method_order, ...); /* * We need to write down almost all methods in orded to call them on the server */ dnl m4_begin " divert(-1) include(`m4/TTdecay.m4') define(`protected', `ifdef(`mtd_$1_$2', `', ` /* * WARNING: undefined `protected' tunnel_$1_$2() */ ')') define(`public', `ifdef(`mtd_$1_$2', `', ` tunnel_decl($@) { tunnel_body($@) }')') define(`public_set', `public($@)') define(`tunnel_decl', `static c_arg_type($4,$5) DEF($1_$2)`'(c_args_decl(NSHIFT(6, $@)))') define(`tunnel_body', `return_c_arg_ret_decay_ifnotvoid($4,$5)TunnelCall(ttmethod_$1_$2`'dnl `'ifelse(`$9', `', `', `, tunnel_c_args_call_ttany(NSHIFT(6, $@))'));') define(`tunnel_c_args_call_ttany', `ifelse($3, `', `', `tunnel_c_arg_call_ttany($1,$2,$3)`'_tunnel_c_args_call_ttany(NSHIFT(3,$@))')') define(`_tunnel_c_args_call_ttany', `ifelse($3, `', `', `, tunnel_c_arg_call_ttany($1,$2,$3)`'_tunnel_c_args_call_ttany(NSHIFT(3,$@))')') define(`tunnel_c_arg_call_ttany', `(ttany)opaque_ifpointer($1,$2)$3') define(`return_c_arg_ret_decay_ifnotvoid', `ifelse($2, void, `', `return (addspace_ifnotempty($1)`'$2)opaque_ifpointer($1,$2)')') define(`opaque_ifpointer', `ifelse(regexp(`$1', `_fn$'), -1, ifelse(index(`$1', `*'), -1, `', (opaque)), (opaque))') divert dnl " m4_end /* ttobject hand-made methods */ static BUILD(ttobject) { /* * rough but simple method: we redefine object ->id to be the same * as the returned ->native. */ o->native = TunnelCall(ttmethod_New, (ttany)o->Class->id); return OverwriteIdFromNative(o); } static BREAK(ttobject) { TunnelCall(ttmethod_Del, o->native); } /* ttnative hand-made methods */ static ttnative DEF(GetRoot_ttnative)(void) { /* * FIXME: Create_ttnative also calls TNEW()... which creates * another ttnative on server side libTT: leak! */ ttnative o = Create_ttnative(TunnelCall(ttmethod_GetRoot_ttnative)); return (ttnative)OverwriteIdFromNative((ttobject)o); } /* ttapplication hand-made methods */ static BUILD(ttapplication) { o->native = TunnelCall(ttmethod_Create_ttapplication, (ttany)(opaque)o->name); return (ttapplication)OverwriteIdFromNative((ttobject)o); } /* autogenerated methods */ dnl m4_begin " define(`extends') define(`el', ` /* $1 */ TTdef_ttclass_$1($1)') TTnlist() undefine(`el') define(`public') define(`public_set') define(`protected') define(`extends') define(`CALL', `Tw$1(shift($@))') define(`SYM', `Tw$1') include(`twin_hw_h') dnl " m4_end; static textension eid = TW_NOID; TW_DECL_MAGIC(TT_Tw_magic); #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_twin_tunnel_InitHW(tthw *HW) #endif { ttuint tunnel_libTT_version; /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = &twin_tunnel_TTClasses.HW; TwConfigMalloc(TTAllocMem, TTReallocMem, TTFreeMem); if (TwCheckMagic(TT_Tw_magic) && TwOpen(TTD.HWOptions)) { if ((eid = TwOpenExtension(2, "TT"))) { if ((tunnel_libTT_version = TunnelCall(ttmethod_LibraryVersion)) == TT_PROTOCOL_VERSION) return &twin_tunnel_TTClasses; else FAIL_TT(TT_ETARGET_BAD_EXTENSION_VERSION, tunnel_libTT_version); } else { FAIL_TT(TT_ETARGET_NO_EXTENSION, TT_EDETAIL_TARGET_TWIN_TUNNEL); } TwClose(); } if (TwErrno) FAIL(TwErrno, TwErrnoDetail); return (ttclasses)0; } static udat TTType2TWS(ttopaque type) { udat tws_type = 0; if (type & ttclass_type_array) tws_type |= TWS_vec|TWS_vecW; switch ((opaque)TTFromType_ttclass(type) & TT_MAGIC_MASK) { #define C(t1,t2) case TT_CAT(order_,t1): tws_type |= TT_CAT(TWS_,t2); break; C(void, void); C(ttbyte, byte); C(ttshort, dat); C(ttint, ldat); C(ttcol, tcolor); C(ttfont, trune); C(ttattr, tcell); C(ttopaque, topaque); C(ttany, tany); #undef C default: tws_type |= TWS_tany; } return tws_type; } /* * rough but simple method: we redefine object ->id to be the same * as the returned ->native. */ static ttobject OverwriteIdFromNative(ttobject o) { ttopaque saved_id; /* fast-failure or fast-success */ if (!o || o->native == o->id) return o; /* sanity checks */ if (o->native && o->native == (ttopaque)o->native && (o->native >> TT_MAGIC_SHIFT) == (o->id >> TT_MAGIC_SHIFT) && !ID2OBJ(o->native)) { saved_id = o->id; DropId((ttobj)o); o->id = (ttopaque)o->native; if (FixedAssignId((ttclass)o->Class, (ttobj)o)) return o; /* try to recover... */ o->id = saved_id; (void)FixedAssignId((ttclass)o->Class, (ttobj)o); } return NULL; } #ifdef DEBUG_TUNNEL static void debug_method(ttopaque args_n, tsfield a) { ttopaque i; printf("%s(", TTGetName_ttmethod((tt_obj)(ttopaque)a[1].TWS_field_scalar)); for (i = 2; i <= args_n + 1; i++) { if (i == args_n + 1) { i = 0; printf(") =\t "); } else if (i != 2) { printf(", "); } if (a[i].type == (TWS_vec|TWS_vecW|TWS_byte)) printf("\"%.*s\"", (int)a[i].TWS_field_vecL, (TW_CONST byte *)a[i].TWS_field_vecV); else if (a[i].type & TWS_vec) printf("0x%08lX[%ld]", (unsigned long)a[i].TWS_field_vecV, (unsigned long)a[i].TWS_field_vecL); else if (a[i].type == TWS_void) printf("<void>"); else if (a[i].TWS_field_scalar > 0xFFFF) printf("0x%08lX", (unsigned long)a[i].TWS_field_scalar); else printf("%ld", (unsigned long)a[i].TWS_field_scalar); if (i == 0) break; } printf("\n"); fflush(stdout); } #endif static ttany TunnelCall(opaque o, ...) { struct s_tsfield ta[TT_MAX_ARG_N]; ttarg aa[TT_MAX_ARG_N]; tsfield a; va_list vargs; ttmethod M; ttopaque type, i, args_n; ttany *args_type; tany val; ttobject O; tt_obj _Class; ttclass Class; /* * FIXME: if we work on a user-created ttobject it's ok, * else we should work on our local copy, NOT call the server-side libTT */ if (!(M = (ttmethod)IdList[order_ttmethod][o])) return (ttany)0; args_n = M->parameter_type->array_n; args_type = M->parameter_type->array; if (args_n >= TT_MAX_ARG_N - 2) return (ttany)0; /* set type of return value */ ta[0].type = TTType2TWS(M->return_type); /* set first arg (method) */ ta[1].type = TWS_tany; ta[1].TWS_field_scalar = o | (order_ttmethod << TT_MAGIC_SHIFT); va_start(vargs, o); /* skip a[0] (return value) */ /* skip a[1] (method, already encoded above) */ for (a = ta+2, i = 0; i < args_n; i++) { a[i].type = TTType2TWS( aa[i].type = type = *args_type ); val = va_arg(vargs, tany); _Class = TTFromType_ttclass(type); if (type == id_ttclass_void) { ; } else if (type & ttclass_type_array) { a[i].TWS_field_vecV = (void *)(opaque)( aa[i].value = val ); a[i].TWS_field_vecL = aa[i].size = TTGetArraySizeA_ttmethod((tt_obj)M->id, i, args_n, aa); } else { if ((Class = ID2CLASS(_Class)) && ISCLASS(ttobj, Class) && /* we are sending a libTT obj */ (O = (ttobject)(opaque)val) && Is(Class, O)) { /* and it is a valid obj of the correct type */ if (IS(ttobject,O) && !(O->oflags & (ttobject_oflags_static|ttobject_oflags_const))) /* it is a user-created ttobject */ val = O->native; else /* it is a library immutable object */ val = O->id; } aa[i].value = a[i].TWS_field_scalar = val; break; } } va_end(vargs); #ifdef DEBUG_TUNNEL TwCallTExtension(eid, args_n+1, ta); debug_method(args_n+1, ta); return a->TWS_field_scalar; #else /* FIXME: if the return value is an object of server-side libTT, * we must must find our object having ->native equal to the return value */ /* (args_n+1) since we prepended method to invoke (o) as first arg */ return (ttany)TwCallTExtension(eid, args_n+1, a); #endif } DECL_AFTER �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/twin_tunnel_m4.c�����������������������������������������������������������0000664�0000000�0000000�00000225004�13775351206�0020114�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from twin_tunnel_c by m4/hw.m4h, do not edit! */ /* * twin_tunnel_m4.c -- implementation of libTT methods on "twin_tunnel" target display * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is twin_tunnel_c and is preprocessed by m4 to produce twin_tunnel_m4.c * * It must be a valid m4 file, and must produce a valid C file. * */ #include <Tw/Tw.h> #include <Tw/Twavl.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include <Tw/Twerrno.h> /* order is crucial here! */ #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #endif /* include our internal copy of TT.h instead of the public one */ #include "TT.h" #include <TT/TTerrno.h> #include "mutex.h" #include "TTextern.h" #include "TTassert.h" #include "utils.h" #include "inlines.h" #include "seterrno.h" #include "theme.h" #include "common_m4.h" static s_ttclasses twin_tunnel_TTClasses; #include "array.h" static ttobject OverwriteIdFromNative(ttobject o); static ttany TunnelCall(opaque method_order, ...); /* * We need to write down almost all methods in orded to call them on the server */ /* ttobject hand-made methods */ static ttobject twin_tunnel_Build_ttobject(ttobject o) { /* * rough but simple method: we redefine object ->id to be the same * as the returned ->native. */ o->native = TunnelCall(ttmethod_New, (ttany)o->Class->id); return OverwriteIdFromNative(o); } static void twin_tunnel_Break_ttobject(ttobject o) { TunnelCall(ttmethod_Del, o->native); } /* ttnative hand-made methods */ static ttnative twin_tunnel_GetRoot_ttnative(void) { /* * FIXME: Create_ttnative also calls TNEW()... which creates * another ttnative on server side libTT: leak! */ ttnative o = Create_ttnative(TunnelCall(ttmethod_GetRoot_ttnative)); return (ttnative)OverwriteIdFromNative((ttobject)o); } /* ttapplication hand-made methods */ static ttapplication twin_tunnel_Build_ttapplication(ttapplication o) { o->native = TunnelCall(ttmethod_Create_ttapplication, (ttany)(opaque)o->name); return (ttapplication)OverwriteIdFromNative((ttobject)o); } /* autogenerated methods */ /* ttclass */ /* ttobject */ /* * WARNING: undefined protected tunnel_New_ttobject() */ /* * WARNING: undefined protected tunnel_Del_ttobject() */ /* ttvector */ static ttany twin_tunnel_GetAt_ttvector(TT_ARG_READ ttvector o, ttopaque pos) { return (ttany)TunnelCall(ttmethod_GetAt_ttvector, (ttany)o, (ttany)pos); } static ttbyte twin_tunnel_SetAt_ttvector(ttvector o, ttopaque pos, ttany value) { return (ttbyte)TunnelCall(ttmethod_SetAt_ttvector, (ttany)o, (ttany)pos, (ttany)value); } static ttbyte twin_tunnel_AddY_ttvector(ttvector o, ttopaque pos, ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttany *values) { return (ttbyte)TunnelCall(ttmethod_AddY_ttvector, (ttany)o, (ttany)pos, (ttany)value_n, (ttany)values); } static ttopaque twin_tunnel_ContainsValue_ttvector(TT_ARG_READ ttvector o, ttopaque pos_start, ttany value) { return (ttopaque)TunnelCall(ttmethod_ContainsValue_ttvector, (ttany)o, (ttany)pos_start, (ttany)value); } static ttbyte twin_tunnel_RemoveRange_ttvector(ttvector o, ttopaque pos_start, ttopaque pos_n) { return (ttbyte)TunnelCall(ttmethod_RemoveRange_ttvector, (ttany)o, (ttany)pos_start, (ttany)pos_n); } /* ttfield */ /* ttmethod */ /* ttevent */ /* tteventbig */ /* ttbitmask */ /* tteventmask */ /* ttcallback */ /* * WARNING: undefined protected tunnel_Create_ttcallback() */ /* ttlistener */ static void twin_tunnel_AddTo_ttlistener(ttlistener o, ttcomponent c) { TunnelCall(ttmethod_AddTo_ttlistener, (ttany)o, (ttany)c); } static void twin_tunnel_Remove_ttlistener(ttlistener o) { TunnelCall(ttmethod_Remove_ttlistener, (ttany)o); } /* tttimer */ static void twin_tunnel_SetEnabled_tttimer(tttimer o, ttbyte enabled) { TunnelCall(ttmethod_SetEnabled_tttimer, (ttany)o, (ttany)enabled); } static ttbyte twin_tunnel_IsEnabled_tttimer(TT_ARG_READ tttimer o) { return (ttbyte)TunnelCall(ttmethod_IsEnabled_tttimer, (ttany)o); } /* ttcomponent */ /* ttdata */ /* * WARNING: undefined protected tunnel_AddTo_ttdata() */ /* * WARNING: undefined protected tunnel_Remove_ttdata() */ /* ttvisible */ static void twin_tunnel_AddTo_ttvisible(ttvisible o, ttvisible parent, ttany constraint) { TunnelCall(ttmethod_AddTo_ttvisible, (ttany)o, (ttany)parent, (ttany)constraint); } static void twin_tunnel_Validate_ttvisible(ttvisible o) { TunnelCall(ttmethod_Validate_ttvisible, (ttany)o); } static void twin_tunnel_Remove_ttvisible(ttvisible o) { TunnelCall(ttmethod_Remove_ttvisible, (ttany)o); } static void twin_tunnel_Invalidate_ttvisible(ttvisible o) { TunnelCall(ttmethod_Invalidate_ttvisible, (ttany)o); } static void twin_tunnel_SetVisible_ttvisible(ttvisible o, ttbyte visible) { TunnelCall(ttmethod_SetVisible_ttvisible, (ttany)o, (ttany)visible); } static ttbyte twin_tunnel_SetTheme_ttvisible(ttvisible o, TT_ARG_READ tttheme theme) { return (ttbyte)TunnelCall(ttmethod_SetTheme_ttvisible, (ttany)o, (ttany)theme); } static void twin_tunnel_Draw_ttvisible(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5), *, _P(6))) ttbyte *asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5), *, _P(6))) ttfont *fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5), *, _P(6))) ttattr *attrdata) { TunnelCall(ttmethod_Draw_ttvisible, (ttany)o, (ttany)x, (ttany)y, (ttany)w, (ttany)h, (ttany)pitch, (ttany)(opaque)asciidata, (ttany)(opaque)fontdata, (ttany)(opaque)attrdata); } static void twin_tunnel_BuiltinRepaint_ttvisible(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h) { TunnelCall(ttmethod_BuiltinRepaint_ttvisible, (ttany)o, (ttany)x, (ttany)y, (ttany)w, (ttany)h); } /* ttlayout */ /* * WARNING: undefined protected tunnel_SetWidget_ttlayout() */ /* * WARNING: undefined protected tunnel_DoLayout_ttlayout() */ /* ttboxlayout */ /* ttborderlayout */ /* ttnative */ static ttshort twin_tunnel_GetW_ttnative(TT_ARG_READ ttnative o) { return (ttshort)TunnelCall(ttmethod_GetW_ttnative, (ttany)o); } static ttshort twin_tunnel_GetH_ttnative(TT_ARG_READ ttnative o) { return (ttshort)TunnelCall(ttmethod_GetH_ttnative, (ttany)o); } /* ttwidget */ static void twin_tunnel_SetLayout_ttwidget(ttwidget o, ttlayout l) { TunnelCall(ttmethod_SetLayout_ttwidget, (ttany)o, (ttany)l); } static ttbyte twin_tunnel_SetXY_ttwidget(ttwidget o, ttshort x, ttshort y) { return (ttbyte)TunnelCall(ttmethod_SetXY_ttwidget, (ttany)o, (ttany)x, (ttany)y); } static ttbyte twin_tunnel_SetWH_ttwidget(ttwidget o, ttshort w, ttshort h) { return (ttbyte)TunnelCall(ttmethod_SetWH_ttwidget, (ttany)o, (ttany)w, (ttany)h); } static ttbyte twin_tunnel_SetXl_ttwidget(ttwidget o, ttint xl) { return (ttbyte)TunnelCall(ttmethod_SetXl_ttwidget, (ttany)o, (ttany)xl); } static ttbyte twin_tunnel_SetYl_ttwidget(ttwidget o, ttint yl) { return (ttbyte)TunnelCall(ttmethod_SetYl_ttwidget, (ttany)o, (ttany)yl); } static ttbyte twin_tunnel_SetWl_ttwidget(ttwidget o, ttint wl) { return (ttbyte)TunnelCall(ttmethod_SetWl_ttwidget, (ttany)o, (ttany)wl); } static ttbyte twin_tunnel_SetHl_ttwidget(ttwidget o, ttint hl) { return (ttbyte)TunnelCall(ttmethod_SetHl_ttwidget, (ttany)o, (ttany)hl); } static ttbyte twin_tunnel_SetTooltip_ttwidget(ttwidget o, TT_ARG_DIE tttooltip t) { return (ttbyte)TunnelCall(ttmethod_SetTooltip_ttwidget, (ttany)o, (ttany)t); } /* ttlabel */ static void twin_tunnel_SetFontD_ttlabel(ttlabel o, ttopaque text_len, TT_ARG_DIE TT_ARG_ARRAY((_P(2))) ttfont *text) { TunnelCall(ttmethod_SetFontD_ttlabel, (ttany)o, (ttany)text_len, (ttany)text); } /* tttooltip */ static ttbyte twin_tunnel_SetWidget_tttooltip(TT_ARG_DIE tttooltip o, ttwidget w) { return (ttbyte)TunnelCall(ttmethod_SetWidget_tttooltip, (ttany)o, (ttany)w); } /* ttbuttongroup */ static void twin_tunnel_Add_ttbuttongroup(ttbuttongroup o, ttradiobutton r) { TunnelCall(ttmethod_Add_ttbuttongroup, (ttany)o, (ttany)r); } static void twin_tunnel_Remove_ttbuttongroup(ttbuttongroup o, ttradiobutton r) { TunnelCall(ttmethod_Remove_ttbuttongroup, (ttany)o, (ttany)r); } static void twin_tunnel_SetChecked_ttbuttongroup(ttbuttongroup o, ttradiobutton r) { TunnelCall(ttmethod_SetChecked_ttbuttongroup, (ttany)o, (ttany)r); } /* ttanybutton */ /* * WARNING: undefined protected tunnel_CacheThemeShape_ttanybutton() */ static void twin_tunnel_SetAttrD_ttanybutton(ttanybutton o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3), *, _P(4))) ttattr *text) { TunnelCall(ttmethod_SetAttrD_ttanybutton, (ttany)o, (ttany)w, (ttany)h, (ttany)pitch, (ttany)(opaque)text); } /* ttbutton */ static void twin_tunnel_SetPressed_ttbutton(ttbutton o, ttbyte pressed) { TunnelCall(ttmethod_SetPressed_ttbutton, (ttany)o, (ttany)pressed); } /* ttcheckbutton */ static void twin_tunnel_SetChecked_ttcheckbutton(ttcheckbutton o, ttbyte checked) { TunnelCall(ttmethod_SetChecked_ttcheckbutton, (ttany)o, (ttany)checked); } /* ttradiobutton */ /* ttanyscroll */ /* * WARNING: undefined protected tunnel_Recalculate_ttanyscroll() */ /* * WARNING: undefined protected tunnel_SetState_ttanyscroll() */ static ttbyte twin_tunnel_SetOrientation_ttanyscroll(ttanyscroll o, ttbyte orientation) { return (ttbyte)TunnelCall(ttmethod_SetOrientation_ttanyscroll, (ttany)o, (ttany)orientation); } static ttbyte twin_tunnel_SetSize_ttanyscroll(ttanyscroll o, ttint size) { return (ttbyte)TunnelCall(ttmethod_SetSize_ttanyscroll, (ttany)o, (ttany)size); } static ttbyte twin_tunnel_SetRealSize_ttanyscroll(ttanyscroll o, ttint real_size) { return (ttbyte)TunnelCall(ttmethod_SetRealSize_ttanyscroll, (ttany)o, (ttany)real_size); } static ttbyte twin_tunnel_SetViewSize_ttanyscroll(ttanyscroll o, ttint view_size) { return (ttbyte)TunnelCall(ttmethod_SetViewSize_ttanyscroll, (ttany)o, (ttany)view_size); } static ttbyte twin_tunnel_SetPosition_ttanyscroll(ttanyscroll o, ttint position) { return (ttbyte)TunnelCall(ttmethod_SetPosition_ttanyscroll, (ttany)o, (ttany)position); } /* ttscrollbar */ /* ttslider */ static ttbyte twin_tunnel_SetSlideMin_ttslider(ttslider o, ttint slide_min) { return (ttbyte)TunnelCall(ttmethod_SetSlideMin_ttslider, (ttany)o, (ttany)slide_min); } static ttbyte twin_tunnel_SetSlideMax_ttslider(ttslider o, ttint slide_max) { return (ttbyte)TunnelCall(ttmethod_SetSlideMax_ttslider, (ttany)o, (ttany)slide_max); } static ttbyte twin_tunnel_SetSlideValue_ttslider(ttslider o, ttint slide_value) { return (ttbyte)TunnelCall(ttmethod_SetSlideValue_ttslider, (ttany)o, (ttany)slide_value); } /* ttprogressbar */ /* ttscrollpane */ static ttbyte twin_tunnel_SetBarX_ttscrollpane(ttscrollpane o, ttscrollbar bar_x) { return (ttbyte)TunnelCall(ttmethod_SetBarX_ttscrollpane, (ttany)o, (ttany)bar_x); } static ttbyte twin_tunnel_SetBarY_ttscrollpane(ttscrollpane o, ttscrollbar bar_y) { return (ttbyte)TunnelCall(ttmethod_SetBarY_ttscrollpane, (ttany)o, (ttany)bar_y); } /* ttwindow */ static ttbyte twin_tunnel_SetTitle_ttwindow(ttwindow o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *title) { return (ttbyte)TunnelCall(ttmethod_SetTitle_ttwindow, (ttany)o, (ttany)title); } /* ttframe */ static ttbyte twin_tunnel_SetMenubar_ttframe(ttframe o, TT_ARG_READ ttmenubar m) { return (ttbyte)TunnelCall(ttmethod_SetMenubar_ttframe, (ttany)o, (ttany)m); } /* ttscroller */ /* ttmenuitem */ /* ttcheckmenuitem */ /* ttradiomenuitem */ /* ttmenu */ /* ttmenubar */ /* ttanytext */ /* tttextfield */ /* tttextarea */ /* tttheme */ /* ttapplication */ static ttbyte twin_tunnel_Sync(void) { return TwSync(); } static ttbyte twin_tunnel_Flush(void) { return TwFlush(); } static ttbyte twin_tunnel_TimidFlush(void) { return TwTimidFlush(); } static ttbyte twin_tunnel_MainLoopOnce(ttbyte wait) { tmsg Msg; /* loop until all already queued messages are dispatched */ do { if ((Msg = TwCloneReadMsg(wait))) { TwDispatchMsg(Msg); TwFreeMem(Msg); } } while (TwPendingMsg()); return !TwInPanic(); } static void twin_tunnel_DeleteCallback(ttcallback o) { if (o->native != (opaque)TW_NOID) TwDeleteListener((tlistener)(opaque)o->native); } static void twin_tunnel_Close(void) { TwClose(); } static int twin_tunnel_ConnectionFd(void) { return TwConnectionFd(); } static ttuint twin_tunnel_GetErrno(void) { return TwErrno; } static ttuint twin_tunnel_GetErrnoDetail(void) { return TwErrnoDetail; } static TT_CONST ttbyte *twin_tunnel_StrError(ttuint E) { return TwStrError(E); } static TT_CONST ttbyte *twin_tunnel_StrErrorDetail(ttuint E, ttuint S) { return TwStrErrorDetail(E, S); } static textension eid = TW_NOID; TW_DECL_MAGIC(TT_Tw_magic); #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_twin_tunnel_InitHW(tthw *HW) #endif { ttuint tunnel_libTT_version; /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = &twin_tunnel_TTClasses.HW; TwConfigMalloc(TTAllocMem, TTReallocMem, TTFreeMem); if (TwCheckMagic(TT_Tw_magic) && TwOpen(TTD.HWOptions)) { if ((eid = TwOpenExtension(2, "TT"))) { if ((tunnel_libTT_version = TunnelCall(ttmethod_LibraryVersion)) == TT_PROTOCOL_VERSION) return &twin_tunnel_TTClasses; else FAIL_TT(TT_ETARGET_BAD_EXTENSION_VERSION, tunnel_libTT_version); } else { FAIL_TT(TT_ETARGET_NO_EXTENSION, TT_EDETAIL_TARGET_TWIN_TUNNEL); } TwClose(); } if (TwErrno) FAIL(TwErrno, TwErrnoDetail); return (ttclasses)0; } static udat TTType2TWS(ttopaque type) { udat tws_type = 0; if (type & ttclass_type_array) tws_type |= TWS_vec | TWS_vecW; switch ((opaque)TTFromType_ttclass(type) & TT_MAGIC_MASK) { #define C(t1, t2) \ case TT_CAT(order_, t1): \ tws_type |= TT_CAT(TWS_, t2); \ break; C(void, void); C(ttbyte, byte); C(ttshort, dat); C(ttint, ldat); C(ttcol, tcolor); C(ttfont, trune); C(ttattr, tcell); C(ttopaque, topaque); C(ttany, tany); #undef C default: tws_type |= TWS_tany; } return tws_type; } /* * rough but simple method: we redefine object ->id to be the same * as the returned ->native. */ static ttobject OverwriteIdFromNative(ttobject o) { ttopaque saved_id; /* fast-failure or fast-success */ if (!o || o->native == o->id) return o; /* sanity checks */ if (o->native && o->native == (ttopaque)o->native && (o->native >> TT_MAGIC_SHIFT) == (o->id >> TT_MAGIC_SHIFT) && !ID2OBJ(o->native)) { saved_id = o->id; DropId((ttobj)o); o->id = (ttopaque)o->native; if (FixedAssignId((ttclass)o->Class, (ttobj)o)) return o; /* try to recover... */ o->id = saved_id; (void)FixedAssignId((ttclass)o->Class, (ttobj)o); } return NULL; } #ifdef DEBUG_TUNNEL static void debug_method(ttopaque args_n, tsfield a) { ttopaque i; printf("%s(", TTGetName_ttmethod((tt_obj)(ttopaque)a[1].TWS_field_scalar)); for (i = 2; i <= args_n + 1; i++) { if (i == args_n + 1) { i = 0; printf(") =\t "); } else if (i != 2) { printf(", "); } if (a[i].type == (TWS_vec | TWS_vecW | TWS_byte)) printf("\"%.*s\"", (int)a[i].TWS_field_vecL, (TW_CONST byte *)a[i].TWS_field_vecV); else if (a[i].type & TWS_vec) printf("0x%08lX[%ld]", (unsigned long)a[i].TWS_field_vecV, (unsigned long)a[i].TWS_field_vecL); else if (a[i].type == TWS_void) printf("<void>"); else if (a[i].TWS_field_scalar > 0xFFFF) printf("0x%08lX", (unsigned long)a[i].TWS_field_scalar); else printf("%ld", (unsigned long)a[i].TWS_field_scalar); if (i == 0) break; } printf("\n"); fflush(stdout); } #endif static ttany TunnelCall(opaque o, ...) { struct s_tsfield ta[TT_MAX_ARG_N]; ttarg aa[TT_MAX_ARG_N]; tsfield a; va_list vargs; ttmethod M; ttopaque type, i, args_n; ttany *args_type; tany val; ttobject O; tt_obj _Class; ttclass Class; /* * FIXME: if we work on a user-created ttobject it's ok, * else we should work on our local copy, NOT call the server-side libTT */ if (!(M = (ttmethod)IdList[order_ttmethod][o])) return (ttany)0; args_n = M->parameter_type->array_n; args_type = M->parameter_type->array; if (args_n >= TT_MAX_ARG_N - 2) return (ttany)0; /* set type of return value */ ta[0].type = TTType2TWS(M->return_type); /* set first arg (method) */ ta[1].type = TWS_tany; ta[1].TWS_field_scalar = o | (order_ttmethod << TT_MAGIC_SHIFT); va_start(vargs, o); /* skip a[0] (return value) */ /* skip a[1] (method, already encoded above) */ for (a = ta + 2, i = 0; i < args_n; i++) { a[i].type = TTType2TWS(aa[i].type = type = *args_type); val = va_arg(vargs, tany); _Class = TTFromType_ttclass(type); if (type == id_ttclass_void) { ; } else if (type & ttclass_type_array) { a[i].TWS_field_vecV = (void *)(opaque)(aa[i].value = val); a[i].TWS_field_vecL = aa[i].size = TTGetArraySizeA_ttmethod((tt_obj)M->id, i, args_n, aa); } else { if ((Class = ID2CLASS(_Class)) && ISCLASS(ttobj, Class) && /* we are sending a libTT obj */ (O = (ttobject)(opaque)val) && Is(Class, O)) { /* and it is a valid obj of the correct type */ if (IS(ttobject, O) && !(O->oflags & (ttobject_oflags_static | ttobject_oflags_const))) /* it is a user-created ttobject */ val = O->native; else /* it is a library immutable object */ val = O->id; } aa[i].value = a[i].TWS_field_scalar = val; break; } } va_end(vargs); #ifdef DEBUG_TUNNEL TwCallTExtension(eid, args_n + 1, ta); debug_method(args_n + 1, ta); return a->TWS_field_scalar; #else /* FIXME: if the return value is an object of server-side libTT, * we must must find our object having ->native equal to the return value */ /* (args_n+1) since we prepended method to invoke (o) as first arg */ return (ttany)TwCallTExtension(eid, args_n + 1, a); #endif } /* * use default values for methods not implemented in twin_tunnel_c * * null display target MUST IMPLEMENT ALL METHODS, even if as stubs. */ static s_ttclasses twin_tunnel_TTClasses = { { Class_ttobj, id_ttobj, magicmask_ttobj, magic_ttobj, size_ttobj, }, { Class_ttclass, id_ttclass, magicmask_ttclass, magic_ttclass, size_ttclass, /* extends ttclass_ttobj */ }, { Class_ttobject, id_ttobject, magicmask_ttobject, magic_ttobject, size_ttobject, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttobject */, twin_tunnel_Build_ttobject, twin_tunnel_Break_ttobject, (void *)NULL /* UNDEFINED: Del_ttobject */, }, { Class_ttvector, id_ttvector, magicmask_ttvector, magic_ttvector, size_ttvector, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvector */, (void *)NULL /* inherits: Build_ttvector >> Build_ttobject */, (void *)NULL /* inherits: Break_ttvector >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttvector */, /* extends ttclass_ttobject */ twin_tunnel_GetAt_ttvector, twin_tunnel_SetAt_ttvector, twin_tunnel_AddY_ttvector, twin_tunnel_ContainsValue_ttvector, twin_tunnel_RemoveRange_ttvector, }, { Class_ttfield, id_ttfield, magicmask_ttfield, magic_ttfield, size_ttfield, /* extends ttclass_ttobj */ }, { Class_ttmethod, id_ttmethod, magicmask_ttmethod, magic_ttmethod, size_ttmethod, /* extends ttclass_ttobj */ }, { Class_ttevent, id_ttevent, magicmask_ttevent, magic_ttevent, size_ttevent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttevent */, (void *)NULL /* inherits: Build_ttevent >> Build_ttobject */, (void *)NULL /* inherits: Break_ttevent >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttevent */, /* extends ttclass_ttobject */ }, { Class_tteventbig, id_tteventbig, magicmask_tteventbig, magic_tteventbig, size_tteventbig, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventbig */, (void *)NULL /* inherits: Build_tteventbig >> Build_ttobject */, (void *)NULL /* inherits: Break_tteventbig >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tteventbig */, /* extends ttclass_ttobject */ /* extends ttclass_ttevent */ }, { Class_ttbitmask, id_ttbitmask, magicmask_ttbitmask, magic_ttbitmask, size_ttbitmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbitmask */, (void *)NULL /* inherits: Build_ttbitmask >> Build_ttobject */, (void *)NULL /* inherits: Break_ttbitmask >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbitmask */, /* extends ttclass_ttobject */ }, { Class_tteventmask, id_tteventmask, magicmask_tteventmask, magic_tteventmask, size_tteventmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventmask */, (void *)NULL /* inherits: Build_tteventmask >> Build_ttobject */, (void *)NULL /* inherits: Break_tteventmask >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tteventmask */, /* extends ttclass_ttobject */ }, { Class_ttcallback, id_ttcallback, magicmask_ttcallback, magic_ttcallback, size_ttcallback, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcallback */, (void *)NULL /* inherits: Build_ttcallback >> Build_ttobject */, (void *)NULL /* inherits: Break_ttcallback >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcallback */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttcallback */, }, { Class_ttlistener, id_ttlistener, magicmask_ttlistener, magic_ttlistener, size_ttlistener, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlistener */, (void *)NULL /* inherits: Build_ttlistener >> Build_ttobject */, (void *)NULL /* inherits: Break_ttlistener >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlistener */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttlistener */, /* extends ttclass_ttcallback */ twin_tunnel_AddTo_ttlistener, twin_tunnel_Remove_ttlistener, }, { Class_tttimer, id_tttimer, magicmask_tttimer, magic_tttimer, size_tttimer, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttimer */, (void *)NULL /* inherits: Build_tttimer >> Build_ttobject */, (void *)NULL /* inherits: Break_tttimer >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttimer */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_tttimer */, /* extends ttclass_ttcallback */ (void *)NULL /* inherits: AddTo_tttimer >> AddTo_ttlistener */, (void *)NULL /* inherits: Remove_tttimer >> Remove_ttlistener */, /* extends ttclass_ttlistener */ twin_tunnel_SetEnabled_tttimer, twin_tunnel_IsEnabled_tttimer, }, { Class_ttcomponent, id_ttcomponent, magicmask_ttcomponent, magic_ttcomponent, size_ttcomponent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcomponent */, (void *)NULL /* inherits: Build_ttcomponent >> Build_ttobject */, (void *)NULL /* inherits: Break_ttcomponent >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcomponent */, /* extends ttclass_ttobject */ }, { Class_ttdata, id_ttdata, magicmask_ttdata, magic_ttdata, size_ttdata, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttdata */, (void *)NULL /* inherits: Build_ttdata >> Build_ttobject */, (void *)NULL /* inherits: Break_ttdata >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttdata */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttdata */, (void *)NULL /* UNDEFINED: Remove_ttdata */, }, { Class_ttvisible, id_ttvisible, magicmask_ttvisible, magic_ttvisible, size_ttvisible, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvisible */, (void *)NULL /* inherits: Build_ttvisible >> Build_ttobject */, (void *)NULL /* inherits: Break_ttvisible >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ twin_tunnel_AddTo_ttvisible, twin_tunnel_Validate_ttvisible, twin_tunnel_Remove_ttvisible, twin_tunnel_Invalidate_ttvisible, twin_tunnel_SetVisible_ttvisible, twin_tunnel_SetTheme_ttvisible, twin_tunnel_Draw_ttvisible, twin_tunnel_BuiltinRepaint_ttvisible, }, { Class_ttlayout, id_ttlayout, magicmask_ttlayout, magic_ttlayout, size_ttlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlayout */, (void *)NULL /* inherits: Build_ttlayout >> Build_ttobject */, (void *)NULL /* inherits: Break_ttlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttlayout */, }, { Class_ttboxlayout, id_ttboxlayout, magicmask_ttboxlayout, magic_ttboxlayout, size_ttboxlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttboxlayout */, (void *)NULL /* inherits: Build_ttboxlayout >> Build_ttobject */, (void *)NULL /* inherits: Break_ttboxlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttboxlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttboxlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttboxlayout */, /* extends ttclass_ttlayout */ }, { Class_ttborderlayout, id_ttborderlayout, magicmask_ttborderlayout, magic_ttborderlayout, size_ttborderlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttborderlayout */, (void *)NULL /* inherits: Build_ttborderlayout >> Build_ttobject */, (void *)NULL /* inherits: Break_ttborderlayout >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttborderlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttborderlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttborderlayout */, /* extends ttclass_ttlayout */ }, { Class_ttnative, id_ttnative, magicmask_ttnative, magic_ttnative, size_ttnative, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttnative */, (void *)NULL /* inherits: Build_ttnative >> Build_ttobject */, (void *)NULL /* inherits: Break_ttnative >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttnative */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttnative >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttnative >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttnative >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttnative >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttnative >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttnative >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttnative >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttnative >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ twin_tunnel_GetRoot_ttnative, twin_tunnel_GetW_ttnative, twin_tunnel_GetH_ttnative, }, { Class_ttwidget, id_ttwidget, magicmask_ttwidget, magic_ttwidget, size_ttwidget, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwidget */, (void *)NULL /* inherits: Build_ttwidget >> Build_ttobject */, (void *)NULL /* inherits: Break_ttwidget >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttwidget */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttwidget >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttwidget >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttwidget >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttwidget >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttwidget >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttwidget >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttwidget >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttwidget >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ twin_tunnel_SetLayout_ttwidget, twin_tunnel_SetXY_ttwidget, twin_tunnel_SetWH_ttwidget, twin_tunnel_SetXl_ttwidget, twin_tunnel_SetYl_ttwidget, twin_tunnel_SetWl_ttwidget, twin_tunnel_SetHl_ttwidget, twin_tunnel_SetTooltip_ttwidget, }, { Class_ttlabel, id_ttlabel, magicmask_ttlabel, magic_ttlabel, size_ttlabel, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlabel */, (void *)NULL /* inherits: Build_ttlabel >> Build_ttobject */, (void *)NULL /* inherits: Break_ttlabel >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttlabel */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttlabel >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttlabel >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttlabel >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttlabel >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttlabel >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttlabel >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttlabel >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttlabel >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttlabel >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttlabel >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttlabel >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttlabel >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttlabel >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttlabel >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttlabel >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttlabel >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ twin_tunnel_SetFontD_ttlabel, }, { Class_tttooltip, id_tttooltip, magicmask_tttooltip, magic_tttooltip, size_tttooltip, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttooltip */, (void *)NULL /* inherits: Build_tttooltip >> Build_ttobject */, (void *)NULL /* inherits: Break_tttooltip >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttooltip */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttooltip >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_tttooltip >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_tttooltip >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_tttooltip >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_tttooltip >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_tttooltip >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_tttooltip >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_tttooltip >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_tttooltip >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_tttooltip >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttooltip >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttooltip >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttooltip >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_tttooltip >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_tttooltip >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_tttooltip >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetFontD_tttooltip >> SetFontD_ttlabel */, /* extends ttclass_ttlabel */ twin_tunnel_SetWidget_tttooltip, }, { Class_ttbuttongroup, id_ttbuttongroup, magicmask_ttbuttongroup, magic_ttbuttongroup, size_ttbuttongroup, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbuttongroup */, (void *)NULL /* inherits: Build_ttbuttongroup >> Build_ttobject */, (void *)NULL /* inherits: Break_ttbuttongroup >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbuttongroup */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ twin_tunnel_Add_ttbuttongroup, twin_tunnel_Remove_ttbuttongroup, twin_tunnel_SetChecked_ttbuttongroup, }, { Class_ttanybutton, id_ttanybutton, magicmask_ttanybutton, magic_ttanybutton, size_ttanybutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanybutton */, (void *)NULL /* inherits: Build_ttanybutton >> Build_ttobject */, (void *)NULL /* inherits: Break_ttanybutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanybutton >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttanybutton >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttanybutton >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttanybutton >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttanybutton >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttanybutton >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttanybutton >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttanybutton >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttanybutton >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttanybutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanybutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanybutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanybutton >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttanybutton >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttanybutton >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttanybutton >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanybutton */, twin_tunnel_SetAttrD_ttanybutton, }, { Class_ttbutton, id_ttbutton, magicmask_ttbutton, magic_ttbutton, size_ttbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbutton */, (void *)NULL /* inherits: Build_ttbutton >> Build_ttobject */, (void *)NULL /* inherits: Break_ttbutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttbutton >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttbutton >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttbutton >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttbutton >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttbutton >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttbutton >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttbutton >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttbutton >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttbutton >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttbutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttbutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttbutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttbutton >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttbutton >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttbutton >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttbutton >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttbutton */, (void *)NULL /* inherits: SetAttrD_ttbutton >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ twin_tunnel_SetPressed_ttbutton, }, { Class_ttcheckbutton, id_ttcheckbutton, magicmask_ttcheckbutton, magic_ttcheckbutton, size_ttcheckbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckbutton */, (void *)NULL /* inherits: Build_ttcheckbutton >> Build_ttobject */, (void *)NULL /* inherits: Break_ttcheckbutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcheckbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttcheckbutton >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttcheckbutton >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttcheckbutton >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttcheckbutton >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttcheckbutton >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttcheckbutton >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttcheckbutton >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttcheckbutton >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttcheckbutton >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttcheckbutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttcheckbutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttcheckbutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttcheckbutton >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttcheckbutton >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttcheckbutton >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttcheckbutton >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttcheckbutton */, (void *)NULL /* inherits: SetAttrD_ttcheckbutton >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* inherits: SetPressed_ttcheckbutton >> SetPressed_ttbutton */, /* extends ttclass_ttbutton */ twin_tunnel_SetChecked_ttcheckbutton, }, { Class_ttradiobutton, id_ttradiobutton, magicmask_ttradiobutton, magic_ttradiobutton, size_ttradiobutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiobutton */, (void *)NULL /* inherits: Build_ttradiobutton >> Build_ttobject */, (void *)NULL /* inherits: Break_ttradiobutton >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttradiobutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttradiobutton >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttradiobutton >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttradiobutton >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttradiobutton >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttradiobutton >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttradiobutton >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttradiobutton >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttradiobutton >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttradiobutton >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttradiobutton >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttradiobutton >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttradiobutton >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttradiobutton >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttradiobutton >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttradiobutton >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttradiobutton >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttradiobutton */, (void *)NULL /* inherits: SetAttrD_ttradiobutton >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* inherits: SetPressed_ttradiobutton >> SetPressed_ttbutton */, /* extends ttclass_ttbutton */ (void *)NULL /* inherits: SetChecked_ttradiobutton >> SetChecked_ttcheckbutton */, /* extends ttclass_ttcheckbutton */ }, { Class_ttanyscroll, id_ttanyscroll, magicmask_ttanyscroll, magic_ttanyscroll, size_ttanyscroll, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanyscroll */, (void *)NULL /* inherits: Build_ttanyscroll >> Build_ttobject */, (void *)NULL /* inherits: Break_ttanyscroll >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanyscroll */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanyscroll >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttanyscroll >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttanyscroll >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttanyscroll >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttanyscroll >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttanyscroll >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttanyscroll >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttanyscroll >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttanyscroll >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttanyscroll >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanyscroll >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanyscroll >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanyscroll >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttanyscroll >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttanyscroll >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttanyscroll >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanyscroll */, (void *)NULL /* inherits: SetAttrD_ttanyscroll >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttanyscroll */, (void *)NULL /* UNDEFINED: SetState_ttanyscroll */, twin_tunnel_SetOrientation_ttanyscroll, twin_tunnel_SetSize_ttanyscroll, twin_tunnel_SetRealSize_ttanyscroll, twin_tunnel_SetViewSize_ttanyscroll, twin_tunnel_SetPosition_ttanyscroll, }, { Class_ttscrollbar, id_ttscrollbar, magicmask_ttscrollbar, magic_ttscrollbar, size_ttscrollbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollbar */, (void *)NULL /* inherits: Build_ttscrollbar >> Build_ttobject */, (void *)NULL /* inherits: Break_ttscrollbar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscrollbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollbar >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttscrollbar >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttscrollbar >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttscrollbar >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttscrollbar >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttscrollbar >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttscrollbar >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttscrollbar >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttscrollbar >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttscrollbar >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttscrollbar >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttscrollbar >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscrollbar >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttscrollbar >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttscrollbar >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttscrollbar >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttscrollbar */, (void *)NULL /* inherits: SetAttrD_ttscrollbar >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttscrollbar */, (void *)NULL /* UNDEFINED: SetState_ttscrollbar */, (void *)NULL /* inherits: SetOrientation_ttscrollbar >> SetOrientation_ttanyscroll */, (void *)NULL /* inherits: SetSize_ttscrollbar >> SetSize_ttanyscroll */, (void *)NULL /* inherits: SetRealSize_ttscrollbar >> SetRealSize_ttanyscroll */, (void *)NULL /* inherits: SetViewSize_ttscrollbar >> SetViewSize_ttanyscroll */, (void *)NULL /* inherits: SetPosition_ttscrollbar >> SetPosition_ttanyscroll */, /* extends ttclass_ttanyscroll */ }, { Class_ttslider, id_ttslider, magicmask_ttslider, magic_ttslider, size_ttslider, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttslider */, (void *)NULL /* inherits: Build_ttslider >> Build_ttobject */, (void *)NULL /* inherits: Break_ttslider >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttslider */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttslider >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttslider >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttslider >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttslider >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttslider >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttslider >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttslider >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttslider >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttslider >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttslider >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttslider >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttslider >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttslider >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttslider >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttslider >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttslider >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttslider */, (void *)NULL /* inherits: SetAttrD_ttslider >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttslider */, (void *)NULL /* UNDEFINED: SetState_ttslider */, (void *)NULL /* inherits: SetOrientation_ttslider >> SetOrientation_ttanyscroll */, (void *)NULL /* inherits: SetSize_ttslider >> SetSize_ttanyscroll */, (void *)NULL /* inherits: SetRealSize_ttslider >> SetRealSize_ttanyscroll */, (void *)NULL /* inherits: SetViewSize_ttslider >> SetViewSize_ttanyscroll */, (void *)NULL /* inherits: SetPosition_ttslider >> SetPosition_ttanyscroll */, /* extends ttclass_ttanyscroll */ twin_tunnel_SetSlideMin_ttslider, twin_tunnel_SetSlideMax_ttslider, twin_tunnel_SetSlideValue_ttslider, }, { Class_ttprogressbar, id_ttprogressbar, magicmask_ttprogressbar, magic_ttprogressbar, size_ttprogressbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttprogressbar */, (void *)NULL /* inherits: Build_ttprogressbar >> Build_ttobject */, (void *)NULL /* inherits: Break_ttprogressbar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttprogressbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttprogressbar >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttprogressbar >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttprogressbar >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttprogressbar >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttprogressbar >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttprogressbar >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttprogressbar >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttprogressbar >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttprogressbar >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttprogressbar >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttprogressbar >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttprogressbar >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttprogressbar >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttprogressbar >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttprogressbar >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttprogressbar >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttprogressbar */, (void *)NULL /* inherits: SetAttrD_ttprogressbar >> SetAttrD_ttanybutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttprogressbar */, (void *)NULL /* UNDEFINED: SetState_ttprogressbar */, (void *)NULL /* inherits: SetOrientation_ttprogressbar >> SetOrientation_ttanyscroll */, (void *)NULL /* inherits: SetSize_ttprogressbar >> SetSize_ttanyscroll */, (void *)NULL /* inherits: SetRealSize_ttprogressbar >> SetRealSize_ttanyscroll */, (void *)NULL /* inherits: SetViewSize_ttprogressbar >> SetViewSize_ttanyscroll */, (void *)NULL /* inherits: SetPosition_ttprogressbar >> SetPosition_ttanyscroll */, /* extends ttclass_ttanyscroll */ }, { Class_ttscrollpane, id_ttscrollpane, magicmask_ttscrollpane, magic_ttscrollpane, size_ttscrollpane, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollpane */, (void *)NULL /* inherits: Build_ttscrollpane >> Build_ttobject */, (void *)NULL /* inherits: Break_ttscrollpane >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscrollpane */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscrollpane >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttscrollpane >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttscrollpane >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttscrollpane >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttscrollpane >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttscrollpane >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttscrollpane >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttscrollpane >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttscrollpane >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttscrollpane >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttscrollpane >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttscrollpane >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscrollpane >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttscrollpane >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttscrollpane >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttscrollpane >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ twin_tunnel_SetBarX_ttscrollpane, twin_tunnel_SetBarY_ttscrollpane, }, { Class_ttwindow, id_ttwindow, magicmask_ttwindow, magic_ttwindow, size_ttwindow, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwindow */, (void *)NULL /* inherits: Build_ttwindow >> Build_ttobject */, (void *)NULL /* inherits: Break_ttwindow >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttwindow */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttwindow >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttwindow >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttwindow >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttwindow >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttwindow >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttwindow >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttwindow >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttwindow >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttwindow >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttwindow >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttwindow >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttwindow >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttwindow >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttwindow >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttwindow >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttwindow >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ twin_tunnel_SetTitle_ttwindow, }, { Class_ttframe, id_ttframe, magicmask_ttframe, magic_ttframe, size_ttframe, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttframe */, (void *)NULL /* inherits: Build_ttframe >> Build_ttobject */, (void *)NULL /* inherits: Break_ttframe >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttframe */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttframe >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttframe >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttframe >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttframe >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttframe >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttframe >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttframe >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttframe >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttframe >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttframe >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttframe >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttframe >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttframe >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttframe >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttframe >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttframe >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetTitle_ttframe >> SetTitle_ttwindow */, /* extends ttclass_ttwindow */ twin_tunnel_SetMenubar_ttframe, }, { Class_ttscroller, id_ttscroller, magicmask_ttscroller, magic_ttscroller, size_ttscroller, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscroller */, (void *)NULL /* inherits: Build_ttscroller >> Build_ttobject */, (void *)NULL /* inherits: Break_ttscroller >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttscroller */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttscroller >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttscroller >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttscroller >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttscroller >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttscroller >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttscroller >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttscroller >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttscroller >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttscroller >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttscroller >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttscroller >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttscroller >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttscroller >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttscroller >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttscroller >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttscroller >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetTitle_ttscroller >> SetTitle_ttwindow */, /* extends ttclass_ttwindow */ }, { Class_ttmenuitem, id_ttmenuitem, magicmask_ttmenuitem, magic_ttmenuitem, size_ttmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenuitem */, (void *)NULL /* inherits: Build_ttmenuitem >> Build_ttobject */, (void *)NULL /* inherits: Break_ttmenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttmenuitem >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttmenuitem >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttmenuitem >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttmenuitem >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttmenuitem >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttmenuitem >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttmenuitem >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttmenuitem >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ }, { Class_ttcheckmenuitem, id_ttcheckmenuitem, magicmask_ttcheckmenuitem, magic_ttcheckmenuitem, size_ttcheckmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckmenuitem */, (void *)NULL /* inherits: Build_ttcheckmenuitem >> Build_ttobject */, (void *)NULL /* inherits: Break_ttcheckmenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttcheckmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttcheckmenuitem >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttcheckmenuitem >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttcheckmenuitem >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttcheckmenuitem >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttcheckmenuitem >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttcheckmenuitem >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttcheckmenuitem >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttcheckmenuitem >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttradiomenuitem, id_ttradiomenuitem, magicmask_ttradiomenuitem, magic_ttradiomenuitem, size_ttradiomenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiomenuitem */, (void *)NULL /* inherits: Build_ttradiomenuitem >> Build_ttobject */, (void *)NULL /* inherits: Break_ttradiomenuitem >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttradiomenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttradiomenuitem >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttradiomenuitem >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttradiomenuitem >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttradiomenuitem >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttradiomenuitem >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttradiomenuitem >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttradiomenuitem >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttradiomenuitem >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ /* extends ttclass_ttcheckmenuitem */ }, { Class_ttmenu, id_ttmenu, magicmask_ttmenu, magic_ttmenu, size_ttmenu, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenu */, (void *)NULL /* inherits: Build_ttmenu >> Build_ttobject */, (void *)NULL /* inherits: Break_ttmenu >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenu */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttmenu >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttmenu >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttmenu >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttmenu >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttmenu >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttmenu >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttmenu >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttmenu >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttmenubar, id_ttmenubar, magicmask_ttmenubar, magic_ttmenubar, size_ttmenubar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenubar */, (void *)NULL /* inherits: Build_ttmenubar >> Build_ttobject */, (void *)NULL /* inherits: Break_ttmenubar >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttmenubar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttmenubar >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttmenubar >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttmenubar >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttmenubar >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttmenubar >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttmenubar >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttmenubar >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttmenubar >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ }, { Class_ttanytext, id_ttanytext, magicmask_ttanytext, magic_ttanytext, size_ttanytext, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanytext */, (void *)NULL /* inherits: Build_ttanytext >> Build_ttobject */, (void *)NULL /* inherits: Break_ttanytext >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttanytext */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_ttanytext >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_ttanytext >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_ttanytext >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_ttanytext >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_ttanytext >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_ttanytext >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_ttanytext >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_ttanytext >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_ttanytext >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_ttanytext >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_ttanytext >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_ttanytext >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_ttanytext >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_ttanytext >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_ttanytext >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_ttanytext >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetTitle_ttanytext >> SetTitle_ttwindow */, /* extends ttclass_ttwindow */ }, { Class_tttextfield, id_tttextfield, magicmask_tttextfield, magic_tttextfield, size_tttextfield, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextfield */, (void *)NULL /* inherits: Build_tttextfield >> Build_ttobject */, (void *)NULL /* inherits: Break_tttextfield >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttextfield */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextfield >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_tttextfield >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_tttextfield >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_tttextfield >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_tttextfield >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_tttextfield >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_tttextfield >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_tttextfield >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_tttextfield >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_tttextfield >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttextfield >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttextfield >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttextfield >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_tttextfield >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_tttextfield >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_tttextfield >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetTitle_tttextfield >> SetTitle_ttwindow */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ }, { Class_tttextarea, id_tttextarea, magicmask_tttextarea, magic_tttextarea, size_tttextarea, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextarea */, (void *)NULL /* inherits: Build_tttextarea >> Build_ttobject */, (void *)NULL /* inherits: Break_tttextarea >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttextarea */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* inherits: AddTo_tttextarea >> AddTo_ttvisible */, (void *)NULL /* inherits: Validate_tttextarea >> Validate_ttvisible */, (void *)NULL /* inherits: Remove_tttextarea >> Remove_ttvisible */, (void *)NULL /* inherits: Invalidate_tttextarea >> Invalidate_ttvisible */, (void *)NULL /* inherits: SetVisible_tttextarea >> SetVisible_ttvisible */, (void *)NULL /* inherits: SetTheme_tttextarea >> SetTheme_ttvisible */, (void *)NULL /* inherits: Draw_tttextarea >> Draw_ttvisible */, (void *)NULL /* inherits: BuiltinRepaint_tttextarea >> BuiltinRepaint_ttvisible */, /* extends ttclass_ttvisible */ (void *)NULL /* inherits: SetLayout_tttextarea >> SetLayout_ttwidget */, (void *)NULL /* inherits: SetXY_tttextarea >> SetXY_ttwidget */, (void *)NULL /* inherits: SetWH_tttextarea >> SetWH_ttwidget */, (void *)NULL /* inherits: SetXl_tttextarea >> SetXl_ttwidget */, (void *)NULL /* inherits: SetYl_tttextarea >> SetYl_ttwidget */, (void *)NULL /* inherits: SetWl_tttextarea >> SetWl_ttwidget */, (void *)NULL /* inherits: SetHl_tttextarea >> SetHl_ttwidget */, (void *)NULL /* inherits: SetTooltip_tttextarea >> SetTooltip_ttwidget */, /* extends ttclass_ttwidget */ (void *)NULL /* inherits: SetTitle_tttextarea >> SetTitle_ttwindow */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ /* extends ttclass_tttextfield */ }, { Class_tttheme, id_tttheme, magicmask_tttheme, magic_tttheme, size_tttheme, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttheme */, (void *)NULL /* inherits: Build_tttheme >> Build_ttobject */, (void *)NULL /* inherits: Break_tttheme >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_tttheme */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { Class_ttapplication, id_ttapplication, magicmask_ttapplication, magic_ttapplication, size_ttapplication, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttapplication */, twin_tunnel_Build_ttapplication, (void *)NULL /* inherits: Break_ttapplication >> Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttapplication */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { twin_tunnel_Sync, twin_tunnel_Flush, twin_tunnel_TimidFlush, twin_tunnel_MainLoopOnce, twin_tunnel_DeleteCallback, twin_tunnel_Close, twin_tunnel_ConnectionFd, twin_tunnel_GetErrno, twin_tunnel_GetErrnoDetail, twin_tunnel_StrError, twin_tunnel_StrErrorDetail, }, }; ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/xml_c����������������������������������������������������������������������0000664�0000000�0000000�00000007367�13775351206�0016041�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is `xml_c' and is preprocessed by m4 to produce `xml_m4.c' * * It must be a valid m4 file, and must produce a valid C file. * */ #include <stdio.h> DECL_BEFORE #include "array.h" static TT_CONST ttbyte * dump_file_name; static FILE * dump_file; static ttbyte open_dump_file(void) { if ((dump_file = fopen(dump_file_name, "w"))) { fprintf(dump_file, "%s", "<?xml version=\"1.0\"?>\n" "<TT:dump xmlns:TT=\"http://twin.sourceforge.net/libTT/xml/\">\n" ); return TRUE; } return FALSE; } static void close_dump_file(void) { fprintf(dump_file, "%s", "</TT:dump>\n"); fclose(dump_file); } TT_INLINE void dump_object(ttobject o) { ttopaque i, last; ttopaque id; TT_CONST ttbyte *name; ttbyte buf[64]; ttarg data; ttopaque type; if ((id = OBJ2ID(o))) { fprintf(dump_file, " <TT:%s>\n", name = TTClassNameOf((tt_obj)id)); sprintf(buf, "%s_field_last", name); last = (ttopaque)TTGet_ttfield(buf); i = (ttopaque)TTGet_ttfield("ttobj_field_first"); for (; i < last; i++) { /* * evil trick here: * TTGet_ttfield() actually returns an integer, * and we try all values for that integer from * ttfield "ttobj_field_first" to "<objtype>_field_last" */ if ((name = TTGetName_ttfield((tt_obj)i)) && TTGetField_ttobj((tt_obj)id, (tt_obj)i, &data) && data.value != (ttany)0) { type = data.type; /* if it's an array of bytes (i.e. a string) then print as a string */ if (TTFromType_ttclass(type) == TTClass_ttbyte && TTIsArrayType_ttclass(type)) fprintf(dump_file, " <TT:%s value=\"%.*s\"/>\n", name, (int)data.size, (ttbyte *)(ttopaque)data.value); else fprintf(dump_file, " <TT:%s value=\"0x%lX\"/>\n", name, (unsigned long)data.value); } } fprintf(dump_file, " </TT:%s>\n", TTClassNameOf((tt_obj)id)); } } static void dump_all(void) { ttbyte n; ttopaque i; ttobj o; if (open_dump_file()) { for (n = order_first; n < order_last; n++) { for (i = 0; i < IdTop[n]; i++) { if ((o = IdList[n][i]) && IS(ttobject,o) && !(((ttobject)o)->oflags && ttobject_oflags_static)) { dump_object((ttobject)o); } } } close_dump_file(); } } /* * We need to write down only overloaded methods (actually none). */ static ttbyte HWDEF(Sync)(void) { return 1; } static ttbyte HWDEF(Flush)(void) { return 1; } static ttbyte HWDEF(TimidFlush)(void) { return 1; } static ttbyte HWDEF(MainLoopOnce)(ttbyte wait) { TTExitMainLoop(); return 1; } static void HWDEF(DeleteCallback)(ttcallback o) { } static void HWDEF(Close)(void) { dump_all(); } static int HWDEF(ConnectionFd)(void) { return -1; } static ttuint HWDEF(GetErrno)(void) { return 0; } static ttuint HWDEF(GetErrnoDetail)(void) { return 0; } static TT_CONST ttbyte *HWDEF(StrError)(ttuint E) { return ""; } static TT_CONST ttbyte *HWDEF(StrErrorDetail)(ttuint E, ttuint S) { return ""; } #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_xml_InitHW(tthw *HW) #endif { ttbyte *arg = TTD.HWOptions; /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = &xml_TTClasses.HW; dump_file_name = "libTT.xml"; if (arg && (arg = strstr("file=", arg))) { dump_file_name = arg + 5; if ((arg = strchr(dump_file_name, ','))) *arg = '\0'; } return &xml_TTClasses; } DECL_AFTER �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/HW/xml_m4.c�������������������������������������������������������������������0000664�0000000�0000000�00000147566�13775351206�0016366�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from xml_c by m4/hw.m4h, do not edit! */ /* * xml_m4.c -- implementation of libTT methods on "xml" target display * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ /* * WARNING! * * this file is xml_c and is preprocessed by m4 to produce xml_m4.c * * It must be a valid m4 file, and must produce a valid C file. * */ #include <stdio.h> /* order is crucial here! */ #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #endif /* include our internal copy of TT.h instead of the public one */ #include "TT.h" #include <TT/TTerrno.h> #include "mutex.h" #include "TTextern.h" #include "TTassert.h" #include "utils.h" #include "inlines.h" #include "seterrno.h" #include "theme.h" #include "common_m4.h" static s_ttclasses xml_TTClasses; #include "array.h" static TT_CONST ttbyte *dump_file_name; static FILE *dump_file; static ttbyte open_dump_file(void) { if ((dump_file = fopen(dump_file_name, "w"))) { fprintf(dump_file, "%s", "<?xml version=\"1.0\"?>\n" "<TT:dump xmlns:TT=\"http://twin.sourceforge.net/libTT/xml/\">\n"); return ttrue; } return tfalse; } static void close_dump_file(void) { fprintf(dump_file, "%s", "</TT:dump>\n"); fclose(dump_file); } TT_INLINE void dump_object(ttobject o) { ttopaque i, last; ttopaque id; TT_CONST ttbyte *name; ttbyte buf[64]; ttarg data; ttopaque type; if ((id = OBJ2ID(o))) { fprintf(dump_file, " <TT:%s>\n", name = TTClassNameOf((tt_obj)id)); sprintf(buf, "%s_field_last", name); last = (ttopaque)TTGet_ttfield(buf); i = (ttopaque)TTGet_ttfield("ttobj_field_first"); for (; i < last; i++) { /* * evil trick here: * TTGet_ttfield() actually returns an integer, * and we try all values for that integer from * ttfield "ttobj_field_first" to "<objtype>_field_last" */ if ((name = TTGetName_ttfield((tt_obj)i)) && TTGetField_ttobj((tt_obj)id, (tt_obj)i, &data) && data.value != (ttany)0) { type = data.type; /* if it's an array of bytes (i.e. a string) then print as a string */ if (TTFromType_ttclass(type) == TTClass_ttbyte && TTIsArrayType_ttclass(type)) fprintf(dump_file, " <TT:%s value=\"%.*s\"/>\n", name, (int)data.size, (ttbyte *)(ttopaque)data.value); else fprintf(dump_file, " <TT:%s value=\"0x%lX\"/>\n", name, (unsigned long)data.value); } } fprintf(dump_file, " </TT:%s>\n", TTClassNameOf((tt_obj)id)); } } static void dump_all(void) { ttbyte n; ttopaque i; ttobj o; if (open_dump_file()) { for (n = order_first; n < order_last; n++) { for (i = 0; i < IdTop[n]; i++) { if ((o = IdList[n][i]) && IS(ttobject, o) && !(((ttobject)o)->oflags && ttobject_oflags_static)) { dump_object((ttobject)o); } } } close_dump_file(); } } /* * We need to write down only overloaded methods (actually none). */ static ttbyte xml_Sync(void) { return 1; } static ttbyte xml_Flush(void) { return 1; } static ttbyte xml_TimidFlush(void) { return 1; } static ttbyte xml_MainLoopOnce(ttbyte wait) { TTExitMainLoop(); return 1; } static void xml_DeleteCallback(ttcallback o) {} static void xml_Close(void) { dump_all(); } static int xml_ConnectionFd(void) { return -1; } static ttuint xml_GetErrno(void) { return 0; } static ttuint xml_GetErrnoDetail(void) { return 0; } static TT_CONST ttbyte *xml_StrError(ttuint E) { return ""; } static TT_CONST ttbyte *xml_StrErrorDetail(ttuint E, ttuint S) { return ""; } #ifdef THIS_MODULE ttclasses InitModule(tthw *HW) #else ttclasses _TT_xml_InitHW(tthw *HW) #endif { ttbyte *arg = TTD.HWOptions; /* * (*HW) must be set even if initialization fails, * to report error messages. */ *HW = &xml_TTClasses.HW; dump_file_name = "libTT.xml"; if (arg && (arg = strstr("file=", arg))) { dump_file_name = arg + 5; if ((arg = strchr(dump_file_name, ','))) *arg = '\0'; } return &xml_TTClasses; } /* * use default values for methods not implemented in xml_c * * null display target MUST IMPLEMENT ALL METHODS, even if as stubs. */ static s_ttclasses xml_TTClasses = { { Class_ttobj, id_ttobj, magicmask_ttobj, magic_ttobj, size_ttobj, }, { Class_ttclass, id_ttclass, magicmask_ttclass, magic_ttclass, size_ttclass, /* extends ttclass_ttobj */ }, { Class_ttobject, id_ttobject, magicmask_ttobject, magic_ttobject, size_ttobject, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttobject */, (void *)NULL /* UNDEFINED: Build_ttobject */, (void *)NULL /* UNDEFINED: Break_ttobject */, (void *)NULL /* UNDEFINED: Del_ttobject */, }, { Class_ttvector, id_ttvector, magicmask_ttvector, magic_ttvector, size_ttvector, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvector */, (void *)NULL /* UNDEFINED: Build_ttvector */, (void *)NULL /* UNDEFINED: Break_ttvector */, (void *)NULL /* UNDEFINED: Del_ttvector */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: GetAt_ttvector */, (void *)NULL /* UNDEFINED: SetAt_ttvector */, (void *)NULL /* UNDEFINED: AddY_ttvector */, (void *)NULL /* UNDEFINED: ContainsValue_ttvector */, (void *)NULL /* UNDEFINED: RemoveRange_ttvector */, }, { Class_ttfield, id_ttfield, magicmask_ttfield, magic_ttfield, size_ttfield, /* extends ttclass_ttobj */ }, { Class_ttmethod, id_ttmethod, magicmask_ttmethod, magic_ttmethod, size_ttmethod, /* extends ttclass_ttobj */ }, { Class_ttevent, id_ttevent, magicmask_ttevent, magic_ttevent, size_ttevent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttevent */, (void *)NULL /* UNDEFINED: Build_ttevent */, (void *)NULL /* UNDEFINED: Break_ttevent */, (void *)NULL /* UNDEFINED: Del_ttevent */, /* extends ttclass_ttobject */ }, { Class_tteventbig, id_tteventbig, magicmask_tteventbig, magic_tteventbig, size_tteventbig, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventbig */, (void *)NULL /* UNDEFINED: Build_tteventbig */, (void *)NULL /* UNDEFINED: Break_tteventbig */, (void *)NULL /* UNDEFINED: Del_tteventbig */, /* extends ttclass_ttobject */ /* extends ttclass_ttevent */ }, { Class_ttbitmask, id_ttbitmask, magicmask_ttbitmask, magic_ttbitmask, size_ttbitmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbitmask */, (void *)NULL /* UNDEFINED: Build_ttbitmask */, (void *)NULL /* UNDEFINED: Break_ttbitmask */, (void *)NULL /* UNDEFINED: Del_ttbitmask */, /* extends ttclass_ttobject */ }, { Class_tteventmask, id_tteventmask, magicmask_tteventmask, magic_tteventmask, size_tteventmask, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tteventmask */, (void *)NULL /* UNDEFINED: Build_tteventmask */, (void *)NULL /* UNDEFINED: Break_tteventmask */, (void *)NULL /* UNDEFINED: Del_tteventmask */, /* extends ttclass_ttobject */ }, { Class_ttcallback, id_ttcallback, magicmask_ttcallback, magic_ttcallback, size_ttcallback, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcallback */, (void *)NULL /* UNDEFINED: Build_ttcallback */, (void *)NULL /* UNDEFINED: Break_ttcallback */, (void *)NULL /* UNDEFINED: Del_ttcallback */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttcallback */, }, { Class_ttlistener, id_ttlistener, magicmask_ttlistener, magic_ttlistener, size_ttlistener, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlistener */, (void *)NULL /* UNDEFINED: Build_ttlistener */, (void *)NULL /* UNDEFINED: Break_ttlistener */, (void *)NULL /* UNDEFINED: Del_ttlistener */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_ttlistener */, /* extends ttclass_ttcallback */ (void *)NULL /* UNDEFINED: AddTo_ttlistener */, (void *)NULL /* UNDEFINED: Remove_ttlistener */, }, { Class_tttimer, id_tttimer, magicmask_tttimer, magic_tttimer, size_tttimer, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttimer */, (void *)NULL /* UNDEFINED: Build_tttimer */, (void *)NULL /* UNDEFINED: Break_tttimer */, (void *)NULL /* UNDEFINED: Del_tttimer */, /* extends ttclass_ttobject */ (void *)NULL /* UNDEFINED: Create_tttimer */, /* extends ttclass_ttcallback */ (void *)NULL /* UNDEFINED: AddTo_tttimer */, (void *)NULL /* UNDEFINED: Remove_tttimer */, /* extends ttclass_ttlistener */ (void *)NULL /* UNDEFINED: SetEnabled_tttimer */, (void *)NULL /* UNDEFINED: IsEnabled_tttimer */, }, { Class_ttcomponent, id_ttcomponent, magicmask_ttcomponent, magic_ttcomponent, size_ttcomponent, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcomponent */, (void *)NULL /* UNDEFINED: Build_ttcomponent */, (void *)NULL /* UNDEFINED: Break_ttcomponent */, (void *)NULL /* UNDEFINED: Del_ttcomponent */, /* extends ttclass_ttobject */ }, { Class_ttdata, id_ttdata, magicmask_ttdata, magic_ttdata, size_ttdata, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttdata */, (void *)NULL /* UNDEFINED: Build_ttdata */, (void *)NULL /* UNDEFINED: Break_ttdata */, (void *)NULL /* UNDEFINED: Del_ttdata */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttdata */, (void *)NULL /* UNDEFINED: Remove_ttdata */, }, { Class_ttvisible, id_ttvisible, magicmask_ttvisible, magic_ttvisible, size_ttvisible, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttvisible */, (void *)NULL /* UNDEFINED: Build_ttvisible */, (void *)NULL /* UNDEFINED: Break_ttvisible */, (void *)NULL /* UNDEFINED: Del_ttvisible */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttvisible */, (void *)NULL /* UNDEFINED: Validate_ttvisible */, (void *)NULL /* UNDEFINED: Remove_ttvisible */, (void *)NULL /* UNDEFINED: Invalidate_ttvisible */, (void *)NULL /* UNDEFINED: SetVisible_ttvisible */, (void *)NULL /* UNDEFINED: SetTheme_ttvisible */, (void *)NULL /* UNDEFINED: Draw_ttvisible */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttvisible */, }, { Class_ttlayout, id_ttlayout, magicmask_ttlayout, magic_ttlayout, size_ttlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlayout */, (void *)NULL /* UNDEFINED: Build_ttlayout */, (void *)NULL /* UNDEFINED: Break_ttlayout */, (void *)NULL /* UNDEFINED: Del_ttlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttlayout */, }, { Class_ttboxlayout, id_ttboxlayout, magicmask_ttboxlayout, magic_ttboxlayout, size_ttboxlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttboxlayout */, (void *)NULL /* UNDEFINED: Build_ttboxlayout */, (void *)NULL /* UNDEFINED: Break_ttboxlayout */, (void *)NULL /* UNDEFINED: Del_ttboxlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttboxlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttboxlayout */, /* extends ttclass_ttlayout */ }, { Class_ttborderlayout, id_ttborderlayout, magicmask_ttborderlayout, magic_ttborderlayout, size_ttborderlayout, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttborderlayout */, (void *)NULL /* UNDEFINED: Build_ttborderlayout */, (void *)NULL /* UNDEFINED: Break_ttborderlayout */, (void *)NULL /* UNDEFINED: Del_ttborderlayout */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: SetWidget_ttborderlayout */, (void *)NULL /* UNDEFINED: DoLayout_ttborderlayout */, /* extends ttclass_ttlayout */ }, { Class_ttnative, id_ttnative, magicmask_ttnative, magic_ttnative, size_ttnative, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttnative */, (void *)NULL /* UNDEFINED: Build_ttnative */, (void *)NULL /* UNDEFINED: Break_ttnative */, (void *)NULL /* UNDEFINED: Del_ttnative */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttnative */, (void *)NULL /* UNDEFINED: Validate_ttnative */, (void *)NULL /* UNDEFINED: Remove_ttnative */, (void *)NULL /* UNDEFINED: Invalidate_ttnative */, (void *)NULL /* UNDEFINED: SetVisible_ttnative */, (void *)NULL /* UNDEFINED: SetTheme_ttnative */, (void *)NULL /* UNDEFINED: Draw_ttnative */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttnative */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: GetRoot_ttnative */, (void *)NULL /* UNDEFINED: GetW_ttnative */, (void *)NULL /* UNDEFINED: GetH_ttnative */, }, { Class_ttwidget, id_ttwidget, magicmask_ttwidget, magic_ttwidget, size_ttwidget, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwidget */, (void *)NULL /* UNDEFINED: Build_ttwidget */, (void *)NULL /* UNDEFINED: Break_ttwidget */, (void *)NULL /* UNDEFINED: Del_ttwidget */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttwidget */, (void *)NULL /* UNDEFINED: Validate_ttwidget */, (void *)NULL /* UNDEFINED: Remove_ttwidget */, (void *)NULL /* UNDEFINED: Invalidate_ttwidget */, (void *)NULL /* UNDEFINED: SetVisible_ttwidget */, (void *)NULL /* UNDEFINED: SetTheme_ttwidget */, (void *)NULL /* UNDEFINED: Draw_ttwidget */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttwidget */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttwidget */, (void *)NULL /* UNDEFINED: SetXY_ttwidget */, (void *)NULL /* UNDEFINED: SetWH_ttwidget */, (void *)NULL /* UNDEFINED: SetXl_ttwidget */, (void *)NULL /* UNDEFINED: SetYl_ttwidget */, (void *)NULL /* UNDEFINED: SetWl_ttwidget */, (void *)NULL /* UNDEFINED: SetHl_ttwidget */, (void *)NULL /* UNDEFINED: SetTooltip_ttwidget */, }, { Class_ttlabel, id_ttlabel, magicmask_ttlabel, magic_ttlabel, size_ttlabel, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttlabel */, (void *)NULL /* UNDEFINED: Build_ttlabel */, (void *)NULL /* UNDEFINED: Break_ttlabel */, (void *)NULL /* UNDEFINED: Del_ttlabel */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttlabel */, (void *)NULL /* UNDEFINED: Validate_ttlabel */, (void *)NULL /* UNDEFINED: Remove_ttlabel */, (void *)NULL /* UNDEFINED: Invalidate_ttlabel */, (void *)NULL /* UNDEFINED: SetVisible_ttlabel */, (void *)NULL /* UNDEFINED: SetTheme_ttlabel */, (void *)NULL /* UNDEFINED: Draw_ttlabel */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttlabel */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttlabel */, (void *)NULL /* UNDEFINED: SetXY_ttlabel */, (void *)NULL /* UNDEFINED: SetWH_ttlabel */, (void *)NULL /* UNDEFINED: SetXl_ttlabel */, (void *)NULL /* UNDEFINED: SetYl_ttlabel */, (void *)NULL /* UNDEFINED: SetWl_ttlabel */, (void *)NULL /* UNDEFINED: SetHl_ttlabel */, (void *)NULL /* UNDEFINED: SetTooltip_ttlabel */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetFontD_ttlabel */, }, { Class_tttooltip, id_tttooltip, magicmask_tttooltip, magic_tttooltip, size_tttooltip, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttooltip */, (void *)NULL /* UNDEFINED: Build_tttooltip */, (void *)NULL /* UNDEFINED: Break_tttooltip */, (void *)NULL /* UNDEFINED: Del_tttooltip */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_tttooltip */, (void *)NULL /* UNDEFINED: Validate_tttooltip */, (void *)NULL /* UNDEFINED: Remove_tttooltip */, (void *)NULL /* UNDEFINED: Invalidate_tttooltip */, (void *)NULL /* UNDEFINED: SetVisible_tttooltip */, (void *)NULL /* UNDEFINED: SetTheme_tttooltip */, (void *)NULL /* UNDEFINED: Draw_tttooltip */, (void *)NULL /* UNDEFINED: BuiltinRepaint_tttooltip */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttooltip */, (void *)NULL /* UNDEFINED: SetXY_tttooltip */, (void *)NULL /* UNDEFINED: SetWH_tttooltip */, (void *)NULL /* UNDEFINED: SetXl_tttooltip */, (void *)NULL /* UNDEFINED: SetYl_tttooltip */, (void *)NULL /* UNDEFINED: SetWl_tttooltip */, (void *)NULL /* UNDEFINED: SetHl_tttooltip */, (void *)NULL /* UNDEFINED: SetTooltip_tttooltip */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetFontD_tttooltip */, /* extends ttclass_ttlabel */ (void *)NULL /* UNDEFINED: SetWidget_tttooltip */, }, { Class_ttbuttongroup, id_ttbuttongroup, magicmask_ttbuttongroup, magic_ttbuttongroup, size_ttbuttongroup, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbuttongroup */, (void *)NULL /* UNDEFINED: Build_ttbuttongroup */, (void *)NULL /* UNDEFINED: Break_ttbuttongroup */, (void *)NULL /* UNDEFINED: Del_ttbuttongroup */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: Add_ttbuttongroup */, (void *)NULL /* UNDEFINED: Remove_ttbuttongroup */, (void *)NULL /* UNDEFINED: SetChecked_ttbuttongroup */, }, { Class_ttanybutton, id_ttanybutton, magicmask_ttanybutton, magic_ttanybutton, size_ttanybutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanybutton */, (void *)NULL /* UNDEFINED: Build_ttanybutton */, (void *)NULL /* UNDEFINED: Break_ttanybutton */, (void *)NULL /* UNDEFINED: Del_ttanybutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttanybutton */, (void *)NULL /* UNDEFINED: Validate_ttanybutton */, (void *)NULL /* UNDEFINED: Remove_ttanybutton */, (void *)NULL /* UNDEFINED: Invalidate_ttanybutton */, (void *)NULL /* UNDEFINED: SetVisible_ttanybutton */, (void *)NULL /* UNDEFINED: SetTheme_ttanybutton */, (void *)NULL /* UNDEFINED: Draw_ttanybutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttanybutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanybutton */, (void *)NULL /* UNDEFINED: SetXY_ttanybutton */, (void *)NULL /* UNDEFINED: SetWH_ttanybutton */, (void *)NULL /* UNDEFINED: SetXl_ttanybutton */, (void *)NULL /* UNDEFINED: SetYl_ttanybutton */, (void *)NULL /* UNDEFINED: SetWl_ttanybutton */, (void *)NULL /* UNDEFINED: SetHl_ttanybutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttanybutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanybutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttanybutton */, }, { Class_ttbutton, id_ttbutton, magicmask_ttbutton, magic_ttbutton, size_ttbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttbutton */, (void *)NULL /* UNDEFINED: Build_ttbutton */, (void *)NULL /* UNDEFINED: Break_ttbutton */, (void *)NULL /* UNDEFINED: Del_ttbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttbutton */, (void *)NULL /* UNDEFINED: Validate_ttbutton */, (void *)NULL /* UNDEFINED: Remove_ttbutton */, (void *)NULL /* UNDEFINED: Invalidate_ttbutton */, (void *)NULL /* UNDEFINED: SetVisible_ttbutton */, (void *)NULL /* UNDEFINED: SetTheme_ttbutton */, (void *)NULL /* UNDEFINED: Draw_ttbutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttbutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttbutton */, (void *)NULL /* UNDEFINED: SetXY_ttbutton */, (void *)NULL /* UNDEFINED: SetWH_ttbutton */, (void *)NULL /* UNDEFINED: SetXl_ttbutton */, (void *)NULL /* UNDEFINED: SetYl_ttbutton */, (void *)NULL /* UNDEFINED: SetWl_ttbutton */, (void *)NULL /* UNDEFINED: SetHl_ttbutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttbutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttbutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttbutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttbutton */, }, { Class_ttcheckbutton, id_ttcheckbutton, magicmask_ttcheckbutton, magic_ttcheckbutton, size_ttcheckbutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckbutton */, (void *)NULL /* UNDEFINED: Build_ttcheckbutton */, (void *)NULL /* UNDEFINED: Break_ttcheckbutton */, (void *)NULL /* UNDEFINED: Del_ttcheckbutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttcheckbutton */, (void *)NULL /* UNDEFINED: Validate_ttcheckbutton */, (void *)NULL /* UNDEFINED: Remove_ttcheckbutton */, (void *)NULL /* UNDEFINED: Invalidate_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetVisible_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetTheme_ttcheckbutton */, (void *)NULL /* UNDEFINED: Draw_ttcheckbutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttcheckbutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetXY_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetWH_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetXl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetYl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetWl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetHl_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttcheckbutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttcheckbutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttcheckbutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttcheckbutton */, /* extends ttclass_ttbutton */ (void *)NULL /* UNDEFINED: SetChecked_ttcheckbutton */, }, { Class_ttradiobutton, id_ttradiobutton, magicmask_ttradiobutton, magic_ttradiobutton, size_ttradiobutton, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiobutton */, (void *)NULL /* UNDEFINED: Build_ttradiobutton */, (void *)NULL /* UNDEFINED: Break_ttradiobutton */, (void *)NULL /* UNDEFINED: Del_ttradiobutton */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttradiobutton */, (void *)NULL /* UNDEFINED: Validate_ttradiobutton */, (void *)NULL /* UNDEFINED: Remove_ttradiobutton */, (void *)NULL /* UNDEFINED: Invalidate_ttradiobutton */, (void *)NULL /* UNDEFINED: SetVisible_ttradiobutton */, (void *)NULL /* UNDEFINED: SetTheme_ttradiobutton */, (void *)NULL /* UNDEFINED: Draw_ttradiobutton */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttradiobutton */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttradiobutton */, (void *)NULL /* UNDEFINED: SetXY_ttradiobutton */, (void *)NULL /* UNDEFINED: SetWH_ttradiobutton */, (void *)NULL /* UNDEFINED: SetXl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetYl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetWl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetHl_ttradiobutton */, (void *)NULL /* UNDEFINED: SetTooltip_ttradiobutton */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttradiobutton */, (void *)NULL /* UNDEFINED: SetAttrD_ttradiobutton */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: SetPressed_ttradiobutton */, /* extends ttclass_ttbutton */ (void *)NULL /* UNDEFINED: SetChecked_ttradiobutton */, /* extends ttclass_ttcheckbutton */ }, { Class_ttanyscroll, id_ttanyscroll, magicmask_ttanyscroll, magic_ttanyscroll, size_ttanyscroll, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanyscroll */, (void *)NULL /* UNDEFINED: Build_ttanyscroll */, (void *)NULL /* UNDEFINED: Break_ttanyscroll */, (void *)NULL /* UNDEFINED: Del_ttanyscroll */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttanyscroll */, (void *)NULL /* UNDEFINED: Validate_ttanyscroll */, (void *)NULL /* UNDEFINED: Remove_ttanyscroll */, (void *)NULL /* UNDEFINED: Invalidate_ttanyscroll */, (void *)NULL /* UNDEFINED: SetVisible_ttanyscroll */, (void *)NULL /* UNDEFINED: SetTheme_ttanyscroll */, (void *)NULL /* UNDEFINED: Draw_ttanyscroll */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttanyscroll */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanyscroll */, (void *)NULL /* UNDEFINED: SetXY_ttanyscroll */, (void *)NULL /* UNDEFINED: SetWH_ttanyscroll */, (void *)NULL /* UNDEFINED: SetXl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetYl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetWl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetHl_ttanyscroll */, (void *)NULL /* UNDEFINED: SetTooltip_ttanyscroll */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttanyscroll */, (void *)NULL /* UNDEFINED: SetAttrD_ttanyscroll */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttanyscroll */, (void *)NULL /* UNDEFINED: SetState_ttanyscroll */, (void *)NULL /* UNDEFINED: SetOrientation_ttanyscroll */, (void *)NULL /* UNDEFINED: SetSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetRealSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetViewSize_ttanyscroll */, (void *)NULL /* UNDEFINED: SetPosition_ttanyscroll */, }, { Class_ttscrollbar, id_ttscrollbar, magicmask_ttscrollbar, magic_ttscrollbar, size_ttscrollbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollbar */, (void *)NULL /* UNDEFINED: Build_ttscrollbar */, (void *)NULL /* UNDEFINED: Break_ttscrollbar */, (void *)NULL /* UNDEFINED: Del_ttscrollbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttscrollbar */, (void *)NULL /* UNDEFINED: Validate_ttscrollbar */, (void *)NULL /* UNDEFINED: Remove_ttscrollbar */, (void *)NULL /* UNDEFINED: Invalidate_ttscrollbar */, (void *)NULL /* UNDEFINED: SetVisible_ttscrollbar */, (void *)NULL /* UNDEFINED: SetTheme_ttscrollbar */, (void *)NULL /* UNDEFINED: Draw_ttscrollbar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttscrollbar */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscrollbar */, (void *)NULL /* UNDEFINED: SetXY_ttscrollbar */, (void *)NULL /* UNDEFINED: SetWH_ttscrollbar */, (void *)NULL /* UNDEFINED: SetXl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetYl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetWl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetHl_ttscrollbar */, (void *)NULL /* UNDEFINED: SetTooltip_ttscrollbar */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttscrollbar */, (void *)NULL /* UNDEFINED: SetAttrD_ttscrollbar */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttscrollbar */, (void *)NULL /* UNDEFINED: SetState_ttscrollbar */, (void *)NULL /* UNDEFINED: SetOrientation_ttscrollbar */, (void *)NULL /* UNDEFINED: SetSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetRealSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetViewSize_ttscrollbar */, (void *)NULL /* UNDEFINED: SetPosition_ttscrollbar */, /* extends ttclass_ttanyscroll */ }, { Class_ttslider, id_ttslider, magicmask_ttslider, magic_ttslider, size_ttslider, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttslider */, (void *)NULL /* UNDEFINED: Build_ttslider */, (void *)NULL /* UNDEFINED: Break_ttslider */, (void *)NULL /* UNDEFINED: Del_ttslider */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttslider */, (void *)NULL /* UNDEFINED: Validate_ttslider */, (void *)NULL /* UNDEFINED: Remove_ttslider */, (void *)NULL /* UNDEFINED: Invalidate_ttslider */, (void *)NULL /* UNDEFINED: SetVisible_ttslider */, (void *)NULL /* UNDEFINED: SetTheme_ttslider */, (void *)NULL /* UNDEFINED: Draw_ttslider */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttslider */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttslider */, (void *)NULL /* UNDEFINED: SetXY_ttslider */, (void *)NULL /* UNDEFINED: SetWH_ttslider */, (void *)NULL /* UNDEFINED: SetXl_ttslider */, (void *)NULL /* UNDEFINED: SetYl_ttslider */, (void *)NULL /* UNDEFINED: SetWl_ttslider */, (void *)NULL /* UNDEFINED: SetHl_ttslider */, (void *)NULL /* UNDEFINED: SetTooltip_ttslider */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttslider */, (void *)NULL /* UNDEFINED: SetAttrD_ttslider */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttslider */, (void *)NULL /* UNDEFINED: SetState_ttslider */, (void *)NULL /* UNDEFINED: SetOrientation_ttslider */, (void *)NULL /* UNDEFINED: SetSize_ttslider */, (void *)NULL /* UNDEFINED: SetRealSize_ttslider */, (void *)NULL /* UNDEFINED: SetViewSize_ttslider */, (void *)NULL /* UNDEFINED: SetPosition_ttslider */, /* extends ttclass_ttanyscroll */ (void *)NULL /* UNDEFINED: SetSlideMin_ttslider */, (void *)NULL /* UNDEFINED: SetSlideMax_ttslider */, (void *)NULL /* UNDEFINED: SetSlideValue_ttslider */, }, { Class_ttprogressbar, id_ttprogressbar, magicmask_ttprogressbar, magic_ttprogressbar, size_ttprogressbar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttprogressbar */, (void *)NULL /* UNDEFINED: Build_ttprogressbar */, (void *)NULL /* UNDEFINED: Break_ttprogressbar */, (void *)NULL /* UNDEFINED: Del_ttprogressbar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttprogressbar */, (void *)NULL /* UNDEFINED: Validate_ttprogressbar */, (void *)NULL /* UNDEFINED: Remove_ttprogressbar */, (void *)NULL /* UNDEFINED: Invalidate_ttprogressbar */, (void *)NULL /* UNDEFINED: SetVisible_ttprogressbar */, (void *)NULL /* UNDEFINED: SetTheme_ttprogressbar */, (void *)NULL /* UNDEFINED: Draw_ttprogressbar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttprogressbar */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttprogressbar */, (void *)NULL /* UNDEFINED: SetXY_ttprogressbar */, (void *)NULL /* UNDEFINED: SetWH_ttprogressbar */, (void *)NULL /* UNDEFINED: SetXl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetYl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetWl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetHl_ttprogressbar */, (void *)NULL /* UNDEFINED: SetTooltip_ttprogressbar */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: CacheThemeShape_ttprogressbar */, (void *)NULL /* UNDEFINED: SetAttrD_ttprogressbar */, /* extends ttclass_ttanybutton */ (void *)NULL /* UNDEFINED: Recalculate_ttprogressbar */, (void *)NULL /* UNDEFINED: SetState_ttprogressbar */, (void *)NULL /* UNDEFINED: SetOrientation_ttprogressbar */, (void *)NULL /* UNDEFINED: SetSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetRealSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetViewSize_ttprogressbar */, (void *)NULL /* UNDEFINED: SetPosition_ttprogressbar */, /* extends ttclass_ttanyscroll */ }, { Class_ttscrollpane, id_ttscrollpane, magicmask_ttscrollpane, magic_ttscrollpane, size_ttscrollpane, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscrollpane */, (void *)NULL /* UNDEFINED: Build_ttscrollpane */, (void *)NULL /* UNDEFINED: Break_ttscrollpane */, (void *)NULL /* UNDEFINED: Del_ttscrollpane */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttscrollpane */, (void *)NULL /* UNDEFINED: Validate_ttscrollpane */, (void *)NULL /* UNDEFINED: Remove_ttscrollpane */, (void *)NULL /* UNDEFINED: Invalidate_ttscrollpane */, (void *)NULL /* UNDEFINED: SetVisible_ttscrollpane */, (void *)NULL /* UNDEFINED: SetTheme_ttscrollpane */, (void *)NULL /* UNDEFINED: Draw_ttscrollpane */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttscrollpane */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscrollpane */, (void *)NULL /* UNDEFINED: SetXY_ttscrollpane */, (void *)NULL /* UNDEFINED: SetWH_ttscrollpane */, (void *)NULL /* UNDEFINED: SetXl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetYl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetWl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetHl_ttscrollpane */, (void *)NULL /* UNDEFINED: SetTooltip_ttscrollpane */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetBarX_ttscrollpane */, (void *)NULL /* UNDEFINED: SetBarY_ttscrollpane */, }, { Class_ttwindow, id_ttwindow, magicmask_ttwindow, magic_ttwindow, size_ttwindow, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttwindow */, (void *)NULL /* UNDEFINED: Build_ttwindow */, (void *)NULL /* UNDEFINED: Break_ttwindow */, (void *)NULL /* UNDEFINED: Del_ttwindow */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttwindow */, (void *)NULL /* UNDEFINED: Validate_ttwindow */, (void *)NULL /* UNDEFINED: Remove_ttwindow */, (void *)NULL /* UNDEFINED: Invalidate_ttwindow */, (void *)NULL /* UNDEFINED: SetVisible_ttwindow */, (void *)NULL /* UNDEFINED: SetTheme_ttwindow */, (void *)NULL /* UNDEFINED: Draw_ttwindow */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttwindow */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttwindow */, (void *)NULL /* UNDEFINED: SetXY_ttwindow */, (void *)NULL /* UNDEFINED: SetWH_ttwindow */, (void *)NULL /* UNDEFINED: SetXl_ttwindow */, (void *)NULL /* UNDEFINED: SetYl_ttwindow */, (void *)NULL /* UNDEFINED: SetWl_ttwindow */, (void *)NULL /* UNDEFINED: SetHl_ttwindow */, (void *)NULL /* UNDEFINED: SetTooltip_ttwindow */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttwindow */, }, { Class_ttframe, id_ttframe, magicmask_ttframe, magic_ttframe, size_ttframe, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttframe */, (void *)NULL /* UNDEFINED: Build_ttframe */, (void *)NULL /* UNDEFINED: Break_ttframe */, (void *)NULL /* UNDEFINED: Del_ttframe */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttframe */, (void *)NULL /* UNDEFINED: Validate_ttframe */, (void *)NULL /* UNDEFINED: Remove_ttframe */, (void *)NULL /* UNDEFINED: Invalidate_ttframe */, (void *)NULL /* UNDEFINED: SetVisible_ttframe */, (void *)NULL /* UNDEFINED: SetTheme_ttframe */, (void *)NULL /* UNDEFINED: Draw_ttframe */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttframe */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttframe */, (void *)NULL /* UNDEFINED: SetXY_ttframe */, (void *)NULL /* UNDEFINED: SetWH_ttframe */, (void *)NULL /* UNDEFINED: SetXl_ttframe */, (void *)NULL /* UNDEFINED: SetYl_ttframe */, (void *)NULL /* UNDEFINED: SetWl_ttframe */, (void *)NULL /* UNDEFINED: SetHl_ttframe */, (void *)NULL /* UNDEFINED: SetTooltip_ttframe */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttframe */, /* extends ttclass_ttwindow */ (void *)NULL /* UNDEFINED: SetMenubar_ttframe */, }, { Class_ttscroller, id_ttscroller, magicmask_ttscroller, magic_ttscroller, size_ttscroller, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttscroller */, (void *)NULL /* UNDEFINED: Build_ttscroller */, (void *)NULL /* UNDEFINED: Break_ttscroller */, (void *)NULL /* UNDEFINED: Del_ttscroller */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttscroller */, (void *)NULL /* UNDEFINED: Validate_ttscroller */, (void *)NULL /* UNDEFINED: Remove_ttscroller */, (void *)NULL /* UNDEFINED: Invalidate_ttscroller */, (void *)NULL /* UNDEFINED: SetVisible_ttscroller */, (void *)NULL /* UNDEFINED: SetTheme_ttscroller */, (void *)NULL /* UNDEFINED: Draw_ttscroller */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttscroller */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttscroller */, (void *)NULL /* UNDEFINED: SetXY_ttscroller */, (void *)NULL /* UNDEFINED: SetWH_ttscroller */, (void *)NULL /* UNDEFINED: SetXl_ttscroller */, (void *)NULL /* UNDEFINED: SetYl_ttscroller */, (void *)NULL /* UNDEFINED: SetWl_ttscroller */, (void *)NULL /* UNDEFINED: SetHl_ttscroller */, (void *)NULL /* UNDEFINED: SetTooltip_ttscroller */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttscroller */, /* extends ttclass_ttwindow */ }, { Class_ttmenuitem, id_ttmenuitem, magicmask_ttmenuitem, magic_ttmenuitem, size_ttmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenuitem */, (void *)NULL /* UNDEFINED: Build_ttmenuitem */, (void *)NULL /* UNDEFINED: Break_ttmenuitem */, (void *)NULL /* UNDEFINED: Del_ttmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenuitem */, (void *)NULL /* UNDEFINED: Validate_ttmenuitem */, (void *)NULL /* UNDEFINED: Remove_ttmenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttmenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttmenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttmenuitem */, (void *)NULL /* UNDEFINED: Draw_ttmenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenuitem */, /* extends ttclass_ttvisible */ }, { Class_ttcheckmenuitem, id_ttcheckmenuitem, magicmask_ttcheckmenuitem, magic_ttcheckmenuitem, size_ttcheckmenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Build_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Break_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Del_ttcheckmenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Validate_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Remove_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: Draw_ttcheckmenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttcheckmenuitem */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttradiomenuitem, id_ttradiomenuitem, magicmask_ttradiomenuitem, magic_ttradiomenuitem, size_ttradiomenuitem, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Build_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Break_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Del_ttradiomenuitem */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Validate_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Remove_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Invalidate_ttradiomenuitem */, (void *)NULL /* UNDEFINED: SetVisible_ttradiomenuitem */, (void *)NULL /* UNDEFINED: SetTheme_ttradiomenuitem */, (void *)NULL /* UNDEFINED: Draw_ttradiomenuitem */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttradiomenuitem */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ /* extends ttclass_ttcheckmenuitem */ }, { Class_ttmenu, id_ttmenu, magicmask_ttmenu, magic_ttmenu, size_ttmenu, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenu */, (void *)NULL /* UNDEFINED: Build_ttmenu */, (void *)NULL /* UNDEFINED: Break_ttmenu */, (void *)NULL /* UNDEFINED: Del_ttmenu */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenu */, (void *)NULL /* UNDEFINED: Validate_ttmenu */, (void *)NULL /* UNDEFINED: Remove_ttmenu */, (void *)NULL /* UNDEFINED: Invalidate_ttmenu */, (void *)NULL /* UNDEFINED: SetVisible_ttmenu */, (void *)NULL /* UNDEFINED: SetTheme_ttmenu */, (void *)NULL /* UNDEFINED: Draw_ttmenu */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenu */, /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ }, { Class_ttmenubar, id_ttmenubar, magicmask_ttmenubar, magic_ttmenubar, size_ttmenubar, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttmenubar */, (void *)NULL /* UNDEFINED: Build_ttmenubar */, (void *)NULL /* UNDEFINED: Break_ttmenubar */, (void *)NULL /* UNDEFINED: Del_ttmenubar */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttmenubar */, (void *)NULL /* UNDEFINED: Validate_ttmenubar */, (void *)NULL /* UNDEFINED: Remove_ttmenubar */, (void *)NULL /* UNDEFINED: Invalidate_ttmenubar */, (void *)NULL /* UNDEFINED: SetVisible_ttmenubar */, (void *)NULL /* UNDEFINED: SetTheme_ttmenubar */, (void *)NULL /* UNDEFINED: Draw_ttmenubar */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttmenubar */, /* extends ttclass_ttvisible */ }, { Class_ttanytext, id_ttanytext, magicmask_ttanytext, magic_ttanytext, size_ttanytext, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttanytext */, (void *)NULL /* UNDEFINED: Build_ttanytext */, (void *)NULL /* UNDEFINED: Break_ttanytext */, (void *)NULL /* UNDEFINED: Del_ttanytext */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_ttanytext */, (void *)NULL /* UNDEFINED: Validate_ttanytext */, (void *)NULL /* UNDEFINED: Remove_ttanytext */, (void *)NULL /* UNDEFINED: Invalidate_ttanytext */, (void *)NULL /* UNDEFINED: SetVisible_ttanytext */, (void *)NULL /* UNDEFINED: SetTheme_ttanytext */, (void *)NULL /* UNDEFINED: Draw_ttanytext */, (void *)NULL /* UNDEFINED: BuiltinRepaint_ttanytext */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_ttanytext */, (void *)NULL /* UNDEFINED: SetXY_ttanytext */, (void *)NULL /* UNDEFINED: SetWH_ttanytext */, (void *)NULL /* UNDEFINED: SetXl_ttanytext */, (void *)NULL /* UNDEFINED: SetYl_ttanytext */, (void *)NULL /* UNDEFINED: SetWl_ttanytext */, (void *)NULL /* UNDEFINED: SetHl_ttanytext */, (void *)NULL /* UNDEFINED: SetTooltip_ttanytext */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_ttanytext */, /* extends ttclass_ttwindow */ }, { Class_tttextfield, id_tttextfield, magicmask_tttextfield, magic_tttextfield, size_tttextfield, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextfield */, (void *)NULL /* UNDEFINED: Build_tttextfield */, (void *)NULL /* UNDEFINED: Break_tttextfield */, (void *)NULL /* UNDEFINED: Del_tttextfield */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_tttextfield */, (void *)NULL /* UNDEFINED: Validate_tttextfield */, (void *)NULL /* UNDEFINED: Remove_tttextfield */, (void *)NULL /* UNDEFINED: Invalidate_tttextfield */, (void *)NULL /* UNDEFINED: SetVisible_tttextfield */, (void *)NULL /* UNDEFINED: SetTheme_tttextfield */, (void *)NULL /* UNDEFINED: Draw_tttextfield */, (void *)NULL /* UNDEFINED: BuiltinRepaint_tttextfield */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttextfield */, (void *)NULL /* UNDEFINED: SetXY_tttextfield */, (void *)NULL /* UNDEFINED: SetWH_tttextfield */, (void *)NULL /* UNDEFINED: SetXl_tttextfield */, (void *)NULL /* UNDEFINED: SetYl_tttextfield */, (void *)NULL /* UNDEFINED: SetWl_tttextfield */, (void *)NULL /* UNDEFINED: SetHl_tttextfield */, (void *)NULL /* UNDEFINED: SetTooltip_tttextfield */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_tttextfield */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ }, { Class_tttextarea, id_tttextarea, magicmask_tttextarea, magic_tttextarea, size_tttextarea, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttextarea */, (void *)NULL /* UNDEFINED: Build_tttextarea */, (void *)NULL /* UNDEFINED: Break_tttextarea */, (void *)NULL /* UNDEFINED: Del_tttextarea */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ (void *)NULL /* UNDEFINED: AddTo_tttextarea */, (void *)NULL /* UNDEFINED: Validate_tttextarea */, (void *)NULL /* UNDEFINED: Remove_tttextarea */, (void *)NULL /* UNDEFINED: Invalidate_tttextarea */, (void *)NULL /* UNDEFINED: SetVisible_tttextarea */, (void *)NULL /* UNDEFINED: SetTheme_tttextarea */, (void *)NULL /* UNDEFINED: Draw_tttextarea */, (void *)NULL /* UNDEFINED: BuiltinRepaint_tttextarea */, /* extends ttclass_ttvisible */ (void *)NULL /* UNDEFINED: SetLayout_tttextarea */, (void *)NULL /* UNDEFINED: SetXY_tttextarea */, (void *)NULL /* UNDEFINED: SetWH_tttextarea */, (void *)NULL /* UNDEFINED: SetXl_tttextarea */, (void *)NULL /* UNDEFINED: SetYl_tttextarea */, (void *)NULL /* UNDEFINED: SetWl_tttextarea */, (void *)NULL /* UNDEFINED: SetHl_tttextarea */, (void *)NULL /* UNDEFINED: SetTooltip_tttextarea */, /* extends ttclass_ttwidget */ (void *)NULL /* UNDEFINED: SetTitle_tttextarea */, /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ /* extends ttclass_tttextfield */ }, { Class_tttheme, id_tttheme, magicmask_tttheme, magic_tttheme, size_tttheme, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_tttheme */, (void *)NULL /* UNDEFINED: Build_tttheme */, (void *)NULL /* UNDEFINED: Break_tttheme */, (void *)NULL /* UNDEFINED: Del_tttheme */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { Class_ttapplication, id_ttapplication, magicmask_ttapplication, magic_ttapplication, size_ttapplication, /* extends ttclass_ttobj */ (void *)NULL /* UNDEFINED: New_ttapplication */, (void *)NULL /* UNDEFINED: Build_ttapplication */, (void *)NULL /* UNDEFINED: Break_ttapplication */, (void *)NULL /* UNDEFINED: Del_ttapplication */, /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ }, { xml_Sync, xml_Flush, xml_TimidFlush, xml_MainLoopOnce, xml_DeleteCallback, xml_Close, xml_ConnectionFd, xml_GetErrno, xml_GetErrnoDetail, xml_StrError, xml_StrErrorDetail, }, }; ������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/Makefile.am�������������������������������������������������������������������0000664�0000000�0000000�00000000015�13775351206�0016511�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������SUBDIRS = HW �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/TT.h��������������������������������������������������������������������������0000664�0000000�0000000�00000003021�13775351206�0015155�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * TT.h -- internal version of public header for libTT * * Note: you cannot include both this TT.h and <TT/TT.h>, as they conflict! * * * Copyright (C) 2001,2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_H #define TT_H /* include our internal copy of TTtypes.h instead of the public one */ #include "TTtypes.h" #include <TT/TTmem.h> #define TT_DECL_MAGIC(id) TW_DECL_MAGIC(id) ttbyte TTCheckMagic(TT_CONST ttbyte id[]); ttbyte TTInPanic(void); ttuint TTLibraryVersion(void); ttbyte TTOpen(TT_CONST ttbyte *target); void TTClose(void); void TTCloseQuickNDirty(void); int TTConnectionFd(void); ttbyte TTFlush(void); ttbyte TTTimidFlush(void); ttbyte TTSync(void); ttbyte TTMainLoop(void); ttbyte TTMainLoopOnce(ttbyte wait); void TTExitMainLoop(void); tt_obj TTNew(tt_obj Class); void TTDel(tt_obj o); tt_obj TTGetFirst(tt_obj Class); tt_obj TTGetLast(tt_obj Class); ttopaque TTSizeOf(tt_obj o); tt_obj TTClassOf(tt_obj o); tt_obj TTSuperClassOf(tt_obj o); TT_CONST ttbyte *TTClassNameOf(tt_obj o); ttbyte TTInstanceOf(tt_obj Class, tt_obj o); tt_obj TTGetInstalled_tteventmask(void); tt_obj TTGetDefault_tteventmask(void); void TTSetInstalled_tteventmask(tt_obj installed_event_mask); void TTSetDefault_tteventmask(tt_obj default_event_mask); #endif /* TT_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/TTassert.h��������������������������������������������������������������������0000664�0000000�0000000�00000003515�13775351206�0016407�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_ASSERT_H #define TT_ASSERT_H /* this prints an "assertion failed" message. */ void TTAssertFail(TT_CONST char *assertion, TT_CONST char *file, unsigned int line, TT_CONST char *function); #define TTAssertAlways(expr) \ ((expr) ? 1 : (TTAssertFail(#expr, __FILE__, __LINE__, TT_ASSERT_FUNCTION), 0)) #ifndef TT_ASSERT_LEVEL #define TT_ASSERT_LEVEL 2 #endif #if TT_ASSERT_LEVEL == 0 #define TTAssert(expr) ttrue #elif TT_ASSERT_LEVEL == 1 #define TTAssert(expr) (expr) #else #define TTAssert(expr) \ ((expr) ? 1 : (TTAssertFail(#expr, __FILE__, __LINE__, TT_ASSERT_FUNCTION), 0)) #endif /* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' which contains the name of the function currently being defined. # define __ASSERT_FUNCTION __PRETTY_FUNCTION__ This is broken in G++ before version 2.6. C9x has a similar variable called __func__, but prefer the GCC one since it demangles C++ function names. */ #if defined(__GNUC__) && \ (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= (defined(__cplusplus) ? 6 : 4))) #define TT_ASSERT_FUNCTION __PRETTY_FUNCTION__ #elif defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L #define TT_ASSERT_FUNCTION __func__ #else #define TT_ASSERT_FUNCTION "" #endif #endif /* TT_ASSERT_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/TTextern.h��������������������������������������������������������������������0000664�0000000�0000000�00000011066�13775351206�0016413�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_EXTERN_H #define TT_EXTERN_H #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #endif #include "mutex.h" /* typedef s_tt_errno */ #ifdef CONF_SOCKET_PTHREADS typedef struct { ttuint E; ttuint S; th_self T; } s_tt_errno; typedef struct { s_tt_errno *vec; ttuint max, last; } s_tt_errno_vec; #else typedef struct { ttuint E; ttuint S; } s_tt_errno; typedef s_tt_errno s_tt_errno_vec; #endif typedef struct s_ttutil *ttutil; typedef struct s_ttutil { ttobj **IdList; ttopaque *IdSize, *IdTop, *IdBottom; #ifdef CONF_SOCKET_PTHREADS s_tt_errno *(*GetErrnoLocation)(void); #endif ttbyte (*AssignId)(TT_CONST ttclass Class, ttobj Obj); void (*DropId)(ttobj Obj); ttobj (*Id2Obj)(ttopaque ClassId, ttopaque Id); ttbyte (*FixedAssignId)(TT_CONST ttclass Class, ttobj Obj); ttbyte (*FixedAssignIdArray)(ttopaque ClassId, ttopaque o_n, TT_CONST ttobj *o_array); ttobject (*FindNative)(ttany id); void (*GetNow)(void); void (*FireEvent)(ttevent ev, ttcomponent o); void (*FireSimpleEvent)(ttcomponent o, ttuint evtype); void (*FireChangeEvent)(ttcomponent o, ttuint which, ttany value, ttany old_value, ttopaque len); void (*AddTo_ttlistener)(ttlistener c, ttcomponent o); void (*Remove_ttlistener)(ttlistener c); void (*Activate_tttimer)(tttimer o, ttbyte active); void (*AddTo_ttdata)(ttdata d, ttcomponent o, ttbyte quickndirty); void (*Remove_ttdata)(ttdata d); ttbyte (*SetData_ttdata)(ttdata o, ttany data); ttdata (*FindByKey_ttdata)(ttdata base, TT_CONST ttbyte *key, ttopaque len); ttdata (*protected_Create_ttdata)(ttcomponent c, TT_ARG_READ ttbyte *key, ttopaque key_len, ttany data); void (*DelAllExtras_ttcomponent)(ttcomponent o); void (*Expose_ttvisible)(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h); void (*RealClose)(void); } s_ttutil; typedef struct s_ttcreates { #include "create_decl_m4.h" } s_ttcreates; typedef struct s_tt_d { #ifdef CONF_SOCKET_PTHREADS th_r_mutex mutex; #endif ttuint refcount; tttheme Theme, DummyTheme; ttmenubar Menubar; ttapplication Application; tteventmask InstalledEM, DefaultEM; /* events queued */ ttevent FirstE, LastE; /* listeners in progress */ ttlistener FirstL, LastL; /* active timers */ tttimer FirstT, LastT; ttany TNow; ttany FNow; ttbyte *HWTarget, *HWOptions; void *DlHandle; ttbyte OpenFlag, PanicFlag, ExitMainLoopFlag, QuitArg; s_tt_errno rCommonErrno_; s_tt_errno_vec rErrno_; TT_CONST byte *str_dlerror; s_ttcreates CREATE; s_ttutil UTIL; ttclasses Class_hw_null; ttclass Classes[order_last]; s_ttclasses Class; s_ttclasses Class_default; } s_tt_d; extern s_tt_d TTD; #define mutex (TTD.mutex) #define rErrno (TTD.rErrno_) #define rCommonErrno (TTD.rCommonErrno_) #define CommonErrno (TTD.rCommonErrno_.E) #define CommonErrnoDetail (TTD.rCommonErrno_.S) #define TT_MUTEX_HELPER_DEFS(attr) \ attr void Lock(void) { \ th_r_mutex_lock(mutex); \ TTD.refcount++; \ } \ attr void Unlock(void) { \ /* do not automatically call RealClose if in panic */ \ if (!--TTD.refcount && TTD.OpenFlag && !TTD.PanicFlag) \ RealClose(); \ th_r_mutex_unlock(mutex); \ } \ TH_R_MUTEX_HELPER_DEFS(attr) #define LOCK Lock() #define UNLK Unlock() #define FAIL_TT(E, S) (CommonErrno = (E), CommonErrnoDetail = (S), tfalse) #define FAIL(E, S) FAIL_TT(TT_MAX_ERROR + (E), (S)) #define FAIL_PRINT(E, S, name) (FAIL((E), (S)), _TTPrintInitError(name), tfalse) #endif /* TT_EXTERN_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/TTtypes.h���������������������������������������������������������������������0000664�0000000�0000000�00000001672�13775351206�0016254�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * TTtypes.h -- INTERNAL (!!) header for libTT types declarations * * Note: you cannot include both this file and <TT/TTtypes.h>, as they conflict! * * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_TYPES_H #define TT_TYPES_H #include <Tw/Tw_defs.h> #include <Tw/Twtypes.h> #include <Tw/Twavl.h> #include <Tutf/Tutf.h> #include <TT/osincludes.h> #include <TT/compiler.h> #include <TT/version.h> /* include our internal copy of headers instead of the public ones */ #include <TT/datatypes.h> #include <TT/datasizes.h> #include "internaltypes.h" #include "limits_m4.h" #include "flags.h" #include "tree_m4.h" #include "decls_m4.h" #endif /* TT_TYPES_H */ ����������������������������������������������������������������������twin-0.9.0/libs/libTT/array.c�����������������������������������������������������������������������0000664�0000000�0000000�00000007717�13775351206�0015757�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * array.c -- libTT conversion functions between * types and classes and array sizes * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #include "TT.h" #include "TTextern.h" #include "TTassert.h" #include "inlines.h" #include "utils.h" #include "array.h" /* * get the bare class of given type (removing attribute) */ TT_ARG_READ tt_class TTFromType_ttclass(ttopaque type) { opaque Class = type & ~ttclass_type_full_bitmask; return (Class >= id_ttclass_first && Class < id_ttclass_last) || (Class >= id_ttclass_type_first && Class < id_ttclass_type_last) ? (tt_class)Class : (tt_class)0; } /** * return TT_TRUE if given type indicates an array */ ttbyte TTIsArrayType_ttclass(ttopaque type) { return type & ttclass_type_array ? TT_TRUE : TT_FALSE; } ttbyte TTIsPrimitiveType_ttclass(ttopaque type) { opaque Class = type & ~ttclass_type_full_bitmask; return Class >= id_ttclass_first && Class < id_ttclass_last; } static ttopaque GetArrayLenZ(ttbyte *addr, ttopaque size, ttopaque max_n) { ttany zero = 0; ttbyte *saved_addr = addr; if (addr) { while (max_n--) { if (!TTCmpMem(addr, &zero, size)) /* also return space needed by final \0 */ return addr - saved_addr + size; addr += size; } } return (ttopaque)zero; } static ttopaque GetArraySizeA_ttmethod(TT_ARG_READ ttmethod m, ttopaque type, ttopaque arg_array_n, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttarg *args) { ttuint i; ttopaque size = 0; ttany param[2] = {0, 0}, op; /* if (arg_array_n >= args_n) return (ttopaque)0; */ size = TTGetSize_ttclass(TTFromType_ttclass(type)); /* if (type & ttclass_type_array) { */ param[0] = (type >>= ttclass_type_array_firstbit) & e_MFP; param[1] = (type >>= e_WFP) & e_MFP; op = (type >>= e_WFP) & e_MOP; if (op == e_OPZ) { /* zero-terminated array */ return GetArrayLenZ((ttbyte *)(opaque)args[arg_array_n].value, size, args[arg_array_n].size); } /* extract length params from arguments if needed */ for (i = 0; i < 2; i++) { if (param[i] & e_FFP) { param[i] &= ~e_FFP; /* param[i] == 1 means first arg, i.e. args[0] */ if (param[i] && param[i] <= args_n && !TTIsArrayType_ttclass(args[param[i] - 1].type)) param[i] = args[param[i] - 1].value; } } switch (op) { case e_SET: /* param[0].value = param[0].value; */ break; case e_ADD: param[0] += param[1]; break; case e_MUL: param[0] *= param[1]; break; default: /* illegal operation ? */ param[0] = 0; break; } return size * param[0]; } ttopaque TTGetArraySizeA_ttmethod(TT_ARG_READ tt_obj id, ttopaque arg_array_n, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttarg *args) { ttmethod m; ttvector v; ttopaque type; if ((m = ID2(ttmethod, id)) && (v = m->parameter_type) && v->array_n <= args_n) { if ((type = v->array[arg_array_n], type & ttclass_type_array)) return GetArraySizeA_ttmethod(m, type, arg_array_n, args_n, args); } return (ttopaque)0; } ttbyte TTCheckArraySizesA_ttmethod(TT_ARG_READ tt_obj id, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttarg *args) { ttmethod m; ttvector v; ttopaque i, type; if ((m = ID2(ttmethod, id)) && (v = m->parameter_type) && v->array_n <= args_n) { for (i = 0; i < v->array_n; i++) { if ((type = v->array[i], type & ttclass_type_array) && args[i].size < GetArraySizeA_ttmethod(m, type, i, args_n, args)) { return TT_FALSE; } } return TT_TRUE; } return TT_FALSE; } �������������������������������������������������twin-0.9.0/libs/libTT/array.h�����������������������������������������������������������������������0000664�0000000�0000000�00000005644�13775351206�0015761�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_ARRAY_H #define TT_ARRAY_H /* useful defines to encode type attributes */ /* the corresponding field or parameter is read-only */ #define ttclass_type_read (0x1 << order_ttclass_usedbits) /* the corresponding field or parameter is write-only */ #define ttclass_type_write (0x2 << order_ttclass_usedbits) /* the corresponding field or parameter may be destroyed */ #define ttclass_type_die (0x4 << order_ttclass_usedbits) /* the corresponding field or parameter is an array */ #define ttclass_type_array (0x8 << order_ttclass_usedbits) #define ttclass_type_usedbits 4 #define ttclass_type_bitmask (((1 << ttclass_type_usedbits) - 1) << order_ttclass_usedbits) /* bits used to encode the array attributes */ #define ttclass_type_array_firstbit (ttclass_type_usedbits + order_ttclass_usedbits) #define ttclass_type_array_usedbits (e_WFP * 2 + e_WOP) #define ttclass_type_array_lastbit (ttclass_type_array_firstbit + ttclass_type_array_usedbits - 1) #define ttclass_type_array_bitmask \ (((1 << ttclass_type_array_usedbits) - 1) << ttclass_type_array_firstbit) #define ttclass_type_full_bitmask (ttclass_type_bitmask | ttclass_type_array_bitmask) #define ttclass_type_full_usedbits (ttclass_type_usedbits + ttclass_type_array_usedbits) /* TT_ARG_READ */ #define e_R ttclass_type_read /* TT_ARG_WRITE */ #define e_W ttclass_type_write /* TT_ARG_DIE */ #define e_D ttclass_type_die #define e_AA ttclass_type_array #define e_FB ttclass_type_array_firstbit #define e_LB ttclass_type_array_lastbit /* TT_ARG_ARRAY(...) */ #define e_A(x) ((x) << e_FB | e_AA) /* TT_ARG_ARRAY_Z */ #define e_Z e_A(e_OP(e_OPZ)) /* width of _F() and _P() bitfields */ #define e_WFP 6 /* mask of _F() and _P() bitfields */ #define e_MFP ((1 << e_WFP) - 1) /* flag of _F() and _P() bitfields */ #define e_FFP (1 << (e_WFP - 1)) /* width of e_OP bitfields */ #define e_WOP 2 /* mask of e_OP bitfields */ #define e_MOP ((1 << e_WOP) - 1) /* _F(...) */ #define e_F(t, f) (e_FFP | (TT_CAT3(t, _, f) - TT_CAT(t, _field_first))) /* _P(...) */ #define e_P(p) (e_FFP | p) /* shift of e_OP bitfields with respect to the first _F() and _P() bitfield */ #define e_OP(p) (p << (e_WFP * 2)) /* +, *, ... */ #define e_SET 0 #define e_ADD 1 #define e_MUL 2 /* operation corresponding to TT_ARG_ARRAY_Z */ #define e_OPZ 3 #if !defined(TT_MAGIC_SHIFT) #error internal error: undefined TT_MAGIC_SHIFT ! #endif #if TT_MAGIC_SHIFT < ttclass_type_full_usedbits + order_ttclass_usedbits #error internal error: ttclass_type_full_usedbits + order_ttclass_usedbits overflows TT_MAGIC_SHIFT ! #endif #endif /* TT_ARRAY_H */ ��������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/class.h�����������������������������������������������������������������������0000664�0000000�0000000�00000013037�13775351206�0015743�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* ttclass_ttobj <-> tt_obj conversion */ TT_INLINE ttopaque Class2Id(ttclass Class) { return Class ? Class->id : TT_NOID; } #define CLASS2ID(Class) Class2Id((ttclass)Class) /* type query helpers */ TT_INLINE ttbyte IsInstance_ttclass(ttclass Class, ttclass t) { return Class && t && (t->magic & Class->magicmask) == Class->magic; } TT_INLINE ttbyte InstanceOf(ttclass Class, ttobj o) { return o && IsInstance_ttclass(Class, (ttclass)o->Class); } /* ttobj <-> tobj conversion */ static ttobj Id2Obj(ttopaque i, ttopaque Id) { ttopaque j = Id >> TT_MAGIC_SHIFT; ttobj o; if (i >= id_ttclass_first && i < id_ttclass_last && j >= order_first && j < order_last) { Id &= TT_MAGIC_MASK; if (Id < IdTop[j] && (o = IdList[j][Id])) if (InstanceOf(Id2Class(i), o)) return o; } return (ttobj)0; } /* type querying functions */ ttbyte TTIsInstance_ttclass(tt_obj _Class, tt_obj t) { opaque Class = (opaque)_Class; ttbyte ret; if (Class >= id_ttclass_type_first && Class < id_ttclass_type_last) /* handle the case Class and t are one of TTClass_void...TTClass_ttarg */ ret = Class == (opaque)t; else ret = IsInstance_ttclass(ID2CLASS(Class), ID2CLASS(t)); return ret; } ttbyte TTInstanceOf(tt_obj _Class, tt_obj o) { opaque Class = (opaque)_Class; ttbyte ret; if (Class >= id_ttclass_type_first && Class < id_ttclass_type_last) { /* a primitive type can have any value, including values that are also objects */ ret = TT_TRUE; } else { LOCK; ret = InstanceOf(ID2CLASS(Class), ID2OBJ(o)); UNLK; } return ret; } #if 0 /* not currently used */ TT_INLINE ttclass ClassOf(ttobj o) { ttclass ret; LOCK; ret = o ? o->Class : (ttclass)o; UNLK; return ret; } #endif tt_obj TTClassOf(tt_obj o) { tt_obj ret; LOCK; /* shortcut for CLASS2ID(ClassOf(ID2OBJ(o))) */ ret = (tt_obj)(ID2OBJ(o) ? ORDER2ID_CLASS((opaque)o >> TT_MAGIC_SHIFT) : TT_NOID); UNLK; return ret; } ttopaque TTGetSize_ttclass(tt_obj _Class) { opaque Class = (opaque)_Class; if (Class >= id_ttclass_type_first && Class < id_ttclass_type_last) { /* handle the case Class is one of TTClass_void...TTClass_tttype */ switch (Class & TT_MAGIC_MASK) { #define el(t) \ case TT_CAT(order_, t): \ return TT_CAT(order_, t) == order_void ? 0 : sizeof(t); TT_TYPELIST(el) #undef el default: return 0; } } else if (Class >= id_ttclass_first && Class < id_ttclass_last) { return sizeof(tt_obj); } else return 0; } ttopaque TTSizeOf(tt_obj o) { #if 1 return ID2OBJ(o) ? sizeof(tt_obj) : 0; #else return TTGetSize_ttclass((tt_obj)TTClassOf(o)); #endif } /* * return the superclass of the class fn */ static TT_ARG_READ ttclass GetSuper_ttclass(TT_ARG_READ ttclass Class) { ttclass super_Class; opaque i; /* * this could be *MUCH* smarter than a dumb linear search, * but hardcoding the class tree here would make it impossible * to create more classes at runtime. */ if (Class) { for (i = Class->id - 1; i != (opaque)-1; i--) { if ((super_Class = ID2CLASS(i)) && ISClass(super_Class, Class)) return super_Class; } } return (TT_ARG_READ ttclass)0; } TT_ARG_READ tt_obj TTGetSuper_ttclass(TT_ARG_READ tt_obj Class) { return (tt_obj)CLASS2ID(GetSuper_ttclass(ID2CLASS(Class))); } tt_obj TTSuperClassOf(tt_obj o) { return TTGetSuper_ttclass((tt_obj)TTClassOf(o)); } static TT_CONST ttbyte *ttclass_names[] = { #define el(t) TT_STR(t), TT_LIST(el)}; static TT_CONST ttbyte *ttclass_type_names[] = {TT_TYPELIST(el) #undef el }; /* * return the name of the class Class */ TT_ARG_ARRAY_Z TT_CONST ttbyte *TTGetName_ttclass(tt_obj _Class) { opaque Class = (opaque)_Class; if (Class >= id_ttclass_first && Class < id_ttclass_last) return ttclass_names[Class - id_ttclass_first]; if (Class >= id_ttclass_type_first && Class < id_ttclass_type_last) return ttclass_type_names[Class - id_ttclass_type_first]; return NULL; } /* * return the name of the class of o */ TT_CONST ttbyte *TTClassNameOf(tt_obj o) { return TTGetName_ttclass((tt_obj)TTClassOf(o)); } /* return the first existing object of type `Class' */ tt_obj TTGetFirst(tt_obj _Class) { opaque Class = (opaque)_Class; opaque ret = (opaque)0; if (Class == id_ttclass_ttclass) { /* handle the case Class is TTClass_ttclass */ ret = id_ttclass_first; /* TTClass_ttobj */ } else if (Class >= id_ttclass_first && Class < id_ttclass_last) { /* handle the case Class is one of TTClass_* */ ret = OBJ2ID(IdList[Class & TT_MAGIC_MASK][0]); } return (tt_obj)ret; } /* return the last existing object of type `Class' */ tt_obj TTGetLast(tt_obj _Class) { opaque Class = (opaque)_Class; opaque ret = (opaque)0; if (Class == id_ttclass_ttclass) { /* handle the case Class is TTClass_ttclass */ ret = id_ttclass_last - 1; /* TTClass_ttapplication */ } else if (Class >= id_ttclass_first && Class < id_ttclass_last) { /* handle the case Class is one of TTClass_* */ Class &= TT_MAGIC_MASK; if (IdTop[Class]) ret = OBJ2ID(IdList[Class][IdTop[Class] - 1]); } return (tt_obj)ret; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/create.h����������������������������������������������������������������������0000664�0000000�0000000�00000045602�13775351206�0016104�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_CREATE_H #define TT_CREATE_H /* ttvector */ static ttvector Create1_ttvector(ttany value) { ttvector o; if ((o = TNEW(ttvector))) { if (o->Class->AddY(o, 0, 1, &value)) return o; TDEL(o); } return (ttvector)0; } static ttvector CreateA_ttvector(ttopaque value_n, TT_ARG_READ ttarg *values) { ttvector o; if ((o = TNEW(ttvector))) { if (TTAddA_ttvector((tt_obj)o->id, 0, value_n, values)) return o; TDEL(o); } return (ttvector)0; } static ttvector CreateV_ttvector(ttopaque value_n, va_list *values) { ttvector o; if ((o = TNEW(ttvector))) { if (TTAddV_ttvector((tt_obj)o->id, 0, value_n, values)) return o; TDEL(o); } return (ttvector)0; } static ttvector CreateL_ttvector(ttopaque value_n, ...) { ttvector o; va_list values; va_start(values, value_n); o = CreateV_ttvector(value_n, &values); va_end(values); return o; } static ttvector CreateR_ttvector(TT_ARG_READ ttvector v) { ttvector o; if (v && TTAssert(IS(ttvector, v)) && (o = TNEW(ttvector))) { if (TTAddR_ttvector((tt_obj)o->id, 0, (tt_obj)v->id)) return o; TDEL(o); } return (ttvector)0; } static ttvector CreateY_ttvector(ttopaque value_n, TT_ARG_READ ttany *values) { ttvector o; if ((o = TNEW(ttvector))) { if (o->Class->AddY(o, 0, value_n, values)) return o; TDEL(o); } return (ttvector)0; } tt_obj TTCreateL_ttvector(ttopaque value_n, ...) { tt_obj o; va_list values; va_start(values, value_n); o = (tt_obj)OBJ2ID(CreateV_ttvector(value_n, &values)); va_end(values); return o; } /* ttevent */ static ttevent Create_ttevent(ttuint evtype, ttuint evcode, ttuint evflags) { ttevent o; if ((o = TNEW(ttevent))) { o->evtype = evtype; o->evcode = evcode; o->evflags = evflags; } return o; } /* tteventbig */ static tteventbig Create8_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttshort x, ttshort y, ttshort w, ttshort h, ttany value, ttany old_value, ttuint data_len, TT_CONST ttbyte *data) { tteventbig o; if ((o = TNEW(tteventbig))) { o->evtype = evtype; o->evcode = evcode; o->evflags = evflags; o->x = x; o->y = y; o->value = value; o->old_value = old_value; o->data_len = data_len; o->data = data; } return o; } static tteventbig Create4_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttshort x, ttshort y, ttshort w, ttshort h) { return Create8_tteventbig(evtype, evcode, evflags, x, y, w, h, (ttany)0, (ttany)0, (ttuint)0, (TT_CONST ttbyte *)0); } static tteventbig Create4s4_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttany value, ttany old_value, ttuint len, TT_CONST ttbyte *data) { return Create8_tteventbig(evtype, evcode, evflags, (ttshort)0, (ttshort)0, (ttshort)0, (ttshort)0, value, old_value, len, data); } /* ttbitmask */ static ttbitmask Create_ttbitmask(ttany value) { ttbitmask o; if ((o = TNEW(ttbitmask))) { if (TTAdd_ttbitmask((tt_obj)o->id, value)) return o; TDEL(o); } return (ttbitmask)0; } static ttbitmask CreateB2_ttbitmask(TT_ARG_READ ttbitmask b) { ttbitmask o; if (b && TTAssert(IS(ttbitmask, b)) && (o = TNEW(ttbitmask))) { if (TTAddB_ttbitmask((tt_obj)o->id, (tt_obj)b->id)) { return o; } } return (ttbitmask)0; } static ttbitmask CreateR_ttbitmask(TT_ARG_DIE ttvector v) { ttbitmask o; if (v && TTAssert(IS(ttvector, v)) && (o = TNEW(ttbitmask))) { if (TTAddR_ttbitmask((tt_obj)o->id, (tt_obj)v->id)) { TDEL(v); return o; } TDEL(o); } return (ttbitmask)0; } static ttbitmask CreateR2_ttbitmask(TT_ARG_READ ttvector v) { ttbitmask o; if (v && TTAssert(IS(ttvector, v)) && (o = TNEW(ttbitmask))) { if (TTAddR_ttbitmask((tt_obj)o->id, (tt_obj)v->id)) { return o; } TDEL(o); } return (ttbitmask)0; } /* tteventmask */ static tteventmask CreateB_tteventmask(TT_ARG_DIE ttbitmask evtype_mask, TT_ARG_DIE ttbitmask evcode_mask, TT_ARG_DIE ttbitmask component_mask) { tteventmask o; if ((o = TNEW(tteventmask))) { o->evtype_mask = evtype_mask; o->evcode_mask = evcode_mask; o->component_mask = component_mask; } return o; } static tteventmask CreateB2_tteventmask(TT_ARG_READ ttbitmask evtype_mask, TT_ARG_READ ttbitmask evcode_mask, TT_ARG_READ ttbitmask component_mask) { ttbitmask evtype_mask2 = NULL, evcode_mask2 = NULL, component_mask2 = NULL; tteventmask o = NULL; if ((evtype_mask2 = CreateB2_ttbitmask(evtype_mask2)) && (evcode_mask2 = CreateB2_ttbitmask(evcode_mask2)) && (component_mask2 = CreateB2_ttbitmask(component_mask2)) && (o = CreateB_tteventmask(evtype_mask, evcode_mask, component_mask))) { return o; } if (evtype_mask2) TDEL(evtype_mask2); if (evcode_mask) TDEL(evcode_mask); if (component_mask) TDEL(component_mask); return NULL; } /* ttlistener */ static ttlistener CreateR_ttlistener(ttcomponent c, TT_ARG_DIE ttevent ev, ttuint lflags, ttlistener_fn function, ttopaque arg_component_n, ttopaque arg_event_n, TT_ARG_DIE ttvector args) { ttlistener o = (ttlistener)0; opaque order; if (!c || !ev || !function || !args) { SetErrno(TT_EBAD_ARG, c ? ev ? function ? 7 : 4 : 2 : 1); return o; } if ((o = TNEW(ttlistener))) { /* swallow the event, do not clone it */ o->event = ev; /* swallow the args, do not clone them */ o->args = args; ev->component = c; /* mask ONLY allowed lflags! */ o->lflags |= lflags & ttlistener_lflags_any; if ((order = (opaque)TTGetByAddress_ttmethod((void *)function))) { o->lflags |= ttlistener_lflags_ttmethod; o->function = (ttlistener_fn)order; } else o->function = function; o->arg_component_n = arg_component_n; o->arg_event_n = arg_event_n; o->Class->AddTo(o, c); } return o; } static ttlistener CreateE_ttlistener(ttcomponent c, ttevent ev, ttuint lflags, ttlistener_fn function, ttany arg) { return CreateR_ttlistener( c, ev, lflags, function, (lflags & ttlistener_lflags_arg0_component) ? 0 : (ttopaque)-1, (lflags & ttlistener_lflags_arg0_event) ? 0 : (ttopaque)-1, Create1_ttvector(arg)); } static ttlistener Create_ttlistener(ttcomponent c, ttuint evtype, ttuint lflags, ttlistener_fn function, ttany arg) { return CreateR_ttlistener(c, Create_ttevent(evtype, 0, 0), lflags, function, (lflags & ttlistener_lflags_arg0_component) ? 0 : (ttopaque)-1, (lflags & ttlistener_lflags_arg0_event) ? 0 : (ttopaque)-1, Create1_ttvector(arg)); } static ttlistener CreateDel_ttlistener(ttcomponent c, ttuint lflags, ttlistener_fn function) { return CreateR_ttlistener(c, Create_ttevent(ttevent_evtype_del, 0, 0), lflags, function, (lflags & ttlistener_lflags_arg0_component) ? 0 : (ttopaque)-1, (lflags & ttlistener_lflags_arg0_component) ? (ttopaque)-1 : 0, Create1_ttvector(0)); } static ttlistener CreateAskclose_ttlistener(ttcomponent c, ttuint lflags, ttlistener_fn function) { return CreateR_ttlistener(c, Create_ttevent(ttevent_evtype_askclose, 0, 0), lflags, function, (lflags & ttlistener_lflags_arg0_component) ? 0 : (ttopaque)-1, (lflags & ttlistener_lflags_arg0_component) ? (ttopaque)-1 : 0, Create1_ttvector(0)); } static ttlistener CreateKey_ttlistener(ttcomponent c, ttuint evcode, ttuint evflags, ttuint lflags, ttlistener_fn function) { return CreateR_ttlistener( c, Create_ttevent(ttevent_evtype_key, evcode, evflags), lflags, function, (lflags & ttlistener_lflags_arg0_component) ? 0 : (ttopaque)-1, (lflags & ttlistener_lflags_arg0_component) ? (ttopaque)-1 : 0, Create1_ttvector(0)); } static ttlistener CreateMouse_ttlistener(ttcomponent c, ttuint evcode, ttuint evflags, ttuint lflags, ttlistener_fn function) { return CreateR_ttlistener( c, Create_ttevent(ttevent_evtype_mouse, evcode, evflags), lflags, function, (lflags & ttlistener_lflags_arg0_component) ? 0 : (ttopaque)-1, (lflags & ttlistener_lflags_arg0_component) ? (ttopaque)-1 : 0, Create1_ttvector(0)); } static ttlistener CreateActivate_ttlistener(ttcomponent c, ttuint lflags, ttlistener_fn function) { return CreateR_ttlistener(c, Create_ttevent(ttevent_evtype_activate, 0, 0), lflags, function, (lflags & ttlistener_lflags_arg0_component) ? 0 : (ttopaque)-1, (lflags & ttlistener_lflags_arg0_component) ? (ttopaque)-1 : 0, Create1_ttvector(0)); } static ttlistener CreateChange_ttlistener(ttcomponent c, ttuint evcode, ttuint lflags, ttlistener_fn function) { return CreateR_ttlistener(c, Create_ttevent(ttevent_evtype_change, evcode, 0), lflags, function, (lflags & ttlistener_lflags_arg0_component) ? 0 : (ttopaque)-1, (lflags & ttlistener_lflags_arg0_component) ? (ttopaque)-1 : 0, Create1_ttvector(0)); } /* * this is tricky... the listener must be created * on component's ttdata, which may not yet exist! */ static ttlistener CreateKeyData_ttlistener(ttcomponent c, TT_ARG_READ ttbyte *key, ttuint lflags, ttlistener_fn function) { ttdata d; ttopaque key_len; if (TTAssert(c && IS(ttcomponent, c)) && key) { key_len = TTLenStr(key); if ((d = FindByKey_ttdata(c->datas, key, key_len)) || (d = protected_Create_ttdata(c, key, key_len, (ttany)0))) { return CreateChange_ttlistener((ttcomponent)d, ttdata_data, lflags, function); } } return (ttlistener)0; } static ttlistener CreateExpose_ttlistener(ttcomponent c, ttuint lflags, ttlistener_fn function) { return CreateR_ttlistener(c, Create_ttevent(ttevent_evtype_expose, 0, 0), lflags, function, (lflags & ttlistener_lflags_arg0_component) ? 0 : (ttopaque)-1, (lflags & ttlistener_lflags_arg0_component) ? (ttopaque)-1 : 0, Create1_ttvector(0)); } /* tttimer */ static tttimer CreateR_tttimer(ttcomponent c, ttuint lflags, ttlistener_fn function, ttopaque arg_component_n, ttopaque arg_timer_n, TT_ARG_DIE ttvector args, ttany delay_t, ttany delay_f) { tttimer o = (tttimer)0; opaque order; if (!c || !function || !args) { SetErrno(TT_EBAD_ARG, c ? function ? 6 : 3 : 1); return o; } if ((o = TNEW(tttimer))) { /* mask ONLY allowed lflags! */ o->lflags |= lflags & ttlistener_lflags_any; if ((order = (opaque)TTGetByAddress_ttmethod((void *)function))) { o->lflags |= ttlistener_lflags_ttmethod; o->function = (ttlistener_fn)order; } else o->function = function; o->arg_component_n = arg_component_n; o->arg_event_n = arg_timer_n; /* swallow the args, do not clone them */ o->args = args; GetNow(); o->delay_t = TTD.TNow + delay_t; o->delay_f = TTD.FNow + delay_f; if (c && TTAssert(IS(ttcomponent, c))) o->Class->AddTo(o, c); if (lflags & tttimer_lflags_enabled) o->Class->SetEnabled(o, TT_TRUE); } return o; } static tttimer Create_tttimer(ttcomponent c, ttuint lflags, ttlistener_fn function, ttany arg, ttany delay_t, ttany delay_f) { return CreateR_tttimer(c, lflags, function, (lflags & ttlistener_lflags_arg0_component) ? 0 : (ttopaque)-1, (lflags & ttlistener_lflags_arg0_timer) ? 0 : (ttopaque)-1, Create1_ttvector(arg), delay_t, delay_f); } /* ttdata */ /* ttboxlayout */ static ttboxlayout Create_ttboxlayout(ttany orientation) { ttboxlayout o; if ((o = TNEW_NOBUILD(ttboxlayout))) { o->orientation = orientation; return (ttboxlayout)Build((ttobject)o); } return o; } /* ttnative */ static ttnative Create_ttnative(ttany id) { ttnative o; ttobject a; if ((a = FindNative(id))) return (ttnative)a; if ((o = TNEW_NOBUILD(ttnative))) { o->native = id; return (ttnative)Build((ttobject)o); } return o; } /* ttlabel */ static ttlabel Create_ttlabel(TT_CONST ttbyte *text) { ttlabel o; if ((o = TNEW_NOBUILD(ttlabel))) { if (!text || (o->text = TTCloneStrL2Font(text, 1 + (o->text_len = TTLenStr(text))))) return (ttlabel)Build((ttobject)o); TDEL(o); } return (ttlabel)0; } /* ttlabel */ static ttprogressbar Create_ttprogressbar(ttbyte orientation) { ttprogressbar o; if ((o = TNEW_NOBUILD(ttprogressbar))) { o->orientation = orientation; return (ttprogressbar)Build((ttobject)o); } return (ttprogressbar)0; } /* ttbuttongroup */ /* ttanybutton */ static ttanybutton Create_ttanybutton(ttshort width, ttshort height, ttshort pitch, TT_CONST ttbyte *text) { ttanybutton o; ttattr *_text; if ((o = TNEW_NOBUILD(ttanybutton))) { if (!text || !width || !height || (o->text = _text = TTAllocMem((ttint)width * height * sizeof(ttattr)))) { o->text_width = width; o->text_height = height; if (text && width) while (height--) { TTCopyStrL2Attr(text, _text, width, o->col); text += pitch; _text += width; } return (ttanybutton)Build((ttobject)o); } TDEL(o); } return (ttanybutton)0; } /* ttbutton */ static ttbutton Create_ttbutton(ttshort width, ttshort height, ttshort pitch, TT_CONST ttbyte *text) { ttbutton o; ttattr *_text; if ((o = TNEW_NOBUILD(ttbutton))) { if (!text || !width || !height || (o->text = _text = TTAllocMem((ttint)width * height * sizeof(ttattr)))) { o->text_width = width; o->text_height = height; if (text && width) while (height--) { TTCopyStrL2Attr(text, _text, width, o->col); text += pitch; _text += width; } return (ttbutton)Build((ttobject)o); } TDEL(o); } return (ttbutton)0; } /* ttcheckbutton */ static ttcheckbutton Create_ttcheckbutton(ttshort width, ttshort height, ttshort pitch, TT_CONST ttbyte *text) { ttcheckbutton o; ttattr *_text; if ((o = TNEW_NOBUILD(ttcheckbutton))) { if (!text || !width || !height || (o->text = _text = TTAllocMem((ttint)width * height * sizeof(ttattr)))) { o->text_width = width; o->text_height = height; if (text && width) while (height--) { TTCopyStrL2Attr(text, _text, width, o->col); text += pitch; _text += width; } return (ttcheckbutton)Build((ttobject)o); } TDEL(o); } return (ttcheckbutton)0; } /* ttradiobutton */ static ttradiobutton Create_ttradiobutton(ttshort width, ttshort height, ttshort pitch, TT_CONST ttbyte *text) { ttradiobutton o; ttattr *_text; if ((o = TNEW_NOBUILD(ttradiobutton))) { if (!text || !width || !height || (o->text = _text = TTAllocMem((ttint)width * height * sizeof(ttattr)))) { o->text_width = width; o->text_height = height; if (text && width) while (height--) { TTCopyStrL2Attr(text, _text, width, o->col); text += pitch; _text += width; } return (ttradiobutton)Build((ttobject)o); } TDEL(o); } return (ttradiobutton)0; } /* ttscrollbar */ static ttscrollbar Create1_ttscrollbar(ttbyte orientation) { ttscrollbar o; if ((o = TNEW_NOBUILD(ttscrollbar))) { o->orientation = orientation; return (ttscrollbar)Build((ttobject)o); } return (ttscrollbar)0; } static ttscrollbar Create4_ttscrollbar(ttbyte orientation, ttint size, ttint real_size, ttint view_size) { ttscrollbar o; if ((o = TNEW_NOBUILD(ttscrollbar))) { if (orientation == ttanyscroll_orientation_x) o->orientation = ttanyscroll_orientation_x; else o->orientation = ttanyscroll_orientation_y; if (size >= 0) o->size = size; if (real_size >= 0) o->real_size = real_size; if (view_size >= 0) o->view_size = view_size; return (ttscrollbar)Build((ttobject)o); } return (ttscrollbar)0; } /* ttslider */ static ttslider Create_ttslider(ttbyte orientation, ttint real_size) { ttslider o; if ((o = TNEW_NOBUILD(ttslider))) { o->orientation = orientation; o->real_size = real_size; return (ttslider)Build((ttobject)o); } return (ttslider)0; } /* ttscrollpane */ static ttscrollpane Create_ttscrollpane(ttshort w, ttshort h) { ttscrollpane o; if ((o = TNEW_NOBUILD(ttscrollpane))) { /* let o keep its scrollbars in sync */ o->Class->SetWH(o, w, h); return (ttscrollpane)Build((ttobject)o); } return (ttscrollpane)0; } /* ttwindow */ /* ttframe */ static ttframe Create_ttframe(TT_CONST ttbyte *title) { ttframe o; if ((o = TNEW_NOBUILD(ttframe))) { if (!title || (o->title = TTCloneStr(title))) return (ttframe)Build((ttobject)o); TDEL(o); } return (ttframe)0; } /* ttscrollbar */ /* ttslider */ /* ttscroller */ static ttscroller Create_ttscroller(ttshort w, ttshort h) { ttscroller o; if ((o = TNEW_NOBUILD(ttscroller))) { /* could FIRE_EVENT here, but this is more compact */ TTSetWH_ttwidget((tt_obj)o->id, w, h); return (ttscroller)Build((ttobject)o); } return (ttscroller)0; } /* ttmenuitem */ /* ttcheckmenuitem */ /* ttradiomenuitem */ /* ttmenu */ /* ttmenubar */ /* ttanytext */ /* tttextfield */ /* tttextarea */ /* tttheme */ /* ttapplication */ TT_INLINE ttapplication Create_ttapplication(TT_CONST ttbyte *name) { ttbyte *apname; if (!name) return (ttapplication)0; if (TTD.Application || (TTD.Application = TNEW_NOBUILD(ttapplication))) { if ((apname = TTCloneStr(name))) { if (TTD.Application->name) TTFreeMem(TTD.Application->name); TTD.Application->name = apname; return (ttapplication)Build((ttobject)TTD.Application); } TDEL(TTD.Application); } return TTD.Application; } #endif /* TT_CREATE_H */ ������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/create_decl_m4.h��������������������������������������������������������������0000664�0000000�0000000�00000012623�13775351206�0017470�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/create_decl.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * create_decl_m4.h -- prototype for libTT internal Create* function pointers * */ ttvector (*Create1_ttvector)(ttany value); ttvector (*CreateA_ttvector)(ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttarg * values); ttvector (*CreateL_ttvector)(ttopaque value_n, ... ); ttvector (*CreateR_ttvector)(TT_ARG_READ ttvector v); ttvector (*CreateV_ttvector)(ttopaque value_n, TT_ARG_ARRAY((1)) va_list * values); ttvector (*CreateY_ttvector)(ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttany * values); ttevent (*Create_ttevent)(ttuint evtype, ttuint evcode, ttuint evflags); tteventbig (*Create8_tteventbig)(ttuint evtype, ttuint evcode, ttuint evflags, ttshort x, ttshort y, ttshort w, ttshort h, ttany value, ttany old_value, ttopaque data_len, TT_ARG_READ TT_ARG_ARRAY((_P(10))) ttbyte * data); tteventbig (*Create4_tteventbig)(ttuint evtype, ttuint evcode, ttuint evflags, ttshort x, ttshort y, ttshort w, ttshort h); tteventbig (*Create4s4_tteventbig)(ttuint evtype, ttuint evcode, ttuint evflags, ttany value, ttany old_value, ttopaque data_len, TT_ARG_READ TT_ARG_ARRAY((_P(6))) ttbyte * data); ttbitmask (*Create_ttbitmask)(ttany value); ttbitmask (*CreateB2_ttbitmask)(TT_ARG_READ ttbitmask o); ttbitmask (*CreateR_ttbitmask)(TT_ARG_DIE ttvector value); ttbitmask (*CreateR2_ttbitmask)(TT_ARG_READ ttvector value); tteventmask (*CreateB_tteventmask)(TT_ARG_DIE ttbitmask evtype_mask, TT_ARG_DIE ttbitmask evcode_mask, TT_ARG_DIE ttbitmask component_mask); tteventmask (*CreateB2_tteventmask)(TT_ARG_READ ttbitmask evtype_mask, TT_ARG_READ ttbitmask evcode_mask, TT_ARG_READ ttbitmask component_mask); ttlistener (*Create_ttlistener)(ttcomponent o, ttuint evtype, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg); ttlistener (*CreateE_ttlistener)(ttcomponent o, TT_ARG_DIE ttevent ev, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg); ttlistener (*CreateR_ttlistener)(ttcomponent o, TT_ARG_DIE ttevent ev, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttopaque arg_component_n, ttopaque arg_event_n, TT_ARG_DIE ttvector args); ttlistener (*CreateDel_ttlistener)(ttcomponent o, ttuint lflags, TT_ARG_READ ttlistener_fn function); ttlistener (*CreateAskclose_ttlistener)(ttcomponent o, ttuint lflags, TT_ARG_READ ttlistener_fn function); ttlistener (*CreateKey_ttlistener)(ttcomponent o, ttuint evcode, ttuint evflags, ttuint lflags, TT_ARG_READ ttlistener_fn function); ttlistener (*CreateMouse_ttlistener)(ttcomponent o, ttuint evcode, ttuint evflags, ttuint lflags, TT_ARG_READ ttlistener_fn function); ttlistener (*CreateActivate_ttlistener)(ttcomponent o, ttuint lflags, TT_ARG_READ ttlistener_fn function); ttlistener (*CreateChange_ttlistener)(ttcomponent o, ttuint evcode, ttuint lflags, TT_ARG_READ ttlistener_fn function); ttlistener (*CreateKeyData_ttlistener)(ttcomponent o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key, ttuint lflags, TT_ARG_READ ttlistener_fn function); ttlistener (*CreateExpose_ttlistener)(ttcomponent o, ttuint lflags, TT_ARG_READ ttlistener_fn function); tttimer (*CreateR_tttimer)(ttcomponent r, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttopaque arg_component_n, ttopaque arg_timer_n, TT_ARG_DIE ttvector args, ttany delay_t, ttany delay_f); tttimer (*Create_tttimer)(ttcomponent r, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg, ttany delay_t, ttany delay_f); ttboxlayout (*Create_ttboxlayout)(ttany orientation); ttnative (*Create_ttnative)(ttany native_value); ttlabel (*Create_ttlabel)(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * text); ttanybutton (*Create_ttanybutton)(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text); ttbutton (*Create_ttbutton)(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text); ttcheckbutton (*Create_ttcheckbutton)(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text); ttradiobutton (*Create_ttradiobutton)(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text); ttscrollbar (*Create1_ttscrollbar)(ttbyte orientation); ttscrollbar (*Create4_ttscrollbar)(ttbyte orientation, ttint size, ttint real_size, ttint view_size); ttslider (*Create_ttslider)(ttbyte orientation, ttint real_size); ttprogressbar (*Create_ttprogressbar)(ttbyte orientation); ttscrollpane (*Create_ttscrollpane)(ttshort w, ttshort h); ttframe (*Create_ttframe)(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title); ttscroller (*Create_ttscroller)(ttshort w, ttshort h); ttapplication (*Create_ttapplication)(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * name); �������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/create_defs_m4.h��������������������������������������������������������������0000664�0000000�0000000�00000010502�13775351206�0017474�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/create_defs.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * create_defs_m4.h -- #defines for libTT internal Create* function pointers * */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #define Create1_ttvector TTD.CREATE.Create1_ttvector #define CreateA_ttvector TTD.CREATE.CreateA_ttvector #define CreateL_ttvector TTD.CREATE.CreateL_ttvector #define CreateR_ttvector TTD.CREATE.CreateR_ttvector #define CreateV_ttvector TTD.CREATE.CreateV_ttvector #define CreateY_ttvector TTD.CREATE.CreateY_ttvector #define Create_ttevent TTD.CREATE.Create_ttevent #define Create8_tteventbig TTD.CREATE.Create8_tteventbig #define Create4_tteventbig TTD.CREATE.Create4_tteventbig #define Create4s4_tteventbig TTD.CREATE.Create4s4_tteventbig #define Create_ttbitmask TTD.CREATE.Create_ttbitmask #define CreateB2_ttbitmask TTD.CREATE.CreateB2_ttbitmask #define CreateR_ttbitmask TTD.CREATE.CreateR_ttbitmask #define CreateR2_ttbitmask TTD.CREATE.CreateR2_ttbitmask #define CreateB_tteventmask TTD.CREATE.CreateB_tteventmask #define CreateB2_tteventmask TTD.CREATE.CreateB2_tteventmask #define Create_ttcallback TClass_ttcallback->Create #define Create_ttlistener TTD.CREATE.Create_ttlistener #define CreateE_ttlistener TTD.CREATE.CreateE_ttlistener #define CreateR_ttlistener TTD.CREATE.CreateR_ttlistener #define CreateDel_ttlistener TTD.CREATE.CreateDel_ttlistener #define CreateAskclose_ttlistener TTD.CREATE.CreateAskclose_ttlistener #define CreateKey_ttlistener TTD.CREATE.CreateKey_ttlistener #define CreateMouse_ttlistener TTD.CREATE.CreateMouse_ttlistener #define CreateActivate_ttlistener TTD.CREATE.CreateActivate_ttlistener #define CreateChange_ttlistener TTD.CREATE.CreateChange_ttlistener #define CreateKeyData_ttlistener TTD.CREATE.CreateKeyData_ttlistener #define CreateExpose_ttlistener TTD.CREATE.CreateExpose_ttlistener #define CreateR_tttimer TTD.CREATE.CreateR_tttimer #define Create_tttimer TTD.CREATE.Create_tttimer #define Create_ttboxlayout TTD.CREATE.Create_ttboxlayout #define Create_ttnative TTD.CREATE.Create_ttnative #define Create_ttlabel TTD.CREATE.Create_ttlabel #define Create_ttanybutton TTD.CREATE.Create_ttanybutton #define Create_ttbutton TTD.CREATE.Create_ttbutton #define Create_ttcheckbutton TTD.CREATE.Create_ttcheckbutton #define Create_ttradiobutton TTD.CREATE.Create_ttradiobutton #define Create1_ttscrollbar TTD.CREATE.Create1_ttscrollbar #define Create4_ttscrollbar TTD.CREATE.Create4_ttscrollbar #define Create_ttslider TTD.CREATE.Create_ttslider #define Create_ttprogressbar TTD.CREATE.Create_ttprogressbar #define Create_ttscrollpane TTD.CREATE.Create_ttscrollpane #define Create_ttframe TTD.CREATE.Create_ttframe #define Create_ttscroller TTD.CREATE.Create_ttscroller #define Create_ttapplication TTD.CREATE.Create_ttapplication ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/create_init_m4.h��������������������������������������������������������������0000664�0000000�0000000�00000004271�13775351206�0017524�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/create_init.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * create_init_m4.h -- initialization of libTT internal Create* function pointers * */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ Create1_ttvector, CreateA_ttvector, CreateL_ttvector, CreateR_ttvector, CreateV_ttvector, CreateY_ttvector, Create_ttevent, Create8_tteventbig, Create4_tteventbig, Create4s4_tteventbig, Create_ttbitmask, CreateB2_ttbitmask, CreateR_ttbitmask, CreateR2_ttbitmask, CreateB_tteventmask, CreateB2_tteventmask, Create_ttlistener, CreateE_ttlistener, CreateR_ttlistener, CreateDel_ttlistener, CreateAskclose_ttlistener, CreateKey_ttlistener, CreateMouse_ttlistener, CreateActivate_ttlistener, CreateChange_ttlistener, CreateKeyData_ttlistener, CreateExpose_ttlistener, CreateR_tttimer, Create_tttimer, Create_ttboxlayout, Create_ttnative, Create_ttlabel, Create_ttanybutton, Create_ttbutton, Create_ttcheckbutton, Create_ttradiobutton, Create1_ttscrollbar, Create4_ttscrollbar, Create_ttslider, Create_ttprogressbar, Create_ttscrollpane, Create_ttframe, Create_ttscroller, Create_ttapplication, ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/datatypes.h�������������������������������������������������������������������0000664�0000000�0000000�00000002650�13775351206�0016633�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_DATATYPES_H #define TT_DATATYPES_H /* typedefs for objects and method structures */ typedef byte ttbyte; typedef sbyte ttchar; typedef dat ttshort; typedef udat ttushort; typedef ldat ttint; typedef uldat ttuint; typedef tcolor ttcol; typedef trune ttfont; typedef tcell ttattr; typedef topaque ttopaque; typedef topaque opaque; typedef tany ttany; typedef tany any; typedef ttopaque tttype; typedef void (*ttfunction_fn)(void); /* * these are the types to interface with clients. * Data of this types actually contains (ttopaque) integers. */ typedef struct s_tt_obj *tt_obj; #define tt_class tt_obj typedef void (*ttlistener_fn)(ttany arg0); typedef void (*ttlistener_array_fn)(ttuint nargs, ttany *args); typedef void (*ttvisible_repaint_fn)(tt_obj, ttshort, ttshort, ttshort, ttshort); typedef struct s_ttshape *ttshape; typedef struct s_ttshape { ttshort width, height, border[4]; ttattr *attr; } s_ttshape; /* AVL stuff imported from <Tw/Twavl.h> */ typedef struct s_tavl s_ttavl; typedef tavl ttavl; typedef tavl_c ttavl_c; typedef tavl_compare ttavl_compare; #endif /* TT_DATATYPES_H */ ����������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/decls_m4.h��������������������������������������������������������������������0000664�0000000�0000000�00000434503�13775351206�0016335�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/decls.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * decls_m4.h -- INTERNAL (!!) header for libTT types declarations * * Note: you cannot include both this file and <TT/decls_m4.h>, as they conflict! */ #ifndef TT_DECLSM4_H #define TT_DECLSM4_H /* clang-format off */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* many useful macros */ #define TT_OFFSETOF(type,field) ((size_t)&((type)0)->field) /* forward declarations for objects structures */ typedef struct s_ttobj * ttobj; typedef struct s_ttclass * ttclass; typedef struct s_ttobject * ttobject; typedef struct s_ttvector * ttvector; typedef struct s_ttfield * ttfield; typedef struct s_ttmethod * ttmethod; typedef struct s_ttevent * ttevent; typedef struct s_tteventbig * tteventbig; typedef struct s_ttbitmask * ttbitmask; typedef struct s_tteventmask * tteventmask; typedef struct s_ttcallback * ttcallback; typedef struct s_ttlistener * ttlistener; typedef struct s_tttimer * tttimer; typedef struct s_ttcomponent * ttcomponent; typedef struct s_ttdata * ttdata; typedef struct s_ttvisible * ttvisible; typedef struct s_ttlayout * ttlayout; typedef struct s_ttboxlayout * ttboxlayout; typedef struct s_ttborderlayout * ttborderlayout; typedef struct s_ttnative * ttnative; typedef struct s_ttwidget * ttwidget; typedef struct s_ttlabel * ttlabel; typedef struct s_tttooltip * tttooltip; typedef struct s_ttbuttongroup * ttbuttongroup; typedef struct s_ttanybutton * ttanybutton; typedef struct s_ttbutton * ttbutton; typedef struct s_ttcheckbutton * ttcheckbutton; typedef struct s_ttradiobutton * ttradiobutton; typedef struct s_ttanyscroll * ttanyscroll; typedef struct s_ttscrollbar * ttscrollbar; typedef struct s_ttslider * ttslider; typedef struct s_ttprogressbar * ttprogressbar; typedef struct s_ttscrollpane * ttscrollpane; typedef struct s_ttwindow * ttwindow; typedef struct s_ttframe * ttframe; typedef struct s_ttscroller * ttscroller; typedef struct s_ttmenuitem * ttmenuitem; typedef struct s_ttcheckmenuitem * ttcheckmenuitem; typedef struct s_ttradiomenuitem * ttradiomenuitem; typedef struct s_ttmenu * ttmenu; typedef struct s_ttmenubar * ttmenubar; typedef struct s_ttanytext * ttanytext; typedef struct s_tttextfield * tttextfield; typedef struct s_tttextarea * tttextarea; typedef struct s_tttheme * tttheme; typedef struct s_ttapplication * ttapplication; /* forward declarations for methods structures */ typedef struct s_ttclass_ttobj * ttclass_ttobj; typedef struct s_ttclass_ttclass * ttclass_ttclass; typedef struct s_ttclass_ttobject * ttclass_ttobject; typedef struct s_ttclass_ttvector * ttclass_ttvector; typedef struct s_ttclass_ttfield * ttclass_ttfield; typedef struct s_ttclass_ttmethod * ttclass_ttmethod; typedef struct s_ttclass_ttevent * ttclass_ttevent; typedef struct s_ttclass_tteventbig * ttclass_tteventbig; typedef struct s_ttclass_ttbitmask * ttclass_ttbitmask; typedef struct s_ttclass_tteventmask * ttclass_tteventmask; typedef struct s_ttclass_ttcallback * ttclass_ttcallback; typedef struct s_ttclass_ttlistener * ttclass_ttlistener; typedef struct s_ttclass_tttimer * ttclass_tttimer; typedef struct s_ttclass_ttcomponent * ttclass_ttcomponent; typedef struct s_ttclass_ttdata * ttclass_ttdata; typedef struct s_ttclass_ttvisible * ttclass_ttvisible; typedef struct s_ttclass_ttlayout * ttclass_ttlayout; typedef struct s_ttclass_ttboxlayout * ttclass_ttboxlayout; typedef struct s_ttclass_ttborderlayout * ttclass_ttborderlayout; typedef struct s_ttclass_ttnative * ttclass_ttnative; typedef struct s_ttclass_ttwidget * ttclass_ttwidget; typedef struct s_ttclass_ttlabel * ttclass_ttlabel; typedef struct s_ttclass_tttooltip * ttclass_tttooltip; typedef struct s_ttclass_ttbuttongroup * ttclass_ttbuttongroup; typedef struct s_ttclass_ttanybutton * ttclass_ttanybutton; typedef struct s_ttclass_ttbutton * ttclass_ttbutton; typedef struct s_ttclass_ttcheckbutton * ttclass_ttcheckbutton; typedef struct s_ttclass_ttradiobutton * ttclass_ttradiobutton; typedef struct s_ttclass_ttanyscroll * ttclass_ttanyscroll; typedef struct s_ttclass_ttscrollbar * ttclass_ttscrollbar; typedef struct s_ttclass_ttslider * ttclass_ttslider; typedef struct s_ttclass_ttprogressbar * ttclass_ttprogressbar; typedef struct s_ttclass_ttscrollpane * ttclass_ttscrollpane; typedef struct s_ttclass_ttwindow * ttclass_ttwindow; typedef struct s_ttclass_ttframe * ttclass_ttframe; typedef struct s_ttclass_ttscroller * ttclass_ttscroller; typedef struct s_ttclass_ttmenuitem * ttclass_ttmenuitem; typedef struct s_ttclass_ttcheckmenuitem * ttclass_ttcheckmenuitem; typedef struct s_ttclass_ttradiomenuitem * ttclass_ttradiomenuitem; typedef struct s_ttclass_ttmenu * ttclass_ttmenu; typedef struct s_ttclass_ttmenubar * ttclass_ttmenubar; typedef struct s_ttclass_ttanytext * ttclass_ttanytext; typedef struct s_ttclass_tttextfield * ttclass_tttextfield; typedef struct s_ttclass_tttextarea * ttclass_tttextarea; typedef struct s_ttclass_tttheme * ttclass_tttheme; typedef struct s_ttclass_ttapplication * ttclass_ttapplication; /* declarations for objects structures */ typedef struct s_ttobj { ttclass_ttobj Class; ttopaque id; } s_ttobj; typedef struct s_ttclass { ttclass_ttclass Class; ttopaque id; /* extends ttobj */ ttuint magicmask; ttuint magic; ttuint size; } s_ttclass; typedef struct s_ttobject { ttclass_ttobject Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; } s_ttobject; typedef struct s_ttvector { ttclass_ttvector Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttopaque array_size; ttopaque array_n; TT_ARG_ARRAY((_F(array_n))) ttany * array; } s_ttvector; typedef struct s_ttfield { ttclass_ttfield Class; ttopaque id; /* extends ttobj */ ttopaque name_len; TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * name; ttopaque type; } s_ttfield; typedef struct s_ttmethod { ttclass_ttmethod Class; ttopaque id; /* extends ttobj */ ttopaque name_len; TT_ARG_READ TT_ARG_ARRAY((_F(name_len))) ttbyte * name; ttfunction_fn address; ttopaque return_type; ttvector parameter_type; } s_ttmethod; typedef struct s_ttevent { ttclass_ttevent Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcomponent component; ttuint evtype; ttuint evcode; ttuint evflags; ttevent prev; ttevent next; } s_ttevent; typedef struct s_tteventbig { ttclass_tteventbig Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcomponent component; ttuint evtype; ttuint evcode; ttuint evflags; ttevent prev; ttevent next; /* extends ttevent */ ttshort x; ttshort y; ttshort w; ttshort h; ttany value; ttany old_value; ttopaque data_len; TT_ARG_READ TT_ARG_ARRAY((_F(data_len))) ttbyte * data; } s_tteventbig; typedef struct s_ttbitmask { ttclass_ttbitmask Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttopaque mask0; ttopaque mask_max; ttopaque mask_n; TT_ARG_ARRAY((_F(mask_n))) ttany * mask; } s_ttbitmask; typedef struct s_tteventmask { ttclass_tteventmask Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttbitmask evtype_mask; ttbitmask evcode_mask; ttbitmask component_mask; ttuint truth_table; } s_tteventmask; typedef struct s_ttcallback { ttclass_ttcallback Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttuint lflags; ttcomponent component; ttcallback prev; ttcallback next; } s_ttcallback; typedef struct s_ttlistener { ttclass_ttlistener Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttuint lflags; ttcomponent component; ttlistener prev; ttlistener next; /* extends ttcallback */ s_ttavl AVL; ttevent event; ttlistener_fn function; ttopaque arg_component_n; ttopaque arg_event_n; ttvector args; tteventmask event_mask; ttlistener inprogress_prev; ttlistener inprogress_next; } s_ttlistener; typedef struct s_tttimer { ttclass_tttimer Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttuint lflags; ttcomponent component; tttimer prev; tttimer next; /* extends ttcallback */ s_ttavl AVL; ttevent event; ttlistener_fn function; ttopaque arg_component_n; ttopaque arg_event_n; ttvector args; tteventmask event_mask; ttlistener inprogress_prev; ttlistener inprogress_next; /* extends ttlistener */ ttany delay_t; ttany delay_f; tttimer timer_prev; tttimer timer_next; } s_tttimer; typedef struct s_ttcomponent { ttclass_ttcomponent Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; } s_ttcomponent; typedef struct s_ttdata { ttclass_ttdata Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ s_ttavl AVL; ttcomponent component; ttopaque key_len; TT_ARG_ARRAY((_F(key_len))) ttbyte * key; ttany data; } s_ttdata; typedef struct s_ttvisible { ttclass_ttvisible Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; } s_ttvisible; typedef struct s_ttlayout { ttclass_ttlayout Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttwidget widget; } s_ttlayout; typedef struct s_ttboxlayout { ttclass_ttboxlayout Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttwidget widget; /* extends ttlayout */ ttuint orientation; } s_ttboxlayout; typedef struct s_ttborderlayout { ttclass_ttborderlayout Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttwidget widget; /* extends ttlayout */ } s_ttborderlayout; typedef struct s_ttnative { ttclass_ttnative Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ } s_ttnative; typedef struct s_ttwidget { ttclass_ttwidget Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; } s_ttwidget; typedef struct s_ttlabel { ttclass_ttlabel Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttopaque text_len; TT_ARG_ARRAY((_F(text_len))) ttfont * text; } s_ttlabel; typedef struct s_tttooltip { ttclass_tttooltip Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttopaque text_len; TT_ARG_ARRAY((_F(text_len))) ttfont * text; /* extends ttlabel */ ttopaque widget_id; ttwidget widget; } s_tttooltip; typedef struct s_ttbuttongroup { ttclass_ttbuttongroup Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttradiobutton group_first; ttradiobutton group_last; ttradiobutton checked; } s_ttbuttongroup; typedef struct s_ttanybutton { ttclass_ttanybutton Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttshort text_width; ttshort text_height; TT_ARG_ARRAY((_F(text_width),*,_F(text_height))) ttattr * text; struct s_ttshape theme_shape[ttderived_ttanybutton_shape_max]; } s_ttanybutton; typedef struct s_ttbutton { ttclass_ttbutton Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttshort text_width; ttshort text_height; TT_ARG_ARRAY((_F(text_width),*,_F(text_height))) ttattr * text; struct s_ttshape theme_shape[ttderived_ttanybutton_shape_max]; /* extends ttanybutton */ } s_ttbutton; typedef struct s_ttcheckbutton { ttclass_ttcheckbutton Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttshort text_width; ttshort text_height; TT_ARG_ARRAY((_F(text_width),*,_F(text_height))) ttattr * text; struct s_ttshape theme_shape[ttderived_ttanybutton_shape_max]; /* extends ttanybutton */ /* extends ttbutton */ } s_ttcheckbutton; typedef struct s_ttradiobutton { ttclass_ttradiobutton Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttshort text_width; ttshort text_height; TT_ARG_ARRAY((_F(text_width),*,_F(text_height))) ttattr * text; struct s_ttshape theme_shape[ttderived_ttanybutton_shape_max]; /* extends ttanybutton */ /* extends ttbutton */ /* extends ttcheckbutton */ ttbuttongroup group; ttradiobutton group_prev; ttradiobutton group_next; } s_ttradiobutton; typedef struct s_ttanyscroll { ttclass_ttanyscroll Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttshort text_width; ttshort text_height; TT_ARG_ARRAY((_F(text_width),*,_F(text_height))) ttattr * text; struct s_ttshape theme_shape[ttderived_ttanybutton_shape_max]; /* extends ttanybutton */ ttbyte orientation; ttint size; ttint real_size; ttint view_size; ttint real_view_size; ttint position; ttint real_position; ttuint state; } s_ttanyscroll; typedef struct s_ttscrollbar { ttclass_ttscrollbar Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttshort text_width; ttshort text_height; TT_ARG_ARRAY((_F(text_width),*,_F(text_height))) ttattr * text; struct s_ttshape theme_shape[ttderived_ttanybutton_shape_max]; /* extends ttanybutton */ ttbyte orientation; ttint size; ttint real_size; ttint view_size; ttint real_view_size; ttint position; ttint real_position; ttuint state; /* extends ttanyscroll */ ttscrollpane scrollpane; } s_ttscrollbar; typedef struct s_ttslider { ttclass_ttslider Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttshort text_width; ttshort text_height; TT_ARG_ARRAY((_F(text_width),*,_F(text_height))) ttattr * text; struct s_ttshape theme_shape[ttderived_ttanybutton_shape_max]; /* extends ttanybutton */ ttbyte orientation; ttint size; ttint real_size; ttint view_size; ttint real_view_size; ttint position; ttint real_position; ttuint state; /* extends ttanyscroll */ ttint slide_min; ttint slide_max; ttint slide_value; } s_ttslider; typedef struct s_ttprogressbar { ttclass_ttprogressbar Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttshort text_width; ttshort text_height; TT_ARG_ARRAY((_F(text_width),*,_F(text_height))) ttattr * text; struct s_ttshape theme_shape[ttderived_ttanybutton_shape_max]; /* extends ttanybutton */ ttbyte orientation; ttint size; ttint real_size; ttint view_size; ttint real_view_size; ttint position; ttint real_position; ttuint state; /* extends ttanyscroll */ ttint real_position_frac_above; ttint real_position_frac_below; } s_ttprogressbar; typedef struct s_ttscrollpane { ttclass_ttscrollpane Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttscrollbar bar_x; ttscrollbar bar_y; } s_ttscrollpane; typedef struct s_ttwindow { ttclass_ttwindow Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttopaque title_len; TT_ARG_ARRAY((_F(title_len))) ttbyte * title; } s_ttwindow; typedef struct s_ttframe { ttclass_ttframe Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttopaque title_len; TT_ARG_ARRAY((_F(title_len))) ttbyte * title; /* extends ttwindow */ ttmenubar menubar; } s_ttframe; typedef struct s_ttscroller { ttclass_ttscroller Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttopaque title_len; TT_ARG_ARRAY((_F(title_len))) ttbyte * title; /* extends ttwindow */ ttscrollpane scrollpane; } s_ttscroller; typedef struct s_ttmenuitem { ttclass_ttmenuitem Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttopaque name_len; TT_ARG_ARRAY((_F(name_len))) ttbyte * name; } s_ttmenuitem; typedef struct s_ttcheckmenuitem { ttclass_ttcheckmenuitem Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttopaque name_len; TT_ARG_ARRAY((_F(name_len))) ttbyte * name; /* extends ttmenuitem */ } s_ttcheckmenuitem; typedef struct s_ttradiomenuitem { ttclass_ttradiomenuitem Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttopaque name_len; TT_ARG_ARRAY((_F(name_len))) ttbyte * name; /* extends ttmenuitem */ /* extends ttcheckmenuitem */ } s_ttradiomenuitem; typedef struct s_ttmenu { ttclass_ttmenu Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttopaque name_len; TT_ARG_ARRAY((_F(name_len))) ttbyte * name; /* extends ttmenuitem */ ttmenubar menubar; } s_ttmenu; typedef struct s_ttmenubar { ttclass_ttmenubar Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ } s_ttmenubar; typedef struct s_ttanytext { ttclass_ttanytext Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttopaque title_len; TT_ARG_ARRAY((_F(title_len))) ttbyte * title; /* extends ttwindow */ ttopaque text_len; TT_ARG_ARRAY((_F(text_len))) ttattr * text; } s_ttanytext; typedef struct s_tttextfield { ttclass_tttextfield Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttopaque title_len; TT_ARG_ARRAY((_F(title_len))) ttbyte * title; /* extends ttwindow */ ttopaque text_len; TT_ARG_ARRAY((_F(text_len))) ttattr * text; /* extends ttanytext */ } s_tttextfield; typedef struct s_tttextarea { ttclass_tttextarea Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttuint vflags; ttvisible prev; ttvisible next; ttvisible parent; ttvisible child_first; ttvisible child_last; ttany constraint; tttheme theme; ttvisible_repaint_fn repaint; /* extends ttvisible */ ttshort x; ttshort y; ttshort w; ttshort h; ttlayout layout; ttint xl; ttint yl; ttint wl; ttint hl; ttcol col; tttooltip tooltip; /* extends ttwidget */ ttopaque title_len; TT_ARG_ARRAY((_F(title_len))) ttbyte * title; /* extends ttwindow */ ttopaque text_len; TT_ARG_ARRAY((_F(text_len))) ttattr * text; /* extends ttanytext */ /* extends tttextfield */ } s_tttextarea; typedef struct s_tttheme { ttclass_tttheme Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttopaque name_len; TT_ARG_ARRAY((_F(name_len))) ttbyte * name; ttfont fill; TT_ARG_ARRAY((_F(tttheme_bg_max))) ttcol bg[tttheme_bg_max]; TT_ARG_ARRAY((_F(tttheme_val_max))) ttint val[tttheme_val_max]; TT_ARG_ARRAY((_F(tttheme_shape_max)*2)) struct s_ttshape shape[tttheme_shape_max][2]; } s_tttheme; typedef struct s_ttapplication { ttclass_ttapplication Class; ttopaque id; /* extends ttobj */ ttopaque refcount; ttuint oflags; ttany native; ttany target_private; ttany user_data; ttopaque events_inprogress; ttopaque events_informed; /* extends ttobject */ ttcallback callbacks; ttlistener listeners; tttimer timers; ttdata datas; /* extends ttcomponent */ ttopaque name_len; TT_ARG_ARRAY((_F(name_len))) ttbyte * name; } s_ttapplication; /* declarations for methods structures */ typedef struct s_ttclass_ttobj { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; } s_ttclass_ttobj; typedef struct s_ttclass_ttclass { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ } s_ttclass_ttclass; typedef struct s_ttclass_ttobject { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttobject (*New) (TT_ARG_READ ttclass_ttobject Class, ttobject o); ttobject (*Build) (ttobject o); void (*Break) (ttobject o); void (*Del) (TT_ARG_DIE ttobject o); } s_ttclass_ttobject; typedef struct s_ttclass_ttvector { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttvector (*New) (TT_ARG_READ ttclass_ttvector Class, ttvector o); ttvector (*Build) (ttvector o); void (*Break) (ttvector o); void (*Del) (TT_ARG_DIE ttvector o); /* extends ttclass_ttobject */ ttany (*GetAt) (TT_ARG_READ ttvector o, ttopaque pos); ttbyte (*SetAt) (ttvector o, ttopaque pos, ttany value); ttbyte (*AddY) (ttvector o, ttopaque pos, ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttany * values); ttopaque (*ContainsValue) (TT_ARG_READ ttvector o, ttopaque pos_start, ttany value); ttbyte (*RemoveRange) (ttvector o, ttopaque pos_start, ttopaque pos_n); } s_ttclass_ttvector; typedef struct s_ttclass_ttfield { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ } s_ttclass_ttfield; typedef struct s_ttclass_ttmethod { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ } s_ttclass_ttmethod; typedef struct s_ttclass_ttevent { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttevent (*New) (TT_ARG_READ ttclass_ttevent Class, ttevent o); ttevent (*Build) (ttevent o); void (*Break) (ttevent o); void (*Del) (TT_ARG_DIE ttevent o); /* extends ttclass_ttobject */ } s_ttclass_ttevent; typedef struct s_ttclass_tteventbig { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ tteventbig (*New) (TT_ARG_READ ttclass_tteventbig Class, tteventbig o); tteventbig (*Build) (tteventbig o); void (*Break) (tteventbig o); void (*Del) (TT_ARG_DIE tteventbig o); /* extends ttclass_ttobject */ /* extends ttclass_ttevent */ } s_ttclass_tteventbig; typedef struct s_ttclass_ttbitmask { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttbitmask (*New) (TT_ARG_READ ttclass_ttbitmask Class, ttbitmask o); ttbitmask (*Build) (ttbitmask o); void (*Break) (ttbitmask o); void (*Del) (TT_ARG_DIE ttbitmask o); /* extends ttclass_ttobject */ } s_ttclass_ttbitmask; typedef struct s_ttclass_tteventmask { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ tteventmask (*New) (TT_ARG_READ ttclass_tteventmask Class, tteventmask o); tteventmask (*Build) (tteventmask o); void (*Break) (tteventmask o); void (*Del) (TT_ARG_DIE tteventmask o); /* extends ttclass_ttobject */ } s_ttclass_tteventmask; typedef struct s_ttclass_ttcallback { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttcallback (*New) (TT_ARG_READ ttclass_ttcallback Class, ttcallback o); ttcallback (*Build) (ttcallback o); void (*Break) (ttcallback o); void (*Del) (TT_ARG_DIE ttcallback o); /* extends ttclass_ttobject */ ttcallback (*Create) (ttcomponent o); } s_ttclass_ttcallback; typedef struct s_ttclass_ttlistener { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttlistener (*New) (TT_ARG_READ ttclass_ttlistener Class, ttlistener o); ttlistener (*Build) (ttlistener o); void (*Break) (ttlistener o); void (*Del) (TT_ARG_DIE ttlistener o); /* extends ttclass_ttobject */ ttcallback (*Create) (ttcomponent o); /* extends ttclass_ttcallback */ void (*AddTo) (ttlistener o, ttcomponent c); void (*Remove) (ttlistener o); } s_ttclass_ttlistener; typedef struct s_ttclass_tttimer { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ tttimer (*New) (TT_ARG_READ ttclass_tttimer Class, tttimer o); tttimer (*Build) (tttimer o); void (*Break) (tttimer o); void (*Del) (TT_ARG_DIE tttimer o); /* extends ttclass_ttobject */ ttcallback (*Create) (ttcomponent o); /* extends ttclass_ttcallback */ void (*AddTo) (tttimer o, ttcomponent c); void (*Remove) (tttimer o); /* extends ttclass_ttlistener */ void (*SetEnabled) (tttimer o, ttbyte enabled); ttbyte (*IsEnabled) (TT_ARG_READ tttimer o); } s_ttclass_tttimer; typedef struct s_ttclass_ttcomponent { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttcomponent (*New) (TT_ARG_READ ttclass_ttcomponent Class, ttcomponent o); ttcomponent (*Build) (ttcomponent o); void (*Break) (ttcomponent o); void (*Del) (TT_ARG_DIE ttcomponent o); /* extends ttclass_ttobject */ } s_ttclass_ttcomponent; typedef struct s_ttclass_ttdata { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttdata (*New) (TT_ARG_READ ttclass_ttdata Class, ttdata o); ttdata (*Build) (ttdata o); void (*Break) (ttdata o); void (*Del) (TT_ARG_DIE ttdata o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttdata data, ttcomponent c); void (*Remove) (ttdata data); } s_ttclass_ttdata; typedef struct s_ttclass_ttvisible { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttvisible (*New) (TT_ARG_READ ttclass_ttvisible Class, ttvisible o); ttvisible (*Build) (ttvisible o); void (*Break) (ttvisible o); void (*Del) (TT_ARG_DIE ttvisible o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttvisible o, ttvisible parent, ttany constraint); void (*Validate) (ttvisible o); void (*Remove) (ttvisible o); void (*Invalidate) (ttvisible o); void (*SetVisible) (ttvisible o, ttbyte visible); ttbyte (*SetTheme) (ttvisible o, TT_ARG_READ tttheme theme); void (*Draw) (ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h); } s_ttclass_ttvisible; typedef struct s_ttclass_ttlayout { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttlayout (*New) (TT_ARG_READ ttclass_ttlayout Class, ttlayout o); ttlayout (*Build) (ttlayout o); void (*Break) (ttlayout o); void (*Del) (TT_ARG_DIE ttlayout o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*SetWidget) (ttlayout o, ttwidget w); void (*DoLayout) (ttlayout o); } s_ttclass_ttlayout; typedef struct s_ttclass_ttboxlayout { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttboxlayout (*New) (TT_ARG_READ ttclass_ttboxlayout Class, ttboxlayout o); ttboxlayout (*Build) (ttboxlayout o); void (*Break) (ttboxlayout o); void (*Del) (TT_ARG_DIE ttboxlayout o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*SetWidget) (ttboxlayout o, ttwidget w); void (*DoLayout) (ttboxlayout o); /* extends ttclass_ttlayout */ } s_ttclass_ttboxlayout; typedef struct s_ttclass_ttborderlayout { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttborderlayout (*New) (TT_ARG_READ ttclass_ttborderlayout Class, ttborderlayout o); ttborderlayout (*Build) (ttborderlayout o); void (*Break) (ttborderlayout o); void (*Del) (TT_ARG_DIE ttborderlayout o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*SetWidget) (ttborderlayout o, ttwidget w); void (*DoLayout) (ttborderlayout o); /* extends ttclass_ttlayout */ } s_ttclass_ttborderlayout; typedef struct s_ttclass_ttnative { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttnative (*New) (TT_ARG_READ ttclass_ttnative Class, ttnative o); ttnative (*Build) (ttnative o); void (*Break) (ttnative o); void (*Del) (TT_ARG_DIE ttnative o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttnative o, ttvisible parent, ttany constraint); void (*Validate) (ttnative o); void (*Remove) (ttnative o); void (*Invalidate) (ttnative o); void (*SetVisible) (ttnative o, ttbyte visible); ttbyte (*SetTheme) (ttnative o, TT_ARG_READ tttheme theme); void (*Draw) (ttnative o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttnative o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ ttnative (*GetRoot) (void); ttshort (*GetW) (TT_ARG_READ ttnative o); ttshort (*GetH) (TT_ARG_READ ttnative o); } s_ttclass_ttnative; typedef struct s_ttclass_ttwidget { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttwidget (*New) (TT_ARG_READ ttclass_ttwidget Class, ttwidget o); ttwidget (*Build) (ttwidget o); void (*Break) (ttwidget o); void (*Del) (TT_ARG_DIE ttwidget o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttwidget o, ttvisible parent, ttany constraint); void (*Validate) (ttwidget o); void (*Remove) (ttwidget o); void (*Invalidate) (ttwidget o); void (*SetVisible) (ttwidget o, ttbyte visible); ttbyte (*SetTheme) (ttwidget o, TT_ARG_READ tttheme theme); void (*Draw) (ttwidget o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttwidget o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttwidget o, ttlayout l); ttbyte (*SetXY) (ttwidget o, ttshort x, ttshort y); ttbyte (*SetWH) (ttwidget o, ttshort w, ttshort h); ttbyte (*SetXl) (ttwidget o, ttint xl); ttbyte (*SetYl) (ttwidget o, ttint yl); ttbyte (*SetWl) (ttwidget o, ttint wl); ttbyte (*SetHl) (ttwidget o, ttint hl); ttbyte (*SetTooltip) (ttwidget o, TT_ARG_DIE tttooltip t); } s_ttclass_ttwidget; typedef struct s_ttclass_ttlabel { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttlabel (*New) (TT_ARG_READ ttclass_ttlabel Class, ttlabel o); ttlabel (*Build) (ttlabel o); void (*Break) (ttlabel o); void (*Del) (TT_ARG_DIE ttlabel o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttlabel o, ttvisible parent, ttany constraint); void (*Validate) (ttlabel o); void (*Remove) (ttlabel o); void (*Invalidate) (ttlabel o); void (*SetVisible) (ttlabel o, ttbyte visible); ttbyte (*SetTheme) (ttlabel o, TT_ARG_READ tttheme theme); void (*Draw) (ttlabel o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttlabel o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttlabel o, ttlayout l); ttbyte (*SetXY) (ttlabel o, ttshort x, ttshort y); ttbyte (*SetWH) (ttlabel o, ttshort w, ttshort h); ttbyte (*SetXl) (ttlabel o, ttint xl); ttbyte (*SetYl) (ttlabel o, ttint yl); ttbyte (*SetWl) (ttlabel o, ttint wl); ttbyte (*SetHl) (ttlabel o, ttint hl); ttbyte (*SetTooltip) (ttlabel o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ void (*SetFontD) (ttlabel o, ttopaque text_len, TT_ARG_DIE TT_ARG_ARRAY((_P(2))) ttfont * text); } s_ttclass_ttlabel; typedef struct s_ttclass_tttooltip { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ tttooltip (*New) (TT_ARG_READ ttclass_tttooltip Class, tttooltip o); tttooltip (*Build) (tttooltip o); void (*Break) (tttooltip o); void (*Del) (TT_ARG_DIE tttooltip o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (tttooltip o, ttvisible parent, ttany constraint); void (*Validate) (tttooltip o); void (*Remove) (tttooltip o); void (*Invalidate) (tttooltip o); void (*SetVisible) (tttooltip o, ttbyte visible); ttbyte (*SetTheme) (tttooltip o, TT_ARG_READ tttheme theme); void (*Draw) (tttooltip o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (tttooltip o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (tttooltip o, ttlayout l); ttbyte (*SetXY) (tttooltip o, ttshort x, ttshort y); ttbyte (*SetWH) (tttooltip o, ttshort w, ttshort h); ttbyte (*SetXl) (tttooltip o, ttint xl); ttbyte (*SetYl) (tttooltip o, ttint yl); ttbyte (*SetWl) (tttooltip o, ttint wl); ttbyte (*SetHl) (tttooltip o, ttint hl); ttbyte (*SetTooltip) (tttooltip o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ void (*SetFontD) (tttooltip o, ttopaque text_len, TT_ARG_DIE TT_ARG_ARRAY((_P(2))) ttfont * text); /* extends ttclass_ttlabel */ ttbyte (*SetWidget) (TT_ARG_DIE tttooltip o, ttwidget w); } s_ttclass_tttooltip; typedef struct s_ttclass_ttbuttongroup { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttbuttongroup (*New) (TT_ARG_READ ttclass_ttbuttongroup Class, ttbuttongroup o); ttbuttongroup (*Build) (ttbuttongroup o); void (*Break) (ttbuttongroup o); void (*Del) (TT_ARG_DIE ttbuttongroup o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*Add) (ttbuttongroup o, ttradiobutton r); void (*Remove) (ttbuttongroup o, ttradiobutton r); void (*SetChecked) (ttbuttongroup o, ttradiobutton r); } s_ttclass_ttbuttongroup; typedef struct s_ttclass_ttanybutton { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttanybutton (*New) (TT_ARG_READ ttclass_ttanybutton Class, ttanybutton o); ttanybutton (*Build) (ttanybutton o); void (*Break) (ttanybutton o); void (*Del) (TT_ARG_DIE ttanybutton o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttanybutton o, ttvisible parent, ttany constraint); void (*Validate) (ttanybutton o); void (*Remove) (ttanybutton o); void (*Invalidate) (ttanybutton o); void (*SetVisible) (ttanybutton o, ttbyte visible); ttbyte (*SetTheme) (ttanybutton o, TT_ARG_READ tttheme theme); void (*Draw) (ttanybutton o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttanybutton o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttanybutton o, ttlayout l); ttbyte (*SetXY) (ttanybutton o, ttshort x, ttshort y); ttbyte (*SetWH) (ttanybutton o, ttshort w, ttshort h); ttbyte (*SetXl) (ttanybutton o, ttint xl); ttbyte (*SetYl) (ttanybutton o, ttint yl); ttbyte (*SetWl) (ttanybutton o, ttint wl); ttbyte (*SetHl) (ttanybutton o, ttint hl); ttbyte (*SetTooltip) (ttanybutton o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttuint (*CacheThemeShape) (ttanybutton o); void (*SetAttrD) (ttanybutton o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text); } s_ttclass_ttanybutton; typedef struct s_ttclass_ttbutton { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttbutton (*New) (TT_ARG_READ ttclass_ttbutton Class, ttbutton o); ttbutton (*Build) (ttbutton o); void (*Break) (ttbutton o); void (*Del) (TT_ARG_DIE ttbutton o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttbutton o, ttvisible parent, ttany constraint); void (*Validate) (ttbutton o); void (*Remove) (ttbutton o); void (*Invalidate) (ttbutton o); void (*SetVisible) (ttbutton o, ttbyte visible); ttbyte (*SetTheme) (ttbutton o, TT_ARG_READ tttheme theme); void (*Draw) (ttbutton o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttbutton o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttbutton o, ttlayout l); ttbyte (*SetXY) (ttbutton o, ttshort x, ttshort y); ttbyte (*SetWH) (ttbutton o, ttshort w, ttshort h); ttbyte (*SetXl) (ttbutton o, ttint xl); ttbyte (*SetYl) (ttbutton o, ttint yl); ttbyte (*SetWl) (ttbutton o, ttint wl); ttbyte (*SetHl) (ttbutton o, ttint hl); ttbyte (*SetTooltip) (ttbutton o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttuint (*CacheThemeShape) (ttbutton o); void (*SetAttrD) (ttbutton o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text); /* extends ttclass_ttanybutton */ void (*SetPressed) (ttbutton o, ttbyte pressed); } s_ttclass_ttbutton; typedef struct s_ttclass_ttcheckbutton { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttcheckbutton (*New) (TT_ARG_READ ttclass_ttcheckbutton Class, ttcheckbutton o); ttcheckbutton (*Build) (ttcheckbutton o); void (*Break) (ttcheckbutton o); void (*Del) (TT_ARG_DIE ttcheckbutton o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttcheckbutton o, ttvisible parent, ttany constraint); void (*Validate) (ttcheckbutton o); void (*Remove) (ttcheckbutton o); void (*Invalidate) (ttcheckbutton o); void (*SetVisible) (ttcheckbutton o, ttbyte visible); ttbyte (*SetTheme) (ttcheckbutton o, TT_ARG_READ tttheme theme); void (*Draw) (ttcheckbutton o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttcheckbutton o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttcheckbutton o, ttlayout l); ttbyte (*SetXY) (ttcheckbutton o, ttshort x, ttshort y); ttbyte (*SetWH) (ttcheckbutton o, ttshort w, ttshort h); ttbyte (*SetXl) (ttcheckbutton o, ttint xl); ttbyte (*SetYl) (ttcheckbutton o, ttint yl); ttbyte (*SetWl) (ttcheckbutton o, ttint wl); ttbyte (*SetHl) (ttcheckbutton o, ttint hl); ttbyte (*SetTooltip) (ttcheckbutton o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttuint (*CacheThemeShape) (ttcheckbutton o); void (*SetAttrD) (ttcheckbutton o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text); /* extends ttclass_ttanybutton */ void (*SetPressed) (ttcheckbutton o, ttbyte pressed); /* extends ttclass_ttbutton */ void (*SetChecked) (ttcheckbutton o, ttbyte checked); } s_ttclass_ttcheckbutton; typedef struct s_ttclass_ttradiobutton { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttradiobutton (*New) (TT_ARG_READ ttclass_ttradiobutton Class, ttradiobutton o); ttradiobutton (*Build) (ttradiobutton o); void (*Break) (ttradiobutton o); void (*Del) (TT_ARG_DIE ttradiobutton o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttradiobutton o, ttvisible parent, ttany constraint); void (*Validate) (ttradiobutton o); void (*Remove) (ttradiobutton o); void (*Invalidate) (ttradiobutton o); void (*SetVisible) (ttradiobutton o, ttbyte visible); ttbyte (*SetTheme) (ttradiobutton o, TT_ARG_READ tttheme theme); void (*Draw) (ttradiobutton o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttradiobutton o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttradiobutton o, ttlayout l); ttbyte (*SetXY) (ttradiobutton o, ttshort x, ttshort y); ttbyte (*SetWH) (ttradiobutton o, ttshort w, ttshort h); ttbyte (*SetXl) (ttradiobutton o, ttint xl); ttbyte (*SetYl) (ttradiobutton o, ttint yl); ttbyte (*SetWl) (ttradiobutton o, ttint wl); ttbyte (*SetHl) (ttradiobutton o, ttint hl); ttbyte (*SetTooltip) (ttradiobutton o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttuint (*CacheThemeShape) (ttradiobutton o); void (*SetAttrD) (ttradiobutton o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text); /* extends ttclass_ttanybutton */ void (*SetPressed) (ttradiobutton o, ttbyte pressed); /* extends ttclass_ttbutton */ void (*SetChecked) (ttradiobutton o, ttbyte checked); /* extends ttclass_ttcheckbutton */ } s_ttclass_ttradiobutton; typedef struct s_ttclass_ttanyscroll { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttanyscroll (*New) (TT_ARG_READ ttclass_ttanyscroll Class, ttanyscroll o); ttanyscroll (*Build) (ttanyscroll o); void (*Break) (ttanyscroll o); void (*Del) (TT_ARG_DIE ttanyscroll o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttanyscroll o, ttvisible parent, ttany constraint); void (*Validate) (ttanyscroll o); void (*Remove) (ttanyscroll o); void (*Invalidate) (ttanyscroll o); void (*SetVisible) (ttanyscroll o, ttbyte visible); ttbyte (*SetTheme) (ttanyscroll o, TT_ARG_READ tttheme theme); void (*Draw) (ttanyscroll o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttanyscroll o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttanyscroll o, ttlayout l); ttbyte (*SetXY) (ttanyscroll o, ttshort x, ttshort y); ttbyte (*SetWH) (ttanyscroll o, ttshort w, ttshort h); ttbyte (*SetXl) (ttanyscroll o, ttint xl); ttbyte (*SetYl) (ttanyscroll o, ttint yl); ttbyte (*SetWl) (ttanyscroll o, ttint wl); ttbyte (*SetHl) (ttanyscroll o, ttint hl); ttbyte (*SetTooltip) (ttanyscroll o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttuint (*CacheThemeShape) (ttanyscroll o); void (*SetAttrD) (ttanyscroll o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text); /* extends ttclass_ttanybutton */ void (*Recalculate) (ttanyscroll o, ttint size, ttint real_size, ttint view_size, ttint position); ttbyte (*SetState) (ttanyscroll o, ttuint state); ttbyte (*SetOrientation) (ttanyscroll o, ttbyte orientation); ttbyte (*SetSize) (ttanyscroll o, ttint size); ttbyte (*SetRealSize) (ttanyscroll o, ttint real_size); ttbyte (*SetViewSize) (ttanyscroll o, ttint view_size); ttbyte (*SetPosition) (ttanyscroll o, ttint position); } s_ttclass_ttanyscroll; typedef struct s_ttclass_ttscrollbar { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttscrollbar (*New) (TT_ARG_READ ttclass_ttscrollbar Class, ttscrollbar o); ttscrollbar (*Build) (ttscrollbar o); void (*Break) (ttscrollbar o); void (*Del) (TT_ARG_DIE ttscrollbar o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttscrollbar o, ttvisible parent, ttany constraint); void (*Validate) (ttscrollbar o); void (*Remove) (ttscrollbar o); void (*Invalidate) (ttscrollbar o); void (*SetVisible) (ttscrollbar o, ttbyte visible); ttbyte (*SetTheme) (ttscrollbar o, TT_ARG_READ tttheme theme); void (*Draw) (ttscrollbar o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttscrollbar o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttscrollbar o, ttlayout l); ttbyte (*SetXY) (ttscrollbar o, ttshort x, ttshort y); ttbyte (*SetWH) (ttscrollbar o, ttshort w, ttshort h); ttbyte (*SetXl) (ttscrollbar o, ttint xl); ttbyte (*SetYl) (ttscrollbar o, ttint yl); ttbyte (*SetWl) (ttscrollbar o, ttint wl); ttbyte (*SetHl) (ttscrollbar o, ttint hl); ttbyte (*SetTooltip) (ttscrollbar o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttuint (*CacheThemeShape) (ttscrollbar o); void (*SetAttrD) (ttscrollbar o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text); /* extends ttclass_ttanybutton */ void (*Recalculate) (ttscrollbar o, ttint size, ttint real_size, ttint view_size, ttint position); ttbyte (*SetState) (ttscrollbar o, ttuint state); ttbyte (*SetOrientation) (ttscrollbar o, ttbyte orientation); ttbyte (*SetSize) (ttscrollbar o, ttint size); ttbyte (*SetRealSize) (ttscrollbar o, ttint real_size); ttbyte (*SetViewSize) (ttscrollbar o, ttint view_size); ttbyte (*SetPosition) (ttscrollbar o, ttint position); /* extends ttclass_ttanyscroll */ } s_ttclass_ttscrollbar; typedef struct s_ttclass_ttslider { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttslider (*New) (TT_ARG_READ ttclass_ttslider Class, ttslider o); ttslider (*Build) (ttslider o); void (*Break) (ttslider o); void (*Del) (TT_ARG_DIE ttslider o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttslider o, ttvisible parent, ttany constraint); void (*Validate) (ttslider o); void (*Remove) (ttslider o); void (*Invalidate) (ttslider o); void (*SetVisible) (ttslider o, ttbyte visible); ttbyte (*SetTheme) (ttslider o, TT_ARG_READ tttheme theme); void (*Draw) (ttslider o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttslider o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttslider o, ttlayout l); ttbyte (*SetXY) (ttslider o, ttshort x, ttshort y); ttbyte (*SetWH) (ttslider o, ttshort w, ttshort h); ttbyte (*SetXl) (ttslider o, ttint xl); ttbyte (*SetYl) (ttslider o, ttint yl); ttbyte (*SetWl) (ttslider o, ttint wl); ttbyte (*SetHl) (ttslider o, ttint hl); ttbyte (*SetTooltip) (ttslider o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttuint (*CacheThemeShape) (ttslider o); void (*SetAttrD) (ttslider o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text); /* extends ttclass_ttanybutton */ void (*Recalculate) (ttslider o, ttint size, ttint real_size, ttint view_size, ttint position); ttbyte (*SetState) (ttslider o, ttuint state); ttbyte (*SetOrientation) (ttslider o, ttbyte orientation); ttbyte (*SetSize) (ttslider o, ttint size); ttbyte (*SetRealSize) (ttslider o, ttint real_size); ttbyte (*SetViewSize) (ttslider o, ttint view_size); ttbyte (*SetPosition) (ttslider o, ttint position); /* extends ttclass_ttanyscroll */ ttbyte (*SetSlideMin) (ttslider o, ttint slide_min); ttbyte (*SetSlideMax) (ttslider o, ttint slide_max); ttbyte (*SetSlideValue) (ttslider o, ttint slide_value); } s_ttclass_ttslider; typedef struct s_ttclass_ttprogressbar { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttprogressbar (*New) (TT_ARG_READ ttclass_ttprogressbar Class, ttprogressbar o); ttprogressbar (*Build) (ttprogressbar o); void (*Break) (ttprogressbar o); void (*Del) (TT_ARG_DIE ttprogressbar o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttprogressbar o, ttvisible parent, ttany constraint); void (*Validate) (ttprogressbar o); void (*Remove) (ttprogressbar o); void (*Invalidate) (ttprogressbar o); void (*SetVisible) (ttprogressbar o, ttbyte visible); ttbyte (*SetTheme) (ttprogressbar o, TT_ARG_READ tttheme theme); void (*Draw) (ttprogressbar o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttprogressbar o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttprogressbar o, ttlayout l); ttbyte (*SetXY) (ttprogressbar o, ttshort x, ttshort y); ttbyte (*SetWH) (ttprogressbar o, ttshort w, ttshort h); ttbyte (*SetXl) (ttprogressbar o, ttint xl); ttbyte (*SetYl) (ttprogressbar o, ttint yl); ttbyte (*SetWl) (ttprogressbar o, ttint wl); ttbyte (*SetHl) (ttprogressbar o, ttint hl); ttbyte (*SetTooltip) (ttprogressbar o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttuint (*CacheThemeShape) (ttprogressbar o); void (*SetAttrD) (ttprogressbar o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text); /* extends ttclass_ttanybutton */ void (*Recalculate) (ttprogressbar o, ttint size, ttint real_size, ttint view_size, ttint position); ttbyte (*SetState) (ttprogressbar o, ttuint state); ttbyte (*SetOrientation) (ttprogressbar o, ttbyte orientation); ttbyte (*SetSize) (ttprogressbar o, ttint size); ttbyte (*SetRealSize) (ttprogressbar o, ttint real_size); ttbyte (*SetViewSize) (ttprogressbar o, ttint view_size); ttbyte (*SetPosition) (ttprogressbar o, ttint position); /* extends ttclass_ttanyscroll */ } s_ttclass_ttprogressbar; typedef struct s_ttclass_ttscrollpane { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttscrollpane (*New) (TT_ARG_READ ttclass_ttscrollpane Class, ttscrollpane o); ttscrollpane (*Build) (ttscrollpane o); void (*Break) (ttscrollpane o); void (*Del) (TT_ARG_DIE ttscrollpane o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttscrollpane o, ttvisible parent, ttany constraint); void (*Validate) (ttscrollpane o); void (*Remove) (ttscrollpane o); void (*Invalidate) (ttscrollpane o); void (*SetVisible) (ttscrollpane o, ttbyte visible); ttbyte (*SetTheme) (ttscrollpane o, TT_ARG_READ tttheme theme); void (*Draw) (ttscrollpane o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttscrollpane o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttscrollpane o, ttlayout l); ttbyte (*SetXY) (ttscrollpane o, ttshort x, ttshort y); ttbyte (*SetWH) (ttscrollpane o, ttshort w, ttshort h); ttbyte (*SetXl) (ttscrollpane o, ttint xl); ttbyte (*SetYl) (ttscrollpane o, ttint yl); ttbyte (*SetWl) (ttscrollpane o, ttint wl); ttbyte (*SetHl) (ttscrollpane o, ttint hl); ttbyte (*SetTooltip) (ttscrollpane o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttbyte (*SetBarX) (ttscrollpane o, ttscrollbar bar_x); ttbyte (*SetBarY) (ttscrollpane o, ttscrollbar bar_y); } s_ttclass_ttscrollpane; typedef struct s_ttclass_ttwindow { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttwindow (*New) (TT_ARG_READ ttclass_ttwindow Class, ttwindow o); ttwindow (*Build) (ttwindow o); void (*Break) (ttwindow o); void (*Del) (TT_ARG_DIE ttwindow o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttwindow o, ttvisible parent, ttany constraint); void (*Validate) (ttwindow o); void (*Remove) (ttwindow o); void (*Invalidate) (ttwindow o); void (*SetVisible) (ttwindow o, ttbyte visible); ttbyte (*SetTheme) (ttwindow o, TT_ARG_READ tttheme theme); void (*Draw) (ttwindow o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttwindow o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttwindow o, ttlayout l); ttbyte (*SetXY) (ttwindow o, ttshort x, ttshort y); ttbyte (*SetWH) (ttwindow o, ttshort w, ttshort h); ttbyte (*SetXl) (ttwindow o, ttint xl); ttbyte (*SetYl) (ttwindow o, ttint yl); ttbyte (*SetWl) (ttwindow o, ttint wl); ttbyte (*SetHl) (ttwindow o, ttint hl); ttbyte (*SetTooltip) (ttwindow o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttbyte (*SetTitle) (ttwindow o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title); } s_ttclass_ttwindow; typedef struct s_ttclass_ttframe { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttframe (*New) (TT_ARG_READ ttclass_ttframe Class, ttframe o); ttframe (*Build) (ttframe o); void (*Break) (ttframe o); void (*Del) (TT_ARG_DIE ttframe o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttframe o, ttvisible parent, ttany constraint); void (*Validate) (ttframe o); void (*Remove) (ttframe o); void (*Invalidate) (ttframe o); void (*SetVisible) (ttframe o, ttbyte visible); ttbyte (*SetTheme) (ttframe o, TT_ARG_READ tttheme theme); void (*Draw) (ttframe o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttframe o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttframe o, ttlayout l); ttbyte (*SetXY) (ttframe o, ttshort x, ttshort y); ttbyte (*SetWH) (ttframe o, ttshort w, ttshort h); ttbyte (*SetXl) (ttframe o, ttint xl); ttbyte (*SetYl) (ttframe o, ttint yl); ttbyte (*SetWl) (ttframe o, ttint wl); ttbyte (*SetHl) (ttframe o, ttint hl); ttbyte (*SetTooltip) (ttframe o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttbyte (*SetTitle) (ttframe o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title); /* extends ttclass_ttwindow */ ttbyte (*SetMenubar) (ttframe o, TT_ARG_READ ttmenubar m); } s_ttclass_ttframe; typedef struct s_ttclass_ttscroller { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttscroller (*New) (TT_ARG_READ ttclass_ttscroller Class, ttscroller o); ttscroller (*Build) (ttscroller o); void (*Break) (ttscroller o); void (*Del) (TT_ARG_DIE ttscroller o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttscroller o, ttvisible parent, ttany constraint); void (*Validate) (ttscroller o); void (*Remove) (ttscroller o); void (*Invalidate) (ttscroller o); void (*SetVisible) (ttscroller o, ttbyte visible); ttbyte (*SetTheme) (ttscroller o, TT_ARG_READ tttheme theme); void (*Draw) (ttscroller o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttscroller o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttscroller o, ttlayout l); ttbyte (*SetXY) (ttscroller o, ttshort x, ttshort y); ttbyte (*SetWH) (ttscroller o, ttshort w, ttshort h); ttbyte (*SetXl) (ttscroller o, ttint xl); ttbyte (*SetYl) (ttscroller o, ttint yl); ttbyte (*SetWl) (ttscroller o, ttint wl); ttbyte (*SetHl) (ttscroller o, ttint hl); ttbyte (*SetTooltip) (ttscroller o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttbyte (*SetTitle) (ttscroller o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title); /* extends ttclass_ttwindow */ } s_ttclass_ttscroller; typedef struct s_ttclass_ttmenuitem { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttmenuitem (*New) (TT_ARG_READ ttclass_ttmenuitem Class, ttmenuitem o); ttmenuitem (*Build) (ttmenuitem o); void (*Break) (ttmenuitem o); void (*Del) (TT_ARG_DIE ttmenuitem o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttmenuitem o, ttvisible parent, ttany constraint); void (*Validate) (ttmenuitem o); void (*Remove) (ttmenuitem o); void (*Invalidate) (ttmenuitem o); void (*SetVisible) (ttmenuitem o, ttbyte visible); ttbyte (*SetTheme) (ttmenuitem o, TT_ARG_READ tttheme theme); void (*Draw) (ttmenuitem o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttmenuitem o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ } s_ttclass_ttmenuitem; typedef struct s_ttclass_ttcheckmenuitem { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttcheckmenuitem (*New) (TT_ARG_READ ttclass_ttcheckmenuitem Class, ttcheckmenuitem o); ttcheckmenuitem (*Build) (ttcheckmenuitem o); void (*Break) (ttcheckmenuitem o); void (*Del) (TT_ARG_DIE ttcheckmenuitem o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttcheckmenuitem o, ttvisible parent, ttany constraint); void (*Validate) (ttcheckmenuitem o); void (*Remove) (ttcheckmenuitem o); void (*Invalidate) (ttcheckmenuitem o); void (*SetVisible) (ttcheckmenuitem o, ttbyte visible); ttbyte (*SetTheme) (ttcheckmenuitem o, TT_ARG_READ tttheme theme); void (*Draw) (ttcheckmenuitem o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttcheckmenuitem o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ } s_ttclass_ttcheckmenuitem; typedef struct s_ttclass_ttradiomenuitem { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttradiomenuitem (*New) (TT_ARG_READ ttclass_ttradiomenuitem Class, ttradiomenuitem o); ttradiomenuitem (*Build) (ttradiomenuitem o); void (*Break) (ttradiomenuitem o); void (*Del) (TT_ARG_DIE ttradiomenuitem o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttradiomenuitem o, ttvisible parent, ttany constraint); void (*Validate) (ttradiomenuitem o); void (*Remove) (ttradiomenuitem o); void (*Invalidate) (ttradiomenuitem o); void (*SetVisible) (ttradiomenuitem o, ttbyte visible); ttbyte (*SetTheme) (ttradiomenuitem o, TT_ARG_READ tttheme theme); void (*Draw) (ttradiomenuitem o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttradiomenuitem o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ /* extends ttclass_ttcheckmenuitem */ } s_ttclass_ttradiomenuitem; typedef struct s_ttclass_ttmenu { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttmenu (*New) (TT_ARG_READ ttclass_ttmenu Class, ttmenu o); ttmenu (*Build) (ttmenu o); void (*Break) (ttmenu o); void (*Del) (TT_ARG_DIE ttmenu o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttmenu o, ttvisible parent, ttany constraint); void (*Validate) (ttmenu o); void (*Remove) (ttmenu o); void (*Invalidate) (ttmenu o); void (*SetVisible) (ttmenu o, ttbyte visible); ttbyte (*SetTheme) (ttmenu o, TT_ARG_READ tttheme theme); void (*Draw) (ttmenu o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttmenu o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ /* extends ttclass_ttmenuitem */ } s_ttclass_ttmenu; typedef struct s_ttclass_ttmenubar { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttmenubar (*New) (TT_ARG_READ ttclass_ttmenubar Class, ttmenubar o); ttmenubar (*Build) (ttmenubar o); void (*Break) (ttmenubar o); void (*Del) (TT_ARG_DIE ttmenubar o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttmenubar o, ttvisible parent, ttany constraint); void (*Validate) (ttmenubar o); void (*Remove) (ttmenubar o); void (*Invalidate) (ttmenubar o); void (*SetVisible) (ttmenubar o, ttbyte visible); ttbyte (*SetTheme) (ttmenubar o, TT_ARG_READ tttheme theme); void (*Draw) (ttmenubar o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttmenubar o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ } s_ttclass_ttmenubar; typedef struct s_ttclass_ttanytext { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttanytext (*New) (TT_ARG_READ ttclass_ttanytext Class, ttanytext o); ttanytext (*Build) (ttanytext o); void (*Break) (ttanytext o); void (*Del) (TT_ARG_DIE ttanytext o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (ttanytext o, ttvisible parent, ttany constraint); void (*Validate) (ttanytext o); void (*Remove) (ttanytext o); void (*Invalidate) (ttanytext o); void (*SetVisible) (ttanytext o, ttbyte visible); ttbyte (*SetTheme) (ttanytext o, TT_ARG_READ tttheme theme); void (*Draw) (ttanytext o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (ttanytext o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (ttanytext o, ttlayout l); ttbyte (*SetXY) (ttanytext o, ttshort x, ttshort y); ttbyte (*SetWH) (ttanytext o, ttshort w, ttshort h); ttbyte (*SetXl) (ttanytext o, ttint xl); ttbyte (*SetYl) (ttanytext o, ttint yl); ttbyte (*SetWl) (ttanytext o, ttint wl); ttbyte (*SetHl) (ttanytext o, ttint hl); ttbyte (*SetTooltip) (ttanytext o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttbyte (*SetTitle) (ttanytext o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title); /* extends ttclass_ttwindow */ } s_ttclass_ttanytext; typedef struct s_ttclass_tttextfield { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ tttextfield (*New) (TT_ARG_READ ttclass_tttextfield Class, tttextfield o); tttextfield (*Build) (tttextfield o); void (*Break) (tttextfield o); void (*Del) (TT_ARG_DIE tttextfield o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (tttextfield o, ttvisible parent, ttany constraint); void (*Validate) (tttextfield o); void (*Remove) (tttextfield o); void (*Invalidate) (tttextfield o); void (*SetVisible) (tttextfield o, ttbyte visible); ttbyte (*SetTheme) (tttextfield o, TT_ARG_READ tttheme theme); void (*Draw) (tttextfield o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (tttextfield o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (tttextfield o, ttlayout l); ttbyte (*SetXY) (tttextfield o, ttshort x, ttshort y); ttbyte (*SetWH) (tttextfield o, ttshort w, ttshort h); ttbyte (*SetXl) (tttextfield o, ttint xl); ttbyte (*SetYl) (tttextfield o, ttint yl); ttbyte (*SetWl) (tttextfield o, ttint wl); ttbyte (*SetHl) (tttextfield o, ttint hl); ttbyte (*SetTooltip) (tttextfield o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttbyte (*SetTitle) (tttextfield o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title); /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ } s_ttclass_tttextfield; typedef struct s_ttclass_tttextarea { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ tttextarea (*New) (TT_ARG_READ ttclass_tttextarea Class, tttextarea o); tttextarea (*Build) (tttextarea o); void (*Break) (tttextarea o); void (*Del) (TT_ARG_DIE tttextarea o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ void (*AddTo) (tttextarea o, ttvisible parent, ttany constraint); void (*Validate) (tttextarea o); void (*Remove) (tttextarea o); void (*Invalidate) (tttextarea o); void (*SetVisible) (tttextarea o, ttbyte visible); ttbyte (*SetTheme) (tttextarea o, TT_ARG_READ tttheme theme); void (*Draw) (tttextarea o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void (*BuiltinRepaint) (tttextarea o, ttshort x, ttshort y, ttshort w, ttshort h); /* extends ttclass_ttvisible */ void (*SetLayout) (tttextarea o, ttlayout l); ttbyte (*SetXY) (tttextarea o, ttshort x, ttshort y); ttbyte (*SetWH) (tttextarea o, ttshort w, ttshort h); ttbyte (*SetXl) (tttextarea o, ttint xl); ttbyte (*SetYl) (tttextarea o, ttint yl); ttbyte (*SetWl) (tttextarea o, ttint wl); ttbyte (*SetHl) (tttextarea o, ttint hl); ttbyte (*SetTooltip) (tttextarea o, TT_ARG_DIE tttooltip t); /* extends ttclass_ttwidget */ ttbyte (*SetTitle) (tttextarea o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title); /* extends ttclass_ttwindow */ /* extends ttclass_ttanytext */ /* extends ttclass_tttextfield */ } s_ttclass_tttextarea; typedef struct s_ttclass_tttheme { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ tttheme (*New) (TT_ARG_READ ttclass_tttheme Class, tttheme o); tttheme (*Build) (tttheme o); void (*Break) (tttheme o); void (*Del) (TT_ARG_DIE tttheme o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ } s_ttclass_tttheme; typedef struct s_ttclass_ttapplication { ttclass_ttclass Class; ttopaque id; ttuint magicmask; ttuint magic; ttuint size; /* extends ttclass_ttobj */ ttapplication (*New) (TT_ARG_READ ttclass_ttapplication Class, ttapplication o); ttapplication (*Build) (ttapplication o); void (*Break) (ttapplication o); void (*Del) (TT_ARG_DIE ttapplication o); /* extends ttclass_ttobject */ /* extends ttclass_ttcomponent */ } s_ttclass_ttapplication; typedef struct s_tthw *tthw; typedef struct s_tthw { byte (*Sync)(void); byte (*Flush)(void); byte (*TimidFlush)(void); byte (*MainLoopOnce)(byte); void (*DeleteCallback)(ttcallback); void (*Close)(void); int (*ConnectionFd)(void); ttuint (*GetErrno)(void); ttuint (*GetErrnoDetail)(void); TT_CONST byte *(*StrError)(ttuint E); TT_CONST byte *(*StrErrorDetail)(ttuint E, ttuint S); } s_tthw; typedef struct s_ttclasses *ttclasses; typedef struct s_ttclasses { s_ttclass_ttobj class_ttobj; s_ttclass_ttclass class_ttclass; s_ttclass_ttobject class_ttobject; s_ttclass_ttvector class_ttvector; s_ttclass_ttfield class_ttfield; s_ttclass_ttmethod class_ttmethod; s_ttclass_ttevent class_ttevent; s_ttclass_tteventbig class_tteventbig; s_ttclass_ttbitmask class_ttbitmask; s_ttclass_tteventmask class_tteventmask; s_ttclass_ttcallback class_ttcallback; s_ttclass_ttlistener class_ttlistener; s_ttclass_tttimer class_tttimer; s_ttclass_ttcomponent class_ttcomponent; s_ttclass_ttdata class_ttdata; s_ttclass_ttvisible class_ttvisible; s_ttclass_ttlayout class_ttlayout; s_ttclass_ttboxlayout class_ttboxlayout; s_ttclass_ttborderlayout class_ttborderlayout; s_ttclass_ttnative class_ttnative; s_ttclass_ttwidget class_ttwidget; s_ttclass_ttlabel class_ttlabel; s_ttclass_tttooltip class_tttooltip; s_ttclass_ttbuttongroup class_ttbuttongroup; s_ttclass_ttanybutton class_ttanybutton; s_ttclass_ttbutton class_ttbutton; s_ttclass_ttcheckbutton class_ttcheckbutton; s_ttclass_ttradiobutton class_ttradiobutton; s_ttclass_ttanyscroll class_ttanyscroll; s_ttclass_ttscrollbar class_ttscrollbar; s_ttclass_ttslider class_ttslider; s_ttclass_ttprogressbar class_ttprogressbar; s_ttclass_ttscrollpane class_ttscrollpane; s_ttclass_ttwindow class_ttwindow; s_ttclass_ttframe class_ttframe; s_ttclass_ttscroller class_ttscroller; s_ttclass_ttmenuitem class_ttmenuitem; s_ttclass_ttcheckmenuitem class_ttcheckmenuitem; s_ttclass_ttradiomenuitem class_ttradiomenuitem; s_ttclass_ttmenu class_ttmenu; s_ttclass_ttmenubar class_ttmenubar; s_ttclass_ttanytext class_ttanytext; s_ttclass_tttextfield class_tttextfield; s_ttclass_tttextarea class_tttextarea; s_ttclass_tttheme class_tttheme; s_ttclass_ttapplication class_ttapplication; s_tthw HW; } s_ttclasses; /* client-visible global methods structures */ extern tt_obj TTClass_ttobj; extern tt_obj TTClass_ttclass; extern tt_obj TTClass_ttobject; extern tt_obj TTClass_ttvector; extern tt_obj TTClass_ttfield; extern tt_obj TTClass_ttmethod; extern tt_obj TTClass_ttevent; extern tt_obj TTClass_tteventbig; extern tt_obj TTClass_ttbitmask; extern tt_obj TTClass_tteventmask; extern tt_obj TTClass_ttcallback; extern tt_obj TTClass_ttlistener; extern tt_obj TTClass_tttimer; extern tt_obj TTClass_ttcomponent; extern tt_obj TTClass_ttdata; extern tt_obj TTClass_ttvisible; extern tt_obj TTClass_ttlayout; extern tt_obj TTClass_ttboxlayout; extern tt_obj TTClass_ttborderlayout; extern tt_obj TTClass_ttnative; extern tt_obj TTClass_ttwidget; extern tt_obj TTClass_ttlabel; extern tt_obj TTClass_tttooltip; extern tt_obj TTClass_ttbuttongroup; extern tt_obj TTClass_ttanybutton; extern tt_obj TTClass_ttbutton; extern tt_obj TTClass_ttcheckbutton; extern tt_obj TTClass_ttradiobutton; extern tt_obj TTClass_ttanyscroll; extern tt_obj TTClass_ttscrollbar; extern tt_obj TTClass_ttslider; extern tt_obj TTClass_ttprogressbar; extern tt_obj TTClass_ttscrollpane; extern tt_obj TTClass_ttwindow; extern tt_obj TTClass_ttframe; extern tt_obj TTClass_ttscroller; extern tt_obj TTClass_ttmenuitem; extern tt_obj TTClass_ttcheckmenuitem; extern tt_obj TTClass_ttradiomenuitem; extern tt_obj TTClass_ttmenu; extern tt_obj TTClass_ttmenubar; extern tt_obj TTClass_ttanytext; extern tt_obj TTClass_tttextfield; extern tt_obj TTClass_tttextarea; extern tt_obj TTClass_tttheme; extern tt_obj TTClass_ttapplication; /* client-visible global types */ extern tt_obj TTClass_void; extern tt_obj TTClass_ttbyte; extern tt_obj TTClass_ttshort; extern tt_obj TTClass_ttint; extern tt_obj TTClass_ttcol; extern tt_obj TTClass_ttfont; extern tt_obj TTClass_ttattr; extern tt_obj TTClass_ttopaque; extern tt_obj TTClass_ttany; extern tt_obj TTClass_ttfunction_fn; extern tt_obj TTClass_va_list; extern tt_obj TTClass_ttarg; #define TTClass_ttsbyte TTClass_ttbyte #define TTClass_ttushort TTClass_ttshort #define TTClass_ttuint TTClass_ttint /* #defines for global methods structures */ #define TClasses (TTD.Classes) #define THW (TTD.Class.HW) #define TClass_ttobj (&TTD.Class.class_ttobj) #define TClass_ttclass (&TTD.Class.class_ttclass) #define TClass_ttobject (&TTD.Class.class_ttobject) #define TClass_ttvector (&TTD.Class.class_ttvector) #define TClass_ttfield (&TTD.Class.class_ttfield) #define TClass_ttmethod (&TTD.Class.class_ttmethod) #define TClass_ttevent (&TTD.Class.class_ttevent) #define TClass_tteventbig (&TTD.Class.class_tteventbig) #define TClass_ttbitmask (&TTD.Class.class_ttbitmask) #define TClass_tteventmask (&TTD.Class.class_tteventmask) #define TClass_ttcallback (&TTD.Class.class_ttcallback) #define TClass_ttlistener (&TTD.Class.class_ttlistener) #define TClass_tttimer (&TTD.Class.class_tttimer) #define TClass_ttcomponent (&TTD.Class.class_ttcomponent) #define TClass_ttdata (&TTD.Class.class_ttdata) #define TClass_ttvisible (&TTD.Class.class_ttvisible) #define TClass_ttlayout (&TTD.Class.class_ttlayout) #define TClass_ttboxlayout (&TTD.Class.class_ttboxlayout) #define TClass_ttborderlayout (&TTD.Class.class_ttborderlayout) #define TClass_ttnative (&TTD.Class.class_ttnative) #define TClass_ttwidget (&TTD.Class.class_ttwidget) #define TClass_ttlabel (&TTD.Class.class_ttlabel) #define TClass_tttooltip (&TTD.Class.class_tttooltip) #define TClass_ttbuttongroup (&TTD.Class.class_ttbuttongroup) #define TClass_ttanybutton (&TTD.Class.class_ttanybutton) #define TClass_ttbutton (&TTD.Class.class_ttbutton) #define TClass_ttcheckbutton (&TTD.Class.class_ttcheckbutton) #define TClass_ttradiobutton (&TTD.Class.class_ttradiobutton) #define TClass_ttanyscroll (&TTD.Class.class_ttanyscroll) #define TClass_ttscrollbar (&TTD.Class.class_ttscrollbar) #define TClass_ttslider (&TTD.Class.class_ttslider) #define TClass_ttprogressbar (&TTD.Class.class_ttprogressbar) #define TClass_ttscrollpane (&TTD.Class.class_ttscrollpane) #define TClass_ttwindow (&TTD.Class.class_ttwindow) #define TClass_ttframe (&TTD.Class.class_ttframe) #define TClass_ttscroller (&TTD.Class.class_ttscroller) #define TClass_ttmenuitem (&TTD.Class.class_ttmenuitem) #define TClass_ttcheckmenuitem (&TTD.Class.class_ttcheckmenuitem) #define TClass_ttradiomenuitem (&TTD.Class.class_ttradiomenuitem) #define TClass_ttmenu (&TTD.Class.class_ttmenu) #define TClass_ttmenubar (&TTD.Class.class_ttmenubar) #define TClass_ttanytext (&TTD.Class.class_ttanytext) #define TClass_tttextfield (&TTD.Class.class_tttextfield) #define TClass_tttextarea (&TTD.Class.class_tttextarea) #define TClass_tttheme (&TTD.Class.class_tttheme) #define TClass_ttapplication (&TTD.Class.class_ttapplication) #define TClass(type) TT_CAT(TClass_,type) #define TClass_default_ttobj (&TTD.Class_default.class_ttobj) #define TClass_default_ttclass (&TTD.Class_default.class_ttclass) #define TClass_default_ttobject (&TTD.Class_default.class_ttobject) #define TClass_default_ttvector (&TTD.Class_default.class_ttvector) #define TClass_default_ttfield (&TTD.Class_default.class_ttfield) #define TClass_default_ttmethod (&TTD.Class_default.class_ttmethod) #define TClass_default_ttevent (&TTD.Class_default.class_ttevent) #define TClass_default_tteventbig (&TTD.Class_default.class_tteventbig) #define TClass_default_ttbitmask (&TTD.Class_default.class_ttbitmask) #define TClass_default_tteventmask (&TTD.Class_default.class_tteventmask) #define TClass_default_ttcallback (&TTD.Class_default.class_ttcallback) #define TClass_default_ttlistener (&TTD.Class_default.class_ttlistener) #define TClass_default_tttimer (&TTD.Class_default.class_tttimer) #define TClass_default_ttcomponent (&TTD.Class_default.class_ttcomponent) #define TClass_default_ttdata (&TTD.Class_default.class_ttdata) #define TClass_default_ttvisible (&TTD.Class_default.class_ttvisible) #define TClass_default_ttlayout (&TTD.Class_default.class_ttlayout) #define TClass_default_ttboxlayout (&TTD.Class_default.class_ttboxlayout) #define TClass_default_ttborderlayout (&TTD.Class_default.class_ttborderlayout) #define TClass_default_ttnative (&TTD.Class_default.class_ttnative) #define TClass_default_ttwidget (&TTD.Class_default.class_ttwidget) #define TClass_default_ttlabel (&TTD.Class_default.class_ttlabel) #define TClass_default_tttooltip (&TTD.Class_default.class_tttooltip) #define TClass_default_ttbuttongroup (&TTD.Class_default.class_ttbuttongroup) #define TClass_default_ttanybutton (&TTD.Class_default.class_ttanybutton) #define TClass_default_ttbutton (&TTD.Class_default.class_ttbutton) #define TClass_default_ttcheckbutton (&TTD.Class_default.class_ttcheckbutton) #define TClass_default_ttradiobutton (&TTD.Class_default.class_ttradiobutton) #define TClass_default_ttanyscroll (&TTD.Class_default.class_ttanyscroll) #define TClass_default_ttscrollbar (&TTD.Class_default.class_ttscrollbar) #define TClass_default_ttslider (&TTD.Class_default.class_ttslider) #define TClass_default_ttprogressbar (&TTD.Class_default.class_ttprogressbar) #define TClass_default_ttscrollpane (&TTD.Class_default.class_ttscrollpane) #define TClass_default_ttwindow (&TTD.Class_default.class_ttwindow) #define TClass_default_ttframe (&TTD.Class_default.class_ttframe) #define TClass_default_ttscroller (&TTD.Class_default.class_ttscroller) #define TClass_default_ttmenuitem (&TTD.Class_default.class_ttmenuitem) #define TClass_default_ttcheckmenuitem (&TTD.Class_default.class_ttcheckmenuitem) #define TClass_default_ttradiomenuitem (&TTD.Class_default.class_ttradiomenuitem) #define TClass_default_ttmenu (&TTD.Class_default.class_ttmenu) #define TClass_default_ttmenubar (&TTD.Class_default.class_ttmenubar) #define TClass_default_ttanytext (&TTD.Class_default.class_ttanytext) #define TClass_default_tttextfield (&TTD.Class_default.class_tttextfield) #define TClass_default_tttextarea (&TTD.Class_default.class_tttextarea) #define TClass_default_tttheme (&TTD.Class_default.class_tttheme) #define TClass_default_ttapplication (&TTD.Class_default.class_ttapplication) #define TClass_default(type) TT_CAT(TClass_default_,type) /* prototypes for public, public_set, final and final_var methods */ /* ttobj methods */ ttbyte TTGetField_ttobj(TT_ARG_READ tt_obj o, TT_ARG_READ tt_obj which, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg * value); ttbyte TTSetField_ttobj(tt_obj o, TT_ARG_READ tt_obj which, TT_ARG_READ TT_ARG_ARRAY((1)) ttarg * value); ttbyte TTChangeField_ttobj(tt_obj o, TT_ARG_READ tt_obj which, ttany nand_value, ttany xor_value); /* ttclass methods */ TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * TTGetName_ttclass(TT_ARG_READ tt_obj o); ttopaque TTGetSize_ttclass(TT_ARG_READ tt_obj o); TT_ARG_READ tt_class TTGetSuper_ttclass(TT_ARG_READ tt_obj o); ttbyte TTIsInstance_ttclass(TT_ARG_READ tt_obj o, TT_ARG_READ tt_obj t); TT_ARG_READ tt_class TTFromType_ttclass(ttopaque type); ttbyte TTIsArrayType_ttclass(ttopaque type); ttbyte TTIsPrimitiveType_ttclass(ttopaque type); /* ttobject methods */ void TTRef_ttobject(tt_obj o); void TTUnref_ttobject(tt_obj o); ttbyte TTSetUserData_ttobject(tt_obj o, ttany user_data); /* ttvector methods */ ttany TTGetAt_ttvector(TT_ARG_READ tt_obj o, ttopaque pos); ttbyte TTSetAt_ttvector(tt_obj o, ttopaque pos, ttany value); tt_obj TTCreate1_ttvector(ttany value); tt_obj TTCreateA_ttvector(ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttarg * values); tt_obj TTCreateL_ttvector(ttopaque value_n, ... ); tt_obj TTCreateR_ttvector(TT_ARG_READ tt_obj v); tt_obj TTCreateV_ttvector(ttopaque value_n, TT_ARG_ARRAY((1)) va_list * values); tt_obj TTCreateY_ttvector(ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttany * values); ttbyte TTAppend_ttvector(tt_obj o, ttany value); ttbyte TTAdd_ttvector(tt_obj o, ttopaque pos, ttany value); ttbyte TTAddA_ttvector(tt_obj o, ttopaque pos, ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttarg * values); ttbyte TTAddL_ttvector(tt_obj o, ttopaque pos, ttopaque value_n, ... ); ttbyte TTAddR_ttvector(tt_obj o, ttopaque pos, TT_ARG_READ tt_obj v); ttbyte TTAddV_ttvector(tt_obj o, ttopaque pos, ttopaque value_n, TT_ARG_ARRAY((1)) va_list * values); ttbyte TTAddY_ttvector(tt_obj o, ttopaque pos, ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttany * values); ttopaque TTContainsValue_ttvector(TT_ARG_READ tt_obj o, ttopaque pos_start, ttany value); ttbyte TTRemoveAt_ttvector(tt_obj o, ttopaque pos); ttbyte TTRemoveRange_ttvector(tt_obj o, ttopaque pos_start, ttopaque pos_n); /* ttfield methods */ TT_ARG_READ tt_obj TTGet_ttfield(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * name); ttbyte TTGetValue_ttfield(TT_ARG_READ tt_obj f, TT_ARG_READ tt_obj o, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg * value); ttbyte TTSetValue_ttfield(TT_ARG_READ tt_obj f, tt_obj o, TT_ARG_READ TT_ARG_ARRAY((1)) ttarg * value); ttbyte TTChangeValue_ttfield(TT_ARG_READ tt_obj f, tt_obj o, ttany nand_value, ttany xor_value); ttopaque TTToEvcode_ttfield(TT_ARG_READ tt_obj f); TT_ARG_READ tt_obj TTFromEvcode_ttfield(ttopaque i); ttopaque TTGetEvcode_ttfield(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * name); /* ttmethod methods */ TT_ARG_READ tt_obj TTGet_ttmethod(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * name); TT_ARG_READ tt_obj TTGetByAddress_ttmethod(TT_ARG_READ ttfunction_fn address); ttopaque TTGetArraySizeA_ttmethod(TT_ARG_READ tt_obj m, ttopaque arg_array_n, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttarg * args); ttbyte TTCheckArraySizesA_ttmethod(TT_ARG_READ tt_obj m, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttarg * args); ttbyte TTCallA_ttmethod(TT_ARG_READ tt_obj m, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg * return_value, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttarg * args); ttbyte TTCallL_ttmethod(TT_ARG_READ tt_obj m, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg * return_value, ttopaque args_n, ... ); ttbyte TTCallR_ttmethod(TT_ARG_READ tt_obj m, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg * return_value, TT_ARG_READ tt_obj args); ttbyte TTCallV_ttmethod(TT_ARG_READ tt_obj m, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg * return_value, ttopaque args_n, TT_ARG_ARRAY((1)) va_list * args); ttbyte TTCallY_ttmethod(TT_ARG_READ tt_obj m, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg * return_value, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttany * args); /* ttevent methods */ tt_obj TTCreate_ttevent(ttuint evtype, ttuint evcode, ttuint evflags); void TTFire_ttevent(TT_ARG_DIE tt_obj ev, TT_ARG_READ tt_obj o); /* tteventbig methods */ tt_obj TTCreate8_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttshort x, ttshort y, ttshort w, ttshort h, ttany value, ttany old_value, ttopaque data_len, TT_ARG_READ TT_ARG_ARRAY((_P(10))) ttbyte * data); tt_obj TTCreate4_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttshort x, ttshort y, ttshort w, ttshort h); tt_obj TTCreate4s4_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttany value, ttany old_value, ttopaque data_len, TT_ARG_READ TT_ARG_ARRAY((_P(6))) ttbyte * data); /* ttbitmask methods */ tt_obj TTCreate_ttbitmask(ttany value); tt_obj TTCreateB2_ttbitmask(TT_ARG_READ tt_obj o); tt_obj TTCreateR_ttbitmask(TT_ARG_DIE tt_obj value); tt_obj TTCreateR2_ttbitmask(TT_ARG_READ tt_obj value); void TTClear_ttbitmask(tt_obj o); void TTFill_ttbitmask(tt_obj o); void TTNegate_ttbitmask(tt_obj o); void TTChange_ttbitmask(tt_obj o, ttuint truth_table); ttbyte TTContains_ttbitmask(TT_ARG_READ tt_obj o, ttany value); ttbyte TTAdd_ttbitmask(tt_obj o, ttany value); ttbyte TTAddB_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value); ttbyte TTAddR_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value); ttbyte TTRemove_ttbitmask(tt_obj o, ttany value); ttbyte TTRemoveB_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value); ttbyte TTRemoveR_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value); ttbyte TTCombine_ttbitmask(tt_obj o, ttany value, ttuint truth_table); ttbyte TTCombineR_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value, ttuint truth_table); ttbyte TTCombineB_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value, ttuint truth_table); /* tteventmask methods */ tt_obj TTCreateB_tteventmask(TT_ARG_DIE tt_obj evtype_mask, TT_ARG_DIE tt_obj evcode_mask, TT_ARG_DIE tt_obj component_mask); tt_obj TTCreateB2_tteventmask(TT_ARG_READ tt_obj evtype_mask, TT_ARG_READ tt_obj evcode_mask, TT_ARG_READ tt_obj component_mask); ttbyte TTSetEvtypeMask_tteventmask(tt_obj o, TT_ARG_DIE tt_obj evtype_mask); ttbyte TTSetEvcodeMask_tteventmask(tt_obj o, TT_ARG_DIE tt_obj evcode_mask); ttbyte TTSetComponentMask_tteventmask(tt_obj o, TT_ARG_DIE tt_obj component_mask); ttbyte TTSetTruthTable_tteventmask(tt_obj o, ttuint truth_table); /* ttcallback methods */ /* ttlistener methods */ tt_obj TTCreate_ttlistener(tt_obj o, ttuint evtype, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg); tt_obj TTCreateE_ttlistener(tt_obj o, TT_ARG_DIE tt_obj ev, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg); tt_obj TTCreateR_ttlistener(tt_obj o, TT_ARG_DIE tt_obj ev, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttopaque arg_component_n, ttopaque arg_event_n, TT_ARG_DIE tt_obj args); tt_obj TTCreateDel_ttlistener(tt_obj o, ttuint lflags, TT_ARG_READ ttlistener_fn function); tt_obj TTCreateAskclose_ttlistener(tt_obj o, ttuint lflags, TT_ARG_READ ttlistener_fn function); tt_obj TTCreateKey_ttlistener(tt_obj o, ttuint evcode, ttuint evflags, ttuint lflags, TT_ARG_READ ttlistener_fn function); tt_obj TTCreateMouse_ttlistener(tt_obj o, ttuint evcode, ttuint evflags, ttuint lflags, TT_ARG_READ ttlistener_fn function); tt_obj TTCreateActivate_ttlistener(tt_obj o, ttuint lflags, TT_ARG_READ ttlistener_fn function); tt_obj TTCreateChange_ttlistener(tt_obj o, ttuint evcode, ttuint lflags, TT_ARG_READ ttlistener_fn function); tt_obj TTCreateKeyData_ttlistener(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key, ttuint lflags, TT_ARG_READ ttlistener_fn function); tt_obj TTCreateExpose_ttlistener(tt_obj o, ttuint lflags, TT_ARG_READ ttlistener_fn function); void TTAddTo_ttlistener(tt_obj o, tt_obj c); void TTRemove_ttlistener(tt_obj o); ttbyte TTSetArgsR_ttlistener(tt_obj o, TT_ARG_DIE tt_obj args); ttbyte TTSetEventMask_ttlistener(tt_obj o, TT_ARG_DIE tt_obj event_mask); /* tttimer methods */ tt_obj TTCreateR_tttimer(tt_obj r, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttopaque arg_component_n, ttopaque arg_timer_n, TT_ARG_DIE tt_obj args, ttany delay_t, ttany delay_f); tt_obj TTCreate_tttimer(tt_obj r, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg, ttany delay_t, ttany delay_f); void TTSetDelay_tttimer(tt_obj o, ttany delay_t, ttany delay_s); void TTSetEnabled_tttimer(tt_obj o, ttbyte enabled); ttbyte TTIsEnabled_tttimer(TT_ARG_READ tt_obj o); /* ttcomponent methods */ void TTAddListener_ttcomponent(tt_obj o, tt_obj l); void TTRemoveListener_ttcomponent(tt_obj o, tt_obj l); tt_obj TTSetKeyData_ttcomponent(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key, ttany data); ttany TTGetKeyData_ttcomponent(TT_ARG_READ tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key); void TTUnsetKeyData_ttcomponent(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key); tt_obj TTGetData_ttcomponent(TT_ARG_READ tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key); /* ttdata methods */ ttbyte TTSetData_ttdata(tt_obj o, ttany data); /* ttvisible methods */ void TTAddTo_ttvisible(tt_obj o, tt_obj parent, ttany constraint); void TTValidate_ttvisible(tt_obj o); void TTRemove_ttvisible(tt_obj o); void TTInvalidate_ttvisible(tt_obj o); void TTSetVisible_ttvisible(tt_obj o, ttbyte visible); ttbyte TTSetTheme_ttvisible(tt_obj o, TT_ARG_READ tt_obj theme); void TTDraw_ttvisible(tt_obj o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata); void TTBuiltinRepaint_ttvisible(tt_obj o, ttshort x, ttshort y, ttshort w, ttshort h); ttbyte TTSetRepaint_ttvisible(tt_obj o, TT_ARG_READ ttvisible_repaint_fn repaint); void TTExpose_ttvisible(tt_obj o, ttshort x, ttshort y, ttshort w, ttshort h); void TTAdd_ttvisible(tt_obj o, tt_obj child, ttany constraint); /* ttlayout methods */ /* ttboxlayout methods */ tt_obj TTCreate_ttboxlayout(ttany orientation); /* ttborderlayout methods */ /* ttnative methods */ tt_obj TTGetRoot_ttnative(void); ttshort TTGetW_ttnative(TT_ARG_READ tt_obj o); ttshort TTGetH_ttnative(TT_ARG_READ tt_obj o); tt_obj TTCreate_ttnative(ttany native_value); /* ttwidget methods */ void TTSetLayout_ttwidget(tt_obj o, tt_obj l); ttbyte TTSetXY_ttwidget(tt_obj o, ttshort x, ttshort y); ttbyte TTSetWH_ttwidget(tt_obj o, ttshort w, ttshort h); ttbyte TTSetXl_ttwidget(tt_obj o, ttint xl); ttbyte TTSetYl_ttwidget(tt_obj o, ttint yl); ttbyte TTSetWl_ttwidget(tt_obj o, ttint wl); ttbyte TTSetHl_ttwidget(tt_obj o, ttint hl); ttbyte TTSetTooltip_ttwidget(tt_obj o, TT_ARG_DIE tt_obj t); ttbyte TTSetXlYl_ttwidget(tt_obj o, ttuint mask, ttint xl, ttint yl); ttbyte TTSetWlHl_ttwidget(tt_obj o, ttuint mask, ttint wl, ttint hl); ttbyte TTSetXYWH_ttwidget(tt_obj o, ttuint mask, ttshort x, ttshort y, ttshort w, ttshort h); ttbyte TTSetX_ttwidget(tt_obj o, ttshort x); ttbyte TTSetY_ttwidget(tt_obj o, ttshort y); ttbyte TTSetW_ttwidget(tt_obj o, ttshort w); ttbyte TTSetH_ttwidget(tt_obj o, ttshort h); /* ttlabel methods */ void TTSetFontD_ttlabel(tt_obj o, ttopaque text_len, TT_ARG_DIE TT_ARG_ARRAY((_P(2))) ttfont * text); ttbyte TTSetFont_ttlabel(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttfont * text); ttbyte TTSetText_ttlabel(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * text); tt_obj TTCreate_ttlabel(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * text); /* tttooltip methods */ ttbyte TTSetWidget_tttooltip(TT_ARG_DIE tt_obj o, tt_obj w); /* ttbuttongroup methods */ void TTAdd_ttbuttongroup(tt_obj o, tt_obj r); void TTRemove_ttbuttongroup(tt_obj o, tt_obj r); void TTSetChecked_ttbuttongroup(tt_obj o, tt_obj r); /* ttanybutton methods */ void TTSetAttrD_ttanybutton(tt_obj o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text); ttbyte TTSetAttr_ttanybutton(tt_obj o, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text); ttbyte TTSetFont_ttanybutton(tt_obj o, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(3),*,_P(4))) ttfont * text); ttbyte TTSetText_ttanybutton(tt_obj o, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(3),*,_P(4))) ttbyte * text); tt_obj TTCreate_ttanybutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text); /* ttbutton methods */ void TTSetPressed_ttbutton(tt_obj o, ttbyte pressed); ttbyte TTIsPressed_ttbutton(TT_ARG_READ tt_obj o); tt_obj TTCreate_ttbutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text); /* ttcheckbutton methods */ void TTSetChecked_ttcheckbutton(tt_obj o, ttbyte checked); ttbyte TTIsChecked_ttcheckbutton(TT_ARG_READ tt_obj o); tt_obj TTCreate_ttcheckbutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text); /* ttradiobutton methods */ void TTAddToGroup_ttradiobutton(tt_obj o, tt_obj g); void TTRemoveFromGroup_ttradiobutton(tt_obj o); tt_obj TTCreate_ttradiobutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text); /* ttanyscroll methods */ ttbyte TTSetOrientation_ttanyscroll(tt_obj o, ttbyte orientation); ttbyte TTSetSize_ttanyscroll(tt_obj o, ttint size); ttbyte TTSetRealSize_ttanyscroll(tt_obj o, ttint real_size); ttbyte TTSetViewSize_ttanyscroll(tt_obj o, ttint view_size); ttbyte TTSetPosition_ttanyscroll(tt_obj o, ttint position); /* ttscrollbar methods */ tt_obj TTCreate1_ttscrollbar(ttbyte orientation); tt_obj TTCreate4_ttscrollbar(ttbyte orientation, ttint size, ttint real_size, ttint view_size); /* ttslider methods */ ttbyte TTSetSlideMin_ttslider(tt_obj o, ttint slide_min); ttbyte TTSetSlideMax_ttslider(tt_obj o, ttint slide_max); ttbyte TTSetSlideValue_ttslider(tt_obj o, ttint slide_value); tt_obj TTCreate_ttslider(ttbyte orientation, ttint real_size); /* ttprogressbar methods */ tt_obj TTCreate_ttprogressbar(ttbyte orientation); /* ttscrollpane methods */ tt_obj TTCreate_ttscrollpane(ttshort w, ttshort h); ttbyte TTSetBarX_ttscrollpane(tt_obj o, tt_obj bar_x); ttbyte TTSetBarY_ttscrollpane(tt_obj o, tt_obj bar_y); /* ttwindow methods */ ttbyte TTSetTitle_ttwindow(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title); /* ttframe methods */ ttbyte TTSetMenubar_ttframe(tt_obj o, TT_ARG_READ tt_obj m); tt_obj TTCreate_ttframe(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title); /* ttscroller methods */ tt_obj TTCreate_ttscroller(ttshort w, ttshort h); /* ttmenuitem methods */ /* ttcheckmenuitem methods */ /* ttradiomenuitem methods */ /* ttmenu methods */ /* ttmenubar methods */ tt_obj TTGetDefault_ttmenubar(void); /* ttanytext methods */ /* tttextfield methods */ /* tttextarea methods */ /* tttheme methods */ tt_obj TTGetDefault_tttheme(void); /* ttapplication methods */ tt_obj TTCreate_ttapplication(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * name); tt_obj TTGet_ttapplication(void); /* prototypes for TTGet*_* and TTSet*_* methods */ /* prototypes for TTGet*_ttobj and TTSet*_ttobj methods */ /* prototypes for TTGet*_ttclass and TTSet*_ttclass methods */ /* prototypes for TTGet*_ttobject and TTSet*_ttobject methods */ ttopaque TTGetRefcount_ttobject(TT_ARG_READ tt_obj o); ttuint TTGetOflags_ttobject(TT_ARG_READ tt_obj o); ttany TTGetUserData_ttobject(TT_ARG_READ tt_obj o); ttbyte TTSetUserData_ttobject(tt_obj o, ttany user_data); ttopaque TTGetEventsInprogress_ttobject(TT_ARG_READ tt_obj o); ttopaque TTGetEventsInformed_ttobject(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttvector and TTSet*_ttvector methods */ ttopaque TTGetArraySize_ttvector(TT_ARG_READ tt_obj o); ttopaque TTGetArrayN_ttvector(TT_ARG_READ tt_obj o); TT_ARG_ARRAY((_F(array_n))) ttany * TTGetArray_ttvector(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttfield and TTSet*_ttfield methods */ ttopaque TTGetNameLen_ttfield(TT_ARG_READ tt_obj o); TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * TTGetName_ttfield(TT_ARG_READ tt_obj o); ttopaque TTGetType_ttfield(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttmethod and TTSet*_ttmethod methods */ ttopaque TTGetNameLen_ttmethod(TT_ARG_READ tt_obj o); TT_ARG_READ TT_ARG_ARRAY((_F(name_len))) ttbyte * TTGetName_ttmethod(TT_ARG_READ tt_obj o); ttfunction_fn TTGetAddress_ttmethod(TT_ARG_READ tt_obj o); ttopaque TTGetReturnType_ttmethod(TT_ARG_READ tt_obj o); tt_obj TTGetParameterType_ttmethod(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttevent and TTSet*_ttevent methods */ tt_obj TTGetComponent_ttevent(TT_ARG_READ tt_obj o); ttuint TTGetEvtype_ttevent(TT_ARG_READ tt_obj o); ttuint TTGetEvcode_ttevent(TT_ARG_READ tt_obj o); ttuint TTGetEvflags_ttevent(TT_ARG_READ tt_obj o); tt_obj TTGetPrev_ttevent(TT_ARG_READ tt_obj o); tt_obj TTGetNext_ttevent(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_tteventbig and TTSet*_tteventbig methods */ ttshort TTGetX_tteventbig(TT_ARG_READ tt_obj o); ttshort TTGetY_tteventbig(TT_ARG_READ tt_obj o); ttshort TTGetW_tteventbig(TT_ARG_READ tt_obj o); ttshort TTGetH_tteventbig(TT_ARG_READ tt_obj o); ttany TTGetValue_tteventbig(TT_ARG_READ tt_obj o); ttany TTGetOldValue_tteventbig(TT_ARG_READ tt_obj o); ttopaque TTGetDataLen_tteventbig(TT_ARG_READ tt_obj o); TT_ARG_READ TT_ARG_ARRAY((_F(data_len))) ttbyte * TTGetData_tteventbig(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttbitmask and TTSet*_ttbitmask methods */ /* prototypes for TTGet*_tteventmask and TTSet*_tteventmask methods */ tt_obj TTGetEvtypeMask_tteventmask(TT_ARG_READ tt_obj o); ttbyte TTSetEvtypeMask_tteventmask(tt_obj o, tt_obj evtype_mask); tt_obj TTGetEvcodeMask_tteventmask(TT_ARG_READ tt_obj o); ttbyte TTSetEvcodeMask_tteventmask(tt_obj o, tt_obj evcode_mask); tt_obj TTGetComponentMask_tteventmask(TT_ARG_READ tt_obj o); ttbyte TTSetComponentMask_tteventmask(tt_obj o, tt_obj component_mask); ttuint TTGetTruthTable_tteventmask(TT_ARG_READ tt_obj o); ttbyte TTSetTruthTable_tteventmask(tt_obj o, ttuint truth_table); /* prototypes for TTGet*_ttcallback and TTSet*_ttcallback methods */ ttuint TTGetLflags_ttcallback(TT_ARG_READ tt_obj o); tt_obj TTGetComponent_ttcallback(TT_ARG_READ tt_obj o); tt_obj TTGetPrev_ttcallback(TT_ARG_READ tt_obj o); tt_obj TTGetNext_ttcallback(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttlistener and TTSet*_ttlistener methods */ tt_obj TTGetEvent_ttlistener(TT_ARG_READ tt_obj o); ttlistener_fn TTGetFunction_ttlistener(TT_ARG_READ tt_obj o); ttopaque TTGetArgComponentN_ttlistener(TT_ARG_READ tt_obj o); ttopaque TTGetArgEventN_ttlistener(TT_ARG_READ tt_obj o); tt_obj TTGetArgs_ttlistener(TT_ARG_READ tt_obj o); tt_obj TTGetEventMask_ttlistener(TT_ARG_READ tt_obj o); ttbyte TTSetEventMask_ttlistener(tt_obj o, tt_obj event_mask); /* prototypes for TTGet*_tttimer and TTSet*_tttimer methods */ ttany TTGetDelayT_tttimer(TT_ARG_READ tt_obj o); ttany TTGetDelayF_tttimer(TT_ARG_READ tt_obj o); tt_obj TTGetTimerPrev_tttimer(TT_ARG_READ tt_obj o); tt_obj TTGetTimerNext_tttimer(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttcomponent and TTSet*_ttcomponent methods */ tt_obj TTGetCallbacks_ttcomponent(TT_ARG_READ tt_obj o); tt_obj TTGetListeners_ttcomponent(TT_ARG_READ tt_obj o); tt_obj TTGetTimers_ttcomponent(TT_ARG_READ tt_obj o); tt_obj TTGetDatas_ttcomponent(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttdata and TTSet*_ttdata methods */ tt_obj TTGetComponent_ttdata(TT_ARG_READ tt_obj o); ttopaque TTGetKeyLen_ttdata(TT_ARG_READ tt_obj o); TT_ARG_ARRAY((_F(key_len))) ttbyte * TTGetKey_ttdata(TT_ARG_READ tt_obj o); ttany TTGetData_ttdata(TT_ARG_READ tt_obj o); ttbyte TTSetData_ttdata(tt_obj o, ttany data); /* prototypes for TTGet*_ttvisible and TTSet*_ttvisible methods */ ttuint TTGetVflags_ttvisible(TT_ARG_READ tt_obj o); tt_obj TTGetPrev_ttvisible(TT_ARG_READ tt_obj o); tt_obj TTGetNext_ttvisible(TT_ARG_READ tt_obj o); tt_obj TTGetParent_ttvisible(TT_ARG_READ tt_obj o); tt_obj TTGetChildFirst_ttvisible(TT_ARG_READ tt_obj o); tt_obj TTGetChildLast_ttvisible(TT_ARG_READ tt_obj o); ttany TTGetConstraint_ttvisible(TT_ARG_READ tt_obj o); tt_obj TTGetTheme_ttvisible(TT_ARG_READ tt_obj o); ttbyte TTSetTheme_ttvisible(tt_obj o, tt_obj theme); ttvisible_repaint_fn TTGetRepaint_ttvisible(TT_ARG_READ tt_obj o); ttbyte TTSetRepaint_ttvisible(tt_obj o, ttvisible_repaint_fn repaint); /* prototypes for TTGet*_ttlayout and TTSet*_ttlayout methods */ tt_obj TTGetWidget_ttlayout(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttboxlayout and TTSet*_ttboxlayout methods */ ttuint TTGetOrientation_ttboxlayout(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttborderlayout and TTSet*_ttborderlayout methods */ /* prototypes for TTGet*_ttnative and TTSet*_ttnative methods */ /* prototypes for TTGet*_ttwidget and TTSet*_ttwidget methods */ ttshort TTGetX_ttwidget(TT_ARG_READ tt_obj o); ttbyte TTSetX_ttwidget(tt_obj o, ttshort x); ttshort TTGetY_ttwidget(TT_ARG_READ tt_obj o); ttbyte TTSetY_ttwidget(tt_obj o, ttshort y); ttshort TTGetW_ttwidget(TT_ARG_READ tt_obj o); ttbyte TTSetW_ttwidget(tt_obj o, ttshort w); ttshort TTGetH_ttwidget(TT_ARG_READ tt_obj o); ttbyte TTSetH_ttwidget(tt_obj o, ttshort h); tt_obj TTGetLayout_ttwidget(TT_ARG_READ tt_obj o); ttint TTGetXl_ttwidget(TT_ARG_READ tt_obj o); ttbyte TTSetXl_ttwidget(tt_obj o, ttint xl); ttint TTGetYl_ttwidget(TT_ARG_READ tt_obj o); ttbyte TTSetYl_ttwidget(tt_obj o, ttint yl); ttint TTGetWl_ttwidget(TT_ARG_READ tt_obj o); ttbyte TTSetWl_ttwidget(tt_obj o, ttint wl); ttint TTGetHl_ttwidget(TT_ARG_READ tt_obj o); ttbyte TTSetHl_ttwidget(tt_obj o, ttint hl); ttcol TTGetCol_ttwidget(TT_ARG_READ tt_obj o); tt_obj TTGetTooltip_ttwidget(TT_ARG_READ tt_obj o); ttbyte TTSetTooltip_ttwidget(tt_obj o, tt_obj tooltip); /* prototypes for TTGet*_ttlabel and TTSet*_ttlabel methods */ ttopaque TTGetTextLen_ttlabel(TT_ARG_READ tt_obj o); TT_ARG_ARRAY((_F(text_len))) ttfont * TTGetText_ttlabel(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_tttooltip and TTSet*_tttooltip methods */ tt_obj TTGetWidget_tttooltip(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttbuttongroup and TTSet*_ttbuttongroup methods */ tt_obj TTGetGroupFirst_ttbuttongroup(TT_ARG_READ tt_obj o); tt_obj TTGetGroupLast_ttbuttongroup(TT_ARG_READ tt_obj o); tt_obj TTGetChecked_ttbuttongroup(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttanybutton and TTSet*_ttanybutton methods */ ttshort TTGetTextWidth_ttanybutton(TT_ARG_READ tt_obj o); ttshort TTGetTextHeight_ttanybutton(TT_ARG_READ tt_obj o); TT_ARG_ARRAY((_F(text_width),*,_F(text_height))) ttattr * TTGetText_ttanybutton(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttbutton and TTSet*_ttbutton methods */ /* prototypes for TTGet*_ttcheckbutton and TTSet*_ttcheckbutton methods */ /* prototypes for TTGet*_ttradiobutton and TTSet*_ttradiobutton methods */ tt_obj TTGetGroup_ttradiobutton(TT_ARG_READ tt_obj o); tt_obj TTGetGroupPrev_ttradiobutton(TT_ARG_READ tt_obj o); tt_obj TTGetGroupNext_ttradiobutton(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttanyscroll and TTSet*_ttanyscroll methods */ ttbyte TTGetOrientation_ttanyscroll(TT_ARG_READ tt_obj o); ttbyte TTSetOrientation_ttanyscroll(tt_obj o, ttbyte orientation); ttint TTGetSize_ttanyscroll(TT_ARG_READ tt_obj o); ttbyte TTSetSize_ttanyscroll(tt_obj o, ttint size); ttint TTGetRealSize_ttanyscroll(TT_ARG_READ tt_obj o); ttbyte TTSetRealSize_ttanyscroll(tt_obj o, ttint real_size); ttint TTGetViewSize_ttanyscroll(TT_ARG_READ tt_obj o); ttbyte TTSetViewSize_ttanyscroll(tt_obj o, ttint view_size); ttint TTGetPosition_ttanyscroll(TT_ARG_READ tt_obj o); ttbyte TTSetPosition_ttanyscroll(tt_obj o, ttint position); ttint TTGetRealPosition_ttanyscroll(TT_ARG_READ tt_obj o); ttuint TTGetState_ttanyscroll(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttscrollbar and TTSet*_ttscrollbar methods */ /* prototypes for TTGet*_ttslider and TTSet*_ttslider methods */ ttint TTGetSlideMin_ttslider(TT_ARG_READ tt_obj o); ttbyte TTSetSlideMin_ttslider(tt_obj o, ttint slide_min); ttint TTGetSlideMax_ttslider(TT_ARG_READ tt_obj o); ttbyte TTSetSlideMax_ttslider(tt_obj o, ttint slide_max); ttint TTGetSlideValue_ttslider(TT_ARG_READ tt_obj o); ttbyte TTSetSlideValue_ttslider(tt_obj o, ttint slide_value); /* prototypes for TTGet*_ttprogressbar and TTSet*_ttprogressbar methods */ /* prototypes for TTGet*_ttscrollpane and TTSet*_ttscrollpane methods */ tt_obj TTGetBarX_ttscrollpane(TT_ARG_READ tt_obj o); ttbyte TTSetBarX_ttscrollpane(tt_obj o, tt_obj bar_x); tt_obj TTGetBarY_ttscrollpane(TT_ARG_READ tt_obj o); ttbyte TTSetBarY_ttscrollpane(tt_obj o, tt_obj bar_y); /* prototypes for TTGet*_ttwindow and TTSet*_ttwindow methods */ ttopaque TTGetTitleLen_ttwindow(TT_ARG_READ tt_obj o); TT_ARG_ARRAY((_F(title_len))) ttbyte * TTGetTitle_ttwindow(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttframe and TTSet*_ttframe methods */ tt_obj TTGetMenubar_ttframe(TT_ARG_READ tt_obj o); ttbyte TTSetMenubar_ttframe(tt_obj o, tt_obj menubar); /* prototypes for TTGet*_ttscroller and TTSet*_ttscroller methods */ tt_obj TTGetScrollpane_ttscroller(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttmenuitem and TTSet*_ttmenuitem methods */ ttopaque TTGetNameLen_ttmenuitem(TT_ARG_READ tt_obj o); TT_ARG_ARRAY((_F(name_len))) ttbyte * TTGetName_ttmenuitem(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttcheckmenuitem and TTSet*_ttcheckmenuitem methods */ /* prototypes for TTGet*_ttradiomenuitem and TTSet*_ttradiomenuitem methods */ /* prototypes for TTGet*_ttmenu and TTSet*_ttmenu methods */ tt_obj TTGetMenubar_ttmenu(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttmenubar and TTSet*_ttmenubar methods */ /* prototypes for TTGet*_ttanytext and TTSet*_ttanytext methods */ ttopaque TTGetTextLen_ttanytext(TT_ARG_READ tt_obj o); TT_ARG_ARRAY((_F(text_len))) ttattr * TTGetText_ttanytext(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_tttextfield and TTSet*_tttextfield methods */ /* prototypes for TTGet*_tttextarea and TTSet*_tttextarea methods */ /* prototypes for TTGet*_tttheme and TTSet*_tttheme methods */ ttopaque TTGetNameLen_tttheme(TT_ARG_READ tt_obj o); TT_ARG_ARRAY((_F(name_len))) ttbyte * TTGetName_tttheme(TT_ARG_READ tt_obj o); /* prototypes for TTGet*_ttapplication and TTSet*_ttapplication methods */ ttopaque TTGetNameLen_ttapplication(TT_ARG_READ tt_obj o); TT_ARG_ARRAY((_F(name_len))) ttbyte * TTGetName_ttapplication(TT_ARG_READ tt_obj o); #endif /* TT_DECLSM4_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/dummytheme.h������������������������������������������������������������������0000664�0000000�0000000�00000055561�13775351206�0017024�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #define t(c) TCELL(f, c) #define s(c) TCELL(b, c) /***********************************/ #define f TCOL(thigh | twhite, tgreen) #define b TCOL(tblack, twhite) static ttattr t_button_normal[] = {t(' '), 0, 0, 0}; static ttattr s_button_normal[] = {0, 0, s(T_UTF_16_LOWER_HALF_BLOCK), 0, 0, s(T_UTF_16_FULL_BLOCK), s(' '), s(T_UTF_16_UPPER_HALF_BLOCK), s(T_UTF_16_UPPER_HALF_BLOCK)}; static ttattr t_checkbutton_normal[] = {t('['), t(' '), t(']'), t(' '), 0, 0, 0, 0, 0, 0}; static ttattr t_checkbutton_checked_normal[] = { t('['), t(T_UTF_16_CHECK_MARK), t(']'), t(' '), 0, 0, 0, 0, 0, 0}; #define s_checkbutton_normal s_button_normal #define s_checkbutton_checked_normal s_button_normal static ttattr t_radiobutton_normal[] = {t('('), t(' '), t(')'), t(' '), 0, 0, 0, 0, 0, 0}; static ttattr t_radiobutton_checked_normal[] = {t('('), t('*'), t(')'), t(' '), 0, 0, 0, 0, 0, 0}; #define s_radiobutton_normal s_button_normal #define s_radiobutton_checked_normal s_button_normal /***********************************/ #undef f #undef b #define f TCOL(thigh | twhite, tgreen) #define b TCOL(thigh | tblack, twhite) #define t_button_prelight t_button_normal static ttattr s_button_prelight[] = {0, 0, s(T_UTF_16_LOWER_HALF_BLOCK), 0, 0, s(T_UTF_16_FULL_BLOCK), s(' '), s(T_UTF_16_UPPER_HALF_BLOCK), s(T_UTF_16_UPPER_HALF_BLOCK)}; #define t_checkbutton_prelight t_checkbutton_normal #define t_checkbutton_checked_prelight t_checkbutton_checked_normal #define s_checkbutton_prelight s_button_prelight #define s_checkbutton_checked_prelight s_button_prelight #define t_radiobutton_prelight t_radiobutton_normal #define t_radiobutton_checked_prelight t_radiobutton_checked_normal #define s_radiobutton_prelight s_button_prelight #define s_radiobutton_checked_prelight s_button_prelight /***********************************/ #undef f #undef b #define f TCOL(thigh | twhite, tgreen) #define b TCOL(tblack, twhite) static ttattr t_button_pressed[] = {0, t(' '), 0, 0}; static ttattr s_button_pressed[] = {s(' '), 0, s(' '), s(' ')}; static ttattr t_checkbutton_pressed[] = {0, t('['), t(' '), t(']'), t(' '), 0, 0, 0, 0, 0, 0}; static ttattr t_checkbutton_checked_pressed[] = { 0, t('['), t(T_UTF_16_CHECK_MARK), t(']'), t(' '), 0, 0, 0, 0, 0}; #define s_checkbutton_pressed s_button_pressed #define s_checkbutton_checked_pressed s_button_pressed static ttattr t_radiobutton_pressed[] = {0, t('('), t(' '), t(')'), t(' '), 0, 0, 0, 0, 0}; static ttattr t_radiobutton_checked_pressed[] = {0, t('('), t('*'), t(')'), t(' '), 0, 0, 0, 0, 0}; #define s_radiobutton_pressed s_button_pressed #define s_radiobutton_checked_pressed s_button_pressed /***********************************/ #undef f #undef b #define f TCOL(thigh | tblack, tgreen) #define b TCOL(tblack, twhite) static ttattr t_button_disabled[] = {t(' '), 0, 0, 0}; #define s_button_disabled s_button_normal static ttattr t_checkbutton_disabled[] = {t('['), t(' '), t(']'), t(' '), 0, 0, 0, 0, 0, 0}; static ttattr t_checkbutton_checked_disabled[] = { t('['), t(T_UTF_16_CHECK_MARK), t(']'), t(' '), 0, 0, 0, 0, 0, 0}; #define s_checkbutton_disabled s_button_disabled #define s_checkbutton_checked_disabled s_button_disabled static ttattr t_radiobutton_disabled[] = {t('('), t(' '), t(')'), t(' '), 0, 0, 0, 0, 0, 0}; static ttattr t_radiobutton_checked_disabled[] = {t('('), t('*'), t(')'), t(' '), 0, 0, 0, 0, 0, 0}; #define s_radiobutton_disabled s_button_disabled #define s_radiobutton_checked_disabled s_button_disabled /***********************************/ #undef f #undef b #define f TCOL(thigh | tgreen, tblue) #define b TCOL(thigh | twhite, tblue) static ttattr t_scrollbar_x_normal[] = { s(T_UTF_16_MEDIUM_SHADE), t(T_UTF_16_BLACK_LEFT_POINTING_TRIANGLE), t(T_UTF_16_BLACK_RIGHT_POINTING_TRIANGLE), }; static ttattr t_scrollbar_y_normal[] = { s(T_UTF_16_MEDIUM_SHADE), t(T_UTF_16_BLACK_UP_POINTING_TRIANGLE), t(T_UTF_16_BLACK_DOWN_POINTING_TRIANGLE), }; static ttattr s_scrollbar_x_normal[] = { s(T_UTF_16_FULL_BLOCK), }; #define s_scrollbar_y_normal s_scrollbar_x_normal /***********************************/ #undef f #undef b #define f TCOL(thigh | tgreen, thigh | tblue) #define b TCOL(thigh | twhite, thigh | tblue) static ttattr t_scrollbar_x_prelight[] = { s(T_UTF_16_MEDIUM_SHADE), t(T_UTF_16_BLACK_LEFT_POINTING_TRIANGLE), t(T_UTF_16_BLACK_RIGHT_POINTING_TRIANGLE), }; static ttattr t_scrollbar_y_prelight[] = { s(T_UTF_16_MEDIUM_SHADE), t(T_UTF_16_BLACK_UP_POINTING_TRIANGLE), t(T_UTF_16_BLACK_DOWN_POINTING_TRIANGLE), }; static ttattr s_scrollbar_x_prelight[] = { s(T_UTF_16_FULL_BLOCK), }; #define s_scrollbar_y_prelight s_scrollbar_x_prelight /***********************************/ #undef f #undef b #define f TCOL(thigh | tblue, thigh | tgreen) #define b TCOL(thigh | tblue, thigh | twhite) static ttattr t_scrollbar_x_pressed[] = { s(T_UTF_16_MEDIUM_SHADE), t(T_UTF_16_BLACK_LEFT_POINTING_TRIANGLE), t(T_UTF_16_BLACK_RIGHT_POINTING_TRIANGLE), }; static ttattr t_scrollbar_y_pressed[] = { s(T_UTF_16_MEDIUM_SHADE), t(T_UTF_16_BLACK_UP_POINTING_TRIANGLE), t(T_UTF_16_BLACK_DOWN_POINTING_TRIANGLE), }; static ttattr s_scrollbar_x_pressed[] = { s(T_UTF_16_FULL_BLOCK), }; #define s_scrollbar_y_pressed s_scrollbar_x_pressed /***********************************/ #undef f #undef b #define f TCOL(thigh | tblack, tblue) #define b TCOL(thigh | tblack, tblue) static ttattr t_scrollbar_x_disabled[] = { s(T_UTF_16_MEDIUM_SHADE), t(T_UTF_16_BLACK_LEFT_POINTING_TRIANGLE), t(T_UTF_16_BLACK_RIGHT_POINTING_TRIANGLE), }; static ttattr t_scrollbar_y_disabled[] = { s(T_UTF_16_MEDIUM_SHADE), t(T_UTF_16_BLACK_UP_POINTING_TRIANGLE), t(T_UTF_16_BLACK_DOWN_POINTING_TRIANGLE), }; static ttattr s_scrollbar_x_disabled[] = { s(T_UTF_16_FULL_BLOCK), }; #define s_scrollbar_y_disabled s_scrollbar_x_disabled /***********************************/ #undef f #undef b #define f TCOL(thigh | tgreen, tblue) #define b TCOL(thigh | twhite, tblue) static ttattr t_slider_x_normal[] = { s(T_UTF_16_MEDIUM_SHADE), }; #define t_slider_y_normal t_slider_x_normal static ttattr s_slider_x_normal[] = { t(T_UTF_16_BLACK_SQUARE), }; #define s_slider_y_normal s_slider_x_normal /***********************************/ #undef f #undef b #define f TCOL(thigh | tgreen, thigh | tblue) #define b TCOL(thigh | twhite, thigh | tblue) static ttattr t_slider_x_prelight[] = { s(T_UTF_16_MEDIUM_SHADE), }; #define t_slider_y_prelight t_slider_x_prelight static ttattr s_slider_x_prelight[] = { t(T_UTF_16_BLACK_SQUARE), }; #define s_slider_y_prelight s_slider_x_prelight /***********************************/ #undef f #undef b #define f TCOL(thigh | tblue, thigh | tgreen) #define b TCOL(thigh | tblue, thigh | twhite) static ttattr t_slider_x_pressed[] = { s(T_UTF_16_MEDIUM_SHADE), }; #define t_slider_y_pressed t_slider_x_pressed static ttattr s_slider_x_pressed[] = { t(T_UTF_16_BLACK_SQUARE), }; #define s_slider_y_pressed s_slider_x_pressed /***********************************/ #undef f #undef b #define f TCOL(thigh | tblack, tblue) #define b TCOL(thigh | tblack, tblue) static ttattr t_slider_x_disabled[] = { s(T_UTF_16_MEDIUM_SHADE), }; #define t_slider_y_disabled t_slider_x_disabled static ttattr s_slider_x_disabled[] = { t(T_UTF_16_BLACK_SQUARE), }; #define s_slider_y_disabled s_slider_x_disabled /***********************************/ #undef f #undef b #define f TCOL(thigh | tgreen, tblue) #define b TCOL(thigh | twhite, tblue) static ttattr t_progressbar_x_normal[] = { s(' '), s(T_UTF_16_LEFT_ONE_EIGHTH_BLOCK), s(T_UTF_16_LEFT_ONE_QUARTER_BLOCK), s(T_UTF_16_LEFT_THREE_EIGHTHS_BLOCK), s(T_UTF_16_LEFT_HALF_BLOCK), s(T_UTF_16_LEFT_FIVE_EIGHTHS_BLOCK), s(T_UTF_16_LEFT_THREE_QUARTERS_BLOCK), s(T_UTF_16_LEFT_SEVEN_EIGHTHS_BLOCK), s(T_UTF_16_FULL_BLOCK), }; static ttattr t_progressbar_y_normal[] = { s(' '), s(T_UTF_16_LOWER_ONE_EIGHTH_BLOCK), s(T_UTF_16_LOWER_ONE_QUARTER_BLOCK), s(T_UTF_16_LOWER_THREE_EIGHTHS_BLOCK), s(T_UTF_16_LOWER_HALF_BLOCK), s(T_UTF_16_LOWER_FIVE_EIGHTHS_BLOCK), s(T_UTF_16_LOWER_THREE_QUARTERS_BLOCK), s(T_UTF_16_LOWER_SEVEN_EIGHTHS_BLOCK), s(T_UTF_16_FULL_BLOCK), }; static ttattr s_progressbar_x_normal[] = { t(' '), }; #define s_progressbar_y_normal s_progressbar_x_normal /***********************************/ #undef f #undef b #define f TCOL(thigh | tblack, tblue) #define b TCOL(thigh | tblack, tblue) static ttattr t_progressbar_x_disabled[] = { s(' '), s(T_UTF_16_LEFT_ONE_EIGHTH_BLOCK), s(T_UTF_16_LEFT_ONE_QUARTER_BLOCK), s(T_UTF_16_LEFT_THREE_EIGHTHS_BLOCK), s(T_UTF_16_LEFT_HALF_BLOCK), s(T_UTF_16_LEFT_FIVE_EIGHTHS_BLOCK), s(T_UTF_16_LEFT_THREE_QUARTERS_BLOCK), s(T_UTF_16_LEFT_SEVEN_EIGHTHS_BLOCK), s(T_UTF_16_FULL_BLOCK), }; static ttattr t_progressbar_y_disabled[] = { s(' '), s(T_UTF_16_LOWER_ONE_EIGHTH_BLOCK), s(T_UTF_16_LOWER_ONE_QUARTER_BLOCK), s(T_UTF_16_LOWER_THREE_EIGHTHS_BLOCK), s(T_UTF_16_LOWER_HALF_BLOCK), s(T_UTF_16_LOWER_FIVE_EIGHTHS_BLOCK), s(T_UTF_16_LOWER_THREE_QUARTERS_BLOCK), s(T_UTF_16_LOWER_SEVEN_EIGHTHS_BLOCK), s(T_UTF_16_FULL_BLOCK), }; static ttattr s_progressbar_x_disabled[] = { t(' '), }; #define s_progressbar_y_disabled s_progressbar_x_disabled /***********************************/ #undef f #undef b /***********************************/ static s_tttheme s_DummyTheme, s_RealDummyTheme = { (ttclass_tttheme)0, TT_NOID, (ttuint)0, (ttuint)0, (ttany)0, (ttany)0, (ttany)0, (ttopaque)0, (ttopaque)0, (ttcallback)0, (ttlistener)0, (tttimer)0, (ttdata)0, (ttopaque)0, NULL, TRUNE(' '), { TCOL(tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), TCOL(thigh | twhite, twhite), TCOL(thigh | tgreen, twhite), }, { -2, -2, -1, -1, -2, -2, -1, -1, }, { /* 0 */ { {2, 2, {0, 0, 1, 1}, t_button_normal}, {3, 3, {1, 1, 1, 1}, s_button_normal}, }, { {2, 2, {0, 0, 1, 1}, t_button_prelight}, {3, 3, {1, 1, 1, 1}, s_button_prelight}, }, { {2, 2, {1, 0, 0, 1}, t_button_pressed}, {2, 2, {1, 0, 0, 1}, s_button_pressed}, }, { {2, 2, {0, 0, 1, 1}, t_button_disabled}, {2, 2, {0, 0, 1, 1}, s_button_disabled}, }, /* 4 */ { {5, 2, {3, 0, 1, 1}, t_checkbutton_normal}, {3, 3, {1, 1, 1, 1}, s_checkbutton_normal}, }, { {5, 2, {3, 0, 1, 1}, t_checkbutton_prelight}, {3, 3, {1, 1, 1, 1}, s_checkbutton_prelight}, }, { {5, 2, {4, 0, 0, 1}, t_checkbutton_pressed}, {2, 2, {1, 0, 0, 1}, s_checkbutton_pressed}, }, { {5, 2, {3, 0, 1, 1}, t_checkbutton_disabled}, {2, 2, {0, 0, 1, 1}, s_checkbutton_disabled}, }, /* 8 */ { {5, 2, {3, 0, 1, 1}, t_checkbutton_checked_normal}, {3, 3, {1, 1, 1, 1}, s_checkbutton_checked_normal}, }, { {5, 2, {3, 0, 1, 1}, t_checkbutton_checked_prelight}, {3, 3, {1, 1, 1, 1}, s_checkbutton_checked_prelight}, }, { {5, 2, {4, 0, 0, 1}, t_checkbutton_checked_pressed}, {2, 2, {1, 0, 0, 1}, s_checkbutton_checked_pressed}, }, { {5, 2, {3, 0, 1, 1}, t_checkbutton_checked_disabled}, {2, 2, {0, 0, 1, 1}, s_checkbutton_checked_disabled}, }, /* 0xC */ { {5, 2, {3, 0, 1, 1}, t_radiobutton_normal}, {3, 3, {1, 1, 1, 1}, s_radiobutton_normal}, }, { {5, 2, {3, 0, 1, 1}, t_radiobutton_prelight}, {3, 3, {1, 1, 1, 1}, s_radiobutton_prelight}, }, { {5, 2, {4, 0, 0, 1}, t_radiobutton_pressed}, {2, 2, {1, 0, 0, 1}, s_radiobutton_pressed}, }, { {5, 2, {3, 0, 1, 1}, t_radiobutton_disabled}, {2, 2, {0, 0, 1, 1}, s_radiobutton_disabled}, }, /* 0x10 */ { {5, 2, {3, 0, 1, 1}, t_radiobutton_checked_normal}, {3, 3, {1, 1, 1, 1}, s_radiobutton_checked_normal}, }, { {5, 2, {3, 0, 1, 1}, t_radiobutton_checked_prelight}, {3, 3, {1, 1, 1, 1}, s_radiobutton_checked_prelight}, }, { {5, 2, {4, 0, 0, 1}, t_radiobutton_checked_pressed}, {2, 2, {1, 0, 0, 1}, s_radiobutton_checked_pressed}, }, { {5, 2, {3, 0, 1, 1}, t_radiobutton_checked_disabled}, {2, 2, {0, 0, 1, 1}, s_radiobutton_checked_disabled}, }, /* 0x14 */ { {3, 1, {0, 0, 2, 0}, t_scrollbar_x_normal}, {1, 1, {0, 0, 0, 0}, s_scrollbar_x_normal}, }, { {3, 1, {0, 0, 2, 0}, t_scrollbar_x_prelight}, {1, 1, {0, 0, 0, 0}, s_scrollbar_x_prelight}, }, { {3, 1, {0, 0, 2, 0}, t_scrollbar_x_pressed}, {1, 1, {0, 0, 0, 0}, s_scrollbar_x_pressed}, }, { {3, 1, {0, 0, 2, 0}, t_scrollbar_x_disabled}, {1, 1, {0, 0, 0, 0}, s_scrollbar_x_disabled}, }, /* 0x18 */ { {1, 3, {0, 0, 0, 2}, t_scrollbar_y_normal}, {1, 1, {0, 0, 0, 0}, s_scrollbar_y_normal}, }, { {1, 3, {0, 0, 0, 2}, t_scrollbar_y_prelight}, {1, 1, {0, 0, 0, 0}, s_scrollbar_y_prelight}, }, { {1, 3, {0, 0, 0, 2}, t_scrollbar_y_pressed}, {1, 1, {0, 0, 0, 0}, s_scrollbar_y_pressed}, }, { {1, 3, {0, 0, 0, 2}, t_scrollbar_y_disabled}, {1, 1, {0, 0, 0, 0}, s_scrollbar_y_disabled}, }, /* 0x1C */ { {1, 1, {0, 0, 0, 0}, t_slider_x_normal}, {1, 1, {0, 0, 0, 0}, s_slider_x_normal}, }, { {1, 1, {0, 0, 0, 0}, t_slider_x_prelight}, {1, 1, {0, 0, 0, 0}, s_slider_x_prelight}, }, { {1, 1, {0, 0, 0, 0}, t_slider_x_pressed}, {1, 1, {0, 0, 0, 0}, s_slider_x_pressed}, }, { {1, 1, {0, 0, 0, 0}, t_slider_x_disabled}, {1, 1, {0, 0, 0, 0}, s_slider_x_disabled}, }, /* 0x20 */ { {1, 1, {0, 0, 0, 0}, t_slider_y_normal}, {1, 1, {0, 0, 0, 0}, s_slider_y_normal}, }, { {1, 1, {0, 0, 0, 0}, t_slider_y_prelight}, {1, 1, {0, 0, 0, 0}, s_slider_y_prelight}, }, { {1, 1, {0, 0, 0, 0}, t_slider_y_pressed}, {1, 1, {0, 0, 0, 0}, s_slider_y_pressed}, }, { {1, 1, {0, 0, 0, 0}, t_slider_y_disabled}, {1, 1, {0, 0, 0, 0}, s_slider_y_disabled}, }, /* 0x24 */ { {8, 1, {0, 0, 0, 0}, t_progressbar_x_normal}, {1, 1, {0, 0, 0, 0}, s_progressbar_x_normal}, }, { {8, 1, {0, 0, 0, 0}, t_progressbar_x_disabled}, {1, 1, {0, 0, 0, 0}, s_progressbar_x_disabled}, }, { {8, 1, {0, 0, 0, 0}, t_progressbar_y_normal}, {1, 1, {0, 0, 0, 0}, s_progressbar_y_normal}, }, { {8, 1, {0, 0, 0, 0}, t_progressbar_y_disabled}, {1, 1, {0, 0, 0, 0}, s_progressbar_y_disabled}, }, /* 0x28 */ }, }; �����������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/field.c�����������������������������������������������������������������������0000664�0000000�0000000�00000005055�13775351206�0015715�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * field.c -- exported libTT conversion functions between strings * and ttfield objects to access object fields using * TT{Get,Set}_ttfield(...) * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #include "TT.h" #include "TTextern.h" #include "TTassert.h" #include "inlines.h" #include "utils.h" #include "tree_m4.h" #include "array.h" #include "field_m4.h" static TT_CONST struct s_ttfield *field_byid[field_array_n]; static TT_CONST struct s_ttfield *field_byname[field_array_n]; static int CompareFieldName(TT_CONST ttfield *ff1, TT_CONST ttfield *ff2) { int l, c; TT_CONST ttfield f1 = *ff1, f2 = *ff2; TT_CONST ttbyte *n1, *n2; if ((c = f1->name_len - f2->name_len)) return c; /* compare backwards not to waste time on common prefixes */ l = f1->name_len; n1 = f1->name + l - 1; n2 = f2->name + l - 1; while (l-- && !(c = *n1-- - *n2--)) ; return c; } TT_ARG_READ tt_obj TTGet_ttfield(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *name) { s_ttfield s_key; ttfield key = &s_key, *m; if (name) { s_key.name_len = TTLenStr(s_key.name = name); if ((m = bsearch(&key, field_byname, field_array_n, sizeof(ttfield), (int (*)(TT_CONST void *, TT_CONST void *))CompareFieldName)) && *m) { return (tt_obj)(*m)->id; } } return (tt_obj)0; } ttopaque TTToEvcode_ttfield(/*TT_CONST*/ tt_obj f) { if (ID2(ttfield, f)) { return (ttopaque)f; } return (ttopaque)0; } TT_ARG_READ tt_obj TTFromEvcode_ttfield(ttopaque i) { if (ID2(ttfield, i)) { return (tt_obj)i; } return (tt_obj)0; } ttopaque TTGetEvcode_ttfield(TT_CONST ttbyte *name) { tt_obj f; if ((f = TTGet_ttfield(name))) { return TTToEvcode_ttfield(f); } return (ttopaque)0; } static ttbyte field_init_once(void) { ttuint i; for (i = 0; i < field_array_n; i++) field_byname[i] = field_byid[i] = &field_array[i]; qsort(field_byname, field_array_n, sizeof(ttfield), (int (*)(TT_CONST void *, TT_CONST void *))CompareFieldName); return TT_TRUE; } ttbyte _TT_field_Init(void) { static ttbyte field_init_once_done = TT_FALSE; return (field_init_once_done || (field_init_once_done = field_init_once())) && FixedAssignIdArray(id_ttclass_ttfield, field_array_n, (TT_CONST ttobj *)field_byid); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/field_m4.h��������������������������������������������������������������������0000664�0000000�0000000�00000054436�13775351206�0016331�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/field.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * field_m4.h -- implementation of TT*_ttfield functions, * reflective ttfield for all existing objects and * TT*Field_ttobj handy functions */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #define A TClass_ttfield #define B(f) ((order_ttfield<<TT_MAGIC_SHIFT)|(f)) #define E(f) A, B(f), #define F(f) TT_STR(f), #define G(t,a) id_ttclass_(t)|(a), #if !defined(e_FFP) # error internal error: undefined e_FFP ! #endif /* array of existing fields */ static TT_CONST struct s_ttfield field_array[] = { /* ttobj fields */ { E(ttobj_field_first) 17, F(ttobj_field_first) G(void, 0) }, { E(ttobj_field_last) 16, F(ttobj_field_last) G(void, 0) }, /* ttclass fields */ { E(ttclass_field_first) 19, F(ttclass_field_first) G(void, 0) }, { E(ttclass_field_last) 18, F(ttclass_field_last) G(void, 0) }, /* ttobject fields */ { E(ttobject_field_first) 20, F(ttobject_field_first) G(void, 0) }, { E(ttobject_refcount) 17, F(ttobject_refcount) G(ttopaque, 0) }, { E(ttobject_oflags) 15, F(ttobject_oflags) G(ttuint, 0) }, { E(ttobject_user_data) 18, F(ttobject_user_data) G(ttany, 0) }, { E(ttobject_events_inprogress) 26, F(ttobject_events_inprogress) G(ttopaque, 0) }, { E(ttobject_events_informed) 24, F(ttobject_events_informed) G(ttopaque, 0) }, { E(ttobject_field_last) 19, F(ttobject_field_last) G(void, 0) }, /* ttvector fields */ { E(ttvector_field_first) 20, F(ttvector_field_first) G(void, 0) }, { E(ttvector_array_size) 19, F(ttvector_array_size) G(ttopaque, 0) }, { E(ttvector_array_n) 16, F(ttvector_array_n) G(ttopaque, 0) }, { E(ttvector_array) 14, F(ttvector_array) G(ttany, 0|e_A(e_F(ttvector, array_n)|e_OP(e_SET))) }, /*TT_ARG_ARRAY((_F(array_n)))*/ #if e_FFP <= ttvector_array - ttvector_field_first # error internal error: ttvector_array - ttvector_field_first overflows e_FFP ! #endif { E(ttvector_field_last) 19, F(ttvector_field_last) G(void, 0) }, /* ttfield fields */ { E(ttfield_field_first) 19, F(ttfield_field_first) G(void, 0) }, { E(ttfield_name_len) 16, F(ttfield_name_len) G(ttopaque, 0) }, { E(ttfield_name) 12, F(ttfield_name) G(ttbyte, 0|e_Z) }, /*TT_ARG_ARRAY_Z*/ #if e_FFP <= ttfield_name - ttfield_field_first # error internal error: ttfield_name - ttfield_field_first overflows e_FFP ! #endif { E(ttfield_type) 12, F(ttfield_type) G(ttopaque, 0) }, { E(ttfield_field_last) 18, F(ttfield_field_last) G(void, 0) }, /* ttmethod fields */ { E(ttmethod_field_first) 20, F(ttmethod_field_first) G(void, 0) }, { E(ttmethod_name_len) 17, F(ttmethod_name_len) G(ttopaque, 0) }, { E(ttmethod_name) 13, F(ttmethod_name) G(ttbyte, 0|e_A(e_F(ttmethod, name_len)|e_OP(e_SET))) }, /*TT_ARG_ARRAY((_F(name_len)))*/ #if e_FFP <= ttmethod_name - ttmethod_field_first # error internal error: ttmethod_name - ttmethod_field_first overflows e_FFP ! #endif { E(ttmethod_address) 16, F(ttmethod_address) G(ttfunction_fn, 0) }, { E(ttmethod_return_type) 20, F(ttmethod_return_type) G(ttopaque, 0) }, { E(ttmethod_parameter_type) 23, F(ttmethod_parameter_type) G(ttvector, 0) }, { E(ttmethod_field_last) 19, F(ttmethod_field_last) G(void, 0) }, /* ttevent fields */ { E(ttevent_field_first) 19, F(ttevent_field_first) G(void, 0) }, { E(ttevent_component) 17, F(ttevent_component) G(ttcomponent, 0) }, { E(ttevent_evtype) 14, F(ttevent_evtype) G(ttuint, 0) }, { E(ttevent_evcode) 14, F(ttevent_evcode) G(ttuint, 0) }, { E(ttevent_evflags) 15, F(ttevent_evflags) G(ttuint, 0) }, { E(ttevent_prev) 12, F(ttevent_prev) G(ttevent, 0) }, { E(ttevent_next) 12, F(ttevent_next) G(ttevent, 0) }, { E(ttevent_field_last) 18, F(ttevent_field_last) G(void, 0) }, /* tteventbig fields */ { E(tteventbig_field_first) 22, F(tteventbig_field_first) G(void, 0) }, { E(tteventbig_x) 12, F(tteventbig_x) G(ttshort, 0) }, { E(tteventbig_y) 12, F(tteventbig_y) G(ttshort, 0) }, { E(tteventbig_w) 12, F(tteventbig_w) G(ttshort, 0) }, { E(tteventbig_h) 12, F(tteventbig_h) G(ttshort, 0) }, { E(tteventbig_value) 16, F(tteventbig_value) G(ttany, 0) }, { E(tteventbig_old_value) 20, F(tteventbig_old_value) G(ttany, 0) }, { E(tteventbig_data_len) 19, F(tteventbig_data_len) G(ttopaque, 0) }, { E(tteventbig_data) 15, F(tteventbig_data) G(ttbyte, 0|e_A(e_F(tteventbig, data_len)|e_OP(e_SET))) }, /*TT_ARG_ARRAY((_F(data_len)))*/ #if e_FFP <= tteventbig_data - tteventbig_field_first # error internal error: tteventbig_data - tteventbig_field_first overflows e_FFP ! #endif { E(tteventbig_field_last) 21, F(tteventbig_field_last) G(void, 0) }, /* ttbitmask fields */ { E(ttbitmask_field_first) 21, F(ttbitmask_field_first) G(void, 0) }, { E(ttbitmask_field_last) 20, F(ttbitmask_field_last) G(void, 0) }, /* tteventmask fields */ { E(tteventmask_field_first) 23, F(tteventmask_field_first) G(void, 0) }, { E(tteventmask_evtype_mask) 23, F(tteventmask_evtype_mask) G(ttbitmask, 0) }, { E(tteventmask_evcode_mask) 23, F(tteventmask_evcode_mask) G(ttbitmask, 0) }, { E(tteventmask_component_mask) 26, F(tteventmask_component_mask) G(ttbitmask, 0) }, { E(tteventmask_truth_table) 23, F(tteventmask_truth_table) G(ttuint, 0) }, { E(tteventmask_field_last) 22, F(tteventmask_field_last) G(void, 0) }, /* ttcallback fields */ { E(ttcallback_field_first) 22, F(ttcallback_field_first) G(void, 0) }, { E(ttcallback_lflags) 17, F(ttcallback_lflags) G(ttuint, 0) }, { E(ttcallback_component) 20, F(ttcallback_component) G(ttcomponent, 0) }, { E(ttcallback_prev) 15, F(ttcallback_prev) G(ttcallback, 0) }, { E(ttcallback_next) 15, F(ttcallback_next) G(ttcallback, 0) }, { E(ttcallback_field_last) 21, F(ttcallback_field_last) G(void, 0) }, /* ttlistener fields */ { E(ttlistener_field_first) 22, F(ttlistener_field_first) G(void, 0) }, { E(ttlistener_event) 16, F(ttlistener_event) G(ttevent, 0) }, { E(ttlistener_function) 19, F(ttlistener_function) G(ttfunction_fn, 0) }, { E(ttlistener_arg_component_n) 26, F(ttlistener_arg_component_n) G(ttopaque, 0) }, { E(ttlistener_arg_event_n) 22, F(ttlistener_arg_event_n) G(ttopaque, 0) }, { E(ttlistener_args) 15, F(ttlistener_args) G(ttvector, 0) }, { E(ttlistener_event_mask) 21, F(ttlistener_event_mask) G(tteventmask, 0) }, { E(ttlistener_field_last) 21, F(ttlistener_field_last) G(void, 0) }, /* tttimer fields */ { E(tttimer_field_first) 19, F(tttimer_field_first) G(void, 0) }, { E(tttimer_delay_t) 15, F(tttimer_delay_t) G(ttany, 0) }, { E(tttimer_delay_f) 15, F(tttimer_delay_f) G(ttany, 0) }, { E(tttimer_timer_prev) 18, F(tttimer_timer_prev) G(tttimer, 0) }, { E(tttimer_timer_next) 18, F(tttimer_timer_next) G(tttimer, 0) }, { E(tttimer_field_last) 18, F(tttimer_field_last) G(void, 0) }, /* ttcomponent fields */ { E(ttcomponent_field_first) 23, F(ttcomponent_field_first) G(void, 0) }, { E(ttcomponent_callbacks) 21, F(ttcomponent_callbacks) G(ttcallback, 0) }, { E(ttcomponent_listeners) 21, F(ttcomponent_listeners) G(ttlistener, 0) }, { E(ttcomponent_timers) 18, F(ttcomponent_timers) G(tttimer, 0) }, { E(ttcomponent_datas) 17, F(ttcomponent_datas) G(ttdata, 0) }, { E(ttcomponent_field_last) 22, F(ttcomponent_field_last) G(void, 0) }, /* ttdata fields */ { E(ttdata_field_first) 18, F(ttdata_field_first) G(void, 0) }, { E(ttdata_component) 16, F(ttdata_component) G(ttcomponent, 0) }, { E(ttdata_key_len) 14, F(ttdata_key_len) G(ttopaque, 0) }, { E(ttdata_key) 10, F(ttdata_key) G(ttbyte, 0|e_A(e_F(ttdata, key_len)|e_OP(e_SET))) }, /*TT_ARG_ARRAY((_F(key_len)))*/ #if e_FFP <= ttdata_key - ttdata_field_first # error internal error: ttdata_key - ttdata_field_first overflows e_FFP ! #endif { E(ttdata_data) 11, F(ttdata_data) G(ttany, 0) }, { E(ttdata_field_last) 17, F(ttdata_field_last) G(void, 0) }, /* ttvisible fields */ { E(ttvisible_field_first) 21, F(ttvisible_field_first) G(void, 0) }, { E(ttvisible_vflags) 16, F(ttvisible_vflags) G(ttuint, 0) }, { E(ttvisible_prev) 14, F(ttvisible_prev) G(ttvisible, 0) }, { E(ttvisible_next) 14, F(ttvisible_next) G(ttvisible, 0) }, { E(ttvisible_parent) 16, F(ttvisible_parent) G(ttvisible, 0) }, { E(ttvisible_child_first) 21, F(ttvisible_child_first) G(ttvisible, 0) }, { E(ttvisible_child_last) 20, F(ttvisible_child_last) G(ttvisible, 0) }, { E(ttvisible_constraint) 20, F(ttvisible_constraint) G(ttany, 0) }, { E(ttvisible_theme) 15, F(ttvisible_theme) G(tttheme, 0) }, { E(ttvisible_repaint) 17, F(ttvisible_repaint) G(ttfunction_fn, 0) }, { E(ttvisible_field_last) 20, F(ttvisible_field_last) G(void, 0) }, /* ttlayout fields */ { E(ttlayout_field_first) 20, F(ttlayout_field_first) G(void, 0) }, { E(ttlayout_widget) 15, F(ttlayout_widget) G(ttwidget, 0) }, { E(ttlayout_field_last) 19, F(ttlayout_field_last) G(void, 0) }, /* ttboxlayout fields */ { E(ttboxlayout_field_first) 23, F(ttboxlayout_field_first) G(void, 0) }, { E(ttboxlayout_orientation) 23, F(ttboxlayout_orientation) G(ttuint, 0) }, { E(ttboxlayout_field_last) 22, F(ttboxlayout_field_last) G(void, 0) }, /* ttborderlayout fields */ { E(ttborderlayout_field_first) 26, F(ttborderlayout_field_first) G(void, 0) }, { E(ttborderlayout_field_last) 25, F(ttborderlayout_field_last) G(void, 0) }, /* ttnative fields */ { E(ttnative_field_first) 20, F(ttnative_field_first) G(void, 0) }, { E(ttnative_field_last) 19, F(ttnative_field_last) G(void, 0) }, /* ttwidget fields */ { E(ttwidget_field_first) 20, F(ttwidget_field_first) G(void, 0) }, { E(ttwidget_x) 10, F(ttwidget_x) G(ttshort, 0) }, { E(ttwidget_y) 10, F(ttwidget_y) G(ttshort, 0) }, { E(ttwidget_w) 10, F(ttwidget_w) G(ttshort, 0) }, { E(ttwidget_h) 10, F(ttwidget_h) G(ttshort, 0) }, { E(ttwidget_layout) 15, F(ttwidget_layout) G(ttlayout, 0) }, { E(ttwidget_xl) 11, F(ttwidget_xl) G(ttint, 0) }, { E(ttwidget_yl) 11, F(ttwidget_yl) G(ttint, 0) }, { E(ttwidget_wl) 11, F(ttwidget_wl) G(ttint, 0) }, { E(ttwidget_hl) 11, F(ttwidget_hl) G(ttint, 0) }, { E(ttwidget_col) 12, F(ttwidget_col) G(ttcol, 0) }, { E(ttwidget_tooltip) 16, F(ttwidget_tooltip) G(tttooltip, 0) }, { E(ttwidget_field_last) 19, F(ttwidget_field_last) G(void, 0) }, /* ttlabel fields */ { E(ttlabel_field_first) 19, F(ttlabel_field_first) G(void, 0) }, { E(ttlabel_text_len) 16, F(ttlabel_text_len) G(ttopaque, 0) }, { E(ttlabel_text) 12, F(ttlabel_text) G(ttfont, 0|e_A(e_F(ttlabel, text_len)|e_OP(e_SET))) }, /*TT_ARG_ARRAY((_F(text_len)))*/ #if e_FFP <= ttlabel_text - ttlabel_field_first # error internal error: ttlabel_text - ttlabel_field_first overflows e_FFP ! #endif { E(ttlabel_field_last) 18, F(ttlabel_field_last) G(void, 0) }, /* tttooltip fields */ { E(tttooltip_field_first) 21, F(tttooltip_field_first) G(void, 0) }, { E(tttooltip_widget) 16, F(tttooltip_widget) G(ttwidget, 0) }, { E(tttooltip_field_last) 20, F(tttooltip_field_last) G(void, 0) }, /* ttbuttongroup fields */ { E(ttbuttongroup_field_first) 25, F(ttbuttongroup_field_first) G(void, 0) }, { E(ttbuttongroup_group_first) 25, F(ttbuttongroup_group_first) G(ttradiobutton, 0) }, { E(ttbuttongroup_group_last) 24, F(ttbuttongroup_group_last) G(ttradiobutton, 0) }, { E(ttbuttongroup_checked) 21, F(ttbuttongroup_checked) G(ttradiobutton, 0) }, { E(ttbuttongroup_field_last) 24, F(ttbuttongroup_field_last) G(void, 0) }, /* ttanybutton fields */ { E(ttanybutton_field_first) 23, F(ttanybutton_field_first) G(void, 0) }, { E(ttanybutton_text_width) 22, F(ttanybutton_text_width) G(ttshort, 0) }, { E(ttanybutton_text_height) 23, F(ttanybutton_text_height) G(ttshort, 0) }, { E(ttanybutton_text) 16, F(ttanybutton_text) G(ttattr, 0|e_A(e_F(ttanybutton, text_width)|(e_F(ttanybutton, text_height))<<e_WFP|e_OP(e_MUL))) }, /*TT_ARG_ARRAY((_F(text_width),*,_F(text_height)))*/ #if e_FFP <= ttanybutton_text - ttanybutton_field_first # error internal error: ttanybutton_text - ttanybutton_field_first overflows e_FFP ! #endif { E(ttanybutton_field_last) 22, F(ttanybutton_field_last) G(void, 0) }, /* ttbutton fields */ { E(ttbutton_field_first) 20, F(ttbutton_field_first) G(void, 0) }, { E(ttbutton_field_last) 19, F(ttbutton_field_last) G(void, 0) }, /* ttcheckbutton fields */ { E(ttcheckbutton_field_first) 25, F(ttcheckbutton_field_first) G(void, 0) }, { E(ttcheckbutton_field_last) 24, F(ttcheckbutton_field_last) G(void, 0) }, /* ttradiobutton fields */ { E(ttradiobutton_field_first) 25, F(ttradiobutton_field_first) G(void, 0) }, { E(ttradiobutton_group) 19, F(ttradiobutton_group) G(ttbuttongroup, 0) }, { E(ttradiobutton_group_prev) 24, F(ttradiobutton_group_prev) G(ttradiobutton, 0) }, { E(ttradiobutton_group_next) 24, F(ttradiobutton_group_next) G(ttradiobutton, 0) }, { E(ttradiobutton_field_last) 24, F(ttradiobutton_field_last) G(void, 0) }, /* ttanyscroll fields */ { E(ttanyscroll_field_first) 23, F(ttanyscroll_field_first) G(void, 0) }, { E(ttanyscroll_orientation) 23, F(ttanyscroll_orientation) G(ttbyte, 0) }, { E(ttanyscroll_size) 16, F(ttanyscroll_size) G(ttint, 0) }, { E(ttanyscroll_real_size) 21, F(ttanyscroll_real_size) G(ttint, 0) }, { E(ttanyscroll_view_size) 21, F(ttanyscroll_view_size) G(ttint, 0) }, { E(ttanyscroll_position) 20, F(ttanyscroll_position) G(ttint, 0) }, { E(ttanyscroll_real_position) 25, F(ttanyscroll_real_position) G(ttint, 0) }, { E(ttanyscroll_state) 17, F(ttanyscroll_state) G(ttuint, 0) }, { E(ttanyscroll_field_last) 22, F(ttanyscroll_field_last) G(void, 0) }, /* ttscrollbar fields */ { E(ttscrollbar_field_first) 23, F(ttscrollbar_field_first) G(void, 0) }, { E(ttscrollbar_field_last) 22, F(ttscrollbar_field_last) G(void, 0) }, /* ttslider fields */ { E(ttslider_field_first) 20, F(ttslider_field_first) G(void, 0) }, { E(ttslider_slide_min) 18, F(ttslider_slide_min) G(ttint, 0) }, { E(ttslider_slide_max) 18, F(ttslider_slide_max) G(ttint, 0) }, { E(ttslider_slide_value) 20, F(ttslider_slide_value) G(ttint, 0) }, { E(ttslider_field_last) 19, F(ttslider_field_last) G(void, 0) }, /* ttprogressbar fields */ { E(ttprogressbar_field_first) 25, F(ttprogressbar_field_first) G(void, 0) }, { E(ttprogressbar_field_last) 24, F(ttprogressbar_field_last) G(void, 0) }, /* ttscrollpane fields */ { E(ttscrollpane_field_first) 24, F(ttscrollpane_field_first) G(void, 0) }, { E(ttscrollpane_bar_x) 18, F(ttscrollpane_bar_x) G(ttscrollbar, 0) }, { E(ttscrollpane_bar_y) 18, F(ttscrollpane_bar_y) G(ttscrollbar, 0) }, { E(ttscrollpane_field_last) 23, F(ttscrollpane_field_last) G(void, 0) }, /* ttwindow fields */ { E(ttwindow_field_first) 20, F(ttwindow_field_first) G(void, 0) }, { E(ttwindow_title_len) 18, F(ttwindow_title_len) G(ttopaque, 0) }, { E(ttwindow_title) 14, F(ttwindow_title) G(ttbyte, 0|e_A(e_F(ttwindow, title_len)|e_OP(e_SET))) }, /*TT_ARG_ARRAY((_F(title_len)))*/ #if e_FFP <= ttwindow_title - ttwindow_field_first # error internal error: ttwindow_title - ttwindow_field_first overflows e_FFP ! #endif { E(ttwindow_field_last) 19, F(ttwindow_field_last) G(void, 0) }, /* ttframe fields */ { E(ttframe_field_first) 19, F(ttframe_field_first) G(void, 0) }, { E(ttframe_menubar) 15, F(ttframe_menubar) G(ttmenubar, 0) }, { E(ttframe_field_last) 18, F(ttframe_field_last) G(void, 0) }, /* ttscroller fields */ { E(ttscroller_field_first) 22, F(ttscroller_field_first) G(void, 0) }, { E(ttscroller_scrollpane) 21, F(ttscroller_scrollpane) G(ttscrollpane, 0) }, { E(ttscroller_field_last) 21, F(ttscroller_field_last) G(void, 0) }, /* ttmenuitem fields */ { E(ttmenuitem_field_first) 22, F(ttmenuitem_field_first) G(void, 0) }, { E(ttmenuitem_name_len) 19, F(ttmenuitem_name_len) G(ttopaque, 0) }, { E(ttmenuitem_name) 15, F(ttmenuitem_name) G(ttbyte, 0|e_A(e_F(ttmenuitem, name_len)|e_OP(e_SET))) }, /*TT_ARG_ARRAY((_F(name_len)))*/ #if e_FFP <= ttmenuitem_name - ttmenuitem_field_first # error internal error: ttmenuitem_name - ttmenuitem_field_first overflows e_FFP ! #endif { E(ttmenuitem_field_last) 21, F(ttmenuitem_field_last) G(void, 0) }, /* ttcheckmenuitem fields */ { E(ttcheckmenuitem_field_first) 27, F(ttcheckmenuitem_field_first) G(void, 0) }, { E(ttcheckmenuitem_field_last) 26, F(ttcheckmenuitem_field_last) G(void, 0) }, /* ttradiomenuitem fields */ { E(ttradiomenuitem_field_first) 27, F(ttradiomenuitem_field_first) G(void, 0) }, { E(ttradiomenuitem_field_last) 26, F(ttradiomenuitem_field_last) G(void, 0) }, /* ttmenu fields */ { E(ttmenu_field_first) 18, F(ttmenu_field_first) G(void, 0) }, { E(ttmenu_menubar) 14, F(ttmenu_menubar) G(ttmenubar, 0) }, { E(ttmenu_field_last) 17, F(ttmenu_field_last) G(void, 0) }, /* ttmenubar fields */ { E(ttmenubar_field_first) 21, F(ttmenubar_field_first) G(void, 0) }, { E(ttmenubar_field_last) 20, F(ttmenubar_field_last) G(void, 0) }, /* ttanytext fields */ { E(ttanytext_field_first) 21, F(ttanytext_field_first) G(void, 0) }, { E(ttanytext_text_len) 18, F(ttanytext_text_len) G(ttopaque, 0) }, { E(ttanytext_text) 14, F(ttanytext_text) G(ttattr, 0|e_A(e_F(ttanytext, text_len)|e_OP(e_SET))) }, /*TT_ARG_ARRAY((_F(text_len)))*/ #if e_FFP <= ttanytext_text - ttanytext_field_first # error internal error: ttanytext_text - ttanytext_field_first overflows e_FFP ! #endif { E(ttanytext_field_last) 20, F(ttanytext_field_last) G(void, 0) }, /* tttextfield fields */ { E(tttextfield_field_first) 23, F(tttextfield_field_first) G(void, 0) }, { E(tttextfield_field_last) 22, F(tttextfield_field_last) G(void, 0) }, /* tttextarea fields */ { E(tttextarea_field_first) 22, F(tttextarea_field_first) G(void, 0) }, { E(tttextarea_field_last) 21, F(tttextarea_field_last) G(void, 0) }, /* tttheme fields */ { E(tttheme_field_first) 19, F(tttheme_field_first) G(void, 0) }, { E(tttheme_name_len) 16, F(tttheme_name_len) G(ttopaque, 0) }, { E(tttheme_name) 12, F(tttheme_name) G(ttbyte, 0|e_A(e_F(tttheme, name_len)|e_OP(e_SET))) }, /*TT_ARG_ARRAY((_F(name_len)))*/ #if e_FFP <= tttheme_name - tttheme_field_first # error internal error: tttheme_name - tttheme_field_first overflows e_FFP ! #endif { E(tttheme_field_last) 18, F(tttheme_field_last) G(void, 0) }, /* ttapplication fields */ { E(ttapplication_field_first) 25, F(ttapplication_field_first) G(void, 0) }, { E(ttapplication_name_len) 22, F(ttapplication_name_len) G(ttopaque, 0) }, { E(ttapplication_name) 18, F(ttapplication_name) G(ttbyte, 0|e_A(e_F(ttapplication, name_len)|e_OP(e_SET))) }, /*TT_ARG_ARRAY((_F(name_len)))*/ #if e_FFP <= ttapplication_name - ttapplication_field_first # error internal error: ttapplication_name - ttapplication_field_first overflows e_FFP ! #endif { E(ttapplication_field_last) 24, F(ttapplication_field_last) G(void, 0) }, }; #undef A #undef B #undef C #undef D #undef E #undef F #define field_array_n (sizeof(field_array)/sizeof(field_array[0])) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/fire.h������������������������������������������������������������������������0000664�0000000�0000000�00000003233�13775351206�0015560�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_FIRE_H #define TT_FIRE_H #define FIRE_EVENT_O(call, o, which, value, old_value) \ FIRE_EVENT(call, o, which, OBJ2ID(value), OBJ2ID(old_value)) #define FIRE_EVENT(call, o, which, value, old_value) \ do { \ ttany _old_value = (ttany)(old_value); \ (call); \ FireChangeEvent((ttcomponent)(o), (which), (ttany)(value), (ttany)(_old_value), (ttopaque)0); \ } while (0) #define FIRE_EVENTL(call, o, which, value, old_value, len) \ do { \ ttany _old_value = (ttany)(old_value); \ (call); \ FireChangeEvent((ttcomponent)(o), (which), (ttany)(value), (ttany)(_old_value), \ (ttopaque)(len)); \ } while (0) #endif /* TT_FIRE_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/flags.h�����������������������������������������������������������������������0000664�0000000�0000000�00000013127�13775351206�0015732�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_FLAGS_H #include <TT/TTflags.h> #ifndef TT_FLAGS_H #define TT_FLAGS_H #endif #define ttmask(n) ((ttany)1 << (n)) /* * from <Tw/datatypes.h> : * TW_MINS(t) = ((t)((t)1<<(8*sizeof(t)-1))) */ #define ttobject_refcount_alive TW_MINS(ttopaque) /** object is in non-dynamic memory and must not be free()d */ #define ttobject_oflags_static 1 /** object is in read-only memory and must not be modified */ #define ttobject_oflags_const 2 #define ttevent_evflags_consumed TW_MINS(ttuint) #define ttevent_evflags_firing (TW_MINS(ttuint) >> 1) #define ttbitmask_oflags_mask_reverse 2 #define ttlistener_lflags_ttmethod TW_MINS(ttuint) #define ttlistener_lflags_args_swallow (TW_MINS(ttuint) >> 1) /** ttbutton index to access shape for normal state */ #define ttbutton_shape_normal 0 /** ttbutton index to access shape for prelight state */ #define ttbutton_shape_prelight 1 /** ttbutton index to access shape for pressed state */ #define ttbutton_shape_pressed 2 /** ttbutton index to access shape for disabled state */ #define ttbutton_shape_disabled 3 #define ttbutton_shape_max 4 #define ttcheckbutton_shape_normal ttbutton_shape_normal #define ttcheckbutton_shape_prelight ttbutton_shape_prelight #define ttcheckbutton_shape_pressed ttbutton_shape_pressed #define ttcheckbutton_shape_disabled ttbutton_shape_disabled #define ttcheckbutton_shape_checked_normal 4 #define ttcheckbutton_shape_checked_prelight 5 #define ttcheckbutton_shape_checked_pressed 6 #define ttcheckbutton_shape_checked_disabled 7 #define ttcheckbutton_shape_max 8 #define ttradiobutton_shape_normal ttbutton_shape_normal #define ttradiobutton_shape_prelight ttbutton_shape_prelight #define ttradiobutton_shape_pressed ttbutton_shape_pressed #define ttradiobutton_shape_disabled ttbutton_shape_disabled #define ttradiobutton_shape_checked_normal 4 #define ttradiobutton_shape_checked_prelight 5 #define ttradiobutton_shape_checked_pressed 6 #define ttradiobutton_shape_checked_disabled 7 #define ttradiobutton_shape_max 8 #define ttscrollbar_shape_normal 0 #define ttscrollbar_shape_prelight 1 #define ttscrollbar_shape_pressed 2 #define ttscrollbar_shape_disabled 3 #define ttscrollbar_shape_max 4 #define ttslider_shape_normal 0 #define ttslider_shape_prelight 1 #define ttslider_shape_pressed 2 #define ttslider_shape_disabled 3 #define ttslider_shape_max 4 #define ttprogressbar_shape_normal 0 #define ttprogressbar_shape_disabled 1 #define ttprogressbar_shape_max 2 #define ttderived_ttanybutton_shape_max 8 #define tttheme_shape_ttbutton_normal 0 #define tttheme_shape_ttbutton_prelight 1 #define tttheme_shape_ttbutton_pressed 2 #define tttheme_shape_ttbutton_disabled 3 #define tttheme_shape_ttcheckbutton_normal 4 #define tttheme_shape_ttcheckbutton_prelight 5 #define tttheme_shape_ttcheckbutton_pressed 6 #define tttheme_shape_ttcheckbutton_disabled 7 #define tttheme_shape_ttcheckbutton_checked_normal 8 #define tttheme_shape_ttcheckbutton_checked_prelight 9 #define tttheme_shape_ttcheckbutton_checked_pressed 0xA #define tttheme_shape_ttcheckbutton_checked_disabled 0xB #define tttheme_shape_ttradiobutton_normal 0xC #define tttheme_shape_ttradiobutton_prelight 0xD #define tttheme_shape_ttradiobutton_pressed 0xE #define tttheme_shape_ttradiobutton_disabled 0xF #define tttheme_shape_ttradiobutton_checked_normal 0x10 #define tttheme_shape_ttradiobutton_checked_prelight 0x11 #define tttheme_shape_ttradiobutton_checked_pressed 0x12 #define tttheme_shape_ttradiobutton_checked_disabled 0x13 #define tttheme_shape_ttscrollbar_x_normal 0x14 #define tttheme_shape_ttscrollbar_x_prelight 0x15 #define tttheme_shape_ttscrollbar_x_pressed 0x16 #define tttheme_shape_ttscrollbar_x_disabled 0x17 #define tttheme_shape_ttscrollbar_y_normal 0x18 #define tttheme_shape_ttscrollbar_y_prelight 0x19 #define tttheme_shape_ttscrollbar_y_pressed 0x1A #define tttheme_shape_ttscrollbar_y_disabled 0x1B #define tttheme_shape_ttslider_x_normal 0x1C #define tttheme_shape_ttslider_x_prelight 0x1D #define tttheme_shape_ttslider_x_pressed 0x1E #define tttheme_shape_ttslider_x_disabled 0x1F #define tttheme_shape_ttslider_y_normal 0x20 #define tttheme_shape_ttslider_y_prelight 0x21 #define tttheme_shape_ttslider_y_pressed 0x22 #define tttheme_shape_ttslider_y_disabled 0x23 #define tttheme_shape_ttprogressbar_x_normal 0x24 #define tttheme_shape_ttprogressbar_x_disabled 0x25 #define tttheme_shape_ttprogressbar_y_normal 0x26 #define tttheme_shape_ttprogressbar_y_disabled 0x27 #define tttheme_shape_max 0x28 #define tttheme_val_ttscrollbar_x_arrow_rev_min 0 #define tttheme_val_ttscrollbar_x_arrow_rev_max 1 #define tttheme_val_ttscrollbar_x_arrow_fwd_min 2 #define tttheme_val_ttscrollbar_x_arrow_fwd_max 3 #define tttheme_val_ttscrollbar_y_arrow_rev_min 4 #define tttheme_val_ttscrollbar_y_arrow_rev_max 5 #define tttheme_val_ttscrollbar_y_arrow_fwd_min 6 #define tttheme_val_ttscrollbar_y_arrow_fwd_max 7 #define tttheme_val_max 8 #define tttheme_bg_normal 0 #define tttheme_bg_disable 1 #define tttheme_bg_menu_normal 2 #define tttheme_bg_menu_select 3 #define tttheme_bg_menu_disabled 4 #define tttheme_bg_menu_selectdisabled 5 #define tttheme_bg_menu_shcut 6 #define tttheme_bg_menu_selectshcut 7 #define tttheme_bg_label 8 #define tttheme_bg_anybutton 9 #define tttheme_bg_max 10 #define tt_x_left 0 #define tt_y_up 1 #define tt_x_right 2 #define tt_y_down 3 #endif /* TT_FLAGS_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/getset.c����������������������������������������������������������������������0000664�0000000�0000000�00000010213�13775351206�0016115�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * get.c -- implementation of TTGet*_* methods * * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #include "mutex.h" #include "TT.h" #include "TTextern.h" #include "TTassert.h" #include "utils.h" #include "inlines.h" #include "array.h" #include "getset_m4.h" /* array of tt*_field_first */ static ttopaque field_array_first[] = { #define el(o) TT_CAT(o, _field_first), TT_LIST(el) #undef el }; /* array of tt*_field_last */ static ttopaque field_array_last[] = { #define el(o) TT_CAT(o, _field_first), TT_LIST(el) #undef el }; #define field_array_n (sizeof(field_array_first) / sizeof(field_array_first[0])) /* return the first field id of an object given a generic field id of the object */ static ttopaque FieldFirst(tt_obj field) { ttopaque i; for (i = 0; i < field_array_n; i++) { if ((ttopaque)field > field_array_first[i] && (ttopaque)field < field_array_last[i]) return field_array_first[i]; } return (ttopaque)0; } static ttopaque GetArraySize_ttfield(TT_CONST ttfield f, TT_CONST tt_obj o) { ttuint i; ttopaque type, saved_type, size = 0; ttarg param[2], op; type = saved_type = f->type; size = TTGetSize_ttclass(TTFromType_ttclass(type)); param[0].value = 0; if (type & ttclass_type_array) { param[0].value = (type >>= ttclass_type_array_firstbit) & e_MFP; param[1].value = (type >>= e_WFP) & e_MFP; op.value = (type >>= e_WFP) & e_MOP; if (op.value == e_OPZ) { /* zero-terminated array */ if (TTGetValue_ttfield((tt_obj)f->id, o, &op) && TTIsArrayType_ttclass(op.type)) return op.size; return 0; } /* extract length params from arguments if needed */ for (i = 0; i < 2; i++) { if (param[i].value & e_FFP) { TTAssertAlways(TTGetValue_ttfield( (tt_obj)(FieldFirst((tt_obj)f->id) + (param[i].value & ~e_FFP)), o, ¶m[i])); } } switch (op.value) { case e_SET: /* param[0].value = param[0].value; */ break; case e_ADD: param[0].value += param[1].value; break; case e_MUL: param[0].value *= param[1].value; break; default: /* illegal operation ? */ param[0].value = 0; break; } } return size * (ttopaque)param[0].value; } /* ttobj exported_field methods */ ttbyte TTGetField_ttobj(/*TT_CONST*/ tt_obj a0, /*TT_CONST*/ tt_obj which, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *value) { return TTGetValue_ttfield(which, a0, value); } ttbyte TTSetField_ttobj(tt_obj a0, /*TT_CONST*/ tt_obj which, TT_ARG_READ TT_ARG_ARRAY((1)) ttarg *value) { return TTSetValue_ttfield(which, a0, value); } ttbyte TTChangeField_ttobj(tt_obj a0, /*TT_CONST*/ tt_obj which, ttany nand_value, ttany xor_value) { return TTChangeValue_ttfield(which, a0, nand_value, xor_value); } /* ttfield exported_field methods */ ttbyte TTGetValue_ttfield(/*TT_CONST*/ tt_obj which, /*TT_CONST*/ tt_obj a0, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *value) { TT_ARG_READ ttobj o = ID2OBJ((opaque)a0); TT_ARG_READ ttfield f = ID2(ttfield, (opaque)which); if (o && f && getset_GetField(o, which, &value->value)) { if (TTIsArrayType_ttclass(value->type = f->type)) value->size = GetArraySize_ttfield(f, a0); return TT_TRUE; } return TT_FALSE; } ttbyte TTSetValue_ttfield(/*TT_CONST*/ tt_obj which, tt_obj a0, TT_ARG_READ TT_ARG_ARRAY((1)) ttarg *value) { ttobj o = ID2OBJ((opaque)a0); return o && getset_SetField(o, which, value); } ttbyte TTChangeValue_ttfield(/*TT_CONST*/ tt_obj which, tt_obj a0, ttany nand_value, ttany xor_value) { ttarg value; if (TTGetValue_ttfield(which, a0, &value) && !TTIsArrayType_ttclass(value.type)) { value.value = (value.value & ~nand_value) ^ xor_value; return TTSetValue_ttfield(which, a0, &value); } return TT_FALSE; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/getset_m4.h�������������������������������������������������������������������0000664�0000000�0000000�00000145031�13775351206�0016531�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/getset.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * getset_m4.h -- implementation of TTGet*_* methods * */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* TTGet*_* methods */ /* TTGet*_ttobj methods */ /* TTGet*_ttclass methods */ /* TTGet*_ttobject methods */ ttopaque TTGetRefcount_ttobject(TT_ARG_READ tt_obj o) { ttobject a0; if ((a0 = ID2(ttobject, o))) return a0->refcount; return 0; } ttuint TTGetOflags_ttobject(TT_ARG_READ tt_obj o) { ttobject a0; if ((a0 = ID2(ttobject, o))) return a0->oflags; return 0; } ttany TTGetUserData_ttobject(TT_ARG_READ tt_obj o) { ttobject a0; if ((a0 = ID2(ttobject, o))) return a0->user_data; return 0; } ttopaque TTGetEventsInprogress_ttobject(TT_ARG_READ tt_obj o) { ttobject a0; if ((a0 = ID2(ttobject, o))) return a0->events_inprogress; return 0; } ttopaque TTGetEventsInformed_ttobject(TT_ARG_READ tt_obj o) { ttobject a0; if ((a0 = ID2(ttobject, o))) return a0->events_informed; return 0; } /* TTGet*_ttvector methods */ ttopaque TTGetArraySize_ttvector(TT_ARG_READ tt_obj o) { ttvector a0; if ((a0 = ID2(ttvector, o))) return a0->array_size; return 0; } ttopaque TTGetArrayN_ttvector(TT_ARG_READ tt_obj o) { ttvector a0; if ((a0 = ID2(ttvector, o))) return a0->array_n; return 0; } TT_ARG_ARRAY((_F(array_n))) ttany * TTGetArray_ttvector(TT_ARG_READ tt_obj o) { ttvector a0; if ((a0 = ID2(ttvector, o))) return a0->array; return 0; } /* TTGet*_ttfield methods */ ttopaque TTGetNameLen_ttfield(TT_ARG_READ tt_obj o) { ttfield a0; if ((a0 = ID2(ttfield, o))) return a0->name_len; return 0; } TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * TTGetName_ttfield(TT_ARG_READ tt_obj o) { ttfield a0; if ((a0 = ID2(ttfield, o))) return a0->name; return 0; } ttopaque TTGetType_ttfield(TT_ARG_READ tt_obj o) { ttfield a0; if ((a0 = ID2(ttfield, o))) return a0->type; return 0; } /* TTGet*_ttmethod methods */ ttopaque TTGetNameLen_ttmethod(TT_ARG_READ tt_obj o) { ttmethod a0; if ((a0 = ID2(ttmethod, o))) return a0->name_len; return 0; } TT_ARG_READ TT_ARG_ARRAY((_F(name_len))) ttbyte * TTGetName_ttmethod(TT_ARG_READ tt_obj o) { ttmethod a0; if ((a0 = ID2(ttmethod, o))) return a0->name; return 0; } ttfunction_fn TTGetAddress_ttmethod(TT_ARG_READ tt_obj o) { ttmethod a0; if ((a0 = ID2(ttmethod, o))) return a0->address; return 0; } ttopaque TTGetReturnType_ttmethod(TT_ARG_READ tt_obj o) { ttmethod a0; if ((a0 = ID2(ttmethod, o))) return a0->return_type; return 0; } tt_obj TTGetParameterType_ttmethod(TT_ARG_READ tt_obj o) { ttmethod a0; if ((a0 = ID2(ttmethod, o))) return (tt_obj)OBJ2ID(a0->parameter_type); return 0; } /* TTGet*_ttevent methods */ tt_obj TTGetComponent_ttevent(TT_ARG_READ tt_obj o) { ttevent a0; if ((a0 = ID2(ttevent, o))) return (tt_obj)OBJ2ID(a0->component); return 0; } ttuint TTGetEvtype_ttevent(TT_ARG_READ tt_obj o) { ttevent a0; if ((a0 = ID2(ttevent, o))) return a0->evtype; return 0; } ttuint TTGetEvcode_ttevent(TT_ARG_READ tt_obj o) { ttevent a0; if ((a0 = ID2(ttevent, o))) return a0->evcode; return 0; } ttuint TTGetEvflags_ttevent(TT_ARG_READ tt_obj o) { ttevent a0; if ((a0 = ID2(ttevent, o))) return a0->evflags; return 0; } tt_obj TTGetPrev_ttevent(TT_ARG_READ tt_obj o) { ttevent a0; if ((a0 = ID2(ttevent, o))) return (tt_obj)OBJ2ID(a0->prev); return 0; } tt_obj TTGetNext_ttevent(TT_ARG_READ tt_obj o) { ttevent a0; if ((a0 = ID2(ttevent, o))) return (tt_obj)OBJ2ID(a0->next); return 0; } /* TTGet*_tteventbig methods */ ttshort TTGetX_tteventbig(TT_ARG_READ tt_obj o) { tteventbig a0; if ((a0 = ID2(tteventbig, o))) return a0->x; return 0; } ttshort TTGetY_tteventbig(TT_ARG_READ tt_obj o) { tteventbig a0; if ((a0 = ID2(tteventbig, o))) return a0->y; return 0; } ttshort TTGetW_tteventbig(TT_ARG_READ tt_obj o) { tteventbig a0; if ((a0 = ID2(tteventbig, o))) return a0->w; return 0; } ttshort TTGetH_tteventbig(TT_ARG_READ tt_obj o) { tteventbig a0; if ((a0 = ID2(tteventbig, o))) return a0->h; return 0; } ttany TTGetValue_tteventbig(TT_ARG_READ tt_obj o) { tteventbig a0; if ((a0 = ID2(tteventbig, o))) return a0->value; return 0; } ttany TTGetOldValue_tteventbig(TT_ARG_READ tt_obj o) { tteventbig a0; if ((a0 = ID2(tteventbig, o))) return a0->old_value; return 0; } ttopaque TTGetDataLen_tteventbig(TT_ARG_READ tt_obj o) { tteventbig a0; if ((a0 = ID2(tteventbig, o))) return a0->data_len; return 0; } TT_ARG_READ TT_ARG_ARRAY((_F(data_len))) ttbyte * TTGetData_tteventbig(TT_ARG_READ tt_obj o) { tteventbig a0; if ((a0 = ID2(tteventbig, o))) return a0->data; return 0; } /* TTGet*_ttbitmask methods */ /* TTGet*_tteventmask methods */ tt_obj TTGetEvtypeMask_tteventmask(TT_ARG_READ tt_obj o) { tteventmask a0; if ((a0 = ID2(tteventmask, o))) return (tt_obj)OBJ2ID(a0->evtype_mask); return 0; } tt_obj TTGetEvcodeMask_tteventmask(TT_ARG_READ tt_obj o) { tteventmask a0; if ((a0 = ID2(tteventmask, o))) return (tt_obj)OBJ2ID(a0->evcode_mask); return 0; } tt_obj TTGetComponentMask_tteventmask(TT_ARG_READ tt_obj o) { tteventmask a0; if ((a0 = ID2(tteventmask, o))) return (tt_obj)OBJ2ID(a0->component_mask); return 0; } ttuint TTGetTruthTable_tteventmask(TT_ARG_READ tt_obj o) { tteventmask a0; if ((a0 = ID2(tteventmask, o))) return a0->truth_table; return 0; } /* TTGet*_ttcallback methods */ ttuint TTGetLflags_ttcallback(TT_ARG_READ tt_obj o) { ttcallback a0; if ((a0 = ID2(ttcallback, o))) return a0->lflags; return 0; } tt_obj TTGetComponent_ttcallback(TT_ARG_READ tt_obj o) { ttcallback a0; if ((a0 = ID2(ttcallback, o))) return (tt_obj)OBJ2ID(a0->component); return 0; } tt_obj TTGetPrev_ttcallback(TT_ARG_READ tt_obj o) { ttcallback a0; if ((a0 = ID2(ttcallback, o))) return (tt_obj)OBJ2ID(a0->prev); return 0; } tt_obj TTGetNext_ttcallback(TT_ARG_READ tt_obj o) { ttcallback a0; if ((a0 = ID2(ttcallback, o))) return (tt_obj)OBJ2ID(a0->next); return 0; } /* TTGet*_ttlistener methods */ tt_obj TTGetEvent_ttlistener(TT_ARG_READ tt_obj o) { ttlistener a0; if ((a0 = ID2(ttlistener, o))) return (tt_obj)OBJ2ID(a0->event); return 0; } ttlistener_fn TTGetFunction_ttlistener(TT_ARG_READ tt_obj o) { ttlistener a0; if ((a0 = ID2(ttlistener, o))) return a0->function; return 0; } ttopaque TTGetArgComponentN_ttlistener(TT_ARG_READ tt_obj o) { ttlistener a0; if ((a0 = ID2(ttlistener, o))) return a0->arg_component_n; return 0; } ttopaque TTGetArgEventN_ttlistener(TT_ARG_READ tt_obj o) { ttlistener a0; if ((a0 = ID2(ttlistener, o))) return a0->arg_event_n; return 0; } tt_obj TTGetArgs_ttlistener(TT_ARG_READ tt_obj o) { ttlistener a0; if ((a0 = ID2(ttlistener, o))) return (tt_obj)OBJ2ID(a0->args); return 0; } tt_obj TTGetEventMask_ttlistener(TT_ARG_READ tt_obj o) { ttlistener a0; if ((a0 = ID2(ttlistener, o))) return (tt_obj)OBJ2ID(a0->event_mask); return 0; } /* TTGet*_tttimer methods */ ttany TTGetDelayT_tttimer(TT_ARG_READ tt_obj o) { tttimer a0; if ((a0 = ID2(tttimer, o))) return a0->delay_t; return 0; } ttany TTGetDelayF_tttimer(TT_ARG_READ tt_obj o) { tttimer a0; if ((a0 = ID2(tttimer, o))) return a0->delay_f; return 0; } tt_obj TTGetTimerPrev_tttimer(TT_ARG_READ tt_obj o) { tttimer a0; if ((a0 = ID2(tttimer, o))) return (tt_obj)OBJ2ID(a0->timer_prev); return 0; } tt_obj TTGetTimerNext_tttimer(TT_ARG_READ tt_obj o) { tttimer a0; if ((a0 = ID2(tttimer, o))) return (tt_obj)OBJ2ID(a0->timer_next); return 0; } /* TTGet*_ttcomponent methods */ tt_obj TTGetCallbacks_ttcomponent(TT_ARG_READ tt_obj o) { ttcomponent a0; if ((a0 = ID2(ttcomponent, o))) return (tt_obj)OBJ2ID(a0->callbacks); return 0; } tt_obj TTGetListeners_ttcomponent(TT_ARG_READ tt_obj o) { ttcomponent a0; if ((a0 = ID2(ttcomponent, o))) return (tt_obj)OBJ2ID(a0->listeners); return 0; } tt_obj TTGetTimers_ttcomponent(TT_ARG_READ tt_obj o) { ttcomponent a0; if ((a0 = ID2(ttcomponent, o))) return (tt_obj)OBJ2ID(a0->timers); return 0; } tt_obj TTGetDatas_ttcomponent(TT_ARG_READ tt_obj o) { ttcomponent a0; if ((a0 = ID2(ttcomponent, o))) return (tt_obj)OBJ2ID(a0->datas); return 0; } /* TTGet*_ttdata methods */ tt_obj TTGetComponent_ttdata(TT_ARG_READ tt_obj o) { ttdata a0; if ((a0 = ID2(ttdata, o))) return (tt_obj)OBJ2ID(a0->component); return 0; } ttopaque TTGetKeyLen_ttdata(TT_ARG_READ tt_obj o) { ttdata a0; if ((a0 = ID2(ttdata, o))) return a0->key_len; return 0; } TT_ARG_ARRAY((_F(key_len))) ttbyte * TTGetKey_ttdata(TT_ARG_READ tt_obj o) { ttdata a0; if ((a0 = ID2(ttdata, o))) return a0->key; return 0; } ttany TTGetData_ttdata(TT_ARG_READ tt_obj o) { ttdata a0; if ((a0 = ID2(ttdata, o))) return a0->data; return 0; } /* TTGet*_ttvisible methods */ ttuint TTGetVflags_ttvisible(TT_ARG_READ tt_obj o) { ttvisible a0; if ((a0 = ID2(ttvisible, o))) return a0->vflags; return 0; } tt_obj TTGetPrev_ttvisible(TT_ARG_READ tt_obj o) { ttvisible a0; if ((a0 = ID2(ttvisible, o))) return (tt_obj)OBJ2ID(a0->prev); return 0; } tt_obj TTGetNext_ttvisible(TT_ARG_READ tt_obj o) { ttvisible a0; if ((a0 = ID2(ttvisible, o))) return (tt_obj)OBJ2ID(a0->next); return 0; } tt_obj TTGetParent_ttvisible(TT_ARG_READ tt_obj o) { ttvisible a0; if ((a0 = ID2(ttvisible, o))) return (tt_obj)OBJ2ID(a0->parent); return 0; } tt_obj TTGetChildFirst_ttvisible(TT_ARG_READ tt_obj o) { ttvisible a0; if ((a0 = ID2(ttvisible, o))) return (tt_obj)OBJ2ID(a0->child_first); return 0; } tt_obj TTGetChildLast_ttvisible(TT_ARG_READ tt_obj o) { ttvisible a0; if ((a0 = ID2(ttvisible, o))) return (tt_obj)OBJ2ID(a0->child_last); return 0; } ttany TTGetConstraint_ttvisible(TT_ARG_READ tt_obj o) { ttvisible a0; if ((a0 = ID2(ttvisible, o))) return a0->constraint; return 0; } tt_obj TTGetTheme_ttvisible(TT_ARG_READ tt_obj o) { ttvisible a0; if ((a0 = ID2(ttvisible, o))) return (tt_obj)OBJ2ID(a0->theme); return 0; } ttvisible_repaint_fn TTGetRepaint_ttvisible(TT_ARG_READ tt_obj o) { ttvisible a0; if ((a0 = ID2(ttvisible, o))) return a0->repaint; return 0; } /* TTGet*_ttlayout methods */ tt_obj TTGetWidget_ttlayout(TT_ARG_READ tt_obj o) { ttlayout a0; if ((a0 = ID2(ttlayout, o))) return (tt_obj)OBJ2ID(a0->widget); return 0; } /* TTGet*_ttboxlayout methods */ ttuint TTGetOrientation_ttboxlayout(TT_ARG_READ tt_obj o) { ttboxlayout a0; if ((a0 = ID2(ttboxlayout, o))) return a0->orientation; return 0; } /* TTGet*_ttborderlayout methods */ /* TTGet*_ttnative methods */ /* TTGet*_ttwidget methods */ ttshort TTGetX_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return a0->x; return 0; } ttshort TTGetY_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return a0->y; return 0; } ttshort TTGetW_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return a0->w; return 0; } ttshort TTGetH_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return a0->h; return 0; } tt_obj TTGetLayout_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return (tt_obj)OBJ2ID(a0->layout); return 0; } ttint TTGetXl_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return a0->xl; return 0; } ttint TTGetYl_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return a0->yl; return 0; } ttint TTGetWl_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return a0->wl; return 0; } ttint TTGetHl_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return a0->hl; return 0; } ttcol TTGetCol_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return a0->col; return 0; } tt_obj TTGetTooltip_ttwidget(TT_ARG_READ tt_obj o) { ttwidget a0; if ((a0 = ID2(ttwidget, o))) return (tt_obj)OBJ2ID(a0->tooltip); return 0; } /* TTGet*_ttlabel methods */ ttopaque TTGetTextLen_ttlabel(TT_ARG_READ tt_obj o) { ttlabel a0; if ((a0 = ID2(ttlabel, o))) return a0->text_len; return 0; } TT_ARG_ARRAY((_F(text_len))) ttfont * TTGetText_ttlabel(TT_ARG_READ tt_obj o) { ttlabel a0; if ((a0 = ID2(ttlabel, o))) return a0->text; return 0; } /* TTGet*_tttooltip methods */ tt_obj TTGetWidget_tttooltip(TT_ARG_READ tt_obj o) { tttooltip a0; if ((a0 = ID2(tttooltip, o))) return (tt_obj)OBJ2ID(a0->widget); return 0; } /* TTGet*_ttbuttongroup methods */ tt_obj TTGetGroupFirst_ttbuttongroup(TT_ARG_READ tt_obj o) { ttbuttongroup a0; if ((a0 = ID2(ttbuttongroup, o))) return (tt_obj)OBJ2ID(a0->group_first); return 0; } tt_obj TTGetGroupLast_ttbuttongroup(TT_ARG_READ tt_obj o) { ttbuttongroup a0; if ((a0 = ID2(ttbuttongroup, o))) return (tt_obj)OBJ2ID(a0->group_last); return 0; } tt_obj TTGetChecked_ttbuttongroup(TT_ARG_READ tt_obj o) { ttbuttongroup a0; if ((a0 = ID2(ttbuttongroup, o))) return (tt_obj)OBJ2ID(a0->checked); return 0; } /* TTGet*_ttanybutton methods */ ttshort TTGetTextWidth_ttanybutton(TT_ARG_READ tt_obj o) { ttanybutton a0; if ((a0 = ID2(ttanybutton, o))) return a0->text_width; return 0; } ttshort TTGetTextHeight_ttanybutton(TT_ARG_READ tt_obj o) { ttanybutton a0; if ((a0 = ID2(ttanybutton, o))) return a0->text_height; return 0; } TT_ARG_ARRAY((_F(text_width),*,_F(text_height))) ttattr * TTGetText_ttanybutton(TT_ARG_READ tt_obj o) { ttanybutton a0; if ((a0 = ID2(ttanybutton, o))) return a0->text; return 0; } /* TTGet*_ttbutton methods */ /* TTGet*_ttcheckbutton methods */ /* TTGet*_ttradiobutton methods */ tt_obj TTGetGroup_ttradiobutton(TT_ARG_READ tt_obj o) { ttradiobutton a0; if ((a0 = ID2(ttradiobutton, o))) return (tt_obj)OBJ2ID(a0->group); return 0; } tt_obj TTGetGroupPrev_ttradiobutton(TT_ARG_READ tt_obj o) { ttradiobutton a0; if ((a0 = ID2(ttradiobutton, o))) return (tt_obj)OBJ2ID(a0->group_prev); return 0; } tt_obj TTGetGroupNext_ttradiobutton(TT_ARG_READ tt_obj o) { ttradiobutton a0; if ((a0 = ID2(ttradiobutton, o))) return (tt_obj)OBJ2ID(a0->group_next); return 0; } /* TTGet*_ttanyscroll methods */ ttbyte TTGetOrientation_ttanyscroll(TT_ARG_READ tt_obj o) { ttanyscroll a0; if ((a0 = ID2(ttanyscroll, o))) return a0->orientation; return 0; } ttint TTGetSize_ttanyscroll(TT_ARG_READ tt_obj o) { ttanyscroll a0; if ((a0 = ID2(ttanyscroll, o))) return a0->size; return 0; } ttint TTGetRealSize_ttanyscroll(TT_ARG_READ tt_obj o) { ttanyscroll a0; if ((a0 = ID2(ttanyscroll, o))) return a0->real_size; return 0; } ttint TTGetViewSize_ttanyscroll(TT_ARG_READ tt_obj o) { ttanyscroll a0; if ((a0 = ID2(ttanyscroll, o))) return a0->view_size; return 0; } ttint TTGetPosition_ttanyscroll(TT_ARG_READ tt_obj o) { ttanyscroll a0; if ((a0 = ID2(ttanyscroll, o))) return a0->position; return 0; } ttint TTGetRealPosition_ttanyscroll(TT_ARG_READ tt_obj o) { ttanyscroll a0; if ((a0 = ID2(ttanyscroll, o))) return a0->real_position; return 0; } ttuint TTGetState_ttanyscroll(TT_ARG_READ tt_obj o) { ttanyscroll a0; if ((a0 = ID2(ttanyscroll, o))) return a0->state; return 0; } /* TTGet*_ttscrollbar methods */ /* TTGet*_ttslider methods */ ttint TTGetSlideMin_ttslider(TT_ARG_READ tt_obj o) { ttslider a0; if ((a0 = ID2(ttslider, o))) return a0->slide_min; return 0; } ttint TTGetSlideMax_ttslider(TT_ARG_READ tt_obj o) { ttslider a0; if ((a0 = ID2(ttslider, o))) return a0->slide_max; return 0; } ttint TTGetSlideValue_ttslider(TT_ARG_READ tt_obj o) { ttslider a0; if ((a0 = ID2(ttslider, o))) return a0->slide_value; return 0; } /* TTGet*_ttprogressbar methods */ /* TTGet*_ttscrollpane methods */ tt_obj TTGetBarX_ttscrollpane(TT_ARG_READ tt_obj o) { ttscrollpane a0; if ((a0 = ID2(ttscrollpane, o))) return (tt_obj)OBJ2ID(a0->bar_x); return 0; } tt_obj TTGetBarY_ttscrollpane(TT_ARG_READ tt_obj o) { ttscrollpane a0; if ((a0 = ID2(ttscrollpane, o))) return (tt_obj)OBJ2ID(a0->bar_y); return 0; } /* TTGet*_ttwindow methods */ ttopaque TTGetTitleLen_ttwindow(TT_ARG_READ tt_obj o) { ttwindow a0; if ((a0 = ID2(ttwindow, o))) return a0->title_len; return 0; } TT_ARG_ARRAY((_F(title_len))) ttbyte * TTGetTitle_ttwindow(TT_ARG_READ tt_obj o) { ttwindow a0; if ((a0 = ID2(ttwindow, o))) return a0->title; return 0; } /* TTGet*_ttframe methods */ tt_obj TTGetMenubar_ttframe(TT_ARG_READ tt_obj o) { ttframe a0; if ((a0 = ID2(ttframe, o))) return (tt_obj)OBJ2ID(a0->menubar); return 0; } /* TTGet*_ttscroller methods */ tt_obj TTGetScrollpane_ttscroller(TT_ARG_READ tt_obj o) { ttscroller a0; if ((a0 = ID2(ttscroller, o))) return (tt_obj)OBJ2ID(a0->scrollpane); return 0; } /* TTGet*_ttmenuitem methods */ ttopaque TTGetNameLen_ttmenuitem(TT_ARG_READ tt_obj o) { ttmenuitem a0; if ((a0 = ID2(ttmenuitem, o))) return a0->name_len; return 0; } TT_ARG_ARRAY((_F(name_len))) ttbyte * TTGetName_ttmenuitem(TT_ARG_READ tt_obj o) { ttmenuitem a0; if ((a0 = ID2(ttmenuitem, o))) return a0->name; return 0; } /* TTGet*_ttcheckmenuitem methods */ /* TTGet*_ttradiomenuitem methods */ /* TTGet*_ttmenu methods */ tt_obj TTGetMenubar_ttmenu(TT_ARG_READ tt_obj o) { ttmenu a0; if ((a0 = ID2(ttmenu, o))) return (tt_obj)OBJ2ID(a0->menubar); return 0; } /* TTGet*_ttmenubar methods */ /* TTGet*_ttanytext methods */ ttopaque TTGetTextLen_ttanytext(TT_ARG_READ tt_obj o) { ttanytext a0; if ((a0 = ID2(ttanytext, o))) return a0->text_len; return 0; } TT_ARG_ARRAY((_F(text_len))) ttattr * TTGetText_ttanytext(TT_ARG_READ tt_obj o) { ttanytext a0; if ((a0 = ID2(ttanytext, o))) return a0->text; return 0; } /* TTGet*_tttextfield methods */ /* TTGet*_tttextarea methods */ /* TTGet*_tttheme methods */ ttopaque TTGetNameLen_tttheme(TT_ARG_READ tt_obj o) { tttheme a0; if ((a0 = ID2(tttheme, o))) return a0->name_len; return 0; } TT_ARG_ARRAY((_F(name_len))) ttbyte * TTGetName_tttheme(TT_ARG_READ tt_obj o) { tttheme a0; if ((a0 = ID2(tttheme, o))) return a0->name; return 0; } /* TTGet*_ttapplication methods */ ttopaque TTGetNameLen_ttapplication(TT_ARG_READ tt_obj o) { ttapplication a0; if ((a0 = ID2(ttapplication, o))) return a0->name_len; return 0; } TT_ARG_ARRAY((_F(name_len))) ttbyte * TTGetName_ttapplication(TT_ARG_READ tt_obj o) { ttapplication a0; if ((a0 = ID2(ttapplication, o))) return a0->name; return 0; } /* back-end functions for TTGetField_ttobj() */ static ttbyte getset_GetField_ttobj(TT_ARG_READ ttobj o, ttopaque which, ttany *value) { if (which && which < ttobj_field_last && o && TTAssert(IS(ttobj,o))) { if (which >= ttobj_field_first) { switch (which) { default: return TT_FALSE; } return TT_TRUE; } } return TT_FALSE; } static ttbyte getset_GetField_ttobject(TT_ARG_READ ttobject o, ttopaque which, ttany *value) { if (which && which < ttobject_field_last && o && TTAssert(IS(ttobject,o))) { if (which >= ttobject_field_first) { switch (which) { case ttobject_refcount: *value = (ttany)o->refcount; break; case ttobject_oflags: *value = (ttany)o->oflags; break; case ttobject_user_data: *value = (ttany)o->user_data; break; case ttobject_events_inprogress: *value = (ttany)o->events_inprogress; break; case ttobject_events_informed: *value = (ttany)o->events_informed; break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttobj((TT_ARG_READ ttobj)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttvector(TT_ARG_READ ttvector o, ttopaque which, ttany *value) { if (which && which < ttvector_field_last && o && TTAssert(IS(ttvector,o))) { if (which >= ttvector_field_first) { switch (which) { case ttvector_array_size: *value = (ttany)o->array_size; break; case ttvector_array_n: *value = (ttany)o->array_n; break; case ttvector_array: *value = (ttany)(opaque)o->array; break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttobject((TT_ARG_READ ttobject)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttmethod(TT_ARG_READ ttmethod o, ttopaque which, ttany *value) { if (which && which < ttmethod_field_last && o && TTAssert(IS(ttmethod,o))) { if (which >= ttmethod_field_first) { switch (which) { case ttmethod_name_len: *value = (ttany)o->name_len; break; case ttmethod_name: *value = (ttany)(opaque)o->name; break; case ttmethod_address: *value = (ttany)(opaque)o->address; break; case ttmethod_return_type: *value = (ttany)o->return_type; break; case ttmethod_parameter_type: *value = (ttany)OBJ2ID(o->parameter_type); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttobj((TT_ARG_READ ttobj)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttevent(TT_ARG_READ ttevent o, ttopaque which, ttany *value) { if (which && which < ttevent_field_last && o && TTAssert(IS(ttevent,o))) { if (which >= ttevent_field_first) { switch (which) { case ttevent_component: *value = (ttany)OBJ2ID(o->component); break; case ttevent_evtype: *value = (ttany)o->evtype; break; case ttevent_evcode: *value = (ttany)o->evcode; break; case ttevent_evflags: *value = (ttany)o->evflags; break; case ttevent_prev: *value = (ttany)OBJ2ID(o->prev); break; case ttevent_next: *value = (ttany)OBJ2ID(o->next); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttobject((TT_ARG_READ ttobject)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_tteventmask(TT_ARG_READ tteventmask o, ttopaque which, ttany *value) { if (which && which < tteventmask_field_last && o && TTAssert(IS(tteventmask,o))) { if (which >= tteventmask_field_first) { switch (which) { case tteventmask_evtype_mask: *value = (ttany)OBJ2ID(o->evtype_mask); break; case tteventmask_evcode_mask: *value = (ttany)OBJ2ID(o->evcode_mask); break; case tteventmask_component_mask: *value = (ttany)OBJ2ID(o->component_mask); break; case tteventmask_truth_table: *value = (ttany)o->truth_table; break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttobject((TT_ARG_READ ttobject)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttcallback(TT_ARG_READ ttcallback o, ttopaque which, ttany *value) { if (which && which < ttcallback_field_last && o && TTAssert(IS(ttcallback,o))) { if (which >= ttcallback_field_first) { switch (which) { case ttcallback_lflags: *value = (ttany)o->lflags; break; case ttcallback_component: *value = (ttany)OBJ2ID(o->component); break; case ttcallback_prev: *value = (ttany)OBJ2ID(o->prev); break; case ttcallback_next: *value = (ttany)OBJ2ID(o->next); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttobject((TT_ARG_READ ttobject)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttlistener(TT_ARG_READ ttlistener o, ttopaque which, ttany *value) { if (which && which < ttlistener_field_last && o && TTAssert(IS(ttlistener,o))) { if (which >= ttlistener_field_first) { switch (which) { case ttlistener_event: *value = (ttany)OBJ2ID(o->event); break; case ttlistener_function: *value = (ttany)(opaque)o->function; break; case ttlistener_arg_component_n: *value = (ttany)o->arg_component_n; break; case ttlistener_arg_event_n: *value = (ttany)o->arg_event_n; break; case ttlistener_args: *value = (ttany)OBJ2ID(o->args); break; case ttlistener_event_mask: *value = (ttany)OBJ2ID(o->event_mask); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttcallback((TT_ARG_READ ttcallback)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_tttimer(TT_ARG_READ tttimer o, ttopaque which, ttany *value) { if (which && which < tttimer_field_last && o && TTAssert(IS(tttimer,o))) { if (which >= tttimer_field_first) { switch (which) { case tttimer_delay_t: *value = (ttany)o->delay_t; break; case tttimer_delay_f: *value = (ttany)o->delay_f; break; case tttimer_timer_prev: *value = (ttany)OBJ2ID(o->timer_prev); break; case tttimer_timer_next: *value = (ttany)OBJ2ID(o->timer_next); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttlistener((TT_ARG_READ ttlistener)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttcomponent(TT_ARG_READ ttcomponent o, ttopaque which, ttany *value) { if (which && which < ttcomponent_field_last && o && TTAssert(IS(ttcomponent,o))) { if (which >= ttcomponent_field_first) { switch (which) { case ttcomponent_callbacks: *value = (ttany)OBJ2ID(o->callbacks); break; case ttcomponent_listeners: *value = (ttany)OBJ2ID(o->listeners); break; case ttcomponent_timers: *value = (ttany)OBJ2ID(o->timers); break; case ttcomponent_datas: *value = (ttany)OBJ2ID(o->datas); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttobject((TT_ARG_READ ttobject)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttvisible(TT_ARG_READ ttvisible o, ttopaque which, ttany *value) { if (which && which < ttvisible_field_last && o && TTAssert(IS(ttvisible,o))) { if (which >= ttvisible_field_first) { switch (which) { case ttvisible_vflags: *value = (ttany)o->vflags; break; case ttvisible_prev: *value = (ttany)OBJ2ID(o->prev); break; case ttvisible_next: *value = (ttany)OBJ2ID(o->next); break; case ttvisible_parent: *value = (ttany)OBJ2ID(o->parent); break; case ttvisible_child_first: *value = (ttany)OBJ2ID(o->child_first); break; case ttvisible_child_last: *value = (ttany)OBJ2ID(o->child_last); break; case ttvisible_constraint: *value = (ttany)o->constraint; break; case ttvisible_theme: *value = (ttany)OBJ2ID(o->theme); break; case ttvisible_repaint: *value = (ttany)(opaque)o->repaint; break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttcomponent((TT_ARG_READ ttcomponent)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttboxlayout(TT_ARG_READ ttboxlayout o, ttopaque which, ttany *value) { if (which && which < ttboxlayout_field_last && o && TTAssert(IS(ttboxlayout,o))) { if (which >= ttboxlayout_field_first) { switch (which) { case ttboxlayout_orientation: *value = (ttany)o->orientation; break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttcomponent((TT_ARG_READ ttcomponent)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttbuttongroup(TT_ARG_READ ttbuttongroup o, ttopaque which, ttany *value) { if (which && which < ttbuttongroup_field_last && o && TTAssert(IS(ttbuttongroup,o))) { if (which >= ttbuttongroup_field_first) { switch (which) { case ttbuttongroup_group_first: *value = (ttany)OBJ2ID(o->group_first); break; case ttbuttongroup_group_last: *value = (ttany)OBJ2ID(o->group_last); break; case ttbuttongroup_checked: *value = (ttany)OBJ2ID(o->checked); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttcomponent((TT_ARG_READ ttcomponent)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttanybutton(TT_ARG_READ ttanybutton o, ttopaque which, ttany *value) { if (which && which < ttanybutton_field_last && o && TTAssert(IS(ttanybutton,o))) { if (which >= ttanybutton_field_first) { switch (which) { case ttanybutton_text_width: *value = (ttany)o->text_width; break; case ttanybutton_text_height: *value = (ttany)o->text_height; break; case ttanybutton_text: *value = (ttany)(opaque)o->text; break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttvisible((TT_ARG_READ ttvisible)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttradiobutton(TT_ARG_READ ttradiobutton o, ttopaque which, ttany *value) { if (which && which < ttradiobutton_field_last && o && TTAssert(IS(ttradiobutton,o))) { if (which >= ttradiobutton_field_first) { switch (which) { case ttradiobutton_group: *value = (ttany)OBJ2ID(o->group); break; case ttradiobutton_group_prev: *value = (ttany)OBJ2ID(o->group_prev); break; case ttradiobutton_group_next: *value = (ttany)OBJ2ID(o->group_next); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttanybutton((TT_ARG_READ ttanybutton)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttanyscroll(TT_ARG_READ ttanyscroll o, ttopaque which, ttany *value) { if (which && which < ttanyscroll_field_last && o && TTAssert(IS(ttanyscroll,o))) { if (which >= ttanyscroll_field_first) { switch (which) { case ttanyscroll_orientation: *value = (ttany)o->orientation; break; case ttanyscroll_size: *value = (ttany)o->size; break; case ttanyscroll_real_size: *value = (ttany)o->real_size; break; case ttanyscroll_view_size: *value = (ttany)o->view_size; break; case ttanyscroll_position: *value = (ttany)o->position; break; case ttanyscroll_real_position: *value = (ttany)o->real_position; break; case ttanyscroll_state: *value = (ttany)o->state; break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttanybutton((TT_ARG_READ ttanybutton)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttscrollbar(TT_ARG_READ ttscrollbar o, ttopaque which, ttany *value) { if (which && which < ttscrollbar_field_last && o && TTAssert(IS(ttscrollbar,o))) { if (which >= ttscrollbar_field_first) { switch (which) { default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttanyscroll((TT_ARG_READ ttanyscroll)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttprogressbar(TT_ARG_READ ttprogressbar o, ttopaque which, ttany *value) { if (which && which < ttprogressbar_field_last && o && TTAssert(IS(ttprogressbar,o))) { if (which >= ttprogressbar_field_first) { switch (which) { default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttanyscroll((TT_ARG_READ ttanyscroll)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttscrollpane(TT_ARG_READ ttscrollpane o, ttopaque which, ttany *value) { if (which && which < ttscrollpane_field_last && o && TTAssert(IS(ttscrollpane,o))) { if (which >= ttscrollpane_field_first) { switch (which) { case ttscrollpane_bar_x: *value = (ttany)OBJ2ID(o->bar_x); break; case ttscrollpane_bar_y: *value = (ttany)OBJ2ID(o->bar_y); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttvisible((TT_ARG_READ ttvisible)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttframe(TT_ARG_READ ttframe o, ttopaque which, ttany *value) { if (which && which < ttframe_field_last && o && TTAssert(IS(ttframe,o))) { if (which >= ttframe_field_first) { switch (which) { case ttframe_menubar: *value = (ttany)OBJ2ID(o->menubar); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttvisible((TT_ARG_READ ttvisible)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttscroller(TT_ARG_READ ttscroller o, ttopaque which, ttany *value) { if (which && which < ttscroller_field_last && o && TTAssert(IS(ttscroller,o))) { if (which >= ttscroller_field_first) { switch (which) { case ttscroller_scrollpane: *value = (ttany)OBJ2ID(o->scrollpane); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttvisible((TT_ARG_READ ttvisible)o, which, value); } return TT_FALSE; } static ttbyte getset_GetField_ttmenu(TT_ARG_READ ttmenu o, ttopaque which, ttany *value) { if (which && which < ttmenu_field_last && o && TTAssert(IS(ttmenu,o))) { if (which >= ttmenu_field_first) { switch (which) { case ttmenu_menubar: *value = (ttany)OBJ2ID(o->menubar); break; default: return TT_FALSE; } return TT_TRUE; } else return getset_GetField_ttvisible((TT_ARG_READ ttvisible)o, which, value); } return TT_FALSE; } typedef ttbyte (*get_fn)(TT_ARG_READ ttobj, ttuint, ttany *); static ttbyte getset_GetField(TT_ARG_READ ttobj o, tt_obj which, ttany *value) { static get_fn fn [] = { (get_fn)0, (get_fn)getset_GetField_ttobj, (get_fn)getset_GetField_ttobj, (get_fn)getset_GetField_ttobject, (get_fn)getset_GetField_ttvector, (get_fn)getset_GetField_ttobj, (get_fn)getset_GetField_ttmethod, (get_fn)getset_GetField_ttevent, (get_fn)getset_GetField_ttevent, (get_fn)getset_GetField_ttobject, (get_fn)getset_GetField_tteventmask, (get_fn)getset_GetField_ttcallback, (get_fn)getset_GetField_ttlistener, (get_fn)getset_GetField_tttimer, (get_fn)getset_GetField_ttcomponent, (get_fn)getset_GetField_ttcomponent, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttcomponent, (get_fn)getset_GetField_ttboxlayout, (get_fn)getset_GetField_ttcomponent, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttbuttongroup, (get_fn)getset_GetField_ttanybutton, (get_fn)getset_GetField_ttanybutton, (get_fn)getset_GetField_ttanybutton, (get_fn)getset_GetField_ttradiobutton, (get_fn)getset_GetField_ttanyscroll, (get_fn)getset_GetField_ttscrollbar, (get_fn)getset_GetField_ttanyscroll, (get_fn)getset_GetField_ttprogressbar, (get_fn)getset_GetField_ttscrollpane, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttframe, (get_fn)getset_GetField_ttscroller, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttmenu, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttvisible, (get_fn)getset_GetField_ttcomponent, (get_fn)getset_GetField_ttcomponent, }; ttuint i; ttany dummy; if (!value) value = &dummy; if (o && (i = o->id >> TT_MAGIC_SHIFT) && i < sizeof(fn)/sizeof(fn[0]) && ID2(ttfield,which)) return fn[i](o, (ttuint)((ttopaque)which & TT_MAGIC_MASK), value); return TT_FALSE; } /* back-end functions for TTSetField_ttobj() */ static ttbyte getset_SetField_ttobj(ttobj o, ttopaque which, ttany value) { if (which && which < ttobj_field_last && o && TTAssert(IS(ttobj,o))) { if (which >= ttobj_field_first) switch (which) { default: return TT_FALSE; } } return TT_FALSE; } static ttbyte getset_SetField_tteventbig(tteventbig o, ttopaque which, ttany value) { if (which && which < tteventbig_field_last && o && TTAssert(IS(tteventbig,o))) { if (which >= tteventbig_field_first) switch (which) { default: return TT_FALSE; } else return getset_SetField_ttobj((ttobj)o, which, value); } return TT_FALSE; } static ttbyte getset_SetField_ttlayout(ttlayout o, ttopaque which, ttany value) { if (which && which < ttlayout_field_last && o && TTAssert(IS(ttlayout,o))) { if (which >= ttlayout_field_first) switch (which) { default: return TT_FALSE; } else return getset_SetField_ttobj((ttobj)o, which, value); } return TT_FALSE; } static ttbyte getset_SetField_ttwidget(ttwidget o, ttopaque which, ttany value) { if (which && which < ttwidget_field_last && o && TTAssert(IS(ttwidget,o))) { if (which >= ttwidget_field_first) switch (which) { case ttwidget_x: return TTSetX_ttwidget((tt_obj)o->id, (ttshort)value); case ttwidget_y: return TTSetY_ttwidget((tt_obj)o->id, (ttshort)value); case ttwidget_w: return TTSetW_ttwidget((tt_obj)o->id, (ttshort)value); case ttwidget_h: return TTSetH_ttwidget((tt_obj)o->id, (ttshort)value); case ttwidget_xl: return TTSetXl_ttwidget((tt_obj)o->id, (ttint)value); case ttwidget_yl: return TTSetYl_ttwidget((tt_obj)o->id, (ttint)value); case ttwidget_wl: return TTSetWl_ttwidget((tt_obj)o->id, (ttint)value); case ttwidget_hl: return TTSetHl_ttwidget((tt_obj)o->id, (ttint)value); case ttwidget_tooltip: return TTSetTooltip_ttwidget((tt_obj)o->id, (tt_obj)(opaque)value); default: return TT_FALSE; } else return getset_SetField_ttobj((ttobj)o, which, value); } return TT_FALSE; } static ttbyte getset_SetField_tttooltip(tttooltip o, ttopaque which, ttany value) { if (which && which < tttooltip_field_last && o && TTAssert(IS(tttooltip,o))) { if (which >= tttooltip_field_first) switch (which) { default: return TT_FALSE; } else return getset_SetField_ttwidget((ttwidget)o, which, value); } return TT_FALSE; } static ttbyte getset_SetField_ttanybutton(ttanybutton o, ttopaque which, ttany value) { if (which && which < ttanybutton_field_last && o && TTAssert(IS(ttanybutton,o))) { if (which >= ttanybutton_field_first) switch (which) { default: return TT_FALSE; } else return getset_SetField_ttwidget((ttwidget)o, which, value); } return TT_FALSE; } static ttbyte getset_SetField_ttanyscroll(ttanyscroll o, ttopaque which, ttany value) { if (which && which < ttanyscroll_field_last && o && TTAssert(IS(ttanyscroll,o))) { if (which >= ttanyscroll_field_first) switch (which) { case ttanyscroll_orientation: return TTSetOrientation_ttanyscroll((tt_obj)o->id, (ttbyte)value); case ttanyscroll_size: return TTSetSize_ttanyscroll((tt_obj)o->id, (ttint)value); case ttanyscroll_real_size: return TTSetRealSize_ttanyscroll((tt_obj)o->id, (ttint)value); case ttanyscroll_view_size: return TTSetViewSize_ttanyscroll((tt_obj)o->id, (ttint)value); case ttanyscroll_position: return TTSetPosition_ttanyscroll((tt_obj)o->id, (ttint)value); default: return TT_FALSE; } else return getset_SetField_ttanybutton((ttanybutton)o, which, value); } return TT_FALSE; } static ttbyte getset_SetField_ttprogressbar(ttprogressbar o, ttopaque which, ttany value) { if (which && which < ttprogressbar_field_last && o && TTAssert(IS(ttprogressbar,o))) { if (which >= ttprogressbar_field_first) switch (which) { default: return TT_FALSE; } else return getset_SetField_ttanyscroll((ttanyscroll)o, which, value); } return TT_FALSE; } typedef ttbyte (*set_fn)(TT_ARG_READ ttobj, ttuint, ttany); static ttbyte getset_SetField(TT_ARG_READ ttobj o, tt_obj which, TT_ARG_READ TT_ARG_ARRAY((1)) ttarg *value) { static set_fn fn [] = { (set_fn)0, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_tteventbig, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttlayout, (set_fn)getset_SetField_ttlayout, (set_fn)getset_SetField_ttlayout, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttwidget, (set_fn)getset_SetField_ttwidget, (set_fn)getset_SetField_tttooltip, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttanybutton, (set_fn)getset_SetField_ttanybutton, (set_fn)getset_SetField_ttanybutton, (set_fn)getset_SetField_ttanybutton, (set_fn)getset_SetField_ttanyscroll, (set_fn)getset_SetField_ttanyscroll, (set_fn)getset_SetField_ttanyscroll, (set_fn)getset_SetField_ttprogressbar, (set_fn)getset_SetField_ttwidget, (set_fn)getset_SetField_ttwidget, (set_fn)getset_SetField_ttwidget, (set_fn)getset_SetField_ttwidget, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttwidget, (set_fn)getset_SetField_ttwidget, (set_fn)getset_SetField_ttwidget, (set_fn)getset_SetField_ttobj, (set_fn)getset_SetField_ttobj, }; ttuint i; if (o && (i = o->id >> TT_MAGIC_SHIFT) && i < sizeof(fn)/sizeof(fn[0]) && IS(ttobject,o) && !(((ttobject)o)->oflags & ttobject_oflags_const) && ID2(ttfield,which)) { return fn[i](o, (ttuint)((ttopaque)which & TT_MAGIC_MASK), value->value); } return TT_FALSE; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/inlines.h���������������������������������������������������������������������0000664�0000000�0000000�00000005767�13775351206�0016312�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_INLINES_H #define TT_INLINES_H /* #define ISClass(Class1,Class2) macro */ #define ISClass(ClassT, Class) (((Class)->magic & (ClassT)->magicmask) == (ClassT)->magic) /* #define ISCLASS(type,Class) macro */ #define ISCLASS(type, Class) (((Class)->magic & magicmask_(type)) == magic_(type)) /* #define IS(type,o) macros */ #define IS(type, o) ISCLASS(type, (o)->Class) /* #define Is(Class,o) macros */ #define Is(Class, o) ISClass(Class, (o)->Class) /* ttobj <-> tt_obj conversion */ TT_INLINE opaque Obj2Id(ttobj Obj) { return Obj ? Obj->id : TT_NOID; } #define OBJ2ID(o) Obj2Id((ttobj)(o)) #define ID2OBJ(id) Id2Obj(id_ttclass_ttobj, (opaque)(id)) #define ID2(type, id) ((type)Id2Obj(id_ttclass_(type), (topaque)(id))) /* ttclass <-> tt_obj conversion */ #define ORDER2ID_CLASS(Class) ((Class) | (order_ttclass << TT_MAGIC_SHIFT)) TT_INLINE ttclass Id2Class(opaque Class) { if (Class >= id_ttclass_first && Class < id_ttclass_last) return TClasses[Class & TT_MAGIC_MASK]; return NULL; } #define ID2CLASS(Class) Id2Class((opaque)(Class)) /* constructors */ #define TNEW_NOBUILD(type) (TClass(type)->New(TClass(type), (type)0)) #define TNEW2(type, o) ((type)New((ttclass)TClass(type), (ttobject)o)) #define TNEW(type) TNEW2(type, (ttobject)0) #define TDEL(o) Del((ttobject)o) /* destructors */ /* unused */ /* TT_INLINE void Break(ttobj o) { if (o) o->Class->Break(o); } */ TT_INLINE void Del(ttobject o) { if (o && IS(ttobject, o) && !(o->oflags & ttobject_oflags_const) && !(o->refcount &= ~ttobject_refcount_alive) && !(o->events_inprogress & ttmask(ttevent_evtype_del))) { /* * WARNING: delete ONLY if not already doing it: * object deletion is not reentrant! */ o->events_inprogress |= ttmask(ttevent_evtype_del); o->Class->Del(o); } } /* constructors */ TT_INLINE ttobject Build(ttobject o) { if (o) { if (o->Class->Build(o)) return o; TDEL(o); } return (ttobject)0; } TT_INLINE ttobject New(ttclass _Class, ttobject o) { ttclass_ttobject Class = (ttclass_ttobject)_Class; if (Class && ISCLASS(ttobject, Class) && (o = Class->New(Class, o))) return Build(o); return (ttobject)0; } /* ttlistener */ /* ttmenubar */ TT_INLINE ttmenubar GetDefault_ttmenubar(void) { if (!TTD.Menubar) TTD.Menubar = TNEW(ttmenubar); return TTD.Menubar; } /* tttheme */ TT_INLINE tttheme GetDefault_tttheme(void) { if (!TTD.Theme && !TTD.DummyTheme) TTD.Theme = TNEW(tttheme); return TTD.Theme ? TTD.Theme : TTD.DummyTheme; } TT_INLINE ttapplication Get_ttapplication(void) { return TTD.Application; } TT_INLINE ttapplication Get_ttapplication(void) { return TTD.Application; } #endif /* TT_INLINES_H */ ���������twin-0.9.0/libs/libTT/internaltypes.h���������������������������������������������������������������0000664�0000000�0000000�00000002100�13775351206�0017524�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_INTERNALTYPES_H #define TT_INTERNALTYPES_H typedef ttopaque opaque; /* * these are the types to interface with clients. * Data of this types actually contains (ttopaque) integers. */ typedef struct s_tt_obj *tt_obj; #define tt_class tt_obj typedef void (*ttlistener_fn)(ttany arg0); typedef void (*ttlistener_array_fn)(ttuint nargs, ttany *args); typedef void (*ttvisible_repaint_fn)(tt_obj, ttshort, ttshort, ttshort, ttshort); typedef struct s_ttshape *ttshape; typedef struct s_ttshape { ttshort width, height, border[4]; ttattr *attr; } s_ttshape; /* AVL stuff imported from <Tw/Twavl.h> */ typedef struct s_tavl s_ttavl; typedef tavl ttavl; typedef tavl_c ttavl_c; typedef tavl_compare ttavl_compare; #endif /* TT_INSTERNALTYPES_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/libTT.c�����������������������������������������������������������������������0000664�0000000�0000000�00000146516�13775351206�0015660�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * libTT.c -- 'The Text Toolkit' library implementation * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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 * */ #include <Tutf/Tutf_defs.h> #include <Tw/Tw_defs.h> /* include our internal copy of TT.h instead of the public one */ #include "TT.h" #include <TT/TTerrno.h> #include "TTextern.h" #include "TTassert.h" #include "dummytheme.h" #include "inlines.h" #include "fire.h" #include <stdio.h> #include <stdarg.h> #include <stdlib.h> #include <string.h> #include <sys/time.h> #include <dlfcn.h> static void RealClose(void); TT_MUTEX_HELPER_DEFS(static); static void GetNow(void); static ttobject FindNative(ttany id); static void DropId(ttobj Obj); static ttbyte FixedAssignIdArray(ttopaque ClassId, ttopaque o_n, TT_CONST ttobj *o_array); static void FireSimpleEvent(ttcomponent o, ttuint evtype); static void FireEvent(TT_ARG_DIE ttevent ev, ttcomponent o); static void FireEventLoop(void); ttuint TTGetMethodIdV(void *method); static void DelAll_ttobj(ttbyte quick); static void Expose_ttvisible(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h); static ttdata FindByKey_ttdata(ttdata base, TT_CONST ttbyte *key, ttopaque len); static ttdata protected_Create_ttdata(ttcomponent c, TT_ARG_READ ttbyte *key, ttopaque key_len, ttany data); #ifdef CONF_SOCKET_PTHREADS TT_INLINE ttbyte GrowErrnoLocation(void) { s_tt_errno *vec; ttuint newmax = rErrno.max <= 8 ? 16 : (rErrno.max << 1); if ((vec = (s_tt_errno *)TTReallocMem(rErrno.vec, newmax * sizeof(s_tt_errno)))) { /* assume (th_self)-1 is _NOT_ a valid thread identifier */ TTWriteMem(vec + rErrno.max, '\xFF', (newmax - rErrno.max) * sizeof(s_tt_errno)); rErrno.vec = vec; rErrno.max = newmax; return TT_TRUE; } /* out of memory! */ return TT_FALSE; } static s_tt_errno *GetErrnoLocation(void) { s_tt_errno *r = &rCommonErrno; th_self self; ttuint i; do if (TTD.OpenFlag) { self = th_self_get(); /* we cache last thread that called GetErrnoLocation() */ i = rErrno.last; if (i < rErrno.max && rErrno.vec[i].T == self) { r = &rErrno.vec[i]; break; } for (i = 0; i < rErrno.max; i++) { if (rErrno.vec[i].T == self) break; if (rErrno.vec[i].T == (th_self)-1) { /* empty slot, initialize it */ rErrno.vec[i].T = self; rErrno.vec[i].E = rErrno.vec[i].S = 0; break; } } if (i < rErrno.max) { rErrno.last = i; r = &rErrno.vec[i]; break; } if (GrowErrnoLocation()) { rErrno.vec[i].E = rErrno.vec[i].S = 0; rErrno.vec[i].T = self; rErrno.last = i; /* i is previous rErrno.max */ r = &rErrno.vec[i]; break; } } while (0); return r; } static void FreeErrnoLocation(void) { if (rErrno.vec) TTFreeMem(rErrno.vec); } #else /* !CONF_SOCKET_PTHREADS */ #define GetErrnoLocation() (TTD.OpenFlag ? &TTD.rErrno_ : &TTD.rCommonErrno_) #define FreeErrnoLocation() \ do { \ } while (0) #endif /* CONF_SOCKET_PTHREADS */ #define Errno (GetErrnoLocation()->E) #define ErrnoDetail (GetErrnoLocation()->S) void TTAssertFail(TT_CONST char *assertion, TT_CONST char *file, unsigned int line, TT_CONST char *function) { fprintf(stderr, "TT-CRITICAL: %s:%u: %s(): assertion `%s' failed\n", file, line, function, assertion); } ttbyte TTIsPanic(void) { /* maybe LOCK here too? */ return TTD.PanicFlag; } ttuint TTLibraryVersion(void) { return TT_PROTOCOL_VERSION; } TT_DECL_MAGIC(TTMagicData); ttbyte TTCheckMagic(TT_CONST ttbyte id[]) { if (TTCmpMem(id + 1, TTMagicData + 1, (id[0] < TTMagicData[0] ? id[0] : TTMagicData[0]) - 2 - sizeof(ttuint))) { CommonErrno = TT_EBAD_SIZES; return TT_FALSE; } return TT_TRUE; } static ttuint PrintInitError(tthw HW, TT_CONST ttbyte *target, ttbyte module) { s_tt_errno *L = GetErrnoLocation(); /* set TTD.Class.HW to allow error reporting */ if (HW) TTD.Class.HW = *HW; fprintf(stderr, "TT-ERROR: %s display target%s `%s' failed:\n\t%s%s\n", module ? "loading" : "compiled in", module ? " module" : "", target ? target : (TT_CONST ttbyte *)"(NULL)", TTStrError(L->E), TTStrErrorDetail(L->E, L->S)); return 0; } static ttopaque ttclass_sizes[] = { #define el(type) sizeof(TT_CAT(s_ttclass_, type)), TT_LIST(el) #undef el }; /* * initialize method structures, using values in TTD.FNdefault as default * and overloading them with ones set in FNs */ #define DeltaClass(i) ((ttopaque)((ttbyte *)TClasses[i] - (ttbyte *)TClasses[order_first])) static void InitClasses(ttclasses Classes) { ttopaque i, isuper = 0, j, d; void **super1, **super2, **src1, **src2, **dst1, **dst2; void *c1, *c2; for (i = order_first; i < order_last; i++) { j = ttclass_sizes[0]; if (i > order_first) { isuper = TT_MAGIC_MASK & (ttopaque)TTGetSuper_ttclass((tt_obj)ORDER2ID_CLASS(i)); d = DeltaClass(isuper); super1 = (void **)((ttbyte *)&TTD.Class_default + d + j); super2 = (void **)((ttbyte *)&TTD.Class + d + j); } d = DeltaClass(i); src1 = (void **)((ttbyte *)TTD.Class_hw_null + d + j); src2 = (void **)((ttbyte *)Classes + d + j); dst1 = (void **)((ttbyte *)&TTD.Class_default + d + j); dst2 = (void **)((ttbyte *)&TTD.Class + d + j); /* * this is TRICKY. we have two sources of methods (src1 and src2) * and we must combine them, writing into dst1 and dst2: * we order non-null methods as below, then we use the last non-null * and put it into corresponding dst. * * drawing src* on the left and dst* on the right as below, * it means that each dst* must be set with the last src* that is placed * at equal row or in an earlier row. * so src2 cannot go in dst1, but SUPER(src2) can. * * ... * SUPER(SUPER(src1)) * SUPER(SUPER(src2)) * SUPER(src1) * SUPER(src2) * src1 -> dst1 * src2 -> dst2 */ for (j = ttclass_sizes[0]; j < ttclass_sizes[i - order_first]; j += sizeof(void *)) { if (TTAssertAlways((c1 = *src1) || ((j < ttclass_sizes[isuper]) && ((c1 = *super2) || (c1 = *super1))))) *dst1 = c1; if ((c2 = *src2) || (c2 = c1)) *dst2 = c2; super1++, super2++; src1++; src2++; dst1++; dst2++; } } FixedAssignIdArray(id_ttclass_ttclass, order_last - order_first, (ttobj *)TClasses); /* set HW methods */ TTD.Class.HW = Classes->HW; TTD.Class_default.HW = TTD.Class_hw_null->HW; } static void CloseTarget(void) { if (THW.Close) THW.Close(); /* reinitialize at each TTClose() */ InitClasses(TTD.Class_hw_null); /* unload module if needed */ if (TTD.DlHandle) { dlclose(TTD.DlHandle); TTD.DlHandle = NULL; } TTD.PanicFlag = TT_FALSE; } static void RealClose(void) { /* save Errno in CommonErrno */ s_tt_errno *E = GetErrnoLocation(); CommonErrno = E->E; CommonErrnoDetail = E->S; /* increase TTD.refcount so that we are not called recursively */ TTD.refcount++; /* close display target. also deletes all native objects */ if (TTD.OpenFlag) CloseTarget(); if (TTD.HWTarget) TTFreeMem(TTD.HWTarget); TTD.HWOptions = TTD.HWTarget = NULL; TTD.DummyTheme = (tttheme)0; TTWriteMem((ttbyte *)&s_DummyTheme + TT_OFFSETOF(tttheme, name), '\0', sizeof(s_tttheme) - TT_OFFSETOF(tttheme, name)); DelAll_ttobj(TTD.QuitArg); FreeErrnoLocation(); TTD.OpenFlag = TTD.ExitMainLoopFlag = TTD.PanicFlag = TTD.QuitArg = TT_FALSE; TTD.refcount = 0; } static void Close(ttbyte quick) { /* do not mess with TTD.refcount */ th_r_mutex_lock(mutex); if (TTD.OpenFlag || TTD.PanicFlag) { /* remember arg */ TTD.QuitArg = quick; if (!(TTD.refcount &= ~ttobject_refcount_alive)) RealClose(); else { /* * do not call RealClose() explicitly: * UNLK will do it at the right moment, * since we cannot quit from inside a TT* function ! */ } } th_r_mutex_unlock(mutex); } void TTClose(void) { Close(TT_FALSE); } void TTCloseQuickNDirty(void) { Close(TT_TRUE); } #ifdef PACKAGE_LIBDIR static TT_CONST ttbyte *conf_libdir = PACKAGE_LIBDIR "/modules"; #else static TT_CONST ttbyte *conf_libdir = "HW"; #endif static ttclasses module_InitHW(tthw *HW) { /* put all known driver names here (for autoprobing) */ /* do not autoprobe for `twin_detunnel', `null' or `xml' */ TT_CONST ttbyte *name[] = { "twin_tunnel", "twin", "gtk", "X11", NULL, NULL, }; /* len == strlen(LIBDIR "/TT/HW/twin_detunnel.so.x.y.z") */ ttuint i, len = 20 + strlen(TT_PROTOCOL_VERSION_STR) + strlen(conf_libdir); ttbyte *buf; ttclasses Classes; ttclasses (*init_dl)(tthw *); if (TTD.HWTarget) { /* forbid exiting from LIBDIR */ if (strchr(TTD.HWTarget, '/')) { CommonErrno = TT_ETARGET_BAD; return (ttclasses)0; } len += strlen(name[0] = TTD.HWTarget); /* if Target is specified, try *only* it */ name[1] = NULL; } if ((buf = TTAllocMem(len))) { for (i = 0; i < sizeof(name) / sizeof(name[0]) && name[i]; i++) { sprintf(buf, "%s/%s.so." TT_PROTOCOL_VERSION_STR, conf_libdir, name[i]); if ((TTD.DlHandle = dlopen(buf, RTLD_NOW | RTLD_GLOBAL))) { init_dl = (ttclasses(*)(tthw *))dlsym(TTD.DlHandle, "InitModule"); if (init_dl) { if ((Classes = init_dl(HW))) { TTFreeMem(buf); return Classes; } else { /* CommonErrno will be set by init_dl(HW, Classes) */ } } else { CommonErrno = TT_ETARGET_DLERROR; TTD.str_dlerror = dlerror(); } /* do not dlclose() now, module may hold error messages */ /* dlclose(TTD.DlHandle); */ } else { CommonErrno = TT_ETARGET_DLERROR; TTD.str_dlerror = dlerror(); } PrintInitError(*HW, name[i], ttrue); } TTFreeMem(buf); } else CommonErrno = TT_ENO_MEM; return (ttclasses)0; } static ttclasses module_InitHW(tthw *HW); ttclasses _TT_null_InitHW(tthw *HW); ttclasses _TT_twin_InitHW(tthw *HW); ttclasses _TT_twin_tunnel_InitHW(tthw *HW); ttclasses _TT_twin_detunnel_InitHW(tthw *HW); ttclasses _TT_gtk_InitHW(tthw *HW); ttclasses _TT_X11_InitHW(tthw *HW); ttclasses _TT_xml_InitHW(tthw *HW); typedef struct s_target_hw *target_hw; struct s_target_hw { TT_CONST ttbyte *name; ttclasses (*InitHW)(tthw *HW); ttbyte autoprobe; }; #define TARGET(t) \ { TT_STR(t), TT_CAT(TT_CAT(_TT_, t), _InitHW), TT_FALSE } #define AUTOTARGET(t) \ { TT_STR(t), TT_CAT(TT_CAT(_TT_, t), _InitHW), TT_TRUE } /* array of built-in targets */ static struct s_target_hw target_array[] = { /* placeholder for client-specified target */ /* WARNING: this currently allows only for ONE client-specified target */ {NULL, NULL, TT_TRUE}, AUTOTARGET(twin_tunnel), /* * cannot link twin_detunnel, it references twin server symbols * and would break *ALL* other libTT clients */ #if 0 TARGET(twin_detunnel), #endif AUTOTARGET(twin), AUTOTARGET(gtk), AUTOTARGET(X11), /* use `null' or `xml' targets ONLY if explicitly requested */ TARGET(xml), TARGET(null), }; #define target_array_n (sizeof(target_array) / sizeof(target_array[0])) /* WARNING: this currently allows only for ONE client-specified target */ ttbyte TTRegisterTarget(TT_CONST byte *name, ttclasses (*InitHW)(tthw *HW)) { target_array[0].name = name; target_array[0].InitHW = InitHW; return TT_TRUE; } static ttclasses OpenTarget(void) { ttclasses Classes = NULL; tthw HW; target_hw t; ttuint i; /* reinitialize at each TTOpen(). this also sets ->order, ->magicmask, ->magic, ->size */ TTD.Class_default = TTD.Class = *(TTD.Class_hw_null = _TT_null_InitHW(&HW)); #define CHK4(name) (TTD.HWTarget && !strcmp(name, TTD.HWTarget)) #define AUTOCHK4(name) (!TTD.HWTarget || !strcmp(name, TTD.HWTarget)) #define ERROR4(name) PrintInitError(HW, name, TT_FALSE) for (i = 0; i < target_array_n; i++) { t = &target_array[i]; if (t->name && t->InitHW && (t->autoprobe ? AUTOCHK4(t->name) : CHK4(t->name)) && ((Classes = t->InitHW(&HW)) || ERROR4(t->name))) { break; } } #undef CHK4 #undef AUTOCHK4 #undef ERROR4 if (!Classes) Classes = module_InitHW(&HW); if (!Classes) { if (!CommonErrno || CommonErrno == TT_ETARGET_DLERROR || CommonErrno >= TT_MAX_ERROR) CommonErrno = TT_ETARGET_FAILED; } return Classes; } static ttbyte Subsystems_Init(void) { ttbyte _TT_field_Init(void); ttbyte _TT_method_Init(void); return _TT_field_Init() && _TT_method_Init(); } static ttbyte BeforeOpenTarget(TT_CONST byte *arg) { TT_CONST byte *t; ttbyte *d, *s; if (!TTAssertAlways(sizeof(s_ttclass_ttobj) == TT_OFFSETOF(ttclass_ttobject, New)) || !TTAssertAlways(sizeof(s_ttclass_ttobject) == sizeof(s_ttclass_ttobj) + 4 * sizeof(void (*)(void)))) return TT_FALSE; if (!TTD.OpenFlag && TTD.PanicFlag) { /* cleanup after a failed TTOpen() */ TTD.QuitArg = TT_TRUE; RealClose(); } /* if client did not ask for a specific target, pick from environment */ t = arg ? arg : (TT_CONST ttbyte *)getenv("TTDISPLAY"); if (t && *t) { /* split target and options */ if ((s = TTD.HWTarget = TTCloneStr(t))) { if ((d = strchr(s, '@')) || (d = strchr(s, ','))) { *d++ = '\0'; TTD.HWOptions = d; } else TTD.HWOptions = NULL; } else { CommonErrno = TT_ENO_MEM; return TT_FALSE; } } return Subsystems_Init(); } static void AfterOpenTarget(ttclasses Classes) { if (Classes) { #ifdef CONF_SOCKET_PTHREADS TTD.rErrno_.max = TTD.rErrno_.last = 0; #else TTD.rErrno_.E = TTD.rErrno_.S = 0; #endif CommonErrno = 0; TTD.OpenFlag = TT_TRUE; TTD.PanicFlag = TTD.QuitArg = TT_FALSE; TTD.refcount = ttobject_refcount_alive; InitClasses(Classes); } else { if (TTD.HWTarget) TTFreeMem(TTD.HWTarget); TTD.HWOptions = TTD.HWTarget = NULL; TTD.PanicFlag = ttrue; } } static ttbyte Open(TT_CONST byte *arg) { ttclasses Classes; if (TTD.OpenFlag) { CommonErrno = TT_ETARGET_ALREADY_OPEN; return TT_FALSE; } if (!BeforeOpenTarget(arg)) return TT_FALSE; if ((Classes = OpenTarget())) { AfterOpenTarget(Classes); TTD.Menubar = NULL; TTD.Application = NULL; /* correctly initialize TTD.DummyTheme */ TNEW2(tttheme, &s_DummyTheme); TTCopyMem((ttbyte *)&s_RealDummyTheme + TT_OFFSETOF(tttheme, name), (ttbyte *)&s_DummyTheme + TT_OFFSETOF(tttheme, name), sizeof(s_tttheme) - TT_OFFSETOF(tttheme, name)); TTD.DummyTheme = &s_DummyTheme; } else { AfterOpenTarget(Classes); } return !!Classes; } ttbyte Reopen(TT_CONST ttbyte *arg) { ttclasses Classes; ttbyte ret = TT_FALSE; if (TTD.OpenFlag) { CloseTarget(); if (BeforeOpenTarget(arg)) { Classes = OpenTarget(); AfterOpenTarget(Classes); /* FIXME: should also rebuild native objects */ ret = !!Classes; } } return ret; } ttbyte TTOpen(TT_CONST ttbyte *arg) { ttbyte ret; th_r_mutex_lock(mutex); /* Lock but do not increase TTD.refcount */ ret = Open(arg); th_r_mutex_unlock(mutex); return ret; } ttbyte TTReopen(TT_CONST ttbyte *arg) { ttbyte ret; th_r_mutex_lock(mutex); /* Lock but do not increase TTD.refcount */ ret = Reopen(arg); th_r_mutex_unlock(mutex); return ret; } tt_errno *TTErrnoLocation(void) { s_tt_errno *t; LOCK; t = GetErrnoLocation(); UNLK; return (tt_errno *)t; } TT_ATTR_FN_CONST TT_CONST ttbyte *TTStrError(ttuint E) { switch (E) { case 0: return "success"; case TT_EBAD_SIZES: return "compiled data sizes are incompatible with libTT now in use!"; case TT_ENO_MEM: return "Out of memory!"; case TT_ETARGET_ALREADY_OPEN: return "already opened"; case TT_ETARGET_DLERROR: /*return "unable to load display target module: ";*/ return ""; case TT_ETARGET_FAILED: return "no display target compiled in, and all probed modules failed" "\n\t(all known targets: twin_tunnel, twin, gtk, X11, [twin_detunnel], [xml], [null])"; case TT_ETARGET_BAD: return "malformed TTDISPLAY environment variable"; case TT_ETARGET_NO_EXTENSION: return "missing or failed `libTT' server extension, needed by "; case TT_ETARGET_BAD_EXTENSION_VERSION: return "need `libTT' server extension version " TT_PROTOCOL_VERSION_STR ", found "; case TT_EBAD_ARG: return "invalid argument in function call: argument "; case TT_EEXIST: return "object already exists"; default: if (E > TT_MAX_ERROR && THW.StrError) return THW.StrError(E - TT_MAX_ERROR); return "unknown error"; } } TT_ATTR_FN_CONST TT_CONST ttbyte *TTStrErrorDetail(ttuint E, ttuint S) { static ttbyte buf[] = "255.255.255"; switch (E) { case TT_ETARGET_DLERROR: return TTD.str_dlerror ? TTD.str_dlerror : (ttbyte *)""; case TT_ETARGET_NO_EXTENSION: switch (S) { case TT_EDETAIL_TARGET_TWIN_TUNNEL: return "display target `twin_tunnel'"; case TT_EDETAIL_TARGET_TWIN_DETUNNEL: return "display target `twin_detunnel'"; case TT_EDETAIL_TARGET_TWIN: return "display target `twin'"; case TT_EDETAIL_TARGET_GTK: return "display target `gtk'"; case TT_EDETAIL_TARGET_X11: return "display target `X11'"; case TT_EDETAIL_TARGET_XML: return "display target `xml'"; case TT_EDETAIL_TARGET_NULL: return "display target `null' failed"; } return "unknown display target"; case TT_ETARGET_BAD_EXTENSION_VERSION: sprintf(buf, "%d.%d.%d", (S >> 16) & 0xFF, (S >> 8) & 0xFF, S & 0xFF); return buf; case TT_EBAD_ARG: switch (S) { case 1: return "1"; case 2: return "2"; case 3: return "3"; case 4: return "4"; case 5: return "5"; case 6: return "6"; case 7: return "7"; case 8: return "8"; case 9: return "9"; } return "?"; default: if (E > TT_MAX_ERROR && THW.StrErrorDetail) return THW.StrErrorDetail(E - TT_MAX_ERROR, S); } return ""; } int TTConnectionFd(void) { int fd; LOCK; fd = THW.ConnectionFd(); UNLK; return fd; } ttbyte TTFlush(void) { ttbyte ret = ttrue; LOCK; ret = !(TTD.PanicFlag || (TTD.PanicFlag = !THW.Flush())); UNLK; return ret; } ttbyte TTTimidFlush(void) { ttbyte ret = ttrue; LOCK; ret = !(TTD.PanicFlag || (TTD.PanicFlag = !THW.TimidFlush())); UNLK; return ret; } ttbyte TTSync(void) { ttbyte ret = ttrue; LOCK; ret = !(TTD.PanicFlag || (TTD.PanicFlag = !THW.Sync())); UNLK; return ret; } /* functions to manage Ids */ static ttobj *IdList[order_last]; static ttopaque IdSize[order_last], IdTop[order_last], IdBottom[order_last]; static ttopaque IdListGrow(ttopaque i, ttopaque size) { ttopaque oldsize; ttobj *newIdList; oldsize = IdSize[i]; if (oldsize >= TT_MAXID) return TT_BADID; /* use size as a minimum hint for the new size */ if (size && size < TT_MAXID) oldsize = size; size = oldsize < TT_SMALLBUFF / 3 ? TT_SMALLBUFF / 2 : oldsize + (oldsize >> 1); if (size > TT_MAXID) size = TT_MAXID; if (!(newIdList = (ttobj *)TTReallocMem(IdList[i], size * sizeof(ttobj)))) return TT_BADID; TTWriteMem(newIdList + oldsize, 0, (size - oldsize) * sizeof(ttobj)); IdList[i] = newIdList; IdSize[i] = size; return oldsize; } TT_INLINE ttopaque FixedIdListGrow(ttbyte i, ttopaque size) { ttopaque oldsize; ttobj *newIdList; oldsize = IdSize[i]; if (oldsize >= TT_MAXID) return TT_BADID; /* use size as exact new size */ if (size > TT_MAXID) size = TT_MAXID; if (!(newIdList = (ttobj *)TTReallocMem(IdList[i], size * sizeof(ttobj)))) return TT_BADID; TTWriteMem(newIdList + oldsize, 0, (size - oldsize) * sizeof(ttobj)); IdList[i] = newIdList; IdSize[i] = size; return oldsize; } TT_INLINE void IdListShrink(ttopaque i) { ttobj *newIdList; ttopaque size = TT_MAX2(TT_BIGBUFF, IdTop[i] << 1); if (size < IdSize[i] && (newIdList = (ttobj *)TTReallocMem(IdList[i], size * sizeof(ttobj)))) { IdList[i] = newIdList; IdSize[i] = size; } } TT_INLINE ttopaque IdListGet(ttopaque i) { if (IdBottom[i] == IdSize[i]) return IdListGrow(i, 0); return IdBottom[i]; } TT_INLINE ttbyte _AssignId(ttopaque i, ttobj Obj) { ttopaque Id, j; if (i < order_last && (Id = IdListGet(i)) != TT_BADID) { Obj->id = Id | i << TT_MAGIC_SHIFT; IdList[i][Id] = Obj; if (IdTop[i] <= Id) IdTop[i] = Id + 1; for (j = IdBottom[i] + 1; j < IdTop[i]; j++) if (!IdList[i][j]) break; IdBottom[i] = j; return ttrue; } Errno = TT_ENO_MEM; return TT_FALSE; } TT_INLINE ttbyte _FixedAssignId(ttopaque i, ttobj Obj) { ttopaque Id = Obj->id & TT_MAGIC_MASK, j; if (i < order_last && i == (Obj->id >> TT_MAGIC_SHIFT) && ((Id < IdTop[i] && !IdList[i][Id]) || IdListGrow(i, Id))) { IdList[i][Id] = Obj; if (IdTop[i] <= Id) IdTop[i] = Id + 1; for (j = IdBottom[i] + 1; j < IdTop[i]; j++) if (!IdList[i][j]) break; IdBottom[i] = j; return ttrue; } Errno = TT_ENO_MEM; return TT_FALSE; } static ttbyte AssignId(TT_CONST ttclass Class, ttobj o) { if (Class && o) return _AssignId(Class->id & TT_MAGIC_MASK, o); return TT_FALSE; } static ttbyte FixedAssignId(TT_CONST ttclass Class, ttobj o) { if (Class && o) return _FixedAssignId(Class->id & TT_MAGIC_MASK, o); return TT_FALSE; } static ttbyte FixedAssignIdArray(ttopaque ClassId, ttopaque o_n, TT_CONST ttobj *o_array) { ttobj o; ttopaque used_n = 0, i, j, used_j; if (ClassId >= id_ttclass_first && ClassId < id_ttclass_last && !IdTop[i = ClassId & TT_MAGIC_MASK] && o_n && (o_n <= IdSize[i] || FixedIdListGrow(i, o_n)) != TT_BADID) { for (j = 0; j < o_n; j++) { o = (ttobj)o_array[j]; if (TTAssertAlways(o && (o->id >> TT_MAGIC_SHIFT) == i && (used_j = o->id & TT_MAGIC_MASK) <= o_n)) { if (used_n < used_j) used_n = used_j; IdList[i][used_j] = o; } else return TT_FALSE; } IdBottom[i] = IdTop[i] = used_n; return TT_TRUE; } return TT_FALSE; } TT_INLINE void _DropId(ttopaque i, ttobj o) { ttopaque Id = o->id & TT_MAXID, j; /* paranoia: we might end up calling DropId() twice on the same object */ if (Id < IdTop[i] && IdList[i][Id] == o) { if (IS(ttobject, o) && !(((ttobject)o)->oflags & ttobject_oflags_const)) /* cannot write into read-only objects... */ o->id = TT_NOID; IdList[i][Id] = (ttobj)0; if (IdBottom[i] > Id) IdBottom[i] = Id; for (j = IdTop[i] - 1; j > IdBottom[i]; j--) if (IdList[i][j]) break; IdTop[i] = (j == IdBottom[i]) ? j : j + 1; if (IdSize[i] > TT_BIGBUFF && IdSize[i] > (IdTop[i] << 4)) IdListShrink(i); } } static void DropId(ttobj o) { if (o) _DropId(o->id >> TT_MAGIC_SHIFT, o); } static ttobject FindNative(ttany id) { ttopaque i, j; ttobject o; /* search only ttnative:s (?) */ #if 1 i = order_ttnative; #else for (i = order_ttobject; i < order_last; i++) #endif for (j = 0; j < IdTop[i]; j++) { if ((o = (ttobject)IdList[i][j]) && IS(ttobject, o) && o->native == id) return o; } return (ttobject)0; } /* * ttclass-related functions */ #include "class.h" /* * wrappers for public and exported methods */ #include "seterrno.h" #include "create.h" /* constructors */ tt_obj TTNew(tt_obj Class) { tt_obj ret; LOCK; ret = (tt_obj)OBJ2ID(New(ID2CLASS(Class), NULL)); UNLK; return ret; } /* destructors */ void TTDel(tt_obj o) { LOCK; Del(ID2(ttobject, o)); UNLK; } /* tteventmask management */ tt_obj TTGetInstalled_tteventmask(void) { tt_obj ret; LOCK; ret = (tt_obj)OBJ2ID(TTD.InstalledEM); UNLK; return ret; } tt_obj TTGetDefault_tteventmask(void) { tt_obj ret; LOCK; ret = (tt_obj)OBJ2ID(TTD.DefaultEM); UNLK; return ret; } void TTSetInstalled_tteventmask(tt_obj em) { tteventmask a0, a1; LOCK; a0 = ID2(tteventmask, em); a1 = TTD.InstalledEM; if (a0 != a1) { if (a1) TDEL(a1); TTD.InstalledEM = a0; FireEventLoop(); } UNLK; } void TTSetDefault_tteventmask(tt_obj em) { tteventmask a0, a1; LOCK; a0 = ID2(tteventmask, em); a1 = TTD.DefaultEM; if (a0 != a1) { if (a1) TDEL(a1); TTD.DefaultEM = a0; FireEventLoop(); } UNLK; } /* ttcallback management */ TT_INLINE void DelAllCallbacks_ttcomponent(ttcomponent o) { ttcallback l, next; if (o) { next = o->callbacks; while ((l = next)) { next = l->next; TDEL(l); } /* paranoia */ o->callbacks = NULL; } } /* ttlistener AVL management */ #define ttavl2ttlistener(avl) \ ((avl) ? (ttlistener)((ttbyte *)(avl)-TT_OFFSETOF(ttlistener, AVL)) : (ttlistener)0) #define ttlistener2ttavl(clk) ((clk) ? &(clk)->AVL : (ttavl)0) TT_INLINE ttuint AVLEventKey(ttevent ev) { return OBJ2ID(ev->component) ^ (ev->evtype << 10) ^ (ev->evcode << 20); } TT_INLINE int CompareEvents(TT_CONST ttevent e1, TT_CONST ttevent e2) { if (e1->component == e2->component) { if (e1->evtype == e2->evtype) { if (e1->evcode == e2->evcode) { /* common part matches. check details. */ if (e1->evtype == ttevent_evtype_key || e1->evtype == ttevent_evtype_mouse) return e1->evflags - e2->evflags; /* else no extra checks needed */ return 0; } return e1->evcode - e2->evcode; } return e1->evtype - e2->evtype; } return OBJ2ID(e1->component) - OBJ2ID(e2->component); } static int CompareListenerAVLs(ttavl_c a1, ttavl_c a2) { return CompareEvents(ttavl2ttlistener(a1)->event, ttavl2ttlistener(a2)->event); } static ttlistener FindListener4Event(ttlistener base, ttevent ev) { s_ttlistener evc; ttavl key; /* * no need to fully initialize evc here... * just evc.AVL and evc.ev are used * * if (!TNEW2(ttlistener, &evc)) * return (ttlistener)0; */ evc.AVL.AVLkey = AVLEventKey(ev); evc.event = ev; key = AVLFind(ttlistener2ttavl(&evc), ttlistener2ttavl(base), CompareListenerAVLs); /* * so no need to cleanup evc too * * TDEL(&evc); */ return key ? ttavl2ttlistener(key) : (ttlistener)0; } static void CallFunctionPlain(ttlistener_fn function, ttopaque args_n, ttany *args) { switch (args_n) { case 0: ((void (*)(void))function)(); break; case 1: ((void (*)(ttany))function)(args[0]); break; case 2: ((void (*)(ttany, ttany))function)(args[0], args[1]); break; case 3: ((void (*)(ttany, ttany, ttany))function)(args[0], args[1], args[2]); break; case 4: ((void (*)(ttany, ttany, ttany, ttany))function)(args[0], args[1], args[2], args[3]); case 5: ((void (*)(ttany, ttany, ttany, ttany, ttany))function)(args[0], args[1], args[2], args[3], args[4]); break; case 6: ((void (*)(ttany, ttany, ttany, ttany, ttany, ttany))function)(args[0], args[1], args[2], args[3], args[4], args[5]); break; case 7: ((void (*)(ttany, ttany, ttany, ttany, ttany, ttany, ttany))function)( args[0], args[1], args[2], args[3], args[4], args[5], args[6]); break; case 8: ((void (*)(ttany, ttany, ttany, ttany, ttany, ttany, ttany, ttany))function)( args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); break; case 9: ((void (*)(ttany, ttany, ttany, ttany, ttany, ttany, ttany, ttany, ttany))function)( args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]); break; case 10: ((void (*)(ttany, ttany, ttany, ttany, ttany, ttany, ttany, ttany, ttany, ttany))function)( args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]); break; default: /* argh. this is bad */ TTAssertAlways(args_n <= 10); break; } } static void CallListener(ttlistener c, tobj o_id, tobj ev_id) { static ttarg unused_return_value; ttany *args; ttopaque args_n; if (c->function && c->args) { args_n = c->args->array_n; args = c->args->array; /* if c->arg_component_n is valid, set corresponding arg to ttcomponent o */ if (c->arg_component_n < args_n) args[c->arg_component_n] = o_id; /* if c->arg_event_n is valid, set corresponding arg to ttevent ev */ if (c->arg_event_n < args_n) args[c->arg_event_n] = ev_id; if (c->lflags & ttlistener_lflags_ttmethod) (void)TTCallY_ttmethod((tt_obj)(ttopaque)c->function, &unused_return_value, args_n, args); else if (c->lflags & ttlistener_lflags_function_array) ((ttlistener_array_fn)c->function)(args_n, args); else CallFunctionPlain(c->function, args_n, args); } } static ttbyte IsBlockedEventBy(ttevent ev, tteventmask em) { ttuint truth_table = em->truth_table, evtype = ev->evtype, evcode = ev->evcode; tt_obj c = (tt_obj)OBJ2ID(ev->component); ttbyte e1true, e2true, ctrue; /* default value: do not block any evtype */ e1true = TT_FALSE; if (em->evtype_mask) e1true = TTContains_ttbitmask((tt_obj)em->evtype_mask->id, (ttany)evtype); /* default value: block all evcodes */ e2true = TT_FALSE; if (em->evcode_mask) e2true = TTContains_ttbitmask((tt_obj)em->evcode_mask->id, (ttany)evcode); /* default value: block all components */ ctrue = TT_TRUE; if (em->component_mask) ctrue = TTContains_ttbitmask((tt_obj)em->component_mask->id, (ttany)(ttopaque)c); if (e1true) truth_table >>= 1; if (e2true) truth_table >>= 2; if (ctrue) truth_table >>= 4; return (truth_table & 0x1); } static ttbyte IsBlockedEvent(ttevent ev) { ttlistener l; tteventmask em; if ((em = TTD.InstalledEM)) { if (IsBlockedEventBy(ev, em)) return TT_TRUE; } for (l = TTD.FirstL; l; l = l->inprogress_next) { if ((em = l->event_mask) || (em = TTD.DefaultEM)) { if (IsBlockedEventBy(ev, em)) return TT_TRUE; } } return TT_FALSE; } TT_INLINE void PrependInprogressListener(ttlistener o) { if ((o->inprogress_next = TTD.FirstL)) TTD.FirstL->inprogress_prev = o; else TTD.LastL = o; TTD.FirstL = o; o->inprogress_prev = NULL; } TT_INLINE void RemoveInprogressListener(ttlistener o) { if (o->inprogress_prev) o->inprogress_prev->inprogress_next = o->inprogress_next; else TTD.FirstL = o->inprogress_next; if (o->inprogress_next) o->inprogress_next->inprogress_prev = o->inprogress_prev; else TTD.LastL = o->inprogress_prev; o->inprogress_prev = o->inprogress_next = NULL; } TT_INLINE void AppendQueuedEvent(ttevent o) { if ((o->prev = TTD.LastE)) TTD.LastE->next = o; else TTD.FirstE = o; TTD.LastE = o; o->next = NULL; } TT_INLINE void RemoveQueuedEvent(ttevent o) { if (o->prev) o->prev->next = o->next; else TTD.FirstE = o->next; if (o->next) o->next->prev = o->prev; else TTD.LastE = o->prev; o->prev = o->next = NULL; } /* * this must come *after* * #include "wrap_m4.h" * as it uses a lot of stuff from it */ TT_INLINE ttevent FireOneEvent(TT_ARG_DIE ttevent ev) { /* * this is DANGEROUS code. we must protect c and from being deleted * inside the listener function (o and ev are already protected) */ ttlistener c = (ttlistener)0, cnext; ttcomponent o = (ttcomponent)0; tobj o_id, ev_id; ttevent evnext; if (ev && (o = ev->component) && !(ev->evflags & ttevent_evflags_consumed)) { if (o->listeners && (c = FindListener4Event(o->listeners, ev))) { o_id = OBJ2ID(o); ev_id = OBJ2ID(ev); /* set flag saying ev is being fired: this ensures ev is fired only once! */ ev->evflags |= ttevent_evflags_firing; for (; c && !(ev->evflags & ttevent_evflags_consumed); c = cnext) { /* protect c from being deleted */ c->refcount++; /* push the mask of blocked events onto the stack */ PrependInprogressListener(c); /* actually call the listener function */ CallListener(c, o_id, ev_id); /* get next listener NOW, as CallListener() above * may have added/removed listeners */ cnext = c->next; /* pop the mask of blocked signals from the stack */ RemoveInprogressListener(c); /* delete c if needed */ if (!--c->refcount) TDEL(c); } } } /* unprotect (o) and delete if needed (GENERATES EVENTS!!!) */ if (o && !--o->refcount) TDEL(o); /* get next event and dequeue ev */ evnext = ev->next; RemoveQueuedEvent(ev); /* delete ev */ ev->refcount--; TDEL(ev); return evnext; } static void FireEventLoop(void) { ttevent ev, evnext; for (ev = TTD.FirstE; ev; ev = evnext) { if ((ev->evflags & ttevent_evflags_firing) || IsBlockedEvent(ev)) /* * this event is currently being fired or blocked. * skip it (but keep it queued) */ evnext = ev->next; else /* fire ev */ evnext = FireOneEvent(ev); } } /* this is the main entry point to fire an event */ static void FireEvent(TT_ARG_DIE ttevent ev, ttcomponent o) { if (!ev) return; if (!o) { TDEL(ev); return; } /* QueueEvent() */ /* protect o and ev from being deleted */ ev->refcount++; o->refcount++; ev->component = o; AppendQueuedEvent(ev); FireEventLoop(); } static void FireSimpleEvent(ttcomponent o, ttuint evtype) { ttevent ev; if ((ev = Create_ttevent(evtype, 0, 0))) FireEvent(ev, o); /* * FireEvent() also deletes ev. */ } static void FireChangeEvent(ttcomponent o, ttuint which, ttany value, ttany old_value, ttopaque len) { tteventbig ev; if ((ev = Create4s4_tteventbig(ttevent_evtype_change, which | (order_ttfield << TT_MAGIC_SHIFT), 0, value, old_value, len, NULL))) FireEvent((ttevent)ev, o); /* * FireEvent() also deletes ev. */ } static TT_CONST struct s_tavl empty_AVL; static void Sync_ttlistener(ttcomponent o, ttlistener c, ttlistener c_old) { ttavl node, nc = ttlistener2ttavl(c), nc_old = ttlistener2ttavl(c_old); *nc = *nc_old; if ((node = nc->AVLParent)) { if (node->AVLLeft == nc_old) node->AVLLeft = nc; else if (TTAssert(node->AVLRight == nc_old)) node->AVLRight = nc; } else if (TTAssert(o->listeners == c_old)) o->listeners = c; if ((node = nc->AVLLeft)) node->AVLParent = nc; if ((node = nc->AVLRight)) node->AVLParent = nc; *nc_old = empty_AVL; } static void AddTo_ttlistener(ttlistener c, ttcomponent o) { ttavl node; ttlistener base; if (c && TTAssert(IS(ttlistener, c)) && o && TTAssert(IS(ttcomponent, o)) && !c->component && c->event && !c->prev && !c->next && !TTCmpMem(&c->AVL, &empty_AVL, sizeof(s_ttavl))) { c->AVL.AVLkey = AVLEventKey(c->event); if ((base = FindListener4Event(o->listeners, c->event))) { if (base && !(c->lflags & ttlistener_lflags_before)) { /* append: linear search through existing list (ugly!) */ while (base->next) base = base->next; c->prev = base; base->next = c; } else { /* prepend */ Sync_ttlistener(o, c, base); c->next = base; base->prev = c; } } else { node = ttlistener2ttavl(o->listeners); AVLInsert(ttlistener2ttavl(c), node, CompareListenerAVLs, &node); o->listeners = ttavl2ttlistener(node); } return /* c */; } else SetErrno(TT_EBAD_ARG, c && c->event ? 2 : 1); return /* (ttlistener)0 */; } static void Remove_ttlistener(ttlistener c) { ttcomponent o; ttavl node; ttlistener base; if (c && TTAssert(IS(ttlistener, c)) && c->event && (o = c->component)) { /* we have an AVL tree, where each node is the head of a linked list */ if ((base = FindListener4Event(o->listeners, c->event))) { if (c->prev) c->prev->next = c->next; else if (!TTAssert(c == base)) return; if (c->next) c->next->prev = c->prev; if (!c->prev) { if ((base = c->next)) { /* we removed the head of the linked list, sync the AVL tree */ Sync_ttlistener(o, base, c); base->prev = c->next = (ttlistener)0; } else { /* we removed the last node of the linked list... rebalance the AVL tree */ node = ttlistener2ttavl(o->listeners); AVLRemove(ttlistener2ttavl(c), CompareListenerAVLs, &node); o->listeners = ttavl2ttlistener(node); } } } } } /* delete using a finite stack */ TT_INLINE void DelAll_ttlistener(ttlistener base) { ttlistener next; ttavl node; while (base) { if ((node = base->AVL.AVLLeft)) base = ttavl2ttlistener(node); else if ((node = base->AVL.AVLRight)) base = ttavl2ttlistener(node); else { /* destroy the tree while we back up */ if ((node = base->AVL.AVLParent)) { if (node->AVLLeft == &base->AVL) node->AVLLeft = (ttavl)0; else if (node->AVLRight == &base->AVL) node->AVLRight = (ttavl)0; } while (base) { next = base->next; /* avoid calling AVL tree rebalancing in TDEL(base) */ base->AVL = empty_AVL; base->prev = base->next = (ttlistener)0; base->component = (ttcomponent)0; TDEL(base); base = next; } base = ttavl2ttlistener(node); } } } TT_INLINE void DelAllListeners_ttcomponent(ttcomponent o) { if (o) { if (o->listeners) DelAll_ttlistener(o->listeners); o->listeners = (ttlistener)0; } } TT_INLINE int CompareTF(ttany t1, ttany f1, ttany t2, ttany f2) { return t1 < t2 ? -1 : (t1 > t2 ? 1 : (f1 < f2 ? -1 : f1 > f2 ? 1 : 0)); } static int CompareTimers(TT_CONST tttimer t1, TT_CONST tttimer t2) { return CompareTF(t1->delay_t, t1->delay_f, t2->delay_t, t2->delay_f); } static void GetNow(void) { struct timeval now; gettimeofday(&now, NULL); TTD.TNow = (ttany)now.tv_sec; TTD.FNow = (ttany)now.tv_usec MicroSECs; } static void Activate_tttimer(tttimer o, ttbyte active) { tttimer t = TTD.FirstT; if (active && CompareTF(o->delay_t, o->delay_f, TTD.TNow, TTD.FNow) > 0) { /* insert */ if (o->timer_prev || TTD.FirstT == o || o->timer_next || TTD.LastT == o) return; while (t && CompareTimers(t, o) < 0) t = t->timer_next; if (t) { /* insert in middle */ if ((o->timer_prev = t->timer_prev)) t->timer_prev->timer_next = o; else TTD.FirstT = o; if ((o->timer_next = t->timer_next)) t->timer_next->timer_prev = o; else TTD.LastT = o; } else { /* append at end */ if ((o->timer_prev = TTD.LastT)) TTD.LastT->timer_next = o; else TTD.FirstT = o; TTD.LastT = o; } } else { /* remove */ if (!(o->timer_prev || TTD.FirstT == o || o->timer_next || TTD.LastT == o)) return; if (o->timer_prev) o->timer_prev->timer_next = o->timer_next; else TTD.FirstT = o->timer_next; if (o->timer_next) o->timer_next->timer_prev = o->timer_prev; else TTD.LastT = o->timer_prev; o->timer_prev = o->timer_next = NULL; } } TT_INLINE void DelAllTimers_ttcomponent(ttcomponent o) { if (o) { while (o->timers) TDEL(o->timers); } } /* ttdata AVL management */ #define ttavl2ttdata(avl) ((avl) ? (ttdata)((ttbyte *)(avl)-TT_OFFSETOF(ttdata, AVL)) : (ttdata)0) #define ttdata2ttavl(data) ((data) ? &(data)->AVL : (ttavl)0) /* compute the hash value of a string */ #define LOG_MAX_HASH (8 * sizeof(ttuint)) static ttuint AVLStringKey(TT_CONST ttbyte *key, ttopaque len) { ttuint h = len << (LOG_MAX_HASH - 8), i = LOG_MAX_HASH / 2; while (len) { h += ((*key++) ^ i) << i; if ((i += 4) >= LOG_MAX_HASH) i = 0; len--; } return h; } TT_INLINE int CompareDatas(TT_CONST ttdata d1, TT_CONST ttdata d2) { if (d1->AVL.AVLkey == d2->AVL.AVLkey) { if (d1->key_len == d2->key_len) { return TTCmpMem(d1->key, d2->key, d1->key_len); } return d1->key_len - d2->key_len; } return d1->AVL.AVLkey - d2->AVL.AVLkey; } static int CompareDataAVLs(ttavl_c a1, ttavl_c a2) { return CompareDatas(ttavl2ttdata(a1), ttavl2ttdata(a2)); } TT_INLINE ttdata Find_ttdata(ttdata key, TT_CONST ttdata base) { ttavl avl = AVLFind(ttdata2ttavl(key), ttdata2ttavl(base), CompareDataAVLs); return ttavl2ttdata(avl); } static ttdata FindByKey_ttdata(ttdata base, TT_CONST ttbyte *key, ttopaque len) { s_ttdata d; /* * no need to fully initialize d here... * just d.AVL, d.key and d.key_len are used * * if (!TNEW2(ttdata, &d)) * return (ttdata)0; */ d.AVL.AVLkey = AVLStringKey(key, len); d.key = (ttbyte *)key; d.key_len = len; return Find_ttdata(&d, base); /* * so no need to cleanup d too * * TDEL(&d); */ } static void AddTo_ttdata(ttdata d, ttcomponent o, ttbyte quickndirty) { ttavl root; ttdata base; if (d && TTAssert(IS(ttdata, d)) && o && TTAssert(IS(ttcomponent, o)) && !d->component && !TTCmpMem(&d->AVL, &empty_AVL, sizeof(s_ttavl))) { d->AVL.AVLkey = AVLStringKey(d->key, d->key_len); if (!quickndirty && (base = Find_ttdata(o->datas, d))) { /* already exists, replace: */ base->data = d->data; TDEL(d); } else { d->component = o; root = ttdata2ttavl(o->datas); AVLInsert(ttdata2ttavl(d), root, CompareDataAVLs, &root); o->datas = ttavl2ttdata(root); } return /* d */; } else SetErrno(TT_EBAD_ARG, d ? 2 : 1); return /* (ttdata)0 */; } static void Remove_ttdata(ttdata d) { ttcomponent o; ttavl root; if (d && TTAssert(IS(ttdata, d)) && (o = d->component) && TTCmpMem(&d->AVL, &empty_AVL, sizeof(s_ttavl))) { d->component = NULL; /* rebalance the AVL tree */ root = ttdata2ttavl(o->datas); AVLRemove(ttdata2ttavl(d), CompareDataAVLs, &root); o->datas = ttavl2ttdata(root); } } static ttbyte SetData_ttdata(ttdata o, ttany data) { ttcomponent c; if (TTAssert(o && IS(ttdata, o)) && !(o->oflags & ttobject_oflags_const)) { if (data != o->data) { if ((c = o->component) && o->key_len == 9 && !TTCmpMem(o->key, "user_data", 9)) c->user_data = data; FIRE_EVENT(o->data = data, o, ttdata_data, data, o->data); } return TT_TRUE; } return TT_FALSE; } static ttdata protected_Create_ttdata(ttcomponent c, TT_ARG_READ ttbyte *key, ttopaque key_len, ttany data) { ttdata d; ttbyte *dkey; if (c && TTAssert(c && IS(ttcomponent, c)) && key && (dkey = TTCloneStrL(key, key_len + 1))) { if ((d = TNEW_NOBUILD(ttdata))) { d->key = dkey; d->key_len = key_len; /* no need to check again if key already exists */ AddTo_ttdata(d, c, TT_TRUE); /* not o->data = data; we want to keep component->user_data in sync: */ SetData_ttdata(d, data); return (ttdata)Build((ttobject)d); } TTFreeMem(dkey); } return NULL; } /* delete using a finite stack */ TT_INLINE void DelAll_ttdata(ttdata base) { ttavl node; while (base) { if ((node = base->AVL.AVLLeft)) base = ttavl2ttdata(node); else if ((node = base->AVL.AVLRight)) base = ttavl2ttdata(node); else { /* destroy the tree while we back up */ if ((node = base->AVL.AVLParent)) { if (node->AVLLeft == &base->AVL) node->AVLLeft = (ttavl)0; else if (node->AVLRight == &base->AVL) node->AVLRight = (ttavl)0; } TDEL(base); base = ttavl2ttdata(node); } } } TT_INLINE void DelAllDatas_ttcomponent(ttcomponent o) { if (o) { if (o->datas) DelAll_ttdata(o->datas); o->datas = (ttdata)0; } } static void DelAllExtras_ttcomponent(ttcomponent o) { DelAllCallbacks_ttcomponent(o); DelAllListeners_ttcomponent(o); DelAllTimers_ttcomponent(o); DelAllDatas_ttcomponent(o); } static void HardDel(ttobj o) { if (IS(ttobject, o) && !(((ttobject)o)->oflags & ttobject_oflags_const)) { /* ignore refcount... */ ((ttobject)o)->refcount = 0; /* * this is "the right thing" but may * generate *LOTS* of delete events :( */ TDEL(o); } else { DropId(o); } } static void DelAll_ttobj(ttbyte quick) { ttopaque i, n, qn, quick_list[] = {order_ttcallback, order_ttlistener, order_tttimer}; ttobj o; if (quick) { /* first, delete all callbacks, listeners and timers */ for (qn = 2; qn != (ttopaque)-1; qn--) { n = quick_list[qn]; for (;;) { /* IdTop[n] decreases with us. */ if ((i = IdTop[n] - 1) != (ttopaque)-1) { if (TTAssertAlways(o = IdList[n][i])) HardDel(o); } else break; } } } for (n = order_last - 1; n != (ttopaque)-1; n--) { for (;;) { /* IdTop[n] decreases with us. */ if ((i = IdTop[n] - 1) != (ttopaque)-1) { if (TTAssertAlways(o = IdList[n][i])) HardDel(o); if (n == 0 && i == 0) return; } else break; } } } /* ttvisible Repaint helper */ static void Expose_ttvisible(ttvisible o, ttshort x, ttshort y, ttshort w, ttshort h) { tteventbig ev; if (o && TTAssert(IS(ttvisible, o))) { ev = Create4_tteventbig(ttevent_evtype_expose, 0, 0, x, y, w, h); if (o->repaint) { o->refcount++; /* protect o from being deleted */ o->repaint((tt_obj)OBJ2ID(o), x, y, w, h); if (!--o->refcount) TDEL(o); } else o->Class->BuiltinRepaint(o, x, y, w, h); if (ev) /* also deletes ev */ FireEvent((ttevent)ev, (ttcomponent)o); } } /* MainLoop stuff */ void TTExitMainLoop(void) { /* no LOCK here */ TTD.ExitMainLoopFlag = ttrue; } static void NormalizeTimeval(struct timeval *t) { while (t->tv_usec < 0) { t->tv_usec += 1000000; t->tv_sec--; } while (t->tv_usec >= 1000000) { t->tv_usec -= 1000000; t->tv_sec++; } if (t->tv_sec < 0 || (t->tv_sec == 0 && t->tv_usec < 0)) t->tv_sec = t->tv_usec = 0; } static void ComputeDelay(struct timeval *t) { if (TTAssert(TTD.FirstT)) { t->tv_sec = (long)TTD.FirstT->delay_t - (long)TTD.TNow; /* * doing * ((long)TTD.FirstT->f - (long)TTD.FNow) / MicroSEC * overflows since ttany is usually same size and signedness as 'unsigned long' */ t->tv_usec = (long)TTD.FirstT->delay_f / MicroSEC - (long)TTD.FNow / MicroSEC; NormalizeTimeval(t); #ifdef DEBUG_TT_TIMER printf("now {%ld, %ld}\n", (long)TTD.TNow, (long)TTD.FNow); printf("timer {%ld, %ld}\n", (long)TTD.FirstT->delay_t, (long)TTD.FirstT->delay_f); printf("compute timer 0x%X\t{%ld, %ld}\n", (unsigned)TTD.FirstT->id, (long)t->tv_sec, (long)t->tv_usec); #endif } } static ttbyte MainLoop(ttbyte wait) { fd_set fset; struct timeval t; tttimer c; int fd = -1, sel_ret; s_tt_errno *E; ttbyte ret = TT_TRUE, eff_wait; if (TTD.FirstT) eff_wait = TT_FALSE; else eff_wait = wait; fd = THW.ConnectionFd(); FD_ZERO(&fset); for (;;) { #ifdef DEBUG_TT_TIMER printf("THW.MainLoopOnce(eff_wait = %d", (int)eff_wait); fflush(stdout); #endif ret = THW.MainLoopOnce(eff_wait); #ifdef DEBUG_TT_TIMER printf(")\n"); #endif if (!ret || TTD.ExitMainLoopFlag) break; if (!TTD.FirstT) { eff_wait = wait; } else { eff_wait = TT_FALSE; THW.Flush(); if (fd >= 0) FD_CLR(fd, &fset); fd = THW.ConnectionFd(); if (fd >= 0) FD_SET(fd, &fset); GetNow(); ComputeDelay(&t); #ifdef DEBUG_TT_TIMER printf("select(%d, [%d], NULL, NULL, {%ld, %ld}", fd + 1, fd, (long)t.tv_sec, (long)t.tv_usec); fflush(stdout); #endif UNLK; sel_ret = select(fd + 1, &fset, NULL, NULL, &t); LOCK; #ifdef DEBUG_TT_TIMER printf(") = %d\n", sel_ret); #endif while ((c = TTD.FirstT)) { GetNow(); ComputeDelay(&t); if (t.tv_sec == 0 && t.tv_usec < 1000) { #ifdef DEBUG_TT_TIMER printf("run timer 0x%X\t{%ld, %ld}\n", (unsigned)c->id, (long)t.tv_sec, (long)t.tv_usec); #endif c->refcount++; /* protect c from being deleted */ /* * timers are one-shot. to obtain periodic timers, * they should reactivate themselves with c->Class->SetDelay() */ Activate_tttimer(c, TT_FALSE); CallListener((ttlistener)c, c->component ? c->component->id : TT_NOID, c->id); if (!--c->refcount) TDEL(c); } else { #ifdef DEBUG_TT_TIMER printf("wait timer 0x%X\t{%ld, %ld}\n", (unsigned)c->id, (long)t.tv_sec, (long)t.tv_usec); #endif break; } } } } if (!ret) { LOCK; E = GetErrnoLocation(); E->E = THW.GetErrno() + TT_MAX_ERROR; E->S = THW.GetErrnoDetail(); UNLK; } TTD.ExitMainLoopFlag = TT_FALSE; return ret; } ttbyte TTMainLoop(void) { return MainLoop(TT_TRUE); } ttbyte TTMainLoopOnce(ttbyte wait) { TTD.ExitMainLoopFlag = TT_TRUE; return MainLoop(wait); } /* TTD global */ s_tt_d TTD = { #ifdef CONF_SOCKET_PTHREADS TH_R_MUTEX_INITIALIZER, #endif (ttuint)0, (tttheme)0, (tttheme)0, (ttmenubar)0, (ttapplication)0, (tteventmask)0, (tteventmask)0, (ttevent)0, (ttevent)0, (ttlistener)0, (ttlistener)0, (tttimer)0, (tttimer)0, (ttany)0, (ttany)0, (byte *)0, (byte *)0, (void *)0, (ttbyte)0, (ttbyte)0, (ttbyte)0, (ttbyte)0, { 0, }, { 0, }, NULL, { #include "create_init_m4.h" }, { IdList, IdSize, IdTop, IdBottom, #ifdef CONF_SOCKET_PTHREADS GetErrnoLocation, #endif AssignId, DropId, Id2Obj, FixedAssignId, FixedAssignIdArray, FindNative, GetNow, FireEvent, FireSimpleEvent, FireChangeEvent, AddTo_ttlistener, Remove_ttlistener, Activate_tttimer, AddTo_ttdata, Remove_ttdata, SetData_ttdata, FindByKey_ttdata, protected_Create_ttdata, DelAllExtras_ttcomponent, Expose_ttvisible, RealClose, }, /* Class_hw_null */ NULL, /* Classes */ { /* order_ttobj == 0 */ #define el(t) (ttclass) TClass(t), TT_LIST(el) #undef el }, /* Class */ /* { { 0, }, }, */ /* Class_default */ /* { { 0, }, }, */ }; /* TTClass_* globals */ #define el(t) tt_obj TT_CAT(TTClass_, t) = (tt_obj)id_ttclass_(t); TT_LIST(el) TT_TYPELIST(el) #undef el ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/limits_m4.h�������������������������������������������������������������������0000664�0000000�0000000�00000002431�13775351206�0016533�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/limits.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * limits_m4.h -- defines for various libTT hardcoded values and limits */ /* this is a libTT internal value. Do not use it in clients! */ #define TT_MAX_ERROR 256 #define TT_MAXID 0x00FFFFFF #define TT_MAGIC_SHIFT 24 /* keep at least 8 bits available for order_* magic types */ #define TT_MAGIC_MASK TT_MAXID #define TT_SMALLBUFF TW_SMALLBUFF #define TT_BIGBUFF TW_BIGBUFF #define TTSB TT_STR(TT_SMALLBUFF) #define TTBB TT_STR(TT_BIGBUFF) #define TT_NOID ((opaque)0) #define TT_BADID TT_MAX_ttopaque #define TT_NOFD ((int)-1) #define TT_FALSE FALSE #define TT_TRUE TRUE #define TT_MIN2(a,b) ((a)<(b) ? (a) : (b)) #define TT_MAX2(a,b) ((a)>(b) ? (a) : (b)) /* max number of arguments a libTT function can have */ #define TT_MAX_ARG_N 11 ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/���������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015001�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/create_decl.m4h������������������������������������������������������������0000664�0000000�0000000�00000002011�13775351206�0017637�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/create_decl.m4' : m4 macros to autogenerate create_decl_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/create_decl.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * create_decl_m4.h -- prototype for libTT internal Create* function pointers * */ divert(-1) include(`m4/TTclasses.m4') divert divert(-1) include(`m4/TTdecay.m4') dnl needed for addspace_ifnotempty() divert define(`extends') define(`final_var', `final($@)') define(`final',`ifelse(substr(`$1', 0, 6), `Create', ` c_arg_type($4,$5) (*$1_$2)(ifelse($3, 0, void, `c_args_decl(NSHIFT(6, $@))'));')') define(`el',`TTdef_ttclass_$1($1)') TTlist() undefine(`el') define(`final') define(`extends') �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/create_defs.m4h������������������������������������������������������������0000664�0000000�0000000�00000002220�13775351206�0017653�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/create_defs.m4' : m4 macros to autogenerate create_defs_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/create_defs.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * create_defs_m4.h -- #defines for libTT internal Create* function pointers * */ include(`m4/TTclasses.m4') define(`c_arg_call', `$3') define(`c_args_call', `ifelse($3, `', `', $6, `', `c_arg_call($@)', `c_arg_call($@), c_args_call(NSHIFT(3, $@))')') define(`extends') define(`final_var', `final($@)') define(`final',`ifelse(substr(`$1', 0, 6), `Create', ` `#'define $1_$2 TTD.CREATE.$1_$2')') define(`protected',`ifelse(substr(`$1', 0, 6), `Create', ` `#'define $1_$2 TClass_$2->$1')') define(`el',`TTdef_ttclass_$1($1)') TTlist() undefine(`el') define(`protected') define(`final') define(`extends') ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/create_init.m4h������������������������������������������������������������0000664�0000000�0000000�00000001543�13775351206�0017704�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/create_init.m4' : m4 macros to autogenerate create_init_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/create_init.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * create_init_m4.h -- initialization of libTT internal Create* function pointers * */ include(`m4/TTclasses.m4') define(`extends') define(`final_var', `final($@)') define(`final',`ifelse(substr(`$1', 0, 6), `Create', ` $1_$2,')') define(`el',`TTdef_ttclass_$1($1)') TTlist() undefine(`el') define(`final') define(`extends') �������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/decls.m4h������������������������������������������������������������������0000664�0000000�0000000�00000011201�13775351206�0016500�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/decls.m4' : m4 macros to autogenerate decls_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/decls.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * decls_m4.h -- INTERNAL (!!) header for libTT types declarations * * Note: you cannot include both this file and <TT/decls_m4.h>, as they conflict! */ #ifndef TT_DECLSM4_H #define TT_DECLSM4_H /* clang-format off */ include(`m4/TTclasses.m4') /* many useful macros */ #define TT_OFFSETOF(type,field) ((size_t)&((type)0)->field) dnl /* #defines for objects hierarchy */ dnl define(`extends',` dnl `#'define super_$2 $1') dnl define(`field') dnl define(`el',`TTdef_$1($1)') dnl TTlist() dnl undefine(`el') dnl define(`field') dnl define(`extends') /* forward declarations for objects structures */ define(`el',` typedef struct s_$1 * $1;') TTlist() undefine(`el') /* forward declarations for methods structures */ define(`el',` typedef struct s_ttclass_$1 * ttclass_$1;') TTlist() undefine(`el') define(`addspace_ifnotempty', `ifelse($1, `', `', `$1 ')') define(`c_arg_decl', `addspace_ifnotempty($1)`'$2 $3') define(`c_args_decl', `ifelse($3, `', `', $6, `', `c_arg_decl($@)', `c_arg_decl($@), c_args_decl(NSHIFT(3,$@))')') /* declarations for objects structures */ define(`extends',`TTdef_$1($2)`'dnl /* `extends' $1 */ ') define(`field',`c_arg_decl($@); ') define(`el',` typedef struct s_$1 { `'TTdef_$1($1)} s_$1; ') TTlist() undefine(`el') define(`field') define(`extends') /* declarations for methods structures */ define(`extends',`TTdef_ttclass_$1($2) /* `extends' ttclass_$1 */ ') define(`protected',`c_arg_decl($4,$5,` $6')`'ifelse($3, -1, `', ` (*$1) (ifelse($3, 0, void, `c_args_decl(NSHIFT(6,$@))'))'); ') define(`public',`protected($@)') define(`public_set',`protected($@)') define(`el',` typedef struct s_ttclass_$1 { `'TTdef_ttclass_$1($1) } s_ttclass_$1; ') TTlist() undefine(`el') define(`public') define(`public_set') define(`protected') define(`extends') typedef struct s_tthw *tthw; typedef struct s_tthw { byte (*Sync)(void); byte (*Flush)(void); byte (*TimidFlush)(void); byte (*MainLoopOnce)(byte); void (*DeleteCallback)(ttcallback); void (*Close)(void); int (*ConnectionFd)(void); ttuint (*GetErrno)(void); ttuint (*GetErrnoDetail)(void); TT_CONST byte *(*StrError)(ttuint E); TT_CONST byte *(*StrErrorDetail)(ttuint E, ttuint S); } s_tthw; define(`el',` s_ttclass_$1 class_$1;') typedef struct s_ttclasses *ttclasses; typedef struct s_ttclasses { TTlist() s_tthw HW; } s_ttclasses; undefine(`el') define(`el',` extern tt_obj TTClass_$1;') /* client-visible global methods structures */ TTlist() /* client-visible global types */ TTtypelist() #define TTClass_ttsbyte TTClass_ttbyte #define TTClass_ttushort TTClass_ttshort #define TTClass_ttuint TTClass_ttint undefine(`el') /* #defines for global methods structures */ #define TClasses (TTD.Classes) #define THW (TTD.Class.HW) define(`el',` `#'define TClass_$1 (&TTD.Class.class_$1)') TTlist() undefine(`el') #define TClass(type) TT_CAT(TClass_,type) define(`el',` `#'define TClass_default_$1 (&TTD.Class_default.class_$1)') TTlist() undefine(`el') #define TClass_default(type) TT_CAT(TClass_default_,type) divert(-1) include(`m4/TTfield.m4') include(`m4/TTdecay.m4') define(`extends') define(`public', ` c_arg_decl_decay($4,$5) TT$1_$2`'(ifelse($3, 0, void, `c_args_decl_decay(NSHIFT(6, $@))')); ') define(`public_set',`public($@)') define(`final',`public($@)') define(`final_var',` c_arg_decl_decay($4,$5) TT$1_$2`'(c_args_decl_decay(NSHIFT(6, $@))); ') divert /* prototypes for `public', `public_set', `final' and `final_var' methods */ define(`el',` /* $1 methods */ `'TTdef_ttclass_$1($1) ') TTlist() undefine(`el') define(`final') define(`public_set') define(`public') define(`extends') /* prototypes for TTGet*_* and TTSet*_* methods */ define(`getset_method', ` c_arg_decl_decay(_R_ifaddress($5,$6)`'$5,$6) TT`'Toupper2($1,$2)_`'this`'(c_args_decl_decay(NSHIFT(7,$@)));') define(`el', ` /* prototypes for TTGet*_$1 and TTSet*_$1 methods */dnl define(`this', `$1')`'TTdef_$1($1)') define(`extends') define(`field', `getset_field($@)') TTlist() define(`extends') define(`field') undefine(`el') #endif /* TT_DECLSM4_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/field.m4h������������������������������������������������������������������0000664�0000000�0000000�00000004535�13775351206�0016505�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/field.m4' : m4 macros to autogenerate field_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/field.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * field_m4.h -- implementation of TT*_ttfield functions, * reflective ttfield for all existing objects and * TT*Field_ttobj handy functions */ include(`m4/TTclasses.m4') `#'define A TClass_ttfield `#'define B(f) ((order_ttfield<<TT_MAGIC_SHIFT)|(f)) divert(-1) include(`m4/TTfield.m4') include(`m4/TTdecay.m4') include(`m4/TTattribute.m4') define(`ttobj_field_Class', `A`,'') define(`ttobj_field_id', `B($1)`,'') define(`ttobj_fields', `pushdef(`field', `ifdef(`ttobj_field_'$'`3, ttobj_field_$'`3($1), `('$'`2`)0')')`'dnl `'TTdef_ttobj(ttobj)`'popdef(`field')') divert `#'define E(f) ttobj_fields(f) `#'define F(f) TT_STR(f), `#'define G(t,a) id_ttclass_(t)|(a), divert(-1) define(`field') define(`type_regularize', `ifelse(`$1', `', `void', `$1', `tt_class', `ttclass', `$1', `tt_obj', `ttobj', `type_function_decay(trim_star_n_space($1))')')`'dnl define(`getset_method', `def_field($5,$6,$2)') define(`def_field', ` { E(this`'_$3) len(this`'_$3), F(this`'_$3) G(type_regularize($2), encode_attribute($1)) },dnl `'ifelse(`$1', `', `', ` /*$1*/ `#'if e_FFP <= this`'_$3 - this`'_field_first `#' error internal error: this`'_$3 - this`'_field_first overflows e_FFP ! `#'endif')') define(`el', ` /* $1 fields */define(`this', `$1')`'dnl def_field(,void,field_first)`'dnl TTdef_$1($1)`'dnl def_field(,void,field_last)`'dnl ') define(`extends') define(`field', `get_field($@)') divert `#'if !defined(e_FFP) `#' error internal error: undefined e_FFP ! `#'endif /* array of existing fields */ static TT_CONST struct s_ttfield field_array[] = { define(`TT_ARG_READ') TTlist() undefine(`TT_ARG_READ') }; #undef A #undef B #undef C #undef D #undef E #undef F #define field_array_n (sizeof(field_array)/sizeof(field_array[0])) define(`extends') define(`field') undefine(`el') �������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/getset.m4h�����������������������������������������������������������������0000664�0000000�0000000�00000012621�13775351206�0016710�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/getset.m4' : m4 macros to autogenerate getset_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/getset.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * getset_m4.h -- implementation of TTGet*_* methods * */ include(`m4/TTclasses.m4') divert(-1) include(`m4/TTfield.m4') include(`m4/TTdecay.m4') divert /* TTGet*_* methods */ define(`body_fn_get', `this a0; if ((a0 = ID2(this, o))) return tt_obj_obj2id_ifnotvoid_ifdecay($6, a0->$2); return c_arg_ret_decay($1)0; ') define(`getset_method', ` c_arg_decl_decay($5,$6,)`'TT`'Toupper2($1,$2)_`'this`'(c_args_decl_decay(NSHIFT(7, $@))) { body_fn_$1($@)`'dnl }') define(`el', ` /* TTGet*_$1 methods */ define(`this', `$1')`'TTdef_$1($1)') define(`extends') define(`field', `get_field($@)') TTlist() define(`extends') define(`field') undefine(`el') divert(-1) dnl define(`type_ttclass', `ifelse(regexp(`$1', `_fn$'), -1, TTClass_$1, TTClass_ttfunction_fn)') define(`getset_super_mtd', `ifdef(`mtd_$1_$2', `$2', `getset_super_mtd($1, m4_super_$2)')') dnl define(`reverse', `ifelse(`$1', `', `', `regexp(`$1', `\([^ ]+\)\(\( +[^ ]+\)*\)', `reverse(\2) \1')')') dnl define(`reverseTTlist', reverse(TTlist())) divert /* back-end functions for TTGetField_ttobj() */ define(`el', ` `'define(`this', $1)`'dnl `'define(`extends')`'dnl `'define(`this_count', 0)`'dnl `'define(`field', `ifelse(index($'`3, r), -1, `', `define(`this_count', inc(this_count))')')`'dnl `'TTdef_$1($1,$1)`'dnl `'ifelse(ifelse(this_count, 0, ifelse($1, ttobj, y, `'), y), `', `', ` `'define(`mtd_GetField_$1')`'dnl 'static ttbyte getset_GetField_$1(TT_ARG_READ $1 o, ttopaque which, ttany *value) { if (which && which < this()_field_last && o && TTAssert(IS($1,o))) { if (which >= this()_field_first) { switch (which) { `'define(`getset_method', `ifelse($'`1, get, ` case this()_'$'`2`: *value = (ttany)opaque_ifaddress('$'`5`,'$'`6`)obj2id_ifnotvoid_ifdecay('$'`6`, o->'$'`2`); break;`'dnl ', `')')`'dnl `'define(`field', `get_field($'`@)')`'dnl `'TTdef_$1($1,$1) default: return TT_FALSE; } return TT_TRUE; } ifelse($1, ttobj, `', `else return getset_GetField_`'getset_super_mtd(GetField,m4_super_$1)((TT_ARG_READ getset_super_mtd(GetField,m4_super_$1))o, which, value);') } return TT_FALSE; })`'dnl `'define(`field')`'dnl `'define(`final')`'dnl `'define(`extends')`'dnl `'undefine(`this')`'dnl `'undefine(`this_count')`'dnl ') TTlist() undefine(`el') typedef ttbyte (*get_fn)(TT_ARG_READ ttobj, ttuint, ttany *); static ttbyte getset_GetField(TT_ARG_READ ttobj o, tt_obj which, ttany *value) { static get_fn fn [] = { (get_fn)0, define(`el', ` (get_fn)getset_GetField_`'getset_super_mtd(GetField,$1),') TTlist() undefine(`el') }; ttuint i; ttany dummy; if (!value) value = &dummy; if (o && (i = o->id >> TT_MAGIC_SHIFT) && i < sizeof(fn)/sizeof(fn[0]) && ID2(ttfield,which)) return fn[i](o, (ttuint)((ttopaque)which & TT_MAGIC_MASK), value); return TT_FALSE; } /* back-end functions for TTSetField_ttobj() */ define(`el', ` `'define(`this', $1)`'dnl `'define(`extends')`'dnl `'define(`this_count', 0)`'dnl `'define(`field', `ifelse(index($'`3, w), -1, `', `define(`this_count', inc(this_count))')')`'dnl `'TTdef_$1($1,$1)`'dnl `'ifelse(ifelse(this_count, 0, ifelse($1, ttobj, y, `'), y), `', `', ` `'define(`mtd_SetField_$1')`'dnl 'static ttbyte getset_SetField_$1($1 o, ttopaque which, ttany value) { if (which && which < this()_field_last && o && TTAssert(IS($1,o))) { if (which >= this()_field_first) switch (which) { `'define(`getset_method', `ifelse($'`1, set, ` case this()_'$'`2`: `'ifelse('$'`11`, `', `', ` `#'error internal error: unsupported attributes' '$'`11` in TTSet`'Toupper('$'`2`)_`'this`'())`'dnl return TTSet`'Toupper('$'`2`)_`'this`'((tt_obj)o->id, c_arg_val_decay('$'`11`, '$'`12`)value);', `')')`'dnl `'define(`field', `set_field($'`@)')`'dnl `'TTdef_$1($1,$1) default: return TT_FALSE; } ifelse($1, ttobj, `', `else return getset_SetField_`'getset_super_mtd(SetField,m4_super_$1)((getset_super_mtd(SetField,m4_super_$1))o, which, value);') } return TT_FALSE; })`'dnl `'define(`field')`'dnl `'define(`final')`'dnl `'define(`extends')`'dnl `'undefine(`this')`'dnl `'undefine(`this_count')`'dnl ') TTlist() undefine(`el') typedef ttbyte (*set_fn)(TT_ARG_READ ttobj, ttuint, ttany); static ttbyte getset_SetField(TT_ARG_READ ttobj o, tt_obj which, TT_ARG_READ TT_ARG_ARRAY((1)) ttarg *value) { static set_fn fn [] = { (set_fn)0, define(`el', ` (set_fn)getset_SetField_`'getset_super_mtd(SetField,$1),') TTlist() undefine(`el') }; ttuint i; if (o && (i = o->id >> TT_MAGIC_SHIFT) && i < sizeof(fn)/sizeof(fn[0]) && IS(ttobject,o) && !(((ttobject)o)->oflags & ttobject_oflags_const) && ID2(ttfield,which)) { return fn[i](o, (ttuint)((ttopaque)which & TT_MAGIC_MASK), value->value); } return TT_FALSE; } ���������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/limits.m4h�����������������������������������������������������������������0000664�0000000�0000000�00000003315�13775351206�0016716�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/limits.m4' : m4 macros to autogenerate limits_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/limits.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * limits_m4.h -- defines for various libTT hardcoded values and limits */ /* this is a libTT internal value. Do not use it in clients! */ #define TT_MAX_ERROR 256 #define TT_MAXID 0x00FFFFFF #define TT_MAGIC_SHIFT 24 /* keep at least 8 bits available for order_* magic types */ #define TT_MAGIC_MASK TT_MAXID #define TT_SMALLBUFF TW_SMALLBUFF #define TT_BIGBUFF TW_BIGBUFF #define TTSB TT_STR(TT_SMALLBUFF) #define TTBB TT_STR(TT_BIGBUFF) #define TT_NOID ((opaque)0) #define TT_BADID TT_MAX_ttopaque #define TT_NOFD ((int)-1) #define TT_FALSE FALSE #define TT_TRUE TRUE #define TT_MIN2(a,b) ((a)<(b) ? (a) : (b)) #define TT_MAX2(a,b) ((a)>(b) ? (a) : (b)) divert(-1) include(`m4/TTclasses.m4') divert divert(-1) define(`tt_max_arg_n', `0') define(`final', `ifelse(eval($3 > tt_max_arg_n), 1, `define(`tt_max_arg_n', `$3')')') define(`public', `final($@)') define(`public_set', `final($@)') define(`extends') define(`el',`TTdef_ttclass_$1($1)') TTlist() undefine(`el') divert /* max number of arguments a libTT function can have */ `#'define TT_MAX_ARG_N tt_max_arg_n �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/method1.m4h����������������������������������������������������������������0000664�0000000�0000000�00000007043�13775351206�0016760�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/method1.m4' : m4 macros to autogenerate method1_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/method1.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * method1_m4.h -- implementation of TT*_ttmethod functions, * reflective ttmethods for all existing objects * */ include(`m4/TTclasses.m4') divert(-1) include(`m4/TTfield.m4') include(`m4/TTdecay.m4') include(`m4/TTclient.m4') include(`m4/TTattribute.m4') define(`handy_method', `def_method($@)') define(`final', `def_method($1_$2,shift($@))') define(`public', `final($@)') define(`public_set', `final($@)') define(`extends') define(`getset_method', `def_method(Toupper2($1,$2)_`'this,shift(shift($@)))') define(`field', `get_field($@)') define(`all_methods', ` `' /* generic methods */ `' TTdef_ttclass_handymethods()`'dnl `' `'define(`el',` `' /* $'`1 methods */ `' TTdef_ttclass_$'`1($'`1)`'dnl `'') `'TTlist() `'undefine(`el') `' `' /* TTSet*_* methods omitted, they are listed above! */ `'#if 0 `' def_method(SetField_ttobj,...)`'dnl `' def_method(ChangeField_ttobj,...) `'#endif `' /* TTGet*_* methods */ `' `'define(`TT_ARG_READ') `'define(`el', `define(`this', $'`1) `' /* TTGet*_$'`1 methods */TTdef_$'`1($'`1)') `' `'TTlist() `'undefine(`this') `'undefine(`el') `'undefine(`TT_ARG_READ') ') define(`c_arg_decl_type', `trim_star_n_space($2)') define(`_c_args_decl_type', `ifelse($2, `', `', `, c_arg_decl_type($@)`'_c_args_decl_type(NSHIFT(3,$@))')') define(`c_args_decl_type', `ifelse($2, `', `', $5, `', `c_arg_decl_type($@)', `c_arg_decl_type($@)`'_c_args_decl_type(NSHIFT(3,$@))')') divert /* prototypes (return type and parameter type arrays) of existing methods */ `#'define S(t) TT_CAT(str_order_,t) define(`def_method', `ifdef(`done_string_$1', `', `define(`done_string_$1') apply_nocomma(`S', apply(`type_function_decay', c_args_decl_type(NSHIFT(3, $@)))),')')dnl static TT_CONST ttbyte * TT_CONST method_proto[] = { /* WARNING: we never return a ttclass... if prototype says so, we return a tt_class */ all_methods() }; #undef S #define M(m) TT_CAT(ttmethod_,m) /* attributes of array parameters of existing methods */ define(`def_method', `ifdef(`done_attributes_$1', `', `define(`done_attributes_$1')`'dnl `'encode_attributes($1, 0, NSHIFT(3, $@))')')dnl define(`encode_attributes', `ifelse(`$3', `', `', `dnl ifelse(index(`$4', `*'), -1, `', ` { M($1), $2, /*$3*/' encode_attribute($3)`, },')dnl `'encode_attributes($1, incr($2), NSHIFT(5, $@))')')dnl static TT_CONST ttany method_type[][3] = { all_methods() }; #define method_type_n (sizeof(method_type)/sizeof(method_type[0])) #define method_return_type_n (sizeof(method_return_type)/sizeof(method_return_type[0])) #undef M /* names of existing methods */ define(`def_method', `ifdef(`done_name_$1', `', `define(`done_name_$1') "TT$1",')') static TT_CONST ttbyte * TT_CONST method_name[] = { all_methods() }; /* addresses of existing methods */ #define A(m) (ttfunction_fn)TT_CAT(TT,m) define(`def_method', `ifdef(`done_addr_$1', `', `define(`done_addr_$1') A($1),')') static TT_CONST ttfunction_fn method_addr[] = { all_methods() }; #undef A #define method_array_n (sizeof(method_name)/sizeof(method_name[0])) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/method2.m4h����������������������������������������������������������������0000664�0000000�0000000�00000005513�13775351206�0016761�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/method2.m4' : m4 macros to autogenerate method2_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/method2.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * method2_m4.h -- implementation of TT*_ttmethod functions, * TTCall*_ttmethod dispatcher (also used by ttlisteners) * */ include(`m4/TTclasses.m4') divert(-1) include(`m4/TTfield.m4') include(`m4/TTdecay.m4') define(`extends') define(`field') undefine(`el') define(`c_arg_call_anonymous', `c_arg_val_decay($2,$3)a[$1]') define(`_c_args_call_anonymous', `ifelse($4, `', `', `, c_arg_call_anonymous($@)`'_c_args_call_anonymous(incr($1), NSHIFT(4, $@))')') define(`c_args_call_anonymous', `ifelse($4, `', `', $7, `', `c_arg_call_anonymous($@)', `c_arg_call_anonymous($@)`'_c_args_call_anonymous(incr($1), NSHIFT(4, $@))')') divert ttbyte TTCallY_ttmethod(tt_obj id, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg * return_value, ttopaque nargs, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttany *a) { ttmethod m; ttopaque m_order; ttany a0 = (ttany)0; if ((m = ID2(ttmethod,id)) && nargs >= m->parameter_type->array_n) switch ((m_order = (opaque)id & TT_MAGIC_MASK)) { /* generic functions */ define(`handy_method', ` case ttmethod_$1: a0_eq_ifnotvoid($4,$5)`'c_arg_ret_undecay_ifnotvoid($4,$5)`'TT$1(c_args_call_anonymous(0, NSHIFT(6, $@))); break;') TTdef_ttclass_handymethods() undefine(`handy_method')`'dnl define(`final', ` case ttmethod_$1_$2: a0_eq_ifnotvoid($4,$5)`'c_arg_ret_undecay_ifnotvoid($4,$5)`'TT$1_$2(c_args_call_anonymous(0, NSHIFT(6, $@))); break;') define(`public', `final($@)') define(`public_set', `final($@)') define(`el',` /* $1 methods */ TTdef_ttclass_$1($1) ') TTlist() undefine(`el') define(`final') define(`public_set') define(`public') /* TTSet*_* methods omitted, they are listed above ! */ /* TTGet*_* methods */ default: if (m_order >= ttmethod_FN_get_first && m_order < ttmethod_FN_get_last) { return TTGetField_ttobj((tt_obj)(opaque)a[1], (tt_obj)(opaque)((order_ttfield<<TT_MAGIC_SHIFT) | (m_order - ttmethod_FN_get_first + ttobj_field_first)), return_value); } return TT_FALSE; } else return TT_FALSE; return_value->type = m->return_type; return_value->value = a0; return TT_TRUE; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/tree.m4h�������������������������������������������������������������������0000664�0000000�0000000�00000025171�13775351206�0016360�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/tree.m4' : m4 macros to autogenerate tree_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/tree.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * tree_m4.h -- internal header for libTT objects hierarchy tree */ #ifndef TT_TREEM4_H #define TT_TREEM4_H include(`m4/TTclasses.m4') #define TT_TYPELIST(el) \ TTtypelist() #define TT_LIST(el) \ TTlist() #define TT_NLIST(el) \ TTnlist() #define super_(t) TT_CAT(super_,t) #define order_(t) TT_CAT(order_,t) #define id_ttclass_(t) TT_CAT(id_ttclass_,t) #define magicmask_(t) TT_CAT(magicmask_,t) #define magic_(t) TT_CAT(magic_,t) /* set str_order_xxx defines for objects */ define(`order_type_last', 1) define(`def_order', ` `#'define str_order_$1 "\x`'eval(order_type_last, 16, 2)"`'define(`order_type_last', incr(order_type_last))`'dnl ')`'dnl define(`el', `def_order($1)')`'dnl TTlist()`'dnl undefine(`el') `#'define str_order_first str_order_ttobj def_order(last) /* set str_order_xxx defines for native types */ define(`el', `def_order($1)')`'dnl TTtypelist()`'dnl undefine(`el') `#'define str_order_type_first str_order_`'TTtypefirst() def_order(type_last) define(`el', ` `#'define str_order_$1 str_order_$2')`'dnl TTtypealiaslist()`'dnl undefine(`el') undefine(`order_type_last') /* set order_xxx defines for objects */ define(`m4_order_type_last', 0)dnl define(`el', `define(`m4_order_type_last', incr(m4_order_type_last)) `#'define order_$1 m4_order_type_last')dnl `#'define order_first m4_order_type_last `#'define order_ttobj order_first TTnlist() el(last) /* set order_xxx enums for native types */ TTtypelist() undefine(`el')dnl define(`el', ` `#'define order_$1 order_$2')dnl TTtypealiaslist()`'dnl undefine(`el')dnl `#'define order_type_first order_`'TTtypefirst(), `#'define order_type_last (order_`'TTtypelast() + 1) divert(-1) define(`log2', `_log2($1, 0)') define(`_log2', `ifelse(`$1', 0, `$2', `_log2(eval(`$1'/2), incr(`$2'))')') define(`m4_order_usedbits', `log2(m4_order_type_last)') divert `#'define order_ttclass_usedbits m4_order_usedbits `#'define order_ttclass_bitmask eval((1<<m4_order_usedbits)-1) `#'ifndef TT_SIZEOF_ttopaque `#' error internal error: undefined TT_SIZEOF_ttopaque ! `#'endif `#'if 8 * TT_SIZEOF_ttopaque < order_ttclass_usedbits + TT_MAGIC_SHIFT `#' error internal error: order_ttclass_usedbits + TT_MAGIC_SHIFT overflows 8 * sizeof(ttopaque) ! `#'endif /* set id_ttclass_xxx enums for objects */ typedef enum e_id_ttclass_ttobj { define(`el', ` id_ttclass_$1,')dnl id_ttclass_first = (order_ttclass<<TT_MAGIC_SHIFT) | order_ttobj, id_ttclass_ttobj = id_ttclass_first, TTnlist() id_ttclass_last, /* set order_xxx enums for native types */ TTtypelist() undefine(`el')dnl define(`el', ` id_ttclass_$1 = id_ttclass_$2,')dnl TTtypealiaslist()`'dnl undefine(`el')dnl id_ttclass_type_first = id_ttclass_`'TTtypefirst(), id_ttclass_type_last = id_ttclass_`'TTtypelast() + 1, } e_id_ttclass_types; divert(-1) dnl now, the nightmare of objects hierarchy define(`radix16', `0x`'eval(`$1', 16)') dnl how many objects are descendant of another given object? define(`shiftword', `patsubst(`$1', `^ *\w+ *', `')') define(`numwords', `ifelse(`$1', `', 0, `incr(numwords(shiftword(`$1')))')') dnl initialize child_$1 define(`el', `define(`child_$1')') TTlist() undefine(`el') dnl define super_$1 to parent of $1 and append children of $1 to child_$1 define(`m4_super_ttobj', `none') define(`extends', `define(`child_$1', child_$1 $2)') define(`field') define(`el', `TTdef_$1($1)') TTnlist() undefine(`el') define(`field') define(`extends') define(`log2', `_log2($1, 0)') define(`_log2', `ifelse(`$1', 0, `$2', `_log2(eval(`$1'/2), incr(`$2'))')') define(`exp2m1', `ifelse(`$1', 0, 0, `decr(eval(1<<`$1'))')') dnl set childN_$1 to # of children of $1 define(`el', `define(`childN_$1', numwords(child_$1))') TTlist() undefine(`el') dnl set childlogN_$1 to log2(childN), rounded up define(`el', `define(`childlogN_$1', log2(childN_$1))') TTlist() undefine(`el') dnl set magicmaskN_$1 to (childlogN_$1) bits all set to 1 define(`el', `define(`magicmaskN_$1', exp2m1(childlogN_$1)) define(`bitsN_$1', magicmaskN_$1)') TTlist() undefine(`el') dnl add parents' childlogN_$1 to each childlogN_$2 dnl and shift each magicmaskN_$2 by childlogN_$2 and add parents' magicmaskN_$1 to them define(`extends', `define(`childlogN_$2', eval(childlogN_$2 + childlogN_$1)) define(`magicmaskN_$2', eval((magicmaskN_$2<<childlogN_$1) | magicmaskN_$1))') define(`field') define(`el', `TTdef_$1($1)') TTnlist() undefine(`el') define(`field') define(`extends') dnl initialize childI_$1 define(`el', `define(`childI_$1', 1)') TTlist() undefine(`el') dnl initialize childPOS_$1 to the position with respect to others in parent's list of children define(`extends', `define(`childPOS_$2', childI_$1) define(`childI_$1', incr(childI_$1))') define(`field') define(`el', `TTdef_$1($1)') TTnlist() undefine(`el') define(`field') define(`extends') dnl calculate magicN_$1 as follows: dnl highest bits are childPOS_$1 (conveniently shifted by parent's parent's childlogN_$1); dnl lower bits are parents' magicN_$1 define(`childlogN_none', 0) define(`magicN_ttobj', 0) define(`el', `define(`magicN_$1', eval((childPOS_$1<<merge(childlogN_,merge(m4_super_,m4_super_$1))) | merge(magicN_,m4_super_$1)))') TTnlist() undefine(`el') divert /* * NOTE: * * magicmask_* and magic_* are autogenerated using a quite intricated m4 algorythm. * * the final effect is shown below, on a cutdown hierarchy tree. * in the picture, first number is magic_*, second is magicmask_* * * ________ttobj * ________/ ____/(0,0) * ________/ ____/ | * / / | *ttcallback ttevent ttcomponent *(0x1,0x3) (0x2,0x3) ___(0x3,0x3)___ * _____/ / \ \_____ * _____/ / \ \_____ * / / \ \ * _ttvisible_ ttbuttongroup tttheme ttapplication * /(0x7,0x1F)\\__ (0xB,0x1F) (0xF,0x1F) (0x13,0x1F) * / | \ \_________ * / | \ \ * ttnative ttwidget ttmenuitem ttmenubar *(0x27,0xFF)(0x47,0xFF) (0x67,0xFF) (0x87,0xFF) * * magic_* of a children is the parent's one, plus the progressive number * (conveniently shifted) of the children in the parent's children list. * * as you can see, all children of the same parent share the same magicmask; * this magicmask is the smallest bit mask that can hold all children magic_* numbers. * in other words, the tree is coded with a Huffman-like strategy * (node frequencies do not `apply' in this case) * * with this setup, runtime type checking and casting is extremely simple: * to check if an object of type A can be cast to type B, just do: * * if ((magic_A & magicmask_B) == magic_B) { * success; * } else { * fail; * } * */ /* set magicmask_xxx enums */ typedef enum e_magicmask_ttobj { magicmask_ttobj = 0,`'dnl define(`el', ` magicmask_$1 = radix16(merge(magicmaskN_,m4_super_$1)),')`'dnl TTnlist()`'dnl undefine(`el') magicmask_last } e_magicmask_ttobj; /* set magic_xxx enums */ typedef enum e_magic_ttobj { magic_ttobj = 0, define(`el', ` magic_$1 = radix16(magicN_$1),') TTnlist()`'dnl undefine(`el') magic_last } e_magic_ttobj; define(`m4_order_field_last', 0)dnl define(`extends') define(`fake_field', `field($@)') define(`field', `ifelse(`$4', `', `', ` `#'define this`'_$3 m4_order_field_last`'dnl define(`m4_order_field_last', incr(m4_order_field_last))')') define(`el', `define(`this', $1) `#'define this`'_field_first m4_order_field_last`'dnl TTdef_$1($1) `#'define this`'_field_last m4_order_field_last ') /* defines for existing object fields */ TTlist() `#'define ttobj_field_max m4_order_field_last define(`fake_field') define(`field') undefine(`this') undefine(`el') define(`fake_field', `field($@)') define(`field', `ifelse(`$4', `', `', ` `#'define this`'_$3 this`'_$3')') define(`el', `define(`this', $1) `'field(,,field_first,r)`'dnl `'TTdef_$1($1)dnl `'field(,,field_last,r)') divert(-1) /* defines for existing object fields */ TTlist() define(`this', `ttobj') field(,,field_max,r) define(`fake_field') define(`field') undefine(`this') undefine(`el') include(`m4/TTfield.m4') include(`m4/TTdecay.m4') define(`extends') define(`public', ` arg_decl_decay($5) TT$2_$3`'(ifelse($4, 0, void, `args_decl(1, $4, NSHIFT(5, $@))')); ') define(`public_set',`public($@)') define(`final',`public($@)') define(`m4_order_method_last', 0) divert /* defines of existing object methods */ /* generic functions */ define(`decl_ttmethod', `ifdef(`done_ttmethod_$1', `', `define(`done_ttmethod_$1') `#'define ttmethod_$1 m4_order_method_last`'dnl `'define(`m4_order_method_last', incr(m4_order_method_last))')') define(`handy_method', `decl_ttmethod($1)') TTdef_ttclass_handymethods() undefine(`handy_method') define(`final', `decl_ttmethod(`$1_$2')') define(`public', `final($@)') define(`public_set', `final($@)') define(`el',` /* $1 methods */TTdef_ttclass_$1($1)') TTlist() undefine(`el') define(`final') define(`public') define(`public_set') undefine(`decl_ttmethod') /* TTSet*_* methods omitted, they are listed above! */ #if 0 `#'define ttmethod_FN_set_first m4_order_method_last `#'define ttmethod_SetField_ttobj eval(m4_order_method_last+1) `#'define ttmethod_ChangeField_ttobj eval(m4_order_method_last+2) `#'define ttmethod_FN_set_last m4_order_method_last #endif /* TTGet*_* methods */ `#'define ttmethod_FN_get_first m4_order_method_last define(`el', `define(`this', `$1') /* TTGet*_$1 methods */TTdef_$1($1)') define(`extends') define(`getset_method', ` `#'define ttmethod_`'Toupper2($1,$2)_`'this`' m4_order_method_last`'dnl `'define(`m4_order_method_last', incr(m4_order_method_last))') define(`field', `get_field($@)') TTlist() define(`extends') define(`field') undefine(`this') undefine(`el') `#'define ttmethod_FN_get_last m4_order_method_last `#'define ttmethod_FN_last m4_order_method_last #endif /* TT_TREEM4_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/m4/wrap.m4h�������������������������������������������������������������������0000664�0000000�0000000�00000004443�13775351206�0016371�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/wrap.m4' : m4 macros to autogenerate wrap_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/wrap.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * wrap_m4.h -- wrappers around final libTT methods * */ include(`m4/TTclasses.m4') divert(-1) include(`m4/TTdecay.m4') define(`extends') define(`public', `ifdef(`m4_super_$8', ` c_arg_type_decay($4,$5) TT$1_$2`'(ifelse($3, 0, void, `c_args_decl_decay(NSHIFT(6, $@))')) { $8 a1; c_decl_decay_a0_ifnotvoid($4,$5)`'LOCK; if ((a1 = ID2($8,$9))) a0_eq_ifnotvoid($4,$5)`'tt_obj_obj2id_ifnotvoid_ifdecay($5, `a1->Class->$1`'(a1`'_c_args_call_decay(NSHIFT(9, $@)))'); UNLK; return a0_ifnotvoid($4,$5); }', ` c_arg_type_decay($4,$5) TT$1_$2`'(ifelse($3, 0, void, `c_args_decl_decay(NSHIFT(6, $@))')) { c_decl_decay_a0_ifnotvoid($4,$5)`'LOCK; a0_eq_ifnotvoid($4,$5)`'tt_obj_obj2id_ifnotvoid_ifdecay($5, TClass_$2->$1`'(c_args_call_decay(NSHIFT(6, $@)))); UNLK; return a0_ifnotvoid($4,$5); }')') define(`final',`ifdef(`m4_super_$8', ` c_arg_type_decay($4,$5) TT$1_$2`'(ifelse($3, 0, void, `c_args_decl_decay(NSHIFT(6, $@))')) { $8 a1; c_decl_decay_a0_ifnotvoid($4,$5)`'LOCK; if ((a1 = ID2($8,$9))) a0_eq_ifnotvoid($4,$5)`'tt_obj_obj2id_ifnotvoid_ifdecay($5, `$1_$2`'(a1`'_c_args_call_decay(NSHIFT(9, $@)))'); UNLK; return a0_ifnotvoid($4,$5); }', ` c_arg_type_decay($4,$5) TT$1_$2`'(ifelse($3, 0, void, `c_args_decl_decay(NSHIFT(6, $@))')) { c_decl_decay_a0_ifnotvoid($4,$5)`'LOCK; a0_eq_ifnotvoid($4,$5)`'tt_obj_obj2id_ifnotvoid_ifdecay($5, `$1_$2`'(c_args_call_decay(NSHIFT(6, $@)))'); UNLK; return a0_ifnotvoid($4,$5); }')') define(`public_set',`final($@)') dnl do not generate wrappers for `final_alt' methods define(`final_alt') divert /* `public', `public_set' and `final' methods */ define(`el',` /* $1 methods */ TTdef_ttclass_$1($1) ') TTlist() undefine(`el') define(`final') define(`public') define(`public_set') define(`extends') �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/mem.c�������������������������������������������������������������������������0000664�0000000�0000000�00000010375�13775351206�0015411�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * TTmem.c -- memory and string functions for libTT * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. */ #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #endif #include <Tw/Tw_defs.h> #include "TT.h" #include "mutex.h" #include "TTextern.h" #define Str2Unicode(c) Tutf_CP437_to_UTF_16[c] /* * TT<op>Mem functions */ #ifdef CONF_SOCKET_PTHREADS TH_R_MUTEX_HELPER_DEFS(static); #endif void *(*TTAllocMem)(ttopaque) = malloc; void *(*TTReallocMem)(void *, ttopaque) = realloc; void (*TTFreeMem)(void *) = free; /** * creates a copy of a chunk of memory */ void *TTCloneMem(TT_CONST void *S, ttopaque len) { void *T; if (S && (T = TTAllocMem(len))) return TTCopyMem(S, T, len); return NULL; } /** * sets the function to call to allocate/realloc/free memory; * can be called only if no connections to server are open. */ void TTConfigAllocMem(void *(*my_malloc)(ttopaque), void *(*my_realloc)(void *, ttopaque), void (*my_free)(void *)) { /* do not mess with TTD.refcount */ th_r_mutex_lock(mutex); if (!TTD.OpenFlag) { if (my_malloc && my_realloc && my_free) { TTAllocMem = my_malloc; TTReallocMem = my_realloc; TTFreeMem = my_free; } else { TTAllocMem = malloc; TTReallocMem = realloc; TTFreeMem = free; } } th_r_mutex_unlock(mutex); } /* * TT<op>Str* functions */ ttopaque TTLenStr(TT_CONST ttbyte *s) { return s ? strlen(s) : 0; } ttopaque TTLenStr1(TT_CONST ttbyte *s) { return s ? 1 + strlen(s) : 0; } #define TTLenStr1(s) ((s) ? 1 + strlen(s) : 0) #if TT_SIZEOF_ttfont != 1 ttfont *TTCopyStrL2Font(TT_CONST ttbyte *s, ttfont *dest, ttopaque len) { ttfont *tmp = dest; while (len--) *tmp++ = Str2Unicode(*s++); return dest; } ttfont *TTCopyStr2Font(TT_CONST ttbyte *s, ttfont *dest) { return TTCopyStrL2Font(s, dest, TTLenStr1(s)); } #endif ttattr *TTCopyStrL2Attr(TT_CONST ttbyte *s, ttattr *dest, ttopaque len, ttcol c) { ttfont f; ttattr *tmp = dest; while (len--) { f = Str2Unicode(*s++); *tmp++ = TTAttr(c, f); } return dest; } ttattr *TTCopyStr2Attr(TT_CONST ttbyte *s, ttattr *dest, ttcol c) { return TTCopyStrL2Attr(s, dest, TTLenStr1(s), c); } ttbyte *TTCloneStr(TT_CONST ttbyte *s) { if (s) return TTCloneMem(s, TTLenStr1(s)); return NULL; } #if TT_SIZEOF_ttfont != 1 ttfont *TTCloneStrL2Font(TT_CONST ttbyte *s, ttopaque len) { ttfont *dest; if (s && (dest = TTAllocMem(len * sizeof(ttfont)))) return TTCopyStrL2Font(s, dest, len); return NULL; } ttfont *TTCloneStr2Font(TT_CONST ttbyte *s) { return TTCloneStrL2Font(s, TTLenStr1(s)); } #endif ttattr *TTCloneStrL2Attr(TT_CONST ttbyte *s, ttopaque len, ttcol c) { ttattr *attr; if (len && (attr = (ttattr *)TTAllocMem(len * sizeof(ttfont)))) return TTCopyStrL2Attr(s, attr, len, c); return NULL; } ttattr *TTCloneStr2Attr(TT_CONST ttbyte *s, ttcol c) { return TTCloneStrL2Attr(s, TTLenStr1(s), c); } /* * TT<op>Font* functions */ #if TT_SIZEOF_ttfont != 1 ttopaque TTLenFont(TT_CONST ttfont *f) { ttopaque len = 0; if (f) while (*f++) len++; return len; } ttopaque TTLenFont1(TT_CONST ttfont *f) { return f ? 1 + TTLenFont(f) : 0; } #define TTLenFont1(f) ((f) ? 1 + TTLenFont(f) : 0) ttfont *TTCopyFont(TT_CONST ttfont *f, ttfont *dest) { return TTCopyMem(f, dest, TTLenFont1(f)); } ttattr *TTCopyFontL2Attr(TT_CONST ttfont *f, ttattr *dest, ttopaque len, ttcol c) { ttattr *tmp = dest; ttfont a; while (len--) { a = *f++; *tmp++ = TTAttr(c, a); } return dest; } ttattr *TTCopyFont2Attr(TT_CONST ttfont *f, ttattr *dest, ttcol c) { return TTCopyFontL2Attr(f, dest, TTLenFont1(f), c); } ttfont *TTCloneFont(TT_CONST ttfont *s) { return TTCloneFontL(s, TTLenFont1(s)); } ttattr *TTCloneFontL2Attr(TT_CONST ttfont *f, ttopaque len, ttcol c) { ttattr *dest; if (f && (dest = TTAllocMem(len * sizeof(ttattr)))) return TTCopyFontL2Attr(f, dest, len, c); return NULL; } ttattr *TTCloneFont2Attr(TT_CONST ttfont *f, ttcol c) { return TTCloneFontL2Attr(f, TTLenFont1(f), c); } #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/method.c����������������������������������������������������������������������0000664�0000000�0000000�00000016052�13775351206�0016111�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * method.c -- exported libTT conversion functions between strings * and ttmethod objects to access object methods using * TT{Get*,Call}_ttmethod(...) * * Copyright (C) 2001-2002 by Massimiliano Ghilardi * * 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. * */ #include "TT.h" #include "TTextern.h" #include "TTassert.h" #include "tree_m4.h" #include "array.h" #include "method1_m4.h" /* these must come AFTER method1_m4.h */ #include "inlines.h" #include "utils.h" #include "check_asm.h" #include "method2_m4.h" ttbyte TTCallA_ttmethod(TT_ARG_READ tt_obj id, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *return_value, ttopaque args_n, TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttarg *aargs) { ttany args[TT_MAX_ARG_N]; ttopaque i; if (args_n <= TT_MAX_ARG_N) { for (i = 0; i < args_n; i++) args[i] = aargs[i].value; return TTCallY_ttmethod(id, return_value, args_n, args); } return TT_FALSE; } ttbyte TTCallV_ttmethod(TT_ARG_READ tt_obj id, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *return_value, ttopaque args_n, TT_ARG_ARRAY((_P(1))) va_list *vargs) { ttany args[TT_MAX_ARG_N]; ttopaque i; if (args_n <= TT_MAX_ARG_N) { for (i = 0; i < args_n; i++) args[i] = va_arg((*vargs), ttany); return TTCallY_ttmethod(id, return_value, args_n, args); } return TT_FALSE; } ttbyte TTCallL_ttmethod(TT_ARG_READ tt_obj id, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *return_value, ttopaque args_n, ...) { ttbyte ret; va_list vargs; va_start(vargs, args_n); ret = TTCallV_ttmethod(id, return_value, args_n, &vargs); va_end(vargs); return ret; } ttbyte TTCallR_ttmethod(TT_ARG_READ tt_obj id, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *return_value, TT_ARG_READ tt_obj vargs) { TT_ARG_READ ttvector args = ID2(ttvector, vargs); if (args) return TTCallY_ttmethod(id, return_value, args->array_n, args->array); return TT_FALSE; } static ttmethod method_array, *method_byid, *method_byname, *method_byaddr; static ttvector param_array, *param_byid; static int CompareMethodAddress(TT_CONST ttmethod *m1, TT_CONST ttmethod *m2) { return (int)((byte *)(*m1)->address - (byte *)(*m2)->address); } static int CompareMethodName(TT_CONST ttmethod *mm1, TT_CONST ttmethod *mm2) { int l, c; TT_CONST ttmethod m1 = *mm1, m2 = *mm2; TT_CONST ttbyte *n1, *n2; if ((c = m1->name_len - m2->name_len)) return c; /* compare forward not to waste time on common suffixes */ l = m1->name_len; n1 = m1->name; n2 = m2->name; while (l-- && !(c = *n1++ - *n2++)) ; return c; } /* * use binary search for efficiency */ TT_ARG_READ tt_obj TTGetByAddress_ttmethod(TT_ARG_READ ttfunction_fn method) { s_ttmethod s_key; ttmethod key = &s_key, *m; s_key.address = method; if ((m = bsearch(&key, method_byaddr, method_array_n, sizeof(ttmethod), (int (*)(TT_CONST void *, TT_CONST void *))CompareMethodAddress)) && *m) { return (tt_obj)(*m)->id; } return (tt_obj)0; } TT_ARG_READ tt_obj TTGet_ttmethod(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *name) { s_ttmethod s_key; ttmethod key = &s_key, *m; if (name) { s_key.name_len = TTLenStr(s_key.name = name); if ((m = bsearch(&key, method_byname, method_array_n, sizeof(ttmethod), (int (*)(TT_CONST void *, TT_CONST void *))CompareMethodName)) && *m) { return (tt_obj)(*m)->id; } } return (tt_obj)0; } static int CompareMethodOrderAndArgN(TT_CONST ttany *m1, TT_CONST ttany *m2) { int i; return (i = (int)m1[0] - (int)m2[0]) ? i : (int)m1[1] - (int)m2[1]; } static ttuint GetParameterType(ttopaque mid, ttopaque arg_n) { ttany key[2]; ttany *m; key[0] = (ttany)mid & TT_MAGIC_MASK; key[1] = arg_n; if ((m = bsearch(key, method_type, method_type_n, sizeof(ttany) * 3, (int (*)(TT_CONST void *, TT_CONST void *))CompareMethodOrderAndArgN))) return (ttuint)m[2]; return (ttuint)0; } static ttbyte method_array_init_once(void) { TT_CONST ttbyte *base = str_order_first; ttuint i, j, n; ttmethod m; ttvector v; TT_CONST ttbyte *s; ttany *dst; if (!TTAssertAlways((method_array = TTAllocMem(method_array_n * sizeof(struct s_ttmethod))) && (method_byid = TTAllocMem(method_array_n * sizeof(ttmethod))) && (method_byname = TTAllocMem(method_array_n * sizeof(ttmethod))) && (method_byaddr = TTAllocMem(method_array_n * sizeof(ttmethod))) && (param_array = TTAllocMem(method_array_n * sizeof(struct s_ttvector))) && (param_byid = TTAllocMem(method_array_n * sizeof(ttvector) * 2)))) return TT_FALSE; /* set to zero all objects */ TTWriteMem(method_array, '\0', method_array_n * sizeof(struct s_ttmethod)); TTWriteMem(param_array, '\0', method_array_n * sizeof(struct s_ttvector)); for (i = 0; i < method_array_n; i++) { method_byaddr[i] = method_byname[i] = method_byid[i] = m = &method_array[i]; m->Class = TClass_ttmethod; m->id = (order_ttmethod << TT_MAGIC_SHIFT) | i; m->name_len = TTLenStr(m->name = method_name[i]); m->address = method_addr[i]; s = method_proto[i]; m->return_type = (ttany)ORDER2ID_CLASS(*s++ - *base) | GetParameterType(m->id, 0 /* 0 is return type */); /* initialize method->parameter_type */ param_byid[i] = m->parameter_type = v = ¶m_array[i]; /* cannot use v->Class->AddAt() here, target driver is not initialized yet */ v->Class = TClass_ttvector; v->id = (order_ttvector << TT_MAGIC_SHIFT) | i; /* other fields are already set to zero */ v->array_size = v->array_n = n = TTLenStr(s); if (n && !TTAssertAlways(v->array = dst = TTAllocMem(n * sizeof(ttany)))) return TT_FALSE; for (j = 0; j < n; j++) { *dst++ = (ttany)ORDER2ID_CLASS(*s++ - *base) | GetParameterType(m->id, j + 1 /* 0 is return type */); } /* never modify nor delete m->parameter_type */ v->oflags |= ttobject_oflags_static | ttobject_oflags_const; } qsort(method_byaddr, method_array_n, sizeof(ttmethod), (int (*)(TT_CONST void *, TT_CONST void *))CompareMethodAddress); qsort(method_byname, method_array_n, sizeof(ttmethod), (int (*)(TT_CONST void *, TT_CONST void *))CompareMethodName); return TT_TRUE; } static ttbyte method_array_init(void) { return /* store method_byid[] ttmethods and they parameter_type ttvectors into global IdList[][] */ FixedAssignIdArray(id_ttclass_ttmethod, method_array_n, (ttobj *)method_byid) && FixedAssignIdArray(id_ttclass_ttvector, method_array_n, (ttobj *)param_byid); } #include "utils.h" ttbyte _TT_method_Init(void) { static ttbyte method_init_once_done = TT_FALSE; return (method_init_once_done || (method_init_once_done = method_array_init_once())) && method_array_init(); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/method1_m4.h������������������������������������������������������������������0000664�0000000�0000000�00000136224�13775351206�0016603�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/method1.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * method1_m4.h -- implementation of TT*_ttmethod functions, * reflective ttmethods for all existing objects * */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* prototypes (return type and parameter type arrays) of existing methods */ #define S(t) TT_CAT(str_order_,t) static TT_CONST ttbyte * TT_CONST method_proto[] = { /* WARNING: we never return a ttclass... if prototype says so, we return a ttclass */ /* generic methods */ S(ttuint), S(void), S(ttobject) S(ttclass), S(void) S(ttobject), S(ttclass) S(ttobj), S(ttclass) S(ttobj), S(ttbyte) S(ttclass) S(ttobj), S(ttbyte) S(ttobj), /* ttobj methods */ S(ttbyte) S(ttobj) S(ttfield) S(ttarg), S(ttbyte) S(ttobj) S(ttfield) S(ttarg), S(ttbyte) S(ttobj) S(ttfield) S(ttany) S(ttany), /* ttclass methods */ S(ttbyte) S(ttclass), S(ttopaque) S(ttclass), S(ttclass) S(ttclass), S(ttbyte) S(ttclass) S(ttclass), S(ttclass) S(ttopaque), S(ttbyte) S(ttopaque), S(ttbyte) S(ttopaque), /* ttobject methods */ S(void) S(ttobject), S(void) S(ttobject), S(ttbyte) S(ttobject) S(ttany), /* ttvector methods */ S(ttany) S(ttvector) S(ttopaque), S(ttbyte) S(ttvector) S(ttopaque) S(ttany), S(ttvector) S(ttany), S(ttvector) S(ttopaque) S(ttarg), S(ttvector) S(ttvector), S(ttvector) S(ttopaque) S(va_list), S(ttvector) S(ttopaque) S(ttany), S(ttbyte) S(ttvector) S(ttany), S(ttbyte) S(ttvector) S(ttopaque) S(ttany), S(ttbyte) S(ttvector) S(ttopaque) S(ttopaque) S(ttarg), S(ttbyte) S(ttvector) S(ttopaque) S(ttvector), S(ttbyte) S(ttvector) S(ttopaque) S(ttopaque) S(va_list), S(ttbyte) S(ttvector) S(ttopaque) S(ttopaque) S(ttany), S(ttopaque) S(ttvector) S(ttopaque) S(ttany), S(ttbyte) S(ttvector) S(ttopaque), S(ttbyte) S(ttvector) S(ttopaque) S(ttopaque), /* ttfield methods */ S(ttfield) S(ttbyte), S(ttbyte) S(ttfield) S(ttobject) S(ttarg), S(ttbyte) S(ttfield) S(ttobject) S(ttarg), S(ttbyte) S(ttfield) S(ttobject) S(ttany) S(ttany), S(ttopaque) S(ttfield), S(ttfield) S(ttopaque), S(ttopaque) S(ttbyte), /* ttmethod methods */ S(ttmethod) S(ttbyte), S(ttmethod) S(ttfunction_fn), S(ttopaque) S(ttmethod) S(ttopaque) S(ttopaque) S(ttarg), S(ttbyte) S(ttmethod) S(ttopaque) S(ttarg), S(ttbyte) S(ttmethod) S(ttarg) S(ttopaque) S(ttarg), S(ttbyte) S(ttmethod) S(ttarg) S(ttvector), S(ttbyte) S(ttmethod) S(ttarg) S(ttopaque) S(va_list), S(ttbyte) S(ttmethod) S(ttarg) S(ttopaque) S(ttany), /* ttevent methods */ S(ttevent) S(ttuint) S(ttuint) S(ttuint), S(void) S(ttevent) S(ttcomponent), /* tteventbig methods */ S(tteventbig) S(ttuint) S(ttuint) S(ttuint) S(ttshort) S(ttshort) S(ttshort) S(ttshort) S(ttany) S(ttany) S(ttopaque) S(ttbyte), S(tteventbig) S(ttuint) S(ttuint) S(ttuint) S(ttshort) S(ttshort) S(ttshort) S(ttshort), S(tteventbig) S(ttuint) S(ttuint) S(ttuint) S(ttany) S(ttany) S(ttopaque) S(ttbyte), /* ttbitmask methods */ S(ttbitmask) S(ttany), S(ttbitmask) S(ttbitmask), S(ttbitmask) S(ttvector), S(ttbitmask) S(ttvector), S(void) S(ttbitmask), S(void) S(ttbitmask), S(void) S(ttbitmask), S(void) S(ttbitmask) S(ttuint), S(ttbyte) S(ttbitmask) S(ttany), S(ttbyte) S(ttbitmask) S(ttany), S(ttbyte) S(ttbitmask) S(ttbitmask), S(ttbyte) S(ttbitmask) S(ttvector), S(ttbyte) S(ttbitmask) S(ttany), S(ttbyte) S(ttbitmask) S(ttbitmask), S(ttbyte) S(ttbitmask) S(ttvector), S(ttbyte) S(ttbitmask) S(ttany) S(ttuint), S(ttbyte) S(ttbitmask) S(ttvector) S(ttuint), S(ttbyte) S(ttbitmask) S(ttbitmask) S(ttuint), /* tteventmask methods */ S(tteventmask) S(ttbitmask) S(ttbitmask) S(ttbitmask), S(tteventmask) S(ttbitmask) S(ttbitmask) S(ttbitmask), S(ttbyte) S(tteventmask) S(ttbitmask), S(ttbyte) S(tteventmask) S(ttbitmask), S(ttbyte) S(tteventmask) S(ttbitmask), S(ttbyte) S(tteventmask) S(ttuint), /* ttcallback methods */ /* ttlistener methods */ S(ttlistener) S(ttcomponent) S(ttuint) S(ttuint) S(ttfunction_fn) S(ttany), S(ttlistener) S(ttcomponent) S(ttevent) S(ttuint) S(ttfunction_fn) S(ttany), S(ttlistener) S(ttcomponent) S(ttevent) S(ttuint) S(ttfunction_fn) S(ttopaque) S(ttopaque) S(ttvector), S(ttlistener) S(ttcomponent) S(ttuint) S(ttfunction_fn), S(ttlistener) S(ttcomponent) S(ttuint) S(ttfunction_fn), S(ttlistener) S(ttcomponent) S(ttuint) S(ttuint) S(ttuint) S(ttfunction_fn), S(ttlistener) S(ttcomponent) S(ttuint) S(ttuint) S(ttuint) S(ttfunction_fn), S(ttlistener) S(ttcomponent) S(ttuint) S(ttfunction_fn), S(ttlistener) S(ttcomponent) S(ttuint) S(ttuint) S(ttfunction_fn), S(ttlistener) S(ttcomponent) S(ttbyte) S(ttuint) S(ttfunction_fn), S(ttlistener) S(ttcomponent) S(ttuint) S(ttfunction_fn), S(void) S(ttlistener) S(ttcomponent), S(void) S(ttlistener), S(ttbyte) S(ttlistener) S(ttvector), S(ttbyte) S(ttlistener) S(tteventmask), /* tttimer methods */ S(tttimer) S(ttcomponent) S(ttuint) S(ttfunction_fn) S(ttopaque) S(ttopaque) S(ttvector) S(ttany) S(ttany), S(tttimer) S(ttcomponent) S(ttuint) S(ttfunction_fn) S(ttany) S(ttany) S(ttany), S(void) S(tttimer) S(ttany) S(ttany), S(void) S(tttimer) S(ttbyte), S(ttbyte) S(tttimer), /* ttcomponent methods */ S(void) S(ttcomponent) S(ttlistener), S(void) S(ttcomponent) S(ttlistener), S(ttdata) S(ttcomponent) S(ttbyte) S(ttany), S(ttany) S(ttcomponent) S(ttbyte), S(void) S(ttcomponent) S(ttbyte), S(ttdata) S(ttcomponent) S(ttbyte), /* ttdata methods */ S(ttbyte) S(ttdata) S(ttany), /* ttvisible methods */ S(void) S(ttvisible) S(ttvisible) S(ttany), S(void) S(ttvisible), S(void) S(ttvisible), S(void) S(ttvisible), S(void) S(ttvisible) S(ttbyte), S(ttbyte) S(ttvisible) S(tttheme), S(void) S(ttvisible) S(ttshort) S(ttshort) S(ttshort) S(ttshort) S(ttshort) S(ttbyte) S(ttfont) S(ttattr), S(void) S(ttvisible) S(ttshort) S(ttshort) S(ttshort) S(ttshort), S(ttbyte) S(ttvisible) S(ttfunction_fn), S(void) S(ttvisible) S(ttshort) S(ttshort) S(ttshort) S(ttshort), S(void) S(ttvisible) S(ttvisible) S(ttany), /* ttlayout methods */ /* ttboxlayout methods */ S(ttboxlayout) S(ttany), /* ttborderlayout methods */ /* ttnative methods */ S(ttnative), S(ttshort) S(ttnative), S(ttshort) S(ttnative), S(ttnative) S(ttany), /* ttwidget methods */ S(void) S(ttwidget) S(ttlayout), S(ttbyte) S(ttwidget) S(ttshort) S(ttshort), S(ttbyte) S(ttwidget) S(ttshort) S(ttshort), S(ttbyte) S(ttwidget) S(ttint), S(ttbyte) S(ttwidget) S(ttint), S(ttbyte) S(ttwidget) S(ttint), S(ttbyte) S(ttwidget) S(ttint), S(ttbyte) S(ttwidget) S(tttooltip), S(ttbyte) S(ttwidget) S(ttuint) S(ttint) S(ttint), S(ttbyte) S(ttwidget) S(ttuint) S(ttint) S(ttint), S(ttbyte) S(ttwidget) S(ttuint) S(ttshort) S(ttshort) S(ttshort) S(ttshort), S(ttbyte) S(ttwidget) S(ttshort), S(ttbyte) S(ttwidget) S(ttshort), S(ttbyte) S(ttwidget) S(ttshort), S(ttbyte) S(ttwidget) S(ttshort), /* ttlabel methods */ S(void) S(ttlabel) S(ttopaque) S(ttfont), S(ttbyte) S(ttlabel) S(ttfont), S(ttbyte) S(ttlabel) S(ttbyte), S(ttlabel) S(ttbyte), /* tttooltip methods */ S(ttbyte) S(tttooltip) S(ttwidget), /* ttbuttongroup methods */ S(void) S(ttbuttongroup) S(ttradiobutton), S(void) S(ttbuttongroup) S(ttradiobutton), S(void) S(ttbuttongroup) S(ttradiobutton), /* ttanybutton methods */ S(void) S(ttanybutton) S(ttshort) S(ttshort) S(ttshort) S(ttattr), S(ttbyte) S(ttanybutton) S(ttshort) S(ttshort) S(ttshort) S(ttattr), S(ttbyte) S(ttanybutton) S(ttshort) S(ttshort) S(ttshort) S(ttfont), S(ttbyte) S(ttanybutton) S(ttshort) S(ttshort) S(ttshort) S(ttbyte), S(ttanybutton) S(ttshort) S(ttshort) S(ttshort) S(ttbyte), /* ttbutton methods */ S(void) S(ttbutton) S(ttbyte), S(ttbyte) S(ttbutton), S(ttbutton) S(ttshort) S(ttshort) S(ttshort) S(ttbyte), /* ttcheckbutton methods */ S(void) S(ttcheckbutton) S(ttbyte), S(ttbyte) S(ttcheckbutton), S(ttcheckbutton) S(ttshort) S(ttshort) S(ttshort) S(ttbyte), /* ttradiobutton methods */ S(void) S(ttradiobutton) S(ttbuttongroup), S(void) S(ttradiobutton), S(ttradiobutton) S(ttshort) S(ttshort) S(ttshort) S(ttbyte), /* ttanyscroll methods */ S(ttbyte) S(ttanyscroll) S(ttbyte), S(ttbyte) S(ttanyscroll) S(ttint), S(ttbyte) S(ttanyscroll) S(ttint), S(ttbyte) S(ttanyscroll) S(ttint), S(ttbyte) S(ttanyscroll) S(ttint), /* ttscrollbar methods */ S(ttscrollbar) S(ttbyte), S(ttscrollbar) S(ttbyte) S(ttint) S(ttint) S(ttint), /* ttslider methods */ S(ttbyte) S(ttslider) S(ttint), S(ttbyte) S(ttslider) S(ttint), S(ttbyte) S(ttslider) S(ttint), S(ttslider) S(ttbyte) S(ttint), /* ttprogressbar methods */ S(ttprogressbar) S(ttbyte), /* ttscrollpane methods */ S(ttscrollpane) S(ttshort) S(ttshort), S(ttbyte) S(ttscrollpane) S(ttscrollbar), S(ttbyte) S(ttscrollpane) S(ttscrollbar), /* ttwindow methods */ S(ttbyte) S(ttwindow) S(ttbyte), /* ttframe methods */ S(ttbyte) S(ttframe) S(ttmenubar), S(ttframe) S(ttbyte), /* ttscroller methods */ S(ttscroller) S(ttshort) S(ttshort), /* ttmenuitem methods */ /* ttcheckmenuitem methods */ /* ttradiomenuitem methods */ /* ttmenu methods */ /* ttmenubar methods */ S(ttmenubar), /* ttanytext methods */ /* tttextfield methods */ /* tttextarea methods */ /* tttheme methods */ S(tttheme), /* ttapplication methods */ S(ttapplication) S(ttbyte), S(ttapplication), /* TTSet*_* methods omitted, they are listed above! */ #if 0 #endif /* TTGet*_* methods */ /* TTGet*_ttobj methods */ /* TTGet*_ttclass methods */ /* TTGet*_ttobject methods */ S(ttopaque) S(ttobject), S(ttuint) S(ttobject), S(ttany) S(ttobject), S(ttopaque) S(ttobject), S(ttopaque) S(ttobject), /* TTGet*_ttvector methods */ S(ttopaque) S(ttvector), S(ttopaque) S(ttvector), S(ttany) S(ttvector), /* TTGet*_ttfield methods */ S(ttopaque) S(ttfield), S(ttbyte) S(ttfield), S(ttopaque) S(ttfield), /* TTGet*_ttmethod methods */ S(ttopaque) S(ttmethod), S(ttbyte) S(ttmethod), S(ttfunction_fn) S(ttmethod), S(ttopaque) S(ttmethod), S(ttvector) S(ttmethod), /* TTGet*_ttevent methods */ S(ttcomponent) S(ttevent), S(ttuint) S(ttevent), S(ttuint) S(ttevent), S(ttuint) S(ttevent), S(ttevent) S(ttevent), S(ttevent) S(ttevent), /* TTGet*_tteventbig methods */ S(ttshort) S(tteventbig), S(ttshort) S(tteventbig), S(ttshort) S(tteventbig), S(ttshort) S(tteventbig), S(ttany) S(tteventbig), S(ttany) S(tteventbig), S(ttopaque) S(tteventbig), S(ttbyte) S(tteventbig), /* TTGet*_ttbitmask methods */ /* TTGet*_tteventmask methods */ S(ttbitmask) S(tteventmask), S(ttbitmask) S(tteventmask), S(ttbitmask) S(tteventmask), S(ttuint) S(tteventmask), /* TTGet*_ttcallback methods */ S(ttuint) S(ttcallback), S(ttcomponent) S(ttcallback), S(ttcallback) S(ttcallback), S(ttcallback) S(ttcallback), /* TTGet*_ttlistener methods */ S(ttevent) S(ttlistener), S(ttfunction_fn) S(ttlistener), S(ttopaque) S(ttlistener), S(ttopaque) S(ttlistener), S(ttvector) S(ttlistener), S(tteventmask) S(ttlistener), /* TTGet*_tttimer methods */ S(ttany) S(tttimer), S(ttany) S(tttimer), S(tttimer) S(tttimer), S(tttimer) S(tttimer), /* TTGet*_ttcomponent methods */ S(ttcallback) S(ttcomponent), S(ttlistener) S(ttcomponent), S(tttimer) S(ttcomponent), S(ttdata) S(ttcomponent), /* TTGet*_ttdata methods */ S(ttcomponent) S(ttdata), S(ttopaque) S(ttdata), S(ttbyte) S(ttdata), S(ttany) S(ttdata), /* TTGet*_ttvisible methods */ S(ttuint) S(ttvisible), S(ttvisible) S(ttvisible), S(ttvisible) S(ttvisible), S(ttvisible) S(ttvisible), S(ttvisible) S(ttvisible), S(ttvisible) S(ttvisible), S(ttany) S(ttvisible), S(tttheme) S(ttvisible), S(ttfunction_fn) S(ttvisible), /* TTGet*_ttlayout methods */ S(ttwidget) S(ttlayout), /* TTGet*_ttboxlayout methods */ S(ttuint) S(ttboxlayout), /* TTGet*_ttborderlayout methods */ /* TTGet*_ttnative methods */ /* TTGet*_ttwidget methods */ S(ttshort) S(ttwidget), S(ttshort) S(ttwidget), S(ttshort) S(ttwidget), S(ttshort) S(ttwidget), S(ttlayout) S(ttwidget), S(ttint) S(ttwidget), S(ttint) S(ttwidget), S(ttint) S(ttwidget), S(ttint) S(ttwidget), S(ttcol) S(ttwidget), S(tttooltip) S(ttwidget), /* TTGet*_ttlabel methods */ S(ttopaque) S(ttlabel), S(ttfont) S(ttlabel), /* TTGet*_tttooltip methods */ S(ttwidget) S(tttooltip), /* TTGet*_ttbuttongroup methods */ S(ttradiobutton) S(ttbuttongroup), S(ttradiobutton) S(ttbuttongroup), S(ttradiobutton) S(ttbuttongroup), /* TTGet*_ttanybutton methods */ S(ttshort) S(ttanybutton), S(ttshort) S(ttanybutton), S(ttattr) S(ttanybutton), /* TTGet*_ttbutton methods */ /* TTGet*_ttcheckbutton methods */ /* TTGet*_ttradiobutton methods */ S(ttbuttongroup) S(ttradiobutton), S(ttradiobutton) S(ttradiobutton), S(ttradiobutton) S(ttradiobutton), /* TTGet*_ttanyscroll methods */ S(ttbyte) S(ttanyscroll), S(ttint) S(ttanyscroll), S(ttint) S(ttanyscroll), S(ttint) S(ttanyscroll), S(ttint) S(ttanyscroll), S(ttint) S(ttanyscroll), S(ttuint) S(ttanyscroll), /* TTGet*_ttscrollbar methods */ /* TTGet*_ttslider methods */ S(ttint) S(ttslider), S(ttint) S(ttslider), S(ttint) S(ttslider), /* TTGet*_ttprogressbar methods */ /* TTGet*_ttscrollpane methods */ S(ttscrollbar) S(ttscrollpane), S(ttscrollbar) S(ttscrollpane), /* TTGet*_ttwindow methods */ S(ttopaque) S(ttwindow), S(ttbyte) S(ttwindow), /* TTGet*_ttframe methods */ S(ttmenubar) S(ttframe), /* TTGet*_ttscroller methods */ S(ttscrollpane) S(ttscroller), /* TTGet*_ttmenuitem methods */ S(ttopaque) S(ttmenuitem), S(ttbyte) S(ttmenuitem), /* TTGet*_ttcheckmenuitem methods */ /* TTGet*_ttradiomenuitem methods */ /* TTGet*_ttmenu methods */ S(ttmenubar) S(ttmenu), /* TTGet*_ttmenubar methods */ /* TTGet*_ttanytext methods */ S(ttopaque) S(ttanytext), S(ttattr) S(ttanytext), /* TTGet*_tttextfield methods */ /* TTGet*_tttextarea methods */ /* TTGet*_tttheme methods */ S(ttopaque) S(tttheme), S(ttbyte) S(tttheme), /* TTGet*_ttapplication methods */ S(ttopaque) S(ttapplication), S(ttbyte) S(ttapplication), }; #undef S #define M(m) TT_CAT(ttmethod_,m) /* attributes of array parameters of existing methods */ static TT_CONST ttany method_type[][3] = { /* generic methods */ { M(ClassNameOf), 0, /*TT_ARG_READ TT_ARG_ARRAY_Z*/ 0|e_R |e_Z, }, /* ttobj methods */ /* ttclass methods */ { M(GetName_ttclass), 0, /*TT_ARG_READ TT_ARG_ARRAY_Z*/ 0|e_R |e_Z, }, /* ttobject methods */ /* ttvector methods */ /* ttfield methods */ { M(Get_ttfield), 1, /*TT_ARG_READ TT_ARG_ARRAY_Z*/ 0|e_R |e_Z, }, /* ttmethod methods */ { M(Get_ttmethod), 1, /*TT_ARG_READ TT_ARG_ARRAY_Z*/ 0|e_R |e_Z, }, /* ttevent methods */ /* tteventbig methods */ /* ttbitmask methods */ /* tteventmask methods */ /* ttcallback methods */ /* ttlistener methods */ /* tttimer methods */ /* ttcomponent methods */ /* ttdata methods */ /* ttvisible methods */ /* ttlayout methods */ /* ttboxlayout methods */ /* ttborderlayout methods */ /* ttnative methods */ /* ttwidget methods */ /* ttlabel methods */ /* tttooltip methods */ /* ttbuttongroup methods */ /* ttanybutton methods */ /* ttbutton methods */ /* ttcheckbutton methods */ /* ttradiobutton methods */ /* ttanyscroll methods */ /* ttscrollbar methods */ /* ttslider methods */ /* ttprogressbar methods */ /* ttscrollpane methods */ /* ttwindow methods */ /* ttframe methods */ /* ttscroller methods */ /* ttmenuitem methods */ /* ttcheckmenuitem methods */ /* ttradiomenuitem methods */ /* ttmenu methods */ /* ttmenubar methods */ /* ttanytext methods */ /* tttextfield methods */ /* tttextarea methods */ /* tttheme methods */ /* ttapplication methods */ /* TTSet*_* methods omitted, they are listed above! */ #if 0 #endif /* TTGet*_* methods */ /* TTGet*_ttobj methods */ /* TTGet*_ttclass methods */ /* TTGet*_ttobject methods */ /* TTGet*_ttvector methods */ { M(GetArray_ttvector), 0, /*TT_ARG_ARRAY((_F(array_n)))*/ 0|e_A(e_F(ttvector, array_n)|e_OP(e_SET)), }, /* TTGet*_ttfield methods */ { M(GetName_ttfield), 0, /* TT_ARG_ARRAY_Z*/ 0|e_Z, }, /* TTGet*_ttmethod methods */ { M(GetName_ttmethod), 0, /* TT_ARG_ARRAY((_F(name_len)))*/ 0|e_A(e_F(ttmethod, name_len)|e_OP(e_SET)), }, /* TTGet*_ttevent methods */ /* TTGet*_tteventbig methods */ { M(GetData_tteventbig), 0, /* TT_ARG_ARRAY((_F(data_len)))*/ 0|e_A(e_F(tteventbig, data_len)|e_OP(e_SET)), }, /* TTGet*_ttbitmask methods */ /* TTGet*_tteventmask methods */ /* TTGet*_ttcallback methods */ /* TTGet*_ttlistener methods */ /* TTGet*_tttimer methods */ /* TTGet*_ttcomponent methods */ /* TTGet*_ttdata methods */ { M(GetKey_ttdata), 0, /*TT_ARG_ARRAY((_F(key_len)))*/ 0|e_A(e_F(ttdata, key_len)|e_OP(e_SET)), }, /* TTGet*_ttvisible methods */ /* TTGet*_ttlayout methods */ /* TTGet*_ttboxlayout methods */ /* TTGet*_ttborderlayout methods */ /* TTGet*_ttnative methods */ /* TTGet*_ttwidget methods */ /* TTGet*_ttlabel methods */ { M(GetText_ttlabel), 0, /*TT_ARG_ARRAY((_F(text_len)))*/ 0|e_A(e_F(ttlabel, text_len)|e_OP(e_SET)), }, /* TTGet*_tttooltip methods */ /* TTGet*_ttbuttongroup methods */ /* TTGet*_ttanybutton methods */ { M(GetText_ttanybutton), 0, /*TT_ARG_ARRAY((_F(text_width),*,_F(text_height)))*/ 0|e_A(e_F(ttanybutton, text_width)|(e_F(ttanybutton, text_height))<<e_WFP|e_OP(e_MUL)), }, /* TTGet*_ttbutton methods */ /* TTGet*_ttcheckbutton methods */ /* TTGet*_ttradiobutton methods */ /* TTGet*_ttanyscroll methods */ /* TTGet*_ttscrollbar methods */ /* TTGet*_ttslider methods */ /* TTGet*_ttprogressbar methods */ /* TTGet*_ttscrollpane methods */ /* TTGet*_ttwindow methods */ { M(GetTitle_ttwindow), 0, /*TT_ARG_ARRAY((_F(title_len)))*/ 0|e_A(e_F(ttwindow, title_len)|e_OP(e_SET)), }, /* TTGet*_ttframe methods */ /* TTGet*_ttscroller methods */ /* TTGet*_ttmenuitem methods */ { M(GetName_ttmenuitem), 0, /*TT_ARG_ARRAY((_F(name_len)))*/ 0|e_A(e_F(ttmenuitem, name_len)|e_OP(e_SET)), }, /* TTGet*_ttcheckmenuitem methods */ /* TTGet*_ttradiomenuitem methods */ /* TTGet*_ttmenu methods */ /* TTGet*_ttmenubar methods */ /* TTGet*_ttanytext methods */ { M(GetText_ttanytext), 0, /*TT_ARG_ARRAY((_F(text_len)))*/ 0|e_A(e_F(ttanytext, text_len)|e_OP(e_SET)), }, /* TTGet*_tttextfield methods */ /* TTGet*_tttextarea methods */ /* TTGet*_tttheme methods */ { M(GetName_tttheme), 0, /*TT_ARG_ARRAY((_F(name_len)))*/ 0|e_A(e_F(tttheme, name_len)|e_OP(e_SET)), }, /* TTGet*_ttapplication methods */ { M(GetName_ttapplication), 0, /*TT_ARG_ARRAY((_F(name_len)))*/ 0|e_A(e_F(ttapplication, name_len)|e_OP(e_SET)), }, }; #define method_type_n (sizeof(method_type)/sizeof(method_type[0])) #define method_return_type_n (sizeof(method_return_type)/sizeof(method_return_type[0])) #undef M /* names of existing methods */ static TT_CONST ttbyte * TT_CONST method_name[] = { /* generic methods */ "TTLibraryVersion", "TTExitMainLoop", "TTNew", "TTDel", "TTClassOf", "TTSuperClassOf", "TTInstanceOf", "TTClassNameOf", /* ttobj methods */ "TTGetField_ttobj", "TTSetField_ttobj", "TTChangeField_ttobj", /* ttclass methods */ "TTGetName_ttclass", "TTGetSize_ttclass", "TTGetSuper_ttclass", "TTIsInstance_ttclass", "TTFromType_ttclass", "TTIsArrayType_ttclass", "TTIsPrimitiveType_ttclass", /* ttobject methods */ "TTRef_ttobject", "TTUnref_ttobject", "TTSetUserData_ttobject", /* ttvector methods */ "TTGetAt_ttvector", "TTSetAt_ttvector", "TTCreate1_ttvector", "TTCreateA_ttvector", "TTCreateR_ttvector", "TTCreateV_ttvector", "TTCreateY_ttvector", "TTAppend_ttvector", "TTAdd_ttvector", "TTAddA_ttvector", "TTAddR_ttvector", "TTAddV_ttvector", "TTAddY_ttvector", "TTContainsValue_ttvector", "TTRemoveAt_ttvector", "TTRemoveRange_ttvector", /* ttfield methods */ "TTGet_ttfield", "TTGetValue_ttfield", "TTSetValue_ttfield", "TTChangeValue_ttfield", "TTToEvcode_ttfield", "TTFromEvcode_ttfield", "TTGetEvcode_ttfield", /* ttmethod methods */ "TTGet_ttmethod", "TTGetByAddress_ttmethod", "TTGetArraySizeA_ttmethod", "TTCheckArraySizesA_ttmethod", "TTCallA_ttmethod", "TTCallR_ttmethod", "TTCallV_ttmethod", "TTCallY_ttmethod", /* ttevent methods */ "TTCreate_ttevent", "TTFire_ttevent", /* tteventbig methods */ "TTCreate8_tteventbig", "TTCreate4_tteventbig", "TTCreate4s4_tteventbig", /* ttbitmask methods */ "TTCreate_ttbitmask", "TTCreateB2_ttbitmask", "TTCreateR_ttbitmask", "TTCreateR2_ttbitmask", "TTClear_ttbitmask", "TTFill_ttbitmask", "TTNegate_ttbitmask", "TTChange_ttbitmask", "TTContains_ttbitmask", "TTAdd_ttbitmask", "TTAddB_ttbitmask", "TTAddR_ttbitmask", "TTRemove_ttbitmask", "TTRemoveB_ttbitmask", "TTRemoveR_ttbitmask", "TTCombine_ttbitmask", "TTCombineR_ttbitmask", "TTCombineB_ttbitmask", /* tteventmask methods */ "TTCreateB_tteventmask", "TTCreateB2_tteventmask", "TTSetEvtypeMask_tteventmask", "TTSetEvcodeMask_tteventmask", "TTSetComponentMask_tteventmask", "TTSetTruthTable_tteventmask", /* ttcallback methods */ /* ttlistener methods */ "TTCreate_ttlistener", "TTCreateE_ttlistener", "TTCreateR_ttlistener", "TTCreateDel_ttlistener", "TTCreateAskclose_ttlistener", "TTCreateKey_ttlistener", "TTCreateMouse_ttlistener", "TTCreateActivate_ttlistener", "TTCreateChange_ttlistener", "TTCreateKeyData_ttlistener", "TTCreateExpose_ttlistener", "TTAddTo_ttlistener", "TTRemove_ttlistener", "TTSetArgsR_ttlistener", "TTSetEventMask_ttlistener", /* tttimer methods */ "TTCreateR_tttimer", "TTCreate_tttimer", "TTSetDelay_tttimer", "TTSetEnabled_tttimer", "TTIsEnabled_tttimer", /* ttcomponent methods */ "TTAddListener_ttcomponent", "TTRemoveListener_ttcomponent", "TTSetKeyData_ttcomponent", "TTGetKeyData_ttcomponent", "TTUnsetKeyData_ttcomponent", "TTGetData_ttcomponent", /* ttdata methods */ "TTSetData_ttdata", /* ttvisible methods */ "TTAddTo_ttvisible", "TTValidate_ttvisible", "TTRemove_ttvisible", "TTInvalidate_ttvisible", "TTSetVisible_ttvisible", "TTSetTheme_ttvisible", "TTDraw_ttvisible", "TTBuiltinRepaint_ttvisible", "TTSetRepaint_ttvisible", "TTExpose_ttvisible", "TTAdd_ttvisible", /* ttlayout methods */ /* ttboxlayout methods */ "TTCreate_ttboxlayout", /* ttborderlayout methods */ /* ttnative methods */ "TTGetRoot_ttnative", "TTGetW_ttnative", "TTGetH_ttnative", "TTCreate_ttnative", /* ttwidget methods */ "TTSetLayout_ttwidget", "TTSetXY_ttwidget", "TTSetWH_ttwidget", "TTSetXl_ttwidget", "TTSetYl_ttwidget", "TTSetWl_ttwidget", "TTSetHl_ttwidget", "TTSetTooltip_ttwidget", "TTSetXlYl_ttwidget", "TTSetWlHl_ttwidget", "TTSetXYWH_ttwidget", "TTSetX_ttwidget", "TTSetY_ttwidget", "TTSetW_ttwidget", "TTSetH_ttwidget", /* ttlabel methods */ "TTSetFontD_ttlabel", "TTSetFont_ttlabel", "TTSetText_ttlabel", "TTCreate_ttlabel", /* tttooltip methods */ "TTSetWidget_tttooltip", /* ttbuttongroup methods */ "TTAdd_ttbuttongroup", "TTRemove_ttbuttongroup", "TTSetChecked_ttbuttongroup", /* ttanybutton methods */ "TTSetAttrD_ttanybutton", "TTSetAttr_ttanybutton", "TTSetFont_ttanybutton", "TTSetText_ttanybutton", "TTCreate_ttanybutton", /* ttbutton methods */ "TTSetPressed_ttbutton", "TTIsPressed_ttbutton", "TTCreate_ttbutton", /* ttcheckbutton methods */ "TTSetChecked_ttcheckbutton", "TTIsChecked_ttcheckbutton", "TTCreate_ttcheckbutton", /* ttradiobutton methods */ "TTAddToGroup_ttradiobutton", "TTRemoveFromGroup_ttradiobutton", "TTCreate_ttradiobutton", /* ttanyscroll methods */ "TTSetOrientation_ttanyscroll", "TTSetSize_ttanyscroll", "TTSetRealSize_ttanyscroll", "TTSetViewSize_ttanyscroll", "TTSetPosition_ttanyscroll", /* ttscrollbar methods */ "TTCreate1_ttscrollbar", "TTCreate4_ttscrollbar", /* ttslider methods */ "TTSetSlideMin_ttslider", "TTSetSlideMax_ttslider", "TTSetSlideValue_ttslider", "TTCreate_ttslider", /* ttprogressbar methods */ "TTCreate_ttprogressbar", /* ttscrollpane methods */ "TTCreate_ttscrollpane", "TTSetBarX_ttscrollpane", "TTSetBarY_ttscrollpane", /* ttwindow methods */ "TTSetTitle_ttwindow", /* ttframe methods */ "TTSetMenubar_ttframe", "TTCreate_ttframe", /* ttscroller methods */ "TTCreate_ttscroller", /* ttmenuitem methods */ /* ttcheckmenuitem methods */ /* ttradiomenuitem methods */ /* ttmenu methods */ /* ttmenubar methods */ "TTGetDefault_ttmenubar", /* ttanytext methods */ /* tttextfield methods */ /* tttextarea methods */ /* tttheme methods */ "TTGetDefault_tttheme", /* ttapplication methods */ "TTCreate_ttapplication", "TTGet_ttapplication", /* TTSet*_* methods omitted, they are listed above! */ #if 0 #endif /* TTGet*_* methods */ /* TTGet*_ttobj methods */ /* TTGet*_ttclass methods */ /* TTGet*_ttobject methods */ "TTGetRefcount_ttobject", "TTGetOflags_ttobject", "TTGetUserData_ttobject", "TTGetEventsInprogress_ttobject", "TTGetEventsInformed_ttobject", /* TTGet*_ttvector methods */ "TTGetArraySize_ttvector", "TTGetArrayN_ttvector", "TTGetArray_ttvector", /* TTGet*_ttfield methods */ "TTGetNameLen_ttfield", "TTGetName_ttfield", "TTGetType_ttfield", /* TTGet*_ttmethod methods */ "TTGetNameLen_ttmethod", "TTGetName_ttmethod", "TTGetAddress_ttmethod", "TTGetReturnType_ttmethod", "TTGetParameterType_ttmethod", /* TTGet*_ttevent methods */ "TTGetComponent_ttevent", "TTGetEvtype_ttevent", "TTGetEvcode_ttevent", "TTGetEvflags_ttevent", "TTGetPrev_ttevent", "TTGetNext_ttevent", /* TTGet*_tteventbig methods */ "TTGetX_tteventbig", "TTGetY_tteventbig", "TTGetW_tteventbig", "TTGetH_tteventbig", "TTGetValue_tteventbig", "TTGetOldValue_tteventbig", "TTGetDataLen_tteventbig", "TTGetData_tteventbig", /* TTGet*_ttbitmask methods */ /* TTGet*_tteventmask methods */ "TTGetEvtypeMask_tteventmask", "TTGetEvcodeMask_tteventmask", "TTGetComponentMask_tteventmask", "TTGetTruthTable_tteventmask", /* TTGet*_ttcallback methods */ "TTGetLflags_ttcallback", "TTGetComponent_ttcallback", "TTGetPrev_ttcallback", "TTGetNext_ttcallback", /* TTGet*_ttlistener methods */ "TTGetEvent_ttlistener", "TTGetFunction_ttlistener", "TTGetArgComponentN_ttlistener", "TTGetArgEventN_ttlistener", "TTGetArgs_ttlistener", "TTGetEventMask_ttlistener", /* TTGet*_tttimer methods */ "TTGetDelayT_tttimer", "TTGetDelayF_tttimer", "TTGetTimerPrev_tttimer", "TTGetTimerNext_tttimer", /* TTGet*_ttcomponent methods */ "TTGetCallbacks_ttcomponent", "TTGetListeners_ttcomponent", "TTGetTimers_ttcomponent", "TTGetDatas_ttcomponent", /* TTGet*_ttdata methods */ "TTGetComponent_ttdata", "TTGetKeyLen_ttdata", "TTGetKey_ttdata", "TTGetData_ttdata", /* TTGet*_ttvisible methods */ "TTGetVflags_ttvisible", "TTGetPrev_ttvisible", "TTGetNext_ttvisible", "TTGetParent_ttvisible", "TTGetChildFirst_ttvisible", "TTGetChildLast_ttvisible", "TTGetConstraint_ttvisible", "TTGetTheme_ttvisible", "TTGetRepaint_ttvisible", /* TTGet*_ttlayout methods */ "TTGetWidget_ttlayout", /* TTGet*_ttboxlayout methods */ "TTGetOrientation_ttboxlayout", /* TTGet*_ttborderlayout methods */ /* TTGet*_ttnative methods */ /* TTGet*_ttwidget methods */ "TTGetX_ttwidget", "TTGetY_ttwidget", "TTGetW_ttwidget", "TTGetH_ttwidget", "TTGetLayout_ttwidget", "TTGetXl_ttwidget", "TTGetYl_ttwidget", "TTGetWl_ttwidget", "TTGetHl_ttwidget", "TTGetCol_ttwidget", "TTGetTooltip_ttwidget", /* TTGet*_ttlabel methods */ "TTGetTextLen_ttlabel", "TTGetText_ttlabel", /* TTGet*_tttooltip methods */ "TTGetWidget_tttooltip", /* TTGet*_ttbuttongroup methods */ "TTGetGroupFirst_ttbuttongroup", "TTGetGroupLast_ttbuttongroup", "TTGetChecked_ttbuttongroup", /* TTGet*_ttanybutton methods */ "TTGetTextWidth_ttanybutton", "TTGetTextHeight_ttanybutton", "TTGetText_ttanybutton", /* TTGet*_ttbutton methods */ /* TTGet*_ttcheckbutton methods */ /* TTGet*_ttradiobutton methods */ "TTGetGroup_ttradiobutton", "TTGetGroupPrev_ttradiobutton", "TTGetGroupNext_ttradiobutton", /* TTGet*_ttanyscroll methods */ "TTGetOrientation_ttanyscroll", "TTGetSize_ttanyscroll", "TTGetRealSize_ttanyscroll", "TTGetViewSize_ttanyscroll", "TTGetPosition_ttanyscroll", "TTGetRealPosition_ttanyscroll", "TTGetState_ttanyscroll", /* TTGet*_ttscrollbar methods */ /* TTGet*_ttslider methods */ "TTGetSlideMin_ttslider", "TTGetSlideMax_ttslider", "TTGetSlideValue_ttslider", /* TTGet*_ttprogressbar methods */ /* TTGet*_ttscrollpane methods */ "TTGetBarX_ttscrollpane", "TTGetBarY_ttscrollpane", /* TTGet*_ttwindow methods */ "TTGetTitleLen_ttwindow", "TTGetTitle_ttwindow", /* TTGet*_ttframe methods */ "TTGetMenubar_ttframe", /* TTGet*_ttscroller methods */ "TTGetScrollpane_ttscroller", /* TTGet*_ttmenuitem methods */ "TTGetNameLen_ttmenuitem", "TTGetName_ttmenuitem", /* TTGet*_ttcheckmenuitem methods */ /* TTGet*_ttradiomenuitem methods */ /* TTGet*_ttmenu methods */ "TTGetMenubar_ttmenu", /* TTGet*_ttmenubar methods */ /* TTGet*_ttanytext methods */ "TTGetTextLen_ttanytext", "TTGetText_ttanytext", /* TTGet*_tttextfield methods */ /* TTGet*_tttextarea methods */ /* TTGet*_tttheme methods */ "TTGetNameLen_tttheme", "TTGetName_tttheme", /* TTGet*_ttapplication methods */ "TTGetNameLen_ttapplication", "TTGetName_ttapplication", }; /* addresses of existing methods */ #define A(m) (ttfunction_fn)TT_CAT(TT,m) static TT_CONST ttfunction_fn method_addr[] = { /* generic methods */ A(LibraryVersion), A(ExitMainLoop), A(New), A(Del), A(ClassOf), A(SuperClassOf), A(InstanceOf), A(ClassNameOf), /* ttobj methods */ A(GetField_ttobj), A(SetField_ttobj), A(ChangeField_ttobj), /* ttclass methods */ A(GetName_ttclass), A(GetSize_ttclass), A(GetSuper_ttclass), A(IsInstance_ttclass), A(FromType_ttclass), A(IsArrayType_ttclass), A(IsPrimitiveType_ttclass), /* ttobject methods */ A(Ref_ttobject), A(Unref_ttobject), A(SetUserData_ttobject), /* ttvector methods */ A(GetAt_ttvector), A(SetAt_ttvector), A(Create1_ttvector), A(CreateA_ttvector), A(CreateR_ttvector), A(CreateV_ttvector), A(CreateY_ttvector), A(Append_ttvector), A(Add_ttvector), A(AddA_ttvector), A(AddR_ttvector), A(AddV_ttvector), A(AddY_ttvector), A(ContainsValue_ttvector), A(RemoveAt_ttvector), A(RemoveRange_ttvector), /* ttfield methods */ A(Get_ttfield), A(GetValue_ttfield), A(SetValue_ttfield), A(ChangeValue_ttfield), A(ToEvcode_ttfield), A(FromEvcode_ttfield), A(GetEvcode_ttfield), /* ttmethod methods */ A(Get_ttmethod), A(GetByAddress_ttmethod), A(GetArraySizeA_ttmethod), A(CheckArraySizesA_ttmethod), A(CallA_ttmethod), A(CallR_ttmethod), A(CallV_ttmethod), A(CallY_ttmethod), /* ttevent methods */ A(Create_ttevent), A(Fire_ttevent), /* tteventbig methods */ A(Create8_tteventbig), A(Create4_tteventbig), A(Create4s4_tteventbig), /* ttbitmask methods */ A(Create_ttbitmask), A(CreateB2_ttbitmask), A(CreateR_ttbitmask), A(CreateR2_ttbitmask), A(Clear_ttbitmask), A(Fill_ttbitmask), A(Negate_ttbitmask), A(Change_ttbitmask), A(Contains_ttbitmask), A(Add_ttbitmask), A(AddB_ttbitmask), A(AddR_ttbitmask), A(Remove_ttbitmask), A(RemoveB_ttbitmask), A(RemoveR_ttbitmask), A(Combine_ttbitmask), A(CombineR_ttbitmask), A(CombineB_ttbitmask), /* tteventmask methods */ A(CreateB_tteventmask), A(CreateB2_tteventmask), A(SetEvtypeMask_tteventmask), A(SetEvcodeMask_tteventmask), A(SetComponentMask_tteventmask), A(SetTruthTable_tteventmask), /* ttcallback methods */ /* ttlistener methods */ A(Create_ttlistener), A(CreateE_ttlistener), A(CreateR_ttlistener), A(CreateDel_ttlistener), A(CreateAskclose_ttlistener), A(CreateKey_ttlistener), A(CreateMouse_ttlistener), A(CreateActivate_ttlistener), A(CreateChange_ttlistener), A(CreateKeyData_ttlistener), A(CreateExpose_ttlistener), A(AddTo_ttlistener), A(Remove_ttlistener), A(SetArgsR_ttlistener), A(SetEventMask_ttlistener), /* tttimer methods */ A(CreateR_tttimer), A(Create_tttimer), A(SetDelay_tttimer), A(SetEnabled_tttimer), A(IsEnabled_tttimer), /* ttcomponent methods */ A(AddListener_ttcomponent), A(RemoveListener_ttcomponent), A(SetKeyData_ttcomponent), A(GetKeyData_ttcomponent), A(UnsetKeyData_ttcomponent), A(GetData_ttcomponent), /* ttdata methods */ A(SetData_ttdata), /* ttvisible methods */ A(AddTo_ttvisible), A(Validate_ttvisible), A(Remove_ttvisible), A(Invalidate_ttvisible), A(SetVisible_ttvisible), A(SetTheme_ttvisible), A(Draw_ttvisible), A(BuiltinRepaint_ttvisible), A(SetRepaint_ttvisible), A(Expose_ttvisible), A(Add_ttvisible), /* ttlayout methods */ /* ttboxlayout methods */ A(Create_ttboxlayout), /* ttborderlayout methods */ /* ttnative methods */ A(GetRoot_ttnative), A(GetW_ttnative), A(GetH_ttnative), A(Create_ttnative), /* ttwidget methods */ A(SetLayout_ttwidget), A(SetXY_ttwidget), A(SetWH_ttwidget), A(SetXl_ttwidget), A(SetYl_ttwidget), A(SetWl_ttwidget), A(SetHl_ttwidget), A(SetTooltip_ttwidget), A(SetXlYl_ttwidget), A(SetWlHl_ttwidget), A(SetXYWH_ttwidget), A(SetX_ttwidget), A(SetY_ttwidget), A(SetW_ttwidget), A(SetH_ttwidget), /* ttlabel methods */ A(SetFontD_ttlabel), A(SetFont_ttlabel), A(SetText_ttlabel), A(Create_ttlabel), /* tttooltip methods */ A(SetWidget_tttooltip), /* ttbuttongroup methods */ A(Add_ttbuttongroup), A(Remove_ttbuttongroup), A(SetChecked_ttbuttongroup), /* ttanybutton methods */ A(SetAttrD_ttanybutton), A(SetAttr_ttanybutton), A(SetFont_ttanybutton), A(SetText_ttanybutton), A(Create_ttanybutton), /* ttbutton methods */ A(SetPressed_ttbutton), A(IsPressed_ttbutton), A(Create_ttbutton), /* ttcheckbutton methods */ A(SetChecked_ttcheckbutton), A(IsChecked_ttcheckbutton), A(Create_ttcheckbutton), /* ttradiobutton methods */ A(AddToGroup_ttradiobutton), A(RemoveFromGroup_ttradiobutton), A(Create_ttradiobutton), /* ttanyscroll methods */ A(SetOrientation_ttanyscroll), A(SetSize_ttanyscroll), A(SetRealSize_ttanyscroll), A(SetViewSize_ttanyscroll), A(SetPosition_ttanyscroll), /* ttscrollbar methods */ A(Create1_ttscrollbar), A(Create4_ttscrollbar), /* ttslider methods */ A(SetSlideMin_ttslider), A(SetSlideMax_ttslider), A(SetSlideValue_ttslider), A(Create_ttslider), /* ttprogressbar methods */ A(Create_ttprogressbar), /* ttscrollpane methods */ A(Create_ttscrollpane), A(SetBarX_ttscrollpane), A(SetBarY_ttscrollpane), /* ttwindow methods */ A(SetTitle_ttwindow), /* ttframe methods */ A(SetMenubar_ttframe), A(Create_ttframe), /* ttscroller methods */ A(Create_ttscroller), /* ttmenuitem methods */ /* ttcheckmenuitem methods */ /* ttradiomenuitem methods */ /* ttmenu methods */ /* ttmenubar methods */ A(GetDefault_ttmenubar), /* ttanytext methods */ /* tttextfield methods */ /* tttextarea methods */ /* tttheme methods */ A(GetDefault_tttheme), /* ttapplication methods */ A(Create_ttapplication), A(Get_ttapplication), /* TTSet*_* methods omitted, they are listed above! */ #if 0 #endif /* TTGet*_* methods */ /* TTGet*_ttobj methods */ /* TTGet*_ttclass methods */ /* TTGet*_ttobject methods */ A(GetRefcount_ttobject), A(GetOflags_ttobject), A(GetUserData_ttobject), A(GetEventsInprogress_ttobject), A(GetEventsInformed_ttobject), /* TTGet*_ttvector methods */ A(GetArraySize_ttvector), A(GetArrayN_ttvector), A(GetArray_ttvector), /* TTGet*_ttfield methods */ A(GetNameLen_ttfield), A(GetName_ttfield), A(GetType_ttfield), /* TTGet*_ttmethod methods */ A(GetNameLen_ttmethod), A(GetName_ttmethod), A(GetAddress_ttmethod), A(GetReturnType_ttmethod), A(GetParameterType_ttmethod), /* TTGet*_ttevent methods */ A(GetComponent_ttevent), A(GetEvtype_ttevent), A(GetEvcode_ttevent), A(GetEvflags_ttevent), A(GetPrev_ttevent), A(GetNext_ttevent), /* TTGet*_tteventbig methods */ A(GetX_tteventbig), A(GetY_tteventbig), A(GetW_tteventbig), A(GetH_tteventbig), A(GetValue_tteventbig), A(GetOldValue_tteventbig), A(GetDataLen_tteventbig), A(GetData_tteventbig), /* TTGet*_ttbitmask methods */ /* TTGet*_tteventmask methods */ A(GetEvtypeMask_tteventmask), A(GetEvcodeMask_tteventmask), A(GetComponentMask_tteventmask), A(GetTruthTable_tteventmask), /* TTGet*_ttcallback methods */ A(GetLflags_ttcallback), A(GetComponent_ttcallback), A(GetPrev_ttcallback), A(GetNext_ttcallback), /* TTGet*_ttlistener methods */ A(GetEvent_ttlistener), A(GetFunction_ttlistener), A(GetArgComponentN_ttlistener), A(GetArgEventN_ttlistener), A(GetArgs_ttlistener), A(GetEventMask_ttlistener), /* TTGet*_tttimer methods */ A(GetDelayT_tttimer), A(GetDelayF_tttimer), A(GetTimerPrev_tttimer), A(GetTimerNext_tttimer), /* TTGet*_ttcomponent methods */ A(GetCallbacks_ttcomponent), A(GetListeners_ttcomponent), A(GetTimers_ttcomponent), A(GetDatas_ttcomponent), /* TTGet*_ttdata methods */ A(GetComponent_ttdata), A(GetKeyLen_ttdata), A(GetKey_ttdata), A(GetData_ttdata), /* TTGet*_ttvisible methods */ A(GetVflags_ttvisible), A(GetPrev_ttvisible), A(GetNext_ttvisible), A(GetParent_ttvisible), A(GetChildFirst_ttvisible), A(GetChildLast_ttvisible), A(GetConstraint_ttvisible), A(GetTheme_ttvisible), A(GetRepaint_ttvisible), /* TTGet*_ttlayout methods */ A(GetWidget_ttlayout), /* TTGet*_ttboxlayout methods */ A(GetOrientation_ttboxlayout), /* TTGet*_ttborderlayout methods */ /* TTGet*_ttnative methods */ /* TTGet*_ttwidget methods */ A(GetX_ttwidget), A(GetY_ttwidget), A(GetW_ttwidget), A(GetH_ttwidget), A(GetLayout_ttwidget), A(GetXl_ttwidget), A(GetYl_ttwidget), A(GetWl_ttwidget), A(GetHl_ttwidget), A(GetCol_ttwidget), A(GetTooltip_ttwidget), /* TTGet*_ttlabel methods */ A(GetTextLen_ttlabel), A(GetText_ttlabel), /* TTGet*_tttooltip methods */ A(GetWidget_tttooltip), /* TTGet*_ttbuttongroup methods */ A(GetGroupFirst_ttbuttongroup), A(GetGroupLast_ttbuttongroup), A(GetChecked_ttbuttongroup), /* TTGet*_ttanybutton methods */ A(GetTextWidth_ttanybutton), A(GetTextHeight_ttanybutton), A(GetText_ttanybutton), /* TTGet*_ttbutton methods */ /* TTGet*_ttcheckbutton methods */ /* TTGet*_ttradiobutton methods */ A(GetGroup_ttradiobutton), A(GetGroupPrev_ttradiobutton), A(GetGroupNext_ttradiobutton), /* TTGet*_ttanyscroll methods */ A(GetOrientation_ttanyscroll), A(GetSize_ttanyscroll), A(GetRealSize_ttanyscroll), A(GetViewSize_ttanyscroll), A(GetPosition_ttanyscroll), A(GetRealPosition_ttanyscroll), A(GetState_ttanyscroll), /* TTGet*_ttscrollbar methods */ /* TTGet*_ttslider methods */ A(GetSlideMin_ttslider), A(GetSlideMax_ttslider), A(GetSlideValue_ttslider), /* TTGet*_ttprogressbar methods */ /* TTGet*_ttscrollpane methods */ A(GetBarX_ttscrollpane), A(GetBarY_ttscrollpane), /* TTGet*_ttwindow methods */ A(GetTitleLen_ttwindow), A(GetTitle_ttwindow), /* TTGet*_ttframe methods */ A(GetMenubar_ttframe), /* TTGet*_ttscroller methods */ A(GetScrollpane_ttscroller), /* TTGet*_ttmenuitem methods */ A(GetNameLen_ttmenuitem), A(GetName_ttmenuitem), /* TTGet*_ttcheckmenuitem methods */ /* TTGet*_ttradiomenuitem methods */ /* TTGet*_ttmenu methods */ A(GetMenubar_ttmenu), /* TTGet*_ttmenubar methods */ /* TTGet*_ttanytext methods */ A(GetTextLen_ttanytext), A(GetText_ttanytext), /* TTGet*_tttextfield methods */ /* TTGet*_tttextarea methods */ /* TTGet*_tttheme methods */ A(GetNameLen_tttheme), A(GetName_tttheme), /* TTGet*_ttapplication methods */ A(GetNameLen_ttapplication), A(GetName_ttapplication), }; #undef A #define method_array_n (sizeof(method_name)/sizeof(method_name[0])) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/method2_m4.h������������������������������������������������������������������0000664�0000000�0000000�00000074471�13775351206�0016611�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/method2.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * method2_m4.h -- implementation of TT*_ttmethod functions, * TTCall*_ttmethod dispatcher (also used by ttlisteners) * */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ ttbyte TTCallY_ttmethod(tt_obj id, TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg * return_value, ttopaque nargs, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttany *a) { ttmethod m; ttopaque m_order; ttany a0 = (ttany)0; if ((m = ID2(ttmethod,id)) && nargs >= m->parameter_type->array_n) switch ((m_order = (opaque)id & TT_MAGIC_MASK)) { /* generic functions */ case ttmethod_LibraryVersion: a0 = TTLibraryVersion(); break; case ttmethod_ExitMainLoop: TTExitMainLoop(); break; case ttmethod_New: a0 = (opaque)TTNew((tt_obj)(opaque)a[0]); break; case ttmethod_Del: TTDel((tt_obj)(opaque)a[0]); break; case ttmethod_ClassOf: a0 = (opaque)TTClassOf((tt_obj)(opaque)a[0]); break; case ttmethod_SuperClassOf: a0 = (opaque)TTSuperClassOf((tt_obj)(opaque)a[0]); break; case ttmethod_InstanceOf: a0 = TTInstanceOf((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_ClassNameOf: a0 = (opaque)TTClassNameOf((tt_obj)(opaque)a[0]); break; /* ttobj methods */ case ttmethod_GetField_ttobj: a0 = TTGetField_ttobj((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *)(opaque)a[2]); break; case ttmethod_SetField_ttobj: a0 = TTSetField_ttobj((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (TT_ARG_READ TT_ARG_ARRAY((1)) ttarg *)(opaque)a[2]); break; case ttmethod_ChangeField_ttobj: a0 = TTChangeField_ttobj((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (ttany)a[2], (ttany)a[3]); break; /* ttclass methods */ case ttmethod_GetName_ttclass: a0 = (opaque)TTGetName_ttclass((tt_obj)(opaque)a[0]); break; case ttmethod_GetSize_ttclass: a0 = TTGetSize_ttclass((tt_obj)(opaque)a[0]); break; case ttmethod_GetSuper_ttclass: a0 = (opaque)TTGetSuper_ttclass((tt_obj)(opaque)a[0]); break; case ttmethod_IsInstance_ttclass: a0 = TTIsInstance_ttclass((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_FromType_ttclass: a0 = (opaque)TTFromType_ttclass((ttopaque)a[0]); break; case ttmethod_IsArrayType_ttclass: a0 = TTIsArrayType_ttclass((ttopaque)a[0]); break; case ttmethod_IsPrimitiveType_ttclass: a0 = TTIsPrimitiveType_ttclass((ttopaque)a[0]); break; /* ttobject methods */ case ttmethod_Ref_ttobject: TTRef_ttobject((tt_obj)(opaque)a[0]); break; case ttmethod_Unref_ttobject: TTUnref_ttobject((tt_obj)(opaque)a[0]); break; case ttmethod_SetUserData_ttobject: a0 = TTSetUserData_ttobject((tt_obj)(opaque)a[0], (ttany)a[1]); break; /* ttvector methods */ case ttmethod_GetAt_ttvector: a0 = TTGetAt_ttvector((tt_obj)(opaque)a[0], (ttopaque)a[1]); break; case ttmethod_SetAt_ttvector: a0 = TTSetAt_ttvector((tt_obj)(opaque)a[0], (ttopaque)a[1], (ttany)a[2]); break; case ttmethod_Create1_ttvector: a0 = (opaque)TTCreate1_ttvector((ttany)a[0]); break; case ttmethod_CreateA_ttvector: a0 = (opaque)TTCreateA_ttvector((ttopaque)a[0], (TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttarg *)(opaque)a[1]); break; case ttmethod_CreateR_ttvector: a0 = (opaque)TTCreateR_ttvector((tt_obj)(opaque)a[0]); break; case ttmethod_CreateV_ttvector: a0 = (opaque)TTCreateV_ttvector((ttopaque)a[0], (TT_ARG_ARRAY((1)) va_list *)(opaque)a[1]); break; case ttmethod_CreateY_ttvector: a0 = (opaque)TTCreateY_ttvector((ttopaque)a[0], (TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttany *)(opaque)a[1]); break; case ttmethod_Append_ttvector: a0 = TTAppend_ttvector((tt_obj)(opaque)a[0], (ttany)a[1]); break; case ttmethod_Add_ttvector: a0 = TTAdd_ttvector((tt_obj)(opaque)a[0], (ttopaque)a[1], (ttany)a[2]); break; case ttmethod_AddA_ttvector: a0 = TTAddA_ttvector((tt_obj)(opaque)a[0], (ttopaque)a[1], (ttopaque)a[2], (TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttarg *)(opaque)a[3]); break; case ttmethod_AddR_ttvector: a0 = TTAddR_ttvector((tt_obj)(opaque)a[0], (ttopaque)a[1], (tt_obj)(opaque)a[2]); break; case ttmethod_AddV_ttvector: a0 = TTAddV_ttvector((tt_obj)(opaque)a[0], (ttopaque)a[1], (ttopaque)a[2], (TT_ARG_ARRAY((1)) va_list *)(opaque)a[3]); break; case ttmethod_AddY_ttvector: a0 = TTAddY_ttvector((tt_obj)(opaque)a[0], (ttopaque)a[1], (ttopaque)a[2], (TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttany *)(opaque)a[3]); break; case ttmethod_ContainsValue_ttvector: a0 = TTContainsValue_ttvector((tt_obj)(opaque)a[0], (ttopaque)a[1], (ttany)a[2]); break; case ttmethod_RemoveAt_ttvector: a0 = TTRemoveAt_ttvector((tt_obj)(opaque)a[0], (ttopaque)a[1]); break; case ttmethod_RemoveRange_ttvector: a0 = TTRemoveRange_ttvector((tt_obj)(opaque)a[0], (ttopaque)a[1], (ttopaque)a[2]); break; /* ttfield methods */ case ttmethod_Get_ttfield: a0 = (opaque)TTGet_ttfield((TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[0]); break; case ttmethod_GetValue_ttfield: a0 = TTGetValue_ttfield((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *)(opaque)a[2]); break; case ttmethod_SetValue_ttfield: a0 = TTSetValue_ttfield((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (TT_ARG_READ TT_ARG_ARRAY((1)) ttarg *)(opaque)a[2]); break; case ttmethod_ChangeValue_ttfield: a0 = TTChangeValue_ttfield((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (ttany)a[2], (ttany)a[3]); break; case ttmethod_ToEvcode_ttfield: a0 = TTToEvcode_ttfield((tt_obj)(opaque)a[0]); break; case ttmethod_FromEvcode_ttfield: a0 = (opaque)TTFromEvcode_ttfield((ttopaque)a[0]); break; case ttmethod_GetEvcode_ttfield: a0 = TTGetEvcode_ttfield((TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[0]); break; /* ttmethod methods */ case ttmethod_Get_ttmethod: a0 = (opaque)TTGet_ttmethod((TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[0]); break; case ttmethod_GetByAddress_ttmethod: a0 = (opaque)TTGetByAddress_ttmethod((TT_ARG_READ ttfunction_fn)(opaque)a[0]); break; case ttmethod_GetArraySizeA_ttmethod: a0 = TTGetArraySizeA_ttmethod((tt_obj)(opaque)a[0], (ttopaque)a[1], (ttopaque)a[2], (TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttarg *)(opaque)a[3]); break; case ttmethod_CheckArraySizesA_ttmethod: a0 = TTCheckArraySizesA_ttmethod((tt_obj)(opaque)a[0], (ttopaque)a[1], (TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttarg *)(opaque)a[2]); break; case ttmethod_CallA_ttmethod: a0 = TTCallA_ttmethod((tt_obj)(opaque)a[0], (TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *)(opaque)a[1], (ttopaque)a[2], (TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttarg *)(opaque)a[3]); break; case ttmethod_CallR_ttmethod: a0 = TTCallR_ttmethod((tt_obj)(opaque)a[0], (TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *)(opaque)a[1], (tt_obj)(opaque)a[2]); break; case ttmethod_CallV_ttmethod: a0 = TTCallV_ttmethod((tt_obj)(opaque)a[0], (TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *)(opaque)a[1], (ttopaque)a[2], (TT_ARG_ARRAY((1)) va_list *)(opaque)a[3]); break; case ttmethod_CallY_ttmethod: a0 = TTCallY_ttmethod((tt_obj)(opaque)a[0], (TT_ARG_WRITE TT_ARG_ARRAY((1)) ttarg *)(opaque)a[1], (ttopaque)a[2], (TT_ARG_READ TT_ARG_ARRAY((_P(3))) ttany *)(opaque)a[3]); break; /* ttevent methods */ case ttmethod_Create_ttevent: a0 = (opaque)TTCreate_ttevent((ttuint)a[0], (ttuint)a[1], (ttuint)a[2]); break; case ttmethod_Fire_ttevent: TTFire_ttevent((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; /* tteventbig methods */ case ttmethod_Create8_tteventbig: a0 = (opaque)TTCreate8_tteventbig((ttuint)a[0], (ttuint)a[1], (ttuint)a[2], (ttshort)a[3], (ttshort)a[4], (ttshort)a[5], (ttshort)a[6], (ttany)a[7], (ttany)a[8], (ttopaque)a[9], (TT_ARG_READ TT_ARG_ARRAY((_P(10))) ttbyte *)(opaque)a[10]); break; case ttmethod_Create4_tteventbig: a0 = (opaque)TTCreate4_tteventbig((ttuint)a[0], (ttuint)a[1], (ttuint)a[2], (ttshort)a[3], (ttshort)a[4], (ttshort)a[5], (ttshort)a[6]); break; case ttmethod_Create4s4_tteventbig: a0 = (opaque)TTCreate4s4_tteventbig((ttuint)a[0], (ttuint)a[1], (ttuint)a[2], (ttany)a[3], (ttany)a[4], (ttopaque)a[5], (TT_ARG_READ TT_ARG_ARRAY((_P(6))) ttbyte *)(opaque)a[6]); break; /* ttbitmask methods */ case ttmethod_Create_ttbitmask: a0 = (opaque)TTCreate_ttbitmask((ttany)a[0]); break; case ttmethod_CreateB2_ttbitmask: a0 = (opaque)TTCreateB2_ttbitmask((tt_obj)(opaque)a[0]); break; case ttmethod_CreateR_ttbitmask: a0 = (opaque)TTCreateR_ttbitmask((tt_obj)(opaque)a[0]); break; case ttmethod_CreateR2_ttbitmask: a0 = (opaque)TTCreateR2_ttbitmask((tt_obj)(opaque)a[0]); break; case ttmethod_Clear_ttbitmask: TTClear_ttbitmask((tt_obj)(opaque)a[0]); break; case ttmethod_Fill_ttbitmask: TTFill_ttbitmask((tt_obj)(opaque)a[0]); break; case ttmethod_Negate_ttbitmask: TTNegate_ttbitmask((tt_obj)(opaque)a[0]); break; case ttmethod_Change_ttbitmask: TTChange_ttbitmask((tt_obj)(opaque)a[0], (ttuint)a[1]); break; case ttmethod_Contains_ttbitmask: a0 = TTContains_ttbitmask((tt_obj)(opaque)a[0], (ttany)a[1]); break; case ttmethod_Add_ttbitmask: a0 = TTAdd_ttbitmask((tt_obj)(opaque)a[0], (ttany)a[1]); break; case ttmethod_AddB_ttbitmask: a0 = TTAddB_ttbitmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_AddR_ttbitmask: a0 = TTAddR_ttbitmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_Remove_ttbitmask: a0 = TTRemove_ttbitmask((tt_obj)(opaque)a[0], (ttany)a[1]); break; case ttmethod_RemoveB_ttbitmask: a0 = TTRemoveB_ttbitmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_RemoveR_ttbitmask: a0 = TTRemoveR_ttbitmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_Combine_ttbitmask: a0 = TTCombine_ttbitmask((tt_obj)(opaque)a[0], (ttany)a[1], (ttuint)a[2]); break; case ttmethod_CombineR_ttbitmask: a0 = TTCombineR_ttbitmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (ttuint)a[2]); break; case ttmethod_CombineB_ttbitmask: a0 = TTCombineB_ttbitmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (ttuint)a[2]); break; /* tteventmask methods */ case ttmethod_CreateB_tteventmask: a0 = (opaque)TTCreateB_tteventmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (tt_obj)(opaque)a[2]); break; case ttmethod_CreateB2_tteventmask: a0 = (opaque)TTCreateB2_tteventmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (tt_obj)(opaque)a[2]); break; case ttmethod_SetEvtypeMask_tteventmask: a0 = TTSetEvtypeMask_tteventmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_SetEvcodeMask_tteventmask: a0 = TTSetEvcodeMask_tteventmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_SetComponentMask_tteventmask: a0 = TTSetComponentMask_tteventmask((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_SetTruthTable_tteventmask: a0 = TTSetTruthTable_tteventmask((tt_obj)(opaque)a[0], (ttuint)a[1]); break; /* ttcallback methods */ /* ttlistener methods */ case ttmethod_Create_ttlistener: a0 = (opaque)TTCreate_ttlistener((tt_obj)(opaque)a[0], (ttuint)a[1], (ttuint)a[2], (TT_ARG_READ ttlistener_fn)(opaque)a[3], (ttany)a[4]); break; case ttmethod_CreateE_ttlistener: a0 = (opaque)TTCreateE_ttlistener((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (ttuint)a[2], (TT_ARG_READ ttlistener_fn)(opaque)a[3], (ttany)a[4]); break; case ttmethod_CreateR_ttlistener: a0 = (opaque)TTCreateR_ttlistener((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (ttuint)a[2], (TT_ARG_READ ttlistener_fn)(opaque)a[3], (ttopaque)a[4], (ttopaque)a[5], (tt_obj)(opaque)a[6]); break; case ttmethod_CreateDel_ttlistener: a0 = (opaque)TTCreateDel_ttlistener((tt_obj)(opaque)a[0], (ttuint)a[1], (TT_ARG_READ ttlistener_fn)(opaque)a[2]); break; case ttmethod_CreateAskclose_ttlistener: a0 = (opaque)TTCreateAskclose_ttlistener((tt_obj)(opaque)a[0], (ttuint)a[1], (TT_ARG_READ ttlistener_fn)(opaque)a[2]); break; case ttmethod_CreateKey_ttlistener: a0 = (opaque)TTCreateKey_ttlistener((tt_obj)(opaque)a[0], (ttuint)a[1], (ttuint)a[2], (ttuint)a[3], (TT_ARG_READ ttlistener_fn)(opaque)a[4]); break; case ttmethod_CreateMouse_ttlistener: a0 = (opaque)TTCreateMouse_ttlistener((tt_obj)(opaque)a[0], (ttuint)a[1], (ttuint)a[2], (ttuint)a[3], (TT_ARG_READ ttlistener_fn)(opaque)a[4]); break; case ttmethod_CreateActivate_ttlistener: a0 = (opaque)TTCreateActivate_ttlistener((tt_obj)(opaque)a[0], (ttuint)a[1], (TT_ARG_READ ttlistener_fn)(opaque)a[2]); break; case ttmethod_CreateChange_ttlistener: a0 = (opaque)TTCreateChange_ttlistener((tt_obj)(opaque)a[0], (ttuint)a[1], (ttuint)a[2], (TT_ARG_READ ttlistener_fn)(opaque)a[3]); break; case ttmethod_CreateKeyData_ttlistener: a0 = (opaque)TTCreateKeyData_ttlistener((tt_obj)(opaque)a[0], (TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[1], (ttuint)a[2], (TT_ARG_READ ttlistener_fn)(opaque)a[3]); break; case ttmethod_CreateExpose_ttlistener: a0 = (opaque)TTCreateExpose_ttlistener((tt_obj)(opaque)a[0], (ttuint)a[1], (TT_ARG_READ ttlistener_fn)(opaque)a[2]); break; case ttmethod_AddTo_ttlistener: TTAddTo_ttlistener((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_Remove_ttlistener: TTRemove_ttlistener((tt_obj)(opaque)a[0]); break; case ttmethod_SetArgsR_ttlistener: a0 = TTSetArgsR_ttlistener((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_SetEventMask_ttlistener: a0 = TTSetEventMask_ttlistener((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; /* tttimer methods */ case ttmethod_CreateR_tttimer: a0 = (opaque)TTCreateR_tttimer((tt_obj)(opaque)a[0], (ttuint)a[1], (TT_ARG_READ ttlistener_fn)(opaque)a[2], (ttopaque)a[3], (ttopaque)a[4], (tt_obj)(opaque)a[5], (ttany)a[6], (ttany)a[7]); break; case ttmethod_Create_tttimer: a0 = (opaque)TTCreate_tttimer((tt_obj)(opaque)a[0], (ttuint)a[1], (TT_ARG_READ ttlistener_fn)(opaque)a[2], (ttany)a[3], (ttany)a[4], (ttany)a[5]); break; case ttmethod_SetDelay_tttimer: TTSetDelay_tttimer((tt_obj)(opaque)a[0], (ttany)a[1], (ttany)a[2]); break; case ttmethod_SetEnabled_tttimer: TTSetEnabled_tttimer((tt_obj)(opaque)a[0], (ttbyte)a[1]); break; case ttmethod_IsEnabled_tttimer: a0 = TTIsEnabled_tttimer((tt_obj)(opaque)a[0]); break; /* ttcomponent methods */ case ttmethod_AddListener_ttcomponent: TTAddListener_ttcomponent((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_RemoveListener_ttcomponent: TTRemoveListener_ttcomponent((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_SetKeyData_ttcomponent: a0 = (opaque)TTSetKeyData_ttcomponent((tt_obj)(opaque)a[0], (TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[1], (ttany)a[2]); break; case ttmethod_GetKeyData_ttcomponent: a0 = TTGetKeyData_ttcomponent((tt_obj)(opaque)a[0], (TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[1]); break; case ttmethod_UnsetKeyData_ttcomponent: TTUnsetKeyData_ttcomponent((tt_obj)(opaque)a[0], (TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[1]); break; case ttmethod_GetData_ttcomponent: a0 = (opaque)TTGetData_ttcomponent((tt_obj)(opaque)a[0], (TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[1]); break; /* ttdata methods */ case ttmethod_SetData_ttdata: a0 = TTSetData_ttdata((tt_obj)(opaque)a[0], (ttany)a[1]); break; /* ttvisible methods */ case ttmethod_AddTo_ttvisible: TTAddTo_ttvisible((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (ttany)a[2]); break; case ttmethod_Validate_ttvisible: TTValidate_ttvisible((tt_obj)(opaque)a[0]); break; case ttmethod_Remove_ttvisible: TTRemove_ttvisible((tt_obj)(opaque)a[0]); break; case ttmethod_Invalidate_ttvisible: TTInvalidate_ttvisible((tt_obj)(opaque)a[0]); break; case ttmethod_SetVisible_ttvisible: TTSetVisible_ttvisible((tt_obj)(opaque)a[0], (ttbyte)a[1]); break; case ttmethod_SetTheme_ttvisible: a0 = TTSetTheme_ttvisible((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_Draw_ttvisible: TTDraw_ttvisible((tt_obj)(opaque)a[0], (ttshort)a[1], (ttshort)a[2], (ttshort)a[3], (ttshort)a[4], (ttshort)a[5], (TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte *)(opaque)a[6], (TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont *)(opaque)a[7], (TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr *)(opaque)a[8]); break; case ttmethod_BuiltinRepaint_ttvisible: TTBuiltinRepaint_ttvisible((tt_obj)(opaque)a[0], (ttshort)a[1], (ttshort)a[2], (ttshort)a[3], (ttshort)a[4]); break; case ttmethod_SetRepaint_ttvisible: a0 = TTSetRepaint_ttvisible((tt_obj)(opaque)a[0], (TT_ARG_READ ttvisible_repaint_fn)(opaque)a[1]); break; case ttmethod_Expose_ttvisible: TTExpose_ttvisible((tt_obj)(opaque)a[0], (ttshort)a[1], (ttshort)a[2], (ttshort)a[3], (ttshort)a[4]); break; case ttmethod_Add_ttvisible: TTAdd_ttvisible((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1], (ttany)a[2]); break; /* ttlayout methods */ /* ttboxlayout methods */ case ttmethod_Create_ttboxlayout: a0 = (opaque)TTCreate_ttboxlayout((ttany)a[0]); break; /* ttborderlayout methods */ /* ttnative methods */ case ttmethod_GetRoot_ttnative: a0 = (opaque)TTGetRoot_ttnative(); break; case ttmethod_GetW_ttnative: a0 = TTGetW_ttnative((tt_obj)(opaque)a[0]); break; case ttmethod_GetH_ttnative: a0 = TTGetH_ttnative((tt_obj)(opaque)a[0]); break; case ttmethod_Create_ttnative: a0 = (opaque)TTCreate_ttnative((ttany)a[0]); break; /* ttwidget methods */ case ttmethod_SetLayout_ttwidget: TTSetLayout_ttwidget((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_SetXY_ttwidget: a0 = TTSetXY_ttwidget((tt_obj)(opaque)a[0], (ttshort)a[1], (ttshort)a[2]); break; case ttmethod_SetWH_ttwidget: a0 = TTSetWH_ttwidget((tt_obj)(opaque)a[0], (ttshort)a[1], (ttshort)a[2]); break; case ttmethod_SetXl_ttwidget: a0 = TTSetXl_ttwidget((tt_obj)(opaque)a[0], (ttint)a[1]); break; case ttmethod_SetYl_ttwidget: a0 = TTSetYl_ttwidget((tt_obj)(opaque)a[0], (ttint)a[1]); break; case ttmethod_SetWl_ttwidget: a0 = TTSetWl_ttwidget((tt_obj)(opaque)a[0], (ttint)a[1]); break; case ttmethod_SetHl_ttwidget: a0 = TTSetHl_ttwidget((tt_obj)(opaque)a[0], (ttint)a[1]); break; case ttmethod_SetTooltip_ttwidget: a0 = TTSetTooltip_ttwidget((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_SetXlYl_ttwidget: a0 = TTSetXlYl_ttwidget((tt_obj)(opaque)a[0], (ttuint)a[1], (ttint)a[2], (ttint)a[3]); break; case ttmethod_SetWlHl_ttwidget: a0 = TTSetWlHl_ttwidget((tt_obj)(opaque)a[0], (ttuint)a[1], (ttint)a[2], (ttint)a[3]); break; case ttmethod_SetXYWH_ttwidget: a0 = TTSetXYWH_ttwidget((tt_obj)(opaque)a[0], (ttuint)a[1], (ttshort)a[2], (ttshort)a[3], (ttshort)a[4], (ttshort)a[5]); break; case ttmethod_SetX_ttwidget: a0 = TTSetX_ttwidget((tt_obj)(opaque)a[0], (ttshort)a[1]); break; case ttmethod_SetY_ttwidget: a0 = TTSetY_ttwidget((tt_obj)(opaque)a[0], (ttshort)a[1]); break; case ttmethod_SetW_ttwidget: a0 = TTSetW_ttwidget((tt_obj)(opaque)a[0], (ttshort)a[1]); break; case ttmethod_SetH_ttwidget: a0 = TTSetH_ttwidget((tt_obj)(opaque)a[0], (ttshort)a[1]); break; /* ttlabel methods */ case ttmethod_SetFontD_ttlabel: TTSetFontD_ttlabel((tt_obj)(opaque)a[0], (ttopaque)a[1], (TT_ARG_DIE TT_ARG_ARRAY((_P(2))) ttfont *)(opaque)a[2]); break; case ttmethod_SetFont_ttlabel: a0 = TTSetFont_ttlabel((tt_obj)(opaque)a[0], (TT_ARG_READ TT_ARG_ARRAY_Z ttfont *)(opaque)a[1]); break; case ttmethod_SetText_ttlabel: a0 = TTSetText_ttlabel((tt_obj)(opaque)a[0], (TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[1]); break; case ttmethod_Create_ttlabel: a0 = (opaque)TTCreate_ttlabel((TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[0]); break; /* tttooltip methods */ case ttmethod_SetWidget_tttooltip: a0 = TTSetWidget_tttooltip((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; /* ttbuttongroup methods */ case ttmethod_Add_ttbuttongroup: TTAdd_ttbuttongroup((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_Remove_ttbuttongroup: TTRemove_ttbuttongroup((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_SetChecked_ttbuttongroup: TTSetChecked_ttbuttongroup((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; /* ttanybutton methods */ case ttmethod_SetAttrD_ttanybutton: TTSetAttrD_ttanybutton((tt_obj)(opaque)a[0], (ttshort)a[1], (ttshort)a[2], (ttshort)a[3], (TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr *)(opaque)a[4]); break; case ttmethod_SetAttr_ttanybutton: a0 = TTSetAttr_ttanybutton((tt_obj)(opaque)a[0], (ttshort)a[1], (ttshort)a[2], (ttshort)a[3], (TT_ARG_READ TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr *)(opaque)a[4]); break; case ttmethod_SetFont_ttanybutton: a0 = TTSetFont_ttanybutton((tt_obj)(opaque)a[0], (ttshort)a[1], (ttshort)a[2], (ttshort)a[3], (TT_ARG_READ TT_ARG_ARRAY((_P(3),*,_P(4))) ttfont *)(opaque)a[4]); break; case ttmethod_SetText_ttanybutton: a0 = TTSetText_ttanybutton((tt_obj)(opaque)a[0], (ttshort)a[1], (ttshort)a[2], (ttshort)a[3], (TT_ARG_READ TT_ARG_ARRAY((_P(3),*,_P(4))) ttbyte *)(opaque)a[4]); break; case ttmethod_Create_ttanybutton: a0 = (opaque)TTCreate_ttanybutton((ttshort)a[0], (ttshort)a[1], (ttshort)a[2], (TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte *)(opaque)a[3]); break; /* ttbutton methods */ case ttmethod_SetPressed_ttbutton: TTSetPressed_ttbutton((tt_obj)(opaque)a[0], (ttbyte)a[1]); break; case ttmethod_IsPressed_ttbutton: a0 = TTIsPressed_ttbutton((tt_obj)(opaque)a[0]); break; case ttmethod_Create_ttbutton: a0 = (opaque)TTCreate_ttbutton((ttshort)a[0], (ttshort)a[1], (ttshort)a[2], (TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte *)(opaque)a[3]); break; /* ttcheckbutton methods */ case ttmethod_SetChecked_ttcheckbutton: TTSetChecked_ttcheckbutton((tt_obj)(opaque)a[0], (ttbyte)a[1]); break; case ttmethod_IsChecked_ttcheckbutton: a0 = TTIsChecked_ttcheckbutton((tt_obj)(opaque)a[0]); break; case ttmethod_Create_ttcheckbutton: a0 = (opaque)TTCreate_ttcheckbutton((ttshort)a[0], (ttshort)a[1], (ttshort)a[2], (TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte *)(opaque)a[3]); break; /* ttradiobutton methods */ case ttmethod_AddToGroup_ttradiobutton: TTAddToGroup_ttradiobutton((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_RemoveFromGroup_ttradiobutton: TTRemoveFromGroup_ttradiobutton((tt_obj)(opaque)a[0]); break; case ttmethod_Create_ttradiobutton: a0 = (opaque)TTCreate_ttradiobutton((ttshort)a[0], (ttshort)a[1], (ttshort)a[2], (TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte *)(opaque)a[3]); break; /* ttanyscroll methods */ case ttmethod_SetOrientation_ttanyscroll: a0 = TTSetOrientation_ttanyscroll((tt_obj)(opaque)a[0], (ttbyte)a[1]); break; case ttmethod_SetSize_ttanyscroll: a0 = TTSetSize_ttanyscroll((tt_obj)(opaque)a[0], (ttint)a[1]); break; case ttmethod_SetRealSize_ttanyscroll: a0 = TTSetRealSize_ttanyscroll((tt_obj)(opaque)a[0], (ttint)a[1]); break; case ttmethod_SetViewSize_ttanyscroll: a0 = TTSetViewSize_ttanyscroll((tt_obj)(opaque)a[0], (ttint)a[1]); break; case ttmethod_SetPosition_ttanyscroll: a0 = TTSetPosition_ttanyscroll((tt_obj)(opaque)a[0], (ttint)a[1]); break; /* ttscrollbar methods */ case ttmethod_Create1_ttscrollbar: a0 = (opaque)TTCreate1_ttscrollbar((ttbyte)a[0]); break; case ttmethod_Create4_ttscrollbar: a0 = (opaque)TTCreate4_ttscrollbar((ttbyte)a[0], (ttint)a[1], (ttint)a[2], (ttint)a[3]); break; /* ttslider methods */ case ttmethod_SetSlideMin_ttslider: a0 = TTSetSlideMin_ttslider((tt_obj)(opaque)a[0], (ttint)a[1]); break; case ttmethod_SetSlideMax_ttslider: a0 = TTSetSlideMax_ttslider((tt_obj)(opaque)a[0], (ttint)a[1]); break; case ttmethod_SetSlideValue_ttslider: a0 = TTSetSlideValue_ttslider((tt_obj)(opaque)a[0], (ttint)a[1]); break; case ttmethod_Create_ttslider: a0 = (opaque)TTCreate_ttslider((ttbyte)a[0], (ttint)a[1]); break; /* ttprogressbar methods */ case ttmethod_Create_ttprogressbar: a0 = (opaque)TTCreate_ttprogressbar((ttbyte)a[0]); break; /* ttscrollpane methods */ case ttmethod_Create_ttscrollpane: a0 = (opaque)TTCreate_ttscrollpane((ttshort)a[0], (ttshort)a[1]); break; case ttmethod_SetBarX_ttscrollpane: a0 = TTSetBarX_ttscrollpane((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_SetBarY_ttscrollpane: a0 = TTSetBarY_ttscrollpane((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; /* ttwindow methods */ case ttmethod_SetTitle_ttwindow: a0 = TTSetTitle_ttwindow((tt_obj)(opaque)a[0], (TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[1]); break; /* ttframe methods */ case ttmethod_SetMenubar_ttframe: a0 = TTSetMenubar_ttframe((tt_obj)(opaque)a[0], (tt_obj)(opaque)a[1]); break; case ttmethod_Create_ttframe: a0 = (opaque)TTCreate_ttframe((TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[0]); break; /* ttscroller methods */ case ttmethod_Create_ttscroller: a0 = (opaque)TTCreate_ttscroller((ttshort)a[0], (ttshort)a[1]); break; /* ttmenuitem methods */ /* ttcheckmenuitem methods */ /* ttradiomenuitem methods */ /* ttmenu methods */ /* ttmenubar methods */ case ttmethod_GetDefault_ttmenubar: a0 = (opaque)TTGetDefault_ttmenubar(); break; /* ttanytext methods */ /* tttextfield methods */ /* tttextarea methods */ /* tttheme methods */ case ttmethod_GetDefault_tttheme: a0 = (opaque)TTGetDefault_tttheme(); break; /* ttapplication methods */ case ttmethod_Create_ttapplication: a0 = (opaque)TTCreate_ttapplication((TT_ARG_READ TT_ARG_ARRAY_Z ttbyte *)(opaque)a[0]); break; case ttmethod_Get_ttapplication: a0 = (opaque)TTGet_ttapplication(); break; /* TTSet*_* methods omitted, they are listed above ! */ /* TTGet*_* methods */ default: if (m_order >= ttmethod_FN_get_first && m_order < ttmethod_FN_get_last) { return TTGetField_ttobj((tt_obj)(opaque)a[1], (tt_obj)(opaque)((order_ttfield<<TT_MAGIC_SHIFT) | (m_order - ttmethod_FN_get_first + ttobj_field_first)), return_value); } return TT_FALSE; } else return TT_FALSE; return_value->type = m->return_type; return_value->value = a0; return TT_TRUE; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/seterrno.h��������������������������������������������������������������������0000664�0000000�0000000�00000001021�13775351206�0016465�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_SETERRNO_H #define TT_SETERRNO_H /* error handling */ TT_INLINE void SetErrno(ttuint E, ttuint S) { s_tt_errno *L = GetErrnoLocation(); L->E = E; L->S = S; } #endif /* TT_SETERRNO_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/theme.h�����������������������������������������������������������������������0000664�0000000�0000000�00000001522�13775351206�0015734�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_THEME_H #define TT_THEME_H #define myTheme(o) ((o)->theme ? (o)->theme : GetDefault_tttheme()) TT_INLINE tobj _myMenubar_id(ttmenubar m) { return (m || (m = GetDefault_ttmenubar())) ? m->id : 0; } TT_INLINE ttuint _myMenubar_n(ttmenubar m) { return (m || (m = GetDefault_ttmenubar())) ? m->native : 0; } #define myMenubar(o) ((o)->menubar ? (o)->menubar : GetDefault_ttmenubar()) #define myMenubar_id(o) _myMenubar_id((o)->menubar) #define myMenubar_n(o) _myMenubar_n((o)->menubar) #endif /* TT_THEME_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/tree_m4.h���������������������������������������������������������������������0000664�0000000�0000000�00000122471�13775351206�0016200�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/tree.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * tree_m4.h -- internal header for libTT objects hierarchy tree */ #ifndef TT_TREEM4_H #define TT_TREEM4_H /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #define TT_TYPELIST(el) \ el(void) el(ttbyte) el(ttshort) el(ttint) el(ttcol) el(ttfont) el(ttattr) el(ttopaque) el(ttany) el(ttfunction_fn) el(va_list) el(ttarg) #define TT_LIST(el) \ el(ttobj) el(ttclass) el(ttobject) el(ttvector) el(ttfield) el(ttmethod) el(ttevent) el(tteventbig) el(ttbitmask) el(tteventmask) el(ttcallback) el(ttlistener) el(tttimer) el(ttcomponent) el(ttdata) el(ttvisible) el(ttlayout) el(ttboxlayout) el(ttborderlayout) el(ttnative) el(ttwidget) el(ttlabel) el(tttooltip) el(ttbuttongroup) el(ttanybutton) el(ttbutton) el(ttcheckbutton) el(ttradiobutton) el(ttanyscroll) el(ttscrollbar) el(ttslider) el(ttprogressbar) el(ttscrollpane) el(ttwindow) el(ttframe) el(ttscroller) el(ttmenuitem) el(ttcheckmenuitem) el(ttradiomenuitem) el(ttmenu) el(ttmenubar) el(ttanytext) el(tttextfield) el(tttextarea) el(tttheme) el(ttapplication) #define TT_NLIST(el) \ el(ttclass) el(ttobject) el(ttvector) el(ttfield) el(ttmethod) el(ttevent) el(tteventbig) el(ttbitmask) el(tteventmask) el(ttcallback) el(ttlistener) el(tttimer) el(ttcomponent) el(ttdata) el(ttvisible) el(ttlayout) el(ttboxlayout) el(ttborderlayout) el(ttnative) el(ttwidget) el(ttlabel) el(tttooltip) el(ttbuttongroup) el(ttanybutton) el(ttbutton) el(ttcheckbutton) el(ttradiobutton) el(ttanyscroll) el(ttscrollbar) el(ttslider) el(ttprogressbar) el(ttscrollpane) el(ttwindow) el(ttframe) el(ttscroller) el(ttmenuitem) el(ttcheckmenuitem) el(ttradiomenuitem) el(ttmenu) el(ttmenubar) el(ttanytext) el(tttextfield) el(tttextarea) el(tttheme) el(ttapplication) #define super_(t) TT_CAT(super_,t) #define order_(t) TT_CAT(order_,t) #define id_ttclass_(t) TT_CAT(id_ttclass_,t) #define magicmask_(t) TT_CAT(magicmask_,t) #define magic_(t) TT_CAT(magic_,t) /* set str_order_xxx defines for objects */ #define str_order_ttobj "\x01" #define str_order_ttclass "\x02" #define str_order_ttobject "\x03" #define str_order_ttvector "\x04" #define str_order_ttfield "\x05" #define str_order_ttmethod "\x06" #define str_order_ttevent "\x07" #define str_order_tteventbig "\x08" #define str_order_ttbitmask "\x09" #define str_order_tteventmask "\x0a" #define str_order_ttcallback "\x0b" #define str_order_ttlistener "\x0c" #define str_order_tttimer "\x0d" #define str_order_ttcomponent "\x0e" #define str_order_ttdata "\x0f" #define str_order_ttvisible "\x10" #define str_order_ttlayout "\x11" #define str_order_ttboxlayout "\x12" #define str_order_ttborderlayout "\x13" #define str_order_ttnative "\x14" #define str_order_ttwidget "\x15" #define str_order_ttlabel "\x16" #define str_order_tttooltip "\x17" #define str_order_ttbuttongroup "\x18" #define str_order_ttanybutton "\x19" #define str_order_ttbutton "\x1a" #define str_order_ttcheckbutton "\x1b" #define str_order_ttradiobutton "\x1c" #define str_order_ttanyscroll "\x1d" #define str_order_ttscrollbar "\x1e" #define str_order_ttslider "\x1f" #define str_order_ttprogressbar "\x20" #define str_order_ttscrollpane "\x21" #define str_order_ttwindow "\x22" #define str_order_ttframe "\x23" #define str_order_ttscroller "\x24" #define str_order_ttmenuitem "\x25" #define str_order_ttcheckmenuitem "\x26" #define str_order_ttradiomenuitem "\x27" #define str_order_ttmenu "\x28" #define str_order_ttmenubar "\x29" #define str_order_ttanytext "\x2a" #define str_order_tttextfield "\x2b" #define str_order_tttextarea "\x2c" #define str_order_tttheme "\x2d" #define str_order_ttapplication "\x2e" #define str_order_first str_order_ttobj #define str_order_last "\x2f" /* set str_order_xxx defines for native types */ #define str_order_void "\x30" #define str_order_ttbyte "\x31" #define str_order_ttshort "\x32" #define str_order_ttint "\x33" #define str_order_ttcol "\x34" #define str_order_ttfont "\x35" #define str_order_ttattr "\x36" #define str_order_ttopaque "\x37" #define str_order_ttany "\x38" #define str_order_ttfunction_fn "\x39" #define str_order_va_list "\x3a" #define str_order_ttarg "\x3b" #define str_order_type_first str_order_void #define str_order_type_last "\x3c" #define str_order_ttsbyte str_order_ttbyte #define str_order_ttushort str_order_ttshort #define str_order_ttuint str_order_ttint /* set order_xxx defines for objects */ #define order_first 0 #define order_ttobj order_first #define order_ttclass 1 #define order_ttobject 2 #define order_ttvector 3 #define order_ttfield 4 #define order_ttmethod 5 #define order_ttevent 6 #define order_tteventbig 7 #define order_ttbitmask 8 #define order_tteventmask 9 #define order_ttcallback 10 #define order_ttlistener 11 #define order_tttimer 12 #define order_ttcomponent 13 #define order_ttdata 14 #define order_ttvisible 15 #define order_ttlayout 16 #define order_ttboxlayout 17 #define order_ttborderlayout 18 #define order_ttnative 19 #define order_ttwidget 20 #define order_ttlabel 21 #define order_tttooltip 22 #define order_ttbuttongroup 23 #define order_ttanybutton 24 #define order_ttbutton 25 #define order_ttcheckbutton 26 #define order_ttradiobutton 27 #define order_ttanyscroll 28 #define order_ttscrollbar 29 #define order_ttslider 30 #define order_ttprogressbar 31 #define order_ttscrollpane 32 #define order_ttwindow 33 #define order_ttframe 34 #define order_ttscroller 35 #define order_ttmenuitem 36 #define order_ttcheckmenuitem 37 #define order_ttradiomenuitem 38 #define order_ttmenu 39 #define order_ttmenubar 40 #define order_ttanytext 41 #define order_tttextfield 42 #define order_tttextarea 43 #define order_tttheme 44 #define order_ttapplication 45 #define order_last 46 /* set order_xxx enums for native types */ #define order_void 47 #define order_ttbyte 48 #define order_ttshort 49 #define order_ttint 50 #define order_ttcol 51 #define order_ttfont 52 #define order_ttattr 53 #define order_ttopaque 54 #define order_ttany 55 #define order_ttfunction_fn 56 #define order_va_list 57 #define order_ttarg 58 #define order_ttsbyte order_ttbyte #define order_ttushort order_ttshort #define order_ttuint order_ttint #define order_type_first order_void, #define order_type_last (order_ttarg + 1) #define order_ttclass_usedbits 6 #define order_ttclass_bitmask 63 #ifndef TT_SIZEOF_ttopaque # error internal error: undefined TT_SIZEOF_ttopaque ! #endif #if 8 * TT_SIZEOF_ttopaque < order_ttclass_usedbits + TT_MAGIC_SHIFT # error internal error: order_ttclass_usedbits + TT_MAGIC_SHIFT overflows 8 * sizeof(ttopaque) ! #endif /* set id_ttclass_xxx enums for objects */ typedef enum e_id_ttclass_ttobj { id_ttclass_first = (order_ttclass<<TT_MAGIC_SHIFT) | order_ttobj, id_ttclass_ttobj = id_ttclass_first, id_ttclass_ttclass, id_ttclass_ttobject, id_ttclass_ttvector, id_ttclass_ttfield, id_ttclass_ttmethod, id_ttclass_ttevent, id_ttclass_tteventbig, id_ttclass_ttbitmask, id_ttclass_tteventmask, id_ttclass_ttcallback, id_ttclass_ttlistener, id_ttclass_tttimer, id_ttclass_ttcomponent, id_ttclass_ttdata, id_ttclass_ttvisible, id_ttclass_ttlayout, id_ttclass_ttboxlayout, id_ttclass_ttborderlayout, id_ttclass_ttnative, id_ttclass_ttwidget, id_ttclass_ttlabel, id_ttclass_tttooltip, id_ttclass_ttbuttongroup, id_ttclass_ttanybutton, id_ttclass_ttbutton, id_ttclass_ttcheckbutton, id_ttclass_ttradiobutton, id_ttclass_ttanyscroll, id_ttclass_ttscrollbar, id_ttclass_ttslider, id_ttclass_ttprogressbar, id_ttclass_ttscrollpane, id_ttclass_ttwindow, id_ttclass_ttframe, id_ttclass_ttscroller, id_ttclass_ttmenuitem, id_ttclass_ttcheckmenuitem, id_ttclass_ttradiomenuitem, id_ttclass_ttmenu, id_ttclass_ttmenubar, id_ttclass_ttanytext, id_ttclass_tttextfield, id_ttclass_tttextarea, id_ttclass_tttheme, id_ttclass_ttapplication, id_ttclass_last, /* set order_xxx enums for native types */ id_ttclass_void, id_ttclass_ttbyte, id_ttclass_ttshort, id_ttclass_ttint, id_ttclass_ttcol, id_ttclass_ttfont, id_ttclass_ttattr, id_ttclass_ttopaque, id_ttclass_ttany, id_ttclass_ttfunction_fn, id_ttclass_va_list, id_ttclass_ttarg, id_ttclass_ttsbyte = id_ttclass_ttbyte, id_ttclass_ttushort = id_ttclass_ttshort, id_ttclass_ttuint = id_ttclass_ttint, id_ttclass_type_first = id_ttclass_void, id_ttclass_type_last = id_ttclass_ttarg + 1, } e_id_ttclass_types; /* * NOTE: * * magicmask_* and magic_* are autogenerated using a quite intricated m4 algorythm. * * the effect is shown below, on a cutdown hierarchy tree. * in the picture, first number is magic_*, second is magicmask_* * * ________ttobj * ________/ ____/(0,0) * ________/ ____/ | * / / | *ttcallback ttevent ttcomponent *(0x1,0x3) (0x2,0x3) ___(0x3,0x3)___ * _____/ / \ \_____ * _____/ / \ \_____ * / / \ \ * _ttvisible_ ttbuttongroup tttheme ttapplication * /(0x7,0x1F)\\__ (0xB,0x1F) (0xF,0x1F) (0x13,0x1F) * / | \ \_________ * / | \ \ * ttnative ttwidget ttmenuitem ttmenubar *(0x27,0xFF)(0x47,0xFF) (0x67,0xFF) (0x87,0xFF) * * magic_* of a children is the parent's one, plus the progressive number * (conveniently shifted) of the children in the parent's children list. * * as you can see, all children of the same parent share the same magicmask; * this magicmask is the smallest bit mask that can hold all children magic_* numbers. * in other words, the tree is coded with a Huffman-like strategy * (node frequencies do not apply in this case) * * with this setup, runtime type checking and casting is extremely simple: * to check if an object of type A can be cast to type B, just do: * * if ((magic_A & magicmask_B) == magic_B) { * success; * } else { * fail; * } * */ /* set magicmask_xxx enums */ typedef enum e_magicmask_ttobj { magicmask_ttobj = 0, magicmask_ttclass = 0x7, magicmask_ttobject = 0x7, magicmask_ttvector = 0x3f, magicmask_ttfield = 0x7, magicmask_ttmethod = 0x7, magicmask_ttevent = 0x3f, magicmask_tteventbig = 0x7f, magicmask_ttbitmask = 0x3f, magicmask_tteventmask = 0x3f, magicmask_ttcallback = 0x3f, magicmask_ttlistener = 0x7f, magicmask_tttimer = 0xff, magicmask_ttcomponent = 0x3f, magicmask_ttdata = 0x1ff, magicmask_ttvisible = 0x1ff, magicmask_ttlayout = 0x1ff, magicmask_ttboxlayout = 0x7ff, magicmask_ttborderlayout = 0x7ff, magicmask_ttnative = 0xfff, magicmask_ttwidget = 0xfff, magicmask_ttlabel = 0x7fff, magicmask_tttooltip = 0xffff, magicmask_ttbuttongroup = 0x1ff, magicmask_ttanybutton = 0x7fff, magicmask_ttbutton = 0x1ffff, magicmask_ttcheckbutton = 0x3ffff, magicmask_ttradiobutton = 0x7ffff, magicmask_ttanyscroll = 0x1ffff, magicmask_ttscrollbar = 0x7ffff, magicmask_ttslider = 0x7ffff, magicmask_ttprogressbar = 0x7ffff, magicmask_ttscrollpane = 0x7fff, magicmask_ttwindow = 0x7fff, magicmask_ttframe = 0x1ffff, magicmask_ttscroller = 0x1ffff, magicmask_ttmenuitem = 0xfff, magicmask_ttcheckmenuitem = 0x3fff, magicmask_ttradiomenuitem = 0x7fff, magicmask_ttmenu = 0x3fff, magicmask_ttmenubar = 0xfff, magicmask_ttanytext = 0x1ffff, magicmask_tttextfield = 0x3ffff, magicmask_tttextarea = 0x7ffff, magicmask_tttheme = 0x1ff, magicmask_ttapplication = 0x1ff, magicmask_last } e_magicmask_ttobj; /* set magic_xxx enums */ typedef enum e_magic_ttobj { magic_ttobj = 0, magic_ttclass = 0x1, magic_ttobject = 0x2, magic_ttvector = 0xa, magic_ttfield = 0x3, magic_ttmethod = 0x4, magic_ttevent = 0x12, magic_tteventbig = 0x52, magic_ttbitmask = 0x1a, magic_tteventmask = 0x22, magic_ttcallback = 0x2a, magic_ttlistener = 0x6a, magic_tttimer = 0xea, magic_ttcomponent = 0x32, magic_ttdata = 0x72, magic_ttvisible = 0xb2, magic_ttlayout = 0xf2, magic_ttboxlayout = 0x2f2, magic_ttborderlayout = 0x4f2, magic_ttnative = 0x2b2, magic_ttwidget = 0x4b2, magic_ttlabel = 0x14b2, magic_tttooltip = 0x94b2, magic_ttbuttongroup = 0x132, magic_ttanybutton = 0x24b2, magic_ttbutton = 0xa4b2, magic_ttcheckbutton = 0x2a4b2, magic_ttradiobutton = 0x6a4b2, magic_ttanyscroll = 0x124b2, magic_ttscrollbar = 0x324b2, magic_ttslider = 0x524b2, magic_ttprogressbar = 0x724b2, magic_ttscrollpane = 0x34b2, magic_ttwindow = 0x44b2, magic_ttframe = 0xc4b2, magic_ttscroller = 0x144b2, magic_ttmenuitem = 0x6b2, magic_ttcheckmenuitem = 0x16b2, magic_ttradiomenuitem = 0x56b2, magic_ttmenu = 0x26b2, magic_ttmenubar = 0x8b2, magic_ttanytext = 0x1c4b2, magic_tttextfield = 0x3c4b2, magic_tttextarea = 0x7c4b2, magic_tttheme = 0x172, magic_ttapplication = 0x1b2, magic_last } e_magic_ttobj; /* defines for existing object fields */ #define ttobj_field_first 0 #define ttobj_field_last 0 #define ttclass_field_first 0 #define ttclass_field_last 0 #define ttobject_field_first 0 #define ttobject_refcount 0 #define ttobject_oflags 1 #define ttobject_user_data 2 #define ttobject_events_inprogress 3 #define ttobject_events_informed 4 #define ttobject_field_last 5 #define ttvector_field_first 5 #define ttvector_array_size 5 #define ttvector_array_n 6 #define ttvector_array 7 #define ttvector_field_last 8 #define ttfield_field_first 8 #define ttfield_name_len 8 #define ttfield_name 9 #define ttfield_type 10 #define ttfield_field_last 11 #define ttmethod_field_first 11 #define ttmethod_name_len 11 #define ttmethod_name 12 #define ttmethod_address 13 #define ttmethod_return_type 14 #define ttmethod_parameter_type 15 #define ttmethod_field_last 16 #define ttevent_field_first 16 #define ttevent_component 16 #define ttevent_evtype 17 #define ttevent_evcode 18 #define ttevent_evflags 19 #define ttevent_prev 20 #define ttevent_next 21 #define ttevent_field_last 22 #define tteventbig_field_first 22 #define tteventbig_x 22 #define tteventbig_y 23 #define tteventbig_w 24 #define tteventbig_h 25 #define tteventbig_value 26 #define tteventbig_old_value 27 #define tteventbig_data_len 28 #define tteventbig_data 29 #define tteventbig_field_last 30 #define ttbitmask_field_first 30 #define ttbitmask_field_last 30 #define tteventmask_field_first 30 #define tteventmask_evtype_mask 30 #define tteventmask_evcode_mask 31 #define tteventmask_component_mask 32 #define tteventmask_truth_table 33 #define tteventmask_field_last 34 #define ttcallback_field_first 34 #define ttcallback_lflags 34 #define ttcallback_component 35 #define ttcallback_prev 36 #define ttcallback_next 37 #define ttcallback_field_last 38 #define ttlistener_field_first 38 #define ttlistener_event 38 #define ttlistener_function 39 #define ttlistener_arg_component_n 40 #define ttlistener_arg_event_n 41 #define ttlistener_args 42 #define ttlistener_event_mask 43 #define ttlistener_field_last 44 #define tttimer_field_first 44 #define tttimer_delay_t 44 #define tttimer_delay_f 45 #define tttimer_timer_prev 46 #define tttimer_timer_next 47 #define tttimer_field_last 48 #define ttcomponent_field_first 48 #define ttcomponent_callbacks 48 #define ttcomponent_listeners 49 #define ttcomponent_timers 50 #define ttcomponent_datas 51 #define ttcomponent_field_last 52 #define ttdata_field_first 52 #define ttdata_component 52 #define ttdata_key_len 53 #define ttdata_key 54 #define ttdata_data 55 #define ttdata_field_last 56 #define ttvisible_field_first 56 #define ttvisible_vflags 56 #define ttvisible_prev 57 #define ttvisible_next 58 #define ttvisible_parent 59 #define ttvisible_child_first 60 #define ttvisible_child_last 61 #define ttvisible_constraint 62 #define ttvisible_theme 63 #define ttvisible_repaint 64 #define ttvisible_field_last 65 #define ttlayout_field_first 65 #define ttlayout_widget 65 #define ttlayout_field_last 66 #define ttboxlayout_field_first 66 #define ttboxlayout_orientation 66 #define ttboxlayout_field_last 67 #define ttborderlayout_field_first 67 #define ttborderlayout_field_last 67 #define ttnative_field_first 67 #define ttnative_field_last 67 #define ttwidget_field_first 67 #define ttwidget_x 67 #define ttwidget_y 68 #define ttwidget_w 69 #define ttwidget_h 70 #define ttwidget_layout 71 #define ttwidget_xl 72 #define ttwidget_yl 73 #define ttwidget_wl 74 #define ttwidget_hl 75 #define ttwidget_col 76 #define ttwidget_tooltip 77 #define ttwidget_field_last 78 #define ttlabel_field_first 78 #define ttlabel_text_len 78 #define ttlabel_text 79 #define ttlabel_field_last 80 #define tttooltip_field_first 80 #define tttooltip_widget 80 #define tttooltip_field_last 81 #define ttbuttongroup_field_first 81 #define ttbuttongroup_group_first 81 #define ttbuttongroup_group_last 82 #define ttbuttongroup_checked 83 #define ttbuttongroup_field_last 84 #define ttanybutton_field_first 84 #define ttanybutton_text_width 84 #define ttanybutton_text_height 85 #define ttanybutton_text 86 #define ttanybutton_field_last 87 #define ttbutton_field_first 87 #define ttbutton_field_last 87 #define ttcheckbutton_field_first 87 #define ttcheckbutton_field_last 87 #define ttradiobutton_field_first 87 #define ttradiobutton_group 87 #define ttradiobutton_group_prev 88 #define ttradiobutton_group_next 89 #define ttradiobutton_field_last 90 #define ttanyscroll_field_first 90 #define ttanyscroll_orientation 90 #define ttanyscroll_size 91 #define ttanyscroll_real_size 92 #define ttanyscroll_view_size 93 #define ttanyscroll_position 94 #define ttanyscroll_real_position 95 #define ttanyscroll_state 96 #define ttanyscroll_field_last 97 #define ttscrollbar_field_first 97 #define ttscrollbar_field_last 97 #define ttslider_field_first 97 #define ttslider_slide_min 97 #define ttslider_slide_max 98 #define ttslider_slide_value 99 #define ttslider_field_last 100 #define ttprogressbar_field_first 100 #define ttprogressbar_field_last 100 #define ttscrollpane_field_first 100 #define ttscrollpane_bar_x 100 #define ttscrollpane_bar_y 101 #define ttscrollpane_field_last 102 #define ttwindow_field_first 102 #define ttwindow_title_len 102 #define ttwindow_title 103 #define ttwindow_field_last 104 #define ttframe_field_first 104 #define ttframe_menubar 104 #define ttframe_field_last 105 #define ttscroller_field_first 105 #define ttscroller_scrollpane 105 #define ttscroller_field_last 106 #define ttmenuitem_field_first 106 #define ttmenuitem_name_len 106 #define ttmenuitem_name 107 #define ttmenuitem_field_last 108 #define ttcheckmenuitem_field_first 108 #define ttcheckmenuitem_field_last 108 #define ttradiomenuitem_field_first 108 #define ttradiomenuitem_field_last 108 #define ttmenu_field_first 108 #define ttmenu_menubar 108 #define ttmenu_field_last 109 #define ttmenubar_field_first 109 #define ttmenubar_field_last 109 #define ttanytext_field_first 109 #define ttanytext_text_len 109 #define ttanytext_text 110 #define ttanytext_field_last 111 #define tttextfield_field_first 111 #define tttextfield_field_last 111 #define tttextarea_field_first 111 #define tttextarea_field_last 111 #define tttheme_field_first 111 #define tttheme_name_len 111 #define tttheme_name 112 #define tttheme_field_last 113 #define ttapplication_field_first 113 #define ttapplication_name_len 113 #define ttapplication_name 114 #define ttapplication_field_last 115 #define ttobj_field_max 115 /* defines of existing object methods */ /* generic functions */ #define ttmethod_LibraryVersion 0 #define ttmethod_ExitMainLoop 1 #define ttmethod_New 2 #define ttmethod_Del 3 #define ttmethod_ClassOf 4 #define ttmethod_SuperClassOf 5 #define ttmethod_InstanceOf 6 #define ttmethod_ClassNameOf 7 /* ttobj methods */ #define ttmethod_GetField_ttobj 8 #define ttmethod_SetField_ttobj 9 #define ttmethod_ChangeField_ttobj 10 /* ttclass methods */ #define ttmethod_GetName_ttclass 11 #define ttmethod_GetSize_ttclass 12 #define ttmethod_GetSuper_ttclass 13 #define ttmethod_IsInstance_ttclass 14 #define ttmethod_FromType_ttclass 15 #define ttmethod_IsArrayType_ttclass 16 #define ttmethod_IsPrimitiveType_ttclass 17 /* ttobject methods */ #define ttmethod_Ref_ttobject 18 #define ttmethod_Unref_ttobject 19 #define ttmethod_SetUserData_ttobject 20 /* ttvector methods */ #define ttmethod_GetAt_ttvector 21 #define ttmethod_SetAt_ttvector 22 #define ttmethod_Create1_ttvector 23 #define ttmethod_CreateA_ttvector 24 #define ttmethod_CreateR_ttvector 25 #define ttmethod_CreateV_ttvector 26 #define ttmethod_CreateY_ttvector 27 #define ttmethod_Append_ttvector 28 #define ttmethod_Add_ttvector 29 #define ttmethod_AddA_ttvector 30 #define ttmethod_AddR_ttvector 31 #define ttmethod_AddV_ttvector 32 #define ttmethod_AddY_ttvector 33 #define ttmethod_ContainsValue_ttvector 34 #define ttmethod_RemoveAt_ttvector 35 #define ttmethod_RemoveRange_ttvector 36 /* ttfield methods */ #define ttmethod_Get_ttfield 37 #define ttmethod_GetValue_ttfield 38 #define ttmethod_SetValue_ttfield 39 #define ttmethod_ChangeValue_ttfield 40 #define ttmethod_ToEvcode_ttfield 41 #define ttmethod_FromEvcode_ttfield 42 #define ttmethod_GetEvcode_ttfield 43 /* ttmethod methods */ #define ttmethod_Get_ttmethod 44 #define ttmethod_GetByAddress_ttmethod 45 #define ttmethod_GetArraySizeA_ttmethod 46 #define ttmethod_CheckArraySizesA_ttmethod 47 #define ttmethod_CallA_ttmethod 48 #define ttmethod_CallR_ttmethod 49 #define ttmethod_CallV_ttmethod 50 #define ttmethod_CallY_ttmethod 51 /* ttevent methods */ #define ttmethod_Create_ttevent 52 #define ttmethod_Fire_ttevent 53 /* tteventbig methods */ #define ttmethod_Create8_tteventbig 54 #define ttmethod_Create4_tteventbig 55 #define ttmethod_Create4s4_tteventbig 56 /* ttbitmask methods */ #define ttmethod_Create_ttbitmask 57 #define ttmethod_CreateB2_ttbitmask 58 #define ttmethod_CreateR_ttbitmask 59 #define ttmethod_CreateR2_ttbitmask 60 #define ttmethod_Clear_ttbitmask 61 #define ttmethod_Fill_ttbitmask 62 #define ttmethod_Negate_ttbitmask 63 #define ttmethod_Change_ttbitmask 64 #define ttmethod_Contains_ttbitmask 65 #define ttmethod_Add_ttbitmask 66 #define ttmethod_AddB_ttbitmask 67 #define ttmethod_AddR_ttbitmask 68 #define ttmethod_Remove_ttbitmask 69 #define ttmethod_RemoveB_ttbitmask 70 #define ttmethod_RemoveR_ttbitmask 71 #define ttmethod_Combine_ttbitmask 72 #define ttmethod_CombineR_ttbitmask 73 #define ttmethod_CombineB_ttbitmask 74 /* tteventmask methods */ #define ttmethod_CreateB_tteventmask 75 #define ttmethod_CreateB2_tteventmask 76 #define ttmethod_SetEvtypeMask_tteventmask 77 #define ttmethod_SetEvcodeMask_tteventmask 78 #define ttmethod_SetComponentMask_tteventmask 79 #define ttmethod_SetTruthTable_tteventmask 80 /* ttcallback methods */ /* ttlistener methods */ #define ttmethod_Create_ttlistener 81 #define ttmethod_CreateE_ttlistener 82 #define ttmethod_CreateR_ttlistener 83 #define ttmethod_CreateDel_ttlistener 84 #define ttmethod_CreateAskclose_ttlistener 85 #define ttmethod_CreateKey_ttlistener 86 #define ttmethod_CreateMouse_ttlistener 87 #define ttmethod_CreateActivate_ttlistener 88 #define ttmethod_CreateChange_ttlistener 89 #define ttmethod_CreateKeyData_ttlistener 90 #define ttmethod_CreateExpose_ttlistener 91 #define ttmethod_AddTo_ttlistener 92 #define ttmethod_Remove_ttlistener 93 #define ttmethod_SetArgsR_ttlistener 94 #define ttmethod_SetEventMask_ttlistener 95 /* tttimer methods */ #define ttmethod_CreateR_tttimer 96 #define ttmethod_Create_tttimer 97 #define ttmethod_SetDelay_tttimer 98 #define ttmethod_SetEnabled_tttimer 99 #define ttmethod_IsEnabled_tttimer 100 /* ttcomponent methods */ #define ttmethod_AddListener_ttcomponent 101 #define ttmethod_RemoveListener_ttcomponent 102 #define ttmethod_SetKeyData_ttcomponent 103 #define ttmethod_GetKeyData_ttcomponent 104 #define ttmethod_UnsetKeyData_ttcomponent 105 #define ttmethod_GetData_ttcomponent 106 /* ttdata methods */ #define ttmethod_SetData_ttdata 107 /* ttvisible methods */ #define ttmethod_AddTo_ttvisible 108 #define ttmethod_Validate_ttvisible 109 #define ttmethod_Remove_ttvisible 110 #define ttmethod_Invalidate_ttvisible 111 #define ttmethod_SetVisible_ttvisible 112 #define ttmethod_SetTheme_ttvisible 113 #define ttmethod_Draw_ttvisible 114 #define ttmethod_BuiltinRepaint_ttvisible 115 #define ttmethod_SetRepaint_ttvisible 116 #define ttmethod_Expose_ttvisible 117 #define ttmethod_Add_ttvisible 118 /* ttlayout methods */ /* ttboxlayout methods */ #define ttmethod_Create_ttboxlayout 119 /* ttborderlayout methods */ /* ttnative methods */ #define ttmethod_GetRoot_ttnative 120 #define ttmethod_GetW_ttnative 121 #define ttmethod_GetH_ttnative 122 #define ttmethod_Create_ttnative 123 /* ttwidget methods */ #define ttmethod_SetLayout_ttwidget 124 #define ttmethod_SetXY_ttwidget 125 #define ttmethod_SetWH_ttwidget 126 #define ttmethod_SetXl_ttwidget 127 #define ttmethod_SetYl_ttwidget 128 #define ttmethod_SetWl_ttwidget 129 #define ttmethod_SetHl_ttwidget 130 #define ttmethod_SetTooltip_ttwidget 131 #define ttmethod_SetXlYl_ttwidget 132 #define ttmethod_SetWlHl_ttwidget 133 #define ttmethod_SetXYWH_ttwidget 134 #define ttmethod_SetX_ttwidget 135 #define ttmethod_SetY_ttwidget 136 #define ttmethod_SetW_ttwidget 137 #define ttmethod_SetH_ttwidget 138 /* ttlabel methods */ #define ttmethod_SetFontD_ttlabel 139 #define ttmethod_SetFont_ttlabel 140 #define ttmethod_SetText_ttlabel 141 #define ttmethod_Create_ttlabel 142 /* tttooltip methods */ #define ttmethod_SetWidget_tttooltip 143 /* ttbuttongroup methods */ #define ttmethod_Add_ttbuttongroup 144 #define ttmethod_Remove_ttbuttongroup 145 #define ttmethod_SetChecked_ttbuttongroup 146 /* ttanybutton methods */ #define ttmethod_SetAttrD_ttanybutton 147 #define ttmethod_SetAttr_ttanybutton 148 #define ttmethod_SetFont_ttanybutton 149 #define ttmethod_SetText_ttanybutton 150 #define ttmethod_Create_ttanybutton 151 /* ttbutton methods */ #define ttmethod_SetPressed_ttbutton 152 #define ttmethod_IsPressed_ttbutton 153 #define ttmethod_Create_ttbutton 154 /* ttcheckbutton methods */ #define ttmethod_SetChecked_ttcheckbutton 155 #define ttmethod_IsChecked_ttcheckbutton 156 #define ttmethod_Create_ttcheckbutton 157 /* ttradiobutton methods */ #define ttmethod_AddToGroup_ttradiobutton 158 #define ttmethod_RemoveFromGroup_ttradiobutton 159 #define ttmethod_Create_ttradiobutton 160 /* ttanyscroll methods */ #define ttmethod_SetOrientation_ttanyscroll 161 #define ttmethod_SetSize_ttanyscroll 162 #define ttmethod_SetRealSize_ttanyscroll 163 #define ttmethod_SetViewSize_ttanyscroll 164 #define ttmethod_SetPosition_ttanyscroll 165 /* ttscrollbar methods */ #define ttmethod_Create1_ttscrollbar 166 #define ttmethod_Create4_ttscrollbar 167 /* ttslider methods */ #define ttmethod_SetSlideMin_ttslider 168 #define ttmethod_SetSlideMax_ttslider 169 #define ttmethod_SetSlideValue_ttslider 170 #define ttmethod_Create_ttslider 171 /* ttprogressbar methods */ #define ttmethod_Create_ttprogressbar 172 /* ttscrollpane methods */ #define ttmethod_Create_ttscrollpane 173 #define ttmethod_SetBarX_ttscrollpane 174 #define ttmethod_SetBarY_ttscrollpane 175 /* ttwindow methods */ #define ttmethod_SetTitle_ttwindow 176 /* ttframe methods */ #define ttmethod_SetMenubar_ttframe 177 #define ttmethod_Create_ttframe 178 /* ttscroller methods */ #define ttmethod_Create_ttscroller 179 /* ttmenuitem methods */ /* ttcheckmenuitem methods */ /* ttradiomenuitem methods */ /* ttmenu methods */ /* ttmenubar methods */ #define ttmethod_GetDefault_ttmenubar 180 /* ttanytext methods */ /* tttextfield methods */ /* tttextarea methods */ /* tttheme methods */ #define ttmethod_GetDefault_tttheme 181 /* ttapplication methods */ #define ttmethod_Create_ttapplication 182 #define ttmethod_Get_ttapplication 183 /* TTSet*_* methods omitted, they are listed above! */ #if 0 #define ttmethod_FN_set_first 184 #define ttmethod_SetField_ttobj 185 #define ttmethod_ChangeField_ttobj 186 #define ttmethod_FN_set_last 184 #endif /* TTGet*_* methods */ #define ttmethod_FN_get_first 184 /* TTGet*_ttobj methods */ /* TTGet*_ttclass methods */ /* TTGet*_ttobject methods */ #define ttmethod_GetRefcount_ttobject 184 #define ttmethod_GetOflags_ttobject 185 #define ttmethod_GetUserData_ttobject 186 #define ttmethod_GetEventsInprogress_ttobject 187 #define ttmethod_GetEventsInformed_ttobject 188 /* TTGet*_ttvector methods */ #define ttmethod_GetArraySize_ttvector 189 #define ttmethod_GetArrayN_ttvector 190 #define ttmethod_GetArray_ttvector 191 /* TTGet*_ttfield methods */ #define ttmethod_GetNameLen_ttfield 192 #define ttmethod_GetName_ttfield 193 #define ttmethod_GetType_ttfield 194 /* TTGet*_ttmethod methods */ #define ttmethod_GetNameLen_ttmethod 195 #define ttmethod_GetName_ttmethod 196 #define ttmethod_GetAddress_ttmethod 197 #define ttmethod_GetReturnType_ttmethod 198 #define ttmethod_GetParameterType_ttmethod 199 /* TTGet*_ttevent methods */ #define ttmethod_GetComponent_ttevent 200 #define ttmethod_GetEvtype_ttevent 201 #define ttmethod_GetEvcode_ttevent 202 #define ttmethod_GetEvflags_ttevent 203 #define ttmethod_GetPrev_ttevent 204 #define ttmethod_GetNext_ttevent 205 /* TTGet*_tteventbig methods */ #define ttmethod_GetX_tteventbig 206 #define ttmethod_GetY_tteventbig 207 #define ttmethod_GetW_tteventbig 208 #define ttmethod_GetH_tteventbig 209 #define ttmethod_GetValue_tteventbig 210 #define ttmethod_GetOldValue_tteventbig 211 #define ttmethod_GetDataLen_tteventbig 212 #define ttmethod_GetData_tteventbig 213 /* TTGet*_ttbitmask methods */ /* TTGet*_tteventmask methods */ #define ttmethod_GetEvtypeMask_tteventmask 214 #define ttmethod_GetEvcodeMask_tteventmask 215 #define ttmethod_GetComponentMask_tteventmask 216 #define ttmethod_GetTruthTable_tteventmask 217 /* TTGet*_ttcallback methods */ #define ttmethod_GetLflags_ttcallback 218 #define ttmethod_GetComponent_ttcallback 219 #define ttmethod_GetPrev_ttcallback 220 #define ttmethod_GetNext_ttcallback 221 /* TTGet*_ttlistener methods */ #define ttmethod_GetEvent_ttlistener 222 #define ttmethod_GetFunction_ttlistener 223 #define ttmethod_GetArgComponentN_ttlistener 224 #define ttmethod_GetArgEventN_ttlistener 225 #define ttmethod_GetArgs_ttlistener 226 #define ttmethod_GetEventMask_ttlistener 227 /* TTGet*_tttimer methods */ #define ttmethod_GetDelayT_tttimer 228 #define ttmethod_GetDelayF_tttimer 229 #define ttmethod_GetTimerPrev_tttimer 230 #define ttmethod_GetTimerNext_tttimer 231 /* TTGet*_ttcomponent methods */ #define ttmethod_GetCallbacks_ttcomponent 232 #define ttmethod_GetListeners_ttcomponent 233 #define ttmethod_GetTimers_ttcomponent 234 #define ttmethod_GetDatas_ttcomponent 235 /* TTGet*_ttdata methods */ #define ttmethod_GetComponent_ttdata 236 #define ttmethod_GetKeyLen_ttdata 237 #define ttmethod_GetKey_ttdata 238 #define ttmethod_GetData_ttdata 239 /* TTGet*_ttvisible methods */ #define ttmethod_GetVflags_ttvisible 240 #define ttmethod_GetPrev_ttvisible 241 #define ttmethod_GetNext_ttvisible 242 #define ttmethod_GetParent_ttvisible 243 #define ttmethod_GetChildFirst_ttvisible 244 #define ttmethod_GetChildLast_ttvisible 245 #define ttmethod_GetConstraint_ttvisible 246 #define ttmethod_GetTheme_ttvisible 247 #define ttmethod_GetRepaint_ttvisible 248 /* TTGet*_ttlayout methods */ #define ttmethod_GetWidget_ttlayout 249 /* TTGet*_ttboxlayout methods */ #define ttmethod_GetOrientation_ttboxlayout 250 /* TTGet*_ttborderlayout methods */ /* TTGet*_ttnative methods */ /* TTGet*_ttwidget methods */ #define ttmethod_GetX_ttwidget 251 #define ttmethod_GetY_ttwidget 252 #define ttmethod_GetW_ttwidget 253 #define ttmethod_GetH_ttwidget 254 #define ttmethod_GetLayout_ttwidget 255 #define ttmethod_GetXl_ttwidget 256 #define ttmethod_GetYl_ttwidget 257 #define ttmethod_GetWl_ttwidget 258 #define ttmethod_GetHl_ttwidget 259 #define ttmethod_GetCol_ttwidget 260 #define ttmethod_GetTooltip_ttwidget 261 /* TTGet*_ttlabel methods */ #define ttmethod_GetTextLen_ttlabel 262 #define ttmethod_GetText_ttlabel 263 /* TTGet*_tttooltip methods */ #define ttmethod_GetWidget_tttooltip 264 /* TTGet*_ttbuttongroup methods */ #define ttmethod_GetGroupFirst_ttbuttongroup 265 #define ttmethod_GetGroupLast_ttbuttongroup 266 #define ttmethod_GetChecked_ttbuttongroup 267 /* TTGet*_ttanybutton methods */ #define ttmethod_GetTextWidth_ttanybutton 268 #define ttmethod_GetTextHeight_ttanybutton 269 #define ttmethod_GetText_ttanybutton 270 /* TTGet*_ttbutton methods */ /* TTGet*_ttcheckbutton methods */ /* TTGet*_ttradiobutton methods */ #define ttmethod_GetGroup_ttradiobutton 271 #define ttmethod_GetGroupPrev_ttradiobutton 272 #define ttmethod_GetGroupNext_ttradiobutton 273 /* TTGet*_ttanyscroll methods */ #define ttmethod_GetOrientation_ttanyscroll 274 #define ttmethod_GetSize_ttanyscroll 275 #define ttmethod_GetRealSize_ttanyscroll 276 #define ttmethod_GetViewSize_ttanyscroll 277 #define ttmethod_GetPosition_ttanyscroll 278 #define ttmethod_GetRealPosition_ttanyscroll 279 #define ttmethod_GetState_ttanyscroll 280 /* TTGet*_ttscrollbar methods */ /* TTGet*_ttslider methods */ #define ttmethod_GetSlideMin_ttslider 281 #define ttmethod_GetSlideMax_ttslider 282 #define ttmethod_GetSlideValue_ttslider 283 /* TTGet*_ttprogressbar methods */ /* TTGet*_ttscrollpane methods */ #define ttmethod_GetBarX_ttscrollpane 284 #define ttmethod_GetBarY_ttscrollpane 285 /* TTGet*_ttwindow methods */ #define ttmethod_GetTitleLen_ttwindow 286 #define ttmethod_GetTitle_ttwindow 287 /* TTGet*_ttframe methods */ #define ttmethod_GetMenubar_ttframe 288 /* TTGet*_ttscroller methods */ #define ttmethod_GetScrollpane_ttscroller 289 /* TTGet*_ttmenuitem methods */ #define ttmethod_GetNameLen_ttmenuitem 290 #define ttmethod_GetName_ttmenuitem 291 /* TTGet*_ttcheckmenuitem methods */ /* TTGet*_ttradiomenuitem methods */ /* TTGet*_ttmenu methods */ #define ttmethod_GetMenubar_ttmenu 292 /* TTGet*_ttmenubar methods */ /* TTGet*_ttanytext methods */ #define ttmethod_GetTextLen_ttanytext 293 #define ttmethod_GetText_ttanytext 294 /* TTGet*_tttextfield methods */ /* TTGet*_tttextarea methods */ /* TTGet*_tttheme methods */ #define ttmethod_GetNameLen_tttheme 295 #define ttmethod_GetName_tttheme 296 /* TTGet*_ttapplication methods */ #define ttmethod_GetNameLen_ttapplication 297 #define ttmethod_GetName_ttapplication 298 #define ttmethod_FN_get_last 299 #define ttmethod_FN_last 299 #endif /* TT_TREEM4_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/utils.h�����������������������������������������������������������������������0000664�0000000�0000000�00000003554�13775351206�0016001�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifndef TT_UTILS_H #define TT_UTILS_H #include "fire.h" #include "create_defs_m4.h" #define TNow TTD.TNow #define FNow TTD.FNow #define IdList TTD.UTIL.IdList #define IdSize TTD.UTIL.IdSize #define IdTop TTD.UTIL.IdTop #define IdBottom TTD.UTIL.IdBottom #ifdef CONF_SOCKET_PTHREADS #define GetErrnoLocation TTD.UTIL.GetErrnoLocation #else #define GetErrnoLocation() (&TTD.rErrno_) #endif #define AssignId TTD.UTIL.AssignId #define DropId TTD.UTIL.DropId #define Id2Obj TTD.UTIL.Id2Obj #define FixedAssignId TTD.UTIL.FixedAssignId #define FixedAssignIdArray TTD.UTIL.FixedAssignIdArray #define FindNative TTD.UTIL.FindNative #define GetNow TTD.UTIL.GetNow #define FireEvent TTD.UTIL.FireEvent #define FireSimpleEvent TTD.UTIL.FireSimpleEvent #define FireChangeEvent TTD.UTIL.FireChangeEvent #define AddTo_ttlistener TTD.UTIL.AddTo_ttlistener #define Remove_ttlistener TTD.UTIL.Remove_ttlistener #define Activate_tttimer TTD.UTIL.Activate_tttimer #define AddTo_ttdata TTD.UTIL.AddTo_ttdata #define Remove_ttdata TTD.UTIL.Remove_ttdata #define SetData_ttdata TTD.UTIL.SetData_ttdata #define FindByKey_ttdata TTD.UTIL.FindByKey_ttdata #define protected_Create_ttdata TTD.UTIL.protected_Create_ttdata #define DelAllExtras_ttcomponent TTD.UTIL.DelAllExtras_ttcomponent #define Expose_ttvisible TTD.UTIL.Expose_ttvisible #define RealClose TTD.UTIL.RealClose #define BOUND(a, min, max) ((a) < (min) ? (min) : (a) > (max) ? (max) : (a)) #define minBOUND(a, min) ((a) < (min) ? (min) : (a)) #define TW_MAXBOUND(a, max) ((a) > (max) ? (max) : (a)) #endif /* TT_UTILS_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/wrap.c������������������������������������������������������������������������0000664�0000000�0000000�00000101067�13775351206�0015603�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * wrap.c -- wrappers around exported libTT methods * * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #ifdef CONF_SOCKET_PTHREADS #include <pthread.h> #endif #include "TT.h" #include "mutex.h" #include "TTextern.h" #include "TTassert.h" #include "utils.h" #include "inlines.h" TT_MUTEX_HELPER_DEFS(static); #define CAN_SET(o, t) (TTAssert((o) && IS(t, (o))) && !((o)->oflags & ttobject_oflags_const)) /* ttobj */ /* ttobject */ TT_INLINE void Ref_ttobject(ttobject o) { if (o) o->refcount++; } TT_INLINE void Unref_ttobject(ttobject o) { if (o && !--o->refcount) Del(o); } TT_INLINE ttbyte SetUserData_ttobject(ttobject o, ttany user_data) { if (CAN_SET(o, ttobject)) { if (IS(ttcomponent, o)) return !!TTSetKeyData_ttcomponent((tt_obj)o->id, "user_data", user_data); o->user_data = user_data; return TT_TRUE; } return TT_FALSE; } /* ttvector */ TT_INLINE ttbyte Add_ttvector(ttvector o, ttopaque pos, ttany value) { return TTAssert(o && IS(ttvector, o)) && pos <= o->array_n && o->Class->AddY(o, pos, 1, &value); } TT_INLINE ttbyte Append_ttvector(ttvector o, ttany value) { return TTAssert(o && IS(ttvector, o)) && o->Class->AddY(o, o->array_n, 1, &value); } TT_INLINE ttbyte AddA_ttvector(ttvector o, ttopaque pos, ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttarg *values) { ttany *args = (ttany *)0; ttopaque i; ttbyte ret = TT_FALSE; if (TTAssert(o && IS(ttvector, o)) && pos <= o->array_n && (!value_n || (args = TTAllocMem(value_n * sizeof(ttany))))) { for (i = 0; i < value_n; i++) args[i] = values[i].value; ret = o->Class->AddY(o, pos, value_n, args); if (args) TTFreeMem(args); } return ret; } TT_INLINE ttbyte AddV_ttvector(ttvector o, ttopaque pos, ttopaque value_n, va_list *values) { ttany *args = (ttany *)0; ttopaque i; ttbyte ret = TT_FALSE; if (TTAssert(o && IS(ttvector, o)) && pos <= o->array_n && (!value_n || (args = TTAllocMem(value_n * sizeof(ttany))))) { for (i = 0; i < value_n; i++) args[i] = va_arg((*values), ttany); ret = o->Class->AddY(o, pos, value_n, args); if (args) TTFreeMem(args); } return ret; } TT_INLINE ttbyte AddR_ttvector(ttvector o, ttopaque pos, TT_ARG_READ ttvector v) { if (TTAssert(o && IS(ttvector, o)) && v && TTAssert(IS(ttvector, v))) { return o->Class->AddY(o, pos, v->array_n, v->array); } return TT_FALSE; } TT_INLINE ttbyte RemoveAt_ttvector(ttvector o, ttopaque pos) { return TTAssert(o && IS(ttvector, o)) && o->Class->RemoveRange(o, pos, 1); } /* ttevent */ TT_INLINE void Fire_ttevent(ttevent ev, ttcomponent o) { if (TTAssert(ev && IS(ttevent, ev)) && o && TTAssert(IS(ttcomponent, o))) { FireEvent(ev, o); } } /* utilities */ #define MAX_mask0 (TT_SIZEOF_ttopaque << 3) static ttany *Bsearch_ttany(ttany key, ttany *vec, ttany n, ttopaque *best_i_up) { ttopaque low = 0, up = n, i; while (low < up) { i = (low + up) / 2; if (vec[i] > key) up = i; else if (vec[i] < key) low = i + 1; else return &vec[i]; } if (best_i_up) *best_i_up = up; return NULL; } static ttbyte Combine_bit(ttbyte m1, ttbyte m2, ttuint truth_table) { if (m1 & 1) truth_table >>= 1; if (m2 & 1) truth_table >>= 2; return truth_table & 1; } static ttany Combine_ttany(ttany m1, ttany m2, ttany top_bit, ttuint truth_table) { #if 0 /* compact, slow version */ ttany i, ret = 0; ttuint truth; for (i = top_bit; i; i >>= 1) { truth = truth_table; if (m1 & i) truth >>= 1; if (m2 & i) truth >>= 2; if (truth & 1) ret |= i; } return ret; #else /* big, fast version */ ttany ret = (ttany)0; switch (truth_table & 0xF) { case 0x0: /* 0b0000 */ ret = (ttany)0; break; case 0x1: /* 0b0001 */ ret = ~m1 & ~m2; break; case 0x2: /* 0b0010 */ ret = m1 & ~m2; break; case 0x3: /* 0b0011 */ ret = ~m2; break; case 0x4: /* 0b0100 */ ret = ~m1 & m2; break; case 0x5: /* 0b0101 */ ret = ~m1; break; case 0x6: /* 0b0110 */ ret = m1 ^ m2; break; case 0x7: /* 0b0111 */ ret = m1 | m2; break; case 0x8: /* 0b1000 */ ret = m1 & m2; break; case 0x9: /* 0b1001 */ ret = ~m1 ^ m2; break; case 0xA: /* 0b1010 */ ret = m1; break; case 0xB: /* 0b1011 */ ret = m1 | ~m2; break; case 0xC: /* 0b1100 */ ret = m2; break; case 0xD: /* 0b1101 */ ret = ~m1 | m2; break; case 0xE: /* 0b1110 */ ret = m1 | m2; break; case 0xF: /* 0b1111 */ ret = ~(ttany)0; break; } return ret & (top_bit | (top_bit - 1)); #endif } /* ttbitmask */ static void Clear_ttbitmask(ttbitmask o) { if (TTAssert(o && IS(ttbitmask, o))) { o->oflags &= ~ttbitmask_oflags_mask_reverse; o->mask0 = o->mask_n = (opaque)0; } } static void Fill_ttbitmask(ttbitmask o) { if (TTAssert(o && IS(ttbitmask, o))) { o->oflags |= ttbitmask_oflags_mask_reverse; o->mask0 = o->mask_n = (opaque)0; } } static void Negate_ttbitmask(ttbitmask o) { if (TTAssert(o && IS(ttbitmask, o))) { o->oflags ^= ttbitmask_oflags_mask_reverse; } } void Change_ttbitmask(ttbitmask o, ttuint truth_table) { if (TTAssert(o && IS(ttbitmask, o))) { switch (truth_table & 0x3) { case 0x0: /* 0b00 */ Clear_ttbitmask(o); break; case 0x1: /* 0b01 */ Negate_ttbitmask(o); break; case 0x2: /* 0b10 */ break; case 0x3: /* 0b11 */ Fill_ttbitmask(o); break; } } } static ttbyte Contains_ttbitmask(ttbitmask o, ttany value) { ttbyte ret = TT_FALSE; if (TTAssert(o && IS(ttbitmask, o))) { if (value < MAX_mask0) ret = !!(o->mask0 & ((opaque)1 << value)); else if (o->mask_n) ret = !!(Bsearch_ttany(value, o->mask, o->mask_n, NULL)); ret ^= !!(o->oflags & ttbitmask_oflags_mask_reverse); } return ret; } TT_INLINE ttbitmask CreateB_ttbitmask(ttbitmask b) { ttbitmask o; ttopaque max, n; if (TTAssert(b && IS(ttbitmask, b))) { if ((o = TNEW(ttbitmask))) { n = b->mask_n; if ((max = b->mask_max)) { if ((o->mask = TTReallocMem(o->mask, max * TT_SIZEOF_ttany))) { if (n) TTCopyMem(b->mask, o->mask, n * TT_SIZEOF_ttany); } else { TDEL(o); return (ttbitmask)0; } } o->mask_n = n; o->mask_max = max; o->mask0 = b->mask0; o->user_data = b->user_data; o->oflags = b->oflags & ttbitmask_oflags_mask_reverse; return o; } } return (ttbitmask)0; } TT_INLINE ttbyte Enlarge_ttbitmask(ttbitmask o) { ttany *mask; ttopaque max = o->mask_max ? o->mask_max << 1 : 30; if ((mask = TTReallocMem(o->mask, max * TT_SIZEOF_ttany))) { o->mask = mask; o->mask_max = max; return TT_TRUE; } return TT_FALSE; } static ttbyte real_Add_ttbitmask(ttbitmask o, ttany value) { ttopaque best_i; if (value < MAX_mask0) o->mask0 |= (opaque)1 << value; else if (Bsearch_ttany(value, o->mask, o->mask_n, &best_i)) /* already set, return */ ; else if (o->mask_n < o->mask_max || Enlarge_ttbitmask(o)) { /* make room for value */ if (best_i < o->mask_n) TTMoveMem(o->mask + best_i, o->mask + best_i + 1, (o->mask_n - best_i) * TT_SIZEOF_ttany); o->mask[best_i] = value; o->mask_n++; } else { /* OUT OF MEMORY! */ return TT_FALSE; } return TT_TRUE; } static void real_Remove_ttbitmask(ttbitmask o, ttany value) { if (value < MAX_mask0) o->mask0 &= ~((opaque)1 << value); else if (o->mask_n) { ttany *match, n; if ((match = Bsearch_ttany(value, o->mask, o->mask_n, NULL))) { if ((n = match - o->mask) + 1 < o->mask_n) TTMoveMem(o->mask + n + 1, o->mask + n, (o->mask_n - n - 1) * TT_SIZEOF_ttany); o->mask_n--; } } } static ttbyte Add_ttbitmask(ttbitmask o, ttany value) { if (TTAssert(o && IS(ttbitmask, o))) { if (o->oflags & ttbitmask_oflags_mask_reverse) { real_Remove_ttbitmask(o, value); return TT_TRUE; } return real_Add_ttbitmask(o, value); } return TT_FALSE; } static ttbyte Remove_ttbitmask(ttbitmask o, ttany value) { if (TTAssert(o && IS(ttbitmask, o))) { if (o->oflags & ttbitmask_oflags_mask_reverse) { return real_Add_ttbitmask(o, value); } real_Remove_ttbitmask(o, value); return TT_TRUE; } return TT_FALSE; } static ttbyte AddR_ttbitmask(ttbitmask o, ttvector v) { ttopaque i, n; TT_CONST ttany *value; /* exactly one of Add_ttbitmask(), Remove_ttbitmask() cannot fail */ if (TTAssert(o && IS(ttbitmask, o)) && v && TTAssert(IS(ttvector, v))) { n = v->array_n; value = v->array; for (i = 0; i < n; i++) { if (!Add_ttbitmask(o, value[i])) break; } if (i == n) return TT_TRUE; /* failed. undo. */ n = i; for (i = 0; i < n; i++) Remove_ttbitmask(o, value[i]); } return TT_FALSE; } static ttbyte RemoveR_ttbitmask(ttbitmask o, ttvector v) { ttopaque i, n; TT_CONST ttany *value; /* exactly one of Add_ttbitmask(), Remove_ttbitmask() cannot fail */ if (TTAssert(o && IS(ttbitmask, o))) { n = v->array_n; value = v->array; for (i = 0; i < n; i++) { if (!Remove_ttbitmask(o, value[i])) break; } if (i == n) return TT_TRUE; /* failed. undo. */ n = i; for (i = 0; i < n; i++) Add_ttbitmask(o, value[i]); } return TT_FALSE; } static ttbyte CombineB_ttbitmask(ttbitmask o, TT_ARG_READ ttbitmask o2, ttuint truth_table) { s_ttbitmask save; ttbitmask o1; ttopaque i, value; ttuint truth; ttbyte reverse0, reverse1, reverse2, true1, ok = TT_TRUE; if (TTAssert(o && IS(ttbitmask, o)) && o2 && TTAssert(IS(ttbitmask, o2)) && (o1 = CreateB_ttbitmask(o))) { /* save original values */ save.oflags = o->oflags; save.mask0 = o->mask0; save.mask_max = o->mask_max; save.mask_n = o->mask_n; save.mask = o->mask; o->mask0 = 0; o->mask_max = o->mask_n = 0; o->mask = NULL; reverse1 = !!(o1->oflags & ttbitmask_oflags_mask_reverse); reverse2 = !!(o2->oflags & ttbitmask_oflags_mask_reverse); reverse0 = Combine_bit(reverse1, reverse2, truth_table); if (reverse0) o->oflags |= ttbitmask_oflags_mask_reverse; else o->oflags &= ~ttbitmask_oflags_mask_reverse; /* apply to values in o2 */ for (i = 0; ok && i < o2->mask_n; i++) { truth = truth_table; value = o2->mask[i]; if ((true1 = Contains_ttbitmask(o1, value))) truth >>= 1; if (!(o2->oflags & ttbitmask_oflags_mask_reverse)) /* Contains_ttbitmask(o2, value) */ truth >>= 2; if ((truth & 1) ^ reverse0) ok = real_Add_ttbitmask(o, value); if (true1) real_Remove_ttbitmask(o1, value); } /* apply to remaining values in o1 */ for (i = 0; ok && i < o1->mask_n; i++) { truth = truth_table; value = o1->mask[i]; if (!(o1->oflags & ttbitmask_oflags_mask_reverse)) /* Contains_ttbitmask(o1, value) */ truth >>= 1; if (Contains_ttbitmask(o2, value)) truth >>= 2; if ((truth & 1) ^ reverse0) ok = real_Add_ttbitmask(o, value); } if (ok) { ttany m0, m1, m2; m1 = reverse1 ? ~o1->mask0 : o1->mask0; m2 = reverse2 ? ~o2->mask0 : o2->mask0; m0 = Combine_ttany(m1, m2, TW_MINS(ttany), truth_table); o->mask0 = reverse0 ? ~m0 : m0; TDEL(o1); if (save.mask) TTFreeMem(save.mask); return TT_TRUE; } /* failed. restore original values */ TDEL(o1); o->oflags = save.oflags; o->mask0 = save.mask0; o->mask_max = save.mask_max; o->mask_n = save.mask_n; o->mask = save.mask; } return TT_FALSE; } static ttbyte Combine_ttbitmask(ttbitmask o, ttany value, ttuint truth_table) { ttbitmask o2; ttbyte ret = TT_FALSE; if (TTAssert(o && IS(ttbitmask, o)) && (o2 = Create_ttbitmask(value))) { ret = CombineB_ttbitmask(o, o2, truth_table); TDEL(o2); } return ret; } static ttbyte CombineR_ttbitmask(ttbitmask o, ttvector v, ttuint truth_table) { ttbitmask o2; ttbyte ret = TT_FALSE; if (TTAssert(o && IS(ttbitmask, o)) && v && TTAssert(IS(ttvector, v)) && (o2 = CreateR_ttbitmask(v))) { ret = CombineB_ttbitmask(o, o2, truth_table); TDEL(o2); } return ret; } static ttbyte AddB_ttbitmask(ttbitmask o, TT_ARG_READ ttbitmask value) { return CombineB_ttbitmask(o, value, 0xE /* o OR value */); } static ttbyte RemoveB_ttbitmask(ttbitmask o, TT_ARG_READ ttbitmask value) { return CombineB_ttbitmask(o, value, 0x2 /* o AND (NEGATE value) */); } /* tteventmask */ TT_INLINE ttbyte SetEvtypeMask_tteventmask(tteventmask o, TT_ARG_DIE ttbitmask em) { if (CAN_SET(o, tteventmask) && (!em || TTAssert(IS(ttbitmask, em)))) { if (em != o->evtype_mask) { if (o->evtype_mask) TDEL(o->evtype_mask); o->evtype_mask = em; } return TT_TRUE; } return TT_FALSE; } TT_INLINE ttbyte SetEvcodeMask_tteventmask(tteventmask o, TT_ARG_DIE ttbitmask em) { if (CAN_SET(o, tteventmask) && (!em || TTAssert(IS(ttbitmask, em)))) { if (em != o->evcode_mask) { if (o->evcode_mask) TDEL(o->evcode_mask); o->evcode_mask = em; } return TT_TRUE; } return TT_FALSE; } TT_INLINE ttbyte SetComponentMask_tteventmask(tteventmask o, TT_ARG_DIE ttbitmask cm) { if (CAN_SET(o, tteventmask) && (!cm || TTAssert(IS(ttbitmask, cm)))) { if (cm != o->component_mask) { if (o->component_mask) TDEL(o->component_mask); o->component_mask = cm; } return TT_TRUE; } return TT_FALSE; } TT_INLINE ttbyte SetTruthTable_tteventmask(tteventmask o, ttuint truth_table) { if (CAN_SET(o, tteventmask)) { if (truth_table != o->truth_table) { o->truth_table = truth_table; } return TT_TRUE; } return TT_FALSE; } /* ttlistener */ TT_INLINE ttbyte SetArgsR_ttlistener(ttlistener o, TT_ARG_DIE ttvector args) { if (CAN_SET(o, ttlistener) && (!args || TTAssert(IS(ttvector, args)))) { if (TTAssertAlways(args != o->args)) { if (o->args) TDEL(o->args); o->args = args; } return TT_TRUE; } return TT_FALSE; } TT_INLINE ttbyte SetEventMask_ttlistener(ttlistener o, TT_ARG_DIE tteventmask em) { if (CAN_SET(o, ttlistener) && (!em || TTAssert(IS(tteventmask, em)))) { if (em != o->event_mask) { if (o->event_mask) TDEL(o->event_mask); o->event_mask = em; } return TT_TRUE; } return TT_FALSE; } /* tttimer */ TT_INLINE void SetDelay_tttimer(tttimer o, ttany delay_t, ttany delay_f) { ttbyte enabled; if (TTAssert(o && IS(tttimer, o))) { GetNow(); if ((enabled = !!(o->lflags & tttimer_lflags_enabled))) Activate_tttimer(o, TT_FALSE); o->delay_t = TNow + delay_t; o->delay_f = FNow + delay_f; if (enabled) Activate_tttimer(o, TT_TRUE); } } /* ttdata */ #if 0 TT_INLINE ttbyte SetData_ttdata(ttdata o, ttany data) { /* implemented in libTT.c */ } #endif /* ttcomponent */ TT_INLINE void AddListener_ttcomponent(ttcomponent o, ttlistener l) { if (TTAssert(o && IS(ttcomponent, o)) && l && TTAssert(IS(ttlistener, l)) && !l->component) l->Class->AddTo(l, o); } TT_INLINE void RemoveListener_ttcomponent(ttcomponent o, ttlistener l) { if (TTAssert(o && IS(ttcomponent, o)) && l && TTAssert(IS(ttlistener, l)) && l->component == o) l->Class->Remove(l); } TT_INLINE ttdata SetKeyData_ttcomponent(ttcomponent o, TT_CONST ttbyte *key, ttany data) { ttdata d; ttopaque key_len; if (CAN_SET(o, ttcomponent) && key) { key_len = TTLenStr(key); if ((d = FindByKey_ttdata(o->datas, key, key_len))) /* not d->data = data; we want to keep component->user_data in sync: */ SetData_ttdata(d, data); else d = protected_Create_ttdata(o, key, key_len, data); return d; } return NULL; } TT_INLINE ttdata GetData_ttcomponent(ttcomponent o, TT_CONST ttbyte *key) { ttdata d; ttopaque key_len; if (TTAssert(o && IS(ttcomponent, o)) && key) { key_len = TTLenStr(key); if ((d = FindByKey_ttdata(o->datas, key, key_len))) return d; } return (ttdata)0; } TT_INLINE ttany GetKeyData_ttcomponent(ttcomponent o, TT_CONST ttbyte *key) { ttdata d; ttopaque key_len; if (TTAssert(o && IS(ttcomponent, o)) && key) { key_len = TTLenStr(key); if (key_len == 9 && !TTCmpMem(key, "user_data", 9)) return o->user_data; if ((d = FindByKey_ttdata(o->datas, key, key_len))) return d->data; } return (ttany)0; } TT_INLINE void UnsetKeyData_ttcomponent(ttcomponent o, TT_CONST ttbyte *key) { ttdata d; ttopaque key_len; if (TTAssert(o && IS(ttcomponent, o)) && key) { key_len = TTLenStr(key); if ((d = FindByKey_ttdata(o->datas, key, key_len))) TDEL(d); } } /* ttvisible */ TT_INLINE void AddTo_ttvisible(ttvisible o, ttvisible parent, ttany constraints) { if (TTAssert(o && IS(ttvisible, o)) && parent && TTAssert(IS(ttvisible, parent)) && !o->parent) { FIRE_EVENT_O(o->Class->AddTo(o, parent, constraints), o, ttvisible_parent, parent, 0); /* HACK warning: this is just to let clients bind listeners on parent `child_first' field */ FIRE_EVENT_O((void)0, parent, ttvisible_child_first, o, 0); } } TT_INLINE void Remove_ttvisible(ttvisible o) { ttvisible parent; if (TTAssert(o && IS(ttvisible, o)) && (parent = o->parent)) { FIRE_EVENT_O(o->Class->Remove(o), o, ttvisible_parent, 0, parent); /* HACK warning: this is just to let clients bind listeners on parent `child_first' field */ FIRE_EVENT_O((void)0, parent, ttvisible_child_first, 0, o); } } TT_INLINE void SetVisible_ttvisible(ttvisible o, ttbyte on_off) { if (TTAssert(o && IS(ttvisible, o))) { ttany value, old_value; value = old_value = o->vflags; if (on_off != !!(value & ttvisible_vflags_visible)) value ^= ttvisible_vflags_visible; FIRE_EVENT(o->Class->SetVisible(o, on_off), o, ttvisible_vflags, value, old_value); } } TT_INLINE ttbyte SetTheme_ttvisible(ttvisible o, tttheme theme) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttvisible)) { FIRE_EVENT_O(ret = o->Class->SetTheme(o, theme), o, ttvisible_theme, theme, o->theme); } return ret; } TT_INLINE void Add_ttvisible(ttvisible o, ttvisible child, ttany constraints) { if (TTAssert(o && IS(ttvisible, o)) && child && TTAssert(IS(ttvisible, child))) AddTo_ttvisible(child, o, constraints); } TT_INLINE ttbyte SetRepaint_ttvisible(ttvisible o, ttvisible_repaint_fn repaint) { if (CAN_SET(o, ttvisible)) { if (o->repaint != repaint) { FIRE_EVENT(o->repaint = repaint, o, ttvisible_repaint, (opaque)repaint, (opaque)o->repaint); if (o->vflags & ttvisible_vflags_visible) Expose_ttvisible(o, ttvisible_repaint_args_WHOLE); } return TT_TRUE; } return TT_FALSE; } /* ttlayout */ /* ttnative */ /* ttwidget */ static void SetLayout_ttwidget(ttwidget o, ttlayout l) { if (CAN_SET(o, ttwidget)) FIRE_EVENT(o->Class->SetLayout(o, l), o, ttwidget_layout, l, o->layout); } static ttbyte SetXl_ttwidget(ttwidget o, ttint xl) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttwidget)) FIRE_EVENT(ret = o->Class->SetXl(o, xl), o, ttwidget_xl, xl, o->xl); return ret; } static ttbyte SetYl_ttwidget(ttwidget o, ttint yl) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttwidget)) FIRE_EVENT(ret = o->Class->SetYl(o, yl), o, ttwidget_yl, yl, o->yl); return ret; } TT_INLINE ttbyte SetXlYl_ttwidget(ttwidget o, ttuint mask, ttint xl, ttint yl) { ttbyte ret = TT_TRUE; if (ret && (mask & 1)) ret &= SetXl_ttwidget(o, xl); if (ret && (mask & 2)) ret &= SetYl_ttwidget(o, yl); return ret; } static ttbyte SetWl_ttwidget(ttwidget o, ttint wl) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttwidget)) FIRE_EVENT(ret = o->Class->SetWl(o, wl), o, ttwidget_wl, wl, o->wl); return ret; } static ttbyte SetHl_ttwidget(ttwidget o, ttint hl) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttwidget)) FIRE_EVENT(ret = o->Class->SetHl(o, hl), o, ttwidget_hl, hl, o->hl); return ret; } TT_INLINE ttbyte SetWlHl_ttwidget(ttwidget o, ttuint mask, ttint wl, ttint hl) { ttbyte ret = TT_TRUE; if (ret && (mask & 1)) ret &= SetWl_ttwidget(o, wl); if (ret && (mask & 2)) ret &= SetHl_ttwidget(o, hl); return ret; } static ttbyte SetXY_ttwidget(ttwidget o, ttshort x, ttshort y) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttwidget)) { ttshort ox = o->x, oy = o->y; ttbyte fx = x != ox, fy = y != oy; if (fx || fy) ret = o->Class->SetXY(o, x, y); else ret = TT_TRUE; if (fx) FIRE_EVENT((void)0, o, ttwidget_x, x, ox); if (fy) FIRE_EVENT((void)0, o, ttwidget_y, y, oy); } return ret; } static ttbyte SetWH_ttwidget(ttwidget o, ttshort w, ttshort h) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttwidget)) { ttshort ow = o->w, oh = o->h; ttbyte fw = w != ow, fh = h != oh; if (fw || fh) ret = o->Class->SetWH(o, w, h); else ret = TT_TRUE; if (fw) FIRE_EVENT((void)0, o, ttwidget_w, w, ow); if (fh) FIRE_EVENT((void)0, o, ttwidget_h, h, oh); } return ret; } TT_INLINE ttbyte SetXYWH_ttwidget(ttwidget o, ttuint mask, ttshort x, ttshort y, ttshort w, ttshort h) { ttbyte ret = TT_TRUE; if (ret && (mask & 0x3)) ret &= SetXY_ttwidget(o, mask & 1 ? x : o->x, mask & 2 ? y : o->y); if (ret && (mask & 0xA)) ret &= SetWH_ttwidget(o, mask & 4 ? w : o->w, mask & 8 ? h : o->h); return ret; } TT_INLINE ttbyte SetX_ttwidget(ttwidget o, ttshort x) { return SetXY_ttwidget(o, x, o->y); } TT_INLINE ttbyte SetY_ttwidget(ttwidget o, ttshort y) { return SetXY_ttwidget(o, o->x, y); } TT_INLINE ttbyte SetW_ttwidget(ttwidget o, ttshort w) { return SetWH_ttwidget(o, w, o->h); } TT_INLINE ttbyte SetH_ttwidget(ttwidget o, ttshort h) { return SetWH_ttwidget(o, o->w, h); } TT_INLINE ttbyte SetTooltip_ttwidget(ttwidget o, tttooltip t) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttwidget) && (!t || TTAssert(IS(tttooltip, t)))) { if (t != o->tooltip) { FIRE_EVENT_O(ret = o->Class->SetTooltip(o, t), o, ttwidget_tooltip, t, o->tooltip); } else ret = TT_TRUE; } return ret; } /* ttlabel */ static ttbyte SetFontD_ttlabel(ttlabel o, ttopaque text_len, TT_ARG_DIE TT_ARG_ARRAY((_P(2))) ttfont *text) { FIRE_EVENT(o->Class->SetFontD(o, text_len, text), o, ttlabel_text, (opaque)text, (opaque)o->text); return TT_TRUE; } TT_INLINE ttbyte SetFont_ttlabel(ttlabel o, TT_CONST ttfont *text) { ttfont *_text = NULL; ttopaque text_len; return CAN_SET(o, ttlabel) && (!text_len || (_text = TTCloneFontL(text, text_len = TTLenFont1(text)))) && SetFontD_ttlabel(o, text_len, _text); } TT_INLINE ttbyte SetText_ttlabel(ttlabel o, TT_CONST ttbyte *text) { ttfont *_text = NULL; ttopaque text_len; return CAN_SET(o, ttlabel) && (!text_len || (_text = TTCloneStrL2Font(text, text_len = TTLenStr1(text)))) && SetFontD_ttlabel(o, text_len, _text); } /* tttooltip */ TT_INLINE ttbyte SetWidget_tttooltip(tttooltip o, ttwidget w) { ttbyte ret = TT_FALSE; if (CAN_SET(o, tttooltip) && (!w || TTAssert(IS(ttwidget, w)))) { if (w != o->widget) FIRE_EVENT_O(ret = o->Class->SetWidget(o, w), o, tttooltip_widget, w, o->widget); else ret = TT_TRUE; } return ret; } /* ttbuttongroup */ TT_INLINE void Add_ttbuttongroup(ttbuttongroup g, ttradiobutton o) { if (CAN_SET(g, ttbuttongroup) && o && TTAssert(IS(ttradiobutton, o)) && !o->group) { FIRE_EVENT_O(g->Class->Add(g, o), o, ttradiobutton_group, g, 0); /* HACK warning: this is just to let clients bind listeners on g `group_first' field */ FIRE_EVENT_O((void)0, g, ttbuttongroup_group_first, o, 0); } } TT_INLINE void Remove_ttbuttongroup(ttbuttongroup g, ttradiobutton o) { if (TTAssert(g && IS(ttbuttongroup, g)) && o && TTAssert(IS(ttradiobutton, o)) && o->group == g) { FIRE_EVENT_O(g->Class->Remove(g, o), o, ttradiobutton_group, 0, g); /* HACK warning: this is just to let clients bind listeners on g `group_first' field */ FIRE_EVENT_O((void)0, g, ttbuttongroup_group_first, 0, o); } } TT_INLINE void SetChecked_ttbuttongroup(ttbuttongroup g, ttradiobutton o) { if (TTAssert(g && IS(ttbuttongroup, g)) && (!o || (TTAssert(IS(ttradiobutton, o)) && o->group == g)) && o != g->checked) { FIRE_EVENT_O(g->Class->SetChecked(g, o), g, ttbuttongroup_checked, o, g->checked); } } /* ttanybutton */ static void SetAttrD_ttanybutton(ttanybutton o, ttshort width, ttshort height, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3), *, _P(4))) ttattr *text) { tteventbig e; if ((e = Create4_tteventbig(ttevent_evtype_change, ttanybutton_text, 0, pitch, 0, width, height))) { e->value = (opaque)text; e->old_value = (opaque)o->text; o->Class->SetAttrD(o, width, height, pitch, text); FireEvent((ttevent)e, (ttcomponent)o); } else { o->Class->SetAttrD(o, width, height, pitch, text); } } TT_INLINE ttbyte SetAttr_ttanybutton(ttanybutton o, ttshort width, ttshort height, ttshort pitch, TT_CONST ttattr *text) { ttattr *_text = NULL; ttshort i; if (CAN_SET(o, ttanybutton)) { if (!width || !height || (_text = TTAllocMem(width * height * sizeof(ttattr)))) { for (i = height; i; i--) TTCopyMem(text, _text, width * sizeof(ttattr)); SetAttrD_ttanybutton(o, width, height, width, _text); return TT_TRUE; } } return TT_FALSE; } TT_INLINE ttbyte SetFont_ttanybutton(ttanybutton o, ttshort width, ttshort height, ttshort pitch, TT_CONST ttfont *text) { ttattr *_text = NULL; ttshort i; if (CAN_SET(o, ttanybutton)) { if (!width || !height || (_text = TTAllocMem(width * height * sizeof(ttattr)))) { for (i = height; i; i--) TTCopyFontL2Attr(text, _text, width, o->col); SetAttrD_ttanybutton(o, width, height, width, _text); return TT_TRUE; } } return TT_FALSE; } TT_INLINE ttbyte SetText_ttanybutton(ttanybutton o, ttshort width, ttshort height, ttshort pitch, TT_CONST ttbyte *text) { ttattr *_text = NULL; ttshort i; if (CAN_SET(o, ttanybutton)) { if (!width || !height || (_text = TTAllocMem(width * height * sizeof(ttattr)))) { for (i = height; i; i--) TTCopyStrL2Attr(text, _text, width, o->col); SetAttrD_ttanybutton(o, width, height, width, _text); return TT_TRUE; } } return TT_FALSE; } /* ttbutton */ TT_INLINE ttbyte IsPressed_ttbutton(ttbutton o) { if (CAN_SET(o, ttbutton)) return !!(o->vflags & ttanybutton_vflags_pressed); return TT_FALSE; } TT_INLINE void SetPressed_ttbutton(ttbutton o, ttbyte pressed) { if (CAN_SET(o, ttbutton)) { ttany value, old_value; value = old_value = o->vflags; if (pressed != !!(value & ttanybutton_vflags_pressed)) value ^= ttanybutton_vflags_pressed; FIRE_EVENT(o->Class->SetPressed(o, pressed), o, ttvisible_vflags, value, old_value); } } /* ttcheckbutton */ TT_INLINE void SetChecked_ttcheckbutton(ttcheckbutton o, ttbyte checked) { if (CAN_SET(o, ttcheckbutton)) { ttany value, old_value; value = old_value = o->vflags; if (checked != !!(value & ttcheckbutton_vflags_checked)) value ^= ttcheckbutton_vflags_checked; FIRE_EVENT(o->Class->SetChecked(o, checked), o, ttvisible_vflags, value, old_value); } } TT_INLINE ttbyte IsChecked_ttcheckbutton(ttcheckbutton o) { if (TTAssert(o && IS(ttcheckbutton, o))) return !!(o->vflags & ttcheckbutton_vflags_checked); return TT_FALSE; } /* ttradiobutton */ TT_INLINE void AddToGroup_ttradiobutton(ttradiobutton o, ttbuttongroup g) { if (CAN_SET(o, ttradiobutton) && g && CAN_SET(g, ttbuttongroup)) { g->Class->Add(g, o); } } TT_INLINE void RemoveFromGroup_ttradiobutton(ttradiobutton o) { ttbuttongroup g; if (CAN_SET(o, ttradiobutton) && (g = o->group)) { g->Class->Remove(g, o); } } /* ttanyscroll */ TT_INLINE ttbyte SetOrientation_ttanyscroll(ttanyscroll o, ttbyte orientation) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttanyscroll)) { if (orientation != o->orientation) { FIRE_EVENT(ret = o->Class->SetOrientation(o, orientation), o, ttanyscroll_orientation, orientation, o->orientation); } else ret = TT_TRUE; } return ret; } TT_INLINE ttbyte SetSize_ttanyscroll(ttanyscroll o, ttint size) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttanyscroll)) { if ((size = minBOUND(size, 0)) != o->size) { FIRE_EVENT(ret = o->Class->SetSize(o, size), o, ttanyscroll_size, size, o->size); } else ret = TT_TRUE; } return ret; } TT_INLINE ttbyte SetRealSize_ttanyscroll(ttanyscroll o, ttint real_size) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttanyscroll)) { if ((real_size = minBOUND(real_size, 0)) != o->real_size) { FIRE_EVENT(ret = o->Class->SetRealSize(o, real_size), o, ttanyscroll_real_size, real_size, o->real_size); } else ret = TT_TRUE; } return ret; } TT_INLINE ttbyte SetViewSize_ttanyscroll(ttanyscroll o, ttint view_size) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttanyscroll)) { if ((view_size = BOUND(view_size, 0, o->size)) != o->view_size) { FIRE_EVENT(ret = o->Class->SetViewSize(o, view_size), o, ttanyscroll_view_size, view_size, o->view_size); } else ret = TT_TRUE; } return ret; } TT_INLINE ttbyte SetPosition_ttanyscroll(ttanyscroll o, ttint position) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttanyscroll)) { if ((position = BOUND(position, 0, o->size - o->view_size)) != o->position) { FIRE_EVENT(ret = o->Class->SetPosition(o, position), o, ttanyscroll_position, position, o->position); } else ret = TT_TRUE; } return ret; } #if 0 TT_INLINE ttbyte SetState_ttanyscroll(ttanyscroll o, ttuint state) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttanyscroll)) { if (state != o->state) { FIRE_EVENT(ret = o->Class->SetState(o, state), o, ttanyscroll_state, state, o->state); } else ret = TT_TRUE; } return ret; } #endif /* ttscrollbar */ /* ttslider */ TT_INLINE ttbyte SetSlideMin_ttslider(ttslider o, ttint slide_min) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttslider)) { if (slide_min != o->slide_min) { FIRE_EVENT(ret = o->Class->SetSlideMin(o, slide_min), o, ttslider_slide_min, slide_min, o->slide_min); } else ret = TT_TRUE; } return ret; } TT_INLINE ttbyte SetSlideMax_ttslider(ttslider o, ttint slide_max) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttslider)) { if (slide_max != o->slide_max) { FIRE_EVENT(ret = o->Class->SetSlideMax(o, slide_max), o, ttslider_slide_max, slide_max, o->slide_max); } else ret = TT_TRUE; } return ret; } TT_INLINE ttbyte SetSlideValue_ttslider(ttslider o, ttint slide_value) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttslider)) { if ((slide_value = BOUND(slide_value, o->slide_min, o->slide_max)) != o->slide_value) { FIRE_EVENT(ret = o->Class->SetSlideValue(o, slide_value), o, ttslider_slide_value, slide_value, o->slide_value); } else ret = TT_TRUE; } return ret; } /* ttprogressbar */ /* ttscrollpane */ TT_INLINE ttbyte SetBarX_ttscrollpane(ttscrollpane o, ttscrollbar b) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttscrollpane) && (!b || TTAssert(IS(ttscrollbar, b)))) { if (b != o->bar_x) FIRE_EVENT_O(ret = o->Class->SetBarX(o, b), o, ttscrollpane_bar_x, b, o->bar_x); else ret = TT_TRUE; } return ret; } TT_INLINE ttbyte SetBarY_ttscrollpane(ttscrollpane o, ttscrollbar b) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttscrollpane) && (!b || TTAssert(IS(ttscrollbar, b)))) { if (b != o->bar_y) FIRE_EVENT_O(ret = o->Class->SetBarY(o, b), o, ttscrollpane_bar_y, b, o->bar_y); else ret = TT_TRUE; } return ret; } /* ttwindow */ TT_INLINE ttbyte SetTitle_ttwindow(ttwindow o, TT_ARG_READ ttbyte *title) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttwindow)) FIRE_EVENT(ret = o->Class->SetTitle(o, title), o, ttwindow_title, (opaque)title, (opaque)o->title); return ret; } /* ttframe */ TT_INLINE ttbyte SetMenubar_ttframe(ttframe o, ttmenubar m) { ttbyte ret = TT_FALSE; if (CAN_SET(o, ttframe) && (!m || TTAssert(IS(ttmenubar, m)))) { if (m != o->menubar) { FIRE_EVENT_O(ret = o->Class->SetMenubar(o, m), o, ttframe_menubar, m, o->menubar); } else ret = TT_TRUE; } return ret; } /* ttscroller */ /* ttapplication */ #include "wrap_m4.h" �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libTT/wrap_m4.h���������������������������������������������������������������������0000664�0000000�0000000�00000111515�13775351206�0016207�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/wrap.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * wrap_m4.h -- wrappers around final libTT methods * */ /* Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* public, public_set and final methods */ /* ttobj methods */ /* ttclass methods */ /* ttobject methods */ void TTRef_ttobject(tt_obj o) { ttobject a1; LOCK; if ((a1 = ID2(ttobject,o))) Ref_ttobject(a1); UNLK; return ; } void TTUnref_ttobject(tt_obj o) { ttobject a1; LOCK; if ((a1 = ID2(ttobject,o))) Unref_ttobject(a1); UNLK; return ; } ttbyte TTSetUserData_ttobject(tt_obj o, ttany user_data) { ttobject a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttobject,o))) a0 = SetUserData_ttobject(a1, user_data); UNLK; return a0; } /* ttvector methods */ ttany TTGetAt_ttvector(TT_ARG_READ tt_obj o, ttopaque pos) { ttvector a1; ttany a0 = (ttany)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = a1->Class->GetAt(a1, pos); UNLK; return a0; } ttbyte TTSetAt_ttvector(tt_obj o, ttopaque pos, ttany value) { ttvector a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = a1->Class->SetAt(a1, pos, value); UNLK; return a0; } tt_obj TTCreate1_ttvector(ttany value) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create1_ttvector(value)); UNLK; return a0; } tt_obj TTCreateA_ttvector(ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttarg * values) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(CreateA_ttvector(value_n, values)); UNLK; return a0; } tt_obj TTCreateR_ttvector(TT_ARG_READ tt_obj v) { ttvector a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttvector,v))) a0 = (tt_obj)OBJ2ID(CreateR_ttvector(a1)); UNLK; return a0; } tt_obj TTCreateV_ttvector(ttopaque value_n, TT_ARG_ARRAY((1)) va_list * values) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(CreateV_ttvector(value_n, values)); UNLK; return a0; } tt_obj TTCreateY_ttvector(ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(1))) ttany * values) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(CreateY_ttvector(value_n, values)); UNLK; return a0; } ttbyte TTAppend_ttvector(tt_obj o, ttany value) { ttvector a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = Append_ttvector(a1, value); UNLK; return a0; } ttbyte TTAdd_ttvector(tt_obj o, ttopaque pos, ttany value) { ttvector a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = Add_ttvector(a1, pos, value); UNLK; return a0; } ttbyte TTAddA_ttvector(tt_obj o, ttopaque pos, ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttarg * values) { ttvector a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = AddA_ttvector(a1, pos, value_n, values); UNLK; return a0; } ttbyte TTAddR_ttvector(tt_obj o, ttopaque pos, TT_ARG_READ tt_obj v) { ttvector a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = AddR_ttvector(a1, pos, ID2(ttvector,v)); UNLK; return a0; } ttbyte TTAddV_ttvector(tt_obj o, ttopaque pos, ttopaque value_n, TT_ARG_ARRAY((1)) va_list * values) { ttvector a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = AddV_ttvector(a1, pos, value_n, values); UNLK; return a0; } ttbyte TTAddY_ttvector(tt_obj o, ttopaque pos, ttopaque value_n, TT_ARG_READ TT_ARG_ARRAY((_P(2))) ttany * values) { ttvector a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = a1->Class->AddY(a1, pos, value_n, values); UNLK; return a0; } ttopaque TTContainsValue_ttvector(TT_ARG_READ tt_obj o, ttopaque pos_start, ttany value) { ttvector a1; ttopaque a0 = (ttopaque)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = a1->Class->ContainsValue(a1, pos_start, value); UNLK; return a0; } ttbyte TTRemoveAt_ttvector(tt_obj o, ttopaque pos) { ttvector a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = RemoveAt_ttvector(a1, pos); UNLK; return a0; } ttbyte TTRemoveRange_ttvector(tt_obj o, ttopaque pos_start, ttopaque pos_n) { ttvector a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvector,o))) a0 = a1->Class->RemoveRange(a1, pos_start, pos_n); UNLK; return a0; } /* ttfield methods */ /* ttmethod methods */ /* ttevent methods */ tt_obj TTCreate_ttevent(ttuint evtype, ttuint evcode, ttuint evflags) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttevent(evtype, evcode, evflags)); UNLK; return a0; } void TTFire_ttevent(TT_ARG_DIE tt_obj ev, TT_ARG_READ tt_obj o) { ttevent a1; LOCK; if ((a1 = ID2(ttevent,ev))) Fire_ttevent(a1, ID2(ttcomponent,o)); UNLK; return ; } /* tteventbig methods */ tt_obj TTCreate8_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttshort x, ttshort y, ttshort w, ttshort h, ttany value, ttany old_value, ttopaque data_len, TT_ARG_READ TT_ARG_ARRAY((_P(10))) ttbyte * data) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create8_tteventbig(evtype, evcode, evflags, x, y, w, h, value, old_value, data_len, data)); UNLK; return a0; } tt_obj TTCreate4_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttshort x, ttshort y, ttshort w, ttshort h) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create4_tteventbig(evtype, evcode, evflags, x, y, w, h)); UNLK; return a0; } tt_obj TTCreate4s4_tteventbig(ttuint evtype, ttuint evcode, ttuint evflags, ttany value, ttany old_value, ttopaque data_len, TT_ARG_READ TT_ARG_ARRAY((_P(6))) ttbyte * data) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create4s4_tteventbig(evtype, evcode, evflags, value, old_value, data_len, data)); UNLK; return a0; } /* ttbitmask methods */ tt_obj TTCreate_ttbitmask(ttany value) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttbitmask(value)); UNLK; return a0; } tt_obj TTCreateB2_ttbitmask(TT_ARG_READ tt_obj o) { ttbitmask a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = (tt_obj)OBJ2ID(CreateB2_ttbitmask(a1)); UNLK; return a0; } tt_obj TTCreateR_ttbitmask(TT_ARG_DIE tt_obj value) { ttvector a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttvector,value))) a0 = (tt_obj)OBJ2ID(CreateR_ttbitmask(a1)); UNLK; return a0; } tt_obj TTCreateR2_ttbitmask(TT_ARG_READ tt_obj value) { ttvector a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttvector,value))) a0 = (tt_obj)OBJ2ID(CreateR2_ttbitmask(a1)); UNLK; return a0; } void TTClear_ttbitmask(tt_obj o) { ttbitmask a1; LOCK; if ((a1 = ID2(ttbitmask,o))) Clear_ttbitmask(a1); UNLK; return ; } void TTFill_ttbitmask(tt_obj o) { ttbitmask a1; LOCK; if ((a1 = ID2(ttbitmask,o))) Fill_ttbitmask(a1); UNLK; return ; } void TTNegate_ttbitmask(tt_obj o) { ttbitmask a1; LOCK; if ((a1 = ID2(ttbitmask,o))) Negate_ttbitmask(a1); UNLK; return ; } void TTChange_ttbitmask(tt_obj o, ttuint truth_table) { ttbitmask a1; LOCK; if ((a1 = ID2(ttbitmask,o))) Change_ttbitmask(a1, truth_table); UNLK; return ; } ttbyte TTContains_ttbitmask(TT_ARG_READ tt_obj o, ttany value) { ttbitmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = Contains_ttbitmask(a1, value); UNLK; return a0; } ttbyte TTAdd_ttbitmask(tt_obj o, ttany value) { ttbitmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = Add_ttbitmask(a1, value); UNLK; return a0; } ttbyte TTAddB_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value) { ttbitmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = AddB_ttbitmask(a1, ID2(ttbitmask,value)); UNLK; return a0; } ttbyte TTAddR_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value) { ttbitmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = AddR_ttbitmask(a1, ID2(ttvector,value)); UNLK; return a0; } ttbyte TTRemove_ttbitmask(tt_obj o, ttany value) { ttbitmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = Remove_ttbitmask(a1, value); UNLK; return a0; } ttbyte TTRemoveB_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value) { ttbitmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = RemoveB_ttbitmask(a1, ID2(ttbitmask,value)); UNLK; return a0; } ttbyte TTRemoveR_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value) { ttbitmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = RemoveR_ttbitmask(a1, ID2(ttvector,value)); UNLK; return a0; } ttbyte TTCombine_ttbitmask(tt_obj o, ttany value, ttuint truth_table) { ttbitmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = Combine_ttbitmask(a1, value, truth_table); UNLK; return a0; } ttbyte TTCombineR_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value, ttuint truth_table) { ttbitmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = CombineR_ttbitmask(a1, ID2(ttvector,value), truth_table); UNLK; return a0; } ttbyte TTCombineB_ttbitmask(tt_obj o, TT_ARG_READ tt_obj value, ttuint truth_table) { ttbitmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbitmask,o))) a0 = CombineB_ttbitmask(a1, ID2(ttbitmask,value), truth_table); UNLK; return a0; } /* tteventmask methods */ tt_obj TTCreateB_tteventmask(TT_ARG_DIE tt_obj evtype_mask, TT_ARG_DIE tt_obj evcode_mask, TT_ARG_DIE tt_obj component_mask) { ttbitmask a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttbitmask,evtype_mask))) a0 = (tt_obj)OBJ2ID(CreateB_tteventmask(a1, ID2(ttbitmask,evcode_mask), ID2(ttbitmask,component_mask))); UNLK; return a0; } tt_obj TTCreateB2_tteventmask(TT_ARG_READ tt_obj evtype_mask, TT_ARG_READ tt_obj evcode_mask, TT_ARG_READ tt_obj component_mask) { ttbitmask a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttbitmask,evtype_mask))) a0 = (tt_obj)OBJ2ID(CreateB2_tteventmask(a1, ID2(ttbitmask,evcode_mask), ID2(ttbitmask,component_mask))); UNLK; return a0; } ttbyte TTSetEvtypeMask_tteventmask(tt_obj o, TT_ARG_DIE tt_obj evtype_mask) { tteventmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(tteventmask,o))) a0 = SetEvtypeMask_tteventmask(a1, ID2(ttbitmask,evtype_mask)); UNLK; return a0; } ttbyte TTSetEvcodeMask_tteventmask(tt_obj o, TT_ARG_DIE tt_obj evcode_mask) { tteventmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(tteventmask,o))) a0 = SetEvcodeMask_tteventmask(a1, ID2(ttbitmask,evcode_mask)); UNLK; return a0; } ttbyte TTSetComponentMask_tteventmask(tt_obj o, TT_ARG_DIE tt_obj component_mask) { tteventmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(tteventmask,o))) a0 = SetComponentMask_tteventmask(a1, ID2(ttbitmask,component_mask)); UNLK; return a0; } ttbyte TTSetTruthTable_tteventmask(tt_obj o, ttuint truth_table) { tteventmask a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(tteventmask,o))) a0 = SetTruthTable_tteventmask(a1, truth_table); UNLK; return a0; } /* ttcallback methods */ /* ttlistener methods */ tt_obj TTCreate_ttlistener(tt_obj o, ttuint evtype, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(Create_ttlistener(a1, evtype, lflags, function, arg)); UNLK; return a0; } tt_obj TTCreateE_ttlistener(tt_obj o, TT_ARG_DIE tt_obj ev, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(CreateE_ttlistener(a1, ID2(ttevent,ev), lflags, function, arg)); UNLK; return a0; } tt_obj TTCreateR_ttlistener(tt_obj o, TT_ARG_DIE tt_obj ev, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttopaque arg_component_n, ttopaque arg_event_n, TT_ARG_DIE tt_obj args) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(CreateR_ttlistener(a1, ID2(ttevent,ev), lflags, function, arg_component_n, arg_event_n, ID2(ttvector,args))); UNLK; return a0; } tt_obj TTCreateDel_ttlistener(tt_obj o, ttuint lflags, TT_ARG_READ ttlistener_fn function) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(CreateDel_ttlistener(a1, lflags, function)); UNLK; return a0; } tt_obj TTCreateAskclose_ttlistener(tt_obj o, ttuint lflags, TT_ARG_READ ttlistener_fn function) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(CreateAskclose_ttlistener(a1, lflags, function)); UNLK; return a0; } tt_obj TTCreateKey_ttlistener(tt_obj o, ttuint evcode, ttuint evflags, ttuint lflags, TT_ARG_READ ttlistener_fn function) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(CreateKey_ttlistener(a1, evcode, evflags, lflags, function)); UNLK; return a0; } tt_obj TTCreateMouse_ttlistener(tt_obj o, ttuint evcode, ttuint evflags, ttuint lflags, TT_ARG_READ ttlistener_fn function) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(CreateMouse_ttlistener(a1, evcode, evflags, lflags, function)); UNLK; return a0; } tt_obj TTCreateActivate_ttlistener(tt_obj o, ttuint lflags, TT_ARG_READ ttlistener_fn function) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(CreateActivate_ttlistener(a1, lflags, function)); UNLK; return a0; } tt_obj TTCreateChange_ttlistener(tt_obj o, ttuint evcode, ttuint lflags, TT_ARG_READ ttlistener_fn function) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(CreateChange_ttlistener(a1, evcode, lflags, function)); UNLK; return a0; } tt_obj TTCreateKeyData_ttlistener(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key, ttuint lflags, TT_ARG_READ ttlistener_fn function) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(CreateKeyData_ttlistener(a1, key, lflags, function)); UNLK; return a0; } tt_obj TTCreateExpose_ttlistener(tt_obj o, ttuint lflags, TT_ARG_READ ttlistener_fn function) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(CreateExpose_ttlistener(a1, lflags, function)); UNLK; return a0; } void TTAddTo_ttlistener(tt_obj o, tt_obj c) { ttlistener a1; LOCK; if ((a1 = ID2(ttlistener,o))) a1->Class->AddTo(a1, ID2(ttcomponent,c)); UNLK; return ; } void TTRemove_ttlistener(tt_obj o) { ttlistener a1; LOCK; if ((a1 = ID2(ttlistener,o))) a1->Class->Remove(a1); UNLK; return ; } ttbyte TTSetArgsR_ttlistener(tt_obj o, TT_ARG_DIE tt_obj args) { ttlistener a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttlistener,o))) a0 = SetArgsR_ttlistener(a1, ID2(ttvector,args)); UNLK; return a0; } ttbyte TTSetEventMask_ttlistener(tt_obj o, TT_ARG_DIE tt_obj event_mask) { ttlistener a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttlistener,o))) a0 = SetEventMask_ttlistener(a1, ID2(tteventmask,event_mask)); UNLK; return a0; } /* tttimer methods */ tt_obj TTCreateR_tttimer(tt_obj r, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttopaque arg_component_n, ttopaque arg_timer_n, TT_ARG_DIE tt_obj args, ttany delay_t, ttany delay_f) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,r))) a0 = (tt_obj)OBJ2ID(CreateR_tttimer(a1, lflags, function, arg_component_n, arg_timer_n, ID2(ttvector,args), delay_t, delay_f)); UNLK; return a0; } tt_obj TTCreate_tttimer(tt_obj r, ttuint lflags, TT_ARG_READ ttlistener_fn function, ttany arg, ttany delay_t, ttany delay_f) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,r))) a0 = (tt_obj)OBJ2ID(Create_tttimer(a1, lflags, function, arg, delay_t, delay_f)); UNLK; return a0; } void TTSetDelay_tttimer(tt_obj o, ttany delay_t, ttany delay_s) { tttimer a1; LOCK; if ((a1 = ID2(tttimer,o))) SetDelay_tttimer(a1, delay_t, delay_s); UNLK; return ; } void TTSetEnabled_tttimer(tt_obj o, ttbyte enabled) { tttimer a1; LOCK; if ((a1 = ID2(tttimer,o))) a1->Class->SetEnabled(a1, enabled); UNLK; return ; } ttbyte TTIsEnabled_tttimer(TT_ARG_READ tt_obj o) { tttimer a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(tttimer,o))) a0 = a1->Class->IsEnabled(a1); UNLK; return a0; } /* ttcomponent methods */ void TTAddListener_ttcomponent(tt_obj o, tt_obj l) { ttcomponent a1; LOCK; if ((a1 = ID2(ttcomponent,o))) AddListener_ttcomponent(a1, ID2(ttlistener,l)); UNLK; return ; } void TTRemoveListener_ttcomponent(tt_obj o, tt_obj l) { ttcomponent a1; LOCK; if ((a1 = ID2(ttcomponent,o))) RemoveListener_ttcomponent(a1, ID2(ttlistener,l)); UNLK; return ; } tt_obj TTSetKeyData_ttcomponent(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key, ttany data) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(SetKeyData_ttcomponent(a1, key, data)); UNLK; return a0; } ttany TTGetKeyData_ttcomponent(TT_ARG_READ tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key) { ttcomponent a1; ttany a0 = (ttany)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = GetKeyData_ttcomponent(a1, key); UNLK; return a0; } void TTUnsetKeyData_ttcomponent(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key) { ttcomponent a1; LOCK; if ((a1 = ID2(ttcomponent,o))) UnsetKeyData_ttcomponent(a1, key); UNLK; return ; } tt_obj TTGetData_ttcomponent(TT_ARG_READ tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * key) { ttcomponent a1; tt_obj a0 = (tt_obj)(opaque)0; LOCK; if ((a1 = ID2(ttcomponent,o))) a0 = (tt_obj)OBJ2ID(GetData_ttcomponent(a1, key)); UNLK; return a0; } /* ttdata methods */ ttbyte TTSetData_ttdata(tt_obj o, ttany data) { ttdata a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttdata,o))) a0 = SetData_ttdata(a1, data); UNLK; return a0; } /* ttvisible methods */ void TTAddTo_ttvisible(tt_obj o, tt_obj parent, ttany constraint) { ttvisible a1; LOCK; if ((a1 = ID2(ttvisible,o))) AddTo_ttvisible(a1, ID2(ttvisible,parent), constraint); UNLK; return ; } void TTValidate_ttvisible(tt_obj o) { ttvisible a1; LOCK; if ((a1 = ID2(ttvisible,o))) a1->Class->Validate(a1); UNLK; return ; } void TTRemove_ttvisible(tt_obj o) { ttvisible a1; LOCK; if ((a1 = ID2(ttvisible,o))) Remove_ttvisible(a1); UNLK; return ; } void TTInvalidate_ttvisible(tt_obj o) { ttvisible a1; LOCK; if ((a1 = ID2(ttvisible,o))) a1->Class->Invalidate(a1); UNLK; return ; } void TTSetVisible_ttvisible(tt_obj o, ttbyte visible) { ttvisible a1; LOCK; if ((a1 = ID2(ttvisible,o))) SetVisible_ttvisible(a1, visible); UNLK; return ; } ttbyte TTSetTheme_ttvisible(tt_obj o, TT_ARG_READ tt_obj theme) { ttvisible a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvisible,o))) a0 = SetTheme_ttvisible(a1, ID2(tttheme,theme)); UNLK; return a0; } void TTDraw_ttvisible(tt_obj o, ttshort x, ttshort y, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttbyte * asciidata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttfont * fontdata, TT_ARG_READ TT_ARG_ARRAY((_P(5),*,_P(6))) ttattr * attrdata) { ttvisible a1; LOCK; if ((a1 = ID2(ttvisible,o))) a1->Class->Draw(a1, x, y, w, h, pitch, asciidata, fontdata, attrdata); UNLK; return ; } void TTBuiltinRepaint_ttvisible(tt_obj o, ttshort x, ttshort y, ttshort w, ttshort h) { ttvisible a1; LOCK; if ((a1 = ID2(ttvisible,o))) a1->Class->BuiltinRepaint(a1, x, y, w, h); UNLK; return ; } ttbyte TTSetRepaint_ttvisible(tt_obj o, TT_ARG_READ ttvisible_repaint_fn repaint) { ttvisible a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttvisible,o))) a0 = SetRepaint_ttvisible(a1, repaint); UNLK; return a0; } void TTExpose_ttvisible(tt_obj o, ttshort x, ttshort y, ttshort w, ttshort h) { ttvisible a1; LOCK; if ((a1 = ID2(ttvisible,o))) Expose_ttvisible(a1, x, y, w, h); UNLK; return ; } void TTAdd_ttvisible(tt_obj o, tt_obj child, ttany constraint) { ttvisible a1; LOCK; if ((a1 = ID2(ttvisible,o))) Add_ttvisible(a1, ID2(ttvisible,child), constraint); UNLK; return ; } /* ttlayout methods */ /* ttboxlayout methods */ tt_obj TTCreate_ttboxlayout(ttany orientation) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttboxlayout(orientation)); UNLK; return a0; } /* ttborderlayout methods */ /* ttnative methods */ tt_obj TTGetRoot_ttnative(void) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(TClass_ttnative->GetRoot()); UNLK; return a0; } ttshort TTGetW_ttnative(TT_ARG_READ tt_obj o) { ttnative a1; ttshort a0 = (ttshort)0; LOCK; if ((a1 = ID2(ttnative,o))) a0 = a1->Class->GetW(a1); UNLK; return a0; } ttshort TTGetH_ttnative(TT_ARG_READ tt_obj o) { ttnative a1; ttshort a0 = (ttshort)0; LOCK; if ((a1 = ID2(ttnative,o))) a0 = a1->Class->GetH(a1); UNLK; return a0; } tt_obj TTCreate_ttnative(ttany native_value) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttnative(native_value)); UNLK; return a0; } /* ttwidget methods */ void TTSetLayout_ttwidget(tt_obj o, tt_obj l) { ttwidget a1; LOCK; if ((a1 = ID2(ttwidget,o))) SetLayout_ttwidget(a1, ID2(ttlayout,l)); UNLK; return ; } ttbyte TTSetXY_ttwidget(tt_obj o, ttshort x, ttshort y) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetXY_ttwidget(a1, x, y); UNLK; return a0; } ttbyte TTSetWH_ttwidget(tt_obj o, ttshort w, ttshort h) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetWH_ttwidget(a1, w, h); UNLK; return a0; } ttbyte TTSetXl_ttwidget(tt_obj o, ttint xl) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetXl_ttwidget(a1, xl); UNLK; return a0; } ttbyte TTSetYl_ttwidget(tt_obj o, ttint yl) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetYl_ttwidget(a1, yl); UNLK; return a0; } ttbyte TTSetWl_ttwidget(tt_obj o, ttint wl) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetWl_ttwidget(a1, wl); UNLK; return a0; } ttbyte TTSetHl_ttwidget(tt_obj o, ttint hl) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetHl_ttwidget(a1, hl); UNLK; return a0; } ttbyte TTSetTooltip_ttwidget(tt_obj o, TT_ARG_DIE tt_obj t) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetTooltip_ttwidget(a1, ID2(tttooltip,t)); UNLK; return a0; } ttbyte TTSetXlYl_ttwidget(tt_obj o, ttuint mask, ttint xl, ttint yl) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetXlYl_ttwidget(a1, mask, xl, yl); UNLK; return a0; } ttbyte TTSetWlHl_ttwidget(tt_obj o, ttuint mask, ttint wl, ttint hl) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetWlHl_ttwidget(a1, mask, wl, hl); UNLK; return a0; } ttbyte TTSetXYWH_ttwidget(tt_obj o, ttuint mask, ttshort x, ttshort y, ttshort w, ttshort h) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetXYWH_ttwidget(a1, mask, x, y, w, h); UNLK; return a0; } ttbyte TTSetX_ttwidget(tt_obj o, ttshort x) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetX_ttwidget(a1, x); UNLK; return a0; } ttbyte TTSetY_ttwidget(tt_obj o, ttshort y) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetY_ttwidget(a1, y); UNLK; return a0; } ttbyte TTSetW_ttwidget(tt_obj o, ttshort w) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetW_ttwidget(a1, w); UNLK; return a0; } ttbyte TTSetH_ttwidget(tt_obj o, ttshort h) { ttwidget a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwidget,o))) a0 = SetH_ttwidget(a1, h); UNLK; return a0; } /* ttlabel methods */ void TTSetFontD_ttlabel(tt_obj o, ttopaque text_len, TT_ARG_DIE TT_ARG_ARRAY((_P(2))) ttfont * text) { ttlabel a1; LOCK; if ((a1 = ID2(ttlabel,o))) SetFontD_ttlabel(a1, text_len, text); UNLK; return ; } ttbyte TTSetFont_ttlabel(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttfont * text) { ttlabel a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttlabel,o))) a0 = SetFont_ttlabel(a1, text); UNLK; return a0; } ttbyte TTSetText_ttlabel(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * text) { ttlabel a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttlabel,o))) a0 = SetText_ttlabel(a1, text); UNLK; return a0; } tt_obj TTCreate_ttlabel(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * text) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttlabel(text)); UNLK; return a0; } /* tttooltip methods */ ttbyte TTSetWidget_tttooltip(TT_ARG_DIE tt_obj o, tt_obj w) { tttooltip a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(tttooltip,o))) a0 = SetWidget_tttooltip(a1, ID2(ttwidget,w)); UNLK; return a0; } /* ttbuttongroup methods */ void TTAdd_ttbuttongroup(tt_obj o, tt_obj r) { ttbuttongroup a1; LOCK; if ((a1 = ID2(ttbuttongroup,o))) Add_ttbuttongroup(a1, ID2(ttradiobutton,r)); UNLK; return ; } void TTRemove_ttbuttongroup(tt_obj o, tt_obj r) { ttbuttongroup a1; LOCK; if ((a1 = ID2(ttbuttongroup,o))) Remove_ttbuttongroup(a1, ID2(ttradiobutton,r)); UNLK; return ; } void TTSetChecked_ttbuttongroup(tt_obj o, tt_obj r) { ttbuttongroup a1; LOCK; if ((a1 = ID2(ttbuttongroup,o))) SetChecked_ttbuttongroup(a1, ID2(ttradiobutton,r)); UNLK; return ; } /* ttanybutton methods */ void TTSetAttrD_ttanybutton(tt_obj o, ttshort w, ttshort h, ttshort pitch, TT_ARG_DIE TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text) { ttanybutton a1; LOCK; if ((a1 = ID2(ttanybutton,o))) SetAttrD_ttanybutton(a1, w, h, pitch, text); UNLK; return ; } ttbyte TTSetAttr_ttanybutton(tt_obj o, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(3),*,_P(4))) ttattr * text) { ttanybutton a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttanybutton,o))) a0 = SetAttr_ttanybutton(a1, w, h, pitch, text); UNLK; return a0; } ttbyte TTSetFont_ttanybutton(tt_obj o, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(3),*,_P(4))) ttfont * text) { ttanybutton a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttanybutton,o))) a0 = SetFont_ttanybutton(a1, w, h, pitch, text); UNLK; return a0; } ttbyte TTSetText_ttanybutton(tt_obj o, ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(3),*,_P(4))) ttbyte * text) { ttanybutton a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttanybutton,o))) a0 = SetText_ttanybutton(a1, w, h, pitch, text); UNLK; return a0; } tt_obj TTCreate_ttanybutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttanybutton(w, h, pitch, text)); UNLK; return a0; } /* ttbutton methods */ void TTSetPressed_ttbutton(tt_obj o, ttbyte pressed) { ttbutton a1; LOCK; if ((a1 = ID2(ttbutton,o))) SetPressed_ttbutton(a1, pressed); UNLK; return ; } ttbyte TTIsPressed_ttbutton(TT_ARG_READ tt_obj o) { ttbutton a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttbutton,o))) a0 = IsPressed_ttbutton(a1); UNLK; return a0; } tt_obj TTCreate_ttbutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttbutton(w, h, pitch, text)); UNLK; return a0; } /* ttcheckbutton methods */ void TTSetChecked_ttcheckbutton(tt_obj o, ttbyte checked) { ttcheckbutton a1; LOCK; if ((a1 = ID2(ttcheckbutton,o))) SetChecked_ttcheckbutton(a1, checked); UNLK; return ; } ttbyte TTIsChecked_ttcheckbutton(TT_ARG_READ tt_obj o) { ttcheckbutton a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttcheckbutton,o))) a0 = IsChecked_ttcheckbutton(a1); UNLK; return a0; } tt_obj TTCreate_ttcheckbutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttcheckbutton(w, h, pitch, text)); UNLK; return a0; } /* ttradiobutton methods */ void TTAddToGroup_ttradiobutton(tt_obj o, tt_obj g) { ttradiobutton a1; LOCK; if ((a1 = ID2(ttradiobutton,o))) AddToGroup_ttradiobutton(a1, ID2(ttbuttongroup,g)); UNLK; return ; } void TTRemoveFromGroup_ttradiobutton(tt_obj o) { ttradiobutton a1; LOCK; if ((a1 = ID2(ttradiobutton,o))) RemoveFromGroup_ttradiobutton(a1); UNLK; return ; } tt_obj TTCreate_ttradiobutton(ttshort w, ttshort h, ttshort pitch, TT_ARG_READ TT_ARG_ARRAY((_P(2),*,_P(3))) ttbyte * text) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttradiobutton(w, h, pitch, text)); UNLK; return a0; } /* ttanyscroll methods */ ttbyte TTSetOrientation_ttanyscroll(tt_obj o, ttbyte orientation) { ttanyscroll a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttanyscroll,o))) a0 = SetOrientation_ttanyscroll(a1, orientation); UNLK; return a0; } ttbyte TTSetSize_ttanyscroll(tt_obj o, ttint size) { ttanyscroll a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttanyscroll,o))) a0 = SetSize_ttanyscroll(a1, size); UNLK; return a0; } ttbyte TTSetRealSize_ttanyscroll(tt_obj o, ttint real_size) { ttanyscroll a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttanyscroll,o))) a0 = SetRealSize_ttanyscroll(a1, real_size); UNLK; return a0; } ttbyte TTSetViewSize_ttanyscroll(tt_obj o, ttint view_size) { ttanyscroll a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttanyscroll,o))) a0 = SetViewSize_ttanyscroll(a1, view_size); UNLK; return a0; } ttbyte TTSetPosition_ttanyscroll(tt_obj o, ttint position) { ttanyscroll a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttanyscroll,o))) a0 = SetPosition_ttanyscroll(a1, position); UNLK; return a0; } /* ttscrollbar methods */ tt_obj TTCreate1_ttscrollbar(ttbyte orientation) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create1_ttscrollbar(orientation)); UNLK; return a0; } tt_obj TTCreate4_ttscrollbar(ttbyte orientation, ttint size, ttint real_size, ttint view_size) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create4_ttscrollbar(orientation, size, real_size, view_size)); UNLK; return a0; } /* ttslider methods */ ttbyte TTSetSlideMin_ttslider(tt_obj o, ttint slide_min) { ttslider a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttslider,o))) a0 = SetSlideMin_ttslider(a1, slide_min); UNLK; return a0; } ttbyte TTSetSlideMax_ttslider(tt_obj o, ttint slide_max) { ttslider a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttslider,o))) a0 = SetSlideMax_ttslider(a1, slide_max); UNLK; return a0; } ttbyte TTSetSlideValue_ttslider(tt_obj o, ttint slide_value) { ttslider a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttslider,o))) a0 = SetSlideValue_ttslider(a1, slide_value); UNLK; return a0; } tt_obj TTCreate_ttslider(ttbyte orientation, ttint real_size) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttslider(orientation, real_size)); UNLK; return a0; } /* ttprogressbar methods */ tt_obj TTCreate_ttprogressbar(ttbyte orientation) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttprogressbar(orientation)); UNLK; return a0; } /* ttscrollpane methods */ tt_obj TTCreate_ttscrollpane(ttshort w, ttshort h) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttscrollpane(w, h)); UNLK; return a0; } ttbyte TTSetBarX_ttscrollpane(tt_obj o, tt_obj bar_x) { ttscrollpane a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttscrollpane,o))) a0 = SetBarX_ttscrollpane(a1, ID2(ttscrollbar,bar_x)); UNLK; return a0; } ttbyte TTSetBarY_ttscrollpane(tt_obj o, tt_obj bar_y) { ttscrollpane a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttscrollpane,o))) a0 = SetBarY_ttscrollpane(a1, ID2(ttscrollbar,bar_y)); UNLK; return a0; } /* ttwindow methods */ ttbyte TTSetTitle_ttwindow(tt_obj o, TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title) { ttwindow a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttwindow,o))) a0 = SetTitle_ttwindow(a1, title); UNLK; return a0; } /* ttframe methods */ ttbyte TTSetMenubar_ttframe(tt_obj o, TT_ARG_READ tt_obj m) { ttframe a1; ttbyte a0 = (ttbyte)0; LOCK; if ((a1 = ID2(ttframe,o))) a0 = SetMenubar_ttframe(a1, ID2(ttmenubar,m)); UNLK; return a0; } tt_obj TTCreate_ttframe(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * title) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttframe(title)); UNLK; return a0; } /* ttscroller methods */ tt_obj TTCreate_ttscroller(ttshort w, ttshort h) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttscroller(w, h)); UNLK; return a0; } /* ttmenuitem methods */ /* ttcheckmenuitem methods */ /* ttradiomenuitem methods */ /* ttmenu methods */ /* ttmenubar methods */ tt_obj TTGetDefault_ttmenubar(void) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(GetDefault_ttmenubar()); UNLK; return a0; } /* ttanytext methods */ /* tttextfield methods */ /* tttextarea methods */ /* tttheme methods */ tt_obj TTGetDefault_tttheme(void) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(GetDefault_tttheme()); UNLK; return a0; } /* ttapplication methods */ tt_obj TTCreate_ttapplication(TT_ARG_READ TT_ARG_ARRAY_Z ttbyte * name) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Create_ttapplication(name)); UNLK; return a0; } tt_obj TTGet_ttapplication(void) { tt_obj a0 = (tt_obj)(opaque)0; LOCK; a0 = (tt_obj)OBJ2ID(Get_ttapplication()); UNLK; return a0; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/����������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015071�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/COPYING.LIB�����������������������������������������������������������������0000664�0000000�0000000�00000063642�13775351206�0016544�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] 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 Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, 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 and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these 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 other code 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. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. 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, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser 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 combine 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) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) 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. d) 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. e) 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 materials to be 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 with 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 Lesser 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 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 Lesser General Public License as published by the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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! ����������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/Makefile.am�����������������������������������������������������������������0000664�0000000�0000000�00000012056�13775351206�0017131�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## ltdl.mk -- includable Makefile snippet ## ## Copyright (C) 2003-2005, 2007, 2011-2015 Free Software Foundation, ## Inc. ## Written by Gary V. Vaughan, 2003 ## ## NOTE: The canonical source of this file is maintained with the ## GNU Libtool package. Report bugs to bug-libtool@gnu.org. ## ## GNU Libltdl is free software; you can redistribute it and/or ## modify it under the terms of the GNU Lesser General Public ## License as published by the Free Software Foundation; either ## version 2 of the License, or (at your option) any later version. ## ## As a special exception to the GNU Lesser General Public License, ## if you distribute this file as part of a program or library that ## is built using GNU libtool, you may include this file under the ## same distribution terms that you use for the rest of that program. ## ## GNU Libltdl 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 Lesser General Public License for more details. ## ## You should have received a copy of the GNU LesserGeneral Public ## License along with GNU Libltdl; see the file COPYING.LIB. If not, a ## copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, ## or obtained by writing to the Free Software Foundation, Inc., ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ##### ACLOCAL_AMFLAGS = -I ../m4 AUTOMAKE_OPTIONS = foreign AM_CPPFLAGS = AM_LDFLAGS = BUILT_SOURCES = include_HEADERS = noinst_LTLIBRARIES = lib_LTLIBRARIES = EXTRA_LTLIBRARIES = EXTRA_DIST = CLEANFILES = MOSTLYCLEANFILES = # -I$(srcdir) is needed for user that built libltdl with a sub-Automake # (not as a sub-package!) using 'nostdinc': AM_CPPFLAGS += -DLT_CONFIG_H='<$(LT_CONFIG_H)>' \ -DLTDL -I. -I$(srcdir) -Ilibltdl \ -I$(srcdir)/libltdl AM_LDFLAGS += -no-undefined LTDL_VERSION_INFO = -version-info 10:1:3 noinst_LTLIBRARIES += $(LT_DLLOADERS) if INSTALL_LTDL ltdlincludedir = $(includedir)/libltdl ltdlinclude_HEADERS = libltdl/lt_system.h \ libltdl/lt_error.h \ libltdl/lt_dlloader.h include_HEADERS += ltdl.h lib_LTLIBRARIES += libltdl.la endif if CONVENIENCE_LTDL noinst_LTLIBRARIES += libltdlc.la endif libltdl_la_SOURCES = libltdl/lt__alloc.h \ libltdl/lt__dirent.h \ libltdl/lt__glibc.h \ libltdl/lt__private.h \ libltdl/lt__strl.h \ libltdl/lt_dlloader.h \ libltdl/lt_error.h \ libltdl/lt_system.h \ libltdl/slist.h \ loaders/preopen.c \ lt__alloc.c \ lt_dlloader.c \ lt_error.c \ ltdl.c \ ltdl.h \ slist.c EXTRA_DIST += lt__dirent.c \ lt__strl.c libltdl_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN) $(AM_CPPFLAGS) libltdl_la_LDFLAGS = $(AM_LDFLAGS) $(LTDL_VERSION_INFO) $(LT_DLPREOPEN) libltdl_la_LIBADD = $(ltdl_LTLIBOBJS) libltdl_la_DEPENDENCIES = $(LT_DLLOADERS) $(ltdl_LTLIBOBJS) libltdlc_la_SOURCES = $(libltdl_la_SOURCES) libltdlc_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN)c $(AM_CPPFLAGS) libltdlc_la_LDFLAGS = $(AM_LDFLAGS) $(LT_DLPREOPEN) libltdlc_la_LIBADD = $(libltdl_la_LIBADD) libltdlc_la_DEPENDENCIES= $(libltdl_la_DEPENDENCIES) ## The loaders are preopened by libltdl, itself always built from ## pic-objects (either as a shared library, or a convenience library), ## so the loaders themselves must be made from pic-objects too. We ## use convenience libraries for that purpose: EXTRA_LTLIBRARIES += dlopen.la \ dld_link.la \ dyld.la \ load_add_on.la \ loadlibrary.la \ shl_load.la dlopen_la_SOURCES = loaders/dlopen.c dlopen_la_LDFLAGS = -module -avoid-version dlopen_la_LIBADD = $(LIBADD_DLOPEN) dld_link_la_SOURCES = loaders/dld_link.c dld_link_la_LDFLAGS = -module -avoid-version dld_link_la_LIBADD = -ldld dyld_la_SOURCES = loaders/dyld.c dyld_la_LDFLAGS = -module -avoid-version load_add_on_la_SOURCES = loaders/load_add_on.c load_add_on_la_LDFLAGS = -module -avoid-version loadlibrary_la_SOURCES = loaders/loadlibrary.c loadlibrary_la_LDFLAGS = -module -avoid-version shl_load_la_SOURCES = loaders/shl_load.c shl_load_la_LDFLAGS = -module -avoid-version shl_load_la_LIBADD = $(LIBADD_SHL_LOAD) ## Make sure these will be cleaned even when they're not built by default: CLEANFILES += libltdl.la \ libltdlc.la \ libdlloader.la ## Automake-1.9.6 doesn't clean subdir AC_LIBOBJ compiled objects ## automatically: CLEANFILES += $(ltdl_LIBOBJS) $(ltdl_LTLIBOBJS) EXTRA_DIST += COPYING.LIB \ README ## --------------------------- ## ## Gnulib Makefile.am snippets ## ## --------------------------- ## BUILT_SOURCES += libltdl/$(LT_ARGZ_H) EXTRA_DIST += libltdl/lt__argz_.h \ lt__argz.c # We need the following in order to create an <argz.h> when the system # doesn't have one that works with the given compiler. all-local $(lib_OBJECTS): $(LT_ARGZ_H) libltdl/lt__argz.h: libltdl/lt__argz_.h $(AM_V_at)$(mkinstalldirs) . libltdl $(AM_V_GEN)cp $(srcdir)/libltdl/lt__argz_.h $@-t $(AM_V_at)mv $@-t $@ MOSTLYCLEANFILES += libltdl/lt__argz.h \ libltdl/lt__argz.h-t ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/Makefile.in�����������������������������������������������������������������0000664�0000000�0000000�00000141712�13775351206�0017144�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ ##### VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @INSTALL_LTDL_TRUE@am__append_1 = ltdl.h @INSTALL_LTDL_TRUE@am__append_2 = libltdl.la @CONVENIENCE_LTDL_TRUE@am__append_3 = libltdlc.la subdir = libs/libltdl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__include_HEADERS_DIST) \ $(am__ltdlinclude_HEADERS_DIST) $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" \ "$(DESTDIR)$(ltdlincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) dld_link_la_DEPENDENCIES = am__dirstamp = $(am__leading_dot)dirstamp am_dld_link_la_OBJECTS = loaders/dld_link.lo dld_link_la_OBJECTS = $(am_dld_link_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = dld_link_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(dld_link_la_LDFLAGS) $(LDFLAGS) -o $@ am__DEPENDENCIES_1 = dlopen_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_dlopen_la_OBJECTS = loaders/dlopen.lo dlopen_la_OBJECTS = $(am_dlopen_la_OBJECTS) dlopen_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(dlopen_la_LDFLAGS) $(LDFLAGS) -o $@ dyld_la_LIBADD = am_dyld_la_OBJECTS = loaders/dyld.lo dyld_la_OBJECTS = $(am_dyld_la_OBJECTS) dyld_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(dyld_la_LDFLAGS) $(LDFLAGS) -o $@ am_libltdl_la_OBJECTS = loaders/libltdl_la-preopen.lo \ libltdl_la-lt__alloc.lo libltdl_la-lt_dlloader.lo \ libltdl_la-lt_error.lo libltdl_la-ltdl.lo libltdl_la-slist.lo libltdl_la_OBJECTS = $(am_libltdl_la_OBJECTS) libltdl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libltdl_la_LDFLAGS) $(LDFLAGS) -o $@ @INSTALL_LTDL_TRUE@am_libltdl_la_rpath = -rpath $(libdir) am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) am__objects_1 = loaders/libltdlc_la-preopen.lo \ libltdlc_la-lt__alloc.lo libltdlc_la-lt_dlloader.lo \ libltdlc_la-lt_error.lo libltdlc_la-ltdl.lo \ libltdlc_la-slist.lo am_libltdlc_la_OBJECTS = $(am__objects_1) libltdlc_la_OBJECTS = $(am_libltdlc_la_OBJECTS) libltdlc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libltdlc_la_LDFLAGS) $(LDFLAGS) -o $@ @CONVENIENCE_LTDL_TRUE@am_libltdlc_la_rpath = load_add_on_la_LIBADD = am_load_add_on_la_OBJECTS = loaders/load_add_on.lo load_add_on_la_OBJECTS = $(am_load_add_on_la_OBJECTS) load_add_on_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(load_add_on_la_LDFLAGS) $(LDFLAGS) -o \ $@ loadlibrary_la_LIBADD = am_loadlibrary_la_OBJECTS = loaders/loadlibrary.lo loadlibrary_la_OBJECTS = $(am_loadlibrary_la_OBJECTS) loadlibrary_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(loadlibrary_la_LDFLAGS) $(LDFLAGS) -o \ $@ shl_load_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_shl_load_la_OBJECTS = loaders/shl_load.lo shl_load_la_OBJECTS = $(am_shl_load_la_OBJECTS) shl_load_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(shl_load_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/libltdl_la-lt__alloc.Plo \ ./$(DEPDIR)/libltdl_la-lt_dlloader.Plo \ ./$(DEPDIR)/libltdl_la-lt_error.Plo \ ./$(DEPDIR)/libltdl_la-ltdl.Plo \ ./$(DEPDIR)/libltdl_la-slist.Plo \ ./$(DEPDIR)/libltdlc_la-lt__alloc.Plo \ ./$(DEPDIR)/libltdlc_la-lt_dlloader.Plo \ ./$(DEPDIR)/libltdlc_la-lt_error.Plo \ ./$(DEPDIR)/libltdlc_la-ltdl.Plo \ ./$(DEPDIR)/libltdlc_la-slist.Plo \ loaders/$(DEPDIR)/dld_link.Plo loaders/$(DEPDIR)/dlopen.Plo \ loaders/$(DEPDIR)/dyld.Plo \ loaders/$(DEPDIR)/libltdl_la-preopen.Plo \ loaders/$(DEPDIR)/libltdlc_la-preopen.Plo \ loaders/$(DEPDIR)/load_add_on.Plo \ loaders/$(DEPDIR)/loadlibrary.Plo \ loaders/$(DEPDIR)/shl_load.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(dld_link_la_SOURCES) $(dlopen_la_SOURCES) \ $(dyld_la_SOURCES) $(libltdl_la_SOURCES) \ $(libltdlc_la_SOURCES) $(load_add_on_la_SOURCES) \ $(loadlibrary_la_SOURCES) $(shl_load_la_SOURCES) DIST_SOURCES = $(dld_link_la_SOURCES) $(dlopen_la_SOURCES) \ $(dyld_la_SOURCES) $(libltdl_la_SOURCES) \ $(libltdlc_la_SOURCES) $(load_add_on_la_SOURCES) \ $(loadlibrary_la_SOURCES) $(shl_load_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__include_HEADERS_DIST = ltdl.h am__ltdlinclude_HEADERS_DIST = libltdl/lt_system.h libltdl/lt_error.h \ libltdl/lt_dlloader.h HEADERS = $(include_HEADERS) $(ltdlinclude_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/admin/depcomp \ COPYING.LIB README DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I ../m4 AUTOMAKE_OPTIONS = foreign # -I$(srcdir) is needed for user that built libltdl with a sub-Automake # (not as a sub-package!) using 'nostdinc': AM_CPPFLAGS = -DLT_CONFIG_H='<$(LT_CONFIG_H)>' -DLTDL -I. -I$(srcdir) \ -Ilibltdl -I$(srcdir)/libltdl AM_LDFLAGS = -no-undefined BUILT_SOURCES = libltdl/$(LT_ARGZ_H) include_HEADERS = $(am__append_1) noinst_LTLIBRARIES = $(LT_DLLOADERS) $(am__append_3) lib_LTLIBRARIES = $(am__append_2) EXTRA_LTLIBRARIES = dlopen.la dld_link.la dyld.la load_add_on.la \ loadlibrary.la shl_load.la EXTRA_DIST = lt__dirent.c lt__strl.c COPYING.LIB README \ libltdl/lt__argz_.h lt__argz.c CLEANFILES = libltdl.la libltdlc.la libdlloader.la $(ltdl_LIBOBJS) \ $(ltdl_LTLIBOBJS) MOSTLYCLEANFILES = libltdl/lt__argz.h libltdl/lt__argz.h-t LTDL_VERSION_INFO = -version-info 10:1:3 @INSTALL_LTDL_TRUE@ltdlincludedir = $(includedir)/libltdl @INSTALL_LTDL_TRUE@ltdlinclude_HEADERS = libltdl/lt_system.h \ @INSTALL_LTDL_TRUE@ libltdl/lt_error.h \ @INSTALL_LTDL_TRUE@ libltdl/lt_dlloader.h libltdl_la_SOURCES = libltdl/lt__alloc.h \ libltdl/lt__dirent.h \ libltdl/lt__glibc.h \ libltdl/lt__private.h \ libltdl/lt__strl.h \ libltdl/lt_dlloader.h \ libltdl/lt_error.h \ libltdl/lt_system.h \ libltdl/slist.h \ loaders/preopen.c \ lt__alloc.c \ lt_dlloader.c \ lt_error.c \ ltdl.c \ ltdl.h \ slist.c libltdl_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN) $(AM_CPPFLAGS) libltdl_la_LDFLAGS = $(AM_LDFLAGS) $(LTDL_VERSION_INFO) $(LT_DLPREOPEN) libltdl_la_LIBADD = $(ltdl_LTLIBOBJS) libltdl_la_DEPENDENCIES = $(LT_DLLOADERS) $(ltdl_LTLIBOBJS) libltdlc_la_SOURCES = $(libltdl_la_SOURCES) libltdlc_la_CPPFLAGS = -DLTDLOPEN=$(LTDLOPEN)c $(AM_CPPFLAGS) libltdlc_la_LDFLAGS = $(AM_LDFLAGS) $(LT_DLPREOPEN) libltdlc_la_LIBADD = $(libltdl_la_LIBADD) libltdlc_la_DEPENDENCIES = $(libltdl_la_DEPENDENCIES) dlopen_la_SOURCES = loaders/dlopen.c dlopen_la_LDFLAGS = -module -avoid-version dlopen_la_LIBADD = $(LIBADD_DLOPEN) dld_link_la_SOURCES = loaders/dld_link.c dld_link_la_LDFLAGS = -module -avoid-version dld_link_la_LIBADD = -ldld dyld_la_SOURCES = loaders/dyld.c dyld_la_LDFLAGS = -module -avoid-version load_add_on_la_SOURCES = loaders/load_add_on.c load_add_on_la_LDFLAGS = -module -avoid-version loadlibrary_la_SOURCES = loaders/loadlibrary.c loadlibrary_la_LDFLAGS = -module -avoid-version shl_load_la_SOURCES = loaders/shl_load.c shl_load_la_LDFLAGS = -module -avoid-version shl_load_la_LIBADD = $(LIBADD_SHL_LOAD) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libs/libltdl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libs/libltdl/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } loaders/$(am__dirstamp): @$(MKDIR_P) loaders @: > loaders/$(am__dirstamp) loaders/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) loaders/$(DEPDIR) @: > loaders/$(DEPDIR)/$(am__dirstamp) loaders/dld_link.lo: loaders/$(am__dirstamp) \ loaders/$(DEPDIR)/$(am__dirstamp) dld_link.la: $(dld_link_la_OBJECTS) $(dld_link_la_DEPENDENCIES) $(EXTRA_dld_link_la_DEPENDENCIES) $(AM_V_CCLD)$(dld_link_la_LINK) $(dld_link_la_OBJECTS) $(dld_link_la_LIBADD) $(LIBS) loaders/dlopen.lo: loaders/$(am__dirstamp) \ loaders/$(DEPDIR)/$(am__dirstamp) dlopen.la: $(dlopen_la_OBJECTS) $(dlopen_la_DEPENDENCIES) $(EXTRA_dlopen_la_DEPENDENCIES) $(AM_V_CCLD)$(dlopen_la_LINK) $(dlopen_la_OBJECTS) $(dlopen_la_LIBADD) $(LIBS) loaders/dyld.lo: loaders/$(am__dirstamp) \ loaders/$(DEPDIR)/$(am__dirstamp) dyld.la: $(dyld_la_OBJECTS) $(dyld_la_DEPENDENCIES) $(EXTRA_dyld_la_DEPENDENCIES) $(AM_V_CCLD)$(dyld_la_LINK) $(dyld_la_OBJECTS) $(dyld_la_LIBADD) $(LIBS) loaders/libltdl_la-preopen.lo: loaders/$(am__dirstamp) \ loaders/$(DEPDIR)/$(am__dirstamp) libltdl.la: $(libltdl_la_OBJECTS) $(libltdl_la_DEPENDENCIES) $(EXTRA_libltdl_la_DEPENDENCIES) $(AM_V_CCLD)$(libltdl_la_LINK) $(am_libltdl_la_rpath) $(libltdl_la_OBJECTS) $(libltdl_la_LIBADD) $(LIBS) loaders/libltdlc_la-preopen.lo: loaders/$(am__dirstamp) \ loaders/$(DEPDIR)/$(am__dirstamp) libltdlc.la: $(libltdlc_la_OBJECTS) $(libltdlc_la_DEPENDENCIES) $(EXTRA_libltdlc_la_DEPENDENCIES) $(AM_V_CCLD)$(libltdlc_la_LINK) $(am_libltdlc_la_rpath) $(libltdlc_la_OBJECTS) $(libltdlc_la_LIBADD) $(LIBS) loaders/load_add_on.lo: loaders/$(am__dirstamp) \ loaders/$(DEPDIR)/$(am__dirstamp) load_add_on.la: $(load_add_on_la_OBJECTS) $(load_add_on_la_DEPENDENCIES) $(EXTRA_load_add_on_la_DEPENDENCIES) $(AM_V_CCLD)$(load_add_on_la_LINK) $(load_add_on_la_OBJECTS) $(load_add_on_la_LIBADD) $(LIBS) loaders/loadlibrary.lo: loaders/$(am__dirstamp) \ loaders/$(DEPDIR)/$(am__dirstamp) loadlibrary.la: $(loadlibrary_la_OBJECTS) $(loadlibrary_la_DEPENDENCIES) $(EXTRA_loadlibrary_la_DEPENDENCIES) $(AM_V_CCLD)$(loadlibrary_la_LINK) $(loadlibrary_la_OBJECTS) $(loadlibrary_la_LIBADD) $(LIBS) loaders/shl_load.lo: loaders/$(am__dirstamp) \ loaders/$(DEPDIR)/$(am__dirstamp) shl_load.la: $(shl_load_la_OBJECTS) $(shl_load_la_DEPENDENCIES) $(EXTRA_shl_load_la_DEPENDENCIES) $(AM_V_CCLD)$(shl_load_la_LINK) $(shl_load_la_OBJECTS) $(shl_load_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f loaders/*.$(OBJEXT) -rm -f loaders/*.lo distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt__alloc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt_dlloader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-lt_error.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-ltdl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdl_la-slist.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt__alloc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt_dlloader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-lt_error.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-ltdl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libltdlc_la-slist.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/dld_link.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/dlopen.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/dyld.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/libltdl_la-preopen.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/libltdlc_la-preopen.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/load_add_on.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/loadlibrary.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@loaders/$(DEPDIR)/shl_load.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< loaders/libltdl_la-preopen.lo: loaders/preopen.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loaders/libltdl_la-preopen.lo -MD -MP -MF loaders/$(DEPDIR)/libltdl_la-preopen.Tpo -c -o loaders/libltdl_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) loaders/$(DEPDIR)/libltdl_la-preopen.Tpo loaders/$(DEPDIR)/libltdl_la-preopen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/preopen.c' object='loaders/libltdl_la-preopen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loaders/libltdl_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c libltdl_la-lt__alloc.lo: lt__alloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt__alloc.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt__alloc.Tpo -c -o libltdl_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt__alloc.Tpo $(DEPDIR)/libltdl_la-lt__alloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt__alloc.c' object='libltdl_la-lt__alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c libltdl_la-lt_dlloader.lo: lt_dlloader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt_dlloader.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt_dlloader.Tpo -c -o libltdl_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt_dlloader.Tpo $(DEPDIR)/libltdl_la-lt_dlloader.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_dlloader.c' object='libltdl_la-lt_dlloader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c libltdl_la-lt_error.lo: lt_error.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-lt_error.lo -MD -MP -MF $(DEPDIR)/libltdl_la-lt_error.Tpo -c -o libltdl_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-lt_error.Tpo $(DEPDIR)/libltdl_la-lt_error.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_error.c' object='libltdl_la-lt_error.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c libltdl_la-ltdl.lo: ltdl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-ltdl.lo -MD -MP -MF $(DEPDIR)/libltdl_la-ltdl.Tpo -c -o libltdl_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-ltdl.Tpo $(DEPDIR)/libltdl_la-ltdl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ltdl.c' object='libltdl_la-ltdl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c libltdl_la-slist.lo: slist.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdl_la-slist.lo -MD -MP -MF $(DEPDIR)/libltdl_la-slist.Tpo -c -o libltdl_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdl_la-slist.Tpo $(DEPDIR)/libltdl_la-slist.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='slist.c' object='libltdl_la-slist.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdl_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c loaders/libltdlc_la-preopen.lo: loaders/preopen.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT loaders/libltdlc_la-preopen.lo -MD -MP -MF loaders/$(DEPDIR)/libltdlc_la-preopen.Tpo -c -o loaders/libltdlc_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) loaders/$(DEPDIR)/libltdlc_la-preopen.Tpo loaders/$(DEPDIR)/libltdlc_la-preopen.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='loaders/preopen.c' object='loaders/libltdlc_la-preopen.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o loaders/libltdlc_la-preopen.lo `test -f 'loaders/preopen.c' || echo '$(srcdir)/'`loaders/preopen.c libltdlc_la-lt__alloc.lo: lt__alloc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt__alloc.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt__alloc.Tpo -c -o libltdlc_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt__alloc.Tpo $(DEPDIR)/libltdlc_la-lt__alloc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt__alloc.c' object='libltdlc_la-lt__alloc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt__alloc.lo `test -f 'lt__alloc.c' || echo '$(srcdir)/'`lt__alloc.c libltdlc_la-lt_dlloader.lo: lt_dlloader.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt_dlloader.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt_dlloader.Tpo -c -o libltdlc_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt_dlloader.Tpo $(DEPDIR)/libltdlc_la-lt_dlloader.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_dlloader.c' object='libltdlc_la-lt_dlloader.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt_dlloader.lo `test -f 'lt_dlloader.c' || echo '$(srcdir)/'`lt_dlloader.c libltdlc_la-lt_error.lo: lt_error.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-lt_error.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-lt_error.Tpo -c -o libltdlc_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-lt_error.Tpo $(DEPDIR)/libltdlc_la-lt_error.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lt_error.c' object='libltdlc_la-lt_error.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-lt_error.lo `test -f 'lt_error.c' || echo '$(srcdir)/'`lt_error.c libltdlc_la-ltdl.lo: ltdl.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-ltdl.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-ltdl.Tpo -c -o libltdlc_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-ltdl.Tpo $(DEPDIR)/libltdlc_la-ltdl.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ltdl.c' object='libltdlc_la-ltdl.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-ltdl.lo `test -f 'ltdl.c' || echo '$(srcdir)/'`ltdl.c libltdlc_la-slist.lo: slist.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libltdlc_la-slist.lo -MD -MP -MF $(DEPDIR)/libltdlc_la-slist.Tpo -c -o libltdlc_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libltdlc_la-slist.Tpo $(DEPDIR)/libltdlc_la-slist.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='slist.c' object='libltdlc_la-slist.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libltdlc_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libltdlc_la-slist.lo `test -f 'slist.c' || echo '$(srcdir)/'`slist.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -rm -rf loaders/.libs loaders/_libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) install-ltdlincludeHEADERS: $(ltdlinclude_HEADERS) @$(NORMAL_INSTALL) @list='$(ltdlinclude_HEADERS)'; test -n "$(ltdlincludedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(ltdlincludedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(ltdlincludedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(ltdlincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(ltdlincludedir)" || exit $$?; \ done uninstall-ltdlincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(ltdlinclude_HEADERS)'; test -n "$(ltdlincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(ltdlincludedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(ltdlincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f loaders/$(DEPDIR)/$(am__dirstamp) -rm -f loaders/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/libltdl_la-lt__alloc.Plo -rm -f ./$(DEPDIR)/libltdl_la-lt_dlloader.Plo -rm -f ./$(DEPDIR)/libltdl_la-lt_error.Plo -rm -f ./$(DEPDIR)/libltdl_la-ltdl.Plo -rm -f ./$(DEPDIR)/libltdl_la-slist.Plo -rm -f ./$(DEPDIR)/libltdlc_la-lt__alloc.Plo -rm -f ./$(DEPDIR)/libltdlc_la-lt_dlloader.Plo -rm -f ./$(DEPDIR)/libltdlc_la-lt_error.Plo -rm -f ./$(DEPDIR)/libltdlc_la-ltdl.Plo -rm -f ./$(DEPDIR)/libltdlc_la-slist.Plo -rm -f loaders/$(DEPDIR)/dld_link.Plo -rm -f loaders/$(DEPDIR)/dlopen.Plo -rm -f loaders/$(DEPDIR)/dyld.Plo -rm -f loaders/$(DEPDIR)/libltdl_la-preopen.Plo -rm -f loaders/$(DEPDIR)/libltdlc_la-preopen.Plo -rm -f loaders/$(DEPDIR)/load_add_on.Plo -rm -f loaders/$(DEPDIR)/loadlibrary.Plo -rm -f loaders/$(DEPDIR)/shl_load.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-ltdlincludeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libltdl_la-lt__alloc.Plo -rm -f ./$(DEPDIR)/libltdl_la-lt_dlloader.Plo -rm -f ./$(DEPDIR)/libltdl_la-lt_error.Plo -rm -f ./$(DEPDIR)/libltdl_la-ltdl.Plo -rm -f ./$(DEPDIR)/libltdl_la-slist.Plo -rm -f ./$(DEPDIR)/libltdlc_la-lt__alloc.Plo -rm -f ./$(DEPDIR)/libltdlc_la-lt_dlloader.Plo -rm -f ./$(DEPDIR)/libltdlc_la-lt_error.Plo -rm -f ./$(DEPDIR)/libltdlc_la-ltdl.Plo -rm -f ./$(DEPDIR)/libltdlc_la-slist.Plo -rm -f loaders/$(DEPDIR)/dld_link.Plo -rm -f loaders/$(DEPDIR)/dlopen.Plo -rm -f loaders/$(DEPDIR)/dyld.Plo -rm -f loaders/$(DEPDIR)/libltdl_la-preopen.Plo -rm -f loaders/$(DEPDIR)/libltdlc_la-preopen.Plo -rm -f loaders/$(DEPDIR)/load_add_on.Plo -rm -f loaders/$(DEPDIR)/loadlibrary.Plo -rm -f loaders/$(DEPDIR)/shl_load.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \ uninstall-ltdlincludeHEADERS .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-includeHEADERS install-info \ install-info-am install-libLTLIBRARIES \ install-ltdlincludeHEADERS install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-includeHEADERS \ uninstall-libLTLIBRARIES uninstall-ltdlincludeHEADERS .PRECIOUS: Makefile # We need the following in order to create an <argz.h> when the system # doesn't have one that works with the given compiler. all-local $(lib_OBJECTS): $(LT_ARGZ_H) libltdl/lt__argz.h: libltdl/lt__argz_.h $(AM_V_at)$(mkinstalldirs) . libltdl $(AM_V_GEN)cp $(srcdir)/libltdl/lt__argz_.h $@-t $(AM_V_at)mv $@-t $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������twin-0.9.0/libs/libltdl/README����������������������������������������������������������������������0000664�0000000�0000000�00000001265�13775351206�0015755�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������This is GNU libltdl, a system independent dlopen wrapper for GNU libtool. It supports the following dlopen interfaces: * dlopen (POSIX) * shl_load (HP-UX) * LoadLibrary (Win16 and Win32) * load_add_on (BeOS) * GNU DLD (emulates dynamic linking for static libraries) * dyld (darwin/Mac OS X) * libtool's dlpreopen -- Copyright (C) 1999, 2003, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1999 This file is part of GNU Libtool. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/libltdl/��������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0016517�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/libltdl/lt__alloc.h���������������������������������������������������������0000664�0000000�0000000�00000004202�13775351206�0020616�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt__alloc.h -- internal memory management interface Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #if !defined LT__ALLOC_H #define LT__ALLOC_H 1 #include "lt_system.h" LT_BEGIN_C_DECLS #define MALLOC(tp, n) (tp*) lt__malloc((n) * sizeof(tp)) #define REALLOC(tp, mem, n) (tp*) lt__realloc((mem), (n) * sizeof(tp)) #define FREE(mem) LT_STMT_START { \ free (mem); mem = NULL; } LT_STMT_END #define MEMREASSIGN(p, q) LT_STMT_START { \ if ((p) != (q)) { free (p); (p) = (q); (q) = 0; } \ } LT_STMT_END /* If set, this function is called when memory allocation has failed. */ LT_SCOPE void (*lt__alloc_die) (void); LT_SCOPE void *lt__malloc (size_t n); LT_SCOPE void *lt__zalloc (size_t n); LT_SCOPE void *lt__realloc (void *mem, size_t n); LT_SCOPE void *lt__memdup (void const *mem, size_t n); LT_SCOPE char *lt__strdup (const char *string); LT_END_C_DECLS #endif /*!defined LT__ALLOC_H*/ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/libltdl/lt__argz_.h���������������������������������������������������������0000664�0000000�0000000�00000004263�13775351206�0020635�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt__argz.h -- internal argz interface for non-glibc systems Copyright (C) 2004, 2007-2008, 2011-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #if !defined LT__ARGZ_H #define LT__ARGZ_H 1 #include <stdlib.h> #define __need_error_t #include <errno.h> #include <sys/types.h> #if defined LTDL # include "lt__glibc.h" # include "lt_system.h" #else # define LT_SCOPE #endif #if defined __cplusplus extern "C" { #endif LT_SCOPE error_t argz_append (char **pargz, size_t *pargz_len, const char *buf, size_t buf_len); LT_SCOPE error_t argz_create_sep(const char *str, int delim, char **pargz, size_t *pargz_len); LT_SCOPE error_t argz_insert (char **pargz, size_t *pargz_len, char *before, const char *entry); LT_SCOPE char * argz_next (char *argz, size_t argz_len, const char *entry); LT_SCOPE void argz_stringify (char *argz, size_t argz_len, int sep); #if defined __cplusplus } #endif #if !defined LTDL # undef LT_SCOPE #endif #endif /*!defined LT__ARGZ_H*/ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/libltdl/lt__dirent.h��������������������������������������������������������0000664�0000000�0000000�00000004735�13775351206�0021024�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt__dirent.h -- internal directory entry scanning interface Copyright (C) 2001, 2004, 2006, 2011-2015 Free Software Foundation, Inc. Written by Bob Friesenhahn, 2001 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #if !defined LT__DIRENT_H #define LT__DIRENT_H 1 #if defined LT_CONFIG_H # include LT_CONFIG_H #else # include <config.h> #endif #include "lt_system.h" #ifdef HAVE_DIRENT_H /* We have a fully operational dirent subsystem. */ # include <dirent.h> # define D_NAMLEN(dirent) (strlen((dirent)->d_name)) #elif defined __WINDOWS__ /* Use some wrapper code to emulate dirent on windows.. */ # define WINDOWS_DIRENT_EMULATION 1 # include <windows.h> # define D_NAMLEN(dirent) (strlen((dirent)->d_name)) # define dirent lt__dirent # define DIR lt__DIR # define opendir lt__opendir # define readdir lt__readdir # define closedir lt__closedir LT_BEGIN_C_DECLS struct dirent { char d_name[LT_FILENAME_MAX]; int d_namlen; }; typedef struct { HANDLE hSearch; WIN32_FIND_DATA Win32FindData; BOOL firsttime; struct dirent file_info; } DIR; LT_SCOPE DIR * opendir (const char *path); LT_SCOPE struct dirent *readdir (DIR *entry); LT_SCOPE void closedir (DIR *entry); LT_END_C_DECLS #else /* !defined __WINDOWS__*/ ERROR - cannot find dirent #endif /*!defined __WINDOWS__*/ #endif /*!defined LT__DIRENT_H*/ �����������������������������������twin-0.9.0/libs/libltdl/libltdl/lt__glibc.h���������������������������������������������������������0000664�0000000�0000000�00000005400�13775351206�0020605�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt__glibc.h -- support for non glibc environments Copyright (C) 2004, 2006-2007, 2011-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #if !defined LT__GLIBC_H #define LT__GLIBC_H 1 #if defined LT_CONFIG_H # include LT_CONFIG_H #else # include <config.h> #endif #if !defined HAVE_ARGZ_H || !defined HAVE_WORKING_ARGZ /* Redefine any glibc symbols we reimplement to import the implementations into our lt__ namespace so we don't ever clash with the system library if our clients use argz_* from there in addition to libltdl. */ # undef argz_append # define argz_append lt__argz_append # undef argz_create_sep # define argz_create_sep lt__argz_create_sep # undef argz_insert # define argz_insert lt__argz_insert # undef argz_next # define argz_next lt__argz_next # undef argz_stringify # define argz_stringify lt__argz_stringify # include <lt__argz.h> #else #ifdef __cplusplus extern "C" { #endif #include <argz.h> #ifdef __cplusplus } #endif #endif /*!defined HAVE_ARGZ_H || !defined HAVE_WORKING_ARGZ*/ # define slist_concat lt__slist_concat # define slist_cons lt__slist_cons # define slist_delete lt__slist_delete # define slist_remove lt__slist_remove # define slist_reverse lt__slist_reverse # define slist_sort lt__slist_sort # define slist_tail lt__slist_tail # define slist_nth lt__slist_nth # define slist_find lt__slist_find # define slist_length lt__slist_length # define slist_foreach lt__slist_foreach # define slist_box lt__slist_box # define slist_unbox lt__slist_unbox #include <slist.h> #endif /*!defined LT__GLIBC_H*/ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/libltdl/lt__private.h�������������������������������������������������������0000664�0000000�0000000�00000010633�13775351206�0021203�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt__private.h -- internal apis for libltdl Copyright (C) 2004-2008, 2011-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy con be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #if !defined LT__PRIVATE_H #define LT__PRIVATE_H 1 #if defined LT_CONFIG_H # include LT_CONFIG_H #else # include <config.h> #endif #include <stdio.h> #include <ctype.h> #include <assert.h> #include <errno.h> #include <string.h> #if defined HAVE_UNISTD_H # include <unistd.h> #endif /* Import internal interfaces... */ #include "lt__alloc.h" #include "lt__dirent.h" #include "lt__strl.h" #include "lt__glibc.h" /* ...and all exported interfaces. */ #include "ltdl.h" #if defined WITH_DMALLOC # include <dmalloc.h> #endif /* DLL building support on win32 hosts; mostly to workaround their ridiculous implementation of data symbol exporting. */ #ifndef LT_GLOBAL_DATA # if defined __WINDOWS__ || defined __CYGWIN__ # if defined DLL_EXPORT /* defined by libtool (if required) */ # define LT_GLOBAL_DATA __declspec(dllexport) # endif # endif # ifndef LT_GLOBAL_DATA # define LT_GLOBAL_DATA /* static linking or !__WINDOWS__ */ # endif #endif #ifndef __attribute__ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ # define __attribute__(x) # endif #endif #ifndef LT__UNUSED # define LT__UNUSED __attribute__ ((__unused__)) #endif LT_BEGIN_C_DECLS #if !defined errno extern int errno; #endif LT_SCOPE void lt__alloc_die_callback (void); /* For readability: */ #define STRNEQ(s1, s2) (strcmp((s1), (s2)) != 0) #define STREQ(s1, s2) (strcmp((s1), (s2)) == 0) /* --- OPAQUE STRUCTURES DECLARED IN LTDL.H --- */ /* This type is used for the array of interface data sets in each handler. */ typedef struct { lt_dlinterface_id key; void * data; } lt_interface_data; struct lt__handle { lt_dlhandle next; const lt_dlvtable * vtable; /* dlopening interface */ lt_dlinfo info; /* user visible fields */ int depcount; /* number of dependencies */ lt_dlhandle * deplibs; /* dependencies */ lt_module module; /* system module handle */ void * system; /* system specific data */ lt_interface_data * interface_data; /* per caller associated data */ int flags; /* various boolean stats */ }; struct lt__advise { unsigned int try_ext:1; /* try system library extensions. */ unsigned int is_resident:1; /* module can't be unloaded. */ unsigned int is_symglobal:1; /* module symbols can satisfy subsequently loaded modules. */ unsigned int is_symlocal:1; /* module symbols are only available locally. */ unsigned int try_preload_only:1;/* only preloaded modules will be tried. */ }; /* --- ERROR HANDLING --- */ /* Extract the diagnostic strings from the error table macro in the same order as the enumerated indices in lt_error.h. */ #define LT__STRERROR(name) lt__error_string(LT_CONC(LT_ERROR_,name)) #define LT__GETERROR(lvalue) (lvalue) = lt__get_last_error() #define LT__SETERRORSTR(errormsg) lt__set_last_error(errormsg) #define LT__SETERROR(errorcode) LT__SETERRORSTR(LT__STRERROR(errorcode)) LT_SCOPE const char *lt__error_string (int errorcode); LT_SCOPE const char *lt__get_last_error (void); LT_SCOPE const char *lt__set_last_error (const char *errormsg); LT_END_C_DECLS #endif /*!defined LT__PRIVATE_H*/ �����������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/libltdl/lt__strl.h����������������������������������������������������������0000664�0000000�0000000�00000003704�13775351206�0020516�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt__strl.h -- size-bounded string copying and concatenation Copyright (C) 2004, 2006, 2011-2015 Free Software Foundation, Inc. Written by Bob Friesenhahn, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if !defined LT__STRL_H #define LT__STRL_H 1 #if defined LT_CONFIG_H # include LT_CONFIG_H #else # include <config.h> #endif #include <string.h> #include "lt_system.h" #if !defined HAVE_STRLCAT # define strlcat(dst,src,dstsize) lt_strlcat(dst,src,dstsize) LT_SCOPE size_t lt_strlcat(char *dst, const char *src, const size_t dstsize); #endif /* !defined HAVE_STRLCAT */ #if !defined HAVE_STRLCPY # define strlcpy(dst,src,dstsize) lt_strlcpy(dst,src,dstsize) LT_SCOPE size_t lt_strlcpy(char *dst, const char *src, const size_t dstsize); #endif /* !defined HAVE_STRLCPY */ #endif /*!defined LT__STRL_H*/ ������������������������������������������������������������twin-0.9.0/libs/libltdl/libltdl/lt_dlloader.h�������������������������������������������������������0000664�0000000�0000000�00000006213�13775351206�0021157�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt_dlloader.h -- dynamic library loader interface Copyright (C) 2004, 2007-2008, 2011-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if !defined LT_DLLOADER_H #define LT_DLLOADER_H 1 #include <libltdl/lt_system.h> LT_BEGIN_C_DECLS typedef void * lt_dlloader; typedef void * lt_module; typedef void * lt_user_data; typedef struct lt__advise * lt_dladvise; /* Function pointer types for module loader vtable entries: */ typedef lt_module lt_module_open (lt_user_data data, const char *filename, lt_dladvise advise); typedef int lt_module_close (lt_user_data data, lt_module module); typedef void * lt_find_sym (lt_user_data data, lt_module module, const char *symbolname); typedef int lt_dlloader_init (lt_user_data data); typedef int lt_dlloader_exit (lt_user_data data); /* Default priority is LT_DLLOADER_PREPEND if none is explicitly given. */ typedef enum { LT_DLLOADER_PREPEND = 0, LT_DLLOADER_APPEND } lt_dlloader_priority; /* This structure defines a module loader, as populated by the get_vtable entry point of each loader. */ typedef struct { const char * name; const char * sym_prefix; lt_module_open * module_open; lt_module_close * module_close; lt_find_sym * find_sym; lt_dlloader_init * dlloader_init; lt_dlloader_exit * dlloader_exit; lt_user_data dlloader_data; lt_dlloader_priority priority; } lt_dlvtable; LT_SCOPE int lt_dlloader_add (const lt_dlvtable *vtable); LT_SCOPE lt_dlloader lt_dlloader_next (const lt_dlloader loader); LT_SCOPE lt_dlvtable * lt_dlloader_remove (const char *name); LT_SCOPE const lt_dlvtable *lt_dlloader_find (const char *name); LT_SCOPE const lt_dlvtable *lt_dlloader_get (lt_dlloader loader); /* Type of a function to get a loader's vtable: */ typedef const lt_dlvtable *lt_get_vtable (lt_user_data data); #ifdef LT_DEBUG_LOADERS LT_SCOPE void lt_dlloader_dump (void); #endif LT_END_C_DECLS #endif /*!defined LT_DLLOADER_H*/ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/libltdl/lt_error.h����������������������������������������������������������0000664�0000000�0000000�00000007077�13775351206�0020533�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt_error.h -- error propagation interface Copyright (C) 1999-2001, 2004, 2007, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1999 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Only include this header file once. */ #if !defined LT_ERROR_H #define LT_ERROR_H 1 #include <libltdl/lt_system.h> LT_BEGIN_C_DECLS /* Defining error strings alongside their symbolic names in a macro in this way allows us to expand the macro in different contexts with confidence that the enumeration of symbolic names will map correctly onto the table of error strings. \0 is appended to the strings to expilicitely initialize the string terminator. */ #define lt_dlerror_table \ LT_ERROR(UNKNOWN, "unknown error\0") \ LT_ERROR(DLOPEN_NOT_SUPPORTED, "dlopen support not available\0") \ LT_ERROR(INVALID_LOADER, "invalid loader\0") \ LT_ERROR(INIT_LOADER, "loader initialization failed\0") \ LT_ERROR(REMOVE_LOADER, "loader removal failed\0") \ LT_ERROR(FILE_NOT_FOUND, "file not found\0") \ LT_ERROR(DEPLIB_NOT_FOUND, "dependency library not found\0") \ LT_ERROR(NO_SYMBOLS, "no symbols defined\0") \ LT_ERROR(CANNOT_OPEN, "can't open the module\0") \ LT_ERROR(CANNOT_CLOSE, "can't close the module\0") \ LT_ERROR(SYMBOL_NOT_FOUND, "symbol not found\0") \ LT_ERROR(NO_MEMORY, "not enough memory\0") \ LT_ERROR(INVALID_HANDLE, "invalid module handle\0") \ LT_ERROR(BUFFER_OVERFLOW, "internal buffer overflow\0") \ LT_ERROR(INVALID_ERRORCODE, "invalid errorcode\0") \ LT_ERROR(SHUTDOWN, "library already shutdown\0") \ LT_ERROR(CLOSE_RESIDENT_MODULE, "can't close resident module\0") \ LT_ERROR(INVALID_MUTEX_ARGS, "internal error (code withdrawn)\0")\ LT_ERROR(INVALID_POSITION, "invalid search path insert position\0")\ LT_ERROR(CONFLICTING_FLAGS, "symbol visibility can be global or local\0") /* Enumerate the symbolic error names. */ enum { #define LT_ERROR(name, diagnostic) LT_CONC(LT_ERROR_, name), lt_dlerror_table #undef LT_ERROR LT_ERROR_MAX }; /* Should be max of the error string lengths above (plus one for C++) */ #define LT_ERROR_LEN_MAX (41) /* These functions are only useful from inside custom module loaders. */ LT_SCOPE int lt_dladderror (const char *diagnostic); LT_SCOPE int lt_dlseterror (int errorcode); LT_END_C_DECLS #endif /*!defined LT_ERROR_H*/ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/libltdl/lt_system.h���������������������������������������������������������0000664�0000000�0000000�00000012336�13775351206�0020720�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt_system.h -- system portability abstraction layer Copyright (C) 2004, 2007, 2010-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if !defined LT_SYSTEM_H #define LT_SYSTEM_H 1 #include <stddef.h> #include <stdlib.h> #include <sys/types.h> /* Some systems do not define EXIT_*, even with STDC_HEADERS. */ #if !defined EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif #if !defined EXIT_FAILURE # define EXIT_FAILURE 1 #endif /* Just pick a big number... */ #define LT_FILENAME_MAX 2048 /* Saves on those hard to debug '\0' typos.... */ #define LT_EOS_CHAR '\0' /* LTDL_BEGIN_C_DECLS should be used at the beginning of your declarations, so that C++ compilers don't mangle their names. Use LTDL_END_C_DECLS at the end of C declarations. */ #if defined __cplusplus # define LT_BEGIN_C_DECLS extern "C" { # define LT_END_C_DECLS } #else # define LT_BEGIN_C_DECLS /* empty */ # define LT_END_C_DECLS /* empty */ #endif /* LT_STMT_START/END are used to create macros that expand to a a single compound statement in a portable way. */ #if defined __GNUC__ && !defined __STRICT_ANSI__ && !defined __cplusplus # define LT_STMT_START (void)( # define LT_STMT_END ) #else # if (defined sun || defined __sun__) # define LT_STMT_START if (1) # define LT_STMT_END else (void)0 # else # define LT_STMT_START do # define LT_STMT_END while (0) # endif #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* Canonicalise Windows and Cygwin recognition macros. To match the values set by recent Cygwin compilers, make sure that if __CYGWIN__ is defined (after canonicalisation), __WINDOWS__ is NOT! */ #if defined __CYGWIN32__ && !defined __CYGWIN__ # define __CYGWIN__ __CYGWIN32__ #endif #if defined __CYGWIN__ # if defined __WINDOWS__ # undef __WINDOWS__ # endif #elif defined _WIN32 # define __WINDOWS__ _WIN32 #elif defined WIN32 # define __WINDOWS__ WIN32 #endif #if defined __CYGWIN__ && defined __WINDOWS__ # undef __WINDOWS__ #endif /* DLL building support on win32 hosts; mostly to workaround their ridiculous implementation of data symbol exporting. */ #if !defined LT_SCOPE # if defined __WINDOWS__ || defined __CYGWIN__ # if defined DLL_EXPORT /* defined by libtool (if required) */ # define LT_SCOPE extern __declspec(dllexport) # endif # if defined LIBLTDL_DLL_IMPORT /* define if linking with this dll */ /* note: cygwin/mingw compilers can rely instead on auto-import */ # define LT_SCOPE extern __declspec(dllimport) # endif # endif # if !defined LT_SCOPE /* static linking or !__WINDOWS__ */ # define LT_SCOPE extern # endif #endif #if defined __WINDOWS__ /* LT_DIRSEP_CHAR is accepted *in addition* to '/' as a directory separator when it is set. */ # define LT_DIRSEP_CHAR '\\' # define LT_PATHSEP_CHAR ';' #else # define LT_PATHSEP_CHAR ':' #endif #if defined _MSC_VER /* Visual Studio */ # define R_OK 4 #endif /* fopen() mode flags for reading a text file */ #undef LT_READTEXT_MODE #if defined __WINDOWS__ || defined __CYGWIN__ # define LT_READTEXT_MODE "rt" #else # define LT_READTEXT_MODE "r" #endif /* The extra indirection to the LT__STR and LT__CONC macros is required so that if the arguments to LT_STR() (or LT_CONC()) are themselves macros, they will be expanded before being quoted. */ #ifndef LT_STR # define LT__STR(arg) #arg # define LT_STR(arg) LT__STR(arg) #endif #ifndef LT_CONC # define LT__CONC(a, b) a##b # define LT_CONC(a, b) LT__CONC(a, b) #endif #ifndef LT_CONC3 # define LT__CONC3(a, b, c) a##b##c # define LT_CONC3(a, b, c) LT__CONC3(a, b, c) #endif #endif /*!defined LT_SYSTEM_H*/ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/libltdl/slist.h�������������������������������������������������������������0000664�0000000�0000000�00000006241�13775351206�0020031�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* slist.h -- generalised singly linked lists Copyright (C) 2000, 2004, 2009, 2011-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2000 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* A generalised list. This is deliberately transparent so that you can make the NEXT field of all your chained data structures first, and then cast them to '(SList *)' so that they can be manipulated by this API. Alternatively, you can generate raw SList elements using slist_new(), and put the element data in the USERDATA field. Either way you get to manage the memory involved by yourself. */ #if !defined SLIST_H #define SLIST_H 1 #if defined LTDL # include <libltdl/lt__glibc.h> # include <libltdl/lt_system.h> #else # define LT_SCOPE #endif #include <stddef.h> #if defined __cplusplus extern "C" { #endif typedef struct slist { struct slist *next; /* chain forward pointer*/ const void *userdata; /* for boxed 'SList' item */ } SList; typedef void * SListCallback (SList *item, void *userdata); typedef int SListCompare (const SList *item1, const SList *item2, void *userdata); LT_SCOPE SList *slist_concat (SList *head, SList *tail); LT_SCOPE SList *slist_cons (SList *item, SList *slist); LT_SCOPE SList *slist_delete (SList *slist, void (*delete_fct) (void *item)); LT_SCOPE SList *slist_remove (SList **phead, SListCallback *find, void *matchdata); LT_SCOPE SList *slist_reverse (SList *slist); LT_SCOPE SList *slist_sort (SList *slist, SListCompare *compare, void *userdata); LT_SCOPE SList *slist_tail (SList *slist); LT_SCOPE SList *slist_nth (SList *slist, size_t n); LT_SCOPE void * slist_find (SList *slist, SListCallback *find, void *matchdata); LT_SCOPE size_t slist_length (SList *slist); LT_SCOPE void * slist_foreach (SList *slist, SListCallback *foreach, void *userdata); LT_SCOPE SList *slist_box (const void *userdata); LT_SCOPE void * slist_unbox (SList *item); #if defined __cplusplus } #endif #if !defined LTDL # undef LT_SCOPE #endif #endif /*!defined SLIST_H*/ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/loaders/��������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0016522�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/loaders/dld_link.c����������������������������������������������������������0000664�0000000�0000000�00000010717�13775351206�0020454�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* loader-dld_link.c -- dynamic linking with dld Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "<module_name>_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable dld_link_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_dld_link"; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_APPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #if defined HAVE_DLD_H # include <dld.h> #endif /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data loader_data LT__UNUSED) { vtable = NULL; return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, lt_dladvise advise LT__UNUSED) { lt_module module = lt__strdup (filename); if (dld_link (filename) != 0) { LT__SETERROR (CANNOT_OPEN); FREE (module); } return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data loader_data LT__UNUSED, lt_module module) { int errors = 0; if (dld_unlink_by_file ((char*)(module), 1) != 0) { LT__SETERROR (CANNOT_CLOSE); ++errors; } else { FREE (module); } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module LT__UNUSED, const char *name) { void *address = dld_get_func (name); if (!address) { LT__SETERROR (SYMBOL_NOT_FOUND); } return address; } �������������������������������������������������twin-0.9.0/libs/libltdl/loaders/dlopen.c������������������������������������������������������������0000664�0000000�0000000�00000016641�13775351206�0020157�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* loader-dlopen.c -- dynamic linking with dlopen/dlsym Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "<module_name>_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable dlopen_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_dlopen"; #if defined DLSYM_USCORE vtable->sym_prefix = "_"; #endif vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_PREPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #if defined HAVE_DLFCN_H # include <dlfcn.h> #endif #if defined HAVE_SYS_DL_H # include <sys/dl.h> #endif /* We may have to define LT_LAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #if !defined LT_LAZY_OR_NOW # if defined RTLD_LAZY # define LT_LAZY_OR_NOW RTLD_LAZY # else # if defined DL_LAZY # define LT_LAZY_OR_NOW DL_LAZY # endif # endif /* !RTLD_LAZY */ #endif #if !defined LT_LAZY_OR_NOW # if defined RTLD_NOW # define LT_LAZY_OR_NOW RTLD_NOW # else # if defined DL_NOW # define LT_LAZY_OR_NOW DL_NOW # endif # endif /* !RTLD_NOW */ #endif #if !defined LT_LAZY_OR_NOW # define LT_LAZY_OR_NOW 0 #endif /* !LT_LAZY_OR_NOW */ /* We only support local and global symbols from modules for loaders that provide such a thing, otherwise the system default is used. */ #if !defined RTLD_GLOBAL # if defined DL_GLOBAL # define RTLD_GLOBAL DL_GLOBAL # endif #endif /* !RTLD_GLOBAL */ #if !defined RTLD_LOCAL # if defined DL_LOCAL # define RTLD_LOCAL DL_LOCAL # endif #endif /* !RTLD_LOCAL */ #if defined HAVE_DLERROR # define DLERROR(arg) dlerror () #else # define DLERROR(arg) LT__STRERROR (arg) #endif #define DL__SETERROR(errorcode) \ LT__SETERRORSTR (DLERROR (errorcode)) /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data loader_data LT__UNUSED) { vtable = NULL; return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, lt_dladvise advise) { int module_flags = LT_LAZY_OR_NOW; lt_module module; #ifdef RTLD_MEMBER int len = LT_STRLEN (filename); #endif if (advise) { #ifdef RTLD_GLOBAL /* If there is some means of asking for global symbol resolution, do so. */ if (advise->is_symglobal) module_flags |= RTLD_GLOBAL; #else /* Otherwise, reset that bit so the caller can tell it wasn't acted on. */ advise->is_symglobal = 0; #endif /* And similarly for local only symbol resolution. */ #ifdef RTLD_LOCAL if (advise->is_symlocal) module_flags |= RTLD_LOCAL; #else advise->is_symlocal = 0; #endif } #ifdef RTLD_MEMBER /* AIX */ if (len >= 4) /* at least "l(m)" */ { /* Advise loading an archive member only if the filename really contains both the opening and closing parent, and a member. */ if (filename[len-1] == ')') { const char *opening = strrchr(filename, '('); if (opening && opening < (filename+len-2) && strchr(opening+1, '/') == NULL) module_flags |= RTLD_MEMBER; } } #endif module = dlopen (filename, module_flags); #if defined RTLD_MEMBER && defined LT_SHARED_LIB_MEMBER if (!module && len && !(module_flags & RTLD_MEMBER) && errno == ENOEXEC) { /* Loading without a member specified failed with "Exec format error". So the file is there, but either has wrong bitwidth, or is an archive eventually containing the default shared archive member. Retry with default member, getting same error in worst case. */ const char *member = LT_SHARED_LIB_MEMBER; char *attempt = MALLOC (char, len + strlen (member) + 1); if (!attempt) { LT__SETERROR (NO_MEMORY); return module; } sprintf (attempt, "%s%s", filename, member); module = vm_open (loader_data, attempt, advise); FREE (attempt); return module; } #endif if (!module) { DL__SETERROR (CANNOT_OPEN); } return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data loader_data LT__UNUSED, lt_module module) { int errors = 0; if (dlclose (module) != 0) { DL__SETERROR (CANNOT_CLOSE); ++errors; } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name) { void *address = dlsym (module, name); if (!address) { DL__SETERROR (SYMBOL_NOT_FOUND); } return address; } �����������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/loaders/dyld.c��������������������������������������������������������������0000664�0000000�0000000�00000032461�13775351206�0017630�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* loader-dyld.c -- dynamic linking on darwin and OS X Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software Foundation, Inc. Written by Peter O'Gorman, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "<module_name>_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable dyld_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_init (lt_user_data loader_data); static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_dyld"; vtable->sym_prefix = "_"; vtable->dlloader_init = vl_init; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_APPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #if defined HAVE_MACH_O_DYLD_H # if !defined __APPLE_CC__ && !defined __MWERKS__ && !defined __private_extern__ /* Is this correct? Does it still function properly? */ # define __private_extern__ extern # endif # include <mach-o/dyld.h> #endif #include <mach-o/getsect.h> /* We have to put some stuff here that isn't in older dyld.h files */ #if !defined ENUM_DYLD_BOOL # define ENUM_DYLD_BOOL # undef FALSE # undef TRUE enum DYLD_BOOL { FALSE, TRUE }; #endif #if !defined LC_REQ_DYLD # define LC_REQ_DYLD 0x80000000 #endif #if !defined LC_LOAD_WEAK_DYLIB # define LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD) #endif #if !defined NSADDIMAGE_OPTION_NONE # define NSADDIMAGE_OPTION_NONE 0x0 #endif #if !defined NSADDIMAGE_OPTION_RETURN_ON_ERROR # define NSADDIMAGE_OPTION_RETURN_ON_ERROR 0x1 #endif #if !defined NSADDIMAGE_OPTION_WITH_SEARCHING # define NSADDIMAGE_OPTION_WITH_SEARCHING 0x2 #endif #if !defined NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED # define NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED 0x4 #endif #if !defined NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME # define NSADDIMAGE_OPTION_MATCH_FILENAME_BY_INSTALLNAME 0x8 #endif #if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_BIND # define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND 0x0 #endif #if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW # define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW 0x1 #endif #if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY # define NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_FULLY 0x2 #endif #if !defined NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR # define NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR 0x4 #endif #define LT__SYMLOOKUP_OPTS (NSLOOKUPSYMBOLINIMAGE_OPTION_BIND_NOW \ | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR) #if defined __BIG_ENDIAN__ # define LT__MAGIC MH_MAGIC #else # define LT__MAGIC MH_CIGAM #endif #define DYLD__SETMYERROR(errmsg) LT__SETERRORSTR (dylderror (errmsg)) #define DYLD__SETERROR(errcode) DYLD__SETMYERROR (LT__STRERROR (errcode)) typedef struct mach_header mach_header; typedef struct dylib_command dylib_command; static const char *dylderror (const char *errmsg); static const mach_header *lt__nsmodule_get_header (NSModule module); static const char *lt__header_get_instnam (const mach_header *mh); static const mach_header *lt__match_loadedlib (const char *name); static NSSymbol lt__linkedlib_symbol (const char *symname, const mach_header *mh); static const mach_header *(*lt__addimage) (const char *image_name, unsigned long options) = 0; static NSSymbol (*lt__image_symbol) (const mach_header *image, const char *symbolName, unsigned long options) = 0; static enum DYLD_BOOL (*lt__image_symbol_p) (const mach_header *image, const char *symbolName) = 0; static enum DYLD_BOOL (*lt__module_export) (NSModule module) = 0; static int dyld_cannot_close = 0; /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data loader_data LT__UNUSED) { vtable = NULL; return 0; } /* A function called through the vtable to initialise this loader. */ static int vl_init (lt_user_data loader_data) { int errors = 0; if (! dyld_cannot_close) { if (!_dyld_present ()) { ++errors; } else { (void) _dyld_func_lookup ("__dyld_NSAddImage", (unsigned long*) <__addimage); (void) _dyld_func_lookup ("__dyld_NSLookupSymbolInImage", (unsigned long*)<__image_symbol); (void) _dyld_func_lookup ("__dyld_NSIsSymbolNameDefinedInImage", (unsigned long*) <__image_symbol_p); (void) _dyld_func_lookup ("__dyld_NSMakePrivateModulePublic", (unsigned long*) <__module_export); dyld_cannot_close = lt_dladderror ("can't close a dylib"); } } return errors; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise LT__UNUSED) { lt_module module = 0; NSObjectFileImage ofi = 0; if (!filename) { return (lt_module) -1; } switch (NSCreateObjectFileImageFromFile (filename, &ofi)) { case NSObjectFileImageSuccess: module = NSLinkModule (ofi, filename, NSLINKMODULE_OPTION_RETURN_ON_ERROR | NSLINKMODULE_OPTION_PRIVATE | NSLINKMODULE_OPTION_BINDNOW); NSDestroyObjectFileImage (ofi); if (module) { lt__module_export (module); } break; case NSObjectFileImageInappropriateFile: if (lt__image_symbol_p && lt__image_symbol) { module = (lt_module) lt__addimage(filename, NSADDIMAGE_OPTION_RETURN_ON_ERROR); } break; case NSObjectFileImageFailure: case NSObjectFileImageArch: case NSObjectFileImageFormat: case NSObjectFileImageAccess: /*NOWORK*/ break; } if (!module) { DYLD__SETERROR (CANNOT_OPEN); } return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data loader_data, lt_module module) { int errors = 0; if (module != (lt_module) -1) { const mach_header *mh = (const mach_header *) module; int flags = 0; if (mh->magic == LT__MAGIC) { lt_dlseterror (dyld_cannot_close); ++errors; } else { /* Currently, if a module contains c++ static destructors and it is unloaded, we get a segfault in atexit(), due to compiler and dynamic loader differences of opinion, this works around that. */ if ((const struct section *) NULL != getsectbynamefromheader (lt__nsmodule_get_header (module), "__DATA", "__mod_term_func")) { flags |= NSUNLINKMODULE_OPTION_KEEP_MEMORY_MAPPED; } #if defined __ppc__ flags |= NSUNLINKMODULE_OPTION_RESET_LAZY_REFERENCES; #endif if (!NSUnLinkModule (module, flags)) { DYLD__SETERROR (CANNOT_CLOSE); ++errors; } } } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data loader_data, lt_module module, const char *name) { NSSymbol *nssym = 0; const mach_header *mh = (const mach_header *) module; char saveError[256] = "Symbol not found"; if (module == (lt_module) -1) { void *address, *unused; _dyld_lookup_and_bind (name, (unsigned long*) &address, &unused); return address; } if (mh->magic == LT__MAGIC) { if (lt__image_symbol_p && lt__image_symbol) { if (lt__image_symbol_p (mh, name)) { nssym = lt__image_symbol (mh, name, LT__SYMLOOKUP_OPTS); } } } else { nssym = NSLookupSymbolInModule (module, name); } if (!nssym) { strlcpy (saveError, dylderror (LT__STRERROR (SYMBOL_NOT_FOUND)), 255); saveError[255] = 0; if (!mh) { mh = (mach_header *)lt__nsmodule_get_header (module); } nssym = lt__linkedlib_symbol (name, mh); } if (!nssym) { LT__SETERRORSTR (saveError); } return nssym ? NSAddressOfSymbol (nssym) : 0; } /* --- HELPER FUNCTIONS --- */ /* Return the dyld error string, or the passed in error string if none. */ static const char * dylderror (const char *errmsg) { NSLinkEditErrors ler; int lerno; const char *file; const char *errstr; NSLinkEditError (&ler, &lerno, &file, &errstr); if (! (errstr && *errstr)) { errstr = errmsg; } return errstr; } /* There should probably be an apple dyld api for this. */ static const mach_header * lt__nsmodule_get_header (NSModule module) { int i = _dyld_image_count(); const char *modname = NSNameOfModule (module); const mach_header *mh = 0; if (!modname) return NULL; while (i > 0) { --i; if (strneq (_dyld_get_image_name (i), modname)) { mh = _dyld_get_image_header (i); break; } } return mh; } /* NSAddImage is also used to get the loaded image, but it only works if the lib is installed, for uninstalled libs we need to check the install_names against each other. Note that this is still broken if DYLD_IMAGE_SUFFIX is set and a different lib was loaded as a result. */ static const char * lt__header_get_instnam (const mach_header *mh) { unsigned long offset = sizeof(mach_header); const char* result = 0; int j; for (j = 0; j < mh->ncmds; j++) { struct load_command *lc; lc = (struct load_command*) (((unsigned long) mh) + offset); if (LC_ID_DYLIB == lc->cmd) { result=(char*)(((dylib_command*) lc)->dylib.name.offset + (unsigned long) lc); } offset += lc->cmdsize; } return result; } static const mach_header * lt__match_loadedlib (const char *name) { const mach_header *mh = 0; int i = _dyld_image_count(); while (i > 0) { const char *id; --i; id = lt__header_get_instnam (_dyld_get_image_header (i)); if (id && strneq (id, name)) { mh = _dyld_get_image_header (i); break; } } return mh; } /* Safe to assume our mh is good. */ static NSSymbol lt__linkedlib_symbol (const char *symname, const mach_header *mh) { NSSymbol symbol = 0; if (lt__image_symbol && NSIsSymbolNameDefined (symname)) { unsigned long offset = sizeof(mach_header); struct load_command *lc; int j; for (j = 0; j < mh->ncmds; j++) { lc = (struct load_command*) (((unsigned long) mh) + offset); if ((LC_LOAD_DYLIB == lc->cmd) || (LC_LOAD_WEAK_DYLIB == lc->cmd)) { unsigned long base = ((dylib_command *) lc)->dylib.name.offset; char *name = (char *) (base + (unsigned long) lc); const mach_header *mh1 = lt__match_loadedlib (name); if (!mh1) { /* Maybe NSAddImage can find it */ mh1 = lt__addimage (name, NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED | NSADDIMAGE_OPTION_WITH_SEARCHING | NSADDIMAGE_OPTION_RETURN_ON_ERROR); } if (mh1) { symbol = lt__image_symbol (mh1, symname, LT__SYMLOOKUP_OPTS); if (symbol) break; } } offset += lc->cmdsize; } } return symbol; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/loaders/load_add_on.c�������������������������������������������������������0000664�0000000�0000000�00000011263�13775351206�0021114�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* loader-load_add_on.c -- dynamic linking for BeOS Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "<module_name>_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable load_add_on_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_load_add_on"; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_APPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #include <kernel/image.h> /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data loader_data LT__UNUSED) { vtable = NULL; return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, lt_dladvise advise LT__UNUSED) { image_id image = 0; if (filename) { image = load_add_on (filename); } else { image_info info; int32 cookie = 0; if (get_next_image_info (0, &cookie, &info) == B_OK) image = load_add_on (info.name); } if (image <= 0) { LT__SETERROR (CANNOT_OPEN); image = 0; } return (lt_module) image; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data loader_data LT__UNUSED, lt_module module) { int errors = 0; if (unload_add_on ((image_id) module) != B_OK) { LT__SETERROR (CANNOT_CLOSE); ++errors; } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name) { void *address = 0; image_id image = (image_id) module; if (get_image_symbol (image, name, B_SYMBOL_TYPE_ANY, address) != B_OK) { LT__SETERROR (SYMBOL_NOT_FOUND); address = 0; } return address; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/loaders/loadlibrary.c�������������������������������������������������������0000664�0000000�0000000�00000025124�13775351206�0021176�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* loader-loadlibrary.c -- dynamic linking for Win32 Copyright (C) 1998-2000, 2004-2008, 2010-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" #if defined __CYGWIN__ # include <sys/cygwin.h> #endif /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "<module_name>_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable loadlibrary_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlinterface_id iface_id = 0; static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable); iface_id = lt_dlinterface_register ("ltdl loadlibrary", NULL); } if (vtable && !vtable->name) { vtable->name = "lt_loadlibrary"; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_APPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #include <windows.h> #define LOCALFREE(mem) LT_STMT_START { \ if (mem) { LocalFree ((void *)mem); mem = NULL; } } LT_STMT_END #define LOADLIB__SETERROR(errmsg) LT__SETERRORSTR (loadlibraryerror (errmsg)) #define LOADLIB_SETERROR(errcode) LOADLIB__SETERROR (LT__STRERROR (errcode)) static const char *loadlibraryerror (const char *default_errmsg); static DWORD WINAPI wrap_getthreaderrormode (void); static DWORD WINAPI fallback_getthreaderrormode (void); static BOOL WINAPI wrap_setthreaderrormode (DWORD mode, DWORD *oldmode); static BOOL WINAPI fallback_setthreaderrormode (DWORD mode, DWORD *oldmode); typedef DWORD (WINAPI getthreaderrormode_type) (void); typedef BOOL (WINAPI setthreaderrormode_type) (DWORD, DWORD *); static getthreaderrormode_type *getthreaderrormode = wrap_getthreaderrormode; static setthreaderrormode_type *setthreaderrormode = wrap_setthreaderrormode; static char *error_message = 0; /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data loader_data LT__UNUSED) { vtable = NULL; LOCALFREE (error_message); return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, lt_dladvise advise LT__UNUSED) { lt_module module = 0; char *ext; char wpath[MAX_PATH]; size_t len; if (!filename) { /* Get the name of main module */ *wpath = 0; GetModuleFileName (NULL, wpath, sizeof (wpath)); filename = wpath; } else { len = LT_STRLEN (filename); if (len >= MAX_PATH) { LT__SETERROR (CANNOT_OPEN); return 0; } #if HAVE_DECL_CYGWIN_CONV_PATH if (cygwin_conv_path (CCP_POSIX_TO_WIN_A, filename, wpath, MAX_PATH)) { LT__SETERROR (CANNOT_OPEN); return 0; } len = 0; #elif defined __CYGWIN__ cygwin_conv_to_full_win32_path (filename, wpath); len = 0; #else strcpy(wpath, filename); #endif ext = strrchr (wpath, '.'); if (!ext) { /* Append a '.' to stop Windows from adding an implicit '.dll' extension. */ if (!len) len = strlen (wpath); if (len + 1 >= MAX_PATH) { LT__SETERROR (CANNOT_OPEN); return 0; } wpath[len] = '.'; wpath[len+1] = '\0'; } } { /* Silence dialog from LoadLibrary on some failures. */ DWORD errormode = getthreaderrormode (); DWORD last_error; setthreaderrormode (errormode | SEM_FAILCRITICALERRORS, NULL); module = LoadLibrary (wpath); /* Restore the error mode. */ last_error = GetLastError (); setthreaderrormode (errormode, NULL); SetLastError (last_error); } /* libltdl expects this function to fail if it is unable to physically load the library. Sadly, LoadLibrary will search the loaded libraries for a match and return one of them if the path search load fails. We check whether LoadLibrary is returning a handle to an already loaded module, and simulate failure if we find one. */ { lt_dlhandle cur = 0; while ((cur = lt_dlhandle_iterate (iface_id, cur))) { if (!cur->module) { cur = 0; break; } if (cur->module == module) { break; } } if (!module) LOADLIB_SETERROR (CANNOT_OPEN); else if (cur) { LT__SETERROR (CANNOT_OPEN); module = 0; } } return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data loader_data LT__UNUSED, lt_module module) { int errors = 0; if (FreeLibrary ((HMODULE) module) == 0) { LOADLIB_SETERROR (CANNOT_CLOSE); ++errors; } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name) { void *address = (void *) GetProcAddress ((HMODULE) module, name); if (!address) { LOADLIB_SETERROR (SYMBOL_NOT_FOUND); } return address; } /* --- HELPER FUNCTIONS --- */ /* Return the windows error message, or the passed in error message on failure. */ static const char * loadlibraryerror (const char *default_errmsg) { size_t len; LOCALFREE (error_message); FormatMessageA (FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError (), 0, (char *) &error_message, 0, NULL); /* Remove trailing CRNL */ len = LT_STRLEN (error_message); if (len && error_message[len - 1] == '\n') error_message[--len] = LT_EOS_CHAR; if (len && error_message[len - 1] == '\r') error_message[--len] = LT_EOS_CHAR; return len ? error_message : default_errmsg; } /* A function called through the getthreaderrormode variable that checks if the system supports GetThreadErrorMode (or GetErrorMode) and arranges for it or a fallback implementation to be called directly in the future. The selected version is then called. */ static DWORD WINAPI wrap_getthreaderrormode (void) { HMODULE kernel32 = GetModuleHandleA ("kernel32.dll"); getthreaderrormode = (getthreaderrormode_type *) GetProcAddress (kernel32, "GetThreadErrorMode"); if (!getthreaderrormode) getthreaderrormode = (getthreaderrormode_type *) GetProcAddress (kernel32, "GetErrorMode"); if (!getthreaderrormode) getthreaderrormode = fallback_getthreaderrormode; return getthreaderrormode (); } /* A function called through the getthreaderrormode variable for cases where the system does not support GetThreadErrorMode or GetErrorMode */ static DWORD WINAPI fallback_getthreaderrormode (void) { /* Prior to Windows Vista, the only way to get the current error mode was to set a new one. In our case, we are setting a new error mode right after "getting" it while ignoring the error mode in effect when setting the new error mode, so that's fairly ok. */ return (DWORD) SetErrorMode (SEM_FAILCRITICALERRORS); } /* A function called through the setthreaderrormode variable that checks if the system supports SetThreadErrorMode and arranges for it or a fallback implementation to be called directly in the future. The selected version is then called. */ static BOOL WINAPI wrap_setthreaderrormode (DWORD mode, DWORD *oldmode) { HMODULE kernel32 = GetModuleHandleA ("kernel32.dll"); setthreaderrormode = (setthreaderrormode_type *) GetProcAddress (kernel32, "SetThreadErrorMode"); if (!setthreaderrormode) setthreaderrormode = fallback_setthreaderrormode; return setthreaderrormode (mode, oldmode); } /* A function called through the setthreaderrormode variable for cases where the system does not support SetThreadErrorMode. */ static BOOL WINAPI fallback_setthreaderrormode (DWORD mode, DWORD *oldmode) { /* Prior to Windows 7, there was no way to set the thread local error mode, so set the process global error mode instead. */ DWORD old = (DWORD) SetErrorMode (mode); if (oldmode) *oldmode = old; return TRUE; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/loaders/preopen.c�����������������������������������������������������������0000664�0000000�0000000�00000023125�13775351206�0020341�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* loader-preopen.c -- emulate dynamic linking using preloaded_symbols Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "<module_name>_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable preopen_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_init (lt_user_data loader_data); static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_preopen"; vtable->sym_prefix = 0; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_init = vl_init; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_PREPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ /* Wrapper type to chain together symbol lists of various origins. */ typedef struct symlist_chain { struct symlist_chain *next; const lt_dlsymlist *symlist; } symlist_chain; static int add_symlist (const lt_dlsymlist *symlist); static int free_symlists (void); /* The start of the symbol lists chain. */ static symlist_chain *preloaded_symlists = 0; /* A symbol list preloaded before lt_init() was called. */ static const lt_dlsymlist *default_preloaded_symbols = 0; /* A function called through the vtable to initialise this loader. */ static int vl_init (lt_user_data loader_data LT__UNUSED) { int errors = 0; preloaded_symlists = 0; if (default_preloaded_symbols) { errors = lt_dlpreload (default_preloaded_symbols); } return errors; } /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data loader_data LT__UNUSED) { vtable = NULL; free_symlists (); return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, lt_dladvise advise LT__UNUSED) { symlist_chain *lists; lt_module module = 0; if (!preloaded_symlists) { LT__SETERROR (NO_SYMBOLS); goto done; } /* Can't use NULL as the reflective symbol header, as NULL is used to mark the end of the entire symbol list. Self-dlpreopened symbols follow this magic number, chosen to be an unlikely clash with a real module name. */ if (!filename) { filename = "@PROGRAM@"; } for (lists = preloaded_symlists; lists; lists = lists->next) { const lt_dlsymlist *symbol; for (symbol= lists->symlist; symbol->name; ++symbol) { if (!symbol->address && STREQ (symbol->name, filename)) { /* If the next symbol's name and address is 0, it means the module just contains the originator and no symbols. In this case we pretend that we never saw the module and hope that some other loader will be able to load the module and have access to its symbols */ const lt_dlsymlist *next_symbol = symbol +1; if (next_symbol->address && next_symbol->name) { module = (lt_module) lists->symlist; goto done; } } } } LT__SETERROR (FILE_NOT_FOUND); done: return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data loader_data LT__UNUSED, lt_module module LT__UNUSED) { /* Just to silence gcc -Wall */ module = 0; return 0; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name) { lt_dlsymlist *symbol = (lt_dlsymlist*) module; if (symbol[1].name && STREQ (symbol[1].name, "@INIT@")) { symbol++; /* Skip optional init entry. */ } symbol +=2; /* Skip header (originator then libname). */ while (symbol->name) { if (STREQ (symbol->name, name)) { return symbol->address; } ++symbol; } LT__SETERROR (SYMBOL_NOT_FOUND); return 0; } /* --- HELPER FUNCTIONS --- */ /* The symbol lists themselves are not allocated from the heap, but we can unhook them and free up the chain of links between them. */ static int free_symlists (void) { symlist_chain *lists; lists = preloaded_symlists; while (lists) { symlist_chain *next = lists->next; FREE (lists); lists = next; } preloaded_symlists = 0; return 0; } /* Add a new symbol list to the global chain. */ static int add_symlist (const lt_dlsymlist *symlist) { symlist_chain *lists; int errors = 0; /* Search for duplicate entries: */ for (lists = preloaded_symlists; lists && lists->symlist != symlist; lists = lists->next) /*NOWORK*/; /* Don't add the same list twice: */ if (!lists) { symlist_chain *tmp = (symlist_chain *) lt__zalloc (sizeof *tmp); if (tmp) { tmp->symlist = symlist; tmp->next = preloaded_symlists; preloaded_symlists = tmp; if (symlist[1].name && STREQ (symlist[1].name, "@INIT@")) { void (*init_symlist)(void); *(void **)(&init_symlist) = symlist[1].address; (*init_symlist)(); } } else { ++errors; } } return errors; } /* --- PRELOADING API CALL IMPLEMENTATIONS --- */ /* Save a default symbol list for later. */ int lt_dlpreload_default (const lt_dlsymlist *preloaded) { default_preloaded_symbols = preloaded; return 0; } /* Add a symbol list to the global chain, or with a NULL argument, revert to just the default list. */ int lt_dlpreload (const lt_dlsymlist *preloaded) { int errors = 0; if (preloaded) { errors = add_symlist (preloaded); } else { free_symlists(); if (default_preloaded_symbols) { errors = lt_dlpreload (default_preloaded_symbols); } } return errors; } /* Open all the preloaded modules from the named originator, executing a callback for each one. If ORIGINATOR is NULL, then call FUNC for each preloaded module from the program itself. */ int lt_dlpreload_open (const char *originator, lt_dlpreload_callback_func *func) { symlist_chain *list; int errors = 0; int found = 0; /* For each symlist in the chain... */ for (list = preloaded_symlists; list; list = list->next) { /* ...that was preloaded by the requesting ORIGINATOR... */ if ((originator && STREQ (list->symlist->name, originator)) || (!originator && STREQ (list->symlist->name, "@PROGRAM@"))) { const lt_dlsymlist *symbol; unsigned int idx = 0; ++found; /* ...load the symbols per source compilation unit: (we preincrement the index to skip over the originator entry) */ while ((symbol = &list->symlist[++idx])->name != 0) { if ((symbol->address == 0) && (STRNEQ (symbol->name, "@PROGRAM@"))) { lt_dlhandle handle = lt_dlopen (symbol->name); if (handle == 0) { ++errors; } else { errors += (*func) (handle); } } } } } if (!found) { LT__SETERROR(CANNOT_OPEN); ++errors; } return errors; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/loaders/shl_load.c����������������������������������������������������������0000664�0000000�0000000�00000015046�13775351206�0020461�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* loader-shl_load.c -- dynamic linking with shl_load (HP-UX) Copyright (C) 1998-2000, 2004, 2006-2008, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" /* Use the preprocessor to rename non-static symbols to avoid namespace collisions when the loader code is statically linked into libltdl. Use the "<module_name>_LTX_" prefix so that the symbol addresses can be fetched from the preloaded symbol list by lt_dlsym(): */ #define get_vtable shl_load_LTX_get_vtable LT_BEGIN_C_DECLS LT_SCOPE lt_dlvtable *get_vtable (lt_user_data loader_data); LT_END_C_DECLS /* Boilerplate code to set up the vtable for hooking this loader into libltdl's loader list: */ static int vl_exit (lt_user_data loader_data); static lt_module vm_open (lt_user_data loader_data, const char *filename, lt_dladvise advise); static int vm_close (lt_user_data loader_data, lt_module module); static void * vm_sym (lt_user_data loader_data, lt_module module, const char *symbolname); static lt_dlvtable *vtable = 0; /* Return the vtable for this loader, only the name and sym_prefix attributes (plus the virtual function implementations, obviously) change between loaders. */ lt_dlvtable * get_vtable (lt_user_data loader_data) { if (!vtable) { vtable = lt__zalloc (sizeof *vtable); } if (vtable && !vtable->name) { vtable->name = "lt_shl_load"; vtable->module_open = vm_open; vtable->module_close = vm_close; vtable->find_sym = vm_sym; vtable->dlloader_exit = vl_exit; vtable->dlloader_data = loader_data; vtable->priority = LT_DLLOADER_APPEND; } if (vtable && (vtable->dlloader_data != loader_data)) { LT__SETERROR (INIT_LOADER); return 0; } return vtable; } /* --- IMPLEMENTATION --- */ #if defined HAVE_DL_H # include <dl.h> #endif /* some flags are missing on some systems, so we provide * harmless defaults. * * Mandatory: * BIND_IMMEDIATE - Resolve symbol references when the library is loaded. * BIND_DEFERRED - Delay code symbol resolution until actual reference. * * Optionally: * BIND_FIRST - Place the library at the head of the symbol search * order. * BIND_NONFATAL - The default BIND_IMMEDIATE behavior is to treat all * unsatisfied symbols as fatal. This flag allows * binding of unsatisfied code symbols to be deferred * until use. * [Perl: For certain libraries, like DCE, deferred * binding often causes run time problems. Adding * BIND_NONFATAL to BIND_IMMEDIATE still allows * unresolved references in situations like this.] * BIND_NOSTART - Do not call the initializer for the shared library * when the library is loaded, nor on a future call to * shl_unload(). * BIND_VERBOSE - Print verbose messages concerning possible * unsatisfied symbols. * * hp9000s700/hp9000s800: * BIND_RESTRICTED - Restrict symbols visible by the library to those * present at library load time. * DYNAMIC_PATH - Allow the loader to dynamically search for the * library specified by the path argument. */ #if !defined DYNAMIC_PATH # define DYNAMIC_PATH 0 #endif #if !defined BIND_RESTRICTED # define BIND_RESTRICTED 0 #endif #define LT_BIND_FLAGS (BIND_IMMEDIATE | BIND_NONFATAL | DYNAMIC_PATH) /* A function called through the vtable when this loader is no longer needed by the application. */ static int vl_exit (lt_user_data loader_data LT__UNUSED) { vtable = NULL; return 0; } /* A function called through the vtable to open a module with this loader. Returns an opaque representation of the newly opened module for processing with this loader's other vtable functions. */ static lt_module vm_open (lt_user_data loader_data LT__UNUSED, const char *filename, lt_dladvise advise LT__UNUSED) { static shl_t self = (shl_t) 0; lt_module module = shl_load (filename, LT_BIND_FLAGS, 0L); /* Since searching for a symbol against a NULL module handle will also look in everything else that was already loaded and exported with the -E compiler flag, we always cache a handle saved before any modules are loaded. */ if (!self) { void *address; shl_findsym (&self, "main", TYPE_UNDEFINED, &address); } if (!filename) { module = self; } else { module = shl_load (filename, LT_BIND_FLAGS, 0L); if (!module) { LT__SETERROR (CANNOT_OPEN); } } return module; } /* A function called through the vtable when a particular module should be unloaded. */ static int vm_close (lt_user_data loader_data LT__UNUSED, lt_module module) { int errors = 0; if (module && (shl_unload ((shl_t) (module)) != 0)) { LT__SETERROR (CANNOT_CLOSE); ++errors; } return errors; } /* A function called through the vtable to get the address of a symbol loaded from a particular module. */ static void * vm_sym (lt_user_data loader_data LT__UNUSED, lt_module module, const char *name) { void *address = 0; /* sys_shl_open should never return a NULL module handle */ if (module == (lt_module) 0) { LT__SETERROR (INVALID_HANDLE); } else if (!shl_findsym((shl_t*) &module, name, TYPE_UNDEFINED, &address)) { if (!address) { LT__SETERROR (SYMBOL_NOT_FOUND); } } return address; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/lt__alloc.c�����������������������������������������������������������������0000664�0000000�0000000�00000004372�13775351206�0017173�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt__alloc.c -- internal memory management interface Copyright (C) 2004, 2006-2007, 2011-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include <stdio.h> #include "lt__alloc.h" static void alloc_die_default (void); void (*lt__alloc_die) (void) = alloc_die_default; /* Unless overridden, exit on memory failure. */ static void alloc_die_default (void) { fprintf (stderr, "Out of memory.\n"); exit (EXIT_FAILURE); } void * lt__malloc (size_t n) { void *mem; if (! (mem = malloc (n))) (*lt__alloc_die) (); return mem; } void * lt__zalloc (size_t n) { void *mem; if ((mem = lt__malloc (n))) memset (mem, 0, n); return mem; } void * lt__realloc (void *mem, size_t n) { if (! (mem = realloc (mem, n))) (*lt__alloc_die) (); return mem; } void * lt__memdup (void const *mem, size_t n) { void *newmem; if ((newmem = lt__malloc (n))) return memcpy (newmem, mem, n); return 0; } char * lt__strdup (const char *string) { return (char *) lt__memdup (string, strlen (string) +1); } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/lt__argz.c������������������������������������������������������������������0000664�0000000�0000000�00000013410�13775351206�0017035�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt__argz.c -- argz implementation for non-glibc systems Copyright (C) 2004, 2006-2008, 2011-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if defined LTDL && defined LT_CONFIG_H # include LT_CONFIG_H #else # include <config.h> #endif #include <lt__argz.h> #include <assert.h> #include <stdlib.h> #include <sys/types.h> #include <errno.h> #include <string.h> #define EOS_CHAR '\0' error_t argz_append (char **pargz, size_t *pargz_len, const char *buf, size_t buf_len) { size_t argz_len; char *argz; assert (pargz); assert (pargz_len); assert ((*pargz && *pargz_len) || (!*pargz && !*pargz_len)); /* If nothing needs to be appended, no more work is required. */ if (buf_len == 0) return 0; /* Ensure there is enough room to append BUF_LEN. */ argz_len = *pargz_len + buf_len; argz = (char *) realloc (*pargz, argz_len); if (!argz) return ENOMEM; /* Copy characters from BUF after terminating '\0' in ARGZ. */ memcpy (argz + *pargz_len, buf, buf_len); /* Assign new values. */ *pargz = argz; *pargz_len = argz_len; return 0; } error_t argz_create_sep (const char *str, int delim, char **pargz, size_t *pargz_len) { size_t argz_len; char *argz = 0; assert (str); assert (pargz); assert (pargz_len); /* Make a copy of STR, but replacing each occurrence of DELIM with '\0'. */ argz_len = 1+ strlen (str); if (argz_len) { const char *p; char *q; argz = (char *) malloc (argz_len); if (!argz) return ENOMEM; for (p = str, q = argz; *p != EOS_CHAR; ++p) { if (*p == delim) { /* Ignore leading delimiters, and fold consecutive delimiters in STR into a single '\0' in ARGZ. */ if ((q > argz) && (q[-1] != EOS_CHAR)) *q++ = EOS_CHAR; else --argz_len; } else *q++ = *p; } /* Copy terminating EOS_CHAR. */ *q = *p; } /* If ARGZ_LEN has shrunk to nothing, release ARGZ's memory. */ if (!argz_len) argz = (free (argz), (char *) 0); /* Assign new values. */ *pargz = argz; *pargz_len = argz_len; return 0; } error_t argz_insert (char **pargz, size_t *pargz_len, char *before, const char *entry) { assert (pargz); assert (pargz_len); assert (entry && *entry); /* No BEFORE address indicates ENTRY should be inserted after the current last element. */ if (!before) return argz_append (pargz, pargz_len, entry, 1+ strlen (entry)); /* This probably indicates a programmer error, but to preserve semantics, scan back to the start of an entry if BEFORE points into the middle of it. */ while ((before > *pargz) && (before[-1] != EOS_CHAR)) --before; { size_t entry_len = 1+ strlen (entry); size_t argz_len = *pargz_len + entry_len; size_t offset = before - *pargz; char *argz = (char *) realloc (*pargz, argz_len); if (!argz) return ENOMEM; /* Make BEFORE point to the equivalent offset in ARGZ that it used to have in *PARGZ incase realloc() moved the block. */ before = argz + offset; /* Move the ARGZ entries starting at BEFORE up into the new space at the end -- making room to copy ENTRY into the resulting gap. */ memmove (before + entry_len, before, *pargz_len - offset); memcpy (before, entry, entry_len); /* Assign new values. */ *pargz = argz; *pargz_len = argz_len; } return 0; } char * argz_next (char *argz, size_t argz_len, const char *entry) { assert ((argz && argz_len) || (!argz && !argz_len)); if (entry) { /* Either ARGZ/ARGZ_LEN is empty, or ENTRY points into an address within the ARGZ vector. */ assert ((!argz && !argz_len) || ((argz <= entry) && (entry < (argz + argz_len)))); /* Move to the char immediately after the terminating '\0' of ENTRY. */ entry = 1+ strchr (entry, EOS_CHAR); /* Return either the new ENTRY, or else NULL if ARGZ is exhausted. */ return (entry >= argz + argz_len) ? 0 : (char *) entry; } else { /* This should probably be flagged as a programmer error, since starting an argz_next loop with the iterator set to ARGZ is safer. To preserve semantics, handle the NULL case by returning the start of ARGZ (if any). */ if (argz_len > 0) return argz; else return 0; } } void argz_stringify (char *argz, size_t argz_len, int sep) { assert ((argz && argz_len) || (!argz && !argz_len)); if (sep) { --argz_len; /* don't stringify the terminating EOS */ while (--argz_len > 0) { if (argz[argz_len] == EOS_CHAR) argz[argz_len] = sep; } } } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/lt__dirent.c����������������������������������������������������������������0000664�0000000�0000000�00000005706�13775351206�0017370�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt__dirent.c -- internal directory entry scanning interface Copyright (C) 2001, 2004, 2011-2015 Free Software Foundation, Inc. Written by Bob Friesenhahn, 2001 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include <assert.h> #include "lt__dirent.h" #if defined __WINDOWS__ void closedir (DIR *entry) { assert (entry != (DIR *) NULL); FindClose (entry->hSearch); free (entry); } DIR * opendir (const char *path) { char file_spec[LT_FILENAME_MAX]; DIR *entry; assert (path != (char *) 0); if (lt_strlcpy (file_spec, path, sizeof file_spec) >= sizeof file_spec || lt_strlcat (file_spec, "\\", sizeof file_spec) >= sizeof file_spec) return (DIR *) 0; entry = (DIR *) malloc (sizeof(DIR)); if (entry != (DIR *) 0) { entry->firsttime = TRUE; entry->hSearch = FindFirstFile (file_spec, &entry->Win32FindData); if (entry->hSearch == INVALID_HANDLE_VALUE) { if (lt_strlcat (file_spec, "\\*.*", sizeof file_spec) < sizeof file_spec) { entry->hSearch = FindFirstFile (file_spec, &entry->Win32FindData); } if (entry->hSearch == INVALID_HANDLE_VALUE) { entry = (free (entry), (DIR *) 0); } } } return entry; } struct dirent * readdir (DIR *entry) { int status; if (entry == (DIR *) 0) return (struct dirent *) 0; if (!entry->firsttime) { status = FindNextFile (entry->hSearch, &entry->Win32FindData); if (status == 0) return (struct dirent *) 0; } entry->firsttime = FALSE; if (lt_strlcpy (entry->file_info.d_name, entry->Win32FindData.cFileName, sizeof entry->file_info.d_name) >= sizeof entry->file_info.d_name) return (struct dirent *) 0; entry->file_info.d_namlen = strlen (entry->file_info.d_name); return &entry->file_info; } #endif /*defined __WINDOWS__*/ ����������������������������������������������������������twin-0.9.0/libs/libltdl/lt__strl.c������������������������������������������������������������������0000664�0000000�0000000�00000007032�13775351206�0017061�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt__strl.c -- size-bounded string copying and concatenation Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. Written by Bob Friesenhahn, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include <assert.h> #include <string.h> #include "lt__strl.h" /* lt_strlcat appends the NULL-terminated string src to the end of dst. It will append at most dstsize - strlen(dst) - 1 bytes, NULL-terminating the result. The total length of the string that would have been created given sufficient buffer size (may be longer than dstsize) is returned. This function substitutes for strlcat(), which is available under NetBSD, FreeBSD and Solaris 9. Buffer overflow can be checked as follows: if (lt_strlcat(dst, src, dstsize) >= dstsize) return -1; */ #if !defined HAVE_STRLCAT size_t lt_strlcat(char *dst, const char *src, const size_t dstsize) { size_t length; char *p; const char *q; assert(dst != NULL); assert(src != (const char *) NULL); assert(dstsize >= 1); length=strlen(dst); /* Copy remaining characters from src while constraining length to size - 1. */ for ( p = dst + length, q = src; (*q != 0) && (length < dstsize - 1); length++, p++, q++ ) *p = *q; dst[length]='\0'; /* Add remaining length of src to length. */ while (*q++) length++; return length; } #endif /* !defined HAVE_STRLCAT */ /* lt_strlcpy copies up to dstsize - 1 characters from the NULL-terminated string src to dst, NULL-terminating the result. The total length of the string that would have been created given sufficient buffer size (may be longer than dstsize) is returned. This function substitutes for strlcpy(), which is available under OpenBSD, FreeBSD and Solaris 9. Buffer overflow can be checked as follows: if (lt_strlcpy(dst, src, dstsize) >= dstsize) return -1; */ #if !defined HAVE_STRLCPY size_t lt_strlcpy(char *dst, const char *src, const size_t dstsize) { size_t length=0; char *p; const char *q; assert(dst != NULL); assert(src != (const char *) NULL); assert(dstsize >= 1); /* Copy src to dst within bounds of size-1. */ for ( p=dst, q=src, length=0; (*q != 0) && (length < dstsize-1); length++, p++, q++ ) *p = *q; dst[length]='\0'; /* Add remaining length of src to length. */ while (*q++) length++; return length; } #endif /* !defined HAVE_STRLCPY */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/lt_dlloader.c���������������������������������������������������������������0000664�0000000�0000000�00000013710�13775351206�0017524�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt_dlloader.c -- dynamic library loader interface Copyright (C) 2004, 2007-2008, 2011-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2004 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_dlloader.h" #define RETURN_SUCCESS 0 #define RETURN_FAILURE 1 static void * loader_callback (SList *item, void *userdata); /* A list of all the dlloaders we know about, each stored as a boxed SList item: */ static SList *loaders = 0; /* Return NULL, unless the loader in this ITEM has a matching name, in which case we return the matching item so that its address is passed back out (for possible freeing) by slist_remove. */ static void * loader_callback (SList *item, void *userdata) { const lt_dlvtable *vtable = (const lt_dlvtable *) item->userdata; const char * name = (const char *) userdata; assert (vtable); return STREQ (vtable->name, name) ? (void *) item : NULL; } /* Hook VTABLE into our global LOADERS list according to its own PRIORITY field value. */ int lt_dlloader_add (const lt_dlvtable *vtable) { SList *item; if ((vtable == 0) /* diagnose invalid vtable fields */ || (vtable->module_open == 0) || (vtable->module_close == 0) || (vtable->find_sym == 0) || ((vtable->priority != LT_DLLOADER_PREPEND) && (vtable->priority != LT_DLLOADER_APPEND))) { LT__SETERROR (INVALID_LOADER); return RETURN_FAILURE; } item = slist_box (vtable); if (!item) { (*lt__alloc_die) (); /* Let the caller know something went wrong if lt__alloc_die doesn't abort. */ return RETURN_FAILURE; } if (vtable->priority == LT_DLLOADER_PREPEND) { loaders = slist_cons (item, loaders); } else { assert (vtable->priority == LT_DLLOADER_APPEND); loaders = slist_concat (loaders, item); } return RETURN_SUCCESS; } #ifdef LT_DEBUG_LOADERS static void * loader_dump_callback (SList *item, void *userdata) { const lt_dlvtable *vtable = (const lt_dlvtable *) item->userdata; fprintf (stderr, ", %s", (vtable && vtable->name) ? vtable->name : "(null)"); return 0; } void lt_dlloader_dump (void) { fprintf (stderr, "loaders: "); if (!loaders) { fprintf (stderr, "(empty)"); } else { const lt_dlvtable *head = (const lt_dlvtable *) loaders->userdata; fprintf (stderr, "%s", (head && head->name) ? head->name : "(null)"); if (slist_tail (loaders)) slist_foreach (slist_tail (loaders), loader_dump_callback, NULL); } fprintf (stderr, "\n"); } #endif /* An iterator for the global loader list: if LOADER is NULL, then return the first element, otherwise the following element. */ lt_dlloader lt_dlloader_next (lt_dlloader loader) { SList *item = (SList *) loader; return (lt_dlloader) (item ? item->next : loaders); } /* Non-destructive unboxing of a loader. */ const lt_dlvtable * lt_dlloader_get (lt_dlloader loader) { return (const lt_dlvtable *) (loader ? ((SList *) loader)->userdata : NULL); } /* Return the contents of the first item in the global loader list with a matching NAME after removing it from that list. If there was no match, return NULL; if there is an error, return NULL and set an error for lt_dlerror; do not set an error if only resident modules need this loader; in either case, the loader list is not changed if NULL is returned. */ lt_dlvtable * lt_dlloader_remove (const char *name) { const lt_dlvtable * vtable = lt_dlloader_find (name); static const char id_string[] = "lt_dlloader_remove"; lt_dlinterface_id iface; lt_dlhandle handle = 0; int in_use = 0; int in_use_by_resident = 0; if (!vtable) { LT__SETERROR (INVALID_LOADER); return 0; } /* Fail if there are any open modules that use this loader. */ iface = lt_dlinterface_register (id_string, NULL); while ((handle = lt_dlhandle_iterate (iface, handle))) { lt_dlhandle cur = handle; if (cur->vtable == vtable) { in_use = 1; if (lt_dlisresident (handle)) in_use_by_resident = 1; } } lt_dlinterface_free (iface); if (in_use) { if (!in_use_by_resident) LT__SETERROR (REMOVE_LOADER); return 0; } /* Call the loader finalisation function. */ if (vtable && vtable->dlloader_exit) { if ((*vtable->dlloader_exit) (vtable->dlloader_data) != 0) { /* If there is an exit function, and it returns non-zero then it must set an error, and we will not remove it from the list. */ return 0; } } /* If we got this far, remove the loader from our global list. */ return (lt_dlvtable *) slist_unbox ((SList *) slist_remove (&loaders, loader_callback, (void *) name)); } const lt_dlvtable * lt_dlloader_find (const char *name) { return lt_dlloader_get (slist_find (loaders, loader_callback, (void *) name)); } ��������������������������������������������������������twin-0.9.0/libs/libltdl/lt_error.c������������������������������������������������������������������0000664�0000000�0000000�00000005627�13775351206�0017077�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* lt_error.c -- error propagation interface Copyright (C) 1999-2001, 2004-2005, 2007, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1999 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_error.h" static const char *last_error = 0; static const char error_strings[LT_ERROR_MAX][LT_ERROR_LEN_MAX + 1] = { #define LT_ERROR(name, diagnostic) diagnostic, lt_dlerror_table #undef LT_ERROR }; static const char **user_error_strings = 0; static int errorcount = LT_ERROR_MAX; int lt_dladderror (const char *diagnostic) { int errindex = 0; int result = -1; const char **temp = (const char **) 0; assert (diagnostic); errindex = errorcount - LT_ERROR_MAX; temp = REALLOC (const char *, user_error_strings, 1 + errindex); if (temp) { user_error_strings = temp; user_error_strings[errindex] = diagnostic; result = errorcount++; } return result; } int lt_dlseterror (int errindex) { int errors = 0; if (errindex >= errorcount || errindex < 0) { /* Ack! Error setting the error message! */ LT__SETERROR (INVALID_ERRORCODE); ++errors; } else if (errindex < LT_ERROR_MAX) { /* No error setting the error message! */ LT__SETERRORSTR (error_strings[errindex]); } else { /* No error setting the error message! */ LT__SETERRORSTR (user_error_strings[errindex - LT_ERROR_MAX]); } return errors; } const char * lt__error_string (int errorcode) { assert (errorcode >= 0); assert (errorcode < LT_ERROR_MAX); return error_strings[errorcode]; } const char * lt__get_last_error (void) { return last_error; } const char * lt__set_last_error (const char *errormsg) { return last_error = errormsg; } ���������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/ltdl.c����������������������������������������������������������������������0000664�0000000�0000000�00000154034�13775351206�0016203�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ltdl.c -- system independent dlopen wrapper Copyright (C) 1998-2000, 2004-2008, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lt__private.h" #include "lt_system.h" #include "lt_dlloader.h" /* --- MANIFEST CONSTANTS --- */ /* Standard libltdl search path environment variable name */ #undef LTDL_SEARCHPATH_VAR #define LTDL_SEARCHPATH_VAR "LTDL_LIBRARY_PATH" /* Standard libtool archive file extension. */ #undef LT_ARCHIVE_EXT #define LT_ARCHIVE_EXT ".la" /* max. filename length */ #if !defined LT_FILENAME_MAX # define LT_FILENAME_MAX 1024 #endif #if !defined LT_LIBEXT # define LT_LIBEXT "a" #endif #if !defined LT_LIBPREFIX # define LT_LIBPREFIX "lib" #endif /* This is the maximum symbol size that won't require malloc/free */ #undef LT_SYMBOL_LENGTH #define LT_SYMBOL_LENGTH 128 /* This accounts for the _LTX_ separator */ #undef LT_SYMBOL_OVERHEAD #define LT_SYMBOL_OVERHEAD 5 /* Various boolean flags can be stored in the flags field of an lt_dlhandle... */ #define LT_DLIS_RESIDENT(handle) ((handle)->info.is_resident) #define LT_DLIS_SYMGLOBAL(handle) ((handle)->info.is_symglobal) #define LT_DLIS_SYMLOCAL(handle) ((handle)->info.is_symlocal) static const char objdir[] = LT_OBJDIR; static const char archive_ext[] = LT_ARCHIVE_EXT; static const char libext[] = LT_LIBEXT; static const char libprefix[] = LT_LIBPREFIX; #if defined LT_MODULE_EXT static const char shlib_ext[] = LT_MODULE_EXT; #endif /* If the loadable module suffix is not the same as the linkable * shared library suffix, this will be defined. */ #if defined LT_SHARED_EXT static const char shared_ext[] = LT_SHARED_EXT; #endif #if defined LT_DLSEARCH_PATH static const char sys_dlsearch_path[] = LT_DLSEARCH_PATH; #endif /* --- DYNAMIC MODULE LOADING --- */ /* The type of a function used at each iteration of foreach_dirinpath(). */ typedef int foreach_callback_func (char *filename, void *data1, void *data2); /* foreachfile_callback itself calls a function of this type: */ typedef int file_worker_func (const char *filename, void *data); static int foreach_dirinpath (const char *search_path, const char *base_name, foreach_callback_func *func, void *data1, void *data2); static int find_file_callback (char *filename, void *data1, void *data2); static int find_handle_callback (char *filename, void *data, void *ignored); static int foreachfile_callback (char *filename, void *data1, void *data2); static int canonicalize_path (const char *path, char **pcanonical); static int argzize_path (const char *path, char **pargz, size_t *pargz_len); static FILE *find_file (const char *search_path, const char *base_name, char **pdir); static lt_dlhandle *find_handle (const char *search_path, const char *base_name, lt_dlhandle *handle, lt_dladvise advise); static int find_module (lt_dlhandle *handle, const char *dir, const char *libdir, const char *dlname, const char *old_name, int installed, lt_dladvise advise); static int has_library_ext (const char *filename); static int load_deplibs (lt_dlhandle handle, char *deplibs); static int trim (char **dest, const char *str); static int try_dlopen (lt_dlhandle *handle, const char *filename, const char *ext, lt_dladvise advise); static int tryall_dlopen (lt_dlhandle *handle, const char *filename, lt_dladvise padvise, const lt_dlvtable *vtable); static int unload_deplibs (lt_dlhandle handle); static int lt_argz_insert (char **pargz, size_t *pargz_len, char *before, const char *entry); static int lt_argz_insertinorder (char **pargz, size_t *pargz_len, const char *entry); static int lt_argz_insertdir (char **pargz, size_t *pargz_len, const char *dirnam, struct dirent *dp); static int lt_dlpath_insertdir (char **ppath, char *before, const char *dir); static int list_files_by_dir (const char *dirnam, char **pargz, size_t *pargz_len); static int file_not_found (void); #ifdef HAVE_LIBDLLOADER static int loader_init_callback (lt_dlhandle handle); #endif /* HAVE_LIBDLLOADER */ static int loader_init (lt_get_vtable *vtable_func, lt_user_data data); static char *user_search_path= 0; static lt_dlhandle handles = 0; static int initialized = 0; /* Our memory failure callback sets the error message to be passed back up to the client, so we must be careful to return from mallocation callers if allocation fails (as this callback returns!!). */ void lt__alloc_die_callback (void) { LT__SETERROR (NO_MEMORY); } #ifdef HAVE_LIBDLLOADER /* This function is called to initialise each preloaded module loader, and hook it into the list of loaders to be used when attempting to dlopen an application module. */ static int loader_init_callback (lt_dlhandle handle) { lt_get_vtable *vtable_func = (lt_get_vtable *) lt_dlsym (handle, "get_vtable"); return loader_init (vtable_func, 0); } #endif /* HAVE_LIBDLLOADER */ static int loader_init (lt_get_vtable *vtable_func, lt_user_data data) { const lt_dlvtable *vtable = 0; int errors = 0; if (vtable_func) { vtable = (*vtable_func) (data); } /* lt_dlloader_add will LT__SETERROR if it fails. */ errors += lt_dlloader_add (vtable); assert (errors || vtable); if ((!errors) && vtable->dlloader_init) { if ((*vtable->dlloader_init) (vtable->dlloader_data)) { LT__SETERROR (INIT_LOADER); ++errors; } } return errors; } /* Bootstrap the loader loading with the preopening loader. */ #define get_vtable preopen_LTX_get_vtable #define preloaded_symbols LT_CONC3(lt_, LTDLOPEN, _LTX_preloaded_symbols) LT_BEGIN_C_DECLS LT_SCOPE const lt_dlvtable * get_vtable (lt_user_data data); LT_END_C_DECLS #ifdef HAVE_LIBDLLOADER extern LT_DLSYM_CONST lt_dlsymlist preloaded_symbols[]; #endif /* Initialize libltdl. */ int lt_dlinit (void) { int errors = 0; /* Initialize only at first call. */ if (++initialized == 1) { lt__alloc_die = lt__alloc_die_callback; handles = 0; user_search_path = 0; /* empty search path */ /* First set up the statically loaded preload module loader, so we can use it to preopen the other loaders we linked in at compile time. */ errors += loader_init (get_vtable, 0); /* Now open all the preloaded module loaders, so the application can use _them_ to lt_dlopen its own modules. */ #ifdef HAVE_LIBDLLOADER if (!errors) { errors += lt_dlpreload (preloaded_symbols); } if (!errors) { errors += lt_dlpreload_open (LT_STR(LTDLOPEN), loader_init_callback); } #endif /* HAVE_LIBDLLOADER */ } #ifdef LT_DEBUG_LOADERS lt_dlloader_dump(); #endif return errors; } int lt_dlexit (void) { /* shut down libltdl */ lt_dlloader *loader = 0; lt_dlhandle handle = handles; int errors = 0; if (!initialized) { LT__SETERROR (SHUTDOWN); ++errors; goto done; } /* shut down only at last call. */ if (--initialized == 0) { int level; while (handles && LT_DLIS_RESIDENT (handles)) { handles = handles->next; } /* close all modules */ for (level = 1; handle; ++level) { lt_dlhandle cur = handles; int saw_nonresident = 0; while (cur) { lt_dlhandle tmp = cur; cur = cur->next; if (!LT_DLIS_RESIDENT (tmp)) { saw_nonresident = 1; if (tmp->info.ref_count <= level) { if (lt_dlclose (tmp)) { ++errors; } /* Make sure that the handle pointed to by 'cur' still exists. lt_dlclose recursively closes dependent libraries, which removes them from the linked list. One of these might be the one pointed to by 'cur'. */ if (cur) { for (tmp = handles; tmp; tmp = tmp->next) if (tmp == cur) break; if (! tmp) cur = handles; } } } } /* done if only resident modules are left */ if (!saw_nonresident) break; } /* When removing loaders, we can only find out failure by testing the error string, so avoid a spurious one from an earlier failed command. */ if (!errors) LT__SETERRORSTR (0); /* close all loaders */ for (loader = (lt_dlloader *) lt_dlloader_next (NULL); loader;) { lt_dlloader *next = (lt_dlloader *) lt_dlloader_next (loader); lt_dlvtable *vtable = (lt_dlvtable *) lt_dlloader_get (loader); if ((vtable = lt_dlloader_remove ((char *) vtable->name))) { FREE (vtable); } else { /* ignore errors due to resident modules */ const char *err; LT__GETERROR (err); if (err) ++errors; } loader = next; } FREE(user_search_path); } done: return errors; } /* Try VTABLE or, if VTABLE is NULL, all available loaders for FILENAME. If the library is not successfully loaded, return non-zero. Otherwise, the dlhandle is stored at the address given in PHANDLE. */ static int tryall_dlopen (lt_dlhandle *phandle, const char *filename, lt_dladvise advise, const lt_dlvtable *vtable) { lt_dlhandle handle = handles; const char * saved_error = 0; int errors = 0; #ifdef LT_DEBUG_LOADERS fprintf (stderr, "tryall_dlopen (%s, %s)\n", filename ? filename : "(null)", vtable ? vtable->name : "(ALL)"); #endif LT__GETERROR (saved_error); /* check whether the module was already opened */ for (;handle; handle = handle->next) { if ((handle->info.filename == filename) /* dlopen self: 0 == 0 */ || (handle->info.filename && filename && STREQ (handle->info.filename, filename))) { break; } } if (handle) { ++handle->info.ref_count; *phandle = handle; goto done; } handle = *phandle; if (filename) { /* Comment out the check of file permissions using access. This call seems to always return -1 with error EACCES. */ /* We need to catch missing file errors early so that file_not_found() can detect what happened. if (access (filename, R_OK) != 0) { LT__SETERROR (FILE_NOT_FOUND); ++errors; goto done; } */ handle->info.filename = lt__strdup (filename); if (!handle->info.filename) { ++errors; goto done; } } else { handle->info.filename = 0; } { lt_dlloader loader = lt_dlloader_next (0); const lt_dlvtable *loader_vtable; do { if (vtable) loader_vtable = vtable; else loader_vtable = lt_dlloader_get (loader); #ifdef LT_DEBUG_LOADERS fprintf (stderr, "Calling %s->module_open (%s)\n", (loader_vtable && loader_vtable->name) ? loader_vtable->name : "(null)", filename ? filename : "(null)"); #endif handle->module = (*loader_vtable->module_open) (loader_vtable->dlloader_data, filename, advise); #ifdef LT_DEBUG_LOADERS if (!handle->module) { char *error; LT__GETERROR(error); fprintf (stderr, " Result: Failed\n" " Error message << %s >>\n", error ? error : "(null)"); } else { fprintf (stderr, " Result: Success\n"); } #endif if (handle->module != 0) { if (advise) { handle->info.is_resident = advise->is_resident; handle->info.is_symglobal = advise->is_symglobal; handle->info.is_symlocal = advise->is_symlocal; } break; } } while (!vtable && (loader = lt_dlloader_next (loader))); /* If VTABLE was given but couldn't open the module, or VTABLE wasn't given but we exhausted all loaders without opening the module, bail out! */ if ((vtable && !handle->module) || (!vtable && !loader)) { FREE (handle->info.filename); ++errors; goto done; } handle->vtable = loader_vtable; } LT__SETERRORSTR (saved_error); done: return errors; } static int tryall_dlopen_module (lt_dlhandle *handle, const char *prefix, const char *dirname, const char *dlname, lt_dladvise advise) { int error = 0; char *filename = 0; size_t filename_len = 0; size_t dirname_len = LT_STRLEN (dirname); assert (handle); assert (dirname); assert (dlname); #if defined LT_DIRSEP_CHAR /* Only canonicalized names (i.e. with DIRSEP chars already converted) should make it into this function: */ assert (strchr (dirname, LT_DIRSEP_CHAR) == 0); #endif if (dirname_len > 0) if (dirname[dirname_len -1] == '/') --dirname_len; filename_len = dirname_len + 1 + LT_STRLEN (dlname); /* Allocate memory, and combine DIRNAME and MODULENAME into it. The PREFIX (if any) is handled below. */ filename = MALLOC (char, filename_len + 1); if (!filename) return 1; sprintf (filename, "%.*s/%s", (int) dirname_len, dirname, dlname); /* Now that we have combined DIRNAME and MODULENAME, if there is also a PREFIX to contend with, simply recurse with the arguments shuffled. Otherwise, attempt to open FILENAME as a module. */ if (prefix) { error += tryall_dlopen_module (handle, (const char *) 0, prefix, filename, advise); } else if (tryall_dlopen (handle, filename, advise, 0) != 0) { ++error; } FREE (filename); return error; } static int find_module (lt_dlhandle *handle, const char *dir, const char *libdir, const char *dlname, const char *old_name, int installed, lt_dladvise advise) { /* Try to open the old library first; if it was dlpreopened, we want the preopened version of it, even if a dlopenable module is available. */ if (old_name && tryall_dlopen (handle, old_name, advise, lt_dlloader_find ("lt_preopen") ) == 0) { return 0; } /* Try to open the dynamic library. */ if (dlname) { /* try to open the installed module */ if (installed && libdir) { if (tryall_dlopen_module (handle, (const char *) 0, libdir, dlname, advise) == 0) return 0; } /* try to open the not-installed module */ if (!installed) { if (tryall_dlopen_module (handle, dir, objdir, dlname, advise) == 0) return 0; } /* maybe it was moved to another directory */ { if (dir && (tryall_dlopen_module (handle, (const char *) 0, dir, dlname, advise) == 0)) return 0; } } return 1; } static int canonicalize_path (const char *path, char **pcanonical) { char *canonical = 0; assert (path && *path); assert (pcanonical); canonical = MALLOC (char, 1+ LT_STRLEN (path)); if (!canonical) return 1; { size_t dest = 0; size_t src; for (src = 0; path[src] != LT_EOS_CHAR; ++src) { /* Path separators are not copied to the beginning or end of the destination, or if another separator would follow immediately. */ if (path[src] == LT_PATHSEP_CHAR) { if ((dest == 0) || (path[1+ src] == LT_PATHSEP_CHAR) || (path[1+ src] == LT_EOS_CHAR)) continue; } /* Anything other than a directory separator is copied verbatim. */ if ((path[src] != '/') #if defined LT_DIRSEP_CHAR && (path[src] != LT_DIRSEP_CHAR) #endif ) { canonical[dest++] = path[src]; } /* Directory separators are converted and copied only if they are not at the end of a path -- i.e. before a path separator or NULL terminator. */ else if ((path[1+ src] != LT_PATHSEP_CHAR) && (path[1+ src] != LT_EOS_CHAR) #if defined LT_DIRSEP_CHAR && (path[1+ src] != LT_DIRSEP_CHAR) #endif && (path[1+ src] != '/')) { canonical[dest++] = '/'; } } /* Add an end-of-string marker at the end. */ canonical[dest] = LT_EOS_CHAR; } /* Assign new value. */ *pcanonical = canonical; return 0; } static int argzize_path (const char *path, char **pargz, size_t *pargz_len) { error_t error; assert (path); assert (pargz); assert (pargz_len); if ((error = argz_create_sep (path, LT_PATHSEP_CHAR, pargz, pargz_len))) { switch (error) { case ENOMEM: LT__SETERROR (NO_MEMORY); break; default: LT__SETERROR (UNKNOWN); break; } return 1; } return 0; } /* Repeatedly call FUNC with each LT_PATHSEP_CHAR delimited element of SEARCH_PATH and references to DATA1 and DATA2, until FUNC returns non-zero or all elements are exhausted. If BASE_NAME is non-NULL, it is appended to each SEARCH_PATH element before FUNC is called. */ static int foreach_dirinpath (const char *search_path, const char *base_name, foreach_callback_func *func, void *data1, void *data2) { int result = 0; size_t filenamesize = 0; size_t lenbase = LT_STRLEN (base_name); size_t argz_len = 0; char *argz = 0; char *filename = 0; char *canonical = 0; if (!search_path || !*search_path) { LT__SETERROR (FILE_NOT_FOUND); goto cleanup; } if (canonicalize_path (search_path, &canonical) != 0) goto cleanup; if (argzize_path (canonical, &argz, &argz_len) != 0) goto cleanup; { char *dir_name = 0; while ((dir_name = argz_next (argz, argz_len, dir_name))) { size_t lendir = LT_STRLEN (dir_name); if (1+ lendir + lenbase >= filenamesize) { FREE (filename); filenamesize = 1+ lendir + 1+ lenbase; /* "/d" + '/' + "f" + '\0' */ filename = MALLOC (char, filenamesize); if (!filename) goto cleanup; } assert (filenamesize > lendir); strcpy (filename, dir_name); if (base_name && *base_name) { if (filename[lendir -1] != '/') filename[lendir++] = '/'; strcpy (filename +lendir, base_name); } if ((result = (*func) (filename, data1, data2))) { break; } } } cleanup: FREE (argz); FREE (canonical); FREE (filename); return result; } /* If FILEPATH can be opened, store the name of the directory component in DATA1, and the opened FILE* structure address in DATA2. Otherwise DATA1 is unchanged, but DATA2 is set to a pointer to NULL. */ static int find_file_callback (char *filename, void *data1, void *data2) { char **pdir = (char **) data1; FILE **pfile = (FILE **) data2; int is_done = 0; assert (filename && *filename); assert (pdir); assert (pfile); if ((*pfile = fopen (filename, LT_READTEXT_MODE))) { char *dirend = strrchr (filename, '/'); if (dirend > filename) *dirend = LT_EOS_CHAR; FREE (*pdir); *pdir = lt__strdup (filename); is_done = (*pdir == 0) ? -1 : 1; } return is_done; } static FILE * find_file (const char *search_path, const char *base_name, char **pdir) { FILE *file = 0; foreach_dirinpath (search_path, base_name, find_file_callback, pdir, &file); return file; } static int find_handle_callback (char *filename, void *data, void *data2) { lt_dlhandle *phandle = (lt_dlhandle *) data; int notfound = access (filename, R_OK); lt_dladvise advise = (lt_dladvise) data2; /* Bail out if file cannot be read... */ if (notfound) return 0; /* Try to dlopen the file, but do not continue searching in any case. */ if (tryall_dlopen (phandle, filename, advise, 0) != 0) *phandle = 0; return 1; } /* If HANDLE was found return it, otherwise return 0. If HANDLE was found but could not be opened, *HANDLE will be set to 0. */ static lt_dlhandle * find_handle (const char *search_path, const char *base_name, lt_dlhandle *phandle, lt_dladvise advise) { if (!search_path) return 0; if (!foreach_dirinpath (search_path, base_name, find_handle_callback, phandle, advise)) return 0; return phandle; } #if !defined LTDL_DLOPEN_DEPLIBS static int load_deplibs (lt_dlhandle handle, char * deplibs LT__UNUSED) { handle->depcount = 0; return 0; } #else /* defined LTDL_DLOPEN_DEPLIBS */ static int load_deplibs (lt_dlhandle handle, char *deplibs) { char *p, *save_search_path = 0; int depcount = 0; int i; char **names = 0; int errors = 0; handle->depcount = 0; if (!deplibs) { return errors; } ++errors; if (user_search_path) { save_search_path = lt__strdup (user_search_path); if (!save_search_path) goto cleanup; } /* extract search paths and count deplibs */ p = deplibs; while (*p) { if (!isspace ((unsigned char) *p)) { char *end = p+1; while (*end && !isspace((unsigned char) *end)) { ++end; } if (strncmp(p, "-L", 2) == 0 || strncmp(p, "-R", 2) == 0) { char save = *end; *end = 0; /* set a temporary string terminator */ if (lt_dladdsearchdir(p+2)) { goto cleanup; } *end = save; } else { ++depcount; } p = end; } else { ++p; } } if (!depcount) { errors = 0; goto cleanup; } names = MALLOC (char *, depcount); if (!names) goto cleanup; /* now only extract the actual deplibs */ depcount = 0; p = deplibs; while (*p) { if (isspace ((unsigned char) *p)) { ++p; } else { char *end = p+1; while (*end && !isspace ((unsigned char) *end)) { ++end; } if (strncmp(p, "-L", 2) != 0 && strncmp(p, "-R", 2) != 0) { char *name; char save = *end; *end = 0; /* set a temporary string terminator */ if (strncmp(p, "-l", 2) == 0) { size_t name_len = 3+ /* "lib" */ LT_STRLEN (p + 2); name = MALLOC (char, 1+ name_len); if (name) sprintf (name, "lib%s", p+2); } else name = lt__strdup(p); if (!name) goto cleanup_names; names[depcount++] = name; *end = save; } p = end; } } /* load the deplibs (in reverse order) At this stage, don't worry if the deplibs do not load correctly, they may already be statically linked into the loading application for instance. There will be a more enlightening error message later on if the loaded module cannot resolve all of its symbols. */ if (depcount) { lt_dlhandle cur = handle; int j = 0; cur->deplibs = MALLOC (lt_dlhandle, depcount); if (!cur->deplibs) goto cleanup_names; for (i = 0; i < depcount; ++i) { cur->deplibs[j] = lt_dlopenext(names[depcount-1-i]); if (cur->deplibs[j]) { ++j; } } cur->depcount = j; /* Number of successfully loaded deplibs */ errors = 0; } cleanup_names: for (i = 0; i < depcount; ++i) { FREE (names[i]); } cleanup: FREE (names); /* restore the old search path */ if (save_search_path) { MEMREASSIGN (user_search_path, save_search_path); } return errors; } #endif /* defined LTDL_DLOPEN_DEPLIBS */ static int unload_deplibs (lt_dlhandle handle) { int i; int errors = 0; lt_dlhandle cur = handle; if (cur->depcount) { for (i = 0; i < cur->depcount; ++i) { if (!LT_DLIS_RESIDENT (cur->deplibs[i])) { errors += lt_dlclose (cur->deplibs[i]); } } FREE (cur->deplibs); } return errors; } static int trim (char **dest, const char *str) { /* remove the leading and trailing "'" from str and store the result in dest */ const char *end = strrchr (str, '\''); size_t len = LT_STRLEN (str); char *tmp; FREE (*dest); if (!end || end == str) return 1; if (len > 3 && str[0] == '\'') { tmp = MALLOC (char, end - str); if (!tmp) return 1; memcpy(tmp, &str[1], (end - str) - 1); tmp[(end - str) - 1] = LT_EOS_CHAR; *dest = tmp; } else { *dest = 0; } return 0; } /* Read the .la file FILE. */ static int parse_dotla_file(FILE *file, char **dlname, char **libdir, char **deplibs, char **old_name, int *installed) { int errors = 0; size_t line_len = LT_FILENAME_MAX; char * line = MALLOC (char, line_len); if (!line) { LT__SETERROR (FILE_NOT_FOUND); return 1; } while (!feof (file)) { line[line_len-2] = '\0'; if (!fgets (line, (int) line_len, file)) { break; } /* Handle the case where we occasionally need to read a line that is longer than the initial buffer size. Behave even if the file contains NUL bytes due to corruption. */ while (line[line_len-2] != '\0' && line[line_len-2] != '\n' && !feof (file)) { line = REALLOC (char, line, line_len *2); if (!line) { ++errors; goto cleanup; } line[line_len * 2 - 2] = '\0'; if (!fgets (&line[line_len -1], (int) line_len +1, file)) { break; } line_len *= 2; } if (line[0] == '\n' || line[0] == '#') { continue; } #undef STR_DLNAME #define STR_DLNAME "dlname=" if (strncmp (line, STR_DLNAME, sizeof (STR_DLNAME) - 1) == 0) { errors += trim (dlname, &line[sizeof (STR_DLNAME) - 1]); } #undef STR_OLD_LIBRARY #define STR_OLD_LIBRARY "old_library=" else if (strncmp (line, STR_OLD_LIBRARY, sizeof (STR_OLD_LIBRARY) - 1) == 0) { errors += trim (old_name, &line[sizeof (STR_OLD_LIBRARY) - 1]); } /* Windows native tools do not understand the POSIX paths we store in libdir. */ #undef STR_LIBDIR #define STR_LIBDIR "libdir=" else if (strncmp (line, STR_LIBDIR, sizeof (STR_LIBDIR) - 1) == 0) { errors += trim (libdir, &line[sizeof(STR_LIBDIR) - 1]); #ifdef __WINDOWS__ /* Disallow following unix-style paths on MinGW. */ if (*libdir && (**libdir == '/' || **libdir == '\\')) **libdir = '\0'; #endif } #undef STR_DL_DEPLIBS #define STR_DL_DEPLIBS "dependency_libs=" else if (strncmp (line, STR_DL_DEPLIBS, sizeof (STR_DL_DEPLIBS) - 1) == 0) { errors += trim (deplibs, &line[sizeof (STR_DL_DEPLIBS) - 1]); } else if (STREQ (line, "installed=yes\n")) { *installed = 1; } else if (STREQ (line, "installed=no\n")) { *installed = 0; } #undef STR_LIBRARY_NAMES #define STR_LIBRARY_NAMES "library_names=" else if (!*dlname && strncmp (line, STR_LIBRARY_NAMES, sizeof (STR_LIBRARY_NAMES) - 1) == 0) { char *last_libname; errors += trim (dlname, &line[sizeof (STR_LIBRARY_NAMES) - 1]); if (!errors && *dlname && (last_libname = strrchr (*dlname, ' ')) != 0) { last_libname = lt__strdup (last_libname + 1); if (!last_libname) { ++errors; goto cleanup; } MEMREASSIGN (*dlname, last_libname); } } if (errors) break; } cleanup: FREE (line); return errors; } /* Try to open FILENAME as a module. */ static int try_dlopen (lt_dlhandle *phandle, const char *filename, const char *ext, lt_dladvise advise) { const char * saved_error = 0; char * archive_name = 0; char * canonical = 0; char * base_name = 0; char * dir = 0; char * name = 0; char * attempt = 0; int errors = 0; lt_dlhandle newhandle; assert (phandle); assert (*phandle == 0); #ifdef LT_DEBUG_LOADERS fprintf (stderr, "try_dlopen (%s, %s)\n", filename ? filename : "(null)", ext ? ext : "(null)"); #endif LT__GETERROR (saved_error); /* dlopen self? */ if (!filename) { *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); if (*phandle == 0) return 1; newhandle = *phandle; /* lt_dlclose()ing yourself is very bad! Disallow it. */ newhandle->info.is_resident = 1; if (tryall_dlopen (&newhandle, 0, advise, 0) != 0) { FREE (*phandle); return 1; } goto register_handle; } assert (filename && *filename); if (ext) { attempt = MALLOC (char, LT_STRLEN (filename) + LT_STRLEN (ext) + 1); if (!attempt) return 1; sprintf(attempt, "%s%s", filename, ext); } else { attempt = lt__strdup (filename); if (!attempt) return 1; } /* Doing this immediately allows internal functions to safely assume only canonicalized paths are passed. */ if (canonicalize_path (attempt, &canonical) != 0) { ++errors; goto cleanup; } /* If the canonical module name is a path (relative or absolute) then split it into a directory part and a name part. */ base_name = strrchr (canonical, '/'); if (base_name) { size_t dirlen = (1+ base_name) - canonical; dir = MALLOC (char, 1+ dirlen); if (!dir) { ++errors; goto cleanup; } strlcpy (dir, canonical, dirlen); dir[dirlen] = LT_EOS_CHAR; ++base_name; } else MEMREASSIGN (base_name, canonical); assert (base_name && *base_name); ext = strrchr (base_name, '.'); if (!ext) { ext = base_name + LT_STRLEN (base_name); } /* extract the module name from the file name */ name = MALLOC (char, ext - base_name + 1); if (!name) { ++errors; goto cleanup; } /* canonicalize the module name */ { int i; for (i = 0; i < ext - base_name; ++i) { if (isalnum ((unsigned char)(base_name[i]))) { name[i] = base_name[i]; } else { name[i] = '_'; } } name[ext - base_name] = LT_EOS_CHAR; } /* Before trawling through the file system in search of a module, check whether we are opening a preloaded module. */ if (!dir) { const lt_dlvtable *vtable = lt_dlloader_find ("lt_preopen"); if (vtable) { /* libprefix + name + "." + libext + NULL */ archive_name = MALLOC (char, strlen (libprefix) + LT_STRLEN (name) + strlen (libext) + 2); *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); if ((*phandle == NULL) || (archive_name == NULL)) { ++errors; goto cleanup; } newhandle = *phandle; /* Preloaded modules are always named according to their old archive name. */ if (strncmp(name, "lib", 3) == 0) { sprintf (archive_name, "%s%s.%s", libprefix, name + 3, libext); } else { sprintf (archive_name, "%s.%s", name, libext); } if (tryall_dlopen (&newhandle, archive_name, advise, vtable) == 0) { goto register_handle; } /* If we're still here, there was no matching preloaded module, so put things back as we found them, and continue searching. */ FREE (*phandle); newhandle = NULL; } } /* If we are allowing only preloaded modules, and we didn't find anything yet, give up on the search here. */ if (advise && advise->try_preload_only) { goto cleanup; } /* Check whether we are opening a libtool module (.la extension). */ if (ext && STREQ (ext, archive_ext)) { /* this seems to be a libtool module */ FILE * file = 0; char * dlname = 0; char * old_name = 0; char * libdir = 0; char * deplibs = 0; /* if we can't find the installed flag, it is probably an installed libtool archive, produced with an old version of libtool */ int installed = 1; /* Now try to open the .la file. If there is no directory name component, try to find it first in user_search_path and then other prescribed paths. Otherwise (or in any case if the module was not yet found) try opening just the module name as passed. */ if (!dir) { const char *search_path = user_search_path; if (search_path) file = find_file (user_search_path, base_name, &dir); if (!file) { search_path = getenv (LTDL_SEARCHPATH_VAR); if (search_path) file = find_file (search_path, base_name, &dir); } #if defined LT_MODULE_PATH_VAR if (!file) { search_path = getenv (LT_MODULE_PATH_VAR); if (search_path) file = find_file (search_path, base_name, &dir); } #endif #if defined LT_DLSEARCH_PATH if (!file && *sys_dlsearch_path) { file = find_file (sys_dlsearch_path, base_name, &dir); } #endif } else { file = fopen (attempt, LT_READTEXT_MODE); } /* If we didn't find the file by now, it really isn't there. Set the status flag, and bail out. */ if (!file) { LT__SETERROR (FILE_NOT_FOUND); ++errors; goto cleanup; } /* read the .la file */ if (parse_dotla_file(file, &dlname, &libdir, &deplibs, &old_name, &installed) != 0) ++errors; fclose (file); /* allocate the handle */ *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); if (*phandle == 0) ++errors; if (errors) { FREE (dlname); FREE (old_name); FREE (libdir); FREE (deplibs); FREE (*phandle); goto cleanup; } assert (*phandle); if (load_deplibs (*phandle, deplibs) == 0) { newhandle = *phandle; /* find_module may replace newhandle */ if (find_module (&newhandle, dir, libdir, dlname, old_name, installed, advise)) { unload_deplibs (*phandle); ++errors; } } else { ++errors; } FREE (dlname); FREE (old_name); FREE (libdir); FREE (deplibs); if (errors) { FREE (*phandle); goto cleanup; } if (*phandle != newhandle) { unload_deplibs (*phandle); } } else { /* not a libtool module */ *phandle = (lt_dlhandle) lt__zalloc (sizeof (struct lt__handle)); if (*phandle == 0) { ++errors; goto cleanup; } newhandle = *phandle; /* If the module has no directory name component, try to find it first in user_search_path and then other prescribed paths. Otherwise (or in any case if the module was not yet found) try opening just the module name as passed. */ if ((dir || (!find_handle (user_search_path, base_name, &newhandle, advise) && !find_handle (getenv (LTDL_SEARCHPATH_VAR), base_name, &newhandle, advise) #if defined LT_MODULE_PATH_VAR && !find_handle (getenv (LT_MODULE_PATH_VAR), base_name, &newhandle, advise) #endif #if defined LT_DLSEARCH_PATH && !find_handle (sys_dlsearch_path, base_name, &newhandle, advise) #endif ))) { if (tryall_dlopen (&newhandle, attempt, advise, 0) != 0) { newhandle = NULL; } } if (!newhandle) { FREE (*phandle); ++errors; goto cleanup; } } register_handle: MEMREASSIGN (*phandle, newhandle); if ((*phandle)->info.ref_count == 0) { (*phandle)->info.ref_count = 1; MEMREASSIGN ((*phandle)->info.name, name); (*phandle)->next = handles; handles = *phandle; } LT__SETERRORSTR (saved_error); cleanup: FREE (dir); FREE (attempt); FREE (name); if (!canonical) /* was MEMREASSIGNed */ FREE (base_name); FREE (canonical); FREE (archive_name); return errors; } /* If the last error message stored was 'FILE_NOT_FOUND', then return non-zero. */ static int file_not_found (void) { const char *error = 0; LT__GETERROR (error); if (error == LT__STRERROR (FILE_NOT_FOUND)) return 1; return 0; } /* Unless FILENAME already bears a suitable library extension, then return 0. */ static int has_library_ext (const char *filename) { const char * ext = 0; assert (filename); ext = strrchr (filename, '.'); if (ext && ((STREQ (ext, archive_ext)) #if defined LT_MODULE_EXT || (STREQ (ext, shlib_ext)) #endif #if defined LT_SHARED_EXT || (STREQ (ext, shared_ext)) #endif )) { return 1; } return 0; } /* Initialise and configure a user lt_dladvise opaque object. */ int lt_dladvise_init (lt_dladvise *padvise) { lt_dladvise advise = (lt_dladvise) lt__zalloc (sizeof (struct lt__advise)); *padvise = advise; return (advise ? 0 : 1); } int lt_dladvise_destroy (lt_dladvise *padvise) { if (padvise) FREE(*padvise); return 0; } int lt_dladvise_ext (lt_dladvise *padvise) { assert (padvise && *padvise); (*padvise)->try_ext = 1; return 0; } int lt_dladvise_resident (lt_dladvise *padvise) { assert (padvise && *padvise); (*padvise)->is_resident = 1; return 0; } int lt_dladvise_local (lt_dladvise *padvise) { assert (padvise && *padvise); (*padvise)->is_symlocal = 1; return 0; } int lt_dladvise_global (lt_dladvise *padvise) { assert (padvise && *padvise); (*padvise)->is_symglobal = 1; return 0; } int lt_dladvise_preload (lt_dladvise *padvise) { assert (padvise && *padvise); (*padvise)->try_preload_only = 1; return 0; } /* Libtool-1.5.x interface for loading a new module named FILENAME. */ lt_dlhandle lt_dlopen (const char *filename) { return lt_dlopenadvise (filename, NULL); } /* If FILENAME has an ARCHIVE_EXT or MODULE_EXT extension, try to open the FILENAME as passed. Otherwise try appending ARCHIVE_EXT, and if a file is still not found try again with MODULE_EXT appended instead. */ lt_dlhandle lt_dlopenext (const char *filename) { lt_dlhandle handle = 0; lt_dladvise advise; if (!lt_dladvise_init (&advise) && !lt_dladvise_ext (&advise)) handle = lt_dlopenadvise (filename, advise); lt_dladvise_destroy (&advise); return handle; } lt_dlhandle lt_dlopenadvise (const char *filename, lt_dladvise advise) { lt_dlhandle handle = 0; int errors = 0; const char * saved_error = 0; LT__GETERROR (saved_error); /* Can't have symbols hidden and visible at the same time! */ if (advise && advise->is_symlocal && advise->is_symglobal) { LT__SETERROR (CONFLICTING_FLAGS); return 0; } if (!filename || !advise || !advise->try_ext || has_library_ext (filename)) { /* Just incase we missed a code path in try_dlopen() that reports an error, but forgot to reset handle... */ if (try_dlopen (&handle, filename, NULL, advise) != 0) return 0; return handle; } else if (filename && *filename) { /* First try appending ARCHIVE_EXT. */ errors += try_dlopen (&handle, filename, archive_ext, advise); /* If we found FILENAME, stop searching -- whether we were able to load the file as a module or not. If the file exists but loading failed, it is better to return an error message here than to report FILE_NOT_FOUND when the alternatives (foo.so etc) are not in the module search path. */ if (handle || ((errors > 0) && !file_not_found ())) return handle; #if defined LT_MODULE_EXT /* Try appending SHLIB_EXT. */ LT__SETERRORSTR (saved_error); errors = try_dlopen (&handle, filename, shlib_ext, advise); /* As before, if the file was found but loading failed, return now with the current error message. */ if (handle || ((errors > 0) && !file_not_found ())) return handle; #endif #if defined LT_SHARED_EXT /* Try appending SHARED_EXT. */ LT__SETERRORSTR (saved_error); errors = try_dlopen (&handle, filename, shared_ext, advise); /* As before, if the file was found but loading failed, return now with the current error message. */ if (handle || ((errors > 0) && !file_not_found ())) return handle; #endif } /* Still here? Then we really did fail to locate any of the file names we tried. */ LT__SETERROR (FILE_NOT_FOUND); return 0; } static int lt_argz_insert (char **pargz, size_t *pargz_len, char *before, const char *entry) { error_t error; /* Prior to Sep 8, 2005, newlib had a bug where argz_insert(pargz, pargz_len, NULL, entry) failed with EINVAL. */ if (before) error = argz_insert (pargz, pargz_len, before, entry); else error = argz_append (pargz, pargz_len, entry, 1 + strlen (entry)); if (error) { switch (error) { case ENOMEM: LT__SETERROR (NO_MEMORY); break; default: LT__SETERROR (UNKNOWN); break; } return 1; } return 0; } static int lt_argz_insertinorder (char **pargz, size_t *pargz_len, const char *entry) { char *before = 0; assert (pargz); assert (pargz_len); assert (entry && *entry); if (*pargz) while ((before = argz_next (*pargz, *pargz_len, before))) { int cmp = strcmp (entry, before); if (cmp < 0) break; if (cmp == 0) return 0; /* No duplicates! */ } return lt_argz_insert (pargz, pargz_len, before, entry); } static int lt_argz_insertdir (char **pargz, size_t *pargz_len, const char *dirnam, struct dirent *dp) { char *buf = 0; size_t buf_len = 0; char *end = 0; size_t end_offset = 0; size_t dir_len = 0; int errors = 0; assert (pargz); assert (pargz_len); assert (dp); dir_len = LT_STRLEN (dirnam); end = dp->d_name + D_NAMLEN(dp); /* Ignore version numbers. */ { char *p; for (p = end; p -1 > dp->d_name; --p) if (strchr (".0123456789", p[-1]) == 0) break; if (*p == '.') end = p; } /* Ignore filename extension. */ { char *p; for (p = end -1; p > dp->d_name; --p) if (*p == '.') { end = p; break; } } /* Prepend the directory name. */ end_offset = end - dp->d_name; buf_len = dir_len + 1+ end_offset; buf = MALLOC (char, 1+ buf_len); if (!buf) return ++errors; assert (buf); strcpy (buf, dirnam); strcat (buf, "/"); strncat (buf, dp->d_name, end_offset); buf[buf_len] = LT_EOS_CHAR; /* Try to insert (in order) into ARGZ/ARGZ_LEN. */ if (lt_argz_insertinorder (pargz, pargz_len, buf) != 0) ++errors; FREE (buf); return errors; } static int list_files_by_dir (const char *dirnam, char **pargz, size_t *pargz_len) { DIR *dirp = 0; int errors = 0; assert (dirnam && *dirnam); assert (pargz); assert (pargz_len); assert (dirnam[LT_STRLEN(dirnam) -1] != '/'); dirp = opendir (dirnam); if (dirp) { struct dirent *dp = 0; while ((dp = readdir (dirp))) if (dp->d_name[0] != '.') if (lt_argz_insertdir (pargz, pargz_len, dirnam, dp)) { ++errors; break; } closedir (dirp); } else ++errors; return errors; } /* If there are any files in DIRNAME, call the function passed in DATA1 (with the name of each file and DATA2 as arguments). */ static int foreachfile_callback (char *dirname, void *data1, void *data2) { file_worker_func *func = *(file_worker_func **) data1; int is_done = 0; char *argz = 0; size_t argz_len = 0; if (list_files_by_dir (dirname, &argz, &argz_len) != 0) goto cleanup; if (!argz) goto cleanup; { char *filename = 0; while ((filename = argz_next (argz, argz_len, filename))) if ((is_done = (*func) (filename, data2))) break; } cleanup: FREE (argz); return is_done; } /* Call FUNC for each unique extensionless file in SEARCH_PATH, along with DATA. The filenames passed to FUNC would be suitable for passing to lt_dlopenext. The extensions are stripped so that individual modules do not generate several entries (e.g. libfoo.la, libfoo.so, libfoo.so.1, libfoo.so.1.0.0). If SEARCH_PATH is NULL, then the same directories that lt_dlopen would search are examined. */ int lt_dlforeachfile (const char *search_path, int (*func) (const char *filename, void *data), void *data) { int is_done = 0; file_worker_func **fpptr = &func; if (search_path) { /* If a specific path was passed, search only the directories listed in it. */ is_done = foreach_dirinpath (search_path, 0, foreachfile_callback, fpptr, data); } else { /* Otherwise search the default paths. */ is_done = foreach_dirinpath (user_search_path, 0, foreachfile_callback, fpptr, data); if (!is_done) { is_done = foreach_dirinpath (getenv(LTDL_SEARCHPATH_VAR), 0, foreachfile_callback, fpptr, data); } #if defined LT_MODULE_PATH_VAR if (!is_done) { is_done = foreach_dirinpath (getenv(LT_MODULE_PATH_VAR), 0, foreachfile_callback, fpptr, data); } #endif #if defined LT_DLSEARCH_PATH if (!is_done && *sys_dlsearch_path) { is_done = foreach_dirinpath (sys_dlsearch_path, 0, foreachfile_callback, fpptr, data); } #endif } return is_done; } int lt_dlclose (lt_dlhandle handle) { lt_dlhandle cur, last; int errors = 0; /* check whether the handle is valid */ last = cur = handles; while (cur && handle != cur) { last = cur; cur = cur->next; } if (!cur) { LT__SETERROR (INVALID_HANDLE); ++errors; goto done; } cur = handle; cur->info.ref_count--; /* Note that even with resident modules, we must track the ref_count correctly incase the user decides to reset the residency flag later (even though the API makes no provision for that at the moment). */ if (cur->info.ref_count <= 0 && !LT_DLIS_RESIDENT (cur)) { lt_user_data data = cur->vtable->dlloader_data; if (cur != handles) { last->next = cur->next; } else { handles = cur->next; } errors += cur->vtable->module_close (data, cur->module); errors += unload_deplibs (handle); /* It is up to the callers to free the data itself. */ FREE (cur->interface_data); FREE (cur->info.filename); FREE (cur->info.name); FREE (cur); goto done; } if (LT_DLIS_RESIDENT (handle)) { LT__SETERROR (CLOSE_RESIDENT_MODULE); ++errors; } done: return errors; } void * lt_dlsym (lt_dlhandle place, const char *symbol) { size_t lensym; char lsym[LT_SYMBOL_LENGTH]; char *sym; void *address; lt_user_data data; lt_dlhandle handle; if (!place) { LT__SETERROR (INVALID_HANDLE); return 0; } handle = place; if (!symbol) { LT__SETERROR (SYMBOL_NOT_FOUND); return 0; } lensym = LT_STRLEN (symbol) + LT_STRLEN (handle->vtable->sym_prefix) + LT_STRLEN (handle->info.name); if (lensym + LT_SYMBOL_OVERHEAD < LT_SYMBOL_LENGTH) { sym = lsym; } else { sym = MALLOC (char, lensym + LT_SYMBOL_OVERHEAD + 1); if (!sym) { LT__SETERROR (BUFFER_OVERFLOW); return 0; } } data = handle->vtable->dlloader_data; if (handle->info.name) { const char *saved_error; LT__GETERROR (saved_error); /* this is a libtool module */ if (handle->vtable->sym_prefix) { strcpy(sym, handle->vtable->sym_prefix); strcat(sym, handle->info.name); } else { strcpy(sym, handle->info.name); } strcat(sym, "_LTX_"); strcat(sym, symbol); /* try "modulename_LTX_symbol" */ address = handle->vtable->find_sym (data, handle->module, sym); if (address) { if (sym != lsym) { FREE (sym); } return address; } LT__SETERRORSTR (saved_error); } /* otherwise try "symbol" */ if (handle->vtable->sym_prefix) { strcpy(sym, handle->vtable->sym_prefix); strcat(sym, symbol); } else { strcpy(sym, symbol); } address = handle->vtable->find_sym (data, handle->module, sym); if (sym != lsym) { FREE (sym); } return address; } const char * lt_dlerror (void) { const char *error; LT__GETERROR (error); LT__SETERRORSTR (0); return error; } static int lt_dlpath_insertdir (char **ppath, char *before, const char *dir) { int errors = 0; char *canonical = 0; char *argz = 0; size_t argz_len = 0; assert (ppath); assert (dir && *dir); if (canonicalize_path (dir, &canonical) != 0) { ++errors; goto cleanup; } assert (canonical && *canonical); /* If *PPATH is empty, set it to DIR. */ if (*ppath == 0) { assert (!before); /* BEFORE cannot be set without PPATH. */ assert (dir); /* Without DIR, don't call this function! */ *ppath = lt__strdup (dir); if (*ppath == 0) ++errors; goto cleanup; } assert (ppath && *ppath); if (argzize_path (*ppath, &argz, &argz_len) != 0) { ++errors; goto cleanup; } /* Convert BEFORE into an equivalent offset into ARGZ. This only works if *PPATH is already canonicalized, and hence does not change length with respect to ARGZ. We canonicalize each entry as it is added to the search path, and don't call this function with (uncanonicalized) user paths, so this is a fair assumption. */ if (before) { assert (*ppath <= before); assert ((int) (before - *ppath) <= (int) strlen (*ppath)); before = before - *ppath + argz; } if (lt_argz_insert (&argz, &argz_len, before, dir) != 0) { ++errors; goto cleanup; } argz_stringify (argz, argz_len, LT_PATHSEP_CHAR); MEMREASSIGN(*ppath, argz); cleanup: FREE (argz); FREE (canonical); return errors; } int lt_dladdsearchdir (const char *search_dir) { int errors = 0; if (search_dir && *search_dir) { if (lt_dlpath_insertdir (&user_search_path, 0, search_dir) != 0) ++errors; } return errors; } int lt_dlinsertsearchdir (const char *before, const char *search_dir) { int errors = 0; if (before) { if ((before < user_search_path) || (before >= user_search_path + LT_STRLEN (user_search_path))) { LT__SETERROR (INVALID_POSITION); return 1; } } if (search_dir && *search_dir) { if (lt_dlpath_insertdir (&user_search_path, (char *) before, search_dir) != 0) { ++errors; } } return errors; } int lt_dlsetsearchpath (const char *search_path) { int errors = 0; FREE (user_search_path); if (!search_path || !LT_STRLEN (search_path)) { return errors; } if (canonicalize_path (search_path, &user_search_path) != 0) ++errors; return errors; } const char * lt_dlgetsearchpath (void) { const char *saved_path; saved_path = user_search_path; return saved_path; } int lt_dlmakeresident (lt_dlhandle handle) { int errors = 0; if (!handle) { LT__SETERROR (INVALID_HANDLE); ++errors; } else { handle->info.is_resident = 1; } return errors; } int lt_dlisresident (lt_dlhandle handle) { if (!handle) { LT__SETERROR (INVALID_HANDLE); return -1; } return LT_DLIS_RESIDENT (handle); } /* --- MODULE INFORMATION --- */ typedef struct { char *id_string; lt_dlhandle_interface *iface; } lt__interface_id; lt_dlinterface_id lt_dlinterface_register (const char *id_string, lt_dlhandle_interface *iface) { lt__interface_id *interface_id = (lt__interface_id *) lt__malloc (sizeof *interface_id); /* If lt__malloc fails, it will LT__SETERROR (NO_MEMORY), which can then be detected with lt_dlerror() if we return 0. */ if (interface_id) { interface_id->id_string = lt__strdup (id_string); if (!interface_id->id_string) FREE (interface_id); else interface_id->iface = iface; } return (lt_dlinterface_id) interface_id; } void lt_dlinterface_free (lt_dlinterface_id key) { lt__interface_id *interface_id = (lt__interface_id *)key; FREE (interface_id->id_string); FREE (interface_id); } void * lt_dlcaller_set_data (lt_dlinterface_id key, lt_dlhandle handle, void *data) { int n_elements = 0; void *stale = (void *) 0; lt_dlhandle cur = handle; int i; if (cur->interface_data) while (cur->interface_data[n_elements].key) ++n_elements; for (i = 0; i < n_elements; ++i) { if (cur->interface_data[i].key == key) { stale = cur->interface_data[i].data; break; } } /* Ensure that there is enough room in this handle's interface_data array to accept a new element (and an empty end marker). */ if (i == n_elements) { lt_interface_data *temp = REALLOC (lt_interface_data, cur->interface_data, 2+ n_elements); if (!temp) { stale = 0; goto done; } cur->interface_data = temp; /* We only need this if we needed to allocate a new interface_data. */ cur->interface_data[i].key = key; cur->interface_data[1+ i].key = 0; } cur->interface_data[i].data = data; done: return stale; } void * lt_dlcaller_get_data (lt_dlinterface_id key, lt_dlhandle handle) { void *result = (void *) 0; lt_dlhandle cur = handle; /* Locate the index of the element with a matching KEY. */ if (cur->interface_data) { int i; for (i = 0; cur->interface_data[i].key; ++i) { if (cur->interface_data[i].key == key) { result = cur->interface_data[i].data; break; } } } return result; } const lt_dlinfo * lt_dlgetinfo (lt_dlhandle handle) { if (!handle) { LT__SETERROR (INVALID_HANDLE); return 0; } return &(handle->info); } lt_dlhandle lt_dlhandle_iterate (lt_dlinterface_id iface, lt_dlhandle place) { lt_dlhandle handle = place; lt__interface_id *iterator = (lt__interface_id *) iface; assert (iface); /* iface is a required argument */ if (!handle) handle = handles; else handle = handle->next; /* advance while the interface check fails */ while (handle && iterator->iface && ((*iterator->iface) (handle, iterator->id_string) != 0)) { handle = handle->next; } return handle; } lt_dlhandle lt_dlhandle_fetch (lt_dlinterface_id iface, const char *module_name) { lt_dlhandle handle = 0; assert (iface); /* iface is a required argument */ while ((handle = lt_dlhandle_iterate (iface, handle))) { lt_dlhandle cur = handle; if (cur && cur->info.name && STREQ (cur->info.name, module_name)) break; } return handle; } int lt_dlhandle_map (lt_dlinterface_id iface, int (*func) (lt_dlhandle handle, void *data), void *data) { lt__interface_id *iterator = (lt__interface_id *) iface; lt_dlhandle cur = handles; assert (iface); /* iface is a required argument */ while (cur) { int errorcode = 0; /* advance while the interface check fails */ while (cur && iterator->iface && ((*iterator->iface) (cur, iterator->id_string) != 0)) { cur = cur->next; } if ((errorcode = (*func) (cur, data)) != 0) return errorcode; } return 0; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/ltdl.h����������������������������������������������������������������������0000664�0000000�0000000�00000013115�13775351206�0016202�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* ltdl.h -- generic dlopen functions Copyright (C) 1998-2000, 2004-2005, 2007-2008, 2011-2015 Free Software Foundation, Inc. Written by Thomas Tanner, 1998 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* Only include this header file once. */ #if !defined LTDL_H #define LTDL_H 1 #include <libltdl/lt_system.h> #include <libltdl/lt_error.h> #include <libltdl/lt_dlloader.h> LT_BEGIN_C_DECLS /* LT_STRLEN can be used safely on NULL pointers. */ #define LT_STRLEN(s) (((s) && (s)[0]) ? strlen (s) : 0) /* --- DYNAMIC MODULE LOADING API --- */ typedef struct lt__handle *lt_dlhandle; /* A loaded module. */ /* Initialisation and finalisation functions for libltdl. */ LT_SCOPE int lt_dlinit (void); LT_SCOPE int lt_dlexit (void); /* Module search path manipulation. */ LT_SCOPE int lt_dladdsearchdir (const char *search_dir); LT_SCOPE int lt_dlinsertsearchdir (const char *before, const char *search_dir); LT_SCOPE int lt_dlsetsearchpath (const char *search_path); LT_SCOPE const char *lt_dlgetsearchpath (void); LT_SCOPE int lt_dlforeachfile ( const char *search_path, int (*func) (const char *filename, void *data), void *data); /* User module loading advisors. */ LT_SCOPE int lt_dladvise_init (lt_dladvise *advise); LT_SCOPE int lt_dladvise_destroy (lt_dladvise *advise); LT_SCOPE int lt_dladvise_ext (lt_dladvise *advise); LT_SCOPE int lt_dladvise_resident (lt_dladvise *advise); LT_SCOPE int lt_dladvise_local (lt_dladvise *advise); LT_SCOPE int lt_dladvise_global (lt_dladvise *advise); LT_SCOPE int lt_dladvise_preload (lt_dladvise *advise); /* Portable libltdl versions of the system dlopen() API. */ LT_SCOPE lt_dlhandle lt_dlopen (const char *filename); LT_SCOPE lt_dlhandle lt_dlopenext (const char *filename); LT_SCOPE lt_dlhandle lt_dlopenadvise (const char *filename, lt_dladvise advise); LT_SCOPE void * lt_dlsym (lt_dlhandle handle, const char *name); LT_SCOPE const char *lt_dlerror (void); LT_SCOPE int lt_dlclose (lt_dlhandle handle); /* --- PRELOADED MODULE SUPPORT --- */ /* A preopened symbol. Arrays of this type comprise the exported symbols for a dlpreopened module. */ typedef struct { const char *name; void *address; } lt_dlsymlist; typedef int lt_dlpreload_callback_func (lt_dlhandle handle); LT_SCOPE int lt_dlpreload (const lt_dlsymlist *preloaded); LT_SCOPE int lt_dlpreload_default (const lt_dlsymlist *preloaded); LT_SCOPE int lt_dlpreload_open (const char *originator, lt_dlpreload_callback_func *func); #define lt_preloaded_symbols lt__PROGRAM__LTX_preloaded_symbols /* Ensure C linkage. */ extern LT_DLSYM_CONST lt_dlsymlist lt__PROGRAM__LTX_preloaded_symbols[]; #define LTDL_SET_PRELOADED_SYMBOLS() \ lt_dlpreload_default(lt_preloaded_symbols) /* --- MODULE INFORMATION --- */ /* Associating user data with loaded modules. */ typedef void * lt_dlinterface_id; typedef int lt_dlhandle_interface (lt_dlhandle handle, const char *id_string); LT_SCOPE lt_dlinterface_id lt_dlinterface_register (const char *id_string, lt_dlhandle_interface *iface); LT_SCOPE void lt_dlinterface_free (lt_dlinterface_id key); LT_SCOPE void * lt_dlcaller_set_data (lt_dlinterface_id key, lt_dlhandle handle, void *data); LT_SCOPE void * lt_dlcaller_get_data (lt_dlinterface_id key, lt_dlhandle handle); /* Read only information pertaining to a loaded module. */ typedef struct { char * filename; /* file name */ char * name; /* module name */ int ref_count; /* number of times lt_dlopened minus number of times lt_dlclosed. */ unsigned int is_resident:1; /* module can't be unloaded. */ unsigned int is_symglobal:1; /* module symbols can satisfy subsequently loaded modules. */ unsigned int is_symlocal:1; /* module symbols are only available locally. */ } lt_dlinfo; LT_SCOPE const lt_dlinfo *lt_dlgetinfo (lt_dlhandle handle); LT_SCOPE lt_dlhandle lt_dlhandle_iterate (lt_dlinterface_id iface, lt_dlhandle place); LT_SCOPE lt_dlhandle lt_dlhandle_fetch (lt_dlinterface_id iface, const char *module_name); LT_SCOPE int lt_dlhandle_map (lt_dlinterface_id iface, int (*func) (lt_dlhandle handle, void *data), void *data); /* Deprecated module residency management API. */ LT_SCOPE int lt_dlmakeresident (lt_dlhandle handle); LT_SCOPE int lt_dlisresident (lt_dlhandle handle); #define lt_ptr void * LT_END_C_DECLS #endif /*!defined LTDL_H*/ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libltdl/slist.c���������������������������������������������������������������������0000664�0000000�0000000�00000023146�13775351206�0016401�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* slist.c -- generalised singly linked lists Copyright (C) 2000, 2004, 2007-2009, 2011-2015 Free Software Foundation, Inc. Written by Gary V. Vaughan, 2000 NOTE: The canonical source of this file is maintained with the GNU Libtool package. Report bugs to bug-libtool@gnu.org. GNU Libltdl is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. As a special exception to the GNU Lesser General Public License, if you distribute this file as part of a program or library that is built using GNU Libtool, you may include this file under the same distribution terms that you use for the rest of that program. GNU Libltdl 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GNU Libltdl; see the file COPYING.LIB. If not, a copy can be downloaded from http://www.gnu.org/licenses/lgpl.html, or obtained by writing to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include <assert.h> #include "slist.h" #include <stdlib.h> static SList * slist_sort_merge (SList *left, SList *right, SListCompare *compare, void *userdata); /* Call DELETE repeatedly on each element of HEAD. CAVEAT: If you call this when HEAD is the start of a list of boxed items, you must remember that each item passed back to your DELETE function will be a boxed item that must be slist_unbox()ed before operating on its contents. e.g. void boxed_delete (void *item) { item_free (slist_unbox (item)); } ... slist = slist_delete (slist, boxed_delete); ... */ SList * slist_delete (SList *head, void (*delete_fct) (void *item)) { assert (delete_fct); while (head) { SList *next = head->next; (*delete_fct) (head); head = next; } return 0; } /* Call FIND repeatedly with MATCHDATA and each item of *PHEAD, until FIND returns non-NULL, or the list is exhausted. If a match is found the matching item is destructively removed from *PHEAD, and the value returned by the matching call to FIND is returned. CAVEAT: To avoid memory leaks, unless you already have the address of the stale item, you should probably return that from FIND if it makes a successful match. Don't forget to slist_unbox() every item in a boxed list before operating on its contents. */ SList * slist_remove (SList **phead, SListCallback *find, void *matchdata) { SList *stale = 0; void *result = 0; assert (find); if (!phead || !*phead) return 0; /* Does the head of the passed list match? */ result = (*find) (*phead, matchdata); if (result) { stale = *phead; *phead = stale->next; } /* what about the rest of the elements? */ else { SList *head; for (head = *phead; head->next; head = head->next) { result = (*find) (head->next, matchdata); if (result) { stale = head->next; head->next = stale->next; break; } } } return (SList *) result; } /* Call FIND repeatedly with each element of SLIST and MATCHDATA, until FIND returns non-NULL, or the list is exhausted. If a match is found the value returned by the matching call to FIND is returned. */ void * slist_find (SList *slist, SListCallback *find, void *matchdata) { void *result = 0; assert (find); for (; slist; slist = slist->next) { result = (*find) (slist, matchdata); if (result) break; } return result; } /* Return a single list, composed by destructively concatenating the items in HEAD and TAIL. The values of HEAD and TAIL are undefined after calling this function. CAVEAT: Don't mix boxed and unboxed items in a single list. e.g. slist1 = slist_concat (slist1, slist2); */ SList * slist_concat (SList *head, SList *tail) { SList *last; if (!head) { return tail; } last = head; while (last->next) last = last->next; last->next = tail; return head; } /* Return a single list, composed by destructively appending all of the items in SLIST to ITEM. The values of ITEM and SLIST are undefined after calling this function. CAVEAT: Don't mix boxed and unboxed items in a single list. e.g. slist1 = slist_cons (slist_box (data), slist1); */ SList * slist_cons (SList *item, SList *slist) { if (!item) { return slist; } assert (!item->next); item->next = slist; return item; } /* Return a list starting at the second item of SLIST. */ SList * slist_tail (SList *slist) { return slist ? slist->next : NULL; } /* Return a list starting at the Nth item of SLIST. If SLIST is less than N items long, NULL is returned. Just to be confusing, list items are counted from 1, to get the 2nd element of slist: e.g. shared_list = slist_nth (slist, 2); */ SList * slist_nth (SList *slist, size_t n) { for (;n > 1 && slist; n--) slist = slist->next; return slist; } /* Return the number of items in SLIST. We start counting from 1, so the length of a list with no items is 0, and so on. */ size_t slist_length (SList *slist) { size_t n; for (n = 0; slist; ++n) slist = slist->next; return n; } /* Destructively reverse the order of items in SLIST. The value of SLIST is undefined after calling this function. CAVEAT: You must store the result of this function, or you might not be able to get all the items except the first one back again. e.g. slist = slist_reverse (slist); */ SList * slist_reverse (SList *slist) { SList *result = 0; SList *next; while (slist) { next = slist->next; slist->next = result; result = slist; slist = next; } return result; } /* Call FOREACH once for each item in SLIST, passing both the item and USERDATA on each call. */ void * slist_foreach (SList *slist, SListCallback *foreach, void *userdata) { void *result = 0; assert (foreach); while (slist) { SList *next = slist->next; result = (*foreach) (slist, userdata); if (result) break; slist = next; } return result; } /* Destructively merge the items of two ordered lists LEFT and RIGHT, returning a single sorted list containing the items of both -- Part of the quicksort algorithm. The values of LEFT and RIGHT are undefined after calling this function. At each iteration, add another item to the merged list by taking the lowest valued item from the head of either LEFT or RIGHT, determined by passing those items and USERDATA to COMPARE. COMPARE should return less than 0 if the head of LEFT has the lower value, greater than 0 if the head of RIGHT has the lower value, otherwise 0. */ static SList * slist_sort_merge (SList *left, SList *right, SListCompare *compare, void *userdata) { SList merged, *insert; insert = &merged; while (left && right) { if ((*compare) (left, right, userdata) <= 0) { insert = insert->next = left; left = left->next; } else { insert = insert->next = right; right = right->next; } } insert->next = left ? left : right; return merged.next; } /* Perform a destructive quicksort on the items in SLIST, by repeatedly calling COMPARE with a pair of items from SLIST along with USERDATA at every iteration. COMPARE is a function as defined above for slist_sort_merge(). The value of SLIST is undefined after calling this function. e.g. slist = slist_sort (slist, compare, 0); */ SList * slist_sort (SList *slist, SListCompare *compare, void *userdata) { SList *left, *right; if (!slist) return slist; /* Be sure that LEFT and RIGHT never contain the same item. */ left = slist; right = slist->next; if (!right) return left; /* Skip two items with RIGHT and one with SLIST, until RIGHT falls off the end. SLIST must be about half way along. */ while (right && (right = right->next)) { if (!right || !(right = right->next)) break; slist = slist->next; } right = slist->next; slist->next = 0; /* Sort LEFT and RIGHT, then merge the two. */ return slist_sort_merge (slist_sort (left, compare, userdata), slist_sort (right, compare, userdata), compare, userdata); } /* Aside from using the functions above to manage chained structures of any type that has a NEXT pointer as its first field, SLISTs can be comprised of boxed items. The boxes are chained together in that case, so there is no need for a NEXT field in the item proper. Some care must be taken to slist_box and slist_unbox each item in a boxed list at the appropriate points to avoid leaking the memory used for the boxes. It us usually a very bad idea to mix boxed and non-boxed items in a single list. */ /* Return a 'boxed' freshly mallocated 1 element list containing USERDATA. */ SList * slist_box (const void *userdata) { SList *item = (SList *) malloc (sizeof *item); if (item) { item->next = 0; item->userdata = userdata; } return item; } /* Return the contents of a 'boxed' ITEM, recycling the box itself. */ void * slist_unbox (SList *item) { void *userdata = 0; if (item) { /* Strip the const, because responsibility for this memory passes to the caller on return. */ userdata = (void *) item->userdata; free (item); } return userdata; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtstl/����������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015120�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtstl/Makefile.am�����������������������������������������������������������������0000664�0000000�0000000�00000000265�13775351206�0017157�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������lib_LTLIBRARIES = libtstl.la libtstl_la_SOURCES = alloc.cpp err.cpp string.cpp utf8.cpp libtstl_la_LDFLAGS = -version-info 1:0:0 -no-undefined AM_CPPFLAGS=-I$(top_srcdir)/include �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtstl/Makefile.in�����������������������������������������������������������������0000664�0000000�0000000�00000055050�13775351206�0017172�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libs/libtstl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libtstl_la_LIBADD = am_libtstl_la_OBJECTS = alloc.lo err.lo string.lo utf8.lo libtstl_la_OBJECTS = $(am_libtstl_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libtstl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libtstl_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/alloc.Plo ./$(DEPDIR)/err.Plo \ ./$(DEPDIR)/string.Plo ./$(DEPDIR)/utf8.Plo am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(libtstl_la_SOURCES) DIST_SOURCES = $(libtstl_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/admin/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ lib_LTLIBRARIES = libtstl.la libtstl_la_SOURCES = alloc.cpp err.cpp string.cpp utf8.cpp libtstl_la_LDFLAGS = -version-info 1:0:0 -no-undefined AM_CPPFLAGS = -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libs/libtstl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libs/libtstl/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libtstl.la: $(libtstl_la_OBJECTS) $(libtstl_la_DEPENDENCIES) $(EXTRA_libtstl_la_DEPENDENCIES) $(AM_V_CXXLD)$(libtstl_la_LINK) -rpath $(libdir) $(libtstl_la_OBJECTS) $(libtstl_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/err.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/string.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utf8.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/alloc.Plo -rm -f ./$(DEPDIR)/err.Plo -rm -f ./$(DEPDIR)/string.Plo -rm -f ./$(DEPDIR)/utf8.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/alloc.Plo -rm -f ./$(DEPDIR)/err.Plo -rm -f ./$(DEPDIR)/string.Plo -rm -f ./$(DEPDIR)/utf8.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtstl/alloc.cpp�������������������������������������������������������������������0000664�0000000�0000000�00000003150�13775351206�0016715�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * alloc.cpp -- wrappers around malloc() / realloc() / free() * * Copyright (C) 1999-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "stl/alloc.h" #include "stl/err.h" #include <stdlib.h> #include <string.h> void *AllocMem(size_t len) { void *ret = NULL; if (len && !(ret = malloc(len))) Error(NOMEMORY); return ret; } void *ReAllocMem(void *addr, size_t len) { void *ret; if (addr) { if (len) { ret = realloc(addr, len); /* cannot use AllocMem() + CopyMem() here: we don't know mem current size */ } else { FreeMem(addr); ret = NULL; } } else ret = AllocMem(len); return ret; } void FreeMem(void *addr) { if (addr) { free(addr); } } void *AllocMem0(size_t len) { void *ret = NULL; if (len && !(ret = calloc(1, len))) Error(NOMEMORY); return ret; } void *ReAllocMem0(void *addr, size_t old_len, size_t new_len) { void *ret; if (addr) { if (new_len) { if ((ret = realloc(addr, new_len))) { if (new_len > old_len) memset((char *)ret + old_len, '\0', new_len - old_len); } else if ((ret = AllocMem0(new_len))) { size_t min_len = old_len < new_len ? old_len : new_len; memcpy(ret, addr, min_len); FreeMem(addr); } } else { FreeMem(addr); ret = NULL; } } else ret = AllocMem0(new_len); return ret; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtstl/err.cpp���������������������������������������������������������������������0000664�0000000�0000000�00000001510�13775351206�0016411�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * err.cpp -- wrappers around errno / strerror() * * Copyright (C) 1999-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "stl/err.h" #include "twautoconf.h" #include <errno.h> #ifdef TW_HAVE_STRING_H #include <string.h> #else char *strerror(int errnum); #endif errnum Err; const char *Errstr; bool Error(errnum err) { switch ((Err = err)) { case NOMEMORY: Errstr = "Out of memory!"; break; case NOTABLES: Errstr = "Internal tables full!"; break; case SYSERROR: Errstr = strerror(errno); break; default: break; } return false; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtstl/string.cpp������������������������������������������������������������������0000664�0000000�0000000�00000001104�13775351206�0017126�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "stl/string.h" bool String::append(View<trune> runes) { const size_t oldsize = size(); bool ok = true; for (size_t i = 0, n = runes.size(); ok && i < n; i++) { ok = append(Utf8(runes[i])); } if (!ok) { resize(oldsize); } return ok; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtstl/utf8.cpp��������������������������������������������������������������������0000664�0000000�0000000�00000006734�13775351206�0016524�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "stl/utf8.h" #include "stl/view.h" #include "twautoconf.h" /* for TW_HAVE* macros */ #ifdef TW_HAVE_ARPA_INET_H #include <arpa/inet.h> // htonl() #endif // convert Unicode codepoint 'rune' from UTF-32 to UTF-8 Utf8::seq Utf8::to_utf8(trune rune) { // replacement character is \uFFFD const seq replacement = {"\xEF\xBF\xBD"}; seq x = {}; if (rune <= 0x7F) { x.b[0] = (char)rune; } else if (rune <= 0x07FF) { x.b[0] = 0xC0 | (rune >> 6); x.b[1] = 0x80 | (rune & 0x3F); } else if (rune <= 0xFFFF) { if (rune == 0xFFFE || rune == 0xFFFF || (rune >= 0xD800 && rune <= 0xDFFF)) { x.val = replacement.val; } else { x.b[0] = 0xE0 | (rune >> 12); x.b[1] = 0x80 | ((rune >> 6) & 0x3F); x.b[2] = 0x80 | (rune & 0x3F); } } else if (rune <= 0x10FFFF) { x.b[0] = 0xF0 | (rune >> 18); x.b[1] = 0x80 | ((rune >> 12) & 0x3F); x.b[2] = 0x80 | ((rune >> 6) & 0x3F); x.b[3] = 0x80 | (rune & 0x3F); } else { x.val = replacement.val; } return x; } trune Utf8::to_rune(seq x) { trune rune; if (x.b[1] == 0) { rune = x.b[0]; } else if (x.b[2] == 0) { rune = ((trune)(x.b[0] & 0x1F) << 6) | (x.b[1] & 0x3F); } else if (x.b[3] == 0) { rune = ((trune)(x.b[0] & 0xF) << 12) | ((trune)(x.b[1] & 0x3F) << 6) | (x.b[2] & 0x3F); } else { rune = ((trune)(x.b[0] & 0x7) << 18) | ((trune)(x.b[1] & 0x3F) << 12) | ((trune)(x.b[2] & 0x3F) << 6) | (x.b[3] & 0x3F); } return rune; } size_t Utf8::to_size(seq x) { size_t n; if (x.b[1] == 0) { n = 1; } else if (x.b[2] == 0) { n = 2; } else if (x.b[3] == 0) { n = 3; } else { n = 4; } return n; } View<char> Utf8::chars() const { return View<char>(u.b, to_size(u)); } // parse UTF-8 sequence from chars bool Utf8::parse(View<char> chars, View<char> *remaining) { const char *src = chars.data(); const size_t srcn = chars.size(); // replacement character is \uFFFD const seq replacement = {"\xEF\xBF\xBD"}; seq x = {}; uint8_t len = 0; bool ok = true; do { if (srcn == 0) { ok = false; break; } // copy first byte char ch = x.b[0] = src[0]; len = 1; if ((ch & 0xC0) == 0xC0) { const uint8_t max = srcn <= 4 ? srcn : 4; // copy up to three continuation bytes for (; len < max; len++) { if (((ch = src[len]) & 0xC0) != 0x80) { break; } x.b[len] = ch; } } ok = valid(x); } while (false); if (remaining) { *remaining = chars.view(len, srcn); } u.val = ok ? x.val : replacement.val; return ok; } bool Utf8::valid(seq x) { /* * the simplest and safest way to validate an UTF8 sequence * is converting it to UTF-32 and back to UTF-8, * then compare the two UTF-8 sequences. * * It catches: * 1. overlong UTF8 sequences * 2. UTF8 sequences that decode to invalid codepoints [0xDC00,0xDFFF] * 3. UTF8 sequences that decode to invalid codepoints [0xFFFE,0xFFFF] * 4. UTF8 sequences that decode to invalid codepoints > 0x10FFFF */ const trune rune = to_rune(x); const seq y = to_utf8(rune); return x.val == y.val; } bool Utf8::less(seq x, seq y) { return htonl(x.val) < htonl(y.val); } ������������������������������������twin-0.9.0/libs/libtutf/����������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015114�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtutf/Makefile.am�����������������������������������������������������������������0000664�0000000�0000000�00000000231�13775351206�0017144�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������lib_LTLIBRARIES = libtutf.la libtutf_la_SOURCES = libtutf.c libtutf_la_LDFLAGS = -version-info 1:0:0 -no-undefined AM_CPPFLAGS=-I$(top_srcdir)/include �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtutf/Makefile.in�����������������������������������������������������������������0000664�0000000�0000000�00000053624�13775351206�0017173�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libs/libtutf ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libtutf_la_LIBADD = am_libtutf_la_OBJECTS = libtutf.lo libtutf_la_OBJECTS = $(am_libtutf_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libtutf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libtutf_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/libtutf.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libtutf_la_SOURCES) DIST_SOURCES = $(libtutf_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/admin/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ lib_LTLIBRARIES = libtutf.la libtutf_la_SOURCES = libtutf.c libtutf_la_LDFLAGS = -version-info 1:0:0 -no-undefined AM_CPPFLAGS = -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libs/libtutf/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libs/libtutf/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libtutf.la: $(libtutf_la_OBJECTS) $(libtutf_la_DEPENDENCIES) $(EXTRA_libtutf_la_DEPENDENCIES) $(AM_V_CCLD)$(libtutf_la_LINK) -rpath $(libdir) $(libtutf_la_OBJECTS) $(libtutf_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtutf.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/libtutf.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libtutf.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtutf/ascii.c���������������������������������������������������������������������0000664�0000000�0000000�00000004134�13775351206�0016352�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002,2018 by Massimiliano Ghilardi * * 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. * */ trune T_CAT3(Tutf_, T_MAP(ASCII), _to_UTF_32)[0x100] = { #define EL(x) T_UTF(UTF_32, x), T_LIST(ASCII, EL) #undef EL }; trune T_CAT(Tutf_CP437_to_, T_MAP(ASCII))[0x100] = { ' ', 'O', 'O', 'v', '@', 'g', '!', '.', '.', 'o', 'o', 't', 'g', 'f', 'f', '*', '>', '<', '|', '!', 'q', 'S', '_', '|', '^', 'v', '>', '<', 'L', '-', '^', 'v', ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', '@', 'A', 'C', 'u', 'e', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'i', 'i', 'i', 'A', 'A', 'E', 'E', 'e', 'o', 'o', 'o', 'u', 'u', 'y', 'O', 'U', 'c', 'L', 'Y', 'P', 'f', 'a', 'o', 'u', 'n', 'N', 'a', 'o', '?', '-', '-', '%', '%', '!', '<', '>', '.', '*', '@', '|', '+', '+', '+', '+', '+', '+', '|', '+', '+', '+', '+', '+', '+', '+', '+', '+', '-', '+', '+', '+', '+', '+', '+', '+', '+', '=', '+', '+', '+', '+', '+', '+', '+', '+', '+', '+', '+', '+', '+', '#', '_', '[', ']', '"', 'a', 'B', 'c', 'p', 'S', 's', 'm', 't', 'P', 'H', 'W', 'd', '&', 'p', 'e', 'n', '=', '+', '>', '<', 'T', 'J', '/', '=', 'o', '.', '.', 'V', 'n', '2', '*', ' '}; trune T_CAT(Tutf_UTF_32_to_, T_MAP(ASCII))(trune c) { if (c < 0x20 /*' '*/ || c > 0x7E /*'~'*/) { /* not plain 7-bit ASCII, try to approximate */ c = T_CAT(Tutf_CP437_to_, T_MAP(ASCII))[Tutf_UTF_32_to_CP437(c)]; } /* else c = c; */ return c; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtutf/cp437.c���������������������������������������������������������������������0000664�0000000�0000000�00000002107�13775351206�0016120�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002,2018 by Massimiliano Ghilardi * * 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. * */ trune Tutf_CP437_to_UTF_32[0x100] = { #define EL(x) T_UTF(UTF_32, x), T_LIST(CP437, EL) #undef EL }; trune Tutf_UTF_32_to_CP437(trune c) { #define EL(x) +1 enum { n = T_NLIST(CP437, EL) + 1, /* +1 to manually map T_UTF_32_CHECK_MARK -> T_CP437_SQUARE_ROOT below */ n_power_of_2 = NEXT_POWER_OF_2(n) }; #undef EL static utf32_hash_table *table = NULL; /* Codepage 437 (VGA) obviously cannot contain all unicode chars. this is just a best effort. */ if (!table) { table = utf32_hash_create(Tutf_CP437_to_UTF_32, n, n_power_of_2); /* manually map T_UTF_32_CHECK_MARK -> T_CP437_SQUARE_ROOT */ utf32_hash_insert_at(table, n - 1, T_UTF_32_CHECK_MARK, T_CP437_SQUARE_ROOT); } return utf32_hash_search(table, c, ttrue); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtutf/cp865.c���������������������������������������������������������������������0000664�0000000�0000000�00000002107�13775351206�0016125�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002,2018 by Massimiliano Ghilardi * * 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. * */ trune Tutf_CP865_to_UTF_32[0x100] = { #define EL(x) T_UTF(UTF_32, x), T_LIST(CP865, EL) #undef EL }; trune Tutf_UTF_32_to_CP865(trune c) { #define EL(x) +1 enum { n = T_NLIST(CP865, EL) + 1, /* +1 to manually map T_UTF_32_CHECK_MARK -> T_CP865_SQUARE_ROOT below */ n_power_of_2 = NEXT_POWER_OF_2(n) }; #undef EL static utf32_hash_table *table = NULL; /* Codepage 865 (VGA) obviously cannot contain all unicode chars. this is just a best effort. */ if (!table) { table = utf32_hash_create(Tutf_CP865_to_UTF_32, n, n_power_of_2); /* manually map T_UTF_32_CHECK_MARK -> T_CP865_SQUARE_ROOT */ utf32_hash_insert_at(table, n - 1, T_UTF_32_CHECK_MARK, T_CP865_SQUARE_ROOT); } return utf32_hash_search(table, c, ttrue); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtutf/iso8859_1.c�����������������������������������������������������������������0000664�0000000�0000000�00000002005�13775351206�0016625�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002,2017-2018 by Massimiliano Ghilardi * * 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. * */ trune Tutf_ISO8859_1_to_UTF_32[0x100] = { #define EL(x) T_UTF(UTF_32, x), T_LIST(ISO8859_1, EL) #undef EL }; /* ISO8859_1 maps exactly to the first 256 elements of UTF-32... no need for a lookup table */ trune Tutf_UTF_32_to_ISO8859_1(trune utf32) { static trune cache_utf32; static byte cache_ch; if (utf32 == cache_utf32) return cache_ch; if (utf32 < 0x100 || /* ISO8859_1 maps exactly to the first 256 elements of UTF-32 */ (utf32 & ~0x00ff) == 0xf000) /* direct-to-font area */ { return utf32 & 0x00ff; } /* try to approximate going through UTF32 -> CP437 -> ASCII */ cache_utf32 = utf32; return cache_ch = Tutf_UTF_32_to_ASCII(utf32); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtutf/libtutf.c�������������������������������������������������������������������0000664�0000000�0000000�00000032761�13775351206�0016742�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * libtutf.c -- Unicode <-> charset conversion routines * * Copyright (C) 2001,2018 by Massimiliano Ghilardi * * 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 * */ #include <Tw/Twtypes.h> #include <Tutf/Tutf.h> #include <Tutf/Tutf_defs.h> #include "utf_hash.c" #include "ascii.c" /* hand-written */ #include "iso8859_1.c" /* hand-written */ #define TEMPLATE ISO8859_2 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_3 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_4 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_5 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_6 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_7 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_8 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_9 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_10 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_11 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_13 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_14 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_15 #include "template.c" #undef TEMPLATE #define TEMPLATE ISO8859_16 #include "template.c" #undef TEMPLATE #include "cp437.c" /* hand-tuned */ #include "cp865.c" /* hand-tuned */ #define TEMPLATE CP424 #include "template.c" #undef TEMPLATE #define TEMPLATE CP737 #include "template.c" #undef TEMPLATE #define TEMPLATE CP775 #include "template.c" #undef TEMPLATE #define TEMPLATE CP852 #include "template.c" #undef TEMPLATE #define TEMPLATE CP850 #include "template.c" #undef TEMPLATE #define TEMPLATE CP855 #include "template.c" #undef TEMPLATE #define TEMPLATE CP856 #include "template.c" #undef TEMPLATE #define TEMPLATE CP857 #include "template.c" #undef TEMPLATE #define TEMPLATE CP860 #include "template.c" #undef TEMPLATE #define TEMPLATE CP861 #include "template.c" #undef TEMPLATE #define TEMPLATE CP862 #include "template.c" #undef TEMPLATE #define TEMPLATE CP863 #include "template.c" #undef TEMPLATE #define TEMPLATE CP864 #include "template.c" #undef TEMPLATE #define TEMPLATE CP866 #include "template.c" #undef TEMPLATE #define TEMPLATE CP869 #include "template.c" #undef TEMPLATE #define TEMPLATE CP874 #include "template.c" #undef TEMPLATE #define TEMPLATE CP932 #include "template.c" #undef TEMPLATE #define TEMPLATE CP936 #include "template.c" #undef TEMPLATE #define TEMPLATE CP949 #include "template.c" #undef TEMPLATE #define TEMPLATE CP950 #include "template.c" #undef TEMPLATE #define TEMPLATE CP1006 #include "template.c" #undef TEMPLATE #define TEMPLATE CP1250 #include "template.c" #undef TEMPLATE #define TEMPLATE CP1251 #include "template.c" #undef TEMPLATE #define TEMPLATE CP1252 #include "template.c" #undef TEMPLATE #define TEMPLATE CP1253 #include "template.c" #undef TEMPLATE #define TEMPLATE CP1254 #include "template.c" #undef TEMPLATE #define TEMPLATE CP1255 #include "template.c" #undef TEMPLATE #define TEMPLATE CP1256 #include "template.c" #undef TEMPLATE #define TEMPLATE CP1257 #include "template.c" #undef TEMPLATE #define TEMPLATE CP1258 #include "template.c" #undef TEMPLATE #define TEMPLATE ADOBE_STDENC #include "template.c" #undef TEMPLATE #define TEMPLATE ADOBE_SYMBOL #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_ARABIC #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_CELTIC #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_CENTRALEUROPE #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_CROATIAN #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_CYRILLIC #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_DEVANAGARI #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_DINGBATS #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_FARSI #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_GAELIC #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_GREEK #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_GUJARATI #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_GURMUKHI #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_HEBREW #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_ICELANDIC #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_INUIT #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_ROMAN #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_ROMANIAN #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_SYMBOL #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_THAI #include "template.c" #undef TEMPLATE #define TEMPLATE MAC_TURKISH #include "template.c" #undef TEMPLATE #define TEMPLATE MS_MAC_CYRILLIC #include "template.c" #undef TEMPLATE #define TEMPLATE MS_MAC_GREEK #include "template.c" #undef TEMPLATE #define TEMPLATE MS_MAC_ICELANDIC #include "template.c" #undef TEMPLATE #define TEMPLATE MS_MAC_LATIN2 #include "template.c" #undef TEMPLATE #define TEMPLATE MS_MAC_ROMAN #include "template.c" #undef TEMPLATE #define TEMPLATE MS_MAC_TURKISH #include "template.c" #undef TEMPLATE #define TEMPLATE NEXTSTEP #include "template.c" #undef TEMPLATE #define TEMPLATE APL_ISO_IR_68 #include "template.c" #undef TEMPLATE #define TEMPLATE ATARIST #include "template.c" #undef TEMPLATE #define TEMPLATE JISX0201 #include "template.c" #undef TEMPLATE #define TEMPLATE HP_ROMAN8 #include "template.c" #undef TEMPLATE #define TEMPLATE KOI8_R #include "template.c" #undef TEMPLATE #define TEMPLATE KOI8_U #include "template.c" #undef TEMPLATE #define TEMPLATE KZ1048 #include "template.c" #undef TEMPLATE #define TEMPLATE VT100GR #define TEMPLATE_REDEFINES_ASCII #include "template.c" #undef TEMPLATE_REDEFINES_ASCII #undef TEMPLATE #define _NLIST(EL) \ EL(T_MAP(ASCII)) \ EL(T_MAP(ISO8859_1)) \ EL(T_MAP(ISO8859_2)) \ EL(T_MAP(ISO8859_3)) \ EL(T_MAP(ISO8859_4)) EL(T_MAP(ISO8859_5)) EL(T_MAP(ISO8859_6)) EL(T_MAP(ISO8859_7)) \ EL(T_MAP(ISO8859_8)) EL(T_MAP(ISO8859_9)) EL(T_MAP(ISO8859_10)) EL(T_MAP(ISO8859_11)) EL( \ T_MAP(ISO8859_13)) EL(T_MAP(ISO8859_14)) EL(T_MAP(ISO8859_15)) EL(T_MAP(ISO8859_16)) \ \ EL(T_MAP(CP424)) EL(T_MAP(CP437)) EL(T_MAP(CP737)) EL(T_MAP(CP775)) EL(T_MAP(CP850)) EL( \ T_MAP(CP852)) EL(T_MAP(CP855)) EL(T_MAP(CP856)) EL(T_MAP(CP857)) EL(T_MAP(CP860)) \ EL(T_MAP(CP861)) EL(T_MAP(CP862)) EL(T_MAP(CP863)) EL(T_MAP(CP864)) EL( \ T_MAP(CP865)) EL(T_MAP(CP866)) EL(T_MAP(CP869)) EL(T_MAP(CP874)) \ EL(T_MAP(CP932)) EL(T_MAP(CP936)) EL(T_MAP(CP949)) EL(T_MAP(CP950)) EL( \ T_MAP(CP1006)) EL(T_MAP(CP1250)) EL(T_MAP(CP1251)) EL(T_MAP(CP1252)) \ EL(T_MAP(CP1253)) EL(T_MAP(CP1254)) EL(T_MAP(CP1255)) EL(T_MAP(CP1256)) EL( \ T_MAP(CP1257)) EL(T_MAP(CP1258)) \ \ EL( \ T_MAP(ADOBE_STDENC)) EL(T_MAP(ADOBE_SYMBOL)) \ \ EL(T_MAP(MAC_ARABIC)) EL(T_MAP(MAC_CELTIC)) \ EL(T_MAP(MAC_CENTRALEUROPE)) EL(T_MAP(MAC_CROATIAN)) EL( \ T_MAP(MAC_CYRILLIC)) \ EL(T_MAP(MAC_DEVANAGARI)) EL(T_MAP(MAC_DINGBATS)) EL( \ T_MAP(MAC_FARSI)) EL(T_MAP(MAC_GAELIC)) \ EL(T_MAP(MAC_GREEK)) EL(T_MAP(MAC_GUJARATI)) EL( \ T_MAP(MAC_GURMUKHI)) EL(T_MAP(MAC_HEBREW)) \ EL(T_MAP(MAC_ICELANDIC)) EL(T_MAP(MAC_INUIT)) EL( \ T_MAP(MAC_ROMAN)) EL(T_MAP(MAC_ROMANIAN)) \ EL(T_MAP(MAC_SYMBOL)) EL(T_MAP(MAC_THAI)) EL( \ T_MAP(MAC_TURKISH)) \ \ EL(T_MAP(MS_MAC_CYRILLIC)) EL( \ T_MAP(MS_MAC_GREEK)) \ EL(T_MAP(MS_MAC_ICELANDIC)) EL( \ T_MAP(MS_MAC_LATIN2)) \ EL(T_MAP(MS_MAC_ROMAN)) EL( \ T_MAP(MS_MAC_TURKISH)) \ \ EL(T_MAP(APL_ISO_IR_68)) EL( \ T_MAP(ATARIST)) \ EL(T_MAP(JISX0201)) EL( \ T_MAP(HP_ROMAN8)) \ EL(T_MAP(KOI8_R)) EL( \ T_MAP(KOI8_U)) \ EL(T_MAP(KZ1048)) EL( \ T_MAP(NEXTSTEP)) \ EL(T_MAP( \ VT100GR)) #define _LIST(EL) EL(T_MAP(UTF_32)) _NLIST(EL) typedef enum { #define DECL_TYPE(x) T_CAT(T_ID_, x), _LIST(DECL_TYPE) #undef DECL_TYPE } id_e; #define DECL_NAME(ch) \ static char *T_CAT(names_, ch)[] = {T_CAT((char *)T_NAME_, ch), T_CAT((char *)T_ALIASES_, ch), \ NULL}; _LIST(DECL_NAME) #undef DECL_NAME typedef struct { char *TUTF_CONST *names; Tutf_array array; Tutf_function function; } Tutf_struct; #define DECL_CH(ch) {T_CAT(names_, ch), T_CAT3(Tutf_, ch, _to_UTF_32), T_CAT(Tutf_UTF_32_to_, ch)}, static Tutf_struct Tutf_structs[] = {{T_CAT(names_, UTF_32), NULL, NULL}, _NLIST(DECL_CH){NULL}}; #undef DECL_CH static int strloosecmp(TUTF_CONST char *s1, TUTF_CONST char *s2) { byte c1, c2; do { while ((c1 = *s1++) && (c1 == ' ' || c1 == '-' || c1 == '_' || c1 == '.' || c1 == ':')) ; while ((c2 = *s2++) && (c2 == ' ' || c2 == '-' || c2 == '_' || c2 == '.' || c2 == ':')) ; if (c1 >= 'A' && c1 <= 'Z') c1 += 'a' - 'A'; if (c2 >= 'A' && c2 <= 'Z') c2 += 'a' - 'A'; } while (c1 == c2 && c1 && c2); return (int)c1 - (int)c2; } uldat Tutf_charset_id(TUTF_CONST char *alias) { Tutf_struct *CH; char *TUTF_CONST *names; if (alias) for (CH = Tutf_structs; (names = CH->names); CH++) { for (; *names; names++) { if (!strloosecmp(alias, *names)) return (uldat)(CH - Tutf_structs); } } return (uldat)-1; } TUTF_CONST char *Tutf_charset_name(uldat id) { return id < sizeof(Tutf_structs) / sizeof(Tutf_structs[0]) ? Tutf_structs[id].names[0] : NULL; } TUTF_CONST char *Tutf_charset_alias(TUTF_CONST char *alias) { uldat id = Tutf_charset_id(alias); return id != (uldat)-1 ? Tutf_structs[id].names[0] : NULL; } /* return a function capable to translate from UTF_32 to given charset */ Tutf_function Tutf_UTF_32_to_charset_function(uldat id) { return id < sizeof(Tutf_structs) / sizeof(Tutf_structs[0]) ? Tutf_structs[id].function : NULL; } /* return the array to translate from given charset to UTF_32 */ Tutf_array Tutf_charset_to_UTF_32_array(uldat id) { return id < sizeof(Tutf_structs) / sizeof(Tutf_structs[0]) ? Tutf_structs[id].array : NULL; } ���������������twin-0.9.0/libs/libtutf/template.c������������������������������������������������������������������0000664�0000000�0000000�00000002127�13775351206�0017075�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #define T_TEMPLATE T_MAP(TEMPLATE) trune T_CAT3(Tutf_, T_TEMPLATE, _to_UTF_32)[0x100] = { #define EL(x) T_UTF(UTF_32, x), T_LIST(T_TEMPLATE, EL) #undef EL }; trune T_CAT(Tutf_UTF_32_to_, T_TEMPLATE)(trune c) { #define EL(x) +1 enum { n = T_NLIST(T_TEMPLATE, EL) + 0, /* +0 in case T_NLIST() expands to nothing */ n_power_of_2 = NEXT_POWER_OF_2(n) }; #undef EL static utf32_hash_table *table = NULL; /* a single 8-bit charset obviously cannot contain all unicode chars. this is just a best effort. */ if (!table) table = utf32_hash_create(T_CAT3(Tutf_, T_TEMPLATE, _to_UTF_32), n, n_power_of_2); #ifdef TEMPLATE_REDEFINES_ASCII return utf32_hash_search(table, c, tfalse); #else return utf32_hash_search(table, c, ttrue); #endif } #undef T_TEMPLATE �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtutf/utf_hash.c������������������������������������������������������������������0000664�0000000�0000000�00000012403�13775351206�0017061�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ typedef struct { byte utf32[3]; // actually store only 24 bits: Unicode needs slightly less than 21 bits byte ch; byte next; } utf32_hash_entry; typedef struct { TUTF_CONST trune *charset; /* charset -> utf32 conversion */ utf32_hash_entry *base; trune cache_utf32; udat n_power_of_2; byte cache_ch; byte index[1 /* actually n_power_of_2 */]; } utf32_hash_table; #define NEXT_POWER_OF_2(n) \ ((n) < 0 ? -1 \ : (n) <= 1 \ ? 1 \ : (n) <= 2 ? 2 \ : (n) <= 4 ? 4 \ : (n) <= 8 ? 8 \ : (n) <= 16 \ ? 16 \ : (n) <= 32 \ ? 32 \ : (n) <= 64 \ ? 64 \ : (n) <= 128 \ ? 128 \ : (n) <= 256 ? 256 : -1) TUTF_INLINE byte utf32_hash(trune h, udat mod_power_of_2) { return (h ^ (h >> 6) ^ (h >> 12) ^ (h >> 18)) & (mod_power_of_2 - 1); } TUTF_INLINE trune utf32_get(TW_CONST utf32_hash_entry *e) { return (trune)e->utf32[0] | ((trune)e->utf32[1] << 8) | ((trune)e->utf32[2] << 16); } TUTF_INLINE void utf32_set(utf32_hash_entry *e, trune utf32) { e->utf32[0] = utf32 & 0xFF; e->utf32[1] = (utf32 >> 8) & 0xFF; e->utf32[2] = (utf32 >> 16) & 0xFF; } static void utf32_hash_insert_at(utf32_hash_table *table, byte offset, trune utf32, byte ch) { if (table != NULL) { utf32_hash_entry *e = table->base + offset; byte hashkey = utf32_hash(utf32, table->n_power_of_2); utf32_set(e, utf32); e->ch = ch; e->next = table->index[hashkey]; /* either another entry with same hash, i.e. a collision, or zero */ table->index[hashkey] = offset; /* build a linked list as needed */ } } enum { alignment_mask = sizeof(void *) - 1 }; TUTF_INLINE void *align_address(void *address) { return (void *)(((size_t)address + alignment_mask) & ~(size_t)alignment_mask); } static utf32_hash_table *utf32_hash_create(TUTF_CONST trune charset[0x100], udat n, udat n_power_of_2) { utf32_hash_table *table = calloc(1, (sizeof(utf32_hash_table) + (n ? n : 1) * sizeof(utf32_hash_entry) /* ensure at least one utf32_hash_entry */ + (n_power_of_2 - 1) + alignment_mask) & ~(size_t)alignment_mask); if (table != NULL) { trune utf32; dat i; byte offset = 0; table->base = (utf32_hash_entry *)align_address(table->index + n_power_of_2); table->charset = charset; table->n_power_of_2 = n_power_of_2; for (i = 0; i < 0x100; i++) { if ((utf32 = charset[i]) == (udat)i) continue; utf32_hash_insert_at(table, offset, utf32, i); offset++; } /* cache has no 'not present' value... we must initialize it */ table->cache_utf32 = charset[table->cache_ch = ' ']; } return table; } static trune utf32_hash_search(utf32_hash_table *table, trune utf32, byte ascii_is_preserved) { if (table != NULL) { TUTF_CONST utf32_hash_entry *base, *e; byte ch, key0_visited; if (utf32 == table->cache_utf32) return table->cache_ch; if ((ascii_is_preserved && utf32 >= ' ' && utf32 <= '~') || (utf32 & ~0x00ff) == 0xf000 || /* direct-to-font area */ (utf32 < 0x100 && table->charset[utf32] == utf32)) /* does c have the same meaning in Unicode and this charset? */ { return utf32 & 0x00ff; } base = table->base; e = base + table->index[utf32_hash(utf32, table->n_power_of_2)]; key0_visited = tfalse; while (utf32_get(e) != utf32) { key0_visited |= e == base; e = base + e->next; if (e == base && key0_visited) { e = NULL; break; } } if (e) { ch = e->ch; } else if (table->charset != Tutf_CP437_to_UTF_32) { /* * try to approximate going through UTF_32 -> CP437 -> ASCII * cannot be used if table->charset == Tutf_CP437_to_UTF_32: we would get infinite recursion! */ ch = Tutf_UTF_32_to_ASCII(utf32); } else { ch = '?'; } table->cache_utf32 = utf32; table->cache_ch = ch; return ch; } return '?'; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014564�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/Makefile.am�������������������������������������������������������������������0000664�0000000�0000000�00000000324�13775351206�0016617�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������lib_LTLIBRARIES = libtw.la libtw_la_SOURCES = avl.c libtw.c md5.c missing.c util.c libtw_la_LDFLAGS = -version-info 1:0:0 -no-undefined libtw_la_LIBADD = $(LIBSOCK) $(LIBZ) AM_CPPFLAGS=-I$(top_srcdir)/include ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/Makefile.in�������������������������������������������������������������������0000664�0000000�0000000�00000055266�13775351206�0016647�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = libs/libtw ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libtw_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libtw_la_OBJECTS = avl.lo libtw.lo md5.lo missing.lo util.lo libtw_la_OBJECTS = $(am_libtw_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libtw_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libtw_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/avl.Plo ./$(DEPDIR)/libtw.Plo \ ./$(DEPDIR)/md5.Plo ./$(DEPDIR)/missing.Plo \ ./$(DEPDIR)/util.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libtw_la_SOURCES) DIST_SOURCES = $(libtw_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/admin/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ lib_LTLIBRARIES = libtw.la libtw_la_SOURCES = avl.c libtw.c md5.c missing.c util.c libtw_la_LDFLAGS = -version-info 1:0:0 -no-undefined libtw_la_LIBADD = $(LIBSOCK) $(LIBZ) AM_CPPFLAGS = -I$(top_srcdir)/include all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libs/libtw/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign libs/libtw/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libtw.la: $(libtw_la_OBJECTS) $(libtw_la_DEPENDENCIES) $(EXTRA_libtw_la_DEPENDENCIES) $(AM_V_CCLD)$(libtw_la_LINK) -rpath $(libdir) $(libtw_la_OBJECTS) $(libtw_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/avl.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtw.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/missing.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/avl.Plo -rm -f ./$(DEPDIR)/libtw.Plo -rm -f ./$(DEPDIR)/md5.Plo -rm -f ./$(DEPDIR)/missing.Plo -rm -f ./$(DEPDIR)/util.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/avl.Plo -rm -f ./$(DEPDIR)/libtw.Plo -rm -f ./$(DEPDIR)/md5.Plo -rm -f ./$(DEPDIR)/missing.Plo -rm -f ./$(DEPDIR)/util.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/avl.c�������������������������������������������������������������������������0000664�0000000�0000000�00000017760�13775351206�0015525�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * avl.c -- implementation of AVL balanced trees functions * * Copyright (C) 2001 by Massimiliano Ghilardi * * AVL (Adelson-Velskii and Landis) tree to speed up listener search * from O(n) to O(log n) based on code from linux kernel mm subsystem, * written by Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de>. * * 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. * */ #include <Tw/Tw.h> #include <Tw/Twavl.h> /* * Searching a node in a linear list is horribly slow. * Use an AVL (Adelson-Velskii and Landis) tree to speed up this search * from O(n) to O(log n), where n is the number of nodes. n is typically zero, * but may reach a few thousands if clients use listeners heavily. * Written by Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de> for the * linux kernel mm subsystem, then adapted to libtw by Massimiliano Ghilardi. */ tavl AVLFind(tavl_c key, tavl base, tavl_compare cmp) { uldat kkey = key->AVLkey; int _cmp; while (base) { if (kkey < base->AVLkey) base = base->AVLLeft; else if (kkey > base->AVLkey) base = base->AVLRight; else { _cmp = cmp(key, base); if (_cmp < 0) base = base->AVLLeft; else if (_cmp > 0) base = base->AVLRight; else break; } } return base; } TW_INLINE void AVL_Insert(tavl node, tavl Parent, tavl old, tavl *root) { if (Parent) { if (Parent->AVLLeft == old) Parent->AVLLeft = node; else Parent->AVLRight = node; } else if (root) *root = node; if (node) node->AVLParent = Parent; } #ifndef AVLHeightOf #define AVLHeightOf(node) (node ? node->AVLHeight : 0) #endif void AVLRebalance(tavl P /*base*/, tavl_compare cmp, tavl *root) { tavl L, R, PP; byte HL, HR; while (P) { L = P->AVLLeft; HL = AVLHeightOf(L); R = P->AVLRight; HR = AVLHeightOf(R); if (HL > HR + 1) { /* */ /* (P) */ /* / \ */ /* (L)n+2 n(R) */ /* */ tavl LL = L->AVLLeft, LR = L->AVLRight; byte HLR = AVLHeightOf(LR); if (AVLHeightOf(LL) >= HLR) { /* */ /* (P) (L)n+2|n+3 */ /* / \ / \ */ /* (L)n+2 n(R) --> (LL)n+1 n+1|n+2(P) */ /* / \ / \ */ /* (LL)n+1 n|n+1(LR) (LR)n|n+1 n(R) */ /* */ if ((P->AVLLeft = LR)) LR->AVLParent = P; L->AVLRight = P; AVL_Insert(L, (PP = P->AVLParent), P, root); P->AVLParent = L; L->AVLHeight = 1 + (P->AVLHeight = 1 + HLR); P = PP; } else { /* */ /* (P) (LR)n+2 */ /* / \ / \ */ /* (L)n+2 n(R) --> (L)n+1 n+1(P) */ /* / \ / \ / \ */ /* (LL)n n+1(LR) (LL)n X Y n(R) */ /* / \ */ /* X Y */ /* */ if ((P->AVLLeft = LR->AVLRight)) LR->AVLRight->AVLParent = P; LR->AVLRight = P; AVL_Insert(LR, (PP = P->AVLParent), P, root); P->AVLParent = LR; if ((L->AVLRight = LR->AVLLeft)) LR->AVLLeft->AVLParent = L; LR->AVLLeft = L; L->AVLParent = LR; L->AVLHeight = P->AVLHeight = HLR; LR->AVLHeight = HL; P = PP; } } else if (HL + 1 < HR) { /* similar to the above, just swap Left <--> Right sides */ tavl RR = R->AVLRight, RL = R->AVLLeft; byte HRL = AVLHeightOf(RL); if (AVLHeightOf(RR) >= HRL) { if ((P->AVLRight = RL)) RL->AVLParent = P; R->AVLLeft = P; AVL_Insert(R, (PP = P->AVLParent), P, root); P->AVLParent = R; R->AVLHeight = 1 + (P->AVLHeight = 1 + HRL); P = PP; } else { if ((P->AVLRight = RL->AVLLeft)) RL->AVLLeft->AVLParent = P; RL->AVLLeft = P; AVL_Insert(RL, (PP = P->AVLParent), P, root); P->AVLParent = RL; if ((R->AVLLeft = RL->AVLRight)) RL->AVLRight->AVLParent = R; RL->AVLRight = R; R->AVLParent = RL; R->AVLHeight = P->AVLHeight = HRL; RL->AVLHeight = HR; P = PP; } } else { HL = 1 + (HL > HR ? HL : HR); if (P->AVLHeight != HL) { P->AVLHeight = HL; P = P->AVLParent; } else break; } } } void AVLInsert(tavl L /*key*/, tavl P /*base*/, tavl_compare cmp, tavl *root) { uldat Lkey = L->AVLkey; uldat Ckey; tavl C = P; while (C) { P = C; Ckey = C->AVLkey; if (Lkey < Ckey || (Lkey == Ckey && cmp(L, P) < 0)) C = P->AVLLeft; else /* key >= Ckey */ C = P->AVLRight; } /* enter AVLRebalance() in a known state */ L->AVLLeft = L->AVLRight = NULL; L->AVLParent = P; L->AVLHeight = 1; if (P) { if (Lkey < Ckey || (Lkey == Ckey && cmp(L, P) < 0)) P->AVLLeft = L; else P->AVLRight = L; AVLRebalance(P, cmp, root); } else if (root) *root = L; } /* FIXME: this is not completely tested */ void AVLRemove(tavl P /*node*/, tavl_compare cmp, tavl *root) { tavl L, R, LC, RC, Y; byte HL, HR; L = LC = P->AVLLeft; R = RC = P->AVLRight; if (L && R) { while (LC && RC) { L = LC; LC = L->AVLRight; R = RC; RC = R->AVLLeft; } if (!LC) { /* */ /* P L */ /* / \ / \ */ /* X R X R */ /* . . */ /* . --> . */ /* L LC */ /* / */ /* LC */ /* */ LC = L->AVLLeft; if ((Y = L->AVLParent) == P) Y->AVLLeft = LC; else Y->AVLRight = LC; if (LC) LC->AVLParent = Y; AVL_Insert(L, P->AVLParent, P, root); if ((L->AVLRight = P->AVLRight)) L->AVLRight->AVLParent = L; if ((L->AVLLeft = P->AVLLeft)) L->AVLLeft->AVLParent = L; HL = AVLHeightOf(L->AVLLeft); HR = AVLHeightOf(L->AVLRight); L->AVLHeight = 1 + (HL > HR ? HL : HR); } else { /* similar to the above, just swap Left <--> Right sides */ RC = R->AVLRight; Y = R->AVLParent; if ((Y = L->AVLParent) == P) Y->AVLRight = RC; else Y->AVLLeft = RC; if (RC) RC->AVLParent = Y; AVL_Insert(R, P->AVLParent, P, root); if ((R->AVLLeft = P->AVLLeft)) R->AVLLeft->AVLParent = R; if ((R->AVLRight = P->AVLRight)) R->AVLRight->AVLParent = R; HR = AVLHeightOf(R->AVLRight); HL = AVLHeightOf(R->AVLLeft); R->AVLHeight = 1 + (HR > HL ? HR : HL); } } else AVL_Insert(R ? R : L, Y = P->AVLParent, P, root); AVLRebalance(Y, cmp, root); P->AVLParent = P->AVLLeft = P->AVLRight = NULL; } ����������������twin-0.9.0/libs/libtw/encode.h����������������������������������������������������������������������0000664�0000000�0000000�00000011360�13775351206�0016173�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* * encoding functions to serialize libtw call args in a buffer * that will be written in the socket connection to the server. */ /* * read (va_list va) and fill (tsfield a) * * let (tobj) fields decade into (uldat), * since from client side they are the same. */ TW_INLINE udat EncodeArgs(fn_order o, uldat *Space, va_list va, tsfield a) { TW_CONST char *Format = Functions[o].format + 1; uldat arglen, space; udat N; byte c, t, variable_return_type = tfalse; for (N = space = 0; (c = *Format++); N++, a++) { t = (byte)*Format++; if (t >= TWS_highest) /* * let (tobj) fields decade into (uldat), * since from client side they are the same . */ t = TWS_uldat; if (N) switch (c) { case '_': case 'x': space += Tw_MagicData[a->type = t]; a->TWS_field_scalar = va_arg(va, tany); break; case 'W': case 'Y': a->type = TWS_vec | TWS_vecW | t; arglen = va_arg(va, tany); if (!(a->TWS_field_vecV = (void *)(topaque)va_arg(va, tany))) arglen = 0; a->TWS_field_vecL = arglen; space += sizeof(topaque) + arglen; break; case 'V': case 'X': a->type = TWS_vec | t; space += a->TWS_field_vecL = va_arg(va, tany); a->TWS_field_vecV = (void *)(topaque)va_arg(va, tany); break; default: return (udat)-1; } else switch (c) { /* parse arg 0 (return value) */ case '_': case 'x': case 'v': a->type = t; a->label = Tw_MagicData[t]; /* sizeof(return type) */ break; case 'O': /* will be filled by last arg */ variable_return_type = ttrue; break; default: return (udat)-1; } } if (variable_return_type) { /* fill return type from first arg - which must be 'udat' */ if (N > 1 && a[-1].type == (TWS_vec | TWS_byte) && a[-1].TWS_field_vecL == 2) { Format = (TW_CONST char *)a[-1].TWS_field_vecV; switch ((byte)*Format++) { case '_': case 'x': case 'v': if ((t = (byte)*Format++) < TWS_highest) { a->type = t; a->label = Tw_MagicData[t]; /* sizeof(return type) */ break; } return (udat)-1; default: return (udat)-1; } } else return (udat)-1; } *Space = space; return N - 1; /* arg 0 is not a call argument */ } /* append (tsfield)a to the serialization buffer being constructed */ static byte *PushArg(byte *buf, tsfield a) { switch (a->type) { #define ENC_CASE(type) \ case TW_CAT(TWS_, type): { \ type tmp = (type)a->TWS_field_scalar; \ Push(buf, type, tmp); \ }; break ENC_CASE(byte); ENC_CASE(udat); #if 0 /* we never meet this here, as EncodeArgs() above turns (tobj) into (uldat) */ case TWS_tobj: /* FALLTHROUGH */ #endif ENC_CASE(uldat); ENC_CASE(tcolor); ENC_CASE(topaque); ENC_CASE(tany); ENC_CASE(trune); ENC_CASE(tcell); #undef ENC_CASE default: if (a->type & TWS_vec) { if (a->type & TWS_vecW) Push(buf, topaque, a->TWS_field_vecL); if (a->TWS_field_vecL) PushV(buf, a->TWS_field_vecL, a->TWS_field_vecV); } break; } return buf; } static void DecodeReply(byte *buf, tsfield a) { switch (a->type) { #define DEC_CASE(type) \ case TW_CAT(TWS_, type): { \ type tmp; \ Pop(buf, type, tmp); \ a->TWS_field_scalar = tmp; \ }; break DEC_CASE(byte); DEC_CASE(udat); #if 0 /* we never meet this here, as EncodeArgs() above turns (tobj) into (uldat) */ case TWS_tobj: /* FALLTHROUGH */ #endif DEC_CASE(uldat); DEC_CASE(tcolor); DEC_CASE(topaque); DEC_CASE(tany); DEC_CASE(trune); DEC_CASE(tcell); default: break; } } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/libtw.c�����������������������������������������������������������������������0000664�0000000�0000000�00000242407�13775351206�0016062�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * libtw.c -- implementation of libtw functions * * Copyright (C) 1999-2001 by Massimiliano Ghilardi * * AVL (Adelson-Velskii and Landis) tree to speed up listener search * from O(n) to O(log n) based on code from linux kernel mm subsystem, * written by Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de>. * * 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 * */ /* * Life is tricky... under SunOS hstrerror() is in an obscure library, so it gets disabled, * yet <netdb.h> has its prototype, so the #define hstrerror() in <Tw/missing.h> breaks it. * Solution: include <Tw/Tw.h> (pulls in <Tw/missing.h>) late, but still include * "twconfig.h" and <Tw/osincludes.h> early to pull in TW_HAVE_* and system headers * necessary to include <sys/socket.h> under FreeBSD. */ #include "twautoconf.h" /* for TW_HAVE* macros */ #include "twconfig.h" /* for CONF_* macros */ #include <Tw/osincludes.h> #ifdef TW_HAVE_SIGNAL_H #include <signal.h> #endif #ifdef TW_HAVE_SYS_STAT_H #include <sys/stat.h> #endif #ifdef TW_HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef TW_HAVE_FCNTL_H #include <fcntl.h> #endif #ifdef TW_HAVE_NETDB_H #include <netdb.h> #endif #ifdef TW_HAVE_NETINET_IN_H #include <netinet/in.h> #endif #ifdef TW_HAVE_SYS_UN_H #include <sys/un.h> #endif #ifdef TW_HAVE_ARPA_INET_H #include <arpa/inet.h> #endif #ifdef TW_HAVE_ZLIB_H #include <zlib.h> #endif #ifdef TW_HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif #include <Tw/Tw.h> #include <Tw/Twavl.h> #include <Tw/Twerrno.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include "mutex.h" #ifdef CONF_SOCKET_PTHREADS TH_R_MUTEX_HELPER_DEFS(static); #endif #include "md5.h" #include "unaligned.h" #include "util.h" #include "version.h" /* remove the `Obj' suffix from Tw_ChangeFieldObj() */ #define Tw_ChangeFieldObj Tw_ChangeField #define Min2(a, b) ((a) < (b) ? (a) : (b)) #ifdef CONF_SOCKET_PTHREADS typedef struct s_tw_errno { uldat E; uldat S; th_self T; } s_tw_errno; typedef struct s_tw_errno_vec { s_tw_errno *vec; uldat max, last; } s_tw_errno_vec; #else /* use libtwerrno.h types */ typedef tw_errno s_tw_errno; typedef tw_errno s_tw_errno_vec; #endif typedef struct s_fn_list { void *Fn; byte len, formatlen; char *name, *format; } fn_list; static fn_list Functions[] = { #include "libtw1_m4.h" {Tw_Stat, 7, 8, "Tw_StatObj", "0S0x" magic_id_STR(obj) "_" TWS_udat_STR "V" TWS_udat_STR}, {NULL, 0, 0, NULL, NULL}}; #define Functions_N sizeof(Functions) / sizeof(Functions[0]) typedef uldat v_id_vec[Functions_N - 1]; /* * automagically get the symbols order_* to be the index * of corresponding element in Functions[] : */ typedef enum e_fn_order { order_DoesNotExist = -1, #define EL(funct) order_##funct, #include "socklist_m4.h" #undef EL order_StatObj, } fn_order; struct s_tlistener { tlistener Left, Right, AVLParent; uldat AVLkey; byte AVLHeight; uldat Type; tevent_any Event; tfn_listener Listener; void *Arg; tdisplay TwD; }; #define QREAD 0 #define QWRITE 1 #define QMSG 2 #define QgzREAD 3 #define QgzWRITE 4 #define QMAX 5 typedef struct s_tw_d { #ifdef th_r_mutex th_r_mutex mutex; #endif byte *Queue[5]; uldat Qstart[5], Qlen[5], Qmax[5]; /* * since DeQueue(Q[gz]WRITE) cancels bytes from end, not from start * * Qstart[QWRITE] is used only if Tw_TimidFlush() * fails writing the whole queue, * while Qstart[QgzWRITE] is not used at all. */ uldat *r; byte *s; int Fd; uldat RequestN; tlistener AVLRoot; tfn_default_listener DefaultListener; void *DefaultArg; s_tw_errno_vec rErrno_; byte ServProtocol[3]; byte ExitMainLoop, PanicFlag, ServFlags; #ifdef CONF_SOCKET_GZ byte GzipFlag; z_streamp zR, zW; #endif v_id_vec id_vec; } * tw_d; #define rErrno (TwD->rErrno_) #define mutex (TwD->mutex) #define id_Tw (TwD->id_vec) #define Queue (TwD->Queue) #define Qstart (TwD->Qstart) #define Qlen (TwD->Qlen) #define Qmax (TwD->Qmax) #define r (TwD->r) #define s (TwD->s) #define Fd (TwD->Fd) #define RequestN (TwD->RequestN) #define ServProtocol (TwD->ServProtocol) #define PanicFlag (TwD->PanicFlag) #define ServFlags (TwD->ServFlags) #define GzipFlag (TwD->GzipFlag) #define zR (TwD->zR) #define zW (TwD->zW) #define LOCK th_r_mutex_lock(mutex) #define UNLK th_r_mutex_unlock(mutex) enum { ServFlagTRune2 = 1, /* server trune is two bytes, i.e. limited to 64k Unicode characters */ ServFlagTCell47x = 2, /* server tcell has <= 4.7.x encoding {unicode64k_lo, color, unicode64k_hi, extra}. implies ServFlagTRune2 */ }; static s_tw_errno rCommonErrno; #define CommonErrno (rCommonErrno.E) static uldat OpenCount; #ifdef th_mutex static th_mutex OpenCountMutex = TH_MUTEX_INITIALIZER; #endif /* and this is the 'default' display */ tw_d Tw_DefaultD; #ifdef CONF_SOCKET_GZ static uldat Gzip(tw_d TwD); static uldat Gunzip(tw_d TwD); #endif static byte Sync(tw_d TwD); static void Panic(tw_d TwD); static void ParseReplies(tw_d TwD); static void DeleteAllListeners(tlistener); static void RemoveListener(tw_d TwD, tlistener L); byte Tw_EnableGzip(tw_d TwD); void *(*Tw_AllocMem)(size_t) = malloc; void *(*Tw_ReAllocMem)(void *, size_t) = realloc; void (*Tw_FreeMem)(void *) = free; void *Tw_AllocMem0(size_t len) { void *mem; if (Tw_AllocMem == malloc) { mem = calloc(1, len); } else if ((mem = Tw_AllocMem(len)) != NULL) { memset(mem, '\0', len); } return mem; } void *Tw_ReAllocMem0(void *mem, size_t old_len, size_t new_len) { void *newMem; if ((newMem = Tw_ReAllocMem(mem, new_len)) != NULL) { if (new_len > old_len) { memset((char *)newMem + old_len, '\0', new_len - old_len); } } return newMem; } /** * creates a copy of a chunk of memory */ void *Tw_CloneMem(TW_CONST void *src, size_t len) { void *dst; if (src && (dst = Tw_AllocMem(len))) return Tw_CopyMem(src, dst, len); return NULL; } /** * creates a copy of a null-terminated string string */ char *Tw_CloneStr(TW_CONST char *S) { if (S) { size_t len = 1 + strlen(S); char *T; if ((T = (char *)Tw_AllocMem(len))) return Tw_CopyMem(S, T, len); } return NULL; } /** * sets the function to call to allocate/realloc/free memory; * can be called only if no connections to server are open. */ void Tw_ConfigMalloc(void *(*my_malloc)(size_t), void *(*my_realloc)(void *, size_t), void (*my_free)(void *)) { th_mutex_lock(OpenCountMutex); if (!OpenCount) { if (my_malloc && my_realloc && my_free) { Tw_AllocMem = my_malloc; Tw_ReAllocMem = my_realloc; Tw_FreeMem = my_free; } else { Tw_AllocMem = malloc; Tw_ReAllocMem = realloc; Tw_FreeMem = free; } } th_mutex_unlock(OpenCountMutex); } #ifdef CONF_SOCKET_PTHREADS TW_INLINE byte GrowErrnoLocation(tw_d TwD) { s_tw_errno *vec; uldat newmax = rErrno.max <= 8 ? 16 : (rErrno.max << 1); if ((vec = (s_tw_errno *)Tw_ReAllocMem(rErrno.vec, newmax * sizeof(s_tw_errno)))) { /* assume (th_self)-1 is _NOT_ a valid thread identifier */ memset(vec + rErrno.max, '\xFF', (newmax - rErrno.max) * sizeof(s_tw_errno)); rErrno.vec = vec; rErrno.max = newmax; return ttrue; } /* out of memory! */ return tfalse; } static s_tw_errno *GetErrnoLocation(tw_d TwD) { th_self self; uldat i; if (TwD) { self = th_self_get(); /* we cache last thread that called GetErrnoLocation() */ i = rErrno.last; if (i < rErrno.max && rErrno.vec[i].T == self) return &rErrno.vec[i]; for (i = 0; i < rErrno.max; i++) { if (rErrno.vec[i].T == self) break; if (rErrno.vec[i].T == th_self_none) { /* empty slot, initialize it */ rErrno.vec[i].T = self; rErrno.vec[i].E = rErrno.vec[i].S = 0; break; } } if (i < rErrno.max) { rErrno.last = i; return &rErrno.vec[i]; } if (GrowErrnoLocation(TwD)) { rErrno.vec[i].E = rErrno.vec[i].S = 0; rErrno.vec[i].T = self; rErrno.last = i; /* i is previous rErrno.max */ return &rErrno.vec[i]; } } return &rCommonErrno; } static void FreeErrnoLocation(tw_d TwD) { if (rErrno.vec) Tw_FreeMem(rErrno.vec); } #define Errno (GetErrnoLocation(TwD)->E) #else /* !CONF_SOCKET_PTHREADS */ #define GetErrnoLocation(TwD) ((TwD) ? &TwD->rErrno_ : &rCommonErrno) #define Errno (GetErrnoLocation(TwD)->E) #define FreeErrnoLocation(TwD) \ do { \ } while (0) #endif /* CONF_SOCKET_PTHREADS */ static uldat AddQueue(tw_d TwD, byte i, uldat len, void *data) { uldat nmax; byte *t; if (len == 0) return len; /* append to queue */ if (Qstart[i] + Qlen[i] + len > Qmax[i]) { if (Qstart[i]) { Tw_MoveMem(Queue[i] + Qstart[i], Queue[i], Qlen[i]); Qstart[i] = 0; } if (Qlen[i] + len > Qmax[i]) { t = (byte *)Tw_ReAllocMem(Queue[i], nmax = (Qmax[i] + len + 40) * 5 / 4); if (!t) return 0; Queue[i] = t; Qmax[i] = nmax; } } if (data) Tw_CopyMem(data, Queue[i] + Qstart[i] + Qlen[i], len); Qlen[i] += len; return len; } TW_INLINE byte *GetQueue(tw_d TwD, byte i, uldat *len) { if (len) *len = Qlen[i]; return Queue[i] + Qstart[i]; } /* add data to QMSG queue keeping it aligned at 8 bytes (for tmsgs) */ TW_INLINE uldat ParanoidAddQueueQMSG(tw_d TwD, uldat len, void *data) { byte *t = (byte *)data + 2 * sizeof(uldat); uldat mtype, minlen, xlen; tmsg M; tevent_any E; /* we already checked (len >= 3 * sizeof(uldat)) */ Pop(t, uldat, mtype); switch (mtype &= TW_MAXUDAT) { case TW_MSG_DISPLAY: minlen = sizeof(struct s_tevent_display) - sizeof(uldat); break; case TW_MSG_WIDGET_KEY: minlen = sizeof(struct s_tevent_keyboard); break; case TW_MSG_WIDGET_MOUSE: minlen = sizeof(struct s_tevent_mouse); break; case TW_MSG_WIDGET_CHANGE: minlen = sizeof(struct s_tevent_widget); break; case TW_MSG_WIDGET_GADGET: minlen = sizeof(struct s_tevent_gadget); break; case TW_MSG_MENU_ROW: /* servers < 0.4.4 do not have a ->Row field */ minlen = sizeof(struct s_tevent_menu) - sizeof(tobj); break; case TW_MSG_SELECTION: case TW_MSG_SELECTIONCLEAR: minlen = sizeof(struct s_tevent_selection); break; case TW_MSG_SELECTIONNOTIFY: minlen = sizeof(struct s_tevent_selectionnotify) - sizeof(uldat); break; case TW_MSG_SELECTIONREQUEST: minlen = sizeof(struct s_tevent_selectionrequest); break; case TW_MSG_USER_CONTROL: minlen = sizeof(struct s_tevent_control) - sizeof(uldat); break; case TW_MSG_USER_CLIENTMSG: minlen = sizeof(struct s_tevent_clientmsg) - sizeof(uldat); break; default: return 0; } minlen += sizeof(struct s_tmsg) - sizeof(union s_tevent_any); if (len >= minlen && AddQueue(TwD, QMSG, len, data)) { if ((len & 7) && !AddQueue(TwD, QMSG, 8 - (len & 7), NULL)) { Qlen[QMSG] -= len; return 0; } /* check variable-length messages: */ M = (tmsg)GetQueue(TwD, QMSG, NULL); E = &M->Event; switch (mtype &= TW_MAXUDAT) { case TW_MSG_DISPLAY: xlen = E->EventDisplay.Len; break; case TW_MSG_WIDGET_KEY: xlen = E->EventKeyboard.SeqLen; break; case TW_MSG_SELECTIONNOTIFY: xlen = E->EventSelectionNotify.Len; break; case TW_MSG_USER_CONTROL: xlen = E->EventControl.Len; break; case TW_MSG_USER_CLIENTMSG: xlen = E->EventClientMsg.Len; break; default: xlen = 0; break; } len = (len + 7) & ~7; if (M->Len >= xlen + minlen) return len; Qlen[QMSG] -= len; } return 0; } #define QLeft(Q, len) \ (Qlen[Q] + Qstart[Q] + (len) <= Qmax[Q] ? Qlen[Q] += (len) : Grow(TwD, Q, len)) #define RQLeft(len) QLeft(QREAD, len) #define WQLeft(len) QLeft(QWRITE, len) static uldat Grow(tw_d TwD, byte i, uldat len) { /* make enough space available in Queue[i] and mark it used */ uldat nmax; byte *t; if ((i == QREAD || i == QgzREAD) && Qlen[i] + len < Qmax[i]) { Tw_MoveMem(Queue[i] + Qstart[i], Queue[i], Qlen[i]); Qstart[i] = 0; } else { t = (byte *)Tw_ReAllocMem(Queue[i], nmax = (Qmax[i] + len + 40) * 5 / 4); if (!t) return 0; if (i == QWRITE) { r = (uldat *)(t + ((byte *)r - Queue[i])); s = t + (s - Queue[i]); } Queue[i] = t; Qmax[i] = nmax; } return Qlen[i] += len; } static uldat *InitRS(tw_d TwD) { uldat len; if (WQLeft(3 * sizeof(uldat))) { s = GetQueue(TwD, QWRITE, &len); s += len; return r = (uldat *)s - 3; } Errno = TW_ESYS_NO_MEM; return (uldat *)0; } TW_INLINE uldat DeQueue(tw_d TwD, byte i, uldat len) { if (!len) return len; switch (i) { case QREAD: case QMSG: case QgzREAD: /* QREAD, QMSG: DeQueue() from start (FIFO like) */ if (len < Qlen[i]) { Qstart[i] += len; Qlen[i] -= len; } else { len = Qlen[i]; Qstart[i] = Qlen[i] = 0; } return len; case QWRITE: case QgzWRITE: /* QWRITE: DeQueue() from end (stack like) */ if (len < Qlen[i]) { Qlen[i] -= len; } else { len = Qlen[i]; Qlen[i] = 0; } return len; default: return (uldat)0; } } #define DeQueueAligned(TwD, i, len) DeQueue(TwD, i, ((len) + 7) & ~7) /* remove the given reply from QREAD */ static void KillReply(tw_d TwD, byte *rt, uldat rlen) { byte *t; uldat len; rlen += sizeof(uldat); t = GetQueue(TwD, QREAD, &len); if (rt >= t && rt + rlen <= t + len) { if (rt == t) /* same as Qstart[QREAD] = Qlen[QREAD] = 0; */ DeQueue(TwD, QREAD, rlen); else { if (rt + rlen < t + len) { uldat before = rt - t; uldat after = t + len - (rt + rlen); /* which Tw_MoveMem() copies less data ? */ if (before <= after) { Tw_MoveMem(t, t + rlen, before); Qstart[QREAD] += rlen; } else Tw_MoveMem(rt + rlen, rt, after); } Qlen[QREAD] -= rlen; } } } static void Panic(tw_d TwD) { uldat len; (void)GetQueue(TwD, QREAD, &len); DeQueue(TwD, QREAD, len); (void)GetQueue(TwD, QWRITE, &len); DeQueue(TwD, QWRITE, len); (void)GetQueue(TwD, QMSG, &len); DeQueue(TwD, QMSG, len); #ifdef CONF_SOCKET_GZ (void)GetQueue(TwD, QgzREAD, &len); DeQueue(TwD, QgzREAD, len); (void)GetQueue(TwD, QgzWRITE, &len); DeQueue(TwD, QgzWRITE, len); #endif if (Fd >= 0) { close(Fd); Fd = TW_NOFD; } PanicFlag = ttrue; } /** * returns ttrue if a fatal error occurred, tfalse otherwise; * after a fatal error, the only useful thing to do is Tw_Close() */ byte Tw_InPanic(tw_d TwD) { return TwD && PanicFlag; } /* cancel the last request packet */ /* you can (must) call Fail() ONLY after a failed WQLeft() */ static void Fail(tw_d TwD) { DeQueue(TwD, QWRITE, s - (byte *)r); } static byte Flush(tw_d TwD, byte Wait) { fd_set fset; uldat chunk = 0, left; s_tw_errno *E; byte *t; byte Q; int fd; t = GetQueue(TwD, Q = QWRITE, &left); if (Fd != TW_NOFD && left) { #ifdef CONF_SOCKET_GZ if (GzipFlag) { if (Gzip(TwD)) { t = GetQueue(TwD, Q = QgzWRITE, &left); } else return tfalse; /* TwGzip() calls Panic() if needed */ } #endif FD_ZERO(&fset); while (left > 0) { chunk = write(Fd, t, left); if (chunk && chunk != (uldat)-1) { /* would be "if (chunk > 0)" but chunk is unsigned */ t += chunk; left -= chunk; if (chunk < Qlen[Q]) { Qstart[Q] += chunk; Qlen[Q] -= chunk; } else Qstart[Q] = Qlen[Q] = 0; } else if (chunk == (uldat)-1 && errno == EINTR) ; /*continue*/ else if (chunk == (uldat)-1 && errno == EWOULDBLOCK && Wait) { do { fd = Fd; /* release the lock before sleeping!!! */ UNLK; FD_SET(fd, &fset); chunk = select(fd + 1, NULL, &fset, NULL, NULL); FD_CLR(fd, &fset); LOCK; /* maybe another thread did our work while we slept? */ t = GetQueue(TwD, Q, &left); if (!left) break; } while (chunk == (uldat)-1 && errno == EINTR); if (chunk == (uldat)-1) break; } else break; } } else left = 0; if (left && Wait) { E = GetErrnoLocation(TwD); E->E = TW_ESYS_CANNOT_WRITE; E->S = errno; Panic(TwD); } return (Fd != TW_NOFD) + (Fd != TW_NOFD && !Wait && left); } /** * sends all buffered data to server, blocking * if not all data can be immediately sent */ byte Tw_Flush(tw_d TwD) { byte b; LOCK; b = Flush(TwD, ttrue); UNLK; return b; } /** * sends all buffered data to server, without blocking: * if not all data can be immediately sent, unsent data is kept in buffer */ byte Tw_TimidFlush(tw_d TwD) { byte b; LOCK; b = Flush(TwD, tfalse); UNLK; return b; } static TW_CONST timevalue TimeoutZero = {0, 0}, Timeout5Seconds = {5, 0}; #define TIMEOUT_INFINITE ((timevalue *)0) #define TIMEOUT_ZERO (&TimeoutZero) #define TIMEOUT_5_SECONDS (&Timeout5Seconds) /* return bytes read, or (uldat)-1 for errors / timeout */ static uldat TryRead(tw_d TwD, TW_CONST timevalue *Timeout) { uldat got = 0, len = 0; int sel, fd; byte *t, mayread; byte Q, timedout = tfalse; #ifdef CONF_SOCKET_GZ if (GzipFlag) Q = QgzREAD; else #endif Q = QREAD; if (!Timeout || Timeout->Seconds || Timeout->Fraction) { fd_set fset; struct timeval timeout; timevalue deadline; FD_ZERO(&fset); if (Timeout) { timeout.tv_sec = Timeout->Seconds; timeout.tv_usec = Timeout->Fraction / MicroSEC; InstantNow(&deadline); IncrTime(&deadline, Timeout); } for (;;) { fd = Fd; /* drop LOCK before sleeping! */ UNLK; FD_SET(fd, &fset); sel = select(fd + 1, &fset, NULL, NULL, Timeout ? &timeout : NULL); FD_CLR(fd, &fset); LOCK; /* maybe another thread received some data? */ (void)GetQueue(TwD, QREAD, &len); if (len != 0 || sel > 0) break; if (sel == -1 && errno != EINTR && errno != EAGAIN && errno != EWOULDBLOCK) break; if (Timeout) { timevalue actual, to_sleep; InstantNow(&actual); if (CmpTime(&actual, &deadline) >= 0) { timedout = ttrue; break; } to_sleep = deadline; /* struct copy */ DecrTime(&to_sleep, &actual); timeout.tv_sec = to_sleep.Seconds; timeout.tv_usec = to_sleep.Fraction / MicroSEC; } } } /* for ioctl(int, FIONREAD, int *) */ sel = 0; mayread = ioctl(Fd, FIONREAD, &sel) >= 0; if (!mayread || !sel) len = TW_SMALLBUFF; else if (sel > TW_BIGBUFF * TW_BIGBUFF) len = TW_BIGBUFF * TW_BIGBUFF; else len = sel; if (QLeft(Q, len)) { t = GetQueue(TwD, Q, &got); t += got - len; do { got = read(Fd, t, len); } while (got == (uldat)-1 && errno == EINTR && !timedout); Qlen[Q] -= len - (got == (uldat)-1 ? 0 : got); if (got == 0 || (got == (uldat)-1 && (timedout || (errno != EINTR && errno != EAGAIN && errno != EWOULDBLOCK)))) { if (got == (uldat)-1 && timedout) Errno = TW_ESERVER_READ_TIMEOUT; else Errno = TW_ESERVER_LOST_CONNECT; Panic(TwD); return (uldat)-1; } } if (got == (uldat)-1) got = 0; #ifdef CONF_SOCKET_GZ if (GzipFlag && got) { got = Gunzip(TwD); } #endif return got; } TW_INLINE byte *FindReply(tw_d TwD, uldat Serial) { uldat left, rlen, rSerial; byte *rt, *t = GetQueue(TwD, QREAD, &left); /* sequentially examine all received replies */ while (left >= 3 * sizeof(uldat)) { rt = t; Pop(t, uldat, rlen); Pop(t, uldat, rSerial); /* it this reply complete? */ if (left >= rlen + sizeof(uldat)) { if (rSerial == Serial) return rt; else { /* skip to next reply */ t += rlen - sizeof(uldat); left -= rlen + sizeof(uldat); } } else /* last reply is incomplete, no more replies to examine */ break; } return NULL; } static byte *Wait4Reply(tw_d TwD, uldat Serial) { uldat left; byte *MyReply = NULL; if (Fd != TW_NOFD && ((void)GetQueue(TwD, QWRITE, &left), left)) { if (Flush(TwD, ttrue)) while (Fd != TW_NOFD && !(MyReply = FindReply(TwD, Serial))) if (TryRead(TwD, TIMEOUT_INFINITE) != (uldat)-1) ParseReplies(TwD); } return Fd != TW_NOFD ? MyReply : NULL; } static uldat ReadUldat(tw_d TwD) { uldat l, chunk; byte *t; (void)GetQueue(TwD, QREAD, &l); while (Fd != TW_NOFD && l < sizeof(uldat)) { if ((chunk = TryRead(TwD, TIMEOUT_INFINITE)) != (uldat)-1) l += chunk; else return 0; } t = GetQueue(TwD, QREAD, NULL); Pop(t, uldat, l); DeQueue(TwD, QREAD, sizeof(uldat)); return l; } #define IS_DIGIT(c) ((c) >= '0' && (c) <= '9') static void ExtractServProtocol(tw_d TwD, byte *servdata, uldat len) { uldat i = 0; byte c; ServProtocol[0] = ServProtocol[1] = ServProtocol[2] = 0; while (len) { c = *servdata; while (len && (c = *servdata) && IS_DIGIT(c)) { ServProtocol[i] *= 10; ServProtocol[i] += c - '0'; --len; ++servdata; } while (len && (c = *servdata) && !IS_DIGIT(c)) { --len; ++servdata; } if (++i >= 3) break; } if (ServProtocol[0] < 4 || (ServProtocol[0] == 4 && ServProtocol[1] <= 7)) { /* server protocol is <= 4.7.x : has two-byte trune and old tcell enconding */ ServFlags |= ServFlagTRune2 | ServFlagTCell47x; } } /** * returns library protocol version */ uldat Tw_LibraryVersion(tw_d TwD) { return TW_PROTOCOL_VERSION; } /** * returns server protocol version */ uldat Tw_ServerVersion(tw_d TwD) { uldat l; LOCK; l = TW_VER_BUILD(ServProtocol[0], ServProtocol[1], ServProtocol[2]); UNLK; return l; } static byte ProtocolNumbers(tw_d TwD) { byte *servdata; TW_CONST char *hostdata = " Twin-" TW_STR(TW_PROTOCOL_VERSION_MAJOR) "."; uldat len = 0, chunk, _len = strlen(hostdata); while (Fd != TW_NOFD && (!len || ((servdata = GetQueue(TwD, QREAD, NULL)), len < *servdata))) { if ((chunk = TryRead(TwD, TIMEOUT_5_SECONDS)) != (uldat)-1) len += chunk; } if (Fd != TW_NOFD) { servdata = GetQueue(TwD, QREAD, &len); if (*servdata >= _len && !memcmp(hostdata + 1, servdata + 1, _len - 1)) { ExtractServProtocol(TwD, servdata + 6, *servdata - 6); DeQueue(TwD, QREAD, *servdata); return ttrue; } else Errno = TW_ESERVER_BAD_VERSION; } else if (len == 0) { /* server immediately closed the socket. socket module not running? */ GetErrnoLocation(TwD)->S = TW_EDETAIL_NO_MODULE; } return tfalse; } TW_DECL_MAGIC(Tw_MagicData); /** * returns ttrue if user-provided magic numbers * are compatible with library ones; used to avoid mixing * unicode clients with non-unicode library and vice-versa */ byte Tw_CheckMagic(TW_CONST byte id[]) { if (memcmp(id + 1, Tw_MagicData + 1, (id[0] < Tw_MagicData[0] ? id[0] : Tw_MagicData[0]) - 2 - sizeof(uldat))) { CommonErrno = TW_EBAD_SIZES; return tfalse; } if (sizeof(struct s_tevent_display) != sizeof(tobj) + 4 * sizeof(udat) + sizeof(uldat) || sizeof(struct s_tevent_keyboard) != sizeof(tobj) + 3 * sizeof(udat) + 2 || sizeof(struct s_tevent_mouse) != sizeof(tobj) + 4 * sizeof(udat) || sizeof(struct s_tevent_widget) != sizeof(tobj) + 6 * sizeof(udat) || sizeof(struct s_tevent_gadget) != sizeof(tobj) + 2 * sizeof(udat) || sizeof(struct s_tevent_menu) != 3 * sizeof(tobj) + 2 * sizeof(udat) || sizeof(struct s_tevent_selection) != sizeof(tobj) + 4 * sizeof(udat) || sizeof(struct s_tevent_selectionnotify) != sizeof(tobj) + 2 * sizeof(udat) + 3 * sizeof(uldat) + TW_MAX_MIMELEN + 4 || sizeof(struct s_tevent_selectionrequest) != 2 * sizeof(tobj) + 2 * sizeof(udat) + sizeof(uldat) || sizeof(struct s_tevent_control) != sizeof(tobj) + 4 * sizeof(udat) + sizeof(uldat) || sizeof(struct s_tevent_clientmsg) != sizeof(tobj) + 2 * sizeof(udat) + 2 * sizeof(uldat)) { CommonErrno = TW_EBAD_STRUCTS; return tfalse; } return ttrue; } static byte MagicNumbers(tw_d TwD) { uldat len = 0, chunk = TWIN_MAGIC; byte *hostdata; Tw_CopyMem(&chunk, Tw_MagicData + Tw_MagicData[0] - sizeof(uldat), sizeof(uldat)); /* send our magic to server */ if (!AddQueue(TwD, QWRITE, Tw_MagicData[0], Tw_MagicData) || !Flush(TwD, ttrue)) return tfalse; /* wait for server magic */ while (Fd != TW_NOFD && (!len || ((hostdata = GetQueue(TwD, QREAD, NULL)), len < *hostdata))) { if ((chunk = TryRead(TwD, TIMEOUT_5_SECONDS)) != (uldat)-1) len += chunk; } /* * at the moment, no client-side datasize or endianity translation is available... * so just check against our magic */ if (Fd != TW_NOFD) { hostdata = GetQueue(TwD, QREAD, &len); if (*hostdata > TWS_tcolor + sizeof(uldat) + 1 && /* * allow server to send us fewer or more types than we sent, * but ensure it agrees on the common ones. */ !memcmp(Tw_MagicData + 1, hostdata + 1, Min2(*hostdata, Tw_MagicData[0]) - sizeof(uldat) - 2)) { if (!memcmp(Tw_MagicData + Tw_MagicData[0] - sizeof(uldat), hostdata + *hostdata - sizeof(uldat), sizeof(uldat))) { DeQueue(TwD, QREAD, *hostdata); return ttrue; } else Errno = TW_ESERVER_BAD_ENDIAN; } else Errno = TW_ESERVER_BAD_SIZES; } return tfalse; } #define digestLen 16 /* hardcoded in MD5 routines */ #define hAuthLen 256 /* length of ~/.TwinAuth */ #define challengeLen 512 /* length of ~/.TwinAuth + random data */ static byte MagicChallenge(tw_d TwD) { struct MD5Context ctx; byte *t; char *data, *home; uldat len, got, challenge, chunk; int fd; challenge = ReadUldat(TwD); if (Fd == TW_NOFD) return tfalse; if (challenge == TW_GO_MAGIC) return ttrue; if (challenge != TW_WAIT_MAGIC) { Errno = TW_ESERVER_BAD_PROTOCOL; return tfalse; } if (!(home = getenv("HOME"))) { Errno = TW_ENO_AUTH; return tfalse; } if (!WQLeft(digestLen) || !(data = Tw_AllocMem(hAuthLen))) { Errno = TW_ESYS_NO_MEM; return tfalse; } len = strlen(home); if (len > hAuthLen - 11) len = hAuthLen - 11; Tw_CopyMem(home, data, len); Tw_CopyMem("/.TwinAuth", data + len, 11); if ((fd = open(data, O_RDONLY)) < 0) { Tw_FreeMem(data); Errno = TW_ENO_AUTH; return tfalse; } for (len = 0, got = 1; got && len < hAuthLen; len += got) { do { got = read(fd, data + len, hAuthLen - len); } while (got == (uldat)-1 && errno == EINTR); if (got == (uldat)-1) break; } close(fd); challenge = ReadUldat(TwD); if (Fd == TW_NOFD || got == (uldat)-1 || len + challenge != challengeLen) { Tw_FreeMem(data); if (Fd != TW_NOFD) Errno = TW_ENO_AUTH; return tfalse; } (void)GetQueue(TwD, QREAD, &got); while (Fd != TW_NOFD && got < challenge) { if ((chunk = TryRead(TwD, TIMEOUT_5_SECONDS)) != (uldat)-1) got += chunk; } if (Fd == TW_NOFD) return tfalse; MD5Init(&ctx); MD5Update(&ctx, data, len); t = GetQueue(TwD, QREAD, NULL); MD5Update(&ctx, t, challenge); t = GetQueue(TwD, QWRITE, NULL); /* we did WQLeft(digestLen) above */ MD5Final(t, &ctx); DeQueue(TwD, QREAD, challenge); Flush(TwD, ttrue); challenge = ReadUldat(TwD); if (challenge == TW_GO_MAGIC) return ttrue; if (Fd != TW_NOFD) Errno = TW_ESERVER_DENIED_CONNECT; return tfalse; } static TW_CONST char *tmpdir(void) { TW_CONST char *tmp = getenv("TMPDIR"); if (tmp == NULL) tmp = "/tmp"; return tmp; } static udat copyToSockaddrUn(TW_CONST char *src, struct sockaddr_un *addr, udat pos) { size_t len = strlen(src), max = sizeof(addr->sun_path) - 1; /* for final '\0' */ if (pos < max) { if (len >= max - pos) len = max - pos - 1; Tw_CopyMem(src, addr->sun_path + pos, len); addr->sun_path[pos += len] = '\0'; } return pos; } /** * opens a connection to server; TwDisplay is the server to contact; * if NULL the environment variable $TWDISPLAY is used */ tw_d Tw_Open(TW_CONST char *TwDisplay) { tw_d TwD; char *options; int result = -1, fd = TW_NOFD; unsigned i; byte gzip = tfalse, handshake = tfalse; if (!TwDisplay && (!(TwDisplay = getenv("TWDISPLAY")) || !*TwDisplay)) { CommonErrno = TW_ENO_DISPLAY; return (tw_d)0; } if ((options = strchr(TwDisplay, ','))) { *options = '\0'; if (!memcmp(options + 1, "gz", 2)) gzip = ttrue; } CommonErrno = 0; if (*TwDisplay == ':') do { /* unix socket */ struct sockaddr_un addr; udat len; if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { CommonErrno = TW_ESYS_NO_SOCKET; break; } memset(&addr, 0, sizeof(addr)); addr.sun_family = AF_UNIX; len = copyToSockaddrUn(tmpdir(), &addr, 0); len = copyToSockaddrUn("/.Twin", &addr, len); len = copyToSockaddrUn(TwDisplay, &addr, len); result = connect(fd, (struct sockaddr *)&addr, sizeof(addr)); } while (0); else do { /* inet socket */ struct sockaddr_in addr; struct hostent *host_info; char *server = Tw_CloneStr(TwDisplay), *p; unsigned short port; if (!server) { CommonErrno = TW_ESYS_NO_MEM; break; } p = strchr(server, ':'); if (!p) { CommonErrno = TW_EBAD_DISPLAY; Tw_FreeMem(server); break; } *p = '\0'; port = TW_INET_PORT + strtoul(p + 1, NULL, 16); memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; /* check if the server is a numbers-and-dots host like "127.0.0.1" */ addr.sin_port = htons(port); addr.sin_addr.s_addr = inet_addr(server); if (addr.sin_addr.s_addr == (uint32_t)-1) { #ifdef TW_HAVE_GETHOSTBYNAME /* may be a FQDN host like "www.gnu.org" */ host_info = gethostbyname(server); if (host_info) { Tw_CopyMem(host_info->h_addr, &addr.sin_addr, host_info->h_length); addr.sin_family = host_info->h_addrtype; } else #endif { /* unknown hostname */ rCommonErrno.E = TW_ENO_HOST; rCommonErrno.S = h_errno; Tw_FreeMem(server); break; } } Tw_FreeMem(server); if ((fd = socket(addr.sin_family, SOCK_STREAM, 0)) >= 0) result = connect(fd, (struct sockaddr *)&addr, sizeof(addr)); else CommonErrno = TW_ESYS_NO_SOCKET; } while (0); if (options) *options = ','; if (result == -1) { /* some error occurred */ if (fd != TW_NOFD) { close(fd); CommonErrno = TW_ESYS_CANNOT_CONNECT; } /* try to get a meaningful message for the error */ if (CommonErrno == TW_ESYS_NO_SOCKET || CommonErrno == TW_ESYS_CANNOT_CONNECT) rCommonErrno.S = errno; return (tw_d)0; } if (!(TwD = (tw_d)Tw_AllocMem(sizeof(struct s_tw_d)))) { close(fd); CommonErrno = TW_ESYS_NO_MEM; return (tw_d)0; } memset(TwD, '\0', sizeof(struct s_tw_d) - sizeof(v_id_vec)); for (i = 0; i < sizeof(id_Tw) / sizeof(id_Tw[0]); i++) /* initialize function ids to 'unknown' */ id_Tw[i] = TW_BADID; /* except for Tw_FindFunction */ id_Tw[order_FindFunction] = FIND_MAGIC; th_r_mutex_init(mutex); Fd = fd; fcntl(Fd, F_SETFD, FD_CLOEXEC); fcntl(Fd, F_SETFL, O_NONBLOCK); th_mutex_lock(OpenCountMutex); OpenCount++; th_mutex_unlock(OpenCountMutex); LOCK; handshake = ProtocolNumbers(TwD) && MagicNumbers(TwD) && MagicChallenge(TwD); UNLK; if (handshake) { if (gzip) (void)Tw_EnableGzip(TwD); return TwD; } if (Fd != TW_NOFD) { close(Fd); Fd = TW_NOFD; /* to skip Flush() */ } Tw_Close(TwD); return (tw_d)0; } /* just like all Tw_* functions, this requires LOCK not to be held */ /* * Tw_Close() is not completely thread-safe, but it would be useless anyway * for it to be thread safe, since after Tw_Close() the TwD pointer is invalid * and the only way for other threads to know that is to cooperate with the one * that issued Tw_Close(). */ /** * closes a server connection */ void Tw_Close(tw_d TwD) { s_tw_errno *E; byte *q; int i; if (!TwD) return; LOCK; if (Fd != TW_NOFD) { Flush(TwD, ttrue); close(Fd); Fd = TW_NOFD; } #ifdef CONF_SOCKET_GZ if (GzipFlag) Tw_DisableGzip(TwD); #endif for (i = 0; i < QMAX; i++) { if ((q = Queue[i])) Tw_FreeMem(q); } /* save Errno in CommonErrno */ E = GetErrnoLocation(TwD); rCommonErrno.E = E->E; rCommonErrno.S = E->S; DeleteAllListeners(TwD->AVLRoot); /*PanicFlag = tfalse;*/ UNLK; th_r_mutex_destroy(mutex); FreeErrnoLocation(TwD); Tw_FreeMem(TwD); th_mutex_lock(OpenCountMutex); OpenCount--; th_mutex_unlock(OpenCountMutex); } /* * Tw_AttachGetReply() returns 0 for failure, 1 for success, * else message string (len) bytes long. * * it bypasses any compression. */ /* this requires LOCK not to be held */ /** * returns one of the messages produced by server after Tw_Attach() */ TW_CONST char *Tw_AttachGetReply(tw_d TwD, uldat *len) { uldat chunk; char *answ = (char *)-1, *nul; #ifdef CONF_SOCKET_GZ byte wasGzipFlag; #endif LOCK; #ifdef CONF_SOCKET_GZ wasGzipFlag = GzipFlag; GzipFlag = tfalse; #endif if (Fd != TW_NOFD) do { answ = (char *)GetQueue(TwD, QREAD, &chunk); if (!chunk) { (void)TryRead(TwD, TIMEOUT_INFINITE); answ = (char *)GetQueue(TwD, QREAD, &chunk); } if (chunk) { if ((nul = memchr(answ, '\0', chunk))) { if (nul == answ && nul + 1 < answ + chunk) { DeQueue(TwD, QREAD, 2); answ = (char *)(size_t)nul[1]; break; } chunk = nul - answ; } DeQueue(TwD, QREAD, chunk); *len = chunk; break; } } while (0); #ifdef CONF_SOCKET_GZ GzipFlag = wasGzipFlag; #endif UNLK; return answ; } /* this requires LOCK not to be held */ /** * tells the server to confirm the Tw_Attach() previously issued */ void Tw_AttachConfirm(tw_d TwD) { LOCK; if (Fd != TW_NOFD) { write(Fd, "\1", 1); } UNLK; } /* this requires LOCK not to be held */ /** * returns a pointer to last error information (libtw equivaled of errno_location()) */ tw_errno *Tw_ErrnoLocation(tw_d TwD) { s_tw_errno *t; if (TwD) { LOCK; t = GetErrnoLocation(TwD); UNLK; } else t = &rCommonErrno; return (tw_errno *)t; } /** * returns a string description of given error */ TW_ATTR_FN_CONST TW_CONST char *Tw_StrError(TW_CONST tw_d TwD, uldat e) { switch (e) { case 0: return "success"; case TW_ESERVER_BAD_ENDIAN: return "server has reversed endianity, impossible to connect"; case TW_ESERVER_BAD_SIZES: return "server has different data sizes, impossible to connect"; case TW_EBAD_SIZES: return "compiled data sizes are incompatible with libtw now in use!"; case TW_EBAD_STRUCTS: return "internal error: structs are not packed! Please contact the author."; case TW_ENO_DISPLAY: return "TWDISPLAY is not set"; case TW_EBAD_DISPLAY: return "badly formed TWDISPLAY"; case TW_ENO_AUTH: return "bad or missing authorization file ~/.TwinAuth, cannot connect"; case TW_ESYS_CANNOT_CONNECT: return "failed to connect: "; case TW_ESYS_NO_MEM: return "out of memory!"; case TW_ESYS_CANNOT_WRITE: return "failed to send data to server: "; case TW_ESYS_NO_SOCKET: return "failed to create socket: "; case TW_ESERVER_LOST_CONNECT: return "connection lost "; case TW_ESERVER_ALREADY_CONNECT: return "already connected"; case TW_ESERVER_BAD_PROTOCOL: return "got invalid data from server, protocol violated"; case TW_ESERVER_NO_FUNCTION: return "function not supported by server: "; case TW_ESERVER_BAD_FUNCTION: return "function is not a possible server function"; case TW_ESERVER_DENIED_CONNECT: return "server denied permission to connect, file ~/.TwinAuth may be wrong"; case TW_EGZIP_BAD_PROTOCOL: return "got invalid data from server, gzip format violated"; case TW_EGZIP_INTERNAL: return "internal gzip error, panic!"; case TW_ENO_HOST: return "unknown host in TWDISPLAY: "; case TW_ESERVER_BAD_VERSION: return "server has incompatible protocol version, impossible to connect"; case TW_ESERVER_BAD_RETURN: return "server function call returned strange data, wrong data sizes? : "; case TW_ECALL_BAD: return "function call rejected by server, wrong data sizes? : "; case TW_ECALL_BAD_ARG: return "function call rejected by server, invalid arguments? : "; case TW_ESERVER_READ_TIMEOUT: return "failed to receive data from server: read timeout"; default: return "unknown error"; } } /** * returns a string description of given error detail */ TW_ATTR_FN_CONST TW_CONST char *Tw_StrErrorDetail(TW_CONST tw_d TwD, uldat E, uldat S) { switch (E) { case TW_ESERVER_LOST_CONNECT: switch (S) { case TW_EDETAIL_NO_MODULE: return "(socket module may be not running on server)"; default: break; } return "(explicit kill or server shutdown)"; case TW_ESYS_CANNOT_CONNECT: case TW_ESYS_CANNOT_WRITE: case TW_ESYS_NO_SOCKET: return strerror(S); case TW_ENO_HOST: return hstrerror(S); case TW_ESERVER_NO_FUNCTION: case TW_ESERVER_BAD_RETURN: case TW_ECALL_BAD: case TW_ECALL_BAD_ARG: if (Functions[S].name) return Functions[S].name; break; } return ""; } /* this requires LOCK not to be held */ /** * returns the file descriptor used by the connection */ int Tw_ConnectionFd(tw_d TwD) { int f; LOCK; f = Fd; UNLK; return f; } /* hack: * TwReadMsg() returns an already DeQueued tmsg. * TwPeekMsg() returns a tmsg without DeQueueing it. * They work because DeQueue() doesn't touch the data, just sets * some variables to mark it free. * But if you AddQueueAligned(QMSG) you may junk your precious tmsg. * There is no easy solution to this, except for Tw_CloneReadMsg() it, * as both DeQueued and still queued tmsg may be moved around * by the TwReallocMem() in AddQueueAligned(QMSG) in ParseReplies(). * * So: the contents of the tmsg returned by TwReadMsg() * becomes undefined after a call to a function that internally * calls ParseReplies(). These "bad" functions are: * * TwSync(); * TwPeekMsg(); * TwReadMsg(); * TwCreateGadget(); * TwSearchGadget(); * TwCreateWindow(); * TwCreate4MenuWindow(); * TwCreate4MenuMenuItem(); * TwCreateMsgPort(); * * and in general any Tw() function of libtw.h returning non-void * so that it sends something to the server and waits for the server * to send back the return value. */ /* this requires LOCK to be held */ static tmsg ReadMsg(tw_d TwD, byte Wait, byte deQueue) { tmsg Msg = (tmsg)0; uldat len; if (Fd != TW_NOFD) { Msg = (tmsg)GetQueue(TwD, QMSG, &len); if (!len) { Flush(TwD, Wait); do { if (TryRead(TwD, Wait ? TIMEOUT_INFINITE : TIMEOUT_ZERO) != (uldat)-1) { ParseReplies(TwD); Msg = (tmsg)GetQueue(TwD, QMSG, &len); } } while (Wait && Fd != TW_NOFD && !len); } if (Fd != TW_NOFD && len) { if (deQueue) DeQueueAligned(TwD, QMSG, Msg->Len); } else Msg = (tmsg)0; } return Msg; } /* this requires LOCK not to be held */ /** * returns the first tmsg already received, or NULL if no events * are available in the queue; it never blocks nor reads from the connection */ tmsg Tw_PendingMsg(tw_d TwD) { tmsg Msg; uldat len; LOCK; Msg = (tmsg)GetQueue(TwD, QMSG, &len); UNLK; if (!len) Msg = (tmsg)0; return Msg; } /* non-blocking check if there are messages available, * reading non-blocking from the socket if necessary */ /* this requires LOCK not to be held */ /** * returns the first tmsg already received, or tries to read non-blocking * more messages from the connection; if no messages are available, * returns NULL */ tmsg Tw_PeekMsg(tw_d TwD) { tmsg Msg; LOCK; Msg = ReadMsg(TwD, tfalse, tfalse); UNLK; return Msg; } /** * returns the first tmsg already received, or tries to read non-blocking * more messages from the connection; if Wait is ttrue and no messages are * immediately available, blocks until a message is received * and returns NULL only in case of a fatal error (panic); * * in any case, the tmsg returned is removed from the queue. */ tmsg Tw_ReadMsg(tw_d TwD, byte Wait) { tmsg Msg; LOCK; Msg = ReadMsg(TwD, Wait, ttrue); UNLK; return Msg; } /** * behaves exactly like Tw_ReadMsg(), but a Tw_AllocMem()ed copy of the message * is returned to avoid concurrency problems with other threads; * you must Tw_FreeMem() it when done! */ tmsg Tw_CloneReadMsg(tw_d TwD, byte Wait) { tmsg Msg, ClonedMsg = (tmsg)0; LOCK; if ((Msg = ReadMsg(TwD, Wait, ttrue)) && (ClonedMsg = (tmsg)Tw_AllocMem(Msg->Len))) { Tw_CopyMem(Msg, ClonedMsg, Msg->Len); } UNLK; return ClonedMsg; } /* AVL listeners tree handling functions */ TW_INLINE uldat TwAVLgetkey(uldat Type, tevent_common Event) { /* only (udat)Type is significative, not whole Type. */ return (Type << 5) ^ Event->W ^ ((uldat)Event->Code << ((sizeof(uldat) - sizeof(udat)) * 8)); } #define TwAVLgetkeyMsg(Msg) TwAVLgetkey((Msg)->Type, &(Msg)->Event.EventCommon) #define TwAVLgetkeyListener(L) TwAVLgetkey((L)->Type, &(L)->Event->EventCommon) /* this assumes L1->AVLkey == L2->AVLkey */ static int CompareListeners(tlistener L1, tlistener L2) { tevent_any L1A = L1->Event, L2A = L2->Event; if (L1->Type == L2->Type) { if (L1A->EventCommon.W == L2A->EventCommon.W) { if (L1A->EventCommon.Code == L2A->EventCommon.Code) { /* common part matches. check details. */ switch (L1->Type) { /* * WARNING: I am assuming all fields of a union * have the same address as the union itself */ case TW_MSG_WIDGET_KEY: case TW_MSG_WIDGET_MOUSE: return L1A->EventKeyboard.ShiftFlags - L2A->EventKeyboard.ShiftFlags; case TW_MSG_MENU_ROW: return L1A->EventMenu.Menu - L2A->EventMenu.Menu; case TW_MSG_WIDGET_CHANGE: case TW_MSG_WIDGET_GADGET: case TW_MSG_SELECTION: case TW_MSG_SELECTIONNOTIFY: case TW_MSG_SELECTIONREQUEST: case TW_MSG_SELECTIONCLEAR: case TW_MSG_USER_CONTROL: /* no extra checks needed */ default: break; } return 0; } return L1A->EventCommon.Code - L2A->EventCommon.Code; } return L1A->EventCommon.W - L2A->EventCommon.W; } return L1->Type - L2->Type; } static tlistener FindListener(tw_d TwD, tmsg Msg) { struct s_tlistener key; key.Type = Msg->Type; key.Event = &Msg->Event; key.AVLkey = TwAVLgetkeyMsg(Msg); return (tlistener)AVLFind((tavl)&key, (tavl)TwD->AVLRoot, (tavl_compare)CompareListeners); } static void InsertListener(tw_d TwD, tlistener L) { if (L && !L->TwD) { L->AVLkey = TwAVLgetkeyListener(L); L->TwD = TwD; AVLInsert((tavl)L, (tavl)TwD->AVLRoot, (tavl_compare)CompareListeners, (tavl *)&TwD->AVLRoot); } } static void RemoveListener(tw_d TwD, tlistener L) { if (L && L->TwD == TwD) { AVLRemove((tavl)L, (tavl_compare)CompareListeners, (tavl *)&TwD->AVLRoot); L->TwD = NULL; } } static void DeleteAllListeners(tlistener L) { if (L) { DeleteAllListeners(L->Left); DeleteAllListeners(L->Right); if (L->Event) Tw_FreeMem(L->Event); Tw_FreeMem(L); } } /** * adds an event listener to connection; event listeners are used only * if you call Tw_MainLoop() or Tw_DispatchMsg() */ void Tw_InsertListener(tw_d TwD, tlistener L) { LOCK; InsertListener(TwD, L); UNLK; } /** * removes an event listener from connection */ void Tw_RemoveListener(tw_d TwD, tlistener L) { LOCK; RemoveListener(TwD, L); UNLK; } /** * deletes an event listener */ void Tw_DeleteListener(tw_d TwD, tlistener L) { LOCK; if (L->TwD == TwD) { RemoveListener(TwD, L); if (L->Event) Tw_FreeMem(L->Event); Tw_FreeMem(L); } UNLK; } /** * sets the fallback event listener, to be called when no other listeners match */ void Tw_SetDefaultListener(tw_d TwD, tfn_default_listener Listener, void *Arg) { LOCK; TwD->DefaultListener = Listener; TwD->DefaultArg = Arg; UNLK; } static tlistener CreateListener(tw_d TwD, udat Type, tevent_any E, tfn_listener Listener, void *Arg) { tlistener L; if ((L = (tlistener)Tw_AllocMem(sizeof(struct s_tlistener)))) { L->AVLParent = NULL; L->Type = Type; L->Event = E; L->Listener = Listener; L->Arg = Arg; L->TwD = NULL; LOCK; InsertListener(TwD, L); UNLK; } return L; } /* this does NOT add the created tlistener to the display! */ /** * creates an event listener; you must manually Tw_InsertListener() it */ tlistener Tw_CreateListener(tw_d TwD, udat Type, tevent_any E, tfn_listener Listener, void *Arg) { tlistener L; if ((L = (tlistener)Tw_AllocMem(sizeof(struct s_tlistener)))) { L->AVLParent = NULL; L->Type = Type; L->Left = L->Right = NULL; L->Event = E; L->Listener = Listener; L->Arg = Arg; L->TwD = NULL; } return L; } /** * changes the already inserted event listener to listen for * the new Type and event */ void Tw_SetTEListener(tw_d TwD, tlistener L, udat Type, tevent_any E) { LOCK; if (L->TwD && L->TwD == TwD) { RemoveListener(TwD, L); L->Type = Type; L->Event = E; InsertListener(TwD, L); } else if (!L->TwD) { L->Type = Type; L->Event = E; } UNLK; } static tevent_any CreateEvent(twidget W, udat Code, udat ShiftFlags) { tevent_common E; if ((E = (tevent_common)Tw_AllocMem(sizeof(struct s_tevent_common)))) { E->W = W; E->Code = Code; E->pad = ShiftFlags; /* warning: we RELY on tevent_keyboard->ShiftFlags * to be the same as tevent_common->pad */ } return (tevent_any)E; } static tevent_any CreateMenuEvent(twidget W, tmenu Menu, udat Code) { tevent_menu E; if ((E = (tevent_menu)Tw_AllocMem(sizeof(struct s_tevent_menu)))) { E->W = W; E->Code = Code; E->Menu = Menu; E->Row = (trow)0; } return (tevent_any)E; } static tlistener AddListener(tw_d TwD, udat Type, twidget W, udat Code, udat ShiftFlags, tfn_listener Listener, void *Arg) { tlistener L; tevent_any E; if ((E = CreateEvent(W, Code, ShiftFlags))) { if ((L = CreateListener(TwD, Type, E, Listener, Arg))) return L; Tw_FreeMem(E); } return NULL; } static tlistener AddMenuListener(tw_d TwD, udat Type, twidget W, tmenu Menu, udat Code, tfn_listener Listener, void *Arg) { tlistener L; tevent_any E; if ((E = CreateMenuEvent(W, Menu, Code))) { if ((L = CreateListener(TwD, Type, E, Listener, Arg))) return L; Tw_FreeMem(E); } return NULL; } /** * creates and adds a keyboard event listener */ tlistener Tw_AddKeyboardListener(tw_d TwD, twidget W, udat Code, udat ShiftFlags, tfn_listener Listener, void *Arg) { return AddListener(TwD, TW_MSG_WIDGET_KEY, W, Code, ShiftFlags, Listener, Arg); } /** * creates and adds a mouse event listener */ tlistener Tw_AddMouseListener(tw_d TwD, twidget W, udat Code, udat ShiftFlags, tfn_listener Listener, void *Arg) { return AddListener(TwD, TW_MSG_WIDGET_MOUSE, W, Code, ShiftFlags, Listener, Arg); } /** * creates and adds a control message listener */ tlistener Tw_AddControlListener(tw_d TwD, twidget W, udat Code, tfn_listener Listener, void *Arg) { return AddListener(TwD, TW_MSG_USER_CONTROL, W, Code, 0, Listener, Arg); } /** * creates and adds a client message listener */ tlistener Tw_AddClientMsgListener(tw_d TwD, twidget W, udat Code, tfn_listener Listener, void *Arg) { return AddListener(TwD, TW_MSG_USER_CLIENTMSG, W, Code, 0, Listener, Arg); } /** * creates and adds a `display' message listener * (the ones used by twdisplay to implement remote display hw) */ tlistener Tw_AddDisplayListener(tw_d TwD, udat Code, tfn_listener Listener, void *Arg) { return AddListener(TwD, TW_MSG_DISPLAY, TW_NOID, Code, 0, Listener, Arg); } /** * creates and adds a widget change message listener */ tlistener Tw_AddWidgetListener(tw_d TwD, twidget W, udat Code, tfn_listener Listener, void *Arg) { return AddListener(TwD, TW_MSG_WIDGET_CHANGE, W, Code, 0, Listener, Arg); } /** * creates and adds a gadget message listener */ tlistener Tw_AddGadgetListener(tw_d TwD, twidget W, udat Code, tfn_listener Listener, void *Arg) { return AddListener(TwD, TW_MSG_WIDGET_GADGET, W, Code, 0, Listener, Arg); } /** * creates and adds a menu activation message listener */ tlistener Tw_AddMenuListener(tw_d TwD, twidget W, tmenu Menu, udat Code, tfn_listener Listener, void *Arg) { return AddMenuListener(TwD, TW_MSG_MENU_ROW, W, Menu, Code, Listener, Arg); } /** * creates and adds a selection message listener */ tlistener Tw_AddSelectionListener(tw_d TwD, twidget W, tfn_listener Listener, void *Arg) { return AddListener(TwD, TW_MSG_SELECTION, W, 0, 0, Listener, Arg); } /** * creates and adds a selection-notify message listener */ tlistener Tw_AddSelectionNotifyListener(tw_d TwD, tfn_listener Listener, void *Arg) { return AddListener(TwD, TW_MSG_SELECTIONNOTIFY, TW_NOID, 0, 0, Listener, Arg); } /** * creates and adds a selection-request message listener */ tlistener Tw_AddSelectionRequestListener(tw_d TwD, tfn_listener Listener, void *Arg) { return AddListener(TwD, TW_MSG_SELECTIONREQUEST, TW_NOID, 0, 0, Listener, Arg); } static byte DispatchMsg(tdisplay TwD, tmsg Msg, byte mustClone) { tlistener L; tfn_listener Listener; tfn_default_listener DefaultListener; void *Arg; tmsg ClonedMsg; if ((L = FindListener(TwD, Msg))) { Listener = L->Listener; Arg = L->Arg; DefaultListener = NULL; } else if (TwD->DefaultListener) { DefaultListener = TwD->DefaultListener; Arg = TwD->DefaultArg; Listener = NULL; } else return tfalse; /* * Tw_MainLoop calls us with a Msg still inside Queue[]. * Clone it before calling Listener to avoid problems. * * If the user calls Tw_DispatchMsg, it's up to him to ensure * there are no problems (possibly using Tw_CloneReadMsg() instead * of Tw_ReadMsg() ). */ if (mustClone) { if ((ClonedMsg = (tmsg)Tw_AllocMem(Msg->Len))) Tw_CopyMem(Msg, ClonedMsg, Msg->Len); } else ClonedMsg = Msg; if (ClonedMsg) { UNLK; if (Listener) Listener(&ClonedMsg->Event, Arg); else DefaultListener(ClonedMsg, Arg); LOCK; if (mustClone) Tw_FreeMem(ClonedMsg); return ttrue; } return tfalse; } /** * calls the appropriate event listener for given tmsg */ byte Tw_DispatchMsg(tdisplay TwD, tmsg Msg) { byte ret; LOCK; ret = DispatchMsg(TwD, Msg, tfalse); UNLK; return ret; } /** * utility function: sits in a loop, waiting for messages and calling * the appropriate event listener for them, until a fatal error occurs */ byte Tw_MainLoop(tw_d TwD) { byte ret; tmsg Msg; LOCK; Errno = 0; while (!TwD->ExitMainLoop && (Msg = ReadMsg(TwD, ttrue, ttrue))) (void)DispatchMsg(TwD, Msg, ttrue); ret = TwD->ExitMainLoop || Errno == 0; UNLK; return ret; } void Tw_ExitMainLoop(tw_d TwD) { TwD->ExitMainLoop = ttrue; } static void FailedCall(tw_d TwD, uldat err, uldat order) { s_tw_errno *vec = GetErrnoLocation(TwD); vec->E = err; vec->S = order; } TW_INLINE uldat NextSerial(tw_d TwD) { if (++RequestN == tmsg_magic) ++RequestN; return RequestN; } TW_INLINE void Send(tw_d TwD, uldat Serial, uldat idFN) { /* be careful with aligmnent!! */ byte *R = (byte *)r; Push(R, uldat, s - (byte *)(r + 1)); Push(R, uldat, Serial); Push(R, uldat, idFN); } /***********/ #include "encode.h" static uldat FindFunctionId(tw_d TwD, uldat order); #define DECL_MyReply \ byte *MyReply, *MyData; \ uldat MyLen, MyCode; #define INIT_MyReply \ (Pop(MyReply, uldat, MyLen), /*skip Serial:*/ Pop(MyReply, uldat, MyCode), \ Pop(MyReply, uldat, MyCode), MyData = MyReply, MyReply -= 3 * sizeof(uldat)), #define ENCODE_FL_NOLOCK 1 #define ENCODE_FL_LOCK 1 #define ENCODE_FL_VOID 2 #define ENCODE_FL_RETURN 2 static tany _Tw_EncodeCall(byte flags, uldat o, tw_d TwD, ...) { struct s_tsfield a[TW_MAX_ARGS_N]; tsfield b; va_list va; DECL_MyReply uldat space, My; udat N; a->TWS_field_scalar = TW_NOID; flags ^= (ENCODE_FL_NOLOCK | ENCODE_FL_VOID); if (flags & ENCODE_FL_LOCK) LOCK; if (Fd != TW_NOFD && (My = id_Tw[o]) != TW_NOID && (My != TW_BADID || (My = FindFunctionId(TwD, o)) != TW_NOID)) { va_start(va, (void *)TwD); N = EncodeArgs(o, &space, va, a); va_end(va); if (N != (udat)-1) { if (InitRS(TwD) && WQLeft(space)) { /* skip over a[0], that will hold return value */ for (b = a + 1; N; b++, N--) s = PushArg(s, b); Send(TwD, (My = NextSerial(TwD)), id_Tw[o]); if (flags & ENCODE_FL_RETURN) { if ((MyReply = (void *)Wait4Reply(TwD, My)) && (INIT_MyReply MyCode == OK_MAGIC)) { if (MyLen == 2 * sizeof(uldat) + a[0].label) DecodeReply((byte *)MyData, a); else FailedCall(TwD, TW_ESERVER_BAD_PROTOCOL, o); } else { FailedCall(TwD, MyReply && MyCode != (uldat)-1 ? TW_ECALL_BAD_ARG : TW_ECALL_BAD, o); } if (MyReply) KillReply(TwD, (byte *)MyReply, MyLen); } } else { /* still here? must be out of memory! */ Errno = TW_ESYS_NO_MEM; Fail(TwD); } } else { /* N == (udat)-1, EncodeArgs() failed ! */ FailedCall(TwD, TW_ECALL_BAD, o); } } else if (Fd != TW_NOFD) FailedCall(TwD, TW_ESERVER_NO_FUNCTION, o); if (flags & ENCODE_FL_LOCK) UNLK; return a->TWS_field_scalar; } #include "libtw2_m4.h" static byte Sync(tw_d TwD) { uldat left; return Fd != TW_NOFD ? (GetQueue(TwD, QWRITE, &left), left) ? _Tw_SyncSocket(TwD) : ttrue : tfalse; } /** * sends all buffered data to connection and waits for server to process it */ byte Tw_Sync(tw_d TwD) { byte ok; LOCK; ok = Sync(TwD); UNLK; return ok; } /* wrap _Tw_FindFunction() with LOCKs */ /** * returns the server-dependant order number of a function (specified as string), * or NOID if server is missing that function */ uldat Tw_FindFunction(tw_d TwD, byte Len, TW_CONST char *Name, byte FormatLen, TW_CONST char *Format) { uldat MyId; LOCK; MyId = _Tw_FindFunction(TwD, Len, Name, FormatLen, Format); UNLK; return MyId; } static uldat FindFunctionId(tw_d TwD, uldat order) { uldat My; if ((My = id_Tw[order]) == TW_BADID) { My = id_Tw[order] = _Tw_FindFunction(TwD, Functions[order].len, 3 + Functions[order].name, Functions[order].formatlen, Functions[order].format + 1); } return Fd != TW_NOFD ? My : TW_NOID; } /* convert tcell to protocol <= 4.7.x i.e. {unicode64k_lo, color, unicode64k_hi, extra} */ static tcell ConvertTCellTo47x(tcell cell) { trune f = TRUNE(cell); tcolor col = TCOLOR(cell); if (f > 0xFFFF) /* maximum supported by protocol <= 4.7.x is 64k */ f = 0xFFFD; /* use replacement char instead */ return (f & 0xFF) | ((tcell)col << 8) | (((tcell)f & 0xFF00) << 8); } TW_INLINE tcell MaybeConvertTCell(tw_d TwD, tcell cell) { if (ServFlags & ServFlagTCell47x) cell = ConvertTCellTo47x(cell); return cell; } #define PushVMaybeConvertTCell(TwD, dst, len, vec) \ ((dst) = VecMaybeConvertTCell(TwD, dst, len, vec)) static byte *VecMaybeConvertTCell(tw_d TwD, byte *dst, uldat len, TW_CONST tcell *cell) { if (ServFlags & ServFlagTCell47x) { uldat i; tcell h; len /= sizeof(tcell); for (i = 0; i < len; i++) { h = ConvertTCellTo47x(cell[i]); Push(dst, tcell, h); } } else { PushV(dst, len, cell); } return dst; } /** * sends all buffered data to connection and waits for server to process it */ byte Tw_SyncSocket(tw_d TwD) { return Tw_Sync(TwD); } /* handy special cases (also for compatibility) */ /** * return the owner of this gadget */ tmsgport Tw_OwnerWidget(tw_d TwD, twidget a1) { return Tw_Stat(TwD, a1, TWS_widget_Owner); } /** * return prev widget with same owner */ tgadget Tw_O_PrevWidget(tw_d TwD, twidget a1) { return Tw_Stat(TwD, a1, TWS_widget_O_Prev); } /** * return next widget with same owner */ tgadget Tw_O_NextWidget(tw_d TwD, twidget a1) { return Tw_Stat(TwD, a1, TWS_widget_O_Next); } /** * change the fill patter of given widget */ void Tw_SetFillWidget(tw_d TwD, twidget a1, tcell a2) { a2 = MaybeConvertTCell(TwD, a2); Tw_ChangeField(TwD, a1, TWS_widget_Fill, ~(tcell)0, a2); } /** * draws given portion of a widget; usually called after a TW_WIDGET_EXPOSE message */ void Tw_Draw2Widget(tw_d TwD, twidget a1, dat a2, dat a3, dat a4, dat a5, dat pitch, TW_CONST char *a6, TW_CONST trune *a7, TW_CONST tcell *a8) { uldat len6, len7, len8, My; LOCK; if (Fd != TW_NOFD && (My = id_Tw[order_DrawWidget]) != TW_NOID && (My != TW_BADID || (My = FindFunctionId(TwD, order_DrawWidget)) != TW_NOID)) { if (InitRS(TwD)) { My = (0 + sizeof(uldat) + sizeof(dat) + sizeof(dat) + sizeof(dat) + sizeof(dat) + (len6 = a6 ? (uldat)a2 * a3 * sizeof(char) : 0, sizeof(uldat) + len6) + (len7 = a7 ? (uldat)a2 * a3 * sizeof(trune) : 0, sizeof(uldat) + len7) + (len8 = a8 ? (uldat)a2 * a3 * sizeof(tcell) : 0, sizeof(uldat) + len8)); if (WQLeft(My)) { Push(s, uldat, a1); Push(s, dat, a2); Push(s, dat, a3); Push(s, dat, a4); Push(s, dat, a5); Push(s, uldat, len6); while (len6) { PushV(s, (uldat)a2 * sizeof(char), a6); a6 += pitch; len6 -= (uldat)a2 * sizeof(char); } Push(s, uldat, len7); while (len7) { PushV(s, (uldat)a2 * sizeof(trune), a7); a7 += pitch; len7 -= (uldat)a2 * sizeof(trune); } Push(s, uldat, len8); while (len8) { PushVMaybeConvertTCell(TwD, s, (uldat)a2 * sizeof(tcell), a8); a8 += pitch; len8 -= (uldat)a2 * sizeof(tcell); } Send(TwD, (My = NextSerial(TwD)), id_Tw[order_DrawWidget]); UNLK; return; } } /* still here? must be out of memory! */ Errno = TW_ESYS_NO_MEM; Fail(TwD); } else if (Fd != TW_NOFD) FailedCall(TwD, TW_ESERVER_NO_FUNCTION, order_DrawWidget); UNLK; } /** * draws given portion of a widget; usually called after a TW_WIDGET_EXPOSE message */ void Tw_DrawTextWidget(tw_d TwD, twidget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, TW_CONST char *Text) { Tw_Draw2Widget(TwD, W, XWidth, YWidth, Left, Up, Pitch, Text, NULL, NULL); } /** * draws given portion of a widget; usually called after a TW_WIDGET_EXPOSE message */ void Tw_DrawTRuneWidget(tw_d TwD, twidget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, TW_CONST trune *Font) { Tw_Draw2Widget(TwD, W, XWidth, YWidth, Left, Up, Pitch, NULL, Font, NULL); } /** * draws given portion of a widget; usually called after a TW_WIDGET_EXPOSE message */ void Tw_DrawTCellWidget(tw_d TwD, twidget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, TW_CONST tcell *Attr) { Tw_Draw2Widget(TwD, W, XWidth, YWidth, Left, Up, Pitch, NULL, NULL, Attr); } /** * sets a gadget to pressed or unpressed */ void Tw_SetPressedGadget(tw_d TwD, tgadget a1, byte a2) { Tw_ChangeField(TwD, a1, TWS_gadget_Flags, TW_GADGETFL_PRESSED, a2 ? TW_GADGETFL_PRESSED : 0); } /** * returns wether a gadget is pressed or not */ byte Tw_IsPressedGadget(tw_d TwD, tgadget a1) { return Tw_Stat(TwD, a1, TWS_gadget_Flags) & TW_GADGETFL_PRESSED ? ttrue : tfalse; } /** * sets a gadget to toggle-type or to normal type */ void Tw_SetToggleGadget(tw_d TwD, tgadget a1, byte a2) { Tw_ChangeField(TwD, a1, TWS_gadget_Flags, TW_GADGETFL_TOGGLE, a2 ? TW_GADGETFL_TOGGLE : 0); } /** * return wether a gadget is toggle-type or not */ byte Tw_IsToggleGadget(tw_d TwD, tgadget a1) { return Tw_Stat(TwD, a1, TWS_gadget_Flags) & TW_GADGETFL_TOGGLE ? ttrue : tfalse; } /** * return the group of this gadget */ tgroup Tw_GroupGadget(tw_d TwD, tgadget a1) { return Tw_Stat(TwD, a1, TWS_gadget_Group); } /** * return prev gadget in same group */ tgadget Tw_G_PrevGadget(tw_d TwD, tgadget a1) { return Tw_Stat(TwD, a1, TWS_gadget_G_Prev); } /** * return next gadget in same group */ tgadget Tw_G_NextGadget(tw_d TwD, tgadget a1) { return Tw_Stat(TwD, a1, TWS_gadget_G_Next); } /** * sets given portion of gadget's contents */ void Tw_WriteTextGadget(tw_d TwD, tgadget G, dat Width, dat Height, TW_CONST char *Text, dat Left, dat Up) { Tw_WriteTextsGadget(TwD, G, 1, Width, Height, Text, Left, Up); } /** * clears whole gadget contents, then sets given portion of gadget's contents */ void Tw_SetTextGadget(tw_d TwD, tgadget G, dat Width, dat Height, TW_CONST char *Text, dat Left, dat Up) { /* clear the whole gadget */ Tw_WriteTextsGadget(TwD, G, 1, TW_MAXDAT, TW_MAXDAT, NULL, 0, 0); /* write the specified text */ Tw_WriteTextsGadget(TwD, G, 1, Width, Height, Text, Left, Up); } /** * clears whole gadget contents, then sets given portion of gadget's contents */ void Tw_SetTextsGadget(tw_d TwD, tgadget G, byte bitmap, dat Width, dat Height, TW_CONST char *Text, dat Left, dat Up) { /* clear the whole gadget */ Tw_WriteTextsGadget(TwD, G, bitmap, TW_MAXDAT, TW_MAXDAT, NULL, 0, 0); /* write the specified text */ Tw_WriteTextsGadget(TwD, G, bitmap, Width, Height, Text, Left, Up); } /** * sets given portion of gadget's contents */ void Tw_WriteTRuneGadget(tw_d TwD, tgadget G, dat Width, dat Height, TW_CONST trune *TRune, dat Left, dat Up) { Tw_WriteTRunesGadget(TwD, G, 1, Width, Height, TRune, Left, Up); } /** * clears whole gadget contents, then sets given portion of gadget's contents */ void Tw_SetTRuneGadget(tw_d TwD, tgadget G, dat Width, dat Height, TW_CONST trune *TRune, dat Left, dat Up) { /* clear the whole gadget */ Tw_WriteTRunesGadget(TwD, G, 1, TW_MAXDAT, TW_MAXDAT, NULL, 0, 0); /* write the specified text */ Tw_WriteTRunesGadget(TwD, G, 1, Width, Height, TRune, Left, Up); } /** * clears whole gadget contents, then sets given portion of gadget's contents */ void Tw_SetTRunesGadget(tw_d TwD, tgadget G, byte bitmap, dat Width, dat Height, TW_CONST trune *TRune, dat Left, dat Up) { /* clear the whole gadget */ Tw_WriteTRunesGadget(TwD, G, bitmap, TW_MAXDAT, TW_MAXDAT, NULL, 0, 0); /* write the specified text */ Tw_WriteTRunesGadget(TwD, G, bitmap, Width, Height, TRune, Left, Up); } /** * creates a row for a menu */ trow Tw_Create4MenuRow(tw_d TwD, twindow Window, udat Code, byte Flags, ldat Len, TW_CONST char *Text) { return Tw_Create4MenuAny(TwD, (tobj)Window, (twindow)0, Code, Flags, Len, Text); } /** * creates a menuitem for a menu */ tmenuitem Tw_Create4MenuMenuItem(tdisplay TwD, tobj Parent, twindow Window, byte Flags, dat Len, TW_CONST char *Name) { return Tw_Create4MenuAny(TwD, Parent, Window, (udat)0, Flags, Len, Name); } /***********/ /* tslist flags: */ #define TWS_CLONE_MEM 1 #define TWS_SORTED 2 #define TWS_SCALAR 4 static tslist StatA(tw_d TwD, tobj Id, udat flags, udat hN, TW_CONST udat *h, tslist f); /** * returns information about given object */ tany Tw_Stat(tw_d TwD, tobj Id, udat h) { struct s_tslist f; if (StatA(TwD, Id, TWS_SCALAR, 1, &h, &f)) return f.TSF[0].TWS_field_scalar; return TW_NOID; } /** * returns information about given object */ tslist Tw_StatL(tw_d TwD, tobj Id, udat hN, ...) { tslist TS; va_list ap; va_start(ap, hN); TS = Tw_StatV(TwD, Id, hN, ap); va_end(ap); return TS; } /** * returns information about given object */ tslist Tw_StatA(tw_d TwD, tobj Id, udat hN, TW_CONST udat *h) { return StatA(TwD, Id, 0, hN, h, NULL); } /** * returns information about given object */ tslist Tw_StatV(tw_d TwD, tobj Id, udat hN, va_list ap) { tslist TS = NULL; udat i, *h; if (hN && (h = Tw_AllocMem(hN * sizeof(udat)))) { for (i = 0; i < hN; i++) h[i] = va_arg(ap, int); TS = StatA(TwD, Id, 0, hN, h, NULL); Tw_FreeMem(h); } return TS; } /** * returns information about given object */ tslist Tw_CloneStatL(tw_d TwD, tobj Id, udat hN, ...) { tslist TS; va_list ap; va_start(ap, hN); TS = Tw_CloneStatV(TwD, Id, hN, ap); va_end(ap); return TS; } /** * returns information about given object */ tslist Tw_CloneStatA(tw_d TwD, tobj Id, udat hN, TW_CONST udat *h) { return StatA(TwD, Id, TWS_CLONE_MEM, hN, h, NULL); } /** * returns information about given object */ tslist Tw_CloneStatV(tw_d TwD, tobj Id, udat hN, va_list ap) { tslist TS = NULL; udat i, *h; if (hN && (h = Tw_AllocMem(hN * sizeof(udat)))) { for (i = 0; i < hN; i++) h[i] = va_arg(ap, int); TS = StatA(TwD, Id, TWS_CLONE_MEM, hN, h, NULL); Tw_FreeMem(h); } return TS; } #ifndef __GNUC__ /** * returns information about given object */ tslist TwStatL(tobj Id, udat hN, ...) { tslist TS; va_list ap; va_start(ap, hN); TS = Tw_StatV(Tw_DefaultD, Id, hN, ap); va_end(ap); return TS; } /** * returns information about given object */ tslist TwCloneStatL(tobj Id, udat hN, ...) { tslist TS; va_list ap; va_start(ap, hN); TS = Tw_CloneStatV(Tw_DefaultD, Id, hN, ap); va_end(ap); return TS; } #endif /* !__GNUC__ */ /** * free information about an object that was returned * with one of the Tw_*Stat() functions */ void Tw_DeleteStat(tw_d TwD, tslist TSL) { if (TSL) { if (TSL->flags & TWS_CLONE_MEM) { udat i; tsfield f; for (i = 0; i < TSL->N; i++) { f = TSL->TSF; if (f->type >= TWS_vec && (f->type & ~TWS_vec) < TWS_last && f->TWS_field_vecV) Tw_FreeMem(f->TWS_field_vecV); } } Tw_FreeMem(TSL); } } static int CompareTSF(TW_CONST tsfield f1, TW_CONST tsfield f2) { return (int)f1->label - f2->label; } /** * searches for a specific field in object information */ tsfield Tw_FindStat(tw_d TwD, tslist TSL, udat label) { struct s_tsfield f; f.label = label; return (tsfield)bsearch(&f, TSL->TSF, TSL->N, sizeof(struct s_tsfield), (int (*)(TW_CONST void *, TW_CONST void *))CompareTSF); } static void SortTSL(tslist TSL) { tsfield f, end; udat label; if (!(TSL->flags & TWS_SORTED)) { TSL->flags |= TWS_SORTED; for (label = 0, f = TSL->TSF, end = f + TSL->N; f < end; f++) { if (label > f->label) /* not sorted */ break; label = f->label; } if (f < end) qsort(TSL->TSF, TSL->N, sizeof(struct s_tsfield), (int (*)(TW_CONST void *, TW_CONST void *))CompareTSF); } } static tslist StatScalar(tslist f, byte *data, byte *end) { udat Type, N; Pop(data, udat, N); Pop(data, udat, Type); /* pad */ if (N == 1 && data + 2 * sizeof(udat) <= end) { Pop(data, udat, Type); /* label */ Pop(data, udat, Type); switch (Type) { #define Popcase(type) \ case TWS_CAT(TWS_, type): \ if (data + sizeof(type) <= end) { \ /* avoid padding problems */ \ type tmp; \ Pop(data, type, tmp); \ f->TSF[0].TWS_field_scalar = tmp; \ } \ break Popcase(byte); Popcase(dat); Popcase(ldat); Popcase(tcolor); Popcase(topaque); Popcase(tany); Popcase(trune); Popcase(tcell); Popcase(tobj); #undef Popcase default: return (tslist)0; } return f; } return (tslist)0; } static tslist StatTSL(tw_d TwD, udat flags, byte *data, byte *end) { tslist TSL; tsfield TSF; udat i, N; byte ok = ttrue; Pop(data, udat, N); Pop(data, udat, i); /* pad */ if (N && (TSL = Tw_AllocMem(sizeof(struct s_tslist) + (N - 1) * sizeof(struct s_tsfield)))) { TSL->N = N; TSL->flags = flags; TSF = TSL->TSF; for (i = 0; i < N && ok && data + 2 * sizeof(udat) <= end; i++) { Pop(data, udat, TSF[i].label); Pop(data, udat, TSF[i].type); switch (TSF[i].type) { #define Popcase(type) \ case TWS_CAT(TWS_, type): \ if (data + sizeof(type) <= end) { \ /* avoid padding problems */ \ type tmp; \ Pop(data, type, tmp); \ TSF[i].TWS_field_scalar = tmp; \ } else \ ok = tfalse; \ break Popcase(byte); Popcase(dat); Popcase(ldat); Popcase(tcolor); Popcase(topaque); Popcase(tany); Popcase(trune); Popcase(tcell); Popcase(tobj); #undef Popcase default: if (TSF[i].type >= TWS_vec && (TSF[i].type & ~TWS_vec) <= TWS_last && data + sizeof(uldat) <= end) { Pop(data, uldat, TSF[i].TWS_field_vecL); if (TSF[i].TWS_field_vecL) { if (data + TSF[i].TWS_field_vecL <= end) { if (flags & TWS_CLONE_MEM) { if ((TSF[i].TWS_field_vecV = Tw_AllocMem(TSF[i].TWS_field_vecL))) PopV(data, TSF[i].TWS_field_vecL, TSF[i].TWS_field_vecV); else ok = tfalse; } else PopAddr(data, byte, TSF[i].TWS_field_vecL, TSF[i].TWS_field_vecV); } else ok = tfalse; } else TSF[i].TWS_field_vecV = NULL; } else ok = tfalse; break; } } if (ok && data == end /* paranoia */) { SortTSL(TSL); return TSL; } FailedCall(TwD, TW_ESERVER_BAD_RETURN, order_StatObj); Tw_DeleteStat(TwD, TSL); } return (tslist)0; } static tslist StatA(tw_d TwD, tobj Id, udat flags, udat hN, TW_CONST udat *h, tslist f) { tslist a0; DECL_MyReply uldat My; LOCK; if (Fd != TW_NOFD && (My = id_Tw[order_StatObj]) != TW_NOID && (My != TW_BADID || (My = FindFunctionId(TwD, order_StatObj)) != TW_NOID)) { if (InitRS(TwD)) { My = (sizeof(tobj) + sizeof(udat) + hN * sizeof(udat)); if (WQLeft(My)) { Push(s, tobj, Id); Push(s, udat, hN); PushV(s, hN * sizeof(udat), h); Send(TwD, (My = NextSerial(TwD)), id_Tw[order_StatObj]); if ((MyReply = (void *)Wait4Reply(TwD, My)) && (INIT_MyReply MyCode == OK_MAGIC)) { if (flags & TWS_SCALAR) a0 = StatScalar(f, (byte *)MyData, (byte *)MyReply + MyLen + sizeof(uldat)); else a0 = StatTSL(TwD, flags, (byte *)MyData, (byte *)MyReply + MyLen + sizeof(uldat)); } else { FailedCall(TwD, MyReply && MyCode != (uldat)-1 ? TW_ECALL_BAD_ARG : TW_ECALL_BAD, order_StatObj); a0 = (tslist)TW_NOID; } if (MyReply) KillReply(TwD, (byte *)MyReply, MyLen); UNLK; return a0; } } /* still here? must be out of memory! */ Errno = TW_ESYS_NO_MEM; Fail(TwD); } else if (Fd != TW_NOFD) FailedCall(TwD, TW_ESERVER_NO_FUNCTION, order_StatObj); UNLK; return (tslist)TW_NOID; } /***********/ static void ParseReplies(tw_d TwD) { uldat left, len, rlen, serial; byte *t; byte *rt; t = GetQueue(TwD, QREAD, &len); left = len; /* parse all replies, move messages to QMSG queue, delete malformed replies */ while (left >= sizeof(uldat)) { rt = t; Pop(t, uldat, rlen); left -= sizeof(uldat); if (left >= rlen) { if (rlen < 2 * sizeof(uldat) || (Pop(t, uldat, serial), t -= sizeof(uldat), serial == MSG_MAGIC)) { /* either a MSG, or a malformed reply. In both cases, it will be removed */ if (rlen >= 2 * sizeof(uldat) && serial == MSG_MAGIC) { /* it's a Msg, copy it in its own queue */ /* we no longer need `t', clobber it */ t -= sizeof(uldat); Push(t, uldat, rlen + sizeof(uldat)); ParanoidAddQueueQMSG(TwD, rlen + sizeof(uldat), rt); } /* delete the reply and recalculate t, left, len */ KillReply(TwD, rt, rlen); (void)GetQueue(TwD, QREAD, &rlen); if (rlen) { /* t -= sizeof(uldat); */ left += sizeof(uldat); t = GetQueue(TwD, QREAD, NULL) + (len - left); left -= len - rlen; len = rlen; continue; } return; } t += rlen; left -= rlen; } else { /* the last reply is still incomplete, do not touch it and bail out */ /* left += sizeof(uldat); */ break; } } } #define Delta ((uldat)(size_t) & (((tmsg)0)->Event)) /* nothing to lock here... */ /** * creates an event message */ tmsg Tw_CreateMsg(tw_d TwD, uldat Type, uldat EventLen) { tmsg Msg; if ((Msg = (tmsg)Tw_AllocMem(EventLen += Delta))) { Msg->Len = EventLen; Msg->Magic = tmsg_magic; Msg->Type = Type; } return Msg; } /** * frees an event message: should be called only on messages * created with Tw_CreateMsg(), and only if they are not sent with * Tw_SendMsg() or Tw_BlindSendMsg() */ void Tw_DeleteMsg(tw_d TwD, tmsg Msg) { if (Msg && Msg->Magic == tmsg_magic) Tw_FreeMem(Msg); } /** * sends message to given client, blocking to see if it could be delivered */ byte Tw_SendMsg(tw_d TwD, tmsgport MsgPort, tmsg Msg) { byte ret = tfalse; if (Msg && Msg->Magic == tmsg_magic) { ret = Tw_SendToMsgPort(TwD, MsgPort, Msg->Len, (void *)Msg); Tw_FreeMem(Msg); } return ret; } /** * sends message to given client, without blocking */ void Tw_BlindSendMsg(tw_d TwD, tmsgport MsgPort, tmsg Msg) { if (Msg && Msg->Magic == tmsg_magic) { Tw_BlindSendToMsgPort(TwD, MsgPort, Msg->Len, (void *)Msg); Tw_FreeMem(Msg); } } /** * returns ttrue if server implements all given functions, tfalse otherwise */ byte Tw_FindVFunction(tw_d TwD, va_list V) { void *F, *tryF; uldat i, *id; s_tw_errno *E; while ((F = va_arg(V, void *))) { for (i = 0; (tryF = Functions[i].Fn) && tryF != F; i++) ; if (tryF == F) { id = &id_Tw[i]; if (*id != TW_NOID && (*id != TW_BADID || (*id = FindFunctionId(TwD, i)) != TW_NOID)) continue; E = GetErrnoLocation(TwD); E->E = TW_ESERVER_NO_FUNCTION; E->S = i; } else { Errno = TW_ESERVER_BAD_FUNCTION; } return tfalse; } return ttrue; } byte Tw_FindLFunction(tw_d TwD, ...) { byte ret; va_list V; va_start(V, TwD); ret = Tw_FindVFunction(TwD, V); va_end(V); return ret; } #ifndef __GNUC__ byte TwFindLFunction(void *F, ...) { byte ret; va_list V; if (F) { va_start(V, F); ret = Tw_FindVFunction(Tw_DefaultD, F, V); va_end(V); return ret; } return ttrue; } #endif void Tw_MergeHyphensArgv(int argc, char **argv) { char *S; while (argc) { if ((S = *argv) && S[0] == '-' && S[1] == '-' && S[2] && S[3]) (*argv)++; argv++, argc--; } } #ifdef CONF_SOCKET_GZ static voidpf Tw_ZAlloc(voidpf opaque, uInt items, uInt size) { void *ret = Tw_AllocMem(items * (size_t)size); return ret ? (voidpf)ret : Z_NULL; } static void Tw_ZFree(voidpf opaque, voidpf address) { if (address != Z_NULL) Tw_FreeMem((void *)address); } TW_INLINE byte *FillQueue(tw_d TwD, byte i, uldat *len) { uldat delta = Qmax[i] - Qlen[i] - Qstart[i]; Qlen[i] += delta; if (len) *len = delta; return Queue[i] + Qstart[i] + Qlen[i] - delta; } /* compress data before sending */ static uldat Gzip(tw_d TwD) { uldat oldQWRITE = Qlen[QWRITE], delta, tmp; z_streamp z = zW; int zret = Z_OK; /* compress the queue */ if (Qlen[QWRITE]) { z->next_in = GetQueue(TwD, QWRITE, &tmp); z->avail_in = tmp; z->next_out = FillQueue(TwD, QgzWRITE, &tmp); z->avail_out = tmp; while (z->avail_in && zret == Z_OK) { if (z->avail_out < (delta = z->avail_in + 12)) { if (Grow(TwD, QgzWRITE, delta - z->avail_out)) { Qlen[QgzWRITE] -= delta; z->next_out = FillQueue(TwD, QgzWRITE, &tmp); z->avail_out = tmp; } else { /* out of memory ! */ Errno = TW_ESYS_NO_MEM; Panic(TwD); break; } } zret = deflate(z, Z_SYNC_FLUSH); /* update the compressed queue */ Qlen[QgzWRITE] -= z->avail_out; } } if (Fd != TW_NOFD) { /* update the uncompressed queue */ DeQueue(TwD, QWRITE, Qlen[QWRITE] - z->avail_in); if (zret == Z_OK) return oldQWRITE; else { Errno = TW_EGZIP_INTERNAL; Panic(TwD); } } return tfalse; } static uldat Gunzip(tw_d TwD) { uldat oldQRead = Qlen[QREAD], delta, tmp; int zret = Z_OK; z_streamp z = zR; /* uncompress the queue */ if (Qlen[QgzREAD]) { z->next_in = GetQueue(TwD, QgzREAD, &tmp); z->avail_in = tmp; z->next_out = FillQueue(TwD, QREAD, &tmp); z->avail_out = tmp; while (z->avail_in && zret == Z_OK) { /* approx. guess of uncompression ratio: 1 to 5 */ /* in case we guess wrong, inflate() will tell us to make more space */ if (z->avail_out < (delta = 5 * z->avail_in + 12)) { if (Grow(TwD, QREAD, delta - z->avail_out)) { Qlen[QREAD] -= delta; z->next_out = FillQueue(TwD, QREAD, &tmp); z->avail_out = tmp; } else { /* out of memory ! */ Errno = TW_ESYS_NO_MEM; Panic(TwD); break; } } zret = inflate(z, Z_SYNC_FLUSH); /* update the uncompressed queue */ Qlen[QREAD] -= z->avail_out; } } if (Fd != TW_NOFD) { /* update the compressed queue */ DeQueue(TwD, QgzREAD, Qlen[QgzREAD] - z->avail_in); if (zret == Z_OK) return Qlen[QREAD] - oldQRead; else { Errno = TW_EGZIP_BAD_PROTOCOL; Panic(TwD); } } return tfalse; } /** * tries to enable compression on the connection; returns ttrue if succeeded */ byte Tw_EnableGzip(tw_d TwD) { if (!GzipFlag && Tw_CanCompress(TwD)) { if ((zW = Tw_AllocMem(sizeof(*zW))) && (zR = Tw_AllocMem(sizeof(*zR)))) { if (Tw_AllocMem == malloc) { zW->zalloc = zR->zalloc = Z_NULL; zW->zfree = zR->zfree = Z_NULL; } else { zW->zalloc = zR->zalloc = Tw_ZAlloc; zW->zfree = zR->zfree = Tw_ZFree; } zW->opaque = zR->opaque = NULL; if (deflateInit(zW, Z_BEST_COMPRESSION) == Z_OK) { if (inflateInit(zR) == Z_OK) { if (Tw_DoCompress(TwD, ttrue)) return GzipFlag = ttrue; inflateEnd(zR); } deflateEnd(zW); } } if (zR) Tw_FreeMem(zR); if (zW) Tw_FreeMem(zW); } return tfalse; } /** * tries to disable compression on the connection; returns ttrue if succeeded */ byte Tw_DisableGzip(tw_d TwD) { if (GzipFlag && (Fd == TW_NOFD || Tw_DoCompress(TwD, tfalse) || Fd == TW_NOFD)) { inflateEnd(zR); deflateEnd(zW); Tw_FreeMem(zR); Tw_FreeMem(zW); GzipFlag = tfalse; return ttrue; } return tfalse; } #else /* !CONF_SOCKET_GZ */ byte Tw_EnableGzip(tw_d TwD) { return tfalse; } byte Tw_DisableGzip(tw_d TwD) { return tfalse; } #endif /* CONF_SOCKET_GZ */ TW_INLINE void TWS_2_proto(udat tws_type, byte proto[2]) { if (tws_type & TWS_vec) { proto[0] = 'V'; } else if (tws_type == TWS_void) { proto[0] = 'v'; } else proto[0] = '_'; if ((tws_type &= TWS_last) == TWS_void) { /* turn TWS_void ('\0') into '\xFE' */ proto[1] = TWS_void_CHR; } else if (tws_type < TWS_highest) { proto[1] = tws_type; } else { /* safe assumption */ proto[0] = '_'; proto[1] = TWS_tany; } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/libtw1_m4.h�������������������������������������������������������������������0000664�0000000�0000000�00000025034�13775351206�0016543�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* This file was automatically generated from m4/libtw1.m4, do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* clang-format off */ /* To avoid troubles with strlen(), you should not use '\0' or "\0" */ /* Also, using TWS_obj is really a good idea */ #define magic_id_STR(x) "\xFF" { Tw_FindFunction, 12, 10, "Tw_FindFunction", "0" "_" TWS_uldat_STR"_" TWS_byte_STR"V" TWS_char_STR"_" TWS_byte_STR"V" TWS_char_STR }, { Tw_SyncSocket, 10, 2, "Tw_SyncSocket", "0" "_" TWS_byte_STR }, { Tw_ServerSizeof, 12, 4, "Tw_ServerSizeof", "0" "_" TWS_byte_STR"_" TWS_byte_STR }, { Tw_CanCompress, 11, 2, "Tw_CanCompress", "0" "_" TWS_byte_STR }, { Tw_DoCompress, 10, 4, "Tw_DoCompress", "0" "_" TWS_byte_STR"_" TWS_byte_STR }, { Tw_NeedResizeDisplay, 17, 2, "Tw_NeedResizeDisplay", "0" "v" TWS_void_STR }, { Tw_AttachHW, 8, 8, "Tw_AttachHW", "0" "v" TWS_void_STR"_" TWS_uldat_STR"V" TWS_char_STR"_" TWS_byte_STR }, { Tw_DetachHW, 8, 6, "Tw_DetachHW", "0" "_" TWS_byte_STR"_" TWS_uldat_STR"V" TWS_char_STR }, { Tw_SetFontTranslation, 18, 4, "Tw_SetFontTranslation", "0" "v" TWS_void_STR"V" TWS_byte_STR }, { Tw_SetTRuneTranslation, 19, 4, "Tw_SetTRuneTranslation", "0" "v" TWS_void_STR"V" TWS_trune_STR }, { Tw_DeleteObj, 9, 4, "Tw_DeleteObj", "0" "v" TWS_void_STR"x" magic_id_STR(obj) }, { Tw_ChangeFieldObj, 14, 10, "Tw_ChangeFieldObj", "2" "v" TWS_void_STR"x" magic_id_STR(obj)"_" TWS_udat_STR"_" TWS_uldat_STR"_" TWS_uldat_STR }, { Tw_CreateWidget, 12, 16, "Tw_CreateWidget", "0" "x" magic_id_STR(widget)"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_uldat_STR"_" TWS_uldat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_tcell_STR }, { Tw_RecursiveDeleteWidget, 21, 4, "Tw_RecursiveDeleteWidget", "0" "v" TWS_void_STR"x" magic_id_STR(widget) }, { Tw_MapWidget, 9, 6, "Tw_MapWidget", "2" "v" TWS_void_STR"x" magic_id_STR(widget)"x" magic_id_STR(widget) }, { Tw_UnMapWidget, 11, 4, "Tw_UnMapWidget", "2" "v" TWS_void_STR"x" magic_id_STR(widget) }, { Tw_SetXYWidget, 11, 8, "Tw_SetXYWidget", "0" "v" TWS_void_STR"x" magic_id_STR(widget)"_" TWS_dat_STR"_" TWS_dat_STR }, { Tw_ResizeWidget, 12, 8, "Tw_ResizeWidget", "0" "v" TWS_void_STR"x" magic_id_STR(widget)"_" TWS_dat_STR"_" TWS_dat_STR }, { Tw_ScrollWidget, 12, 8, "Tw_ScrollWidget", "0" "v" TWS_void_STR"x" magic_id_STR(widget)"_" TWS_ldat_STR"_" TWS_ldat_STR }, { Tw_DrawWidget, 10, 18, "Tw_DrawWidget", "0" "v" TWS_void_STR"x" magic_id_STR(widget)"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR"W" TWS_char_STR"W" TWS_trune_STR"W" TWS_tcell_STR }, { Tw_SetVisibleWidget, 16, 6, "Tw_SetVisibleWidget", "0" "v" TWS_void_STR"x" magic_id_STR(widget)"_" TWS_byte_STR }, { Tw_FocusSubWidget, 14, 4, "Tw_FocusSubWidget", "0" "v" TWS_void_STR"x" magic_id_STR(widget) }, { Tw_FindWidgetAtWidget, 18, 8, "Tw_FindWidgetAtWidget", "2" "x" magic_id_STR(widget)"x" magic_id_STR(widget)"_" TWS_dat_STR"_" TWS_dat_STR }, { Tw_RaiseWidget, 11, 4, "Tw_RaiseWidget", "2" "v" TWS_void_STR"x" magic_id_STR(widget) }, { Tw_LowerWidget, 11, 4, "Tw_LowerWidget", "2" "v" TWS_void_STR"x" magic_id_STR(widget) }, { Tw_RestackChildrenWidget, 21, 8, "Tw_RestackChildrenWidget", "0" "v" TWS_void_STR"x" magic_id_STR(widget)"_" TWS_uldat_STR"X" magic_id_STR(widget) }, { Tw_CirculateChildrenWidget, 23, 6, "Tw_CirculateChildrenWidget", "0" "v" TWS_void_STR"x" magic_id_STR(widget)"_" TWS_byte_STR }, { Tw_CreateGadget, 12, 28, "Tw_CreateGadget", "0" "x" magic_id_STR(gadget)"x" magic_id_STR(widget)"_" TWS_dat_STR"_" TWS_dat_STR"W" TWS_char_STR"_" TWS_uldat_STR"_" TWS_uldat_STR"_" TWS_udat_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { Tw_CreateButtonGadget, 18, 24, "Tw_CreateButtonGadget", "1" "x" magic_id_STR(gadget)"x" magic_id_STR(widget)"_" TWS_dat_STR"_" TWS_dat_STR"V" TWS_char_STR"_" TWS_uldat_STR"_" TWS_udat_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { Tw_WriteTextsGadget, 16, 16, "Tw_WriteTextsGadget", "2" "v" TWS_void_STR"x" magic_id_STR(gadget)"_" TWS_byte_STR"_" TWS_dat_STR"_" TWS_dat_STR"W" TWS_char_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { Tw_WriteTRunesGadget, 17, 16, "Tw_WriteTRunesGadget", "2" "v" TWS_void_STR"x" magic_id_STR(gadget)"_" TWS_byte_STR"_" TWS_dat_STR"_" TWS_dat_STR"W" TWS_trune_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { Tw_CreateWindow, 12, 24, "Tw_CreateWindow", "0" "x" magic_id_STR(window)"_" TWS_dat_STR"V" TWS_char_STR"W" TWS_tcolor_STR"x" magic_id_STR(menu)"_" TWS_tcolor_STR"_" TWS_uldat_STR"_" TWS_uldat_STR"_" TWS_uldat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { Tw_Create4MenuWindow, 17, 4, "Tw_Create4MenuWindow", "1" "x" magic_id_STR(window)"x" magic_id_STR(menu) }, { Tw_WriteCharsetWindow, 18, 8, "Tw_WriteCharsetWindow", "0" "v" TWS_void_STR"x" magic_id_STR(window)"_" TWS_uldat_STR"V" TWS_char_STR }, { Tw_WriteUtf8Window, 15, 8, "Tw_WriteUtf8Window", "0" "v" TWS_void_STR"x" magic_id_STR(window)"_" TWS_uldat_STR"V" TWS_char_STR }, { Tw_WriteTRuneWindow, 16, 8, "Tw_WriteTRuneWindow", "0" "v" TWS_void_STR"x" magic_id_STR(window)"_" TWS_uldat_STR"V" TWS_trune_STR }, { Tw_WriteTCellWindow, 16, 12, "Tw_WriteTCellWindow", "0" "v" TWS_void_STR"x" magic_id_STR(window)"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_uldat_STR"V" TWS_tcell_STR }, { Tw_GotoXYWindow, 12, 8, "Tw_GotoXYWindow", "2" "v" TWS_void_STR"x" magic_id_STR(window)"_" TWS_ldat_STR"_" TWS_ldat_STR }, { Tw_SetTitleWindow, 14, 8, "Tw_SetTitleWindow", "0" "v" TWS_void_STR"x" magic_id_STR(window)"_" TWS_dat_STR"V" TWS_char_STR }, { Tw_SetColTextWindow, 16, 6, "Tw_SetColTextWindow", "2" "v" TWS_void_STR"x" magic_id_STR(window)"_" TWS_tcolor_STR }, { Tw_SetColorsWindow, 15, 24, "Tw_SetColorsWindow", "2" "v" TWS_void_STR"x" magic_id_STR(window)"_" TWS_udat_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR }, { Tw_ConfigureWindow, 15, 18, "Tw_ConfigureWindow", "2" "v" TWS_void_STR"x" magic_id_STR(window)"_" TWS_byte_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { Tw_FindRowByCodeWindow, 19, 6, "Tw_FindRowByCodeWindow", "0" "x" magic_id_STR(row)"x" magic_id_STR(window)"_" TWS_dat_STR }, { Tw_CreateGroup, 11, 2, "Tw_CreateGroup", "0" "x" magic_id_STR(group) }, { Tw_InsertGadgetGroup, 17, 6, "Tw_InsertGadgetGroup", "2" "v" TWS_void_STR"x" magic_id_STR(group)"x" magic_id_STR(gadget) }, { Tw_RemoveGadgetGroup, 17, 6, "Tw_RemoveGadgetGroup", "2" "v" TWS_void_STR"x" magic_id_STR(group)"x" magic_id_STR(gadget) }, { Tw_GetSelectedGadgetGroup, 22, 4, "Tw_GetSelectedGadgetGroup", "2" "x" magic_id_STR(gadget)"x" magic_id_STR(group) }, { Tw_SetSelectedGadgetGroup, 22, 6, "Tw_SetSelectedGadgetGroup", "2" "v" TWS_void_STR"x" magic_id_STR(group)"x" magic_id_STR(gadget) }, { Tw_RaiseRow, 8, 4, "Tw_RaiseRow", "2" "v" TWS_void_STR"x" magic_id_STR(row) }, { Tw_LowerRow, 8, 4, "Tw_LowerRow", "2" "v" TWS_void_STR"x" magic_id_STR(row) }, { Tw_RestackChildrenRow, 18, 8, "Tw_RestackChildrenRow", "0" "v" TWS_void_STR"x" magic_id_STR(obj)"_" TWS_uldat_STR"X" magic_id_STR(row) }, { Tw_CirculateChildrenRow, 20, 6, "Tw_CirculateChildrenRow", "0" "v" TWS_void_STR"x" magic_id_STR(obj)"_" TWS_byte_STR }, { Tw_Create4MenuAny, 14, 14, "Tw_Create4MenuAny", "0" "x" magic_id_STR(row)"x" magic_id_STR(obj)"x" magic_id_STR(window)"_" TWS_udat_STR"_" TWS_byte_STR"_" TWS_ldat_STR"V" TWS_char_STR }, { Tw_Create4MenuCommonMenuItem, 25, 4, "Tw_Create4MenuCommonMenuItem", "1" "_" TWS_uldat_STR"x" magic_id_STR(menu) }, { Tw_CreateMenu, 10, 16, "Tw_CreateMenu", "0" "x" magic_id_STR(menu)"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_byte_STR }, { Tw_SetInfoMenu, 11, 12, "Tw_SetInfoMenu", "2" "v" TWS_void_STR"x" magic_id_STR(menu)"_" TWS_byte_STR"_" TWS_ldat_STR"V" TWS_char_STR"W" TWS_tcolor_STR }, { Tw_CreateMsgPort, 13, 6, "Tw_CreateMsgPort", "0" "x" magic_id_STR(msgport)"_" TWS_byte_STR"V" TWS_char_STR }, { Tw_FindMsgPort, 11, 8, "Tw_FindMsgPort", "0" "x" magic_id_STR(msgport)"x" magic_id_STR(msgport)"_" TWS_byte_STR"V" TWS_char_STR }, { Tw_BgImageScreen, 13, 10, "Tw_BgImageScreen", "2" "v" TWS_void_STR"x" magic_id_STR(screen)"_" TWS_dat_STR"_" TWS_dat_STR"V" TWS_tcell_STR }, { Tw_PrevObj, 7, 4, "Tw_PrevObj", "0" "x" magic_id_STR(obj)"x" magic_id_STR(obj) }, { Tw_NextObj, 7, 4, "Tw_NextObj", "0" "x" magic_id_STR(obj)"x" magic_id_STR(obj) }, { Tw_ParentObj, 9, 4, "Tw_ParentObj", "0" "x" magic_id_STR(obj)"x" magic_id_STR(obj) }, { Tw_FirstScreen, 11, 2, "Tw_FirstScreen", "0" "x" magic_id_STR(screen) }, { Tw_FirstWidget, 11, 4, "Tw_FirstWidget", "0" "x" magic_id_STR(widget)"x" magic_id_STR(widget) }, { Tw_FirstMsgPort, 12, 2, "Tw_FirstMsgPort", "0" "x" magic_id_STR(msgport) }, { Tw_FirstMenu, 9, 4, "Tw_FirstMenu", "0" "x" magic_id_STR(menu)"x" magic_id_STR(msgport) }, { Tw_FirstW, 6, 4, "Tw_FirstW", "0" "x" magic_id_STR(widget)"x" magic_id_STR(msgport) }, { Tw_FirstGroup, 10, 4, "Tw_FirstGroup", "0" "x" magic_id_STR(group)"x" magic_id_STR(msgport) }, { Tw_FirstMutex, 10, 4, "Tw_FirstMutex", "0" "x" magic_id_STR(mutex)"x" magic_id_STR(msgport) }, { Tw_FirstMenuItem, 13, 4, "Tw_FirstMenuItem", "0" "x" magic_id_STR(menuitem)"x" magic_id_STR(menu) }, { Tw_FirstGadget, 11, 4, "Tw_FirstGadget", "0" "x" magic_id_STR(gadget)"x" magic_id_STR(group) }, { Tw_GetDisplayWidth, 15, 2, "Tw_GetDisplayWidth", "0" "_" TWS_dat_STR }, { Tw_GetDisplayHeight, 16, 2, "Tw_GetDisplayHeight", "0" "_" TWS_dat_STR }, { Tw_GetAll, 6, 2, "Tw_GetAll", "0" "x" magic_id_STR(all) }, { Tw_SendToMsgPort, 13, 8, "Tw_SendToMsgPort", "0" "_" TWS_byte_STR"x" magic_id_STR(msgport)"_" TWS_udat_STR"V" TWS_byte_STR }, { Tw_BlindSendToMsgPort, 18, 8, "Tw_BlindSendToMsgPort", "0" "v" TWS_void_STR"x" magic_id_STR(msgport)"_" TWS_udat_STR"V" TWS_byte_STR }, { Tw_GetOwnerSelection, 17, 2, "Tw_GetOwnerSelection", "0" "x" magic_id_STR(obj) }, { Tw_SetOwnerSelection, 17, 6, "Tw_SetOwnerSelection", "0" "v" TWS_void_STR"_" TWS_tany_STR"_" TWS_tany_STR }, { Tw_RequestSelection, 16, 6, "Tw_RequestSelection", "0" "v" TWS_void_STR"x" magic_id_STR(obj)"_" TWS_uldat_STR }, { Tw_NotifySelection, 15, 14, "Tw_NotifySelection", "0" "v" TWS_void_STR"x" magic_id_STR(obj)"_" TWS_uldat_STR"_" TWS_uldat_STR"V" TWS_char_STR"_" TWS_uldat_STR"V" TWS_char_STR }, { Tw_SetServerUid, 12, 6, "Tw_SetServerUid", "0" "_" TWS_byte_STR"_" TWS_uldat_STR"_" TWS_byte_STR }, ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/libtw2_m4.h�������������������������������������������������������������������0000664�0000000�0000000�00000035102�13775351206�0016541�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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 file was automatically generated with m4 from m4/libtw2.m4, do not edit! */ #define n(a) (tany)a #define N(a) (tany)(topaque)(TW_CONST void *)a static uldat _Tw_FindFunction(tw_d TwD, byte a1, TW_CONST char *a2, byte a3, TW_CONST char *a4) { return (uldat)_Tw_EncodeCall(ENCODE_FL_NOLOCK|0, order_FindFunction, TwD , n(a1) , n((a1) * sizeof(char)), N(a2) , n(a3) , n((a3) * sizeof(char)), N(a4)); } static byte _Tw_SyncSocket(tw_d TwD) { return (byte)_Tw_EncodeCall(ENCODE_FL_NOLOCK|0, order_SyncSocket, TwD ); } byte Tw_ServerSizeof(tw_d TwD, byte a1) { return (byte)_Tw_EncodeCall(0, order_ServerSizeof, TwD , n(a1)); } byte Tw_CanCompress(tw_d TwD) { return (byte)_Tw_EncodeCall(0, order_CanCompress, TwD ); } byte Tw_DoCompress(tw_d TwD, byte a1) { return (byte)_Tw_EncodeCall(0, order_DoCompress, TwD , n(a1)); } void Tw_NeedResizeDisplay(tw_d TwD) { _Tw_EncodeCall(ENCODE_FL_VOID, order_NeedResizeDisplay, TwD ); } void Tw_AttachHW(tw_d TwD, uldat a1, TW_CONST char *a2, byte a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_AttachHW, TwD , n(a1) , n((a1) * sizeof(char)), N(a2) , n(a3)); } byte Tw_DetachHW(tw_d TwD, uldat a1, TW_CONST char *a2) { return (byte)_Tw_EncodeCall(0, order_DetachHW, TwD , n(a1) , n((a1) * sizeof(char)), N(a2)); } void Tw_SetFontTranslation(tw_d TwD, TW_CONST byte *a1) { _Tw_EncodeCall(ENCODE_FL_VOID, order_SetFontTranslation, TwD , n((0x80) * sizeof(byte)), N(a1)); } void Tw_SetTRuneTranslation(tw_d TwD, TW_CONST trune *a1) { _Tw_EncodeCall(ENCODE_FL_VOID, order_SetTRuneTranslation, TwD , n((0x80) * sizeof(trune)), N(a1)); } void Tw_DeleteObj(tw_d TwD, tobj a1) { _Tw_EncodeCall(ENCODE_FL_VOID, order_DeleteObj, TwD , n(a1)); } void Tw_ChangeFieldObj(tw_d TwD, tobj a1, udat a2, uldat a3, uldat a4) { _Tw_EncodeCall(ENCODE_FL_VOID, order_ChangeFieldObj, TwD , n(a1) , n(a2) , n(a3) , n(a4)); } twidget Tw_CreateWidget(tw_d TwD, dat a1, dat a2, uldat a3, uldat a4, dat a5, dat a6, tcell a7) { return (tobj)_Tw_EncodeCall(0, order_CreateWidget, TwD , n(a1) , n(a2) , n(a3) , n(a4) , n(a5) , n(a6) , n(a7)); } void Tw_RecursiveDeleteWidget(tw_d TwD, twidget a1) { _Tw_EncodeCall(ENCODE_FL_VOID, order_RecursiveDeleteWidget, TwD , n(a1)); } void Tw_MapWidget(tw_d TwD, twidget a1, twidget a2) { _Tw_EncodeCall(ENCODE_FL_VOID, order_MapWidget, TwD , n(a1) , n(a2)); } void Tw_UnMapWidget(tw_d TwD, twidget a1) { _Tw_EncodeCall(ENCODE_FL_VOID, order_UnMapWidget, TwD , n(a1)); } void Tw_SetXYWidget(tw_d TwD, twidget a1, dat a2, dat a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_SetXYWidget, TwD , n(a1) , n(a2) , n(a3)); } void Tw_ResizeWidget(tw_d TwD, twidget a1, dat a2, dat a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_ResizeWidget, TwD , n(a1) , n(a2) , n(a3)); } void Tw_ScrollWidget(tw_d TwD, twidget a1, ldat a2, ldat a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_ScrollWidget, TwD , n(a1) , n(a2) , n(a3)); } void Tw_DrawWidget(tw_d TwD, twidget a1, dat a2, dat a3, dat a4, dat a5, TW_CONST char *a6, TW_CONST trune *a7, TW_CONST tcell *a8) { _Tw_EncodeCall(ENCODE_FL_VOID, order_DrawWidget, TwD , n(a1) , n(a2) , n(a3) , n(a4) , n(a5) , n((a2*a3) * sizeof(char)), N(a6) , n((a2*a3) * sizeof(trune)), N(a7) , n((a2*a3) * sizeof(tcell)), N(a8)); } void Tw_SetVisibleWidget(tw_d TwD, twidget a1, byte a2) { _Tw_EncodeCall(ENCODE_FL_VOID, order_SetVisibleWidget, TwD , n(a1) , n(a2)); } void Tw_FocusSubWidget(tw_d TwD, twidget a1) { _Tw_EncodeCall(ENCODE_FL_VOID, order_FocusSubWidget, TwD , n(a1)); } twidget Tw_FindWidgetAtWidget(tw_d TwD, twidget a1, dat a2, dat a3) { return (tobj)_Tw_EncodeCall(0, order_FindWidgetAtWidget, TwD , n(a1) , n(a2) , n(a3)); } void Tw_RaiseWidget(tw_d TwD, twidget a1) { _Tw_EncodeCall(ENCODE_FL_VOID, order_RaiseWidget, TwD , n(a1)); } void Tw_LowerWidget(tw_d TwD, twidget a1) { _Tw_EncodeCall(ENCODE_FL_VOID, order_LowerWidget, TwD , n(a1)); } void Tw_RestackChildrenWidget(tw_d TwD, twidget a1, uldat a2, TW_CONST twidget *a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_RestackChildrenWidget, TwD , n(a1) , n(a2) , n((a2) * sizeof(tobj)), N(a3)); } void Tw_CirculateChildrenWidget(tw_d TwD, twidget a1, byte a2) { _Tw_EncodeCall(ENCODE_FL_VOID, order_CirculateChildrenWidget, TwD , n(a1) , n(a2)); } tgadget Tw_CreateGadget(tw_d TwD, twidget a1, dat a2, dat a3, TW_CONST char *a4, uldat a5, uldat a6, udat a7, tcolor a8, tcolor a9, tcolor a10, tcolor a11, dat a12, dat a13) { return (tobj)_Tw_EncodeCall(0, order_CreateGadget, TwD , n(a1) , n(a2) , n(a3) , n((a2*a3) * sizeof(char)), N(a4) , n(a5) , n(a6) , n(a7) , n(a8) , n(a9) , n(a10) , n(a11) , n(a12) , n(a13)); } tgadget Tw_CreateButtonGadget(tw_d TwD, twidget a1, dat a2, dat a3, TW_CONST char *a4, uldat a5, udat a6, tcolor a7, tcolor a8, tcolor a9, dat a10, dat a11) { return (tobj)_Tw_EncodeCall(0, order_CreateButtonGadget, TwD , n(a1) , n(a2) , n(a3) , n((a2*a3) * sizeof(char)), N(a4) , n(a5) , n(a6) , n(a7) , n(a8) , n(a9) , n(a10) , n(a11)); } void Tw_WriteTextsGadget(tw_d TwD, tgadget a1, byte a2, dat a3, dat a4, TW_CONST char *a5, dat a6, dat a7) { _Tw_EncodeCall(ENCODE_FL_VOID, order_WriteTextsGadget, TwD , n(a1) , n(a2) , n(a3) , n(a4) , n((a2*a3) * sizeof(char)), N(a5) , n(a6) , n(a7)); } void Tw_WriteTRunesGadget(tw_d TwD, tgadget a1, byte a2, dat a3, dat a4, TW_CONST trune *a5, dat a6, dat a7) { _Tw_EncodeCall(ENCODE_FL_VOID, order_WriteTRunesGadget, TwD , n(a1) , n(a2) , n(a3) , n(a4) , n((a2*a3) * sizeof(trune)), N(a5) , n(a6) , n(a7)); } twindow Tw_CreateWindow(tw_d TwD, dat a1, TW_CONST char *a2, TW_CONST tcolor *a3, tmenu a4, tcolor a5, uldat a6, uldat a7, uldat a8, dat a9, dat a10, dat a11) { return (tobj)_Tw_EncodeCall(0, order_CreateWindow, TwD , n(a1) , n((a1) * sizeof(char)), N(a2) , n((a1) * sizeof(tcolor)), N(a3) , n(a4) , n(a5) , n(a6) , n(a7) , n(a8) , n(a9) , n(a10) , n(a11)); } twindow Tw_Create4MenuWindow(tw_d TwD, tmenu a1) { return (tobj)_Tw_EncodeCall(0, order_Create4MenuWindow, TwD , n(a1)); } void Tw_WriteCharsetWindow(tw_d TwD, twindow a1, uldat a2, TW_CONST char *a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_WriteCharsetWindow, TwD , n(a1) , n(a2) , n((a2) * sizeof(char)), N(a3)); } void Tw_WriteUtf8Window(tw_d TwD, twindow a1, uldat a2, TW_CONST char *a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_WriteUtf8Window, TwD , n(a1) , n(a2) , n((a2) * sizeof(char)), N(a3)); } void Tw_WriteTRuneWindow(tw_d TwD, twindow a1, uldat a2, TW_CONST trune *a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_WriteTRuneWindow, TwD , n(a1) , n(a2) , n((a2) * sizeof(trune)), N(a3)); } void Tw_WriteTCellWindow(tw_d TwD, twindow a1, dat a2, dat a3, uldat a4, TW_CONST tcell *a5) { _Tw_EncodeCall(ENCODE_FL_VOID, order_WriteTCellWindow, TwD , n(a1) , n(a2) , n(a3) , n(a4) , n((a4) * sizeof(tcell)), N(a5)); } void Tw_GotoXYWindow(tw_d TwD, twindow a1, ldat a2, ldat a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_GotoXYWindow, TwD , n(a1) , n(a2) , n(a3)); } void Tw_SetTitleWindow(tw_d TwD, twindow a1, dat a2, TW_CONST char *a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_SetTitleWindow, TwD , n(a1) , n(a2) , n((a2) * sizeof(char)), N(a3)); } void Tw_SetColTextWindow(tw_d TwD, twindow a1, tcolor a2) { _Tw_EncodeCall(ENCODE_FL_VOID, order_SetColTextWindow, TwD , n(a1) , n(a2)); } void Tw_SetColorsWindow(tw_d TwD, twindow a1, udat a2, tcolor a3, tcolor a4, tcolor a5, tcolor a6, tcolor a7, tcolor a8, tcolor a9, tcolor a10, tcolor a11) { _Tw_EncodeCall(ENCODE_FL_VOID, order_SetColorsWindow, TwD , n(a1) , n(a2) , n(a3) , n(a4) , n(a5) , n(a6) , n(a7) , n(a8) , n(a9) , n(a10) , n(a11)); } void Tw_ConfigureWindow(tw_d TwD, twindow a1, byte a2, dat a3, dat a4, dat a5, dat a6, dat a7, dat a8) { _Tw_EncodeCall(ENCODE_FL_VOID, order_ConfigureWindow, TwD , n(a1) , n(a2) , n(a3) , n(a4) , n(a5) , n(a6) , n(a7) , n(a8)); } trow Tw_FindRowByCodeWindow(tw_d TwD, twindow a1, dat a2) { return (tobj)_Tw_EncodeCall(0, order_FindRowByCodeWindow, TwD , n(a1) , n(a2)); } tgroup Tw_CreateGroup(tw_d TwD) { return (tobj)_Tw_EncodeCall(0, order_CreateGroup, TwD ); } void Tw_InsertGadgetGroup(tw_d TwD, tgroup a1, tgadget a2) { _Tw_EncodeCall(ENCODE_FL_VOID, order_InsertGadgetGroup, TwD , n(a1) , n(a2)); } void Tw_RemoveGadgetGroup(tw_d TwD, tgroup a1, tgadget a2) { _Tw_EncodeCall(ENCODE_FL_VOID, order_RemoveGadgetGroup, TwD , n(a1) , n(a2)); } tgadget Tw_GetSelectedGadgetGroup(tw_d TwD, tgroup a1) { return (tobj)_Tw_EncodeCall(0, order_GetSelectedGadgetGroup, TwD , n(a1)); } void Tw_SetSelectedGadgetGroup(tw_d TwD, tgroup a1, tgadget a2) { _Tw_EncodeCall(ENCODE_FL_VOID, order_SetSelectedGadgetGroup, TwD , n(a1) , n(a2)); } void Tw_RaiseRow(tw_d TwD, trow a1) { _Tw_EncodeCall(ENCODE_FL_VOID, order_RaiseRow, TwD , n(a1)); } void Tw_LowerRow(tw_d TwD, trow a1) { _Tw_EncodeCall(ENCODE_FL_VOID, order_LowerRow, TwD , n(a1)); } void Tw_RestackChildrenRow(tw_d TwD, tobj a1, uldat a2, TW_CONST trow *a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_RestackChildrenRow, TwD , n(a1) , n(a2) , n((a2) * sizeof(tobj)), N(a3)); } void Tw_CirculateChildrenRow(tw_d TwD, tobj a1, byte a2) { _Tw_EncodeCall(ENCODE_FL_VOID, order_CirculateChildrenRow, TwD , n(a1) , n(a2)); } trow Tw_Create4MenuAny(tw_d TwD, tobj a1, twindow a2, udat a3, byte a4, ldat a5, TW_CONST char *a6) { return (tobj)_Tw_EncodeCall(0, order_Create4MenuAny, TwD , n(a1) , n(a2) , n(a3) , n(a4) , n(a5) , n((a5) * sizeof(char)), N(a6)); } uldat Tw_Create4MenuCommonMenuItem(tw_d TwD, tmenu a1) { return (uldat)_Tw_EncodeCall(0, order_Create4MenuCommonMenuItem, TwD , n(a1)); } tmenu Tw_CreateMenu(tw_d TwD, tcolor a1, tcolor a2, tcolor a3, tcolor a4, tcolor a5, tcolor a6, byte a7) { return (tobj)_Tw_EncodeCall(0, order_CreateMenu, TwD , n(a1) , n(a2) , n(a3) , n(a4) , n(a5) , n(a6) , n(a7)); } void Tw_SetInfoMenu(tw_d TwD, tmenu a1, byte a2, ldat a3, TW_CONST char *a4, TW_CONST tcolor *a5) { _Tw_EncodeCall(ENCODE_FL_VOID, order_SetInfoMenu, TwD , n(a1) , n(a2) , n(a3) , n((a3) * sizeof(char)), N(a4) , n((a3) * sizeof(tcolor)), N(a5)); } tmsgport Tw_CreateMsgPort(tw_d TwD, byte a1, TW_CONST char *a2) { return (tobj)_Tw_EncodeCall(0, order_CreateMsgPort, TwD , n(a1) , n((a1) * sizeof(char)), N(a2)); } tmsgport Tw_FindMsgPort(tw_d TwD, tmsgport a1, byte a2, TW_CONST char *a3) { return (tobj)_Tw_EncodeCall(0, order_FindMsgPort, TwD , n(a1) , n(a2) , n((a2) * sizeof(char)), N(a3)); } void Tw_BgImageScreen(tw_d TwD, tscreen a1, dat a2, dat a3, TW_CONST tcell *a4) { _Tw_EncodeCall(ENCODE_FL_VOID, order_BgImageScreen, TwD , n(a1) , n(a2) , n(a3) , n((a2*a3) * sizeof(tcell)), N(a4)); } tobj Tw_PrevObj(tw_d TwD, tobj a1) { return (tobj)_Tw_EncodeCall(0, order_PrevObj, TwD , n(a1)); } tobj Tw_NextObj(tw_d TwD, tobj a1) { return (tobj)_Tw_EncodeCall(0, order_NextObj, TwD , n(a1)); } tobj Tw_ParentObj(tw_d TwD, tobj a1) { return (tobj)_Tw_EncodeCall(0, order_ParentObj, TwD , n(a1)); } tscreen Tw_FirstScreen(tw_d TwD) { return (tobj)_Tw_EncodeCall(0, order_FirstScreen, TwD ); } twidget Tw_FirstWidget(tw_d TwD, twidget a1) { return (tobj)_Tw_EncodeCall(0, order_FirstWidget, TwD , n(a1)); } tmsgport Tw_FirstMsgPort(tw_d TwD) { return (tobj)_Tw_EncodeCall(0, order_FirstMsgPort, TwD ); } tmenu Tw_FirstMenu(tw_d TwD, tmsgport a1) { return (tobj)_Tw_EncodeCall(0, order_FirstMenu, TwD , n(a1)); } twidget Tw_FirstW(tw_d TwD, tmsgport a1) { return (tobj)_Tw_EncodeCall(0, order_FirstW, TwD , n(a1)); } tgroup Tw_FirstGroup(tw_d TwD, tmsgport a1) { return (tobj)_Tw_EncodeCall(0, order_FirstGroup, TwD , n(a1)); } tmutex Tw_FirstMutex(tw_d TwD, tmsgport a1) { return (tobj)_Tw_EncodeCall(0, order_FirstMutex, TwD , n(a1)); } tmenuitem Tw_FirstMenuItem(tw_d TwD, tmenu a1) { return (tobj)_Tw_EncodeCall(0, order_FirstMenuItem, TwD , n(a1)); } tgadget Tw_FirstGadget(tw_d TwD, tgroup a1) { return (tobj)_Tw_EncodeCall(0, order_FirstGadget, TwD , n(a1)); } dat Tw_GetDisplayWidth(tw_d TwD) { return (dat)_Tw_EncodeCall(0, order_GetDisplayWidth, TwD ); } dat Tw_GetDisplayHeight(tw_d TwD) { return (dat)_Tw_EncodeCall(0, order_GetDisplayHeight, TwD ); } tall Tw_GetAll(tw_d TwD) { return (tobj)_Tw_EncodeCall(0, order_GetAll, TwD ); } byte Tw_SendToMsgPort(tw_d TwD, tmsgport a1, udat a2, TW_CONST byte *a3) { return (byte)_Tw_EncodeCall(0, order_SendToMsgPort, TwD , n(a1) , n(a2) , n((a2) * sizeof(byte)), N(a3)); } void Tw_BlindSendToMsgPort(tw_d TwD, tmsgport a1, udat a2, TW_CONST byte *a3) { _Tw_EncodeCall(ENCODE_FL_VOID, order_BlindSendToMsgPort, TwD , n(a1) , n(a2) , n((a2) * sizeof(byte)), N(a3)); } tobj Tw_GetOwnerSelection(tw_d TwD) { return (tobj)_Tw_EncodeCall(0, order_GetOwnerSelection, TwD ); } void Tw_SetOwnerSelection(tw_d TwD, tany a1, tany a2) { _Tw_EncodeCall(ENCODE_FL_VOID, order_SetOwnerSelection, TwD , n(a1) , n(a2)); } void Tw_RequestSelection(tw_d TwD, tobj a1, uldat a2) { _Tw_EncodeCall(ENCODE_FL_VOID, order_RequestSelection, TwD , n(a1) , n(a2)); } void Tw_NotifySelection(tw_d TwD, tobj a1, uldat a2, uldat a3, TW_CONST char *a4, uldat a5, TW_CONST char *a6) { _Tw_EncodeCall(ENCODE_FL_VOID, order_NotifySelection, TwD , n(a1) , n(a2) , n(a3) , n((TW_MAX_MIMELEN) * sizeof(char)), N(a4) , n(a5) , n((a5) * sizeof(char)), N(a6)); } byte Tw_SetServerUid(tw_d TwD, uldat a1, byte a2) { return (byte)_Tw_EncodeCall(0, order_SetServerUid, TwD , n(a1) , n(a2)); } #undef n #undef N ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/libtw3_m4.h�������������������������������������������������������������������0000664�0000000�0000000�00000007453�13775351206�0016552�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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 file was automatically generated from m4/libtw3.m4, do not edit! */ /* clang-format off */ case order_FindFunction: switch (n) { case 2: L = (a[1]._) * sizeof(char); break; case 4: L = (a[3]._) * sizeof(char); break; } break; case order_AttachHW: switch (n) { case 2: L = (a[1]._) * sizeof(char); break; } break; case order_DetachHW: switch (n) { case 2: L = (a[1]._) * sizeof(char); break; } break; case order_SetFontTranslation: switch (n) { case 1: L = (0x80) * sizeof(byte); break; } break; case order_SetTRuneTranslation: switch (n) { case 1: L = (0x80) * sizeof(trune); break; } break; case order_DrawWidget: switch (n) { case 6: L = (a[2]._*a[3]._) * sizeof(char); break; case 7: L = (a[2]._*a[3]._) * sizeof(trune); break; case 8: L = (a[2]._*a[3]._) * sizeof(tcell); break; } break; case order_RestackChildrenWidget: switch (n) { case 3: L = (a[2]._) * sizeof(tobj); break; } break; case order_CreateGadget: switch (n) { case 4: L = (a[2]._*a[3]._) * sizeof(char); break; } break; case order_CreateButtonGadget: switch (n) { case 4: L = (a[2]._*a[3]._) * sizeof(char); break; } break; case order_WriteTextsGadget: switch (n) { case 5: L = (a[2]._*a[3]._) * sizeof(char); break; } break; case order_WriteTRunesGadget: switch (n) { case 5: L = (a[2]._*a[3]._) * sizeof(trune); break; } break; case order_CreateWindow: switch (n) { case 2: L = (a[1]._) * sizeof(char); break; case 3: L = (a[1]._) * sizeof(tcolor); break; } break; case order_WriteCharsetWindow: switch (n) { case 3: L = (a[2]._) * sizeof(char); break; } break; case order_WriteUtf8Window: switch (n) { case 3: L = (a[2]._) * sizeof(char); break; } break; case order_WriteTRuneWindow: switch (n) { case 3: L = (a[2]._) * sizeof(trune); break; } break; case order_WriteTCellWindow: switch (n) { case 5: L = (a[4]._) * sizeof(tcell); break; } break; case order_SetTitleWindow: switch (n) { case 3: L = (a[2]._) * sizeof(char); break; } break; case order_RestackChildrenRow: switch (n) { case 3: L = (a[2]._) * sizeof(tobj); break; } break; case order_Create4MenuAny: switch (n) { case 6: L = (a[5]._) * sizeof(char); break; } break; case order_SetInfoMenu: switch (n) { case 4: L = (a[3]._) * sizeof(char); break; case 5: L = (a[3]._) * sizeof(tcolor); break; } break; case order_CreateMsgPort: switch (n) { case 2: L = (a[1]._) * sizeof(char); break; } break; case order_FindMsgPort: switch (n) { case 3: L = (a[2]._) * sizeof(char); break; } break; case order_BgImageScreen: switch (n) { case 4: L = (a[2]._*a[3]._) * sizeof(tcell); break; } break; case order_SendToMsgPort: switch (n) { case 3: L = (a[2]._) * sizeof(byte); break; } break; case order_BlindSendToMsgPort: switch (n) { case 3: L = (a[2]._) * sizeof(byte); break; } break; case order_NotifySelection: switch (n) { case 4: L = (TW_MAX_MIMELEN) * sizeof(char); break; case 6: L = (a[5]._) * sizeof(char); break; } break; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/m4/���������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015104�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/m4/libtw1.m4h�����������������������������������������������������������������0000664�0000000�0000000�00000003015�13775351206�0016717�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ dnl This file is `m4/libtw1.m4' : m4 macros to autogenerate libtw1_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/libtw1.m4', do not edit! */ /* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ /* clang-format off */ /* To avoid troubles with strlen(), you should not use '\0' or "\0" */ /* Also, using TWS_obj is really a good idea */ #define magic_id_STR(x) "\xFF" divert(-1) define(`TRIM', `translit(`$1', ` ')') define(`NSHIFT', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')') define(`CHAIN', `TRIM($1)`'TRIM($2)') define(`tv', v) define(`t_', _) define(`tx', x) define(`tV', V) define(`tW', W) define(`tX', X) define(`tY', Y) define(`tO', _) define(`TWS_void', `0') define(`ARG', `"$3" ifelse($3, x, magic_id_STR(TRIM($2)), $3, X, magic_id_STR(TRIM($2)), $3, Y, magic_id_STR(TRIM($2)), TWS_`'TRIM($2)_STR)') define(`PARSE', `ifelse(eval($# < 3), 1, `', `ARG($1,$2,t$3)`'PARSE(incr($1), NSHIFT(4, $@))')') define(`PROTO', `{ Tw_`'CHAIN($3, $4), eval(len(Tw_`'CHAIN($3, $4))-3), eval(2+($#-5)/3*2), "Tw_`'CHAIN($3, $4)", "$5" ARG(0, $1, $2)`'PARSE(1, NSHIFT(5, $@)) },') define(`PROTOSyncSocket', `PROTO($@)') define(`PROTOFindFunction', `PROTO($@)') divert include(`m4/Tw_sockproto.m4') �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/m4/libtw2.m4h�����������������������������������������������������������������0000664�0000000�0000000�00000005223�13775351206�0016723�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ dnl This file is m4/libtw2.m4 : m4 macros to autogenerate libtw2_m4.h dnl Tell the user about this. /* This file was automatically generated with m4 from m4/libtw2.m4, do not edit! */ divert(-1) define(`TRIM', `translit(`$1', ` ')') define(`CHAIN', `TRIM($1)`'TRIM($2)') define(`NAME', `Tw_`'CHAIN($1,$2)') define(`NSHIFT', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')') define(`tv', v) define(`t_', _) define(`tx', x) define(`tV', V) define(`tW', W) define(`tX', X) define(`tY', Y) define(`tO', _) define(`iV', `$1') define(`iW', `$1') define(`iX', `$1') define(`iY', `$1') define(`Tv', `void ') define(`T_', `$1 ') define(`Tx', `t$1 ') define(`TV', `TW_CONST $1 *') define(`TW', `TW_CONST $1 *') define(`TX', `TW_CONST t$1 *') define(`TY', `TW_CONST t$1 *') define(`TO', `$1 ') define(`TYPE', `T$2($1)') define(`A', `a$1') define(`NARGS', `eval(($1-5)/2)') define(`NARGS1', `eval(1+($1-5)/2)') define(`ARG', `ifelse($3, v, `', `TYPE($2,$3)`'A($1)')') define(`_ARGS', `ifelse($#, 2, `', `, ARG($1,$2,t$3)`'_ARGS(incr($1), NSHIFT(4, $@))')') define(`ARGS', `tw_d TwD`'ifelse(eval($# < 3), 1, `', `_ARGS($@)')') define(`PARSE_', `, n(A($1))') define(`PARSEx', `PARSE_($@)') define(`PARSEV', `, n(($3) * sizeof($2)), N(A($1))') define(`PARSEW', `PARSEV($@)') define(`PARSEX', `, n(($3) * sizeof(tobj)), N(A($1))') define(`PARSEY', `PARSEX($@)') define(`PARSE', `PARSE$3($1,$2,$4)') define(`SPACE', `SPACE$3($1,$2,$4)') define(`PARSES', `ifelse($#, 2, `', ` PARSE($1,$2,t$3,i$3)`'PARSES(incr($1), NSHIFT(4, $@))')') define(`CALL', `_Tw_EncodeCall($1, order_`'$2, TwD $3);') define(`FL_NOLOCK', `ENCODE_FL_NOLOCK') define(`FL_RETURN', `ifelse(`$2', v, ENCODE_FL_VOID, 0)') define(`RETv', `') define(`RET_', `return ($1)') define(`RETx', `return (tobj)') define(`RETO', `return ($1)') define(`RET', `RET$2($1)') define(`PROTO', `TYPE($1,t$2)`'NAME($3, $4)(ARGS(1, NSHIFT(5, $@))) { RET($1, $2)`'CALL(FL_RETURN($1, $2), CHAIN($3, $4), `PARSES(1, NSHIFT(5, $@))') } ') define(`PROTOSyncSocket', `static TYPE($1,t$2)_`'NAME($3, $4)(ARGS(1, NSHIFT(5, $@))) { RET($1, $2)`'CALL(FL_NOLOCK|FL_RETURN($1, $2), CHAIN($3, $4), `PARSES(1, NSHIFT(5, $@))') } ') define(`PROTOFindFunction', `PROTOSyncSocket($@)') divert #define n(a) (tany)a #define N(a) (tany)(topaque)(TW_CONST void *)a include(`m4/Tw_sockproto.m4') #undef n #undef N �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/m4/libtw3.m4h�����������������������������������������������������������������0000664�0000000�0000000�00000002542�13775351206�0016725�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ dnl This file is `m4/libtw3.m4' : m4 macros to autogenerate libtw3_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/libtw3.m4', do not edit! */ /* clang-format off */ define(`TRIM', `translit(`$1', ` ')') define(`NSHIFT', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')') define(`A', `a[$1]._') define(`tV', `V') define(`tW', `V') define(`tX', `X') define(`tY', `X') define(`lV', `$1') define(`lW', `$1') define(`lX', `$1') define(`lY', `$1') define(`VEC', `ifelse(ifelse($3, X, V, $3), V, `NAME`' case $1: L = ($4) * sizeof(ifelse($3, X, tobj, $2)); break; `'define(`NAME')`'define(`ENDNAME', ` } break;')')') define(`CASE', `ifelse(eval($# < 3), 1, `', `VEC(`$1', `$2', t`'$3, l`'$3)'`CASE(incr($1), NSHIFT(4, $@))')') define(`PROTO', `define(`NAME', ` case order_`'TRIM($3)`'TRIM($4): switch (n) { ')`'define(`ENDNAME', `')`'CASE(1, NSHIFT(5, $@))`'ENDNAME') define(`PROTOSyncSocket', `PROTO($@)') define(`PROTOFindFunction', `PROTO($@)') include(`m4/Tw_sockproto.m4') ��������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/md5.c�������������������������������������������������������������������������0000664�0000000�0000000�00000020705�13775351206�0015421�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * This code implements the MD5 message-digest algorithm. * The algorithm is due to Ron Rivest. This code was * written by Colin Plumb in 1993, no copyright is claimed. * This code is in the public domain; do with it what you wish. * * Equivalent code is available from RSA Data Security, Inc. * This code has been tested against that, and is equivalent, * except that you don't need to include two pages of legalese * with every copy. * * To compute the message digest of a chunk of bytes, declare an * MD5Context structure, pass it to MD5Init, call MD5Update as * needed on buffers full of bytes, and then call MD5Final, which * will fill a supplied 16-byte array with the digest. */ #include "md5.h" #include <Tw/datasizes.h> /* TW_IS_LITTLE_ENDIAN */ #ifdef TW_HAVE_STRING_H #include <string.h> /* memcpy() */ #endif #if TW_IS_LITTLE_ENDIAN #define byteReverse(buf, len) ((void)0) #elif TW_IS_BIG_ENDIAN #ifdef ASM_MD5 void byteReverse(md5_uint32 *buf, unsigned longs); #else /* !ASM_MD5 */ /* * Note: this code is harmless on little-endian machines. */ TW_INLINE void byteReverse(md5_uint32 *buf, unsigned longs) { md5_uint32 t; do { #define BUF(i) ((md5_uint32) * ((unsigned char *)(buf) + (i))) t = BUF(0) | BUF(1) << 8 | BUF(2) << 16 | BUF(3) << 24; *buf++ = t; #undef BUF } while (--longs); } #endif /* ASM_MD5 */ #else /* TW_IS_LITTLE_ENDIAN */ #error unknown endianity: not little endian, not big endian #endif /* * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious * initialization constants. */ void MD5Init(struct MD5Context *ctx) { ctx->buf[0] = 0x67452301; ctx->buf[1] = 0xefcdab89; ctx->buf[2] = 0x98badcfe; ctx->buf[3] = 0x10325476; ctx->bits[0] = 0; ctx->bits[1] = 0; } /* * Update context to reflect the concatenation of another buffer full * of bytes. */ void MD5Update(struct MD5Context *ctx, void TW_CONST *mem, size_t len) { md5_uint32 t; unsigned TW_CONST char *buf = (unsigned TW_CONST char *)mem; /* Update bitcount */ t = ctx->bits[0]; if ((ctx->bits[0] = t + ((md5_uint32)len << 3)) < t) ctx->bits[1]++; /* Carry from low to high */ ctx->bits[1] += len >> 29; t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */ /* Handle any leading odd-sized chunks */ if (t) { unsigned char *p = (unsigned char *)ctx->in + t; t = 64 - t; if (len < t) { memcpy(p, buf, len); return; } memcpy(p, buf, t); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, ctx->in); buf += t; len -= t; } /* Process data in 64-byte chunks */ while (len >= 64) { memcpy(ctx->in, buf, 64); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, ctx->in); buf += 64; len -= 64; } /* Handle any remaining bytes of data. */ memcpy(ctx->in, buf, len); } /* * Final wrapup - pad to 64-byte boundary with the bit pattern * 1 0* (64-bit count of bits processed, MSB-first) */ void MD5Final(unsigned char digest[16], struct MD5Context *ctx) { unsigned count; unsigned char *p; /* Compute number of bytes mod 64 */ count = (ctx->bits[0] >> 3) & 0x3F; /* Set the first char of padding to 0x80. This is safe since there is always at least one byte free */ p = (unsigned char *)ctx->in + count; *p++ = 0x80; /* Bytes of padding needed to make 64 bytes */ count = 64 - 1 - count; /* Pad out to 56 mod 64 */ if (count < 8) { /* Two lots of padding: Pad the first block to 64 bytes */ memset(p, 0, count); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, ctx->in); /* Now fill the next block with 56 bytes */ memset(ctx->in, 0, 56); } else { /* Pad block to 56 bytes */ memset(p, 0, count - 8); } byteReverse(ctx->in, 14); /* Append length in bits and transform */ ctx->in[14] = ctx->bits[0]; ctx->in[15] = ctx->bits[1]; MD5Transform(ctx->buf, ctx->in); byteReverse(ctx->buf, 4); memcpy(digest, ctx->buf, 16); memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */ } #ifndef ASM_MD5 /* The four core functions - F1 is optimized somewhat */ /* #define F1(x, y, z) (x & y | ~x & z) */ #define F1(x, y, z) (z ^ (x & (y ^ z))) #define F2(x, y, z) F1(z, x, y) #define F3(x, y, z) (x ^ y ^ z) #define F4(x, y, z) (y ^ (x | ~z)) /* This is the central step in the MD5 algorithm. */ #define MD5STEP(f, w, x, y, z, data, s) (w += f(x, y, z) + data, w = w << s | w >> (32 - s), w += x) /* * The core of the MD5 algorithm, this alters an existing MD5 hash to * reflect the addition of 16 longwords of new data. MD5Update blocks * the data and converts bytes into longwords for this routine. */ void MD5Transform(md5_uint32 buf[4], md5_uint32 TW_CONST in[16]) { register md5_uint32 a, b, c, d; a = buf[0]; b = buf[1]; c = buf[2]; d = buf[3]; MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); buf[0] += a; buf[1] += b; buf[2] += c; buf[3] += d; } #endif #ifdef TW_DEBUG_MD5_MAIN #include <stdio.h> #include <string.h> int main(int argc, TW_CONST char *argv[]) { unsigned char digest[16]; struct MD5Context ctx; TW_CONST char *str = argc > 1 ? argv[1] : "abc\n"; unsigned i; MD5Init(&ctx); MD5Update(&ctx, (unsigned TW_CONST char *)str, strlen(str)); MD5Final(digest, &ctx); for (i = 0; i < sizeof(digest); i++) { printf("%02x", (unsigned)digest[i]); } putchar('\n'); return 0; } #endif /* TW_DEBUG_MD5_MAIN */ �����������������������������������������������������������twin-0.9.0/libs/libtw/missing.c���������������������������������������������������������������������0000664�0000000�0000000�00000004152�13775351206�0016403�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #include <Tw/Twtypes.h> #ifndef TW_HAVE_GETENV char *Tw_missing_getenv(TW_CONST char *name) { return NULL; } #endif #ifndef TW_HAVE_MEMCMP int Tw_missing_memcmp(TW_CONST void *s1, TW_CONST void *s2, size_t n) { TW_CONST byte *b1, *b2; for (b1 = s1, b2 = s2; n; n--, b1++, b2++) { if (*b1 != *b2) return *b2 - *b1; } return 0; } #endif #ifndef TW_HAVE_STRDUP char *Tw_missing_strdup(TW_CONST char *s, void *(*missing_malloc)(size_t size)) { char *q; size_t len; if (s) { len = 1 + strlen(s); if ((q = missing_malloc(len))) memcpy(s, q, len); return q; } return NULL; } #endif #ifndef TW_HAVE_STRSPN size_t Tw_missing_strspn(TW_CONST char *s, TW_CONST char *accept) { size_t accept_len = strlen(accept); if (s) while (*s && memchr(accept, *s, accept_len)) s++; return s; } #endif #ifndef TW_HAVE_STRSTR TW_CONST char *Tw_missing_strstr(TW_CONST char *haystack, TW_CONST char *needle) { TW_CONST char *h; size_t needle_len; if (!haystack || !needle) return haystack; needle_len = strlen(needle); while (*haystack && (h = strchr(haystack, *needle))) { if (!memcmp(h, needle, needle_len)) return h; haystack = h + 1; } return NULL; } #endif int Tw_option_strcmp(TW_CONST char *s1, TW_CONST char *s2) { if (s1[0] == '-' && s1[1] == '-' && s1[2]) s1++; if (s2[0] == '-' && s2[1] == '-' && s2[2]) s2++; return strcmp(s1, s2); } int Tw_option_strncmp(TW_CONST char *s1, TW_CONST char *s2, size_t n) { if (n > 2 && s1[0] == '-' && s1[1] == '-' && s1[2]) n--, s1++; if (s2[0] == '-' && s2[1] == '-' && s2[2]) s2++; return strncmp(s1, s2, n); } enum { utf21_size = 0x110000, }; trune Tw_trune(tcell cell) { cell &= 0x001FFFFF; if (cell >= utf21_size) { cell -= utf21_size; } return cell; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/util.c������������������������������������������������������������������������0000664�0000000�0000000�00000003567�13775351206�0015720�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * util.c -- utility functions * * Copyright (C) 2016 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <Tw/Tw.h> void NormalizeTime(timevalue *Time) { if (Time->Fraction >= FullSEC) { tany delta = Time->Fraction / FullSEC; Time->Seconds += delta; Time->Fraction -= delta * FullSEC; } } timevalue *InstantNow(timevalue *Now) { #if defined(TW_HAVE_GETTIMEOFDAY) struct timeval sysNow; gettimeofday(&sysNow, NULL); Now->Seconds = sysNow.tv_sec; Now->Fraction = sysNow.tv_usec MicroSECs; #elif defined(TW_HAVE_FTIME) struct timeb sysNow; ftime(&sysNow); Now->Seconds = sysNow.time; Now->Fraction = sysNow.millitm MilliSECs; #else Now->Seconds = time(NULL); Now->Fraction = 0; #endif return Now; } timevalue *IncrTime(timevalue *Time, TW_CONST timevalue *Incr) { Time->Seconds += Incr->Seconds; Time->Fraction += Incr->Fraction; NormalizeTime(Time); return Time; } timevalue *DecrTime(timevalue *Time, TW_CONST timevalue *Decr) { Time->Seconds -= Decr->Seconds; if (Time->Fraction >= Decr->Fraction) Time->Fraction -= Decr->Fraction; else { Time->Seconds--; Time->Fraction += (FullSEC - Decr->Fraction); } return Time; } timevalue *SubTime(timevalue *Result, timevalue *Time, TW_CONST timevalue *Decr) { *Result = *Time; /* struct copy */ return DecrTime(Result, Decr); } dat CmpTime(TW_CONST timevalue *T1, TW_CONST timevalue *T2) { if (T1->Seconds > T2->Seconds) return (dat)1; else if (T1->Seconds == T2->Seconds) { if (T1->Fraction > T2->Fraction) return (dat)1; else if (T1->Fraction == T2->Fraction) return (dat)0; } return (dat)-1; } �����������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/libs/libtw/util.h������������������������������������������������������������������������0000664�0000000�0000000�00000001207�13775351206�0015712�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef TW_UTIL_H #define TW_UTIL_H /* * Copyright (C) 2016 by Massimiliano Ghilardi * * 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. */ void NormalizeTime(timevalue *Time); timevalue *InstantNow(timevalue *Now); timevalue *IncrTime(timevalue *Time, TW_CONST timevalue *Incr); timevalue *DecrTime(timevalue *Time, TW_CONST timevalue *Decr); dat CmpTime(TW_CONST timevalue *T1, TW_CONST timevalue *T2); #endif /* TW_UTIL_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/m4/��������������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0013032�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/m4/libtool.m4����������������������������������������������������������������������������0000664�0000000�0000000�00001126763�13775351206�0014760�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 2 of of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool 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 program. If not, see <http://www.gnu.org/licenses/>. ]) # serial 58 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_PREPARE_CC_BASENAME # ----------------------- m4_defun([_LT_PREPARE_CC_BASENAME], [ # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } ])# _LT_PREPARE_CC_BASENAME # _LT_CC_BASENAME(CC) # ------------------- # It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, # but that macro is also expanded into generated libtool script, which # arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], [m4_require([_LT_PREPARE_CC_BASENAME])dnl AC_REQUIRE([_LT_DECL_SED])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl func_cc_basename $1 cc_basename=$func_cc_basename_result ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl m4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from 'configure', and 'config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # 'config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain=$ac_aux_dir/ltmain.sh ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the 'libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to 'config.status' so that its # declaration there will have the same value as in 'configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags='_LT_TAGS'dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into 'config.status', and then the shell code to quote escape them in # for loops in 'config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ '$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to <bug-libtool@gnu.org>." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test 0 != $[#] do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try '$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try '$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test yes = "$silent" && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 _LT_COPYING _LT_LIBTOOL_TAGS # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE _LT_PREPARE_MUNGE_PATH_LIST _LT_PREPARE_CC_BASENAME # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS=$save_LDFLAGS ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]][[,.]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test yes = "$lt_cv_ld_force_load"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script that will find a shell with a builtin # printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cr} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ]) if test yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n "$lt_cv_sys_max_cmd_len"; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes = "$cross_compiling"; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include <dlfcn.h> #endif #include <stdio.h> #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen=shl_load], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen=dlopen], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) ]) ]) ]) ]) ]) ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links=nottested if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test no = "$hard_links"; then AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", [Define to the sub-directory where libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then # We can hardcode non-existent directories. if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_PREPARE_MUNGE_PATH_LIST # --------------------------- # Make sure func_munge_path_list() is defined correctly. m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], [[# func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } ]])# _LT_PREPARE_PATH_LIST # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown AC_ARG_VAR([LT_SYS_LIBRARY_PATH], [User-defined run-time library search path.]) case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib<name>.so # instead of lib<name>.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a[(]lib.so.V[)]' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], [Detected run-time system search path for libraries]) _LT_DECL([], [configure_time_lt_sys_library_path], [2], [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program that can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$1"; then lt_cv_path_MAGIC_CMD=$ac_dir/"$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac]) MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program that can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test no != "$with_gnu_ld" && break ;; *) test yes != "$with_gnu_ld" && break ;; esac fi done IFS=$lt_save_ifs else lt_cv_path_LD=$LD # Let the user override the test with a path. fi]) LD=$lt_cv_path_LD if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) _LT_PATH_LD_GNU AC_SUBST([LD]) _LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) ])# LT_PATH_LD # Old names: AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_LD], []) dnl AC_DEFUN([AC_PROG_LD], []) # _LT_PATH_LD_GNU #- -------------- m4_defun([_LT_PATH_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) lt_cv_prog_gnu_ld=yes ;; *) lt_cv_prog_gnu_ld=no ;; esac]) with_gnu_ld=$lt_cv_prog_gnu_ld ])# _LT_PATH_LD_GNU # _LT_CMD_RELOAD # -------------- # find reload flag for linker # -- PORTME Some linkers may need a different reload flag. m4_defun([_LT_CMD_RELOAD], [AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, [lt_cv_ld_reload_flag='-r']) reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac _LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl _LT_TAGDECL([], [reload_cmds], [2])dnl ])# _LT_CMD_RELOAD # _LT_PATH_DD # ----------- # find a working dd m4_defun([_LT_PATH_DD], [AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], [if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi]) rm -f conftest.i conftest2.i conftest.out]) ])# _LT_PATH_DD # _LT_CMD_TRUNCATE # ---------------- # find command to truncate a binary pipe m4_defun([_LT_CMD_TRUNCATE], [m4_require([_LT_PATH_DD]) AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) _LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], [Command to truncate a binary pipe]) ])# _LT_CMD_TRUNCATE # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[[4-9]]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi]) if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # _LT_DLL_DEF_P([FILE]) # --------------------- # True iff FILE is a Windows DLL '.def' file. # Keep in sync with func_dll_def_p in the libtool script AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ])# _LT_DLL_DEF_P # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM=-lm) ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test yes = "$GCC"; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], [Transform the output of nm into a list of symbols to manually relocate]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([nm_interface], [lt_cv_nm_interface], [1], [The name lister interface]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test yes = "$GCC"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach <jrb3@best.com> says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS=$save_LDFLAGS]) if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; osf3*) if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test yes = "$GCC"; then wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test yes,yes = "$GCC,$enable_shared"; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting $shlibpath_var if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC=$CC AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report what library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC=$lt_save_CC ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test yes = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GXX"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach <jrb3@best.com> says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(GCC, $1)=$GXX _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test yes != "$_lt_caught_CXX_error" AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case @S|@2 in .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)=$prev$p else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)=$p else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)=$p else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_F77"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$G77 _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_F77" AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test no = "$FC"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_FC"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_FC" AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code=$lt_simple_compile_test_code # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f "$lt_ac_sed" && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test 10 -lt "$lt_ac_count" && break lt_ac_count=`expr $lt_ac_count + 1` if test "$lt_ac_count" -gt "$lt_ac_max"; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine what file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS �������������twin-0.9.0/m4/ltargz.m4�����������������������������������������������������������������������������0000664�0000000�0000000�00000005011�13775351206�0014574�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Portability macros for glibc argz. -*- Autoconf -*- # # Copyright (C) 2004-2007, 2011-2015 Free Software Foundation, Inc. # Written by Gary V. Vaughan <gary@gnu.org> # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 1 ltargz.m4 AC_DEFUN([LT_FUNC_ARGZ], [ AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) AC_CHECK_TYPES([error_t], [], [AC_DEFINE([error_t], [int], [Define to a type to use for 'error_t' if it is not otherwise available.]) AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h does not typedef error_t.])], [#if defined(HAVE_ARGZ_H) # include <argz.h> #endif]) LT_ARGZ_H= AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ argz_next argz_stringify], [], [LT_ARGZ_H=lt__argz.h; AC_LIBOBJ([lt__argz])]) dnl if have system argz functions, allow forced use of dnl libltdl-supplied implementation (and default to do so dnl on "known bad" systems). Could use a runtime check, but dnl (a) detecting malloc issues is notoriously unreliable dnl (b) only known system that declares argz functions, dnl provides them, yet they are broken, is cygwin dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) dnl So, it's more straightforward simply to special case dnl this for known bad systems. AS_IF([test -z "$LT_ARGZ_H"], [AC_CACHE_CHECK( [if argz actually works], [lt_cv_sys_argz_works], [[case $host_os in #( *cygwin*) lt_cv_sys_argz_works=no if test no != "$cross_compiling"; then lt_cv_sys_argz_works="guessing no" else lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' save_IFS=$IFS IFS=-. set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` IFS=$save_IFS lt_os_major=${2-0} lt_os_minor=${3-0} lt_os_micro=${4-0} if test 1 -lt "$lt_os_major" \ || { test 1 -eq "$lt_os_major" \ && { test 5 -lt "$lt_os_minor" \ || { test 5 -eq "$lt_os_minor" \ && test 24 -lt "$lt_os_micro"; }; }; }; then lt_cv_sys_argz_works=yes fi fi ;; #( *) lt_cv_sys_argz_works=yes ;; esac]]) AS_IF([test yes = "$lt_cv_sys_argz_works"], [AC_DEFINE([HAVE_WORKING_ARGZ], 1, [This value is set to 1 to indicate that the system argz facility works])], [LT_ARGZ_H=lt__argz.h AC_LIBOBJ([lt__argz])])]) AC_SUBST([LT_ARGZ_H]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/m4/ltdl.m4�������������������������������������������������������������������������������0000664�0000000�0000000�00000072537�13775351206�0014251�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*- # # Copyright (C) 1999-2008, 2011-2015 Free Software Foundation, Inc. # Written by Thomas Tanner, 1999 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 20 LTDL_INIT # LT_CONFIG_LTDL_DIR(DIRECTORY, [LTDL-MODE]) # ------------------------------------------ # DIRECTORY contains the libltdl sources. It is okay to call this # function multiple times, as long as the same DIRECTORY is always given. AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT]) _$0($*) ])# LT_CONFIG_LTDL_DIR # We break this out into a separate macro, so that we can call it safely # internally without being caught accidentally by the sed scan in libtoolize. m4_defun([_LT_CONFIG_LTDL_DIR], [dnl remove trailing slashes m4_pushdef([_ARG_DIR], m4_bpatsubst([$1], [/*$])) m4_case(_LTDL_DIR, [], [dnl only set lt_ltdl_dir if _ARG_DIR is not simply '.' m4_if(_ARG_DIR, [.], [], [m4_define([_LTDL_DIR], _ARG_DIR) _LT_SHELL_INIT([lt_ltdl_dir=']_ARG_DIR['])])], [m4_if(_ARG_DIR, _LTDL_DIR, [], [m4_fatal([multiple libltdl directories: ']_LTDL_DIR[', ']_ARG_DIR['])])]) m4_popdef([_ARG_DIR]) ])# _LT_CONFIG_LTDL_DIR # Initialise: m4_define([_LTDL_DIR], []) # _LT_BUILD_PREFIX # ---------------- # If Autoconf is new enough, expand to '$(top_build_prefix)', otherwise # to '$(top_builddir)/'. m4_define([_LT_BUILD_PREFIX], [m4_ifdef([AC_AUTOCONF_VERSION], [m4_if(m4_version_compare(m4_defn([AC_AUTOCONF_VERSION]), [2.62]), [-1], [m4_ifdef([_AC_HAVE_TOP_BUILD_PREFIX], [$(top_build_prefix)], [$(top_builddir)/])], [$(top_build_prefix)])], [$(top_builddir)/])[]dnl ]) # LTDL_CONVENIENCE # ---------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-convenience to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. LIBLTDL will be prefixed with # '$(top_build_prefix)' if available, otherwise with '$(top_builddir)/', # and LTDLINCL will be prefixed with '$(top_srcdir)/' (note the single # quotes!). If your package is not flat and you're not using automake, # define top_build_prefix, top_builddir, and top_srcdir appropriately # in your Makefiles. AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl dnl Although the argument is deprecated and no longer documented, dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one dnl here make sure it is the same as any other declaration of libltdl's dnl location! This also ensures lt_ltdl_dir is set when configure.ac is dnl not yet using an explicit LT_CONFIG_LTDL_DIR. m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl _$0() ])# LTDL_CONVENIENCE # AC_LIBLTDL_CONVENIENCE accepted a directory argument in older libtools, # now we have LT_CONFIG_LTDL_DIR: AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_CONVENIENCE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBLTDL_CONVENIENCE], []) # _LTDL_CONVENIENCE # ----------------- # Code shared by LTDL_CONVENIENCE and LTDL_INIT([convenience]). m4_defun([_LTDL_CONVENIENCE], [case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='_LT_BUILD_PREFIX'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdlc.la" LTDLDEPS=$LIBLTDL LTDLINCL='-I$(top_srcdir)'"${lt_ltdl_dir+/$lt_ltdl_dir}" AC_SUBST([LIBLTDL]) AC_SUBST([LTDLDEPS]) AC_SUBST([LTDLINCL]) # For backwards non-gettext consistent compatibility... INCLTDL=$LTDLINCL AC_SUBST([INCLTDL]) ])# _LTDL_CONVENIENCE # LTDL_INSTALLABLE # ---------------- # sets LIBLTDL to the link flags for the libltdl installable library # and LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-install to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called from here. If an installed libltdl # is not found, LIBLTDL will be prefixed with '$(top_build_prefix)' if # available, otherwise with '$(top_builddir)/', and LTDLINCL will be # prefixed with '$(top_srcdir)/' (note the single quotes!). If your # package is not flat and you're not using automake, define top_build_prefix, # top_builddir, and top_srcdir appropriately in your Makefiles. # In the future, this macro may have to be called after LT_INIT. AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl dnl Although the argument is deprecated and no longer documented, dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one dnl here make sure it is the same as any other declaration of libltdl's dnl location! This also ensures lt_ltdl_dir is set when configure.ac is dnl not yet using an explicit LT_CONFIG_LTDL_DIR. m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl _$0() ])# LTDL_INSTALLABLE # AC_LIBLTDL_INSTALLABLE accepted a directory argument in older libtools, # now we have LT_CONFIG_LTDL_DIR: AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) _LTDL_INSTALLABLE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBLTDL_INSTALLABLE], []) # _LTDL_INSTALLABLE # ----------------- # Code shared by LTDL_INSTALLABLE and LTDL_INIT([installable]). m4_defun([_LTDL_INSTALLABLE], [if test -f "$prefix/lib/libltdl.la"; then lt_save_LDFLAGS=$LDFLAGS LDFLAGS="-L$prefix/lib $LDFLAGS" AC_CHECK_LIB([ltdl], [lt_dlinit], [lt_lib_ltdl=yes]) LDFLAGS=$lt_save_LDFLAGS if test yes = "${lt_lib_ltdl-no}"; then if test yes != "$enable_ltdl_install"; then # Don't overwrite $prefix/lib/libltdl.la without --enable-ltdl-install AC_MSG_WARN([not overwriting libltdl at $prefix, force with '--enable-ltdl-install']) enable_ltdl_install=no fi elif test no = "$enable_ltdl_install"; then AC_MSG_WARN([libltdl not installed, but installation disabled]) fi fi # If configure.ac declared an installable ltdl, and the user didn't override # with --disable-ltdl-install, we will install the shipped libltdl. case $enable_ltdl_install in no) ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL=-lltdl LTDLDEPS= LTDLINCL= ;; *) enable_ltdl_install=yes ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='_LT_BUILD_PREFIX'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdl.la" LTDLDEPS=$LIBLTDL LTDLINCL='-I$(top_srcdir)'"${lt_ltdl_dir+/$lt_ltdl_dir}" ;; esac AC_SUBST([LIBLTDL]) AC_SUBST([LTDLDEPS]) AC_SUBST([LTDLINCL]) # For backwards non-gettext consistent compatibility... INCLTDL=$LTDLINCL AC_SUBST([INCLTDL]) ])# LTDL_INSTALLABLE # _LTDL_MODE_DISPATCH # ------------------- m4_define([_LTDL_MODE_DISPATCH], [dnl If _LTDL_DIR is '.', then we are configuring libltdl itself: m4_if(_LTDL_DIR, [], [], dnl if _LTDL_MODE was not set already, the default value is 'subproject': [m4_case(m4_default(_LTDL_MODE, [subproject]), [subproject], [AC_CONFIG_SUBDIRS(_LTDL_DIR) _LT_SHELL_INIT([lt_dlopen_dir=$lt_ltdl_dir])], [nonrecursive], [_LT_SHELL_INIT([lt_dlopen_dir=$lt_ltdl_dir; lt_libobj_prefix=$lt_ltdl_dir/])], [recursive], [], [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])dnl dnl Be careful not to expand twice: m4_define([$0], []) ])# _LTDL_MODE_DISPATCH # _LT_LIBOBJ(MODULE_NAME) # ----------------------- # Like AC_LIBOBJ, except that MODULE_NAME goes into _LT_LIBOBJS instead # of into LIBOBJS. AC_DEFUN([_LT_LIBOBJ], [ m4_pattern_allow([^_LT_LIBOBJS$]) _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext" ])# _LT_LIBOBJS # LTDL_INIT([OPTIONS]) # -------------------- # Clients of libltdl can use this macro to allow the installer to # choose between a shipped copy of the ltdl sources or a preinstalled # version of the library. If the shipped ltdl sources are not in a # subdirectory named libltdl, the directory name must be given by # LT_CONFIG_LTDL_DIR. AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) dnl We need to keep our own list of libobjs separate from our parent project, dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while dnl we look for our own LIBOBJs. m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ])) m4_pushdef([AC_LIBSOURCES]) dnl If not otherwise defined, default to the 1.5.x compatible subproject mode: m4_if(_LTDL_MODE, [], [m4_define([_LTDL_MODE], m4_default([$2], [subproject])) m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])], [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])]) AC_ARG_WITH([included_ltdl], [AS_HELP_STRING([--with-included-ltdl], [use the GNU ltdl sources included here])]) if test yes != "$with_included_ltdl"; then # We are not being forced to use the included libltdl sources, so # decide whether there is a useful installed version we can use. AC_CHECK_HEADER([ltdl.h], [AC_CHECK_DECL([lt_dlinterface_register], [AC_CHECK_LIB([ltdl], [lt_dladvise_preload], [with_included_ltdl=no], [with_included_ltdl=yes])], [with_included_ltdl=yes], [AC_INCLUDES_DEFAULT #include <ltdl.h>])], [with_included_ltdl=yes], [AC_INCLUDES_DEFAULT] ) fi dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE dnl was called yet, then for old times' sake, we assume libltdl is in an dnl eponymous directory: AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])]) AC_ARG_WITH([ltdl_include], [AS_HELP_STRING([--with-ltdl-include=DIR], [use the ltdl headers installed in DIR])]) if test -n "$with_ltdl_include"; then if test -f "$with_ltdl_include/ltdl.h"; then : else AC_MSG_ERROR([invalid ltdl include directory: '$with_ltdl_include']) fi else with_ltdl_include=no fi AC_ARG_WITH([ltdl_lib], [AS_HELP_STRING([--with-ltdl-lib=DIR], [use the libltdl.la installed in DIR])]) if test -n "$with_ltdl_lib"; then if test -f "$with_ltdl_lib/libltdl.la"; then : else AC_MSG_ERROR([invalid ltdl library directory: '$with_ltdl_lib']) fi else with_ltdl_lib=no fi case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in ,yes,no,no,) m4_case(m4_default(_LTDL_TYPE, [convenience]), [convenience], [_LTDL_CONVENIENCE], [installable], [_LTDL_INSTALLABLE], [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)]) ;; ,no,no,no,) # If the included ltdl is not to be used, then use the # preinstalled libltdl we found. AC_DEFINE([HAVE_LTDL], [1], [Define this if a modern libltdl is already installed]) LIBLTDL=-lltdl LTDLDEPS= LTDLINCL= ;; ,no*,no,*) AC_MSG_ERROR(['--with-ltdl-include' and '--with-ltdl-lib' options must be used together]) ;; *) with_included_ltdl=no LIBLTDL="-L$with_ltdl_lib -lltdl" LTDLDEPS= LTDLINCL=-I$with_ltdl_include ;; esac INCLTDL=$LTDLINCL # Report our decision... AC_MSG_CHECKING([where to find libltdl headers]) AC_MSG_RESULT([$LTDLINCL]) AC_MSG_CHECKING([where to find libltdl library]) AC_MSG_RESULT([$LIBLTDL]) _LTDL_SETUP dnl restore autoconf definition. m4_popdef([AC_LIBOBJ]) m4_popdef([AC_LIBSOURCES]) AC_CONFIG_COMMANDS_PRE([ _ltdl_libobjs= _ltdl_ltlibobjs= if test -n "$_LT_LIBOBJS"; then # Remove the extension. _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" done fi AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) ]) # Only expand once: m4_define([LTDL_INIT]) ])# LTDL_INIT # Old names: AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)]) AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)]) AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIB_LTDL], []) dnl AC_DEFUN([AC_WITH_LTDL], []) dnl AC_DEFUN([LT_WITH_LTDL], []) # _LTDL_SETUP # ----------- # Perform all the checks necessary for compilation of the ltdl objects # -- including compiler checks and header checks. This is a public # interface mainly for the benefit of libltdl's own configure.ac, most # other users should call LTDL_INIT instead. AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_SYS_MODULE_EXT])dnl AC_REQUIRE([LT_SYS_MODULE_PATH])dnl AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl AC_REQUIRE([LT_LIB_DLLOAD])dnl AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl AC_REQUIRE([LT_FUNC_ARGZ])dnl m4_require([_LT_CHECK_OBJDIR])dnl m4_require([_LT_HEADER_DLFCN])dnl m4_require([_LT_CHECK_DLPREOPEN])dnl m4_require([_LT_DECL_SED])dnl dnl Don't require this, or it will be expanded earlier than the code dnl that sets the variables it relies on: _LT_ENABLE_INSTALL dnl _LTDL_MODE specific code must be called at least once: _LTDL_MODE_DISPATCH # In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS # the user used. This is so that ltdl.h can pick up the parent projects # config.h file, The first file in AC_CONFIG_HEADERS must contain the # definitions required by ltdl.c. # FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). AC_CONFIG_COMMANDS_PRE([dnl m4_pattern_allow([^LT_CONFIG_H$])dnl m4_ifset([AH_HEADER], [LT_CONFIG_H=AH_HEADER], [m4_ifset([AC_LIST_HEADERS], [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's|^[[ ]]*||;s|[[ :]].*$||'`], [])])]) AC_SUBST([LT_CONFIG_H]) AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h], [], [], [AC_INCLUDES_DEFAULT]) AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])]) AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])]) m4_pattern_allow([LT_LIBEXT])dnl AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension]) name= eval "lt_libprefix=\"$libname_spec\"" m4_pattern_allow([LT_LIBPREFIX])dnl AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix]) name=ltdl eval "LTDLOPEN=\"$libname_spec\"" AC_SUBST([LTDLOPEN]) ])# _LTDL_SETUP # _LT_ENABLE_INSTALL # ------------------ m4_define([_LT_ENABLE_INSTALL], [AC_ARG_ENABLE([ltdl-install], [AS_HELP_STRING([--enable-ltdl-install], [install libltdl])]) case ,$enable_ltdl_install,$enable_ltdl_convenience in *yes*) ;; *) enable_ltdl_convenience=yes ;; esac m4_ifdef([AM_CONDITIONAL], [AM_CONDITIONAL(INSTALL_LTDL, test no != "${enable_ltdl_install-no}") AM_CONDITIONAL(CONVENIENCE_LTDL, test no != "${enable_ltdl_convenience-no}")]) ])# _LT_ENABLE_INSTALL # LT_SYS_DLOPEN_DEPLIBS # --------------------- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether deplibs are loaded by dlopen], [lt_cv_sys_dlopen_deplibs], [# PORTME does your system automatically load deplibs for dlopen? # or its logical equivalent (e.g. shl_load for HP-UX < 11) # For now, we just catch OSes we know something about -- in the # future, we'll try test this programmatically. lt_cv_sys_dlopen_deplibs=unknown case $host_os in aix3*|aix4.1.*|aix4.2.*) # Unknown whether this is true for these versions of AIX, but # we want this 'case' here to explicitly catch those versions. lt_cv_sys_dlopen_deplibs=unknown ;; aix[[4-9]]*) lt_cv_sys_dlopen_deplibs=yes ;; amigaos*) case $host_cpu in powerpc) lt_cv_sys_dlopen_deplibs=no ;; esac ;; bitrig*) lt_cv_sys_dlopen_deplibs=yes ;; darwin*) # Assuming the user has installed a libdl from somewhere, this is true # If you are looking for one http://www.opendarwin.org/projects/dlcompat lt_cv_sys_dlopen_deplibs=yes ;; freebsd* | dragonfly*) lt_cv_sys_dlopen_deplibs=yes ;; gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) # GNU and its variants, using gnu ld.so (Glibc) lt_cv_sys_dlopen_deplibs=yes ;; hpux10*|hpux11*) lt_cv_sys_dlopen_deplibs=yes ;; interix*) lt_cv_sys_dlopen_deplibs=yes ;; irix[[12345]]*|irix6.[[01]]*) # Catch all versions of IRIX before 6.2, and indicate that we don't # know how it worked for any of those versions. lt_cv_sys_dlopen_deplibs=unknown ;; irix*) # The case above catches anything before 6.2, and it's known that # at 6.2 and later dlopen does load deplibs. lt_cv_sys_dlopen_deplibs=yes ;; netbsd* | netbsdelf*-gnu) lt_cv_sys_dlopen_deplibs=yes ;; openbsd*) lt_cv_sys_dlopen_deplibs=yes ;; osf[[1234]]*) # dlopen did load deplibs (at least at 4.x), but until the 5.x series, # it did *not* use an RPATH in a shared library to find objects the # library depends on, so we explicitly say 'no'. lt_cv_sys_dlopen_deplibs=no ;; osf5.0|osf5.0a|osf5.1) # dlopen *does* load deplibs and with the right loader patch applied # it even uses RPATH in a shared library to search for shared objects # that the library depends on, but there's no easy way to know if that # patch is installed. Since this is the case, all we can really # say is unknown -- it depends on the patch being installed. If # it is, this changes to 'yes'. Without it, it would be 'no'. lt_cv_sys_dlopen_deplibs=unknown ;; osf*) # the two cases above should catch all versions of osf <= 5.1. Read # the comments above for what we know about them. # At > 5.1, deplibs are loaded *and* any RPATH in a shared library # is used to find them so we can finally say 'yes'. lt_cv_sys_dlopen_deplibs=yes ;; qnx*) lt_cv_sys_dlopen_deplibs=yes ;; solaris*) lt_cv_sys_dlopen_deplibs=yes ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) libltdl_cv_sys_dlopen_deplibs=yes ;; esac ]) if test yes != "$lt_cv_sys_dlopen_deplibs"; then AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1], [Define if the OS needs help to load dependent libraries for dlopen().]) fi ])# LT_SYS_DLOPEN_DEPLIBS # Old name: AU_ALIAS([AC_LTDL_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], []) # LT_SYS_MODULE_EXT # ----------------- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([what extension is used for runtime loadable modules], [libltdl_cv_shlibext], [ module=yes eval libltdl_cv_shlibext=$shrext_cmds module=no eval libltdl_cv_shrext=$shrext_cmds ]) if test -n "$libltdl_cv_shlibext"; then m4_pattern_allow([LT_MODULE_EXT])dnl AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"], [Define to the extension used for runtime loadable modules, say, ".so".]) fi if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then m4_pattern_allow([LT_SHARED_EXT])dnl AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"], [Define to the shared library suffix, say, ".dylib".]) fi if test -n "$shared_archive_member_spec"; then m4_pattern_allow([LT_SHARED_LIB_MEMBER])dnl AC_DEFINE_UNQUOTED([LT_SHARED_LIB_MEMBER], ["($shared_archive_member_spec.o)"], [Define to the shared archive member specification, say "(shr.o)".]) fi ])# LT_SYS_MODULE_EXT # Old name: AU_ALIAS([AC_LTDL_SHLIBEXT], [LT_SYS_MODULE_EXT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SHLIBEXT], []) # LT_SYS_MODULE_PATH # ------------------ AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([what variable specifies run-time module search path], [lt_cv_module_path_var], [lt_cv_module_path_var=$shlibpath_var]) if test -n "$lt_cv_module_path_var"; then m4_pattern_allow([LT_MODULE_PATH_VAR])dnl AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"], [Define to the name of the environment variable that determines the run-time module search path.]) fi ])# LT_SYS_MODULE_PATH # Old name: AU_ALIAS([AC_LTDL_SHLIBPATH], [LT_SYS_MODULE_PATH]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SHLIBPATH], []) # LT_SYS_DLSEARCH_PATH # -------------------- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl AC_CACHE_CHECK([for the default library search path], [lt_cv_sys_dlsearch_path], [lt_cv_sys_dlsearch_path=$sys_lib_dlsearch_path_spec]) if test -n "$lt_cv_sys_dlsearch_path"; then sys_dlsearch_path= for dir in $lt_cv_sys_dlsearch_path; do if test -z "$sys_dlsearch_path"; then sys_dlsearch_path=$dir else sys_dlsearch_path=$sys_dlsearch_path$PATH_SEPARATOR$dir fi done m4_pattern_allow([LT_DLSEARCH_PATH])dnl AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"], [Define to the system default library search path.]) fi ])# LT_SYS_DLSEARCH_PATH # Old name: AU_ALIAS([AC_LTDL_SYSSEARCHPATH], [LT_SYS_DLSEARCH_PATH]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SYSSEARCHPATH], []) # _LT_CHECK_DLPREOPEN # ------------------- m4_defun([_LT_CHECK_DLPREOPEN], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen], [libltdl_cv_preloaded_symbols], [if test -n "$lt_cv_sys_global_symbol_pipe"; then libltdl_cv_preloaded_symbols=yes else libltdl_cv_preloaded_symbols=no fi ]) if test yes = "$libltdl_cv_preloaded_symbols"; then AC_DEFINE([HAVE_PRELOADED_SYMBOLS], [1], [Define if libtool can extract symbol lists from object files.]) fi ])# _LT_CHECK_DLPREOPEN # LT_LIB_DLLOAD # ------------- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$]) LT_DLLOADERS= AC_SUBST([LT_DLLOADERS]) AC_LANG_PUSH([C]) lt_dlload_save_LIBS=$LIBS LIBADD_DLOPEN= AC_SEARCH_LIBS([dlopen], [dl], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) if test "$ac_cv_search_dlopen" != "none required"; then LIBADD_DLOPEN=-ldl fi libltdl_cv_lib_dl_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H # include <dlfcn.h> #endif ]], [[dlopen(0, 0);]])], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) libltdl_cv_func_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], [AC_CHECK_LIB([svld], [dlopen], [AC_DEFINE([HAVE_LIBDL], [1], [Define if you have the libdl library or equivalent.]) LIBADD_DLOPEN=-lsvld libltdl_cv_func_dlopen=yes LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])]) if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen" then lt_save_LIBS=$LIBS LIBS="$LIBS $LIBADD_DLOPEN" AC_CHECK_FUNCS([dlerror]) LIBS=$lt_save_LIBS fi AC_SUBST([LIBADD_DLOPEN]) LIBADD_SHL_LOAD= AC_CHECK_FUNC([shl_load], [AC_DEFINE([HAVE_SHL_LOAD], [1], [Define if you have the shl_load function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"], [AC_CHECK_LIB([dld], [shl_load], [AC_DEFINE([HAVE_SHL_LOAD], [1], [Define if you have the shl_load function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" LIBADD_SHL_LOAD=-ldld])]) AC_SUBST([LIBADD_SHL_LOAD]) case $host_os in darwin[[1567]].*) # We only want this for pre-Mac OS X 10.4. AC_CHECK_FUNC([_dyld_func_lookup], [AC_DEFINE([HAVE_DYLD], [1], [Define if you have the _dyld_func_lookup function.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"]) ;; beos*) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" ;; cygwin* | mingw* | pw32*) AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include <sys/cygwin.h>]]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" ;; esac AC_CHECK_LIB([dld], [dld_link], [AC_DEFINE([HAVE_DLD], [1], [Define if you have the GNU dld library.]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"]) AC_SUBST([LIBADD_DLD_LINK]) m4_pattern_allow([^LT_DLPREOPEN$]) LT_DLPREOPEN= if test -n "$LT_DLLOADERS" then for lt_loader in $LT_DLLOADERS; do LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " done AC_DEFINE([HAVE_LIBDLLOADER], [1], [Define if libdlloader will be built on this platform]) fi AC_SUBST([LT_DLPREOPEN]) dnl This isn't used anymore, but set it for backwards compatibility LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" AC_SUBST([LIBADD_DL]) LIBS=$lt_dlload_save_LIBS AC_LANG_POP ])# LT_LIB_DLLOAD # Old name: AU_ALIAS([AC_LTDL_DLLIB], [LT_LIB_DLLOAD]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_DLLIB], []) # LT_SYS_SYMBOL_USCORE # -------------------- # does the compiler prefix global symbols with an underscore? AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl AC_CACHE_CHECK([for _ prefix in compiled symbols], [lt_cv_sys_symbol_underscore], [lt_cv_sys_symbol_underscore=no cat > conftest.$ac_ext <<_LT_EOF void nm_test_func(){} int main(){nm_test_func;return 0;} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. ac_nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then # See whether the symbols have a leading underscore. if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then lt_cv_sys_symbol_underscore=yes else if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then : else echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD fi fi else echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.c >&AS_MESSAGE_LOG_FD fi rm -rf conftest* ]) sys_symbol_underscore=$lt_cv_sys_symbol_underscore AC_SUBST([sys_symbol_underscore]) ])# LT_SYS_SYMBOL_USCORE # Old name: AU_ALIAS([AC_LTDL_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_SYMBOL_USCORE], []) # LT_FUNC_DLSYM_USCORE # -------------------- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([_LT_COMPILER_PIC])dnl for lt_prog_compiler_wl AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl for lt_cv_sys_symbol_underscore AC_REQUIRE([LT_SYS_MODULE_EXT])dnl for libltdl_cv_shlibext if test yes = "$lt_cv_sys_symbol_underscore"; then if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"; then AC_CACHE_CHECK([whether we have to add an underscore for dlsym], [libltdl_cv_need_uscore], [libltdl_cv_need_uscore=unknown dlsym_uscore_save_LIBS=$LIBS LIBS="$LIBS $LIBADD_DLOPEN" libname=conftmod # stay within 8.3 filename limits! cat >$libname.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; }] _LT_EOF # ltfn_module_cmds module_cmds # Execute tilde-delimited MODULE_CMDS with environment primed for # $module_cmds or $archive_cmds type content. ltfn_module_cmds () {( # subshell avoids polluting parent global environment module_cmds_save_ifs=$IFS; IFS='~' for cmd in @S|@1; do IFS=$module_cmds_save_ifs libobjs=$libname.$ac_objext; lib=$libname$libltdl_cv_shlibext rpath=/not-exists; soname=$libname$libltdl_cv_shlibext; output_objdir=. major=; versuffix=; verstring=; deplibs= ECHO=echo; wl=$lt_prog_compiler_wl; allow_undefined_flag= eval $cmd done IFS=$module_cmds_save_ifs )} # Compile a loadable module using libtool macro expansion results. $CC $pic_flag -c $libname.$ac_ext ltfn_module_cmds "${module_cmds:-$archive_cmds}" # Try to fetch fnord with dlsym(). libltdl_dlunknown=0; libltdl_dlnouscore=1; libltdl_dluscore=2 cat >conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include <dlfcn.h> #endif #include <stdio.h> #ifndef RTLD_GLOBAL # ifdef DL_GLOBAL # define RTLD_GLOBAL DL_GLOBAL # else # define RTLD_GLOBAL 0 # endif #endif #ifndef RTLD_NOW # ifdef DL_NOW # define RTLD_NOW DL_NOW # else # define RTLD_NOW 0 # endif #endif int main () { void *handle = dlopen ("`pwd`/$libname$libltdl_cv_shlibext", RTLD_GLOBAL|RTLD_NOW); int status = $libltdl_dlunknown; if (handle) { if (dlsym (handle, "fnord")) status = $libltdl_dlnouscore; else { if (dlsym (handle, "_fnord")) status = $libltdl_dluscore; else puts (dlerror ()); } dlclose (handle); } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null libltdl_status=$? case x$libltdl_status in x$libltdl_dlnouscore) libltdl_cv_need_uscore=no ;; x$libltdl_dluscore) libltdl_cv_need_uscore=yes ;; x*) libltdl_cv_need_uscore=unknown ;; esac fi rm -rf conftest* $libname* LIBS=$dlsym_uscore_save_LIBS ]) fi fi if test yes = "$libltdl_cv_need_uscore"; then AC_DEFINE([NEED_USCORE], [1], [Define if dlsym() requires a leading underscore in symbol names.]) fi ])# LT_FUNC_DLSYM_USCORE # Old name: AU_ALIAS([AC_LTDL_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_DLSYM_USCORE], []) �����������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/m4/ltoptions.m4��������������������������������������������������������������������������0000664�0000000�0000000�00000034262�13775351206�0015336�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 8 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option '$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl 'shared' nor 'disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], [_LT_WITH_AIX_SONAME([aix])]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the 'shared' and # 'disable-shared' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the 'static' and # 'disable-static' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the 'fast-install' # and 'disable-fast-install' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_AIX_SONAME([DEFAULT]) # ---------------------------------- # implement the --with-aix-soname flag, and support the `aix-soname=aix' # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT # is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. m4_define([_LT_WITH_AIX_SONAME], [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[[5-9]]*,yes) AC_MSG_CHECKING([which variant of shared library versioning to provide]) AC_ARG_WITH([aix-soname], [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], [case $withval in aix|svr4|both) ;; *) AC_MSG_ERROR([Unknown argument to --with-aix-soname]) ;; esac lt_cv_with_aix_soname=$with_aix_soname], [AC_CACHE_VAL([lt_cv_with_aix_soname], [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) with_aix_soname=$lt_cv_with_aix_soname]) AC_MSG_RESULT([$with_aix_soname]) if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac _LT_DECL([], [shared_archive_member_spec], [0], [Shared archive member basename, for filename based shared library versioning on AIX])dnl ])# _LT_WITH_AIX_SONAME LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the 'pic-only' and 'no-pic' # LT_INIT options. # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac], [pic_mode=m4_default([$1], [default])]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/m4/ltsugar.m4����������������������������������������������������������������������������0000664�0000000�0000000�00000010440�13775351206�0014754�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59, which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/m4/ltversion.m4��������������������������������������������������������������������������0000664�0000000�0000000�00000001273�13775351206�0015324�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 4179 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.6]) m4_define([LT_PACKAGE_REVISION], [2.4.6]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6' macro_revision='2.4.6' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/m4/lt~obsolete.m4������������������������������������������������������������������������0000664�0000000�0000000�00000013774�13775351206�0015662�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software # Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) ����twin-0.9.0/missing_checks���������������������������������������������������������������������������0000664�0000000�0000000�00000000112�13775351206�0015420�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������HAVE_ATTRIBUTE_CONST HAVE_ATTRIBUTE_PACKED HAVE_INLINE HAVE_STATIC_INLINE ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/���������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014201�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/0-download.bash������������������������������������������������������������������0000775�0000000�0000000�00000004630�13775351206�0017012�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/bash set -e rm -f utf32_cache.sh mkdir txt 2>/dev/null || true cd txt download() { echo "wget $2" wget -q -O "$1" "$2" } download UnicodeData.txt http://unicode.org/Public/UNIDATA/UnicodeData.txt download EastAsianWidth.txt http://unicode.org/Public/UNIDATA/EastAsianWidth.txt for i in 1 2 3 4 5 6 7 8 9 10 11 13 14 15 16 do download "iso8859_$i.txt" http://unicode.org/Public/MAPPINGS/ISO8859/"8859-$i.TXT" done download "adobe_stdenc.txt" http://unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt download "adobe_symbol.txt" http://unicode.org/Public/MAPPINGS/VENDORS/ADOBE/symbol.txt for N in ARABIC.TXT CELTIC.TXT CENTEURO.TXT CROATIAN.TXT CYRILLIC.TXT \ DEVANAGA.TXT DINGBATS.TXT FARSI.TXT GAELIC.TXT GREEK.TXT \ GUJARATI.TXT GURMUKHI.TXT HEBREW.TXT ICELAND.TXT INUIT.TXT \ ROMAN.TXT ROMANIAN.TXT SYMBOL.TXT THAI.TXT TURKISH.TXT # CHINSIMP.TXT CHINTRAD.TXT CORPCHAR.TXT JAPANESE.TXT KOREAN.TXT # these are already multi-byte... not useful for byte -> utf16 conversions # UKRAINE.TXT # this is empty do n="mac_`echo $N | tr 'A-Z' 'a-z'`" download "$n" http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/"$N" done mv mac_centeuro.txt mac_centraleurope.txt mv mac_devanaga.txt mac_devanagari.txt mv mac_iceland.txt mac_icelandic.txt download "nextstep.txt" http://unicode.org/Public/MAPPINGS/VENDORS/NEXT/NEXTSTEP.TXT for N in CP737.TXT CP775.TXT CP852.TXT CP855.TXT CP857.TXT CP860.TXT CP861.TXT \ CP862.TXT CP863.TXT CP864.TXT CP865.TXT CP866.TXT CP869.TXT CP874.TXT # CP437.TXT CP850.TXT are implemented manually do n="`echo $N | tr 'A-Z' 'a-z'`" download "$n" http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/"$N" done for N in CP874.TXT CP932.TXT CP936.TXT CP949.TXT CP950.TXT CP1250.TXT CP1251.TXT CP1252.TXT \ CP1253.TXT CP1254.TXT CP1255.TXT CP1256.TXT CP1257.TXT CP1258.TXT do n="`echo $N | tr 'A-Z' 'a-z'`" download "$n" http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/"$N" done for N in CYRILLIC.TXT GREEK.TXT ICELAND.TXT LATIN2.TXT ROMAN.TXT TURKISH.TXT do n="ms_mac_`echo $N | tr 'A-Z' 'a-z'`" download "$n" http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/MAC/"$N" done mv ms_mac_iceland.txt ms_mac_icelandic.txt for N in APL-ISO-IR-68.TXT ATARIST.TXT CP424.TXT CP856.TXT CP1006.TXT KOI8-R.TXT KOI8-U.TXT KZ1048.TXT do n="`echo $N | tr 'A-Z-' 'a-z_'`" download "$n" http://unicode.org/Public/MAPPINGS/VENDORS/MISC/"$N" done cd .. ��������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/1-make-utf_32_h.bash�������������������������������������������������������������0000775�0000000�0000000�00000001564�13775351206�0017533�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/bash mkdir include 2>/dev/null exec >include/utf_32.h cat <<EOF /* * utf_32.h -- include for UTF-32 (Unicode) characters database * * PLEASE DO NOT EDIT! * * This file was automatically generated from http://unicode.org/Public/UNIDATA/UnicodeData.txt * using the script twin/scripts/1-make-utf_32_h.bash * * All changes to this file will be lost when the script is re-executed. */ #ifndef TUTF_UTF_32_H #define TUTF_UTF_32_H /* auxiliary definitions */ #include <Tutf/utf_32_aux.h> EOF cut -d';' -f1,2,11 <txt/UnicodeData.txt | tr ', -' '___' | sed -e 's/<[^>]*>/_/g' -e 's/_([^)]*)//g' | tr ';' ' ' | \ while read i n1 n2; do if [ "$n1" != "" -a "$n1" != "_" ]; then echo "#define T_UTF_32_$n1 0x$i" elif [ "$n2" != "" -a "$n2" != "_" ]; then echo "#define T_UTF_32_CTRL_$n2 0x$i" fi done echo "" echo "" echo "#endif /* TUTF_UTF_32_H */" ��������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/2-make-includes.bash�������������������������������������������������������������0000775�0000000�0000000�00000001020�13775351206�0017714�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/bash for path in txt/*.txt; do if [ "$path" = "txt/UnicodeData.txt" -o "$path" = "txt/EastAsianWidth.txt" ]; then continue fi f="${path#txt/}" f="${f%.txt}" F="`echo \"$f\" | tr 'a-z' 'A-Z'`" OPTS= if [ "$F" = NEXTSTEP -o "${F:0:4}" = MAC_ ]; then OPTS="--insert-missing=128" elif [ "${F:0:6}" = ADOBE_ ]; then OPTS="--insert-missing=32" fi echo "./helper-from-unicode.org.bash $F $OPTS < $path > include/$f.h" ./helper-from-unicode.org.bash "$F" $OPTS < "$path" > include/"$f".h done ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/3-make-wcwidth-data.bash���������������������������������������������������������0000775�0000000�0000000�00000001510�13775351206�0020473�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/bash exec >include/wcwidth_data.h cat <<EOF /* * wcwidth_data.c -- compute display width of UTF-32 (Unicode) characters * * PLEASE DO NOT EDIT! * * This file was automatically generated from http://unicode.org/Public/UNIDATA/EastAsianWidth.txt * using the script twin/scripts/3-make-wcwidth-data.bash * * All changes to this file will be lost when the script is re-executed. */ #ifndef TUTF_WCWIDTH_DATA_H #define TUTF_WCWIDTH_DATA_H static const trune wide[][2] = { EOF cat txt/EastAsianWidth.txt | grep '^[0-9A-F]' | cut -d' ' -f1 | grep -v ';N' | sed -e 's/\.\./ /' -e 's/;/ /' | \ while read lo hi width; do if [ "$width" = "" ]; then width="$hi" hi="$lo" fi if [ "$width" = "F" -o "$width" = "W" ]; then echo " { 0x$lo, 0x$hi }," fi done cat <<EOF }; #endif /* TUTF_WCWIDTH_DATA_H */ EOF ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/gensources.sh��������������������������������������������������������������������0000664�0000000�0000000�00000001134�13775351206�0016711�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������BISON=bison FIND=find FLEX=flex SED=sed M4=m4 LN=ln $FIND -name \*.m4h | \ while read i do o="`echo \"$i\" | $SED 's,/m4/\(.*\).m4h,/\1_m4.h,g'`" echo "$M4 -I include < \"$i\" > \"$o\"" $M4 -I include < "$i" > "$o" done for i in md5.c missing.c do echo "$LN -f -n \"server/$i\"pp \"libs/libtw/$i\"" $LN -f -n "server/$i"pp "libs/libtw/$i" done echo "cd server" cd server echo "$FLEX -o rcparse_lex.cpp rcparse.l" $FLEX -o rcparse_lex.cpp rcparse.l echo "$BISON --no-lines --defines -o rcparse_tab.cpp rcparse.y" $BISON --no-lines --defines -o rcparse_tab.cpp rcparse.y echo "cd .." cd .. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/helper-from-unicode.org.bash�����������������������������������������������������0000775�0000000�0000000�00000010514�13775351206�0021476�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/bash CHARSET="`echo \"$1\" | tr 'a-z' 'A-Z'`" if [ "$CHARSET" = "" ]; then echo 'Usage: helper-from-unicode.org.bash CHARSET-NAME < UNICODE.ORG-CHARSET-DEF.TXT > INCLUDE.h' exit 0 fi INSERT_MISSING=0 if [ "${2:0:17}" = "--insert-missing=" ]; then INSERT_MISSING="${2:17}" fi echo echo '/*' echo ' * This file was automatically generated from unicode' echo ' * charset definition files http://unicode.org/Public/MAPPINGS/' echo ' * using the script twin/scripts/helper-from-unicode.org.bash' echo ' *' echo ' * PLEASE DO NOT EDIT!' echo ' */' echo if [ -f utf_32.bash.cache ]; then . utf_32.bash.cache else if [ ! -r include/utf_32.h ]; then echo "File 'include/utf_32.h' not found! please run the script '1-make-utf_32_h.bash' first" 1>&2 exit 1 fi while read define name value; do if [ "$define" = '#define' -a "${name:0:9}" = 'T_UTF_32_' ]; then names["$(( value ))"]="${name:9}" fi done < include/utf_32.h set | grep ^names= > utf_32.bash.cache fi parse_hex() { local token="$1" local value= if [ "${token:0:2}" = "0x" ]; then value="$token" else # skip <LR>+ and <RL>+ and any other prefix... value="`expr match \"$token\" '.*\(0x[0-9a-fA-F]*\)'`" if [ "$value" = "" ]; then # check for hexadecimal value without 0x prefix value="`expr match \"$token\" '\([0-9a-fA-F]*\)'`" if [ "$value" = "$token" ]; then value="0x$token" fi fi fi result="$value" } list= nlist= ch= chinv= missing=0 def() { if [ "$INSERT_MISSING" != 0 ]; then while [ "$missing" -lt "$INSERT_MISSING" -a "$missing" -lt "$1" ]; do ch["$missing"]="$missing" chinv["$missing"]="$missing" : $(( missing = missing+1 )) done fi # do not create mappings for 0xFFFD = REPLACEMENT_CHARACTER, because unicode.org uses them to mean "character not defined" if [ "$2" != 65533 ]; then ch["$1"]="$2" if [ "$2" != "" -a "$2" != "." ]; then if [ "${chinv[$2]}" = "" ]; then # used to catch duplicates later chinv["$2"]="$1" fi fi fi } echo echo "#ifndef TUTF_${CHARSET}_H" echo "#define TUTF_${CHARSET}_H" echo while read hex_index hex_value comments; do if [ "$hex_index" = "" -o "${hex_index:0:1}" = "#" ]; then # skip empty lines and comments continue fi parse_hex "$hex_index" # echo "parse_hex($hex_index) -> $result # $hex_value $comments" hex_index="$result" if [ "$hex_index" = "" ]; then continue fi index="$(( hex_index ))" if [ "$index" -gt 255 ]; then # this is a byte-to-utf32 mapping... cannot define mappings from (> 0xFF) continue fi parse_hex "$hex_value" hex_value="$result" if [ "$hex_value" != "" ]; then value="$(( hex_value ))" if [ "$value" -gt 1114111 ]; then # mappings to (> 0x10FFFF) are forbidden by Unicode standard continue fi else value="." fi def "$index" "$value" done to_name() { local value="${ch[$1]}" result= if [ "$value" != "" -a "$value" != "." ]; then # skip duplicates if [ "${chinv[$value]}" = "$1" ]; then result="${names[$value]}" fi fi if [ "$result" = "" -o "$result" = "." ]; then result="UNDEFINED_${2:2}" # "$2" is hex_index, skip its "0x" prefix fi } index=0 while [ "$index" -le 255 ]; do hex_index="`printf 0x%04X \"$index\"`" to_name "$index" "$hex_index" name="$result" if [ "$name" != "" ]; then echo "#define T_${CHARSET}_$name $hex_index" fi : $(( index = index + 1 )) done echo echo "/* list of all characters */" echo -n "#define T_LIST_${CHARSET}(EL)" index=0 while [ "$index" -le 255 ]; do hex_index="`printf 0x%04X \"$index\"`" value="${ch[index]}" if [ "$value" != "" ]; then to_name "$index" "$hex_index" name="$result" if [ "$name" != "" ]; then echo " \\" echo -n " EL(_$name)" fi fi : $(( index = index + 1 )) done echo echo echo '/* list of all characters NOT IDENTICALLY MAPPED to UTF-32 */' echo -n "#define T_NLIST_${CHARSET}(EL)" index=0 while [ "$index" -le 255 ]; do hex_index="`printf 0x%04X \"$index\"`" value="${ch[index]}" if [ "$value" != "" -a "$value" != "$index" ]; then to_name "$index" "$hex_index" name="$result" if [ "$name" != "" ]; then echo " \\" echo -n " EL(_$name)" fi fi : $(( index = index + 1 )) done echo echo echo echo "#endif /* TUTF_${CHARSET}_H */" ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0016015�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/Configure.dialog��������������������������������������������������������0000664�0000000�0000000�00000012022�13775351206�0021114�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2000 by Massimiliano Ghilardi # # This program 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 2 of the License, or # (at your option) any later version. # # # TOP_SRCDIR T="$1" shift # TOP_BUILDDIR B="$1" shift if test -z "$BASH"; then echo 'WARNING: $BASH environment variable is not set. This script' echo '(scripts/Configure.tty) requires bash, so it will probably fail.' echo 'If it fails, check that you have bash correctly installed.' fi function yesno() { eval "VAL=\${$1}" eval "HELP=\${${1}_HELP}" if test "$VAL" = "y" -o "$VAL" = "m"; then VAL="on" else VAL="off" fi : $[ CURRITEMS=CURRITEMS+1 ] CURRCMD="$CURRCMD ${1#CONF_} \\\"$HELP\\\" $VAL" } # cannot rely on the value of dependency variable... # user may change it while inside "dialog" function yesno_dep() { yesno "$1" eval "yesno_dep_$1=$2" } function yesmodno() { if test "$CONF__MODULES" = n; then yesno "$1" else eval "VAL=\${$1}" eval "HELP=\${${1}_HELP}" if test "$VAL" = "y"; then VAL="on"; MOD="off"; elif test "$VAL" = "m"; then VAL="on"; MOD="on"; else VAL="off"; MOD="off"; fi : $[ CURRITEMS=CURRITEMS+2 ] CURRCMD="$CURRCMD ${1#CONF_} \\\"$HELP\\\" $VAL ${1#CONF_}_MOD \\\" -> Compile as module\\\" $MOD" fi } # cannot rely on the value of dependency variable... # user may change it while inside "dialog" function yesmodno_dep() { yesmodno "$1" eval "yesmodno_dep_$1=$2" } # here we CAN rely on the value of dependency variable... # as it it located in another menu function yesno_truedep() { eval "DEP=\${$2}" if test "$DEP" != n; then yesno "$1" else eval "$1=n" fi } # here we CAN rely on the value of dependency variable... # as it it located in another menu function yesmodno_truedep() { eval "DEP=\${$2}" if test "$DEP" != n; then yesmodno "$1" else eval "$1=n" fi } function msg() { : $[ CURRITEMS=CURRITEMS+1 ] CURRCMD="$CURRCMD :Information: \\\"${1}\\\" off" } function menu() { eval "MAINCMD=\"\$MAINCMD ${1#CONF_} \\\"\${${1}_MENU}\\\"\"" : $[ MAINITEMS=MAINITEMS+1 ] CURRMENU="$1" CURRITEMS=0 CURRCMD="" } function endmenu() { eval "MENU_${CURRMENU}=\"--separate-output --checklist \\\"\${${CURRMENU}_MENU}\\\" $[CURRITEMS+7] 80 $CURRITEMS $CURRCMD\"" } function die() { rm -f .dialog_* echo echo "Quitting..." echo echo "Twin configuration was NOT saved!" echo exit 0 } function quit() { rm -f .dialog_* echo echo "Twin configuration saved." echo exit 0 } function dump() { eval "VAL=\${$1}" if [ "$VAL" = m -a "$CONF__MODULES" = n ]; then VAL=y fi eval "DEP1=\${yesno_dep_$1}" eval "DEP2=\${yesmodno_dep_$1}" if [ "$DEP1" ]; then eval "DEP1VAL=\${$DEP1}" if [ "$DEP1VAL" = n ]; then VAL=n fi elif [ "$DEP2" ]; then eval "DEP2VAL=\${$DEP2}" if [ "$DEP2VAL" = n ]; then VAL=n elif [ "$CONF__MODULES" = y -a "$DEP1VAL" = m -a "$VAL" = y ]; then VAL=m fi fi echo "$1=$VAL" } function fulldump() { cat >"$B"conf/conf.current <<EOF # # This file holds the current configuration. # It was created by 'make menuconfig', do not edit! # # Configuration: # EOF for i in `cat "$T"conf/conf.list`; do dump $i done >>"$B"conf/conf.current } function parse() { # skip gtk/gdk error messages CURR=`grep -v WARNING $2`; LIST=`cat "$T"conf/conf.list | grep CONF_${1}` for i in $LIST; do THIS=n for j in $CURR; do if [ "${i#CONF_}" = "$j" ]; then THIS=y elif [ "$THIS" = y -a "${i#CONF_}_MOD" = "$j" ]; then THIS=m break; fi done if [ "$CONF__MODULES" = n -a "$THIS" = m ]; then THIS=y fi eval "$i=$THIS" done } trap die SIGINT SIGQUIT SIGHUP SIGTERM MAINCMD= MAINITEMS=2 . "$T"conf/conf.default if [ -f "$B"conf/conf.current ]; then . "$B"conf/conf.current if [ -f "$B"conf/conf.auto -a "$B"conf/conf.auto -nt "$B"conf/conf.current ]; then . "$B"conf/conf.auto fi elif [ -f "$B"conf/conf.auto ]; then . "$B"conf/conf.auto fi . "$T"conf/conf.base MENU_MAIN="--menu \"Twin Configuration - Top Menu\" $[ MAINITEMS+7 ] 50 $MAINITEMS $MAINCMD SAVE \"Save config and exit\" QUIT \"Exit without saving\"" if test "$1"; then failure="$1" shift else failure=1 fi if test "$1"; then dialog="$@" else dialog="dialog" fi while :; do eval "$dialog $MENU_MAIN 2>.dialog_MENU_MAIN" test $? != $failure || die # skip gtk/gdk error messages RES=`tail -n 1 .dialog_MENU_MAIN`; case "$RES" in SAVE) fulldump; quit ;; QUIT) die ;; *) eval "MENU=\"\${MENU_CONF_${RES}}\"" if test "$MENU"; then eval "$dialog $MENU 2>.dialog_MENU_${RES}" && parse $RES .dialog_MENU_${RES} && . "$T"conf/conf.base fi ;; esac done ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/Configure.fallback������������������������������������������������������0000775�0000000�0000000�00000002223�13775351206�0021421�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Copyright (C) 2000 by Massimiliano Ghilardi # # This program 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 2 of the License, or # (at your option) any later version. # # # TOP_SRCDIR T="$1" # TOP_BUILDDIR B="$1" . "$T"conf/conf.default if [ -f "$B"conf/conf.current ]; then . "$B"conf/conf.current if [ -f "$B"conf/conf.auto -a "$B"conf/conf.auto -nt "$B"conf/conf.current ]; then . "$B"conf/conf.auto echo "# Using configuration generated by './configure' saved in conf.auto" else echo "# Using manual configuration saved in conf.current" fi elif [ -f "$B"conf/conf.auto ]; then . "$B"conf/conf.auto echo "# Using configuration generated by './configure' saved in conf.auto" else echo "# Using default configuration from conf.default" fi cat >"$B"conf/conf.current <<EOF # # This file holds the current configuration. # It was created by 'make config', do not edit! # # Configuration: # EOF for i in `cat "$T"conf/conf.list`; do eval "echo $i=\${$i}" done >>"$B"conf/conf.current �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/Configure.sh������������������������������������������������������������0000775�0000000�0000000�00000020161�13775351206�0020275�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Copyright (C) 2000 by Massimiliano Ghilardi # # This program 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 2 of the License, or # (at your option) any later version. # # for ac_option do case "$ac_option" in -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) ac_optarg= ;; esac case "$ac_option" in -help | --help | --hel | --he ) cat << EOF Usage: scripts/Configure.sh [OPTIONS] This script lets you manually configure twin with a command-line interface. Options: [defaults in brackets after descriptions] --help print this message --show show current configuration --top-srcdir=DIR set top source directory --top-builddir=DIR set top build directory --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable options recognized: --enable--shlibs[=yes|no] enable building shared libraries --enable--modules[=yes|no] enable building shared modules --enable--unicode[=yes|no] enable building unicode-aware code --enable--alloc[=yes|no] enable custom malloc/free routines --enable--long-long[=yes|no] enable C type 'long long' if supported --enable--asm[=yes|no] enable hand-optimized assembler if available --enable-socket[=yes|no] enable remote socket connections (libtw) --enable-socket-gz[=yes|no] enable gzip compression on sockets --enable-socket-pthreads[=yes|no] enable thread safe libtw (requires pthread) --enable-socket-alien[=yes|no] enable support for non-native architectures EOF cat << EOF --enable-tt[=yes|no] enable Text Toolkit library (libTT) --enable-tt-hw-twin[=yes|no|mod] enable libTT to use twin (libtw) as display driver --enable-tt-hw-twin-tunnel[=yes|mod|no] enable libTT to use twin + server side libTT --enable-tt-hw-twin-detunnel[=yes|mod|no] enable libTT on twin server side --enable-tt-hw-gtk[=yes|no|mod] enable libTT to use gtk as display driver --enable-tt-hw-x11[=yes|mod|no] enable libTT to use X11 as display target --enable-tt-hw-xml[=yes|mod|no] enable libTT to use xml files as display target EOF cat << EOF --enable-wm[=yes|no|mod] enable the builtin WM (absolutely needed!) --enable-wm-rc[=yes|no|mod] enable ~/.twinrc configuration parser --enable-wm-rc-shmmap[=yes|no] enable mmapped shared file for parser --enable-wm-rc-shrink[=yes|no] enable shrinking memory when parser finished --enable-term[=yes|no|mod] enable builtin terminal emulator --enable-term-devpts[=yes|no] enable Unix98 /dev/pts/* pseudo-ttys --enable-printk[=yes|no] enable logging messages in Messages window EOF cat << EOF --enable-hw-tty[=yes|no|mod] enable tty drivers --enable-hw-tty-linux[=yes|no] enable the Linux console driver --enable-hw-tty-twterm[=yes|no] enable the twterm terminal driver --enable-hw-tty-termcap[=yes|no] enable the termcap terminal driver --enable-hw-x11[=yes|no|mod] enable the X11 driver --enable-hw-twin[=yes|no|mod] enable the twin native driver --enable-hw-display[=yes|no|mod] enable the twdisplay client driver EOF cat << EOF --enable-ext[=yes|no] enable server extensions --enable-ext-tt[=yes|mod|no] enable the libTT server extensions EOF cat << EOF --enable-opt-shadows[=yes|no] enable shadows --enable-opt-blink[=yes|no] enable blink/high background --enable-opt-alwayscursor[=yes|no] enable cursor always visible --enable-opt-hidemenu[=yes|no] enable hidden menu --enable-opt-menuinfo[=yes|no] enable menu information line --enable-opt-menurelax[=yes|no] enable arrows to open/close submenus --enable-opt-edgescroll[=yes|no] enable screen scrolling EOF exit 0 ;; -disable-* | --disable-* ) ;; -enable-* | --enable-* ) ;; --show | --sho | --sh ) ;; -top-srcdir=* | --top-srcdir=* ) T="$ac_optarg" ;; -top-builddir=* | --top-builddir=* ) B="$ac_optarg" ;; *) echo "scripts/Configure.sh: unknown option $ac_option" 1>&2 echo " try 'scripts/Configure.sh --help' for usage summary" 2>&1 exit 1;; esac done if [ "$#" = 0 ]; then echo "try 'scripts/Configure.sh --help' for usage summary" 2>&1 exit 1 fi # # read current configuration # if [ ! -f "$T"conf/conf.default ]; then echo "scripts/Configure.sh: fatal: \"$Tconf/conf.default\" does not exist!" echo " maybe you forgot to use --top-srcdir=DIR and --top-builddir=DIR ?" exit 1 fi . "$T"conf/conf.default if [ -f "$B"conf/conf.current ]; then . "$B"conf/conf.current if [ -f "$B"conf/conf.auto -a "$B"conf/conf.auto -nt "$B"conf/conf.current ]; then . "$B"conf/conf.auto fi elif [ -f "$B"conf/conf.auto ]; then . "$B"conf/conf.auto fi if [ ! -f "$B"conf/conf.auto ]; then echo "scripts/Configure.sh: warning: missing conf/conf.auto: 'configure' will overwrite your changes!" 1>&2 fi ac_cf_list= # # set enable_* variables from current configuration # for ac_CONF in `cat "$T"conf/conf.list`; do ac_feature=enable_`echo $ac_CONF | cut -d_ -f2- | tr 'A-Z-' 'a-z_'` ac_cf_list="$ac_cf_list $ac_feature" eval "$ac_feature=$`echo $ac_CONF`" done # # process command line options # for ac_option do case "$ac_option" in -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) ac_optarg= ;; esac case "$ac_option" in -disable-* | --disable-*) ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then echo "scripts/Configure.sh: error: $ac_feature: invalid feature name" 1>&2 exit 1 fi ac_feature=`echo $ac_feature| sed 's/-/_/g'` eval "enable_${ac_feature}=no" ;; --show | --sho | --sh ) ac_opt_show=yes ;; -enable-* | --enable-*) ac_feature=`echo $ac_option | sed -e 's/-*enable-//' -e 's/=.*//'` # Reject names that are not valid shell variable names. if test -n "`echo $ac_feature | sed 's/[-_a-zA-Z0-9]//g'`"; then echo "scripts/Configure.sh: error: $ac_feature: invalid feature name" 1>&2 exit 1 fi ac_feature=`echo $ac_feature | sed 's/-/_/g'` case "$ac_option" in *=*) ;; *) ac_optarg=yes ;; esac eval "enable_${ac_feature}='$ac_optarg'" ;; -help | --help | --hel | --he) ;; -top-* | --top-* ) ;; *) echo "scripts/Configure.sh: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1 ;; esac done # # prepare conf/conf.auto # exec 3>"$B"conf/conf.auto echo "#" 1>&3 echo "# This configuration was created by 'scripts/Configure.sh [OPTIONS]'." 1>&3 echo "# Don't edit it, use one of 'make config', 'make menuconfig', " 1>&3 echo "# 'scripts/Configure.sh [OPTIONS]' or './configure [OPTIONS]' instead." 1>&3 echo "#" 1>&3 if test "$ac_opt_show"; then echo "#" 1>&2 echo "# scripts/Configure.sh: current configuration is:" 1>&2 echo "#" 1>&2 fi for ac_feature in $ac_cf_list; do eval "ac_cf_val=$`echo $ac_feature`" case "$ac_cf_val" in y | yes ) ac_cf_val=y ; ac_cf_val_long=yes ;; n | no ) ac_cf_val=n ; ac_cf_val_long=no ;; m | mod ) ac_cf_val=m ; ac_cf_val_long=mod ;; * ) # unset / undetectable. set to empty. ac_cf_val= ; ac_cf_val_long= ;; esac if test "$ac_cf_val"; then ac_CONF=CONF_`echo $ac_feature | cut -d_ -f2- | sed 'y%abcdefghijklmnopqrstuvwxyz%ABCDEFGHIJKLMNOPQRSTUVWXYZ%'` #echo $ac_feature, $ac_cf_val_long #echo $ac_CONF, $ac_cf_val echo "$ac_CONF=$ac_cf_val" 1>&3 if test "$ac_opt_show"; then echo " --`echo $ac_feature | sed 's/_/-/g'`=$ac_cf_val_long" fi fi done if test -z "$ac_opt_show"; then echo "#" 1>&2 echo "# scripts/Configure.sh: conf/conf.auto successfully updated." 1>&2 echo "#" 1>&2 fi ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/Configure.tty�����������������������������������������������������������0000775�0000000�0000000�00000006203�13775351206�0020504�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2000 by Massimiliano Ghilardi # # This program 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 2 of the License, or # (at your option) any later version. # # # TOP_SRCDIR T="$1" # TOP_BUILDDIR B="$2" if test -z "$BASH"; then echo 'WARNING: $BASH environment variable is not set. This script' echo '(scripts/Configure.tty) requires bash, so it will probably fail.' echo 'If it fails, check that you have bash correctly installed.' fi function yesno() { ANS= eval "VAL=\${$1}" eval "HELP=\${${1}_HELP}" if test "$VAL" = "y" -o "$VAL" = "m"; then PROMPT="[Y/n]" VAL="y" else PROMPT="[y/N]" VAL="n" fi while test "$ANS" != "y" -a "$ANS" != "n" do echo -n "$HELP $PROMPT ? " read ANS case "$ANS" in "" ) ANS="$VAL";; [yY] | [Yy]es | YES ) ANS="y";; [nN] | [Nn]o | NO ) ANS="n";; esac done eval "$1"="$ANS" } function yesno_dep() { eval "DEP=\${$2}" if test "$DEP" != n; then yesno "$1" fi } function yesmodno() { if [ $CONF__MODULES = n ]; then yesno "$1" else ANS= eval "VAL=\${$1}" eval "HELP=\${${1}_HELP}" if test "$VAL" = "y"; then PROMPT="[Y/m/n]" elif test "$VAL" = "m"; then PROMPT="[y/M/n]" else PROMPT="[y/m/N]" VAL="n" fi while test "$ANS" != "y" -a "$ANS" != "m" -a "$ANS" != "n" do echo -n "$HELP $PROMPT ? " read ANS case "$ANS" in "" ) ANS="$VAL";; [yY] | [Yy]es | YES ) ANS="y";; [mM] | [Mm]od | MOD ) ANS="m";; [nN] | [Nn]o | NO ) ANS="n";; esac done eval "$1=$ANS" fi } function yesmodno_dep() { eval "DEP=\${$2}" if test "$DEP" != n; then yesmodno "$1" fi } function yesno_truedep() { eval "DEP=\${$2}" if test "$DEP" != n; then yesno "$1" else eval "$1=n" fi } function yesmodno_truedep() { eval "DEP=\${$2}" if test "$DEP" != n; then yesmodno "$1" else eval "$1=n" fi } function msg() { echo "# $1" } function menu() { eval "echo -e '#\n#' \${${1}_MENU}'\n#'" } function endmenu() { : } function dump() { eval "echo $1=\${$1}" } echo "#" echo "# Twin configuration utility" echo "#" . "$T"conf/conf.default if [ -f "$B"conf/conf.current ]; then . "$B"conf/conf.current if [ -f "$B"conf/conf.auto -a "$B"conf/conf.auto -nt "$B"conf/conf.current ]; then . "$B"conf/conf.auto echo "# Using configuration generated by 'configure' saved in conf.auto" else echo "# Using manual configuration saved in conf.current" fi elif [ -f "$B"conf/conf.auto ]; then . "$B"conf/conf.auto echo "# Using configuration generated by 'configure' saved in conf.auto" else echo "# Using default configuration from conf.default" fi . "$T"conf/conf.base cat > "$B"conf/conf.current <<EOF # # This file holds the current configuration. # It was created by 'make config', do not edit! # # Configuration: # EOF for i in `cat "$T"conf/conf.list`; do dump $i done >>"$B"conf/conf.current ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/Makefiles.sh������������������������������������������������������������0000664�0000000�0000000�00000003072�13775351206�0020253�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2000 by Massimiliano Ghilardi # # This program 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 2 of the License, or # (at your option) any later version. # # # # remove any trailing slash from top_srcdir (more robust) and add a single trailing slash # top_srcdir="`echo \"$1\" | sed 's%\(/\)*$%%'`/" if test "$top_srcdir" = "/" -o ! -d "$top_srcdir"; then echo "Usage: scripts/Makefiles.sh <top_srcdir>" exit 1 fi echo "creating all the Makefiles..." MAKEFILES="`find \"$top_srcdir\" -name Makefile.sub | sed -e 's%^'\"$top_srcdir\"'%%' -e 's%.sub$%%'`" if test "$top_srcdir" = "./"; then top_srcdir= fi for i in $MAKEFILES; do if echo "$i" | grep '/' >/dev/null 2>/dev/null; then i_DIR="`echo $i|sed 's%/[^/][^/]*$%%'`/" i_REVERSE_DIR="`echo \"$i_DIR\" | sed 's%[^/][^/]*/%../%g'`" mkdir -p "$i_DIR" else i_DIR= i_REVERSE_DIR= fi if test "`echo \"$top_srcdir\" | cut -b1`" = "/"; then # $top_srcdir is an absolute path i_TOP_SRCDIR="$top_srcdir" else # $top_srcdir is a relative path, fix it for each subdirectory i_TOP_SRCDIR="$i_REVERSE_DIR$top_srcdir" fi if test "$top_srcdir"; then i_THIS_SRCDIR="$i_TOP_SRCDIR$i_DIR" else i_THIS_SRCDIR= fi echo " # # This file was generated automatically by scripts/Makefiles.sh. Do not edit. # # TOP_SRCDIR T:=$i_TOP_SRCDIR # THIS_SRCDIR S:=$i_THIS_SRCDIR # TOP_BUILDDIR B:=$i_REVERSE_DIR include \$(S)Makefile.sub " > $i done ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/Prettyconfig.sh���������������������������������������������������������0000775�0000000�0000000�00000007065�13775351206�0021041�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Copyright (C) 2000 by Massimiliano Ghilardi # # This program 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 2 of the License, or # (at your option) any later version. # # while [ "$1" ]; do eval "$1" shift done echo_shlibs="<none>" echo_op= echo_cl= if test "$enable__shlibs" = y; then echo_op='(' echo_cl=')' echo_shlibs="${OS}-${SYS_SHLIBS}" fi echo_cc_feat= if test "$enable__long_long" = y; then echo_cc_feat="$echo_cc_feat long-long" fi if test "$echo_cc_feat" = ""; then echo_cc_feat="<none>" else echo_cc_feat="`echo $echo_cc_feat`" fi echo_feat= for i in socket wm wm_rc term term_devpts; do eval "echo_val=\${enable_$i}" if test "$echo_val" = y; then echo_feat="$echo_feat $i" elif test "$echo_val" = m; then echo_feat="$echo_feat $echo_op""$i""$echo_cl" fi done if test "$echo_feat" = ""; then echo_feat="<none>" else echo_feat="`echo $echo_feat`" fi echo_socket= for i in gz pthreads alien; do eval "echo_val=\${enable_socket_$i}" if test "$echo_val" = y; then echo_socket="$echo_socket $i" elif test "$echo_val" = m; then echo_socket="$echo_socket $echo_op""$i""$echo_cl" fi done if test "$echo_socket" = ""; then echo_socket="<none>" else echo_socket="`echo $echo_socket`" fi echo_hw= for i in x11 xft twin display tty; do eval "echo_val=\${enable_hw_$i}" if test "$echo_val" = y; then echo_hw="$echo_hw $i" elif test "$echo_val" = m; then echo_hw="$echo_hw $echo_op""$i""$echo_cl" fi done if test "$echo_hw" = ""; then echo_hw="<none>" else echo_hw="`echo $echo_hw`" fi echo_hw_tty= if test "$enable_hw_tty" != n; then for i in linux lrawkbd twterm termcap; do eval "echo_val=\${enable_hw_tty_$i}" if test "$echo_val" = y; then echo_hw_tty="$echo_hw_tty $i" elif test "$echo_val" = m; then echo_hw_tty="$echo_hw_tty $echo_op""$i""$echo_cl" fi done fi if test "$echo_hw_tty" = ""; then echo_hw_tty="<none>" else echo_hw_tty="`echo $echo_hw_tty`" fi echo_libs= if test "$enable__unicode" != n; then echo_libs="$echo_libs $echo_op""libtutf""$echo_cl" fi if test "$enable_socket" != n; then echo_libs="$echo_libs $echo_op""libtw""$echo_cl" fi if test "$enable_TT" != n; then echo_libs="$echo_libs $echo_op""libTT""$echo_cl" fi if test "$echo_libs" = ""; then echo_libs="<none>" else echo_libs="`echo $echo_libs`" fi echo_tt_hw= for i in twin twin_tunnel twin_detunnel gtk x11 xml; do eval "echo_val=\${enable_tt_hw_$i}" if test "$echo_val" = y; then echo_tt_hw="$echo_tt_hw $i" elif test "$echo_val" = m; then echo_tt_hw="$echo_tt_hw $echo_op""$i""$echo_cl" fi done if test "$echo_tt_hw" = ""; then echo_tt_hw="<none>" else echo_tt_hw="`echo $echo_tt_hw`" fi echo " Configuration: Items in parenthesis (...) will be built as shared libraries/modules Compiler: ${CC} Compiler flags: ${CC_FLAGS_OPT} Compiler features used: ${echo_cc_feat} Shared libraries support: ${echo_shlibs} Server features: ${echo_feat} Server socket driver flags: ${echo_socket} Server HW drivers: ${echo_hw} Server HW tty driver flags: ${echo_hw_tty} Libraries: ${echo_libs} TT library HW targets: ${echo_tt_hw} Install path: ${prefix}/bin, ${prefix}/lib/twin, ${prefix}/share/twin to show/change other configuration settings, you can run one of: './configure <options>', 'scripts/Configure.sh <options>', 'make menuconfig' or 'make config'" ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/Torture�����������������������������������������������������������������0000664�0000000�0000000�00000003075�13775351206�0017411�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2000 by Massimiliano Ghilardi # # This program 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 2 of the License, or # (at your option) any later version. # # # # this partially duplicates MkDep... # BITMAP= TORTURE= FILES= BITMAP=$1 shift while [ "$1" ]; do case "$1" in -- ) break ;; *\ * ) TORTURE="$TORTURE \"$1\"" shift ;; *\"* ) TORTURE="$TORTURE '$1'" shift ;; * ) TORTURE="$TORTURE $1" shift ;; esac done if [ "$1" = "--" ]; then shift else exit 1 fi i="$1" name=`echo $i | sed -e 's/\./_/g'` DEFS= # search `#ifdef CONF_name' and `#ifdef DEBUG_name' in the file # and turn them into ` CONF_name ' and ` DEBUG_name ' MATCH=`grep -E '(^#.*def.*CONF_)|(^#.*def.*DEBUG_)' "$i" \ | sed -e 's:CONF_\([A-Za-z0-9_]*\): CONF_\1 :g' \ -e 's:DEBUG_\([A-Za-z0-9_]*\): DEBUG_\1 :g'` for j in $MATCH; do case "$j" in CONF_* ) eval "ALREADY=\"\$${name}_${j}_AWARE\"" if [ ! "$ALREADY" ]; then DEFS="$j $DEFS" eval "${name}_${j}_AWARE=y" fi ;; DEBUG_* ) eval "ALREADY=\"\$${name}_${j}_AWARE\"" if [ ! "$ALREADY" ]; then DEFS="$j $DEFS" eval "${name}_${j}_AWARE=y" fi ;; esac done FLAGS=`echo .${i}.flags | sed -e 's/\.c/\.o/'` echo "rm -f $FLAGS" rm -f $FLAGS eval "$BITMAP $DEFS" | while read THIS; do echo "$TORTURE $THIS" eval "$TORTURE $THIS" || exit 1 done �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/bin2c.c�����������������������������������������������������������������0000664�0000000�0000000�00000001401�13775351206�0017152�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <stdio.h> int main(int argc, char *argv[]) { int ch, total = 0; if (argc > 1) printf("const char *%s %s=\n", argv[1], argc > 2 ? argv[2] : ""); do { printf("\t\""); while ((ch = getchar()) != EOF) { total++; printf("\\x%02x", ch); if (total % 16 == 0) break; } printf("\"\n"); } while (ch != EOF); if (argc > 1) printf("\t;\n\nconst int %s_size = %d;\n", argv[1], total); return 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/bitmap.c����������������������������������������������������������������0000664�0000000�0000000�00000001534�13775351206�0017440�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <stdio.h> unsigned long bitmap; /* support at least up to 32 config entries */ int conf_n; char **conf_list; static int print_conf(void) { unsigned long b; int i; for (b = bitmap, i = conf_n - 1; i >= 0; i--) { if (b & 1) printf("-D%s ", conf_list[i]); b >>= 1; } printf("\n"); if (b) /* overflow : we have finished */ return 0; return 1; } int main(int argc, char *argv[]) { conf_n = --argc; conf_list = ++argv; while (++bitmap) { if (print_conf() == 0) return 0; } return 1; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/from-kernel-all.bash����������������������������������������������������0000775�0000000�0000000�00000005507�13775351206�0021655�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������LINUX_ROOT="/home/linux/linux-4.7.2" ./from-kernel.bash ISO_8859_1 < "$LINUX_ROOT"/fs/nls/nls_iso8859-1.c > iso_8859_1.h ./from-kernel.bash ISO_8859_2 < "$LINUX_ROOT"/fs/nls/nls_iso8859-2.c > iso_8859_2.h ./from-kernel.bash ISO_8859_3 < "$LINUX_ROOT"/fs/nls/nls_iso8859-3.c > iso_8859_3.h ./from-kernel.bash ISO_8859_4 < "$LINUX_ROOT"/fs/nls/nls_iso8859-4.c > iso_8859_4.h ./from-kernel.bash ISO_8859_5 < "$LINUX_ROOT"/fs/nls/nls_iso8859-5.c > iso_8859_5.h ./from-kernel.bash ISO_8859_6 < "$LINUX_ROOT"/fs/nls/nls_iso8859-6.c > iso_8859_6.h ./from-kernel.bash ISO_8859_7 < "$LINUX_ROOT"/fs/nls/nls_iso8859-7.c > iso_8859_7.h # ./from-kernel.bash ISO_8859_8 < "$LINUX_ROOT"/fs/nls/nls_iso8859-8.c > iso_8859_8.h ./from-kernel.bash ISO_8859_9 < "$LINUX_ROOT"/fs/nls/nls_iso8859-9.c > iso_8859_9.h ./from-kernel.bash ISO_8859_13 < "$LINUX_ROOT"/fs/nls/nls_iso8859-13.c > iso_8859_13.h ./from-kernel.bash ISO_8859_14 < "$LINUX_ROOT"/fs/nls/nls_iso8859-14.c > iso_8859_14.h ./from-kernel.bash ISO_8859_15 < "$LINUX_ROOT"/fs/nls/nls_iso8859-15.c > iso_8859_15.h ./from-kernel.bash CP737 < "$LINUX_ROOT"/fs/nls/nls_cp737.c > cp737.h ./from-kernel.bash CP775 < "$LINUX_ROOT"/fs/nls/nls_cp775.c > cp775.h ./from-kernel.bash CP850 < "$LINUX_ROOT"/fs/nls/nls_cp850.c > cp850.h ./from-kernel.bash CP852 < "$LINUX_ROOT"/fs/nls/nls_cp852.c > cp852.h ./from-kernel.bash CP855 < "$LINUX_ROOT"/fs/nls/nls_cp855.c > cp855.h ./from-kernel.bash CP857 < "$LINUX_ROOT"/fs/nls/nls_cp857.c > cp857.h ./from-kernel.bash CP860 < "$LINUX_ROOT"/fs/nls/nls_cp860.c > cp860.h ./from-kernel.bash CP861 < "$LINUX_ROOT"/fs/nls/nls_cp861.c > cp861.h ./from-kernel.bash CP862 < "$LINUX_ROOT"/fs/nls/nls_cp862.c > cp862.h ./from-kernel.bash CP863 < "$LINUX_ROOT"/fs/nls/nls_cp863.c > cp863.h ./from-kernel.bash CP864 < "$LINUX_ROOT"/fs/nls/nls_cp864.c > cp864.h ./from-kernel.bash CP865 < "$LINUX_ROOT"/fs/nls/nls_cp865.c > cp865.h ./from-kernel.bash CP866 < "$LINUX_ROOT"/fs/nls/nls_cp866.c > cp866.h ./from-kernel.bash CP869 < "$LINUX_ROOT"/fs/nls/nls_cp869.c > cp869.h ./from-kernel.bash CP874 < "$LINUX_ROOT"/fs/nls/nls_cp874.c > cp874.h ./from-kernel.bash CP932 < "$LINUX_ROOT"/fs/nls/nls_cp932.c > cp932.h ./from-kernel.bash CP936 < "$LINUX_ROOT"/fs/nls/nls_cp936.c > cp936.h ./from-kernel.bash CP949 < "$LINUX_ROOT"/fs/nls/nls_cp949.c > cp949.h ./from-kernel.bash CP950 < "$LINUX_ROOT"/fs/nls/nls_cp950.c > cp950.h ./from-kernel.bash CP1250 < "$LINUX_ROOT"/fs/nls/nls_cp1250.c > cp1250.h ./from-kernel.bash CP1251 < "$LINUX_ROOT"/fs/nls/nls_cp1251.c > cp1251.h ./from-kernel.bash CP1255 < "$LINUX_ROOT"/fs/nls/nls_cp1255.c > cp1255.h ./from-kernel.bash MAC_CELTIC < "$LINUX_ROOT"/fs/nls/nls_mac-celtic.c > mac_celtic.h mac-celtic mac-centeuro mac-croatian mac-cyrillic mac-gaelic mac-greek mac-iceland mac-inuit mac-roman mac-romanian mac-turkish �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/scripts/obsolete/helper-from-kernel.bash�������������������������������������������������0000775�0000000�0000000�00000000764�13775351206�0022364�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/bash i=0 while read line; do if [ "$line" = 'static wchar_t charset2uni[256] = {' -o \ "$line" = 'static const wchar_t charset2uni[256] = {' -o \ "$line" = 'static const unsigned short charset2uni[256] = {' ]; then while read a; do if [ "${a}" = '};' ]; then break 2; elif [ "${a:0:2}" != '/*' ]; then for ai in $a; do ai="${ai%,}" printf "0x%02x %s\n" "$i" "$ai" : $(( i=i+1 )) done fi done fi done ������������twin-0.9.0/server/����������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014020�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/Makefile.am�����������������������������������������������������������������������0000664�0000000�0000000�00000004352�13775351206�0016060�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������SUBDIRS = hw bin_PROGRAMS = twdisplay twin twin_server bin_SCRIPTS = twstart pkglib_LTLIBRARIES = if LIBRCPARSE_la pkglib_LTLIBRARIES += librcparse.la endif if LIBSOCKET_la pkglib_LTLIBRARIES += libsocket.la endif if LIBTERM_la pkglib_LTLIBRARIES += libterm.la endif if LIBWM_la pkglib_LTLIBRARIES += libwm.la endif AM_CPPFLAGS = -I$(top_srcdir)/include $(LTDLINCL) -DPKG_LIBDIR="\"$(pkglibdir)\"" twin_CPPFLAGS = -I$(top_srcdir)/include $(LTDLINCL) -DBINDIR="\"$(bindir)\"" twdisplay_SOURCES = alloc.cpp display.cpp dl_helper.cpp missing.cpp hw.cpp twin_SOURCES = wrapper.c twin_server_SOURCES = alloc.cpp builtin.cpp data.cpp dl.cpp dl_helper.cpp draw.cpp \ extreg.cpp hw.cpp hw_multi.cpp main.cpp methods.cpp missing.cpp \ obj/all.cpp obj/display_hw.cpp obj/gadget.cpp obj/group.cpp \ obj/id.cpp obj/menu.cpp obj/menuitem.cpp obj/module.cpp obj/msg.cpp obj/msgport.cpp \ obj/mutex.cpp obj/obj.cpp obj/row.cpp obj/screen.cpp obj/widget.cpp obj/window.cpp \ printk.cpp privilege.cpp remote.cpp resize.cpp scroller.cpp util.cpp librcparse_la_SOURCES = rcparse_tab.cpp rcparse_lex.cpp libterm_la_SOURCES = pty.cpp tterm.cpp tty.cpp libsocket_la_SOURCES = md5.cpp socket.cpp libwm_la_SOURCES = rcopt.cpp rcrun.cpp shm.cpp wm.cpp twdisplay_LDFLAGS = -export-dynamic $(LDFLAGS_BIN_EXPORT_DYNAMIC) twin_server_LDFLAGS = -export-dynamic $(LDFLAGS_BIN_EXPORT_DYNAMIC) librcparse_la_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) libsocket_la_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) libterm_la_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) # libwm exports some symbols needed by librcparse, do not constrain them with -export-symbols-regex libwm_la_LDFLAGS = -export-dynamic -release $(PACKAGE_VERSION) twdisplay_LDADD = $(LIBTW) $(LIBTUTF) $(LIBDL) $(LIBTSTL) twin_server_LDADD = $(LIBTUTF) $(LIBDL) $(LIBTSTL) libsocket_la_LIBADD = $(LIBSOCK) $(LIBZ) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/Makefile.in�����������������������������������������������������������������������0000664�0000000�0000000�00000142613�13775351206�0016074�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = twdisplay$(EXEEXT) twin$(EXEEXT) twin_server$(EXEEXT) @LIBRCPARSE_la_TRUE@am__append_1 = librcparse.la @LIBSOCKET_la_TRUE@am__append_2 = libsocket.la @LIBTERM_la_TRUE@am__append_3 = libterm.la @LIBWM_la_TRUE@am__append_4 = libwm.la subdir = server ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibdir)" \ "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } LTLIBRARIES = $(pkglib_LTLIBRARIES) librcparse_la_LIBADD = am_librcparse_la_OBJECTS = rcparse_tab.lo rcparse_lex.lo librcparse_la_OBJECTS = $(am_librcparse_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = librcparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(librcparse_la_LDFLAGS) $(LDFLAGS) \ -o $@ @LIBRCPARSE_la_TRUE@am_librcparse_la_rpath = -rpath $(pkglibdir) am__DEPENDENCIES_1 = libsocket_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libsocket_la_OBJECTS = md5.lo socket.lo libsocket_la_OBJECTS = $(am_libsocket_la_OBJECTS) libsocket_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libsocket_la_LDFLAGS) $(LDFLAGS) -o $@ @LIBSOCKET_la_TRUE@am_libsocket_la_rpath = -rpath $(pkglibdir) libterm_la_LIBADD = am_libterm_la_OBJECTS = pty.lo tterm.lo tty.lo libterm_la_OBJECTS = $(am_libterm_la_OBJECTS) libterm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libterm_la_LDFLAGS) $(LDFLAGS) -o $@ @LIBTERM_la_TRUE@am_libterm_la_rpath = -rpath $(pkglibdir) libwm_la_LIBADD = am_libwm_la_OBJECTS = rcopt.lo rcrun.lo shm.lo wm.lo libwm_la_OBJECTS = $(am_libwm_la_OBJECTS) libwm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libwm_la_LDFLAGS) $(LDFLAGS) -o $@ @LIBWM_la_TRUE@am_libwm_la_rpath = -rpath $(pkglibdir) am_twdisplay_OBJECTS = alloc.$(OBJEXT) display.$(OBJEXT) \ dl_helper.$(OBJEXT) missing.$(OBJEXT) hw.$(OBJEXT) twdisplay_OBJECTS = $(am_twdisplay_OBJECTS) twdisplay_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) twdisplay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(twdisplay_LDFLAGS) $(LDFLAGS) -o $@ am_twin_OBJECTS = twin-wrapper.$(OBJEXT) twin_OBJECTS = $(am_twin_OBJECTS) twin_LDADD = $(LDADD) am__dirstamp = $(am__leading_dot)dirstamp am_twin_server_OBJECTS = alloc.$(OBJEXT) builtin.$(OBJEXT) \ data.$(OBJEXT) dl.$(OBJEXT) dl_helper.$(OBJEXT) draw.$(OBJEXT) \ extreg.$(OBJEXT) hw.$(OBJEXT) hw_multi.$(OBJEXT) \ main.$(OBJEXT) methods.$(OBJEXT) missing.$(OBJEXT) \ obj/all.$(OBJEXT) obj/display_hw.$(OBJEXT) \ obj/gadget.$(OBJEXT) obj/group.$(OBJEXT) obj/id.$(OBJEXT) \ obj/menu.$(OBJEXT) obj/menuitem.$(OBJEXT) obj/module.$(OBJEXT) \ obj/msg.$(OBJEXT) obj/msgport.$(OBJEXT) obj/mutex.$(OBJEXT) \ obj/obj.$(OBJEXT) obj/row.$(OBJEXT) obj/screen.$(OBJEXT) \ obj/widget.$(OBJEXT) obj/window.$(OBJEXT) printk.$(OBJEXT) \ privilege.$(OBJEXT) remote.$(OBJEXT) resize.$(OBJEXT) \ scroller.$(OBJEXT) util.$(OBJEXT) twin_server_OBJECTS = $(am_twin_server_OBJECTS) twin_server_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) twin_server_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(twin_server_LDFLAGS) $(LDFLAGS) -o $@ SCRIPTS = $(bin_SCRIPTS) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/alloc.Po ./$(DEPDIR)/builtin.Po \ ./$(DEPDIR)/data.Po ./$(DEPDIR)/display.Po ./$(DEPDIR)/dl.Po \ ./$(DEPDIR)/dl_helper.Po ./$(DEPDIR)/draw.Po \ ./$(DEPDIR)/extreg.Po ./$(DEPDIR)/hw.Po \ ./$(DEPDIR)/hw_multi.Po ./$(DEPDIR)/main.Po \ ./$(DEPDIR)/md5.Plo ./$(DEPDIR)/methods.Po \ ./$(DEPDIR)/missing.Po ./$(DEPDIR)/printk.Po \ ./$(DEPDIR)/privilege.Po ./$(DEPDIR)/pty.Plo \ ./$(DEPDIR)/rcopt.Plo ./$(DEPDIR)/rcparse_lex.Plo \ ./$(DEPDIR)/rcparse_tab.Plo ./$(DEPDIR)/rcrun.Plo \ ./$(DEPDIR)/remote.Po ./$(DEPDIR)/resize.Po \ ./$(DEPDIR)/scroller.Po ./$(DEPDIR)/shm.Plo \ ./$(DEPDIR)/socket.Plo ./$(DEPDIR)/tterm.Plo \ ./$(DEPDIR)/tty.Plo ./$(DEPDIR)/twin-wrapper.Po \ ./$(DEPDIR)/util.Po ./$(DEPDIR)/wm.Plo obj/$(DEPDIR)/all.Po \ obj/$(DEPDIR)/display_hw.Po obj/$(DEPDIR)/gadget.Po \ obj/$(DEPDIR)/group.Po obj/$(DEPDIR)/id.Po \ obj/$(DEPDIR)/menu.Po obj/$(DEPDIR)/menuitem.Po \ obj/$(DEPDIR)/module.Po obj/$(DEPDIR)/msg.Po \ obj/$(DEPDIR)/msgport.Po obj/$(DEPDIR)/mutex.Po \ obj/$(DEPDIR)/obj.Po obj/$(DEPDIR)/row.Po \ obj/$(DEPDIR)/screen.Po obj/$(DEPDIR)/widget.Po \ obj/$(DEPDIR)/window.Po am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(librcparse_la_SOURCES) $(libsocket_la_SOURCES) \ $(libterm_la_SOURCES) $(libwm_la_SOURCES) $(twdisplay_SOURCES) \ $(twin_SOURCES) $(twin_server_SOURCES) DIST_SOURCES = $(librcparse_la_SOURCES) $(libsocket_la_SOURCES) \ $(libterm_la_SOURCES) $(libwm_la_SOURCES) $(twdisplay_SOURCES) \ $(twin_SOURCES) $(twin_server_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/admin/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = hw bin_SCRIPTS = twstart pkglib_LTLIBRARIES = $(am__append_1) $(am__append_2) $(am__append_3) \ $(am__append_4) AM_CPPFLAGS = -I$(top_srcdir)/include $(LTDLINCL) -DPKG_LIBDIR="\"$(pkglibdir)\"" twin_CPPFLAGS = -I$(top_srcdir)/include $(LTDLINCL) -DBINDIR="\"$(bindir)\"" twdisplay_SOURCES = alloc.cpp display.cpp dl_helper.cpp missing.cpp hw.cpp twin_SOURCES = wrapper.c twin_server_SOURCES = alloc.cpp builtin.cpp data.cpp dl.cpp dl_helper.cpp draw.cpp \ extreg.cpp hw.cpp hw_multi.cpp main.cpp methods.cpp missing.cpp \ obj/all.cpp obj/display_hw.cpp obj/gadget.cpp obj/group.cpp \ obj/id.cpp obj/menu.cpp obj/menuitem.cpp obj/module.cpp obj/msg.cpp obj/msgport.cpp \ obj/mutex.cpp obj/obj.cpp obj/row.cpp obj/screen.cpp obj/widget.cpp obj/window.cpp \ printk.cpp privilege.cpp remote.cpp resize.cpp scroller.cpp util.cpp librcparse_la_SOURCES = rcparse_tab.cpp rcparse_lex.cpp libterm_la_SOURCES = pty.cpp tterm.cpp tty.cpp libsocket_la_SOURCES = md5.cpp socket.cpp libwm_la_SOURCES = rcopt.cpp rcrun.cpp shm.cpp wm.cpp twdisplay_LDFLAGS = -export-dynamic $(LDFLAGS_BIN_EXPORT_DYNAMIC) twin_server_LDFLAGS = -export-dynamic $(LDFLAGS_BIN_EXPORT_DYNAMIC) librcparse_la_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) libsocket_la_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) libterm_la_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) # libwm exports some symbols needed by librcparse, do not constrain them with -export-symbols-regex libwm_la_LDFLAGS = -export-dynamic -release $(PACKAGE_VERSION) twdisplay_LDADD = $(LIBTW) $(LIBTUTF) $(LIBDL) $(LIBTSTL) twin_server_LDADD = $(LIBTUTF) $(LIBDL) $(LIBTSTL) libsocket_la_LIBADD = $(LIBSOCK) $(LIBZ) all: all-recursive .SUFFIXES: .SUFFIXES: .c .cpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign server/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign server/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ } uninstall-pkglibLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ done clean-pkglibLTLIBRARIES: -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) @list='$(pkglib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } librcparse.la: $(librcparse_la_OBJECTS) $(librcparse_la_DEPENDENCIES) $(EXTRA_librcparse_la_DEPENDENCIES) $(AM_V_CXXLD)$(librcparse_la_LINK) $(am_librcparse_la_rpath) $(librcparse_la_OBJECTS) $(librcparse_la_LIBADD) $(LIBS) libsocket.la: $(libsocket_la_OBJECTS) $(libsocket_la_DEPENDENCIES) $(EXTRA_libsocket_la_DEPENDENCIES) $(AM_V_CXXLD)$(libsocket_la_LINK) $(am_libsocket_la_rpath) $(libsocket_la_OBJECTS) $(libsocket_la_LIBADD) $(LIBS) libterm.la: $(libterm_la_OBJECTS) $(libterm_la_DEPENDENCIES) $(EXTRA_libterm_la_DEPENDENCIES) $(AM_V_CXXLD)$(libterm_la_LINK) $(am_libterm_la_rpath) $(libterm_la_OBJECTS) $(libterm_la_LIBADD) $(LIBS) libwm.la: $(libwm_la_OBJECTS) $(libwm_la_DEPENDENCIES) $(EXTRA_libwm_la_DEPENDENCIES) $(AM_V_CXXLD)$(libwm_la_LINK) $(am_libwm_la_rpath) $(libwm_la_OBJECTS) $(libwm_la_LIBADD) $(LIBS) twdisplay$(EXEEXT): $(twdisplay_OBJECTS) $(twdisplay_DEPENDENCIES) $(EXTRA_twdisplay_DEPENDENCIES) @rm -f twdisplay$(EXEEXT) $(AM_V_CXXLD)$(twdisplay_LINK) $(twdisplay_OBJECTS) $(twdisplay_LDADD) $(LIBS) twin$(EXEEXT): $(twin_OBJECTS) $(twin_DEPENDENCIES) $(EXTRA_twin_DEPENDENCIES) @rm -f twin$(EXEEXT) $(AM_V_CCLD)$(LINK) $(twin_OBJECTS) $(twin_LDADD) $(LIBS) obj/$(am__dirstamp): @$(MKDIR_P) obj @: > obj/$(am__dirstamp) obj/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) obj/$(DEPDIR) @: > obj/$(DEPDIR)/$(am__dirstamp) obj/all.$(OBJEXT): obj/$(am__dirstamp) obj/$(DEPDIR)/$(am__dirstamp) obj/display_hw.$(OBJEXT): obj/$(am__dirstamp) \ obj/$(DEPDIR)/$(am__dirstamp) obj/gadget.$(OBJEXT): obj/$(am__dirstamp) \ obj/$(DEPDIR)/$(am__dirstamp) obj/group.$(OBJEXT): obj/$(am__dirstamp) obj/$(DEPDIR)/$(am__dirstamp) obj/id.$(OBJEXT): obj/$(am__dirstamp) obj/$(DEPDIR)/$(am__dirstamp) obj/menu.$(OBJEXT): obj/$(am__dirstamp) obj/$(DEPDIR)/$(am__dirstamp) obj/menuitem.$(OBJEXT): obj/$(am__dirstamp) \ obj/$(DEPDIR)/$(am__dirstamp) obj/module.$(OBJEXT): obj/$(am__dirstamp) \ obj/$(DEPDIR)/$(am__dirstamp) obj/msg.$(OBJEXT): obj/$(am__dirstamp) obj/$(DEPDIR)/$(am__dirstamp) obj/msgport.$(OBJEXT): obj/$(am__dirstamp) \ obj/$(DEPDIR)/$(am__dirstamp) obj/mutex.$(OBJEXT): obj/$(am__dirstamp) obj/$(DEPDIR)/$(am__dirstamp) obj/obj.$(OBJEXT): obj/$(am__dirstamp) obj/$(DEPDIR)/$(am__dirstamp) obj/row.$(OBJEXT): obj/$(am__dirstamp) obj/$(DEPDIR)/$(am__dirstamp) obj/screen.$(OBJEXT): obj/$(am__dirstamp) \ obj/$(DEPDIR)/$(am__dirstamp) obj/widget.$(OBJEXT): obj/$(am__dirstamp) \ obj/$(DEPDIR)/$(am__dirstamp) obj/window.$(OBJEXT): obj/$(am__dirstamp) \ obj/$(DEPDIR)/$(am__dirstamp) twin_server$(EXEEXT): $(twin_server_OBJECTS) $(twin_server_DEPENDENCIES) $(EXTRA_twin_server_DEPENDENCIES) @rm -f twin_server$(EXEEXT) $(AM_V_CXXLD)$(twin_server_LINK) $(twin_server_OBJECTS) $(twin_server_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n' \ -e 'h;s|.*|.|' \ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) { files[d] = files[d] " " $$1; \ if (++n[d] == $(am__install_max)) { \ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \ else { print "f", d "/" $$4, $$1 } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 's,.*/,,;$(transform)'`; \ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f obj/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/builtin.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/display.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dl.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dl_helper.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/draw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extreg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hw_multi.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/methods.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/missing.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printk.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/privilege.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pty.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rcopt.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rcparse_lex.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rcparse_tab.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rcrun.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/resize.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scroller.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shm.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/socket.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tterm.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tty.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/twin-wrapper.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wm.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/all.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/display_hw.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/gadget.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/group.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/id.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/menu.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/menuitem.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/module.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/msg.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/msgport.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/mutex.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/obj.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/row.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/screen.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/widget.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@obj/$(DEPDIR)/window.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< twin-wrapper.o: wrapper.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(twin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT twin-wrapper.o -MD -MP -MF $(DEPDIR)/twin-wrapper.Tpo -c -o twin-wrapper.o `test -f 'wrapper.c' || echo '$(srcdir)/'`wrapper.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/twin-wrapper.Tpo $(DEPDIR)/twin-wrapper.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wrapper.c' object='twin-wrapper.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(twin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o twin-wrapper.o `test -f 'wrapper.c' || echo '$(srcdir)/'`wrapper.c twin-wrapper.obj: wrapper.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(twin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT twin-wrapper.obj -MD -MP -MF $(DEPDIR)/twin-wrapper.Tpo -c -o twin-wrapper.obj `if test -f 'wrapper.c'; then $(CYGPATH_W) 'wrapper.c'; else $(CYGPATH_W) '$(srcdir)/wrapper.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/twin-wrapper.Tpo $(DEPDIR)/twin-wrapper.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='wrapper.c' object='twin-wrapper.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(twin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o twin-wrapper.obj `if test -f 'wrapper.c'; then $(CYGPATH_W) 'wrapper.c'; else $(CYGPATH_W) '$(srcdir)/wrapper.c'; fi` .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(SCRIPTS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f obj/$(DEPDIR)/$(am__dirstamp) -rm -f obj/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool \ clean-pkglibLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -f ./$(DEPDIR)/alloc.Po -rm -f ./$(DEPDIR)/builtin.Po -rm -f ./$(DEPDIR)/data.Po -rm -f ./$(DEPDIR)/display.Po -rm -f ./$(DEPDIR)/dl.Po -rm -f ./$(DEPDIR)/dl_helper.Po -rm -f ./$(DEPDIR)/draw.Po -rm -f ./$(DEPDIR)/extreg.Po -rm -f ./$(DEPDIR)/hw.Po -rm -f ./$(DEPDIR)/hw_multi.Po -rm -f ./$(DEPDIR)/main.Po -rm -f ./$(DEPDIR)/md5.Plo -rm -f ./$(DEPDIR)/methods.Po -rm -f ./$(DEPDIR)/missing.Po -rm -f ./$(DEPDIR)/printk.Po -rm -f ./$(DEPDIR)/privilege.Po -rm -f ./$(DEPDIR)/pty.Plo -rm -f ./$(DEPDIR)/rcopt.Plo -rm -f ./$(DEPDIR)/rcparse_lex.Plo -rm -f ./$(DEPDIR)/rcparse_tab.Plo -rm -f ./$(DEPDIR)/rcrun.Plo -rm -f ./$(DEPDIR)/remote.Po -rm -f ./$(DEPDIR)/resize.Po -rm -f ./$(DEPDIR)/scroller.Po -rm -f ./$(DEPDIR)/shm.Plo -rm -f ./$(DEPDIR)/socket.Plo -rm -f ./$(DEPDIR)/tterm.Plo -rm -f ./$(DEPDIR)/tty.Plo -rm -f ./$(DEPDIR)/twin-wrapper.Po -rm -f ./$(DEPDIR)/util.Po -rm -f ./$(DEPDIR)/wm.Plo -rm -f obj/$(DEPDIR)/all.Po -rm -f obj/$(DEPDIR)/display_hw.Po -rm -f obj/$(DEPDIR)/gadget.Po -rm -f obj/$(DEPDIR)/group.Po -rm -f obj/$(DEPDIR)/id.Po -rm -f obj/$(DEPDIR)/menu.Po -rm -f obj/$(DEPDIR)/menuitem.Po -rm -f obj/$(DEPDIR)/module.Po -rm -f obj/$(DEPDIR)/msg.Po -rm -f obj/$(DEPDIR)/msgport.Po -rm -f obj/$(DEPDIR)/mutex.Po -rm -f obj/$(DEPDIR)/obj.Po -rm -f obj/$(DEPDIR)/row.Po -rm -f obj/$(DEPDIR)/screen.Po -rm -f obj/$(DEPDIR)/widget.Po -rm -f obj/$(DEPDIR)/window.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-binSCRIPTS \ install-pkglibLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/alloc.Po -rm -f ./$(DEPDIR)/builtin.Po -rm -f ./$(DEPDIR)/data.Po -rm -f ./$(DEPDIR)/display.Po -rm -f ./$(DEPDIR)/dl.Po -rm -f ./$(DEPDIR)/dl_helper.Po -rm -f ./$(DEPDIR)/draw.Po -rm -f ./$(DEPDIR)/extreg.Po -rm -f ./$(DEPDIR)/hw.Po -rm -f ./$(DEPDIR)/hw_multi.Po -rm -f ./$(DEPDIR)/main.Po -rm -f ./$(DEPDIR)/md5.Plo -rm -f ./$(DEPDIR)/methods.Po -rm -f ./$(DEPDIR)/missing.Po -rm -f ./$(DEPDIR)/printk.Po -rm -f ./$(DEPDIR)/privilege.Po -rm -f ./$(DEPDIR)/pty.Plo -rm -f ./$(DEPDIR)/rcopt.Plo -rm -f ./$(DEPDIR)/rcparse_lex.Plo -rm -f ./$(DEPDIR)/rcparse_tab.Plo -rm -f ./$(DEPDIR)/rcrun.Plo -rm -f ./$(DEPDIR)/remote.Po -rm -f ./$(DEPDIR)/resize.Po -rm -f ./$(DEPDIR)/scroller.Po -rm -f ./$(DEPDIR)/shm.Plo -rm -f ./$(DEPDIR)/socket.Plo -rm -f ./$(DEPDIR)/tterm.Plo -rm -f ./$(DEPDIR)/tty.Plo -rm -f ./$(DEPDIR)/twin-wrapper.Po -rm -f ./$(DEPDIR)/util.Po -rm -f ./$(DEPDIR)/wm.Plo -rm -f obj/$(DEPDIR)/all.Po -rm -f obj/$(DEPDIR)/display_hw.Po -rm -f obj/$(DEPDIR)/gadget.Po -rm -f obj/$(DEPDIR)/group.Po -rm -f obj/$(DEPDIR)/id.Po -rm -f obj/$(DEPDIR)/menu.Po -rm -f obj/$(DEPDIR)/menuitem.Po -rm -f obj/$(DEPDIR)/module.Po -rm -f obj/$(DEPDIR)/msg.Po -rm -f obj/$(DEPDIR)/msgport.Po -rm -f obj/$(DEPDIR)/mutex.Po -rm -f obj/$(DEPDIR)/obj.Po -rm -f obj/$(DEPDIR)/row.Po -rm -f obj/$(DEPDIR)/screen.Po -rm -f obj/$(DEPDIR)/widget.Po -rm -f obj/$(DEPDIR)/window.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ uninstall-pkglibLTLIBRARIES .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--depfiles check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool clean-pkglibLTLIBRARIES \ cscopelist-am ctags ctags-am distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-binSCRIPTS install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-pkglibLTLIBRARIES install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-binSCRIPTS \ uninstall-pkglibLTLIBRARIES .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/after�����������������������������������������������������������������������������0000664�0000000�0000000�00000001067�13775351206�0015050�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������speed 38400 baud; rows 37; columns 100; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt -echoctl echoke �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/algo.h����������������������������������������������������������������������������0000664�0000000�0000000�00000001324�13775351206�0015113�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_ALGO_H #define TWIN_ALGO_H #include <Tw/datatypes.h> inline ldat Abs(ldat x) { return x >= 0 ? x : -x; } inline dat Sign(ldat x) { return x > 0 ? 1 : x < 0 ? -1 : 0; } inline ldat Min2(ldat x, ldat y) { return x < y ? x : y; } inline ldat Max2(ldat x, ldat y) { return x > y ? x : y; } inline ldat Max3(ldat x, ldat y, ldat z) { return Max2(Max2(x, y), z); } #endif /* TWIN_ALGO_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/alloc.cpp�������������������������������������������������������������������������0000664�0000000�0000000�00000004740�13775351206�0015623�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * alloc.c -- wrappers around malloc() / realloc() / free() * * Copyright (C) 1999-2000,2016 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "util.h" #include <Tutf/Tutf.h> // Tutf_CP437_to_UTF_32[] #ifdef TW_HAVE_SIGNAL_H #include <signal.h> #endif void *CloneMem(const void *From, uldat len) { void *temp; if (From && len && (temp = AllocMem(len))) return CopyMem(From, temp, len); return NULL; } char *CloneStr(const char *s) { char *q; uldat len; if (s) { len = 1 + strlen(s); if ((q = (char *)AllocMem(len))) CopyMem(s, q, len); return q; } return NULL; } char *CloneStrL(const char *s, uldat len) { char *q; if (s) { if ((q = (char *)AllocMem(len + 1))) { if (len) CopyMem(s, q, len); q[len] = '\0'; } return q; } return NULL; } char **CloneStrList(char **s) { uldat n = 1; char **t = s, **v; if (t) { while (*t) { t++; n++; } t = (char **)AllocMem(n * sizeof(char *)); } if ((v = t)) { for (; *s && n; v++, s++, n--) { if (!(*v = CloneStr(*s))) break; } if (*s && n) { /* failed... clean up */ for (; t < v; t++) FreeMem(*t); FreeMem(t); t = NULL; } else *v = NULL; } return t; } trune *CloneStr2TRune(const char *s, uldat len) { trune *temp, *save; if (s) { if ((temp = save = (trune *)AllocMem((len + 1) * sizeof(trune)))) { while (len--) { *temp++ = Tutf_CP437_to_UTF_32[(byte)*s++]; } *temp = '\0'; } return save; } return NULL; } #if defined(TW_HAVE_ALARM) && defined(TW_HAVE_SIGACTION) volatile int AlarmReceived = 0; static TW_RETSIGTYPE AlarmHandler(int sig) { AlarmReceived = 1; TW_RETFROMSIGNAL(0); } void SetAlarm(unsigned seconds) { struct sigaction act; if (seconds != 0) { act.sa_handler = AlarmHandler; sigemptyset(&act.sa_mask); act.sa_flags = SA_RESETHAND; if (sigaction(SIGALRM, &act, NULL) == 0) { AlarmReceived = 0; alarm(seconds); } } else { alarm(0); act.sa_handler = SIG_DFL; sigemptyset(&act.sa_mask); act.sa_flags = 0; sigaction(SIGALRM, &act, NULL); AlarmReceived = 0; } } #endif ��������������������������������twin-0.9.0/server/alloc.h���������������������������������������������������������������������������0000664�0000000�0000000�00000001621�13775351206�0015263�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * alloc.c -- wrappers around malloc() / realloc() / free() * * Copyright (C) 1999-2000,2016 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_ALLOC_H #define TWIN_ALLOC_H #include "stl/alloc.h" #include "stl/err.h" #include <Tw/datatypes.h> #include <string.h> // memcpy(), memmove() /* inline/define stuff: */ #define CopyMem(from, to, len) memcpy(to, from, len) #define MoveMem(from, to, len) memmove(to, from, len) void *CloneMem(const void *From, uldat len); char *CloneStr(const char *s); char *CloneStrL(const char *s, uldat len); char **CloneStrList(char **s); trune *CloneStr2TRune(const char *s, uldat len); #endif /* TWIN_ALLOC_H */ ���������������������������������������������������������������������������������������������������������������twin-0.9.0/server/before����������������������������������������������������������������������������0000664�0000000�0000000�00000001066�13775351206�0015210�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������speed 38400 baud; rows 37; columns 100; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/builtin.cpp�����������������������������������������������������������������������0000664�0000000�0000000�00000103255�13775351206�0016200�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * builtin.c -- create default menu, Clock and About windows. * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <signal.h> #include "twin.h" #include "alloc.h" #include "data.h" #include "methods.h" #include "main.h" #include "extreg.h" #include "dl.h" #include "draw.h" #include "common.h" #include "hw.h" #include "hw_multi.h" #include "obj/id.h" #include "resize.h" #include "printk.h" #include "util.h" #include "version.h" #include <Tw/Twkeys.h> #include <Tutf/Tutf.h> #include <Tutf/Tutf_defs.h> #define _CHECK T_UTF_32_CHECK_MARK #define _FULL T_UTF_32_FULL_BLOCK #define _LOWER T_UTF_32_LOWER_HALF_BLOCK #define _UPPER T_UTF_32_UPPER_HALF_BLOCK #define _MEDIUM_SHADE T_UTF_32_MEDIUM_SHADE #define COD_QUIT (udat)1 /* as in term.c */ #define COD_SPAWN (udat)3 /* as COD_SPAWN in term.c */ #define COD_EXECUTE (udat)5 #define COD_SUSPEND (udat)10 #define COD_DETACH (udat)11 #define COD_RELOAD_RC (udat)12 #define COD_CLOCK_WIN (udat)20 #define COD_OPTION_WIN (udat)21 #define COD_BUTTONS_WIN (udat)22 #define COD_DISPLAY_WIN (udat)23 #define COD_MESSAGES_WIN (udat)24 #define COD_ABOUT_WIN (udat)25 #define COD_TERM_ON (udat)30 #define COD_TERM_OFF (udat)31 #define COD_SOCKET_ON (udat)32 #define COD_SOCKET_OFF (udat)33 #define COD_O_SHADOWS (udat)40 #define COD_O_Xp_SHADE (udat)41 #define COD_O_Xn_SHADE (udat)42 #define COD_O_Yp_SHADE (udat)43 #define COD_O_Yn_SHADE (udat)44 #define COD_O_BLINK (udat)45 #define COD_O_CURSOR_ALWAYS (udat)46 #define COD_O_MENU_HIDE (udat)47 #define COD_O_MENU_INFO (udat)48 #define COD_O_MENU_RELAX (udat)49 #define COD_O_SCREEN_SCROLL (udat)50 #define COD_O_TERMINALS_UTF8 (udat)51 #define COD_D_REMOVE (udat)60 #define COD_D_THIS (udat)61 #define COD_E_TTY (udat)70 msgport Builtin_MsgPort; static menu Builtin_Menu; static menuitem Builtin_File; static menuitem Builtin_Modules; static window AboutWin, ClockWin, OptionWin, ButtonWin, DisplayWin, DisplaySubWin, ExecuteWin; window WinList, MessagesWin; static gadget ButtonOK_About, ButtonRemove, ButtonThis; static void Clock_Update(void) { time_t Time = (time_t)All->Now.Seconds; struct tm *Date; char Buffer[30]; ClockWin->CurX = ClockWin->CurY = (uldat)0; Date = localtime(&Time); sprintf((char *)Buffer, "%02hu/%02hu/%04hu\n %02hu:%02hu:%02hu", (udat)Date->tm_mday, (udat)Date->tm_mon + 1, (udat)Date->tm_year + 1900, (udat)Date->tm_hour, (udat)Date->tm_min, (udat)Date->tm_sec); ClockWin->RowWriteCharset(strlen(Buffer), Buffer); Builtin_MsgPort->PauseDuration.Fraction = 1 FullSECs - All->Now.Fraction; Builtin_MsgPort->PauseDuration.Seconds = 0; } static void TweakMenuRows(menuitem Item, udat code, byte flag) { window Win; row Row; if ((Win = Item->Window) && (Row = Win->FindRowByCode(code, (ldat *)0))) Row->Flags = flag; } static void UpdateMenuRows(widget dummy) { if (DlIsLoaded(TermSo)) { TweakMenuRows(Builtin_Modules, COD_TERM_ON, ROW_INACTIVE); TweakMenuRows(Builtin_Modules, COD_TERM_OFF, ROW_ACTIVE); } else { TweakMenuRows(Builtin_Modules, COD_TERM_ON, ROW_ACTIVE); TweakMenuRows(Builtin_Modules, COD_TERM_OFF, ROW_INACTIVE); } if (DlIsLoaded(SocketSo)) { TweakMenuRows(Builtin_Modules, COD_SOCKET_ON, ROW_INACTIVE); TweakMenuRows(Builtin_Modules, COD_SOCKET_OFF, ROW_ACTIVE); } else { TweakMenuRows(Builtin_Modules, COD_SOCKET_ON, ROW_ACTIVE); TweakMenuRows(Builtin_Modules, COD_SOCKET_OFF, ROW_INACTIVE); } } static void SelectWinList(void) { screen Screen = All->FirstScreen; uldat n = WinList->CurY; widget W; for (W = Screen->FirstW; W; W = W->Next) { if (W == (widget)WinList || !IS_WINDOW(W) || (((window)W)->Flags & (WINDOWFL_NOTVISIBLE | WINDOWFL_MENU))) continue; if (!n) break; n--; } if (!n && W) { RaiseWidget(W, ttrue); CenterWindow((window)W); } } static void ExecuteGadgetH(event_gadget *EventG) { gadget G; if (EventG->Code == COD_E_TTY && (G = ExecuteWin->FindGadgetByCode(COD_E_TTY))) { if (G->USE.T.Text[0][1] == ' ') G->USE.T.Text[0][1] = _CHECK; else G->USE.T.Text[0][1] = ' '; DrawAreaWidget((widget)G); } } static void ExecuteWinRun(void) { char **argv, *arg0; row Row; gadget G; ExecuteWin->UnMap(); if (flag_secure) { printk(flag_secure_msg); return; } if ((Row = ExecuteWin->FindRow(ExecuteWin->CurY)) && !Row->LenGap) { argv = TokenizeTRuneVec(Row->Len, Row->Text); arg0 = argv ? argv[0] : NULL; if ((G = ExecuteWin->FindGadgetByCode(COD_E_TTY)) && G->USE.T.Text[0][1] != ' ') { /* run in a tty */ Ext(Term, Open)(arg0, (const char *const *)argv); } else if (argv) switch (fork()) { /* do not run in a tty */ case -1: /* error */ break; case 0: /* child */ execvp(arg0, argv); exit(1); break; default: /* parent */ break; } if (argv) FreeStringVec(argv); } } void UpdateOptionWin(void) { gadget G; udat list[] = {COD_O_Xp_SHADE, COD_O_Xn_SHADE, COD_O_Yp_SHADE, COD_O_Yn_SHADE, 0}; byte i, Flags = All->SetUp->Flags; char ch; for (i = 0; list[i]; i++) { if ((G = OptionWin->FindGadgetByCode(list[i]))) { if (Flags & setup_shadows) G->Flags &= ~GADGETFL_DISABLED; else G->Flags |= GADGETFL_DISABLED; } } if ((G = OptionWin->FindGadgetByCode(COD_O_SHADOWS))) G->USE.T.Text[0][1] = Flags & setup_shadows ? _CHECK : ' '; if ((G = OptionWin->FindGadgetByCode(COD_O_BLINK))) G->USE.T.Text[0][1] = Flags & setup_blink ? _CHECK : ' '; if ((G = OptionWin->FindGadgetByCode(COD_O_CURSOR_ALWAYS))) G->USE.T.Text[0][1] = Flags & setup_cursor_always ? _CHECK : ' '; if ((G = OptionWin->FindGadgetByCode(COD_O_MENU_HIDE))) G->USE.T.Text[0][1] = Flags & setup_menu_hide ? _CHECK : ' '; if ((G = OptionWin->FindGadgetByCode(COD_O_MENU_INFO))) G->USE.T.Text[0][1] = Flags & setup_menu_info ? _CHECK : ' '; if ((G = OptionWin->FindGadgetByCode(COD_O_MENU_RELAX))) G->USE.T.Text[0][1] = Flags & setup_menu_relax ? _CHECK : ' '; if ((G = OptionWin->FindGadgetByCode(COD_O_SCREEN_SCROLL))) G->USE.T.Text[0][1] = Flags & setup_screen_scroll ? _CHECK : ' '; if ((G = OptionWin->FindGadgetByCode(COD_O_TERMINALS_UTF8))) G->USE.T.Text[0][1] = Flags & setup_terminals_utf8 ? _CHECK : ' '; OptionWin->CurX = 25; OptionWin->CurY = 1; ch = (Flags & setup_shadows ? All->SetUp->DeltaXShade : 0) + '0'; OptionWin->RowWriteCharset(1, &ch); OptionWin->CurX = 25; OptionWin->CurY = 2; ch = (Flags & setup_shadows ? All->SetUp->DeltaYShade : 0) + '0'; OptionWin->RowWriteCharset(1, &ch); } static void OptionH(msg Msg) { byte Flags = All->SetUp->Flags, XShade = All->SetUp->DeltaXShade, YShade = All->SetUp->DeltaYShade; byte redraw = ttrue; switch (Msg->Event.EventGadget.Code) { case COD_O_SHADOWS: Flags ^= setup_shadows; break; case COD_O_Xp_SHADE: if (XShade < max_xshade) XShade++; break; case COD_O_Xn_SHADE: if (XShade > 1) XShade--; break; case COD_O_Yp_SHADE: if (YShade < max_yshade) YShade++; break; case COD_O_Yn_SHADE: if (YShade > 1) YShade--; break; case COD_O_BLINK: Flags ^= setup_blink; break; case COD_O_CURSOR_ALWAYS: Flags ^= setup_cursor_always; redraw = tfalse; break; case COD_O_MENU_HIDE: Flags ^= setup_menu_hide; HideMenu(!!(Flags & setup_menu_hide)); redraw = tfalse; break; case COD_O_MENU_INFO: Flags ^= setup_menu_info; break; case COD_O_MENU_RELAX: Flags ^= setup_menu_relax; break; case COD_O_SCREEN_SCROLL: Flags ^= setup_screen_scroll; redraw = tfalse; break; case COD_O_TERMINALS_UTF8: Flags ^= setup_terminals_utf8; redraw = tfalse; break; default: redraw = tfalse; break; } if (Flags != All->SetUp->Flags || XShade != All->SetUp->DeltaXShade || YShade != All->SetUp->DeltaYShade) { All->SetUp->Flags = Flags; All->SetUp->DeltaXShade = XShade; All->SetUp->DeltaYShade = YShade; UpdateOptionWin(); if (redraw == ttrue) QueuedDrawArea2FullScreen = ttrue; else { DrawFullWindow2(OptionWin); UpdateCursor(); } } } void FillButtonWin(void) { dat i, j; char b[] = " "; const char *s; DeleteList(ButtonWin->FirstW); for (i = j = 0; j < BUTTON_MAX; j++) { if (All->ButtonVec[j].exists) i++; } ResizeRelWindow(ButtonWin, 0, (dat)(3 + i * 2) - (dat)ButtonWin->YWidth); /* clear the window: */ ButtonWin->TtyWriteCharset(4, "\033[2J"); for (j = BUTTON_MAX - 1; j >= 0; j--) { if (!All->ButtonVec[j].exists) continue; i--; ButtonWin->GotoXY(2, 1 + i * 2); if (j) b[2] = j + '0', s = b; else s = "Close "; ButtonWin->TtyWriteCharset(7, "Button "); ButtonWin->TtyWriteCharset(6, s); { trune *f = All->ButtonVec[j].shape; tcell h[2] = { TCELL(ButtonWin->ColGadgets, f[0]), TCELL(ButtonWin->ColGadgets, f[1]), }; ButtonWin->TtyWriteTCell(15, 1 + i * 2, 2, h); } New(gadget)(Builtin_MsgPort, (widget)ButtonWin, 3, 1, "[+]", 0, GADGETFL_TEXT_DEFCOL, 3 | (j << 2), TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 22, 1 + i * 2); New(gadget)(Builtin_MsgPort, (widget)ButtonWin, 3, 1, "[-]", 0, GADGETFL_TEXT_DEFCOL, 2 | (j << 2), TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 19, 1 + i * 2); } } void UpdateButtonWin(void) { dat i, j; char s[5]; sbyte pos; for (i = j = 0; j < BUTTON_MAX; j++) { if (All->ButtonVec[j].exists) i++; } for (j = BUTTON_MAX - 1; j >= 0; j--) { if (!All->ButtonVec[j].exists) continue; i--; ButtonWin->GotoXY(26, 1 + i * 2); pos = All->ButtonVec[j].pos; if (pos >= 0) { ButtonWin->TtyWriteCharset(5, "Left "); } else if (pos == -1) ButtonWin->TtyWriteCharset(9, "Disabled "); else { ButtonWin->TtyWriteCharset(5, "Right"); pos = -pos - 2; } if (pos >= 0) { sprintf(s, " %3d", pos); ButtonWin->TtyWriteCharset(strlen(s), s); } } } static void BordersH(msg Msg) { udat Code = Msg->Event.EventGadget.Code; sbyte op = -1; if (!(Code & 2)) return; if (Code & 1) op = +1; All->ButtonVec[Code >> 2].pos += op; QueuedDrawArea2FullScreen = ttrue; UpdateButtonWin(); } static void UpdateDisplayWin(widget displayWin) { display_hw hw; uldat x = 12, y = 0; if (displayWin == (widget)DisplayWin) { DeleteList(DisplayWin->USE.R.FirstRow); for (hw = All->FirstDisplayHW; hw; hw = hw->Next) { DisplayWin->GotoXY(x, y++); if (!hw->NameLen) DisplayWin->RowWriteCharset(9, "(no name)"); else DisplayWin->RowWriteCharset(hw->NameLen, hw->Name); } if (DisplayWin->Parent) DrawFullWindow2(DisplayWin); } } static void SelectRowWindow(window CurrWin, ldat newCurY) { ldat oldCurY = CurrWin->CurY; CurrWin->CurY = newCurY; if (oldCurY != newCurY) { DrawLogicWidget((widget)CurrWin, 0, oldCurY, CurrWin->XWidth + CurrWin->XLogic, oldCurY); DrawLogicWidget((widget)CurrWin, 0, newCurY, CurrWin->XWidth + CurrWin->XLogic, newCurY); } } static void DisplayGadgetH(msg Msg) { display_hw hw; ldat i; switch (Msg->Event.EventGadget.Code) { case COD_D_REMOVE: if ((i = DisplayWin->CurY) < DisplayWin->HLogic) { for (hw = All->FirstDisplayHW; hw && i; hw = hw->Next, i--) { } if (hw && !i) { hw->Delete(); } } break; case COD_D_THIS: if (All->MouseHW) { for (i = 0, hw = All->FirstDisplayHW; hw; hw = hw->Next, i++) { if (hw == All->MouseHW) break; } if (hw) SelectRowWindow(DisplayWin, i); } break; default: break; } } static void BuiltinH(msgport MsgPort) { msg Msg; event_any *Event; screen Screen; window NewWindow, tempWin; row Row; udat Code; Screen = All->FirstScreen; while ((Msg = Builtin_MsgPort->FirstMsg)) { Msg->Remove(); Event = &Msg->Event; switch (Msg->Type) { case msg_widget_gadget: tempWin = (window)Event->EventGadget.W; Code = Event->EventGadget.Code; /*0 == Code Chiusura */ if (!Code || Code == COD_CANCEL || Code == COD_OK) { tempWin->UnMap(); /* no window needs Delete() here */ if (tempWin == ClockWin) Builtin_MsgPort->WakeUp = tfalse; } else if (tempWin == OptionWin) OptionH(Msg); else if (tempWin == ButtonWin) BordersH(Msg); else if (tempWin == DisplaySubWin) DisplayGadgetH(Msg); else if (tempWin == ExecuteWin) ExecuteGadgetH(&Event->EventGadget); break; case msg_menu_row: if (Event->EventMenu.Menu == Builtin_Menu) { Code = Event->EventMenu.Code; switch (Code) { case COD_EXECUTE: case COD_CLOCK_WIN: case COD_OPTION_WIN: case COD_BUTTONS_WIN: case COD_DISPLAY_WIN: case COD_MESSAGES_WIN: case COD_ABOUT_WIN: switch (Code) { case COD_EXECUTE: NewWindow = ExecuteWin; break; case COD_CLOCK_WIN: Builtin_MsgPort->WakeUp = TIMER_ALWAYS; NewWindow = ClockWin; break; case COD_OPTION_WIN: UpdateOptionWin(); NewWindow = OptionWin; break; case COD_BUTTONS_WIN: UpdateButtonWin(); NewWindow = ButtonWin; break; case COD_DISPLAY_WIN: UpdateDisplayWin((widget)DisplayWin); NewWindow = DisplayWin; break; case COD_MESSAGES_WIN: NewWindow = MessagesWin; break; case COD_ABOUT_WIN: NewWindow = AboutWin; break; default: break; } if (NewWindow->Parent) NewWindow->UnMap(); NewWindow->Map((widget)Screen); break; case COD_QUIT: Quit(0); break; case COD_SUSPEND: SuspendHW(ttrue); flushk(); kill(getpid(), SIGSTOP); (void)RestartHW(ttrue); break; case COD_DETACH: QuitHW(); break; case COD_RELOAD_RC: SendControlMsg(Ext(WM, MsgPort), MSG_CONTROL_RESTART, 0, NULL); break; case COD_TERM_ON: if (!DlLoad(TermSo)) break; /* FALLTHROUGH */ case COD_SPAWN: Ext(Term, Open)(NULL, NULL); break; case COD_TERM_OFF: DlUnload(TermSo); break; case COD_SOCKET_OFF: DlUnload(SocketSo); if (All->FirstDisplayHW) break; /* hmm... better to fire it up again */ /* FALLTHROUGH */ case COD_SOCKET_ON: if (!DlLoad(SocketSo)) break; break; default: break; } } break; case msg_widget_key: tempWin = (window)Msg->Event.EventCommon.W; if (tempWin == WinList) { switch (Msg->Event.EventKeyboard.Code) { case TW_Escape: WinList->UnMap(); break; case TW_Return: SelectWinList(); break; default: FallBackKeyAction(WinList, &Msg->Event.EventKeyboard); break; } } else if (tempWin == ExecuteWin) { switch ((Code = Msg->Event.EventKeyboard.Code)) { case TW_Escape: ExecuteWin->UnMap(); break; case TW_BackSpace: if (ExecuteWin->CurX) { ExecuteWin->CurX--; UpdateCursor(); if ((Row = ExecuteWin->FindRow(ExecuteWin->CurY)) && Row->Len) { Row->Len--; DrawLogicWidget((widget)ExecuteWin, Row->Len, ExecuteWin->CurY, Row->Len + 1, ExecuteWin->CurY); } } break; default: if (Code == TW_Return || Code == TW_KP_Enter || (Msg->Event.EventKeyboard.SeqLen == 1 && ((Code = Msg->Event.EventKeyboard.AsciiSeq[0]) == 10 /* CTRL+J */ || Code == 13 /* CTRL+M */))) ExecuteWinRun(); else if (Msg->Event.EventKeyboard.SeqLen) ExecuteWin->RowWriteCharset(Msg->Event.EventKeyboard.SeqLen, Msg->Event.EventKeyboard.AsciiSeq); break; } } break; case msg_widget_mouse: tempWin = (window)Msg->Event.EventCommon.W; if (tempWin == WinList || tempWin == DisplayWin) { dat EventMouseX, EventMouseY; byte temp; EventMouseX = Msg->Event.EventMouse.X, EventMouseY = Msg->Event.EventMouse.Y; temp = EventMouseX >= 0 && EventMouseX <= tempWin->XWidth - 2 && EventMouseY >= 0 && EventMouseY <= tempWin->YWidth - 2 && (uldat)EventMouseY + tempWin->YLogic < (uldat)tempWin->HLogic; SelectRowWindow(tempWin, temp ? (uldat)EventMouseY + tempWin->YLogic : TW_MAXLDAT); if (tempWin == WinList && isRELEASE(Msg->Event.EventMouse.Code)) { if (temp) SelectWinList(); } } break; case msg_selection: /* user wants to paste. ask for selection contents */ if (Msg->Event.EventSelection.W == (widget)ExecuteWin) TwinSelectionRequest((obj)Builtin_MsgPort, ExecuteWin->Id, TwinSelectionGetOwner()); break; case msg_selection_notify: tempWin = (window)Id2Obj(window_magic_id, Msg->Event.EventSelectionNotify.ReqPrivate); if (tempWin && tempWin == ExecuteWin) { switch (Msg->Event.EventSelectionNotify.Magic) { case SEL_UTF8MAGIC: tempWin->RowWriteUtf8(Msg->Event.EventSelectionNotify.Len, Msg->Event.EventSelectionNotify.Data); break; default: break; } } break; case msg_user_control: switch (Event->EventControl.Code) { case MSG_CONTROL_OPEN: { char **cmd = TokenizeStringVec(Event->EventControl.Len, Event->EventControl.Data); if (cmd) { Ext(Term, Open)(cmd[0], (const char *const *)cmd); FreeStringVec(cmd); } else Ext(Term, Open)(NULL, NULL); break; } case MSG_CONTROL_QUIT: Quit(0); break; default: break; } break; default: break; } Msg->Delete(); } if (Builtin_MsgPort->WakeUp) Clock_Update(); } void FullUpdateWinList(widget listWin); void InstallRemoveWinListHook(widget listWin) { if (listWin == (widget)WinList) { if (WinList->Parent && IS_SCREEN(WinList->Parent)) WinList->InstallHook(FullUpdateWinList, &((screen)WinList->Parent)->FnHookW); else WinList->RemoveHook(FullUpdateWinList, WinList->WhereHook); } } void UpdateWinList(void) { screen Screen = All->FirstScreen; widget W; DeleteList(WinList->USE.R.FirstRow); WinList->CurX = WinList->CurY = 0; WinList->XLogic = WinList->YLogic = 0; WinList->XWidth = WinList->MinXWidth; WinList->YWidth = WinList->MinYWidth; for (W = Screen->FirstW; W; W = W->Next) { if (W == (widget)WinList || !IS_WINDOW(W) || (((window)W)->Flags & (WINDOWFL_NOTVISIBLE | WINDOWFL_MENU))) continue; (void)Row4Menu(WinList, (udat)0, ROW_ACTIVE, ((window)W)->NameLen, ((window)W)->Name); } } void FullUpdateWinList(widget listWin) { if (listWin == (widget)WinList && WinList->Parent) { ResizeRelWindow(WinList, WinList->MinXWidth - WinList->XWidth, WinList->MinYWidth - WinList->YWidth); UpdateWinList(); DrawAreaWindow2(WinList); } } #ifdef CONF_PRINTK static byte InitMessagesWin(void) { MessagesWin = New(window)( Builtin_MsgPort, 8, "Messages", NULL, Builtin_Menu, TCOL(twhite, tblack), LINECURSOR, WINDOW_DRAG | WINDOW_RESIZE | WINDOW_X_BAR | WINDOW_Y_BAR | WINDOW_CLOSE, WINDOWFL_CURSOR_ON, 60, 20, 200); if (MessagesWin) { MessagesWin->SetColors(0x1F1, TCOL(thigh | tgreen, twhite), 0, 0, 0, TCOL(thigh | twhite, twhite), TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack)); } return !!MessagesWin; } #endif static byte InitScreens(void) { screen OneScreen; if ((OneScreen = Do(CreateSimple, screen)(1, "1", TCELL(TCOL(thigh | tblack, tblue), _MEDIUM_SHADE)))) { InsertLast(Screen, OneScreen, All); return ttrue; } Error(NOMEMORY); printk("twin: InitScreens(): " SS "\n", Errstr); return tfalse; } byte InitBuiltin(void) { window W; const char *greeting = "\n" " TWIN \n" " Text WINdows manager \n\n" " Version " TWIN_VERSION_STR TWIN_VERSION_EXTRA_STR " (Unicode) by \n\n" " Massimiliano Ghilardi \n\n" " https://github.com/cosmos72/twin"; uldat grlen = strlen(greeting); if ((Builtin_MsgPort = New(msgport)(4, "twin", 0, 0, 0, BuiltinH)) && InitScreens() && /* New(Screen)() requires Builtin_MsgPort ! */ (All->BuiltinRow = New(row)(0, ROW_ACTIVE | ROW_DEFCOL)) && (Builtin_Menu = New(menu)(Builtin_MsgPort, (byte)0x70, (byte)0x20, (byte)0x78, (byte)0x08, (byte)0x74, (byte)0x24, (byte)0)) && Info4Menu(Builtin_Menu, ROW_ACTIVE, (uldat)42, " Hit PAUSE or Mouse Right Button for Menu ", (const tcolor *)"tttttttttttttttttttttttttttttttttttttttttt") && (W = Win4Menu(Builtin_Menu)) && Row4Menu(W, COD_CLOCK_WIN, ROW_ACTIVE, 9, " Clock ") && Row4Menu(W, COD_OPTION_WIN, ROW_ACTIVE, 9, " Options ") && Row4Menu(W, COD_BUTTONS_WIN, ROW_ACTIVE, 9, " Buttons ") && Row4Menu(W, COD_DISPLAY_WIN, ROW_ACTIVE, 9, " Display ") && #ifdef CONF_PRINTK Row4Menu(W, COD_MESSAGES_WIN, ROW_ACTIVE, 10, " Messages ") && #endif Row4Menu(W, COD_ABOUT_WIN, ROW_ACTIVE, 9, " About ") && Item4Menu(Builtin_Menu, W, ttrue, 3, " \xF0 ") && (W = Win4Menu(Builtin_Menu)) && Row4Menu(W, COD_SPAWN, ROW_ACTIVE, 10, " New Term ") && Row4Menu(W, COD_EXECUTE, ROW_ACTIVE, 10, " Execute ") && Row4Menu(W, COD_RELOAD_RC, ROW_ACTIVE, 11, " Reload RC ") && Row4Menu(W, (udat)0, ROW_IGNORE, 11, "\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4") && Row4Menu(W, COD_DETACH, ROW_ACTIVE, 10, " Detach ") && Row4Menu(W, COD_SUSPEND, ROW_ACTIVE, 10, " Suspend ") && Row4Menu(W, COD_QUIT, ROW_ACTIVE, 10, " Quit ") && (Builtin_File = Item4Menu(Builtin_Menu, W, ttrue, 6, " File ")) && (W = Win4Menu(Builtin_Menu)) && Row4Menu(W, (udat)0, ROW_INACTIVE, 11, " Undo ") && Row4Menu(W, (udat)0, ROW_INACTIVE, 11, " Redo ") && Row4Menu(W, (udat)0, ROW_IGNORE, 11, "\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4") && Row4Menu(W, (udat)0, ROW_INACTIVE, 11, " Cut ") && Row4Menu(W, (udat)0, ROW_INACTIVE, 11, " Copy ") && Row4Menu(W, (udat)0, ROW_INACTIVE, 11, " Paste ") && Row4Menu(W, (udat)0, ROW_INACTIVE, 11, " Clear ") && Row4Menu(W, (udat)0, ROW_IGNORE, 11, "\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4") && Row4Menu(W, (udat)0, ROW_INACTIVE, 11, " Clipboard ") && Item4Menu(Builtin_Menu, W, ttrue, 6, " Edit ") && (W = Win4Menu(Builtin_Menu)) && (W->InstallHook(UpdateMenuRows, &All->FnHookModule), ttrue) && Row4Menu(W, COD_TERM_ON, ROW_ACTIVE, 20, " Run Twin Term ") && Row4Menu(W, COD_TERM_OFF, ROW_INACTIVE, 20, " Stop Twin Term ") && Row4Menu( W, (udat)0, ROW_IGNORE, 20, "\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4") && Row4Menu(W, COD_SOCKET_ON, ROW_ACTIVE, 20, " Run Socket Server ") && Row4Menu(W, COD_SOCKET_OFF, ROW_INACTIVE, 20, " Stop Socket Server ") && (Builtin_Modules = Item4Menu(Builtin_Menu, W, ttrue, 9, " Modules ")) && Item4MenuCommon(Builtin_Menu) && (AboutWin = New(window)(Builtin_MsgPort, 5, "About", (const tcolor *)"\x7F\x7F\x7F\x7F\x7F", Builtin_Menu, TCOL(tblack, twhite), NOCURSOR, WINDOW_AUTO_KEYS | WINDOW_WANT_MOUSE | WINDOW_DRAG | WINDOW_CLOSE, WINDOWFL_USEROWS | WINDOWFL_ROWS_DEFCOL, 36, 13, 0)) && (ClockWin = New(window)(Builtin_MsgPort, 5, "Clock", NULL, Builtin_Menu, TCOL(tyellow, tblue), NOCURSOR, WINDOW_DRAG | WINDOW_CLOSE, WINDOWFL_USEROWS | WINDOWFL_ROWS_DEFCOL, 10, 2, 0)) && (OptionWin = New(window)(Builtin_MsgPort, 7, "Options", NULL, Builtin_Menu, TCOL(thigh | tblack, tblack), NOCURSOR, WINDOW_AUTO_KEYS | WINDOW_WANT_MOUSE | WINDOW_DRAG | WINDOW_CLOSE, WINDOWFL_USEROWS | WINDOWFL_ROWS_DEFCOL, 40, 18, 0)) && (ButtonWin = New(window)(Builtin_MsgPort, 7, "Buttons", NULL, Builtin_Menu, TCOL(thigh | twhite, twhite), NOCURSOR, WINDOW_AUTO_KEYS | WINDOW_WANT_MOUSE | WINDOW_DRAG | WINDOW_CLOSE, WINDOWFL_USECONTENTS, 37, 19, 0)) && (DisplayWin = New(window)(Builtin_MsgPort, 7, "Display", NULL, Builtin_Menu, TCOL(thigh | tblack, twhite), NOCURSOR, WINDOW_WANT_MOUSE | WINDOW_AUTO_KEYS | WINDOW_DRAG | WINDOW_RESIZE | WINDOW_CLOSE | WINDOW_X_BAR | WINDOW_Y_BAR, WINDOWFL_USEROWS | WINDOWFL_ROWS_SELCURRENT | WINDOWFL_ROWS_DEFCOL, 31, 10, 0)) && (DisplaySubWin = New(window)(Builtin_MsgPort, 0, NULL, NULL, Builtin_Menu, TCOL(thigh | tblack, twhite), NOCURSOR, WINDOW_AUTO_KEYS, WINDOWFL_USEROWS | WINDOWFL_ROWS_DEFCOL, 10, TW_MAXDAT, 0)) && (WinList = New(window)( Builtin_MsgPort, 11, "Window List", NULL, Builtin_Menu, TCOL(twhite, tblue), NOCURSOR, WINDOW_WANT_KEYS | WINDOW_WANT_MOUSE | WINDOW_DRAG | WINDOW_CLOSE /*|WINDOW_RESIZE*/ | WINDOW_X_BAR | WINDOW_Y_BAR, WINDOWFL_USEROWS | WINDOWFL_ROWS_SELCURRENT | WINDOWFL_ROWS_DEFCOL, 14, 2, 0)) && (ExecuteWin = New(window)(Builtin_MsgPort, 10, "Execute...", NULL, Builtin_Menu, TCOL(twhite, tblue), LINECURSOR, WINDOW_WANT_KEYS | WINDOW_CLOSE | WINDOW_DRAG | WINDOW_X_BAR, WINDOWFL_USEROWS | WINDOWFL_ROWS_DEFCOL | WINDOWFL_CURSOR_ON, 38, 2, 0)) && #ifdef CONF_PRINTK InitMessagesWin() && #endif Act(RowWriteCharset, AboutWin)(AboutWin, grlen, greeting) && (ButtonOK_About = Do(CreateEmptyButton, gadget)(Builtin_MsgPort, 8, 1, TCOL(tblack, twhite))) && (ButtonRemove = Do(CreateEmptyButton, gadget)(Builtin_MsgPort, 8, 1, TCOL(tblack, twhite))) && (ButtonThis = Do(CreateEmptyButton, gadget)(Builtin_MsgPort, 8, 1, TCOL(tblack, twhite))) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 27, 1, "[ ] Enable Screen Scrolling", 0, GADGETFL_TEXT_DEFCOL, COD_O_SCREEN_SCROLL, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 2, 16) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 23, 1, "[ ] Menu Relaxed Arrows", 0, GADGETFL_TEXT_DEFCOL, COD_O_MENU_RELAX, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 2, 14) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 25, 1, "[ ] Menu Information Line", 0, GADGETFL_TEXT_DEFCOL, COD_O_MENU_INFO, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 2, 12) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 15, 1, "[ ] Hidden Menu", 0, GADGETFL_TEXT_DEFCOL, COD_O_MENU_HIDE, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 2, 10) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 32, 1, "[ ] Enable Blink/High Background", 0, GADGETFL_TEXT_DEFCOL, COD_O_BLINK, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 2, 8) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 22, 1, "[ ] Always Show Cursor", 0, GADGETFL_TEXT_DEFCOL, COD_O_CURSOR_ALWAYS, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 2, 6) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 37, 1, "[ ] New terminals start in UTF-8 mode", 0, GADGETFL_TEXT_DEFCOL, COD_O_TERMINALS_UTF8, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 2, 4) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 3, 1, "[+]", 0, GADGETFL_TEXT_DEFCOL, COD_O_Yp_SHADE, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 21, 2) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 3, 1, "[-]", 0, GADGETFL_TEXT_DEFCOL, COD_O_Yn_SHADE, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 18, 2) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 3, 1, "[+]", 0, GADGETFL_TEXT_DEFCOL, COD_O_Xp_SHADE, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 21, 1) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 3, 1, "[-]", 0, GADGETFL_TEXT_DEFCOL, COD_O_Xn_SHADE, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 18, 1) && New(gadget)(Builtin_MsgPort, (widget)OptionWin, 11, 1, "[ ] Shadows", 0, GADGETFL_TEXT_DEFCOL, COD_O_SHADOWS, TCOL(tblack, twhite), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), 2, 1) && New(gadget)(Builtin_MsgPort, (widget)ExecuteWin, 19, 1, "[ ] Run in Terminal", 0, GADGETFL_TEXT_DEFCOL, COD_E_TTY, TCOL(thigh | tyellow, tblue), TCOL(thigh | twhite, tgreen), TCOL(thigh | tblack, tblue), TCOL(thigh | tblack, tblue), 10, 1) ) { Act(SetColors, AboutWin)(AboutWin, 0x1FF, (tcolor)0x7A, (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0x7F, (tcolor)0x70, (tcolor)0x20, (tcolor)0x78, (tcolor)0x08); Act(SetColors, ClockWin)(ClockWin, 0x1FF, (tcolor)0x3E, (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0x9F, (tcolor)0x1E, (tcolor)0x3E, (tcolor)0x18, (tcolor)0x08); Act(SetColors, OptionWin)(OptionWin, 0x1FF, (tcolor)0x7A, (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0x7F, (tcolor)0x78, (tcolor)0x20, (tcolor)0x78, (tcolor)0x08); Act(SetColors, ButtonWin)(ButtonWin, 0x1FF, (tcolor)0x7A, (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0x7F, (tcolor)0x7F, (tcolor)0x20, (tcolor)0x78, (tcolor)0x08); Act(SetColors, WinList)( WinList, 0x1FF, TCOL(thigh | tyellow, tcyan), TCOL(thigh | tgreen, thigh | tblue), TCOL(twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(twhite, tblue), TCOL(thigh | tblue, twhite), TCOL(thigh | tblack, tblue), TCOL(thigh | tblack, tblack)); Act(Configure, WinList)(WinList, 1 << 2 | 1 << 3, 0, 0, 15, 2, 0, 0); Act(SetColors, DisplayWin)(DisplayWin, 0x1FF, (tcolor)0x7A, (tcolor)0x7F, (tcolor)0x79, (tcolor)0xF9, (tcolor)0x7F, (tcolor)0x70, (tcolor)0x20, (tcolor)0x78, (tcolor)0x08); Act(SetColors, DisplaySubWin)(DisplaySubWin, 0x30, 0, 0, 0, 0, TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, twhite), 0, 0, 0); Act(Configure, DisplaySubWin)(DisplaySubWin, 1 << 0 | 1 << 1, -1, -1, 0, 0, 0, 0); Act(Map, DisplaySubWin)(DisplaySubWin, (widget)DisplayWin); Act(InstallHook, DisplayWin)(DisplayWin, UpdateDisplayWin, &All->FnHookDisplayHW); WinList->MapUnMapHook = InstallRemoveWinListHook; Act(FillButton, ButtonOK_About)(ButtonOK_About, (widget)AboutWin, COD_OK, 15, 11, 0, " OK ", (byte)0x2F, (byte)0x28); Act(FillButton, ButtonRemove)(ButtonRemove, (widget)DisplaySubWin, COD_D_REMOVE, 1, 2, 0, " Remove ", (byte)0x2F, (byte)0x28); Act(FillButton, ButtonThis)(ButtonThis, (widget)DisplaySubWin, COD_D_THIS, 1, 5, 0, " This ", (byte)0x2F, (byte)0x28); OptionWin->CurX = 25; OptionWin->CurY = 1; Act(RowWriteCharset, OptionWin)(OptionWin, 10, " X Shadow"); OptionWin->CurX = 25; OptionWin->CurY = 2; Act(RowWriteCharset, OptionWin)(OptionWin, 10, " Y Shadow"); All->BuiltinMenu = Builtin_Menu; return ttrue; } Error(NOMEMORY); printk("twin: InitBuiltin(): " SS "\n", Errstr); return tfalse; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/builtin.h�������������������������������������������������������������������������0000664�0000000�0000000�00000001104�13775351206�0015633�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_BUILTIN_H #define TWIN_BUILTIN_H #include "obj/fwd.h" #include <Tw/datatypes.h> byte InitBuiltin(void); void FillButtonWin(void); void UpdateOptionWin(void); extern window WinList, MessagesWin; extern msgport Builtin_MsgPort; #endif /* TWIN_BUILTIN_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/common.h��������������������������������������������������������������������������0000664�0000000�0000000�00000004177�13775351206�0015472�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_COMMON_H #define TWIN_COMMON_H #include "stl/view.h" /* * this file exports functions and variables common to both * display.c and the whole twin sources, in particular hw_multi.c */ char *CloneStr(const char *s); char *CloneStrL(const char *s, uldat len); byte AllHWCanDragAreaNow(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp); void DragAreaHW(dat Xstart, dat Ystart, dat Xend, dat Yend, dat DstXstart, dat DstYstart); void ResizeDisplayPrefer(display_hw); void PanicHW(void); void FlushHW(void); void BeepHW(void); void ConfigureHW(udat resource, byte todefault, udat value); void SetPaletteHW(udat N, udat R, udat G, udat B); void ResetPaletteHW(void); obj TwinSelectionGetOwner(void); void TwinSelectionSetOwner(obj Owner, tany Time, tany Frac); #define SEL_CURRENTTIME ((tany)0) void TwinSelectionNotify(obj Requestor, uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], Chars Data); void TwinSelectionRequest(obj Requestor, uldat ReqPrivate, obj Owner); void SelectionExport(void); void SelectionImport(void); byte SelectionStore(uldat magic, const char mime[MAX_MIMELEN], Chars data); byte SelectionAppend(Chars data); byte SelectionAppendRune(trune rune); byte SelectionAppendRunes(TRunes runes); byte KeyboardEventCommon(udat Code, udat ShiftFlags, udat Len, const char *Seq); byte MouseEventCommon(dat x, dat y, dat dx, dat dy, udat IdButtons); dat GetDisplayWidth(void); dat GetDisplayHeight(void); byte InitTransUser(void); /* * these comes either from display.c or from main.c/util.c */ void Quit(int status); void GainPrivileges(void); #ifndef SS #define SS "%." STR(TW_SMALLBUFF) "s" #endif int printk(const char *format, ...); int flushk(void); /* * this comes either from display.c or from remote.c */ void RemotePidIsDead(pid_t pid); #endif /* TWIN_HW_COMMON_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/data.cpp��������������������������������������������������������������������������0000664�0000000�0000000�00000005343�13775351206�0015442�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * data.c -- create fundamental structures: * `All', screens, table for mouse/keyboard actions * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "methods.h" #include "obj/id.h" #include "data.h" #include "util.h" #include <Tw/Twkeys.h> #include <Tutf/Tutf.h> /* setup configuration paths */ #ifndef PKG_LIBDIR #warning PKG_LIBDIR is not #defined, assuming "/usr/local/lib/twin" #define PKG_LIBDIR "/usr/local/lib/twin" #endif const char *const pkg_libdir = PKG_LIBDIR; /* First, some structures */ #define L 0x55 #define M 0xAA #define H 0xFF rgb Palette[tmaxcol + 1] = { /* the default colour table, for VGA+ colour systems */ {0, 0, 0}, {0, 0, M}, {0, M, 0}, {0, M, M}, {M, 0, 0}, {M, 0, M}, {M, M, 0}, {M, M, M}, {L, L, L}, {L, L, H}, {L, H, L}, {L, H, H}, {H, L, L}, {H, L, H}, {H, H, L}, {H, H, H}}; rgb defaultPalette[tmaxcol + 1] = { /* the default colour table, for VGA+ colour systems */ {0, 0, 0}, {0, 0, M}, {0, M, 0}, {0, M, M}, {M, 0, 0}, {M, 0, M}, {M, M, 0}, {M, M, M}, {L, L, L}, {L, L, H}, {L, H, L}, {L, H, H}, {H, L, L}, {H, L, H}, {H, H, L}, {H, H, H}}; #undef H #undef M #undef L keylist TW_KeyList[] = { #define IS(key, len, seq) {#key, TW_##key, len, seq}, #include "hw_keys.h" #undef IS {NULL, TW_Null, 0, NULL}}; trune GadgetResize[2] = {0xCD, 0xBC}; trune ScrollBarX[3] = {0xB1, 0x11, 0x10}; trune ScrollBarY[3] = {0xB1, 0x1E, 0x1F}; trune TabX = 0xDB; trune TabY = 0xDB; trune StdBorder[2][9] = {{0xC9, 0xCD, 0xBB, 0xBA, 0x20, 0xBA, 0xC8, 0xCD, 0xBC}, {0xDA, 0xC4, 0xBF, 0xB3, 0x20, 0xB3, 0xC0, 0xC4, 0xD9}}; trune Screen_Back[2] = {0x12, 0x12}; tcolor DEFAULT_ColGadgets = TCOL(thigh | tyellow, tcyan), DEFAULT_ColArrows = TCOL(thigh | tgreen, thigh | tblue), DEFAULT_ColBars = TCOL(twhite, thigh | tblue), DEFAULT_ColTabs = TCOL(thigh | twhite, thigh | tblue), DEFAULT_ColBorder = TCOL(thigh | twhite, thigh | tblue), DEFAULT_ColDisabled = TCOL(thigh | tblack, tblack), DEFAULT_ColSelectDisabled = TCOL(tblack, thigh | tblack); byte InitData(void) { trune *vec[] = {GadgetResize, ScrollBarX, ScrollBarY, &TabX, &TabY, StdBorder[0], StdBorder[1], Screen_Back}; byte sizes[] = {2, 3, 3, 1, 1, 9, 9, 2}; uldat i, j; for (i = 0; i < sizeof(vec) / sizeof(vec[0]); i++) { for (j = 0; j < sizes[i]; j++) vec[i][j] = Tutf_CP437_to_UTF_32[(byte)vec[i][j]]; } return AssignId_all(All); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/data.h����������������������������������������������������������������������������0000664�0000000�0000000�00000002157�13775351206�0015107�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_DATA_H #define TWIN_DATA_H #include <Tw/datatypes.h> // byte, udat, tcolor, trune #include <Tw/Tw_defs.h> // tmaxcol typedef struct s_rgb { byte Red, Green, Blue; } rgb; extern const char *const pkg_libdir; extern const char *const pkg_libdir_modules_; extern rgb Palette[tmaxcol + 1], defaultPalette[tmaxcol + 1]; typedef struct s_keylist { const char *name; udat key; byte len; const char *seq; } keylist; extern keylist TW_KeyList[]; extern gadget GadgetFlag, GadgetSwitch; extern trune GadgetResize[2], ScrollBarX[3], ScrollBarY[3], TabX, TabY, StdBorder[2][9], Screen_Back[2]; extern tcolor DEFAULT_ColGadgets, DEFAULT_ColArrows, DEFAULT_ColBars, DEFAULT_ColTabs, DEFAULT_ColBorder, DEFAULT_ColDisabled, DEFAULT_ColSelectDisabled; byte InitData(void); #endif /* TWIN_DATA_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/display.cpp�����������������������������������������������������������������������0000664�0000000�0000000�00000110236�13775351206�0016174�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * display.c -- connect to a running twin and register as a display * * Copyright (C) 2000-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * this is basically a chopped down version of twin server, * with the minimum required features to startup a display driver, * plus libtw code to talk to twin, register on it as a special display, * and forward messages and commands between the display driver and twin. */ #include "twin.h" #include "algo.h" #include "alloc.h" #include "data.h" #include "hw.h" #include "hw_private.h" #include "common.h" #include "dl_helper.h" #include "fdlist.h" #include "obj/id.h" #include "version.h" #include <Tw/Tw.h> #include <Tw/Twerrno.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include <stdio.h> #include <stdarg.h> #include <string.h> #include <signal.h> #ifndef PKG_LIBDIR #warning PKG_LIBDIR is not #defined, assuming "/usr/local/lib/twin" #define PKG_LIBDIR "/usr/local/lib/twin" #endif static const char *const modules_prefix = PKG_LIBDIR "/" DL_PREFIX; static const char *MYname; static dat TryDisplayWidth, TryDisplayHeight; static byte ValidVideo; const char *TWDisplay, *origTWDisplay, *origTERM; char nullMIME[TW_MAX_MIMELEN]; const char *HOME; #define L 0x55 #define M 0xAA #define H 0xFF rgb Palette[tmaxcol + 1] = { /* the default colour table, for VGA+ colour systems */ {0, 0, 0}, {0, 0, M}, {0, M, 0}, {0, M, M}, {M, 0, 0}, {M, 0, M}, {M, M, 0}, {M, M, M}, {L, L, L}, {L, L, H}, {L, H, L}, {L, H, H}, {H, L, L}, {H, L, H}, {H, H, L}, {H, H, H}}; rgb defaultPalette[tmaxcol + 1] = { /* the default colour table, for VGA+ colour systems */ {0, 0, 0}, {0, 0, M}, {0, M, 0}, {0, M, M}, {M, 0, 0}, {M, 0, M}, {M, M, 0}, {M, M, M}, {L, L, L}, {L, L, H}, {L, H, L}, {L, H, H}, {H, L, L}, {H, L, H}, {H, H, L}, {H, H, H}}; #undef H #undef M #undef L static fdlist FdList[5]; static uldat FdSize = 5, FdTop, FdBottom, FdWQueued; #define LS FdList[Slot] #define ls FdList[slot] static fd_set save_rfds, save_wfds; static int max_fds; static tmsgport TMsgPort = NOID, THelper = NOID; static byte MouseMotionN; /* non-zero to report also mouse motion events */ int (*OverrideSelect)(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout) = select; /* * first, utility functions */ void Quit(int status); void NoOp(void) { } byte AlwaysFalse(void) { return tfalse; } byte AlwaysTrue(void) { return ttrue; } void *AlwaysNull(void) { return NULL; } void GainPrivileges(void) { } void RemotePidIsDead(pid_t pid) { } int printk(const char *format, ...) { int i = 0; #ifdef TW_HAVE_VPRINTF va_list ap; va_start(ap, format); i = vfprintf(stderr, format, ap); va_end(ap); #endif return i; } int flushk(void) { return fflush(stderr); } static void OutOfMemory(void) { printk("twdisplay: Out of memory!\n"); } inline uldat FdListGet(void) { if (FdBottom < FdSize) return FdBottom; return NOSLOT; } uldat RegisterRemote(int Fd, obj HandlerData, handler_io_d HandlerIO) { uldat Slot, j; if ((Slot = FdListGet()) == NOSLOT) return Slot; memset(&LS, 0, sizeof(fdlist)); LS.Fd = Fd; LS.pairSlot = NOSLOT; if ((LS.HandlerData = HandlerData)) LS.HandlerIO.D = HandlerIO; else LS.HandlerIO.S = (handler_io_s)HandlerIO; LS.extern_couldntwrite = tfalse; if (FdTop <= Slot) FdTop = Slot + 1; for (j = FdBottom + 1; j < FdTop; j++) if (FdList[j].Fd == NOFD) break; FdBottom = j; if (Fd >= 0) { FD_SET(Fd, &save_rfds); if (max_fds < Fd) max_fds = Fd; } return Slot; } void UnRegisterRemote(uldat Slot) { /* not needed, we are going to quit anyway if this gets called */ } void RemoteCouldntWrite(uldat Slot) { if (Slot == NOSLOT || Slot >= FdTop || LS.Fd == NOFD) return; if (LS.extern_couldntwrite == tfalse) { LS.extern_couldntwrite = ttrue; FdWQueued++; } FD_SET(LS.Fd, &save_wfds); } void RemoteCouldWrite(uldat Slot) { if (Slot == NOSLOT || Slot >= FdTop || LS.Fd == NOFD) return; if (LS.extern_couldntwrite == ttrue) { LS.extern_couldntwrite = tfalse; FdWQueued--; } FD_CLR(LS.Fd, &save_wfds); } static void RemoteEvent(int FdCount, fd_set *FdSet) { uldat Slot; int fd; for (Slot = 0; Slot < FdTop && FdCount; Slot++) { if ((fd = LS.Fd) >= 0) { if (FD_ISSET(fd, FdSet)) { FdCount--; if (LS.HandlerData) LS.HandlerIO.D(fd, LS.HandlerData); else LS.HandlerIO.S(fd, Slot); } } } } static struct s_fn_module _FnModule = { module_magic, (void (*)(module, all, module, module))NoOp, /* InsertModule */ (void (*)(module))NoOp, /* RemoveModule */ (void (*)(module))NoOp, /* DeleteModule */ (void (*)(module, udat, uldat, uldat))NoOp, /* ChangeField */ NULL, /* Fn_Obj */ (byte (*)(module))NoOp, /* DlOpen */ (void (*)(module))NoOp, /* DlClose */ }; obj s_obj::Init() { return this; } module s_module::Init(uldat /*namelen*/, const char * /*name*/) { Fn = &_FnModule; s_obj::Init(); return this; } static s_module _Module; static module const GModule = (_Module.Fn = &_FnModule, _Module.Init(0, NULL)); static module DlLoadAny(uldat len, char *name) { byte (*init_func)(module); module m = GModule; char *path; if (!dlinit_once()) { return (module)0; } if ((m->Name = CloneStrL(name, len)) && (path = (char *)AllocMem(len + strlen(modules_prefix) + strlen(DL_SUFFIX) + 1))) { sprintf(path, "%s%.*s%s", modules_prefix, (int)len, name, DL_SUFFIX); m->Handle = (void *)dlopen(path); FreeMem(path); if (m->Handle) { /* * Module MUST have a InitModule function, as it needs to set * Module->Private to its xxx_InitHW() startup code. */ if ((init_func = (byte(*)(module))dlsym((dlhandle)m->Handle, "InitModule"))) { if (init_func(m)) { return m; } else if (Errstr == NULL || *Errstr == '\0') { Error(DLERROR); Errstr = "InitModule() failed"; } } else { Error(DLERROR); Errstr = "InitModule() not found in module"; } } else { Error(DLERROR); Errstr = dlerror(); } } else { Errstr = "Out of memory!"; } return NULL; } static byte module_InitHW(const char *arg, uldat len) { const char *name, *tmp; char *buf; byte (*InitD)(void); module m = NULL; if (!arg || len <= 4) return tfalse; arg += 4; len -= 4; /* skip "-hw=" */ name = (const char *)memchr(arg, '@', len); tmp = (const char *)memchr(arg, ',', len); if (tmp && (!name || tmp < name)) name = tmp; if (name) len = name - arg; if (len == 1 && *arg == 'X') len = 3, arg = "X11"; if ((buf = (char *)AllocMem(len + 4))) { sprintf(buf, "hw_%.*s", (int)len, arg); m = DlLoadAny(len + 3, buf); if (m) { printk("twdisplay: starting display driver module `" SS "'...\n", buf); if ((InitD = m->DoInit) && InitD()) { printk("twdisplay: ...module `" SS "' successfully started.\n", buf); HW->Module = m; m->Used++; FreeMem(buf); return ttrue; } /*m->Delete();*/ } name = buf; } else { Errstr = "Out of memory!"; name = "(NULL)"; } if (m) { printk("twdisplay: ...module `" SS "' failed to start.\n", name); } else printk("twdisplay: unable to load display driver module `" SS "' :\n " SS "\n", name, Errstr); if (buf) FreeMem(buf); return tfalse; } static display_hw CreateDisplayHW(uldat len, const char *name); static byte InitDisplayHW(display_hw); static void QuitDisplayHW(display_hw); static struct s_fn_display_hw _FnDisplayHW = { /*-------------------*/ display_hw_magic, (void (*)(display_hw, all, display_hw, display_hw))NoOp, /* InsertDisplayHW */ (void (*)(display_hw))NoOp, /* RemoveDisplayHW */ (void (*)(display_hw))NoOp, /* DeleteDisplayHW */ (void (*)(display_hw, udat, uldat, uldat))NoOp, /* ChangeFieldDisplayHW */ NULL, /* Fn_Obj */ InitDisplayHW, QuitDisplayHW, }; display_hw s_display_hw::Init(uldat namelen, const char *name) { Fn = &_FnDisplayHW; if (!name || !s_obj::Init()) { return NULL; } if (!(this->Name = CloneStrL(name, namelen))) { return NULL; } this->NameLen = namelen; this->Module = NULL; /* * ->Quitted will be set to tfalse only * after DisplayHW->InitHW() has succeeded. */ this->Quitted = ttrue; this->AttachSlot = NOSLOT; return this; } static s_display_hw _HW; void warn_NoHW(uldat len, const char *arg, uldat tried) { printk("twdisplay: All display drivers failed"); if (arg) printk(" for `%.*s\'", (int)Min2(TW_SMALLBUFF, len), arg); else printk("."); printk("\n"); } static void UpdateFlagsHW(void) { if (!HW->Quitted) { NeedOldVideo = HW->FlagsHW & FlHWNeedOldVideo; ExpensiveFlushVideo = HW->FlagsHW & FlHWExpensiveFlushVideo; CanDragArea = !!HW->CanDragArea; } } /* * InitDisplayHW runs HW specific InitXXX() functions, starting from best setup * and falling back in case some of them fails. */ static byte InitDisplayHW(display_hw D_HW) { char *arg = D_HW->Name; uldat tried = 0; byte success; SaveHW; SetHW(D_HW); D_HW->DisplayIsCTTY = D_HW->NeedHW = D_HW->FlagsHW = tfalse; if (arg && !strncmp(arg, "-hw=", 4)) arg += 4; else arg = NULL; #define TRY4(hw) (tried++, module_InitHW(hw, strlen(hw))) if (!arg || !*arg) { success = TRY4("-hw=xft") || TRY4("-hw=X11") || TRY4("-hw=twin") || #if 0 /* cannot use `--hw=display' inside twdisplay! */ TRY4("-hw=display") || #endif TRY4("-hw=tty"); } else { success = module_InitHW(D_HW->Name, D_HW->NameLen); } if (success) { D_HW->Quitted = tfalse; if (!DisplayHWCTTY && D_HW->DisplayIsCTTY) DisplayHWCTTY = D_HW; UpdateFlagsHW(); } else warn_NoHW(D_HW->NameLen, HW->Name, tried); RestoreHW; return success; } static void QuitDisplayHW(display_hw D_HW) { if (D_HW && D_HW->QuitHW) HW = D_HW, D_HW->QuitHW(); } static display_hw CreateDisplayHW(uldat namelen, const char *name) { return HW = _HW.Init(namelen, name); } static byte IsValidHW(uldat len, const char *arg) { uldat i; byte b; if (len >= 4 && !memcmp(arg, "-hw=", 4)) arg += 4, len -= 4; for (i = 0; i < len; i++) { b = arg[i]; if (b == '@' || b == ',') /* the rest are options - validated by each display HW */ break; if ((b < '0' || b > '9') && (b < 'A' || b > 'Z') && (b < 'a' || b > 'z') && b != '_') { printk("twdisplay: invalid non-alphanumeric character `%c' in display HW name: `%.*s'\n", (int)b, Min2((int)len, TW_SMALLBUFF), arg); return tfalse; } } return ttrue; } static display_hw AttachDisplayHW(uldat len, const char *arg, uldat slot, byte flags) { if ((len && len <= 4) || memcmp("-hw=", arg, Min2(len, 4))) { printk("twdisplay: specified `%.*s\' is not `--hw=<display>\'\n", (int)len, arg); return (display_hw)0; } if (IsValidHW(len, arg) && CreateDisplayHW(len, arg)) { HW->AttachSlot = slot; if (InitDisplayHW(HW)) return HW; } return NULL; } #if 0 /* not needed, server-side hw_display already does optimization for us */ inline void OptimizeChangedVideo(void) { uldat _start, start, _end, end; ldat i; for (i=0; i<(ldat)DisplayHeight*2; i++) { start = (uldat)ChangedVideo[i>>1][!(i&1)][0]; if (start != (uldat)-1) { start += (i>>1) * (ldat)DisplayWidth; _start = start; _end = end = (uldat)ChangedVideo[i>>1][!(i&1)][1] + (i>>1) * (ldat)DisplayWidth; while (start <= end && Video[start] == OldVideo[start]) start++; while (start <= end && Video[end] == OldVideo[end]) end--; if (start > end) { if (i&1) { /* * this is the first area, to make it empty * copy the second on this. */ if (ChangedVideo[i>>1][1][0] != -1) { ChangedVideo[i>>1][0][0] = ChangedVideo[i>>1][1][0]; ChangedVideo[i>>1][0][1] = ChangedVideo[i>>1][1][1]; ChangedVideo[i>>1][1][0] = -1; } else ChangedVideo[i>>1][0][0] = -1; } else ChangedVideo[i>>1][1][0] = -1; continue; } else if (start > _start || end < _end) { ChangedVideo[i>>1][!(i&1)][0] += start - _start; ChangedVideo[i>>1][!(i&1)][1] -= _end - end; } } } } #else #define OptimizeChangedVideo() \ do { \ } while (0) #endif inline void SyncOldVideo(void) { ldat start, len; ldat i; if (ChangedVideoFlag) { for (i = 0; i < (ldat)DisplayHeight * 2; i++) { start = ChangedVideo[i >> 1][i & 1][0]; if (start >= 0) { len = ChangedVideo[i >> 1][i & 1][1] + 1 - start; start += (i >> 1) * (ldat)DisplayWidth; ChangedVideo[i >> 1][i & 1][0] = -1; CopyMem(Video + start, OldVideo + start, len * sizeof(tcell)); } } } } void FlushHW(void) { if (!ValidVideo) return; if (QueuedDrawArea2FullScreen) { QueuedDrawArea2FullScreen = tfalse; DirtyVideo(0, 0, DisplayWidth - 1, DisplayHeight - 1); ValidOldVideo = tfalse; } else if (HW->RedrawVideo) { DirtyVideo(HW->RedrawLeft, HW->RedrawUp, HW->RedrawRight, HW->RedrawDown); ValidOldVideo = tfalse; } else if (NeedOldVideo && ValidOldVideo) OptimizeChangedVideo(); HW->FlushVideo(); HW->RedrawVideo = tfalse; if (HW->NeedHW & NEEDFlushHW) HW->FlushHW(); if (NeedHW & NEEDFlushStdout) fflush(stdout), NeedHW &= ~NEEDFlushStdout; SyncOldVideo(); ChangedVideoFlag = tfalse; ValidOldVideo = ttrue; } void ResizeDisplayPrefer(display_hw D_HW) { SaveHW; SetHW(D_HW); D_HW->DetectSize(&TryDisplayWidth, &TryDisplayHeight); NeedHW |= NEEDResizeDisplay; RestoreHW; } static byte ReAllocVideo(dat Width, dat Height) { byte change = DisplayWidth != Width || DisplayHeight != Height; if (!NeedOldVideo && OldVideo) { FreeMem(OldVideo); OldVideo = NULL; } else if ((NeedOldVideo && !OldVideo) || change) { if (!(OldVideo = (tcell *)ReAllocMem(OldVideo, (ldat)Width * Height * sizeof(tcell))) && Width && Height) { OutOfMemory(); Quit(1); } ValidOldVideo = tfalse; } if (!Video || change) { DisplayWidth = Width; DisplayHeight = Height; if ((!(Video = (tcell *)ReAllocMem(Video, (ldat)DisplayWidth * DisplayHeight * sizeof(tcell))) || !(ChangedVideo = (dat(*)[2][2])ReAllocMem(ChangedVideo, (ldat)DisplayHeight * sizeof(dat) * 4))) && DisplayWidth && DisplayHeight) { OutOfMemory(); Quit(1); } ValidVideo = tfalse; memset(ChangedVideo, 0xff, (ldat)DisplayHeight * sizeof(dat) * 4); } return change; } /* * return ttrue if DisplayWidth or DisplayHeight were changed */ static byte ResizeDisplay(void) { byte change = tfalse; tmsg Tmsg; if (!TryDisplayWidth || !TryDisplayHeight) HW->DetectSize(&TryDisplayWidth, &TryDisplayHeight); HW->CheckResize(&TryDisplayWidth, &TryDisplayHeight); HW->Resize(TryDisplayWidth, TryDisplayHeight); change = ReAllocVideo(TryDisplayWidth, TryDisplayHeight); NeedHW &= ~NEEDResizeDisplay; TryDisplayWidth = TryDisplayHeight = 0; if (change && (Tmsg = TwCreateMsg(TW_MSG_DISPLAY, TW_SIZEOF_TEVENT_DISPLAY))) { Tmsg->Event.EventDisplay.Code = TW_EV_DPY_Resize; Tmsg->Event.EventDisplay.Len = 0; Tmsg->Event.EventDisplay.X = DisplayWidth; Tmsg->Event.EventDisplay.Y = DisplayHeight; TwBlindSendMsg(THelper, Tmsg); } return change; } byte AllHWCanDragAreaNow(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { return (CanDragArea && HW->CanDragArea && HW->CanDragArea(Left, Up, Rgt, Dwn, DstLeft, DstUp)); } void DragAreaHW(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { HW->DragArea(Left, Up, Rgt, Dwn, DstLeft, DstUp); } void SetPaletteHW(udat N, udat R, udat G, udat B) { if (N <= tmaxcol) { rgb c; c.Red = R; c.Green = G; c.Blue = B; if (memcmp(&Palette[N], &c, sizeof(rgb))) { Palette[N] = c; HW->SetPalette(N, R, G, B); } } } void ResetPaletteHW(void) { HW->ResetPalette(); } static void HandleMsg(tmsg Msg) { tevent_display EventD; switch (Msg->Type) { case TW_MSG_SELECTION: /* should never happen */ printk("\ntwdisplay: HandleMsg(): unexpected Selection Message from twin!\n"); break; case TW_MSG_SELECTIONREQUEST: #if 0 printk("twdisplay: Selection Request from 0x%08x, owner is underlying HW\n", Msg->Event.EventSelectionRequest.Requestor); #endif /* request selection from underlying HW */ /* * Just like in TwinSelectionGetOwner() : normally Requestor * is a meaningful pointer; here it is just a libtw Id. * Cast it to (obj) as expected by HW displays... * we will cast it back when needed */ HW->HWSelectionRequest((obj)(topaque)Msg->Event.EventSelectionRequest.Requestor, Msg->Event.EventSelectionRequest.ReqPrivate); break; case TW_MSG_SELECTIONNOTIFY: #if 0 printk("twdisplay: Selection Notify to underlying HW\n"); #endif /* notify selection to underlying HW */ HW->HWSelectionNotify( Msg->Event.EventSelectionNotify.ReqPrivate, Msg->Event.EventSelectionNotify.Magic, Msg->Event.EventSelectionNotify.MIME, Chars(Msg->Event.EventSelectionNotify.Data, Msg->Event.EventSelectionNotify.Len)); break; case TW_MSG_DISPLAY: EventD = &Msg->Event.EventDisplay; switch (EventD->Code) { case TW_EV_DPY_DrawTCell: if (EventD->Len /= sizeof(tcell)) { if (EventD->X + EventD->Len > DisplayWidth || EventD->Y >= DisplayHeight) { /* * in a perfect world this should not happen, * but with our asyncronous display size negotiation, * it actually can. */ if (EventD->Y < DisplayHeight && EventD->X < DisplayWidth) EventD->Len = DisplayWidth - EventD->X; else break; } DirtyVideo(EventD->X, EventD->Y, EventD->X + EventD->Len - 1, EventD->Y); CopyMem(EventD->Data, &Video[EventD->X + EventD->Y * (ldat)DisplayWidth], (uldat)EventD->Len * sizeof(tcell)); } break; case TW_EV_DPY_FlushHW: ValidVideo = ttrue; FlushHW(); break; case TW_EV_DPY_SetCursorType: if (EventD->Len == sizeof(uldat)) SetCursorType(*(uldat *)EventD->Data); break; case TW_EV_DPY_MoveToXY: MoveToXY(EventD->X, EventD->Y); break; case TW_EV_DPY_Resize: /* * twin told us the new display size. * don't detect/check anything, just apply it * (if it is meaningful and different from current) */ if (EventD->X != DisplayWidth || EventD->Y != DisplayHeight) { HW->Resize(EventD->X, EventD->Y); ReAllocVideo(EventD->X, EventD->Y); } break; case TW_EV_DPY_SelectionExport: NeedHW |= NEEDSelectionExport; break; case TW_EV_DPY_DragArea: #define c ((udat *)EventD->Data) if (EventD->Len == 4 * sizeof(udat)) DragArea(EventD->X, EventD->Y, c[0], c[1], c[2], c[3]); #undef c break; case TW_EV_DPY_Beep: HW->Beep(); break; case TW_EV_DPY_Configure: if (EventD->X == HW_MOUSEMOTIONEVENTS) MouseMotionN = EventD->Y > 0; HW->Configure(EventD->X, EventD->Y == -1, EventD->Y); break; case TW_EV_DPY_SetPalette: #define c ((udat *)EventD->Data) if (EventD->Len == 3 * sizeof(udat)) HW->SetPalette(EventD->X, c[0], c[1], c[2]); #undef c break; case TW_EV_DPY_ResetPalette: HW->ResetPalette(); break; case TW_EV_DPY_Helper: THelper = *(uldat *)EventD->Data; break; case TW_EV_DPY_Quit: Quit(0); break; default: break; } } } static void SocketIO(void) { tmsg Msg; while ((Msg = TwReadMsg(tfalse))) HandleMsg(Msg); } void SelectionExport(void) { HW->HWSelectionExport(); NeedHW &= ~NEEDSelectionExport; } /* HW back-end function: get selection owner */ /* * In the same function in twin server, this returns a meaningful pointer. * Here, it returns just an Id coming from libtw. * Cheat and cast to to (obj), since the underlying display HW code * treats it as opaque. We will cast it back to (uldat) when needed. */ obj TwinSelectionGetOwner(void) { return (obj)(topaque)TwGetOwnerSelection(); } /* HW back-end function: set selection owner */ void TwinSelectionSetOwner(obj Owner, tany Time, tany Frac) { tmsg Msg; if ((Msg = TwCreateMsg(TW_MSG_SELECTIONCLEAR, sizeof(tevent_common)))) { TwBlindSendMsg(THelper, Msg); } } /* HW back-end function: notify selection */ void TwinSelectionNotify(obj Requestor, uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], Chars Data) { if (!MIME) { MIME = nullMIME; } #if 0 printk("twdisplay: Selection Notify to 0x%08x\n", (uldat)Requestor); #endif /* cast back Requestor from fake (obj) to its original (uldat) */ TwNotifySelection((topaque)Requestor, ReqPrivate, Magic, MIME, Data.size(), Data.data()); } /* HW back-end function: request selection */ void TwinSelectionRequest(obj Requestor, uldat ReqPrivate, obj Owner) { #if 0 printk("twdisplay: Selection Request from 0x%08x, Owner is 0x%08x\n", (uldat)Requestor, (uldat)Owner); #endif /* cast back Owner from the fake (obj) to (uldat) */ TwRequestSelection((topaque)Owner, ReqPrivate); } static byte StdAddMouseEvent(udat Code, dat MouseX, dat MouseY) { tevent_mouse Event; tmsg Msg; if (HW->FlagsHW & FlHWNoInput) return ttrue; if ((Msg = TwCreateMsg(TW_MSG_WIDGET_MOUSE, sizeof(event_mouse)))) { Event = &Msg->Event.EventMouse; Event->Code = Code; Event->ShiftFlags = (udat)0; Event->X = MouseX; Event->Y = MouseY; TwBlindSendMsg(THelper, Msg); return ttrue; } return tfalse; } byte MouseEventCommon(dat x, dat y, dat dx, dat dy, udat Buttons) { dat prev_x, prev_y; udat OldButtons, i; mouse_state *OldState; udat result; byte ret = ttrue; OldState = &HW->MouseState; OldButtons = OldState->keys; prev_x = OldState->x; prev_y = OldState->y; x = Max2(x, 0); x = Min2(x, DisplayWidth - 1); OldState->delta_x = x == 0 ? Min2(dx, 0) : x == DisplayWidth - 1 ? Max2(dx, 0) : 0; y = Max2(y, 0); y = Min2(y, DisplayHeight - 1); OldState->delta_y = y == 0 ? Min2(dy, 0) : y == DisplayHeight - 1 ? Max2(dy, 0) : 0; if (x != prev_x || y != prev_y) HW->FlagsHW |= FlHWChangedMouseFlag; OldState->x = x; OldState->y = y; OldState->keys = Buttons; if (Buttons != OldButtons || ((MouseMotionN || OldButtons) && (x != prev_x || y != prev_y))) { if ((MouseMotionN || OldButtons) && (x != prev_x || y != prev_y)) { ret = StdAddMouseEvent(MOVE_MOUSE | OldButtons, x, y); } for (i = 0; i < BUTTON_N_MAX && ret; i++) { if ((Buttons & HOLD_CODE(i)) != (OldButtons & HOLD_CODE(i))) { result = (Buttons & HOLD_CODE(i) ? PRESS_CODE(i) : RELEASE_CODE(i)) | (OldButtons &= ~HOLD_CODE(i)); OldButtons |= Buttons & HOLD_CODE(i); ret = StdAddMouseEvent(result, x, y); } } } return ret; } byte KeyboardEventCommon(udat Code, udat ShiftFlags, udat Len, const char *Seq) { tevent_keyboard Event; tmsg Msg; if (HW->FlagsHW & FlHWNoInput) return ttrue; if ((Msg = TwCreateMsg(TW_MSG_WIDGET_KEY, Len + sizeof(event_keyboard)))) { Event = &Msg->Event.EventKeyboard; Event->Code = Code; Event->ShiftFlags = ShiftFlags; Event->SeqLen = Len; CopyMem(Seq, Event->AsciiSeq, Len); Event->AsciiSeq[Len] = '\0'; /* terminate string with \0 */ TwBlindSendMsg(THelper, Msg); return ttrue; } return tfalse; } static void MainLoop(int Fd) { struct timeval sel_timeout; fd_set read_fds, write_fds, *pwrite_fds; uldat err, detail; int sys_errno, num_fds; for (;;) { if (GotSignals) HandleSignals(); if (NeedHW & NEEDResizeDisplay) ResizeDisplay(); if (NeedHW & NEEDSelectionExport) SelectionExport(); /* * don't FlushHW() unconditionalluy here, * as it gets called syncronously * with the main twin from HandleEvent()... * just update what is needed. */ if (HW->RedrawVideo) FlushHW(); else { HW->UpdateMouseAndCursor(); if (HW->NeedHW & NEEDFlushHW) HW->FlushHW(); if (NeedHW & NEEDFlushStdout) fflush(stdout), NeedHW &= ~NEEDFlushStdout; } read_fds = save_rfds; if (!FdWQueued) pwrite_fds = NULL; else { write_fds = save_wfds; pwrite_fds = &write_fds; } if (!TwFlush()) break; /* * messages can arrive during Tw* function calls, * so the FD_ISSET() test alone does not suffice. * also use an inactivity timeout: 2min... */ sel_timeout.tv_sec = TwPendingMsg() ? 0 : 120; sel_timeout.tv_usec = 0; if (NeedHW & NEEDPanicHW) break; num_fds = OverrideSelect(max_fds + 1, &read_fds, pwrite_fds, NULL, &sel_timeout); if (num_fds < 0 && errno != EINTR) /* ach, problem. */ break; if (num_fds == 0 && !TwPendingMsg()) { /* * no activity during timeout delay && no pending messages.. * just ping twin to keep connection active.. * however, if width <= 0 : means we lost connection, so exit.. */ if (TwGetDisplayWidth() <= 0) { QuitDisplayHW(HW); printk("twdisplay: lost connection to TWIN.. \n"); exit(1); } } if ((num_fds > 0 && FD_ISSET(Fd, &read_fds)) || TwPendingMsg()) { /* * messages can arrive during Tw* function calls, * so the FD_ISSET() test alone does not suffice. */ if (FD_ISSET(Fd, &read_fds)) { num_fds--; FD_CLR(Fd, &read_fds); } SocketIO(); } if (num_fds > 0) RemoteEvent(num_fds, &read_fds); } if (NeedHW & NEEDPanicHW) Quit(0); if (num_fds < 0 && errno != EINTR) { QuitDisplayHW(HW); printk("twdisplay: select(): " SS "\n", strerror(errno)); exit(1); } if (TwInPanic()) { err = TwErrno; detail = TwErrnoDetail; QuitDisplayHW(HW); printk("" SS ": libtw error: " SS "" SS "\n", MYname, TwStrError(err), TwStrErrorDetail(err, detail)); exit(1); } err = TwErrno; detail = TwErrnoDetail; sys_errno = errno; QuitDisplayHW(HW); printk("" SS ": shouldn't happen! Please report:\n" "\tlibtw TwErrno: %d(%d),\t" SS "" SS "\n" "\tsystem errno: %d,\t" SS "\n", MYname, err, detail, TwStrError(err), TwStrErrorDetail(err, detail), sys_errno, strerror(sys_errno)); exit(1); } dat GetDisplayWidth(void) { return DisplayWidth; } dat GetDisplayHeight(void) { return DisplayHeight; } static void Usage(void) { fputs("Usage: twdisplay [OPTIONS]\n" "Currently known options: \n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" " -s, --share allow multiple simultaneous displays (default)\n" " -x, --excl request exclusive display - detach all others\n" " -v, --verbose verbose output (default)\n" " -q, --quiet quiet - don't report messages from twin server\n" " -f, --force force running even with wrong protocol version\n" " --twin@<TWDISPLAY> specify server to contact instead of $TWDISPLAY\n" " --hw=<display>[,options] start the given display (only one --hw=... allowed)\n" " (default: autoprobe all displays until one succeeds)\n" "Currently known display drivers: \n" "\txft[@<XDISPLAY>]\n" "\tX[@<XDISPLAY>]\n" "\ttwin[@<TWDISPLAY>]\n" "\ttty[@<tty device>]\n", stdout); } static void TryUsage(const char *opt) { if (opt) fprintf(stdout, "twdisplay: unknown option `" SS "'\n", opt); fputs(" try `twdisplay --help' for usage summary.\n", stdout); } static void ShowVersion(void) { fputs("twdisplay " TWIN_VERSION_STR " with socket protocol " TW_PROTOCOL_VERSION_STR "\n", stdout); } static byte VersionsMatch(byte force) { uldat cv = TW_PROTOCOL_VERSION, lv = TwLibraryVersion(), sv = TwServerVersion(); if (lv != sv || lv != cv) { printk("twdisplay: " SS ": socket protocol version mismatch!" SS "\n" " client is %d.%d.%d, library is %d.%d.%d, server is %d.%d.%d\n", (force ? "warning" : "fatal"), (force ? " (ignored)" : ""), TW_VER_MAJOR(cv), TW_VER_MINOR(cv), TW_VER_PATCH(cv), TW_VER_MAJOR(lv), TW_VER_MINOR(lv), TW_VER_PATCH(lv), TW_VER_MAJOR(sv), TW_VER_MINOR(sv), TW_VER_PATCH(sv)); return tfalse; } return ttrue; } static void MergeHyphensArgv(int argc, char **argv) { char *S; while (argc) { if ((S = *argv) && S[0] == '-' && S[1] == '-' && S[2] && S[3]) (*argv)++; argv++, argc--; } } TW_DECL_MAGIC(display_magic); int main(int argc, char *argv[]) { const char *tty = ttyname(0); const char *dpy = NULL, *client_dpy = NULL; const char *carg; char *arg = NULL; int Fd; byte flags = TW_ATTACH_HW_REDIRECT, force = 0; byte ret = 0, ourtty = 0; MergeHyphensArgv(argc, argv); MYname = argv[0]; while (*++argv) { if (!strcmp(*argv, "-V") || !strcmp(*argv, "-version")) { ShowVersion(); return 0; } else if (!strcmp(*argv, "-h") || !strcmp(*argv, "-help")) { Usage(); return 0; } else if (!strcmp(*argv, "-x") || !strcmp(*argv, "-excl")) flags |= TW_ATTACH_HW_EXCLUSIVE; else if (!strcmp(*argv, "-s") || !strcmp(*argv, "-share")) flags &= ~TW_ATTACH_HW_EXCLUSIVE; else if (!strcmp(*argv, "-v") || !strcmp(*argv, "-verbose")) flags |= TW_ATTACH_HW_REDIRECT; else if (!strcmp(*argv, "-q") || !strcmp(*argv, "-quiet")) flags &= ~TW_ATTACH_HW_REDIRECT; else if (!strcmp(*argv, "-f") || !strcmp(*argv, "-force")) force = 1; else if (!strncmp(*argv, "-twin@", 6)) dpy = *argv + 6; else if (!strncmp(*argv, "-hw=", 4)) { if (!strncmp(*argv + 4, "display", 7)) { printk("" SS ": argument `--hw=display' is for internal use only.\n", MYname); TryUsage(NULL); return 1; } if (!strncmp(*argv + 4, "tty", 3)) { const char *cs = ""; char *opt = *argv + 7; char *s = strchr(opt, ','); if (s) *s = '\0'; if (!*opt) /* attach twin to our tty */ ourtty = 1; else if (opt[0] == '@' && opt[1]) { if (opt[1] == '-') { /* * using server controlling tty makes no sense for twdisplay */ printk("" SS ": `" SS "' makes sense only with twattach.\n", MYname, *argv); return 1; } else if (tty) { if (!strcmp(opt + 1, tty)) /* attach twin to our tty */ ourtty = 1; } else { printk("" SS ": ttyname() failed: cannot find controlling tty!\n", MYname); return 1; } } else { printk("" SS ": malformed display hw `" SS "'\n", MYname, *argv); return 1; } if (s) { *s = ','; cs = s; } if (ourtty) { const char *term = getenv("TERM"); if (term && !*term) term = NULL; arg = (char *)malloc(strlen(tty) + 9 + strlen(cs) + (term ? 6 + strlen(term) : 0)); sprintf(arg, "-hw=tty%s%s%s", (term ? ",TERM=" : term), term, cs); } else arg = *argv; } else if ((*argv)[4]) { arg = *argv; if (!strncmp(*argv + 4, "twin@", 5)) { client_dpy = *argv + 9; } else if (!strcmp(*argv + 4, "twin")) { client_dpy = ""; } } else { TryUsage(*argv); return 1; } } else { TryUsage(*argv); return 1; } } if (arg) carg = arg; else /* user did not specify any `--hw=<dpy>', autoprobe */ carg = ""; #ifdef CONF__ALLOC /* do this as soon as possible */ if (!InitAlloc()) { fputs("twin: InitAlloc() failed: internal error!\n", stderr); return 1; } #endif origTWDisplay = CloneStr(getenv("TWDISPLAY")); TWDisplay = dpy ? CloneStr(dpy) : origTWDisplay; origTERM = CloneStr(getenv("TERM")); HOME = CloneStr(getenv("HOME")); if (((ourtty || (client_dpy && !*client_dpy)) && origTWDisplay && TWDisplay && !strcmp(origTWDisplay, TWDisplay)) || (client_dpy && *client_dpy && TWDisplay && !strcmp(client_dpy, TWDisplay))) { if (!force) { printk("twdisplay: refusing to display twin inside itself. Use option `-f' to override.\n"); TwClose(); return 1; } } InitSignals(); InitTtysave(); #ifdef CONF__ALLOC TwConfigMalloc(AllocMem, ReAllocMem, free); #endif if (TwCheckMagic(display_magic) && TwOpen(TWDisplay)) do { char *buf; if (!VersionsMatch(force)) { if (!force) { printk("twdisplay: Aborting. Use option `-f' to ignore versions check.\n"); TwClose(); return 1; } } if (RegisterRemote(Fd = TwConnectionFd(), NULL, (handler_io_d)NoOp) == NOSLOT) { TwClose(); OutOfMemory(); return 1; } if (!(TMsgPort = TwCreateMsgPort(9, "twdisplay"))) break; DisplayWidth = TryDisplayWidth = TwGetDisplayWidth(); DisplayHeight = TryDisplayHeight = TwGetDisplayHeight(); if (!(HW = AttachDisplayHW(strlen(carg), carg, NOSLOT, 0))) { TwClose(); return 1; } if (!(buf = (char *)AllocMem(HW->NameLen + 80))) { QuitDisplayHW(HW); TwClose(); OutOfMemory(); return 1; } sprintf(buf, "-hw=display@(%.*s),x=%d,y=%d%s%s%s", (int)HW->NameLen, HW->Name, (int)HW->X, (int)HW->Y, HW->CanResize ? ",resize" : "", /* CanDragArea */ ttrue ? ",drag" : "", ExpensiveFlushVideo ? ",slow" : ""); TwAttachHW(strlen(buf), buf, flags); TwFlush(); flags &= TW_ATTACH_HW_REDIRECT; if (flags) printk("messages reported by twin server...\n"); for (;;) { uldat len; const char *reply = TwAttachGetReply(&len); if (reply <= (char *)2) { ret = (byte)(size_t)reply; break; } else if (reply == (char *)-1) /* libtw panic */ break; printk(" %.*s", (int)len, reply); } flushk(); if (TwInPanic()) break; if (ourtty) { fputs("\033[2J", stdout); fflush(stdout); } /* * twin waits this before grabbing the display... * so we can fflush(stdout) to show all messages * *BEFORE* twin draws on (eventually) the same tty */ TwAttachConfirm(); ResizeDisplay(); if (flags && !ourtty) { if (ret) printk("... ok, twin successfully attached.\n"); else printk("... ach, twin failed to attach.\n"); flushk(); } if (ret == 2) /* * twin told us to stay and sit on the display * until it is quitted. */ MainLoop(Fd); else if (ret) printk("" SS ": twin said we can quit... strange!\n", MYname); Quit(!ret); } while (0); printk("" SS ": libtw error: " SS "" SS "\n", MYname, TwStrError(TwErrno), TwStrErrorDetail(TwErrno, TwErrnoDetail)); return 1; } void Quit(int status) { QuitDisplayHW(HW); if (status < 0) return; /* give control back to signal handler */ exit(status); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/dl.cpp����������������������������������������������������������������������������0000664�0000000�0000000�00000007575�13775351206�0015141�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * dl.c -- load/unload modules * * Copyright (C) 1999-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "methods.h" #include "data.h" #include "dl.h" #include "util.h" #include "printk.h" #include "version.h" #include "dl_helper.h" byte DlOpen(module Module) { dlhandle Handle = NULL; uldat len, len0 = 1 + strlen(pkg_libdir) + strlen(DL_PREFIX) + strlen(DL_SUFFIX); char *name = NULL; byte (*init_func)(module); if (!dlinit_once()) { return tfalse; } if (Module && !Module->Handle && (!Module->NameLen || Module->Name)) { /* dlopen(NULL, ...) returns a handle for the main program */ if (Module->NameLen) { len = len0 + Module->NameLen; if ((name = (char *)AllocMem(len + 1))) sprintf(name, "%s/%s%.*s%s", pkg_libdir, DL_PREFIX, (int)Module->NameLen, Module->Name, DL_SUFFIX); else { return tfalse; } } Handle = dlopen(name); if (name) FreeMem(name); } if (!Handle) { Error(DLERROR); Errstr = dlerror(); return tfalse; } if (name) { init_func = (byte(*)(module))dlsym(Handle, "InitModule"); if (init_func && init_func(Module)) { Module->Handle = (void *)Handle; return ttrue; } dlclose(Handle); if (init_func) { if (Errstr == NULL || *Errstr == '\0') { Error(DLERROR); Errstr = "InitModule() failed"; } } else { Error(DLERROR); Errstr = "InitModule() not found in module"; } return tfalse; } return ttrue; } void DlClose(module Module) { if (Module && Module->Handle) { if (Module->NameLen != 0) { void (*quit_func)(module) = (void (*)(module))dlsym((dlhandle)Module->Handle, "QuitModule"); if (quit_func) quit_func(Module); } dlclose((dlhandle)Module->Handle); Module->Handle = NULL; } } module DlLoadAny(uldat len, const char *name) { module Module; for (Module = All->FirstModule; Module; Module = Module->Next) { if (len == Module->NameLen && !memcmp(name, Module->Name, len)) /* already loaded! */ return Module; } if ((Module = New(module)(len, name))) { if (Module->DlOpen()) return Module; Module->Delete(); } return NULL; } static module So[MAX_So]; udat DlName2Code(const char *name) { if (!strcmp(name, "wm")) return WMSo; if (!strcmp(name, "term")) return TermSo; if (!strcmp(name, "socket")) return SocketSo; if (!strcmp(name, "rcparse")) return RCParseSo; return MainSo; } static const char *DlCode2Name(uldat code) { switch (code) { case WMSo: return "wm"; case TermSo: return "term"; case SocketSo: return "socket"; case RCParseSo: return "rcparse"; default: case MainSo: return NULL; } } module DlLoad(uldat code) { module M = (module)0; if (code < MAX_So && !(M = So[code])) { const char *name = DlCode2Name(code); M = DlLoadAny(name ? strlen(name) : 0, name); if ((So[code] = M)) { if (All->FnHookModule) All->FnHookModule(All->HookModule); } else { printk("failed to load module %s: %s\n", name ? name : "(NULL)", Errstr ? Errstr : "unknown error"); } } return M; } void DlUnload(uldat code) { if (code < MAX_So) { if (So[code]) { So[code]->Delete(); So[code] = NULL; if (All->FnHookModule) All->FnHookModule(All->HookModule); } } } module DlIsLoaded(uldat code) { if (code < MAX_So) return So[code]; return (module)0; } void *DlSym(module Module, const char *name) { if (Module && name) return (void *)dlsym((dlhandle)Module->Handle, name); return NULL; } �����������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/dl.h������������������������������������������������������������������������������0000664�0000000�0000000�00000001444�13775351206�0014573�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_DL_H #define TWIN_DL_H byte DlOpen(module Module); void DlClose(module Module); #define MainSo ((uldat)0) #define WMSo ((uldat)1) #define TermSo ((uldat)2) #define SocketSo ((uldat)3) #define RCParseSo ((uldat)4) #define MAX_So ((uldat)5) module DlLoad(uldat code); void DlUnload(uldat code); module DlIsLoaded(uldat code); udat DlName2Code(const char *name); module DlLoadAny(uldat len, const char *name); void *DlSym(module Module, const char *name); #endif /* TWIN_DL_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/dl_helper.cpp���������������������������������������������������������������������0000664�0000000�0000000�00000001455�13775351206�0016467�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * dl_helper.c -- wrapper around lt_dlopen() and dlopen() * * Copyright (C) 2016 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "dl_helper.h" #include "util.h" #ifdef dlinit byte dlinit_once(void) { static enum { no_init = 0, init_ok = 1, init_error = 2 } initialized = no_init; if (initialized == no_init) { int err = dlinit(); if (err != 0) { Error(DLERROR); Errstr = dlerror(); initialized = init_error; } else { initialized = init_ok; } } return initialized == init_ok ? ttrue : tfalse; } #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/dl_helper.h�����������������������������������������������������������������������0000664�0000000�0000000�00000003045�13775351206�0016131�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * dl_helper.c -- wrapper around lt_dlopen() and dlopen() * * Copyright (C) 2016 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_DL_HELPER_H #define TWIN_DL_HELPER_H #ifndef TWIN_H #include "twin.h" #endif #ifdef CONF__DLOPEN #include <dlfcn.h> #undef dlinit /* dlopen() requires no initialization */ #define dlinit_once() ttrue #define dlhandle void * #define dlopen(name) dlopen((name), RTLD_NOW | RTLD_GLOBAL) #define DL_PREFIX "lib" #ifdef __APPLE__ #define DL_EXT ".dylib" #else #define DL_EXT ".so" #endif #define DL_SUFFIX "-" TWIN_VERSION_STR DL_EXT #elif defined(TW_HAVE_LTDL) || defined(TW_HAVE_INCLUDED_LTDL) #include <ltdl.h> #define dlinit lt_dlinit byte dlinit_once(void); /* from dl_helper.c */ #define dlerror lt_dlerror #define dlhandle lt_dlhandle #define dlopen(name) \ lt_dlopenext(name) /* let ltdl decide library name suffix: .la .so .dll or whatever is on the \ target platform */ #define dlclose lt_dlclose #define dlsym lt_dlsym #ifdef TW_LT_LIBPREFIX #define DL_PREFIX TW_LT_LIBPREFIX #else #define DL_PREFIX "" #endif #define DL_EXT "" #define DL_SUFFIX "" #else #error nor dlopen() nor lt_dlopen() module loading API available! #endif #endif /* TWIN_DL_HELPER_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/draw.cpp��������������������������������������������������������������������������0000664�0000000�0000000�00000157171�13775351206�0015475�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * draw.c -- functions to draw screens, menus, windows, gadgets, etc. * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "algo.h" #include "main.h" #include "data.h" #include "methods.h" #include "hw.h" #include "hw_multi.h" #include "printk.h" #include "util.h" #include "draw.h" #include <Tutf/Tutf.h> #include <Tutf/Tutf_defs.h> byte InitDraw(void) { return ttrue; } inline tcolor DoShadowColor(tcolor Color, byte Fg, byte Bg) { return (Bg ? (Color & TCOL(0, tmaxcol)) > TCOL(0, thigh | tblack) ? TCOL(0, thigh | tblack) : TCOL(0, tblack) : Fg ? Color & TCOL(0, twhite) : Color & TCOL(0, tmaxcol)) | (Fg ? (Color & TCOL(tmaxcol, 0)) > TCOL(thigh | tblack, 0) ? TCOL(twhite, 0) : TCOL(thigh | tblack, 0) : Color & TCOL(tmaxcol, 0)); } /* * warning: DrawMenu() can cheat and give us a user Menu * while MenuItem is from All->CommonMenu */ static void FindFontMenuItem(menu Menu, menuitem MenuItem, dat i, byte Select, tcell *PtrAttr) { tcolor Color; byte ShortCutFound; if (Menu && MenuItem && i >= MenuItem->Left && i < (ldat)(MenuItem->Left + MenuItem->Len)) { ShortCutFound = i == MenuItem->Left + MenuItem->ShortCut; if (MenuItem->Flags & ROW_ACTIVE) { if (ShortCutFound) { if (Select) Color = Menu->ColSelShtCut; else Color = Menu->ColShtCut; } else if (Select) Color = Menu->ColSelect; else Color = Menu->ColItem; } else if (Select) Color = Menu->ColSelectDisabled; else Color = Menu->ColDisabled; *PtrAttr = TCELL(Color, MenuItem->Text[i - MenuItem->Left]); } } static void FindFontInfo(menu Menu, dat i, byte Select, tcell *PtrAttr) { row Info; tcolor Color; if (Menu && (Info = Menu->Info) && i >= 0 && (uldat)i < Info->Len) { if (Select) Color = Info->Flags & ROW_ACTIVE ? Menu->ColSelect : Menu->ColSelectDisabled; else if (!(Info->Flags & ROW_ACTIVE)) Color = Menu->ColDisabled; else if (Menu->FlagDefColInfo || !Info->ColText) Color = Menu->ColItem; else Color = Info->ColText[i]; *PtrAttr = TCELL(Color, Info->Text[i]); } } void DrawDesktop(screen Screen, dat X1, dat Y1, dat X2, dat Y2, byte Shaded) { tcell *Attr, attr; tcolor col; ldat DWidth, DHeight, BgWidth, BgHeight; /* (ldat) to avoid multiplication overflows */ dat YLimit = -1; if (QueuedDrawArea2FullScreen || X1 > X2 || Y1 > Y2 || X2 < 0 || Y2 < 0) return; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; if (Screen) YLimit = Screen->YLimit; if (X1 >= DWidth || Y1 >= DHeight || Y2 < YLimit) return; X1 = Max2(X1, 0); Y1 = Max2(Y1, YLimit + 1); X2 = Min2(X2, DWidth - 1); Y2 = Min2(Y2, DHeight - 1); if (Screen && S_USE(Screen, USEBG)) { Attr = Screen->USE.B.Bg; BgWidth = Screen->USE.B.BgWidth; BgHeight = Screen->USE.B.BgHeight; } if (Screen && S_USE(Screen, USEBG) && (BgWidth > 1 || BgHeight > 1)) { /* use tiling... easier than other solutions */ ldat X, Y, x, max = BgWidth * BgHeight; ldat y = ((ldat)Y1 + Screen->YLogic - Screen->YLimit) % BgHeight; if (y < 0) y += BgHeight; y *= BgWidth; DirtyVideo(X1, Y1, X2, Y2); for (; Y1 <= Y2; Y1++, y += BgWidth) { Y = Y1 * (ldat)DWidth; if (y >= max) y -= max; x = ((ldat)X1 + Screen->XLogic) % BgWidth; if (x < 0) x += BgWidth; if (Shaded) { for (X = X1; X <= X2; X++, x++) { if (x >= BgWidth) x -= BgWidth; attr = Attr[x + y]; col = DoShadowColor(TCOLOR(attr), Shaded, Shaded); Video[X + Y] = TCELL(col, TRUNEEXTRA(attr)); } } else { for (X = X1; X <= X2; X++, x++) { if (x >= BgWidth) x -= BgWidth; Video[X + Y] = Attr[x + y]; } } } } else { if (Screen) { if (S_USE(Screen, USEBG)) attr = *Screen->USE.B.Bg; else attr = Screen->USE_Fill; } else attr = TCELL(TCOL(twhite, tblack), ' '); if (Shaded) { col = DoShadowColor(TCOLOR(attr), Shaded, Shaded); attr = TCELL(col, TRUNEEXTRA(attr)); } FillVideo(X1, Y1, X2, Y2, attr); } } /* * initialize a draw_ctx given widget-relative coords * (0,0 is the widget top-left corner) * return tfalse if given window area is not visible */ byte InitDrawCtx(widget W, dat X1, dat Y1, dat X2, dat Y2, byte Shaded, draw_ctx *D) { ldat XL, YL, height; uldat Cycle = 0; widget C = NULL, CC = NULL; byte HasTopBar, HasBorder; if (!W || !D) return tfalse; D->Next = (draw_ctx *)0; D->W = W; D->NoChildren = D->BorderDone = tfalse; D->Shaded = Shaded; D->Left = 0; D->Rgt = W->XWidth - 1; D->X1 = X1; D->X2 = X2; D->Up = 0; if (IS_WINDOW(W) && (((window)W)->Attr & WINDOW_ROLLED_UP)) D->Dwn = 0; else D->Dwn = W->YWidth - 1; D->Y1 = Y1; D->Y2 = Y2; while (W) { if (W->Flags & WIDGETFL_NOTVISIBLE) return tfalse; HasTopBar = HasBorder = 0; if (!IS_WINDOW(W) || !(((window)W)->Attr & WINDOW_ROLLED_UP)) height = W->YWidth; else height = 1; if (Cycle++) { XL = W->XLogic; YL = W->YLogic; if (IS_SCREEN(W)) HasTopBar = 1; else if (IS_WINDOW(W) && !(((window)W)->Flags & WINDOWFL_BORDERLESS)) /* count border thickness */ HasBorder = 1; } else XL = YL = 0; D->Left += (ldat)W->Left - XL + HasBorder; D->Rgt += (ldat)W->Left - XL + HasBorder; D->X1 = Max2(D->X1 - XL, 0) + HasBorder + W->Left; D->X2 = Min2(D->X2 - XL + HasBorder, W->XWidth - 1 - HasBorder) + W->Left; D->Up += (ldat)W->Up - YL + HasBorder; D->Dwn += (ldat)W->Up - YL + HasBorder; D->Y1 = Max2(D->Y1 - YL, HasTopBar) + HasBorder + W->Up; D->Y2 = Min2(D->Y2 - YL + HasBorder, height - 1 - HasBorder) + W->Up; CC = C; C = W; W = W->Parent; } D->DWidth = All->DisplayWidth; D->DHeight = All->DisplayHeight; D->X1 = Max2(D->X1, 0); D->X2 = Min2(D->X2, D->DWidth - 1); D->Y1 = Max2(D->Y1, 0); D->Y2 = Min2(D->Y2, D->DHeight - 1); D->Screen = (screen)C; D->TopW = CC; if (D->W == CC) D->W = NULL; if (C && IS_SCREEN(C)) return D->X1 <= D->X2 && D->Y1 <= D->Y2; return tfalse; } /* * same as InitDrawCtx, but now X1,Y1,X2,Y2 are * absolute display coords. (0,0 is the display top-left corner) * return tfalse if given area is not visible */ byte InitAbsoluteDrawCtx(widget W, dat X1, dat Y1, dat X2, dat Y2, byte Shaded, draw_ctx *D) { if (InitDrawCtx(W, 0, 0, TW_MAXDAT, TW_MAXDAT, Shaded, D)) { D->X1 = Max2(D->X1, X1); D->X2 = Min2(D->X2, X2); D->Y1 = Max2(D->Y1, Y1); D->Y2 = Min2(D->Y2, Y2); return D->X1 <= D->X2 && D->Y1 <= D->Y2; } return tfalse; } /* * translate X,Y coords from `relative to W1' to `relative to W2'. * If W1 is NULL X,Y coords are taken as `absolute'. * If W2 is NULL X,Y coords are translated to `absolute'. * *Inside will be == tfalse if X,Y is outside W2, * == ttrue if inside, == ttrue+ttrue if on the border. */ void TranslateCoordsWidget(widget W1, widget W2, dat *X, dat *Y, byte *Inside) { draw_ctx D; if (W1 || W2) { if (W1) { InitDrawCtx(W1, 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse, &D); if (IS_WINDOW(W1) && !(((window)W1)->Flags & WINDOWFL_BORDERLESS)) { (*X)++, (*Y)++; } *X += D.Left; *Y += D.Up; } if (W2) { InitDrawCtx(W2, 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse, &D); if (Inside) { if (*X >= D.Left && *X <= D.Rgt && *Y >= D.Up && *Y <= D.Dwn) { *Inside = ttrue; if (IS_WINDOW(W2) && !(((window)W2)->Flags & WINDOWFL_BORDERLESS) && (*X == D.Left || *X == D.Rgt || *Y == D.Up || *Y == D.Dwn)) *Inside += ttrue; } else *Inside = tfalse; } if (IS_WINDOW(W2) && !(((window)W2)->Flags & WINDOWFL_BORDERLESS)) { (*X)--, (*Y)--; } *X -= D.Left; *Y -= D.Up; } } else *Inside = tfalse; } /* * find the widget at given coordinates inside Parent * --- (0,0) is the Parent top-left corner */ widget FindWidgetAt(widget Parent, dat X, dat Y) { widget W; ldat i, j; dat height; if (IS_WINDOW(Parent) && !(((window)Parent)->Flags & WINDOWFL_BORDERLESS)) X--, Y--; else if (IS_SCREEN(Parent) && Y <= 0) { /* got nothing, or the menu... */ return (widget)0; } for (W = Parent->FirstW; W; W = W->Next) { if (W->Flags & WIDGETFL_NOTVISIBLE) continue; i = X + Parent->XLogic; j = Y + Parent->YLogic; if (!IS_WINDOW(W) || !(((window)W)->Attr & WINDOW_ROLLED_UP)) height = W->YWidth; else height = 1; if ((ldat)W->Left <= i && (ldat)W->Left + W->XWidth > i && (ldat)W->Up <= j && (ldat)W->Up + height > j) return W; } return (widget)0; } widget RecursiveFindWidgetAt(widget Parent, dat X, dat Y) { widget W; byte HasBorder; while (Parent) { HasBorder = IS_WINDOW(Parent) && !(((window)Parent)->Flags & WINDOWFL_BORDERLESS); if (X >= HasBorder && Y >= HasBorder && X < Parent->XWidth - HasBorder && Y < Parent->YWidth - HasBorder && (W = Parent->FindWidgetAt(X, Y))) { X += Parent->XLogic - W->Left - HasBorder; Y += Parent->YLogic - W->Up - HasBorder; Parent = W; } else break; } return Parent; } void DrawSelfWidget(draw_ctx *D) { widget W = D->TopW; if (QueuedDrawArea2FullScreen || (W->Flags & WIDGETFL_NOTVISIBLE)) return; if (w_USE(W, USEEXPOSE)) { const char *Text = NULL; const trune *TRune = NULL; const tcell *TCell = NULL; ldat Left, Up, _X1, _X2, _Y1, _Y2; ldat Pitch, DWidth, i, j, v; /* (ldat) to avoid multiplication overflows */ dat X1, X2, Y1, Y2, dX, dY; tcell h; tcolor Color; byte Shaded; switch (W->USE.E.Flags) { case WIDGET_USEEXPOSE_TEXT: Text = W->USE.E.E.Text; break; case WIDGET_USEEXPOSE_TRUNE: TRune = W->USE.E.E.TRune; break; case WIDGET_USEEXPOSE_TCELL: TCell = W->USE.E.E.TCell; break; default: break; } Left = D->Left; Up = D->Up; X1 = D->X1; Y1 = D->Y1; X2 = D->X2; Y2 = D->Y2; Shaded = D->Shaded; DWidth = D->DWidth; #if 0 /* * this would suppress EXPOSE messages during resize (good) * but also clears the whole widget during non-top resize (bad) */ if ((All->State & state_any) == state_resize && (widget)All->FirstScreen->ClickWindow == W) { /* user is interactively resizing this window... pad with spaces */ FillVideo(X1, Y1, X2, Y2, W->USE_Fill); return; } #endif if (Text || TRune || TCell) { Pitch = W->USE.E.Pitch; _X1 = Max2(W->USE.E.X1 + Left, X1); _X2 = Min2(W->USE.E.X2 + Left, X2); _Y1 = Max2(W->USE.E.Y1 + Up, Y1); _Y2 = Min2(W->USE.E.Y2 + Up, Y2); dX = _X1 - W->USE.E.X1 - Left; dY = _Y1 - W->USE.E.Y1 - Up; h = W->USE_Fill; if (_X1 > _X2 || _Y1 > _Y2) { /* no valid ->USE.E, fill with spaces */ FillVideo(X1, Y1, X2, Y2, h); return; } DirtyVideo(X1, Y1, X2, Y2); /* * check if the ->USE.E is smaller than the widget size... * pad with SPACEs as needed */ if (Y1 < _Y1) { FillVideo(X1, Y1, X2, _Y1 - 1, h); Y1 = _Y1; } if (Y2 > _Y2) { FillVideo(X1, _Y2 + 1, X2, Y2, h); Y2 = _Y2; } if (X1 < _X1) { FillVideo(X1, Y1, _X1 - 1, Y2, h); X1 = _X1; } if (X2 > _X2) { FillVideo(_X2 + 1, Y1, X2, Y2, h); X2 = _X2; } if (Text) { Color = TCOLOR(W->USE_Fill); if (Shaded) Color = DoShadowColor(Color, Shaded, Shaded); Text += dY * Pitch; for (j = Y1; j <= Y2; j++) { Text += dX; for (i = X1, v = 0; i <= X2; i++, v++) Video[i + j * (ldat)DWidth] = TCELL(Color, Text[v]); Text += Pitch - dX; } } else if (TRune) { Color = TCOLOR(W->USE_Fill); if (Shaded) Color = DoShadowColor(Color, Shaded, Shaded); TRune += dY * Pitch; for (j = Y1; j <= Y2; j++) { TRune += dX; for (i = X1, v = 0; i <= X2; i++, v++) Video[i + j * (ldat)DWidth] = TCELL(Color, TRune[v]); TRune += Pitch - dX; } } else if (TCell && !Shaded) { TCell += dX + dY * Pitch; for (j = Y1; j <= Y2; j++) { CopyMem(TCell, &Video[X1 + j * (ldat)DWidth], (uldat)sizeof(tcell) * (X2 - X1 + 1)); TCell += Pitch; } } else if (TCell) { /* Shaded == ttrue */ TCell += dY * Pitch; for (j = Y1; j <= Y2; j++) { TCell += dX; for (i = X1, v = 0; i <= X2; i++, v++) { Color = DoShadowColor(TCOLOR(TCell[v]), Shaded, Shaded); Video[i + j * (ldat)DWidth] = TCELL(Color, 0) | TCELL_FONTMASK(TCell[v]); } TCell += Pitch - dX; } } } else { /* ask the client to draw */ msg Msg; event_widget *EventW; if ((Msg = New(msg)(msg_widget_change, 0))) { EventW = &Msg->Event.EventWidget; EventW->W = W; EventW->Code = MSG_WIDGET_EXPOSE; EventW->Flags = Shaded ? MSG_WIDGETFL_SHADED : 0; EventW->XWidth = X2 - X1 + 1; EventW->YWidth = Y2 - Y1 + 1; EventW->X = X1 - Left; EventW->Y = Y1 - Up; SendMsg(W->Owner, Msg); } } } else FillVideo(D->X1, D->Y1, D->X2, D->Y2, W->USE_Fill); } void DrawSelfGadget(draw_ctx *D) { gadget G = (gadget)D->TopW; if (QueuedDrawArea2FullScreen || (G->Flags & WIDGETFL_NOTVISIBLE)) return; if (!G_USE(G, USETEXT)) { G->Fn->Fn_Widget->DrawSelf(D); return; } { ldat width, DWidth, Offset; /* (ldat) to avoid multiplication overflows */ dat i, i_min, i_max, j, j_min, j_max; byte Select, Disabled, Absent; trune Font, *Text, **GadgetText; tcolor *ColText, **GadgetColor; tcolor Color; Select = !!(G->Flags & GADGETFL_PRESSED); Disabled = !!(G->Flags & GADGETFL_DISABLED); Absent = !!(G->Flags & GADGETFL_TEXT_DEFCOL); i_min = D->X1 - D->Left; i_max = D->X2 - D->Left; j_min = D->Y1 - D->Up; j_max = D->Y2 - D->Up; width = G->XWidth; DWidth = D->DWidth; Offset = D->Left + D->Up * (ldat)DWidth; GadgetText = G->USE.T.Text; GadgetColor = G->USE.T.Color; Text = Select ? Disabled && GadgetText[3] ? GadgetText[3] : GadgetText[1] ? GadgetText[1] : GadgetText[0] : Disabled && GadgetText[2] ? GadgetText[2] : GadgetText[0]; if (!Text) Font = ' '; ColText = Absent ? NULL : Select ? Disabled && GadgetColor[3] ? GadgetColor[3] : GadgetColor[1] ? GadgetColor[1] : GadgetColor[0] : Disabled && GadgetColor[2] ? GadgetColor[2] : GadgetColor[0]; if (!ColText) { Absent = ttrue; Color = Select ? Disabled ? G->ColSelectDisabled : G->ColSelect : Disabled ? G->ColDisabled : G->ColText; Color = DoShadowColor(Color, D->Shaded, D->Shaded); } for (j = j_min; j <= j_max; j++) { for (i = i_min; i <= i_max; i++) { if (Text) Font = Text[i + j * width]; if (!Absent) Color = DoShadowColor(ColText[i + j * width], D->Shaded, D->Shaded); Video[i + j * (ldat)DWidth + Offset] = TCELL(Color, Font); } } DirtyVideo(D->X1, D->Y1, D->X2, D->Y2); } } static void DrawSelfBorder(window W, ldat Left, ldat Up, ldat Rgt, ldat Dwn, dat X1, dat Y1, dat X2, dat Y2, byte Border, byte WinActive, byte Shaded) { ldat i, j, u, v, DWidth = All->DisplayWidth; /* (ldat) to avoid multiplication overflows */ tcell Attr; tcolor Color; if (QueuedDrawArea2FullScreen || (W->Flags & WIDGETFL_NOTVISIBLE)) return; if ((ldat)Y1 == Up) { j = Y1 * (ldat)DWidth; for (i = X1, u = i - Left; i <= X2; i++, u++) { W->FindBorder(u, 0, Border, &Attr); Color = DoShadowColor(TCOLOR(Attr), Shaded || !WinActive, Shaded); Video[i + j] = TCELL(Color, 0) | (Attr & ~TCELL(TW_MAXWCOL, 0)); } DirtyVideo(X1, Y1, X2, Y1); Y1++; if (Y1 > Y2) return; } if ((ldat)Y2 == Dwn) { v = (ldat)Y2 - Up; j = Y2 * (ldat)DWidth; for (i = X1, u = i - Left; i <= X2; i++, u++) { W->FindBorder(u, v, Border, &Attr); Color = DoShadowColor(TCOLOR(Attr), Shaded || !WinActive, Shaded); Video[i + j] = TCELL(Color, 0) | (Attr & ~TCELL(TW_MAXWCOL, 0)); } DirtyVideo(X1, Y2, X2, Y2); Y2--; if (Y1 > Y2) return; } if ((ldat)X1 == Left) { for (j = Y1, v = j - Up; j <= Y2; j++, v++) { W->FindBorder(0, v, Border, &Attr); Color = DoShadowColor(TCOLOR(Attr), Shaded || !WinActive, Shaded); Video[X1 + j * (ldat)DWidth] = TCELL(Color, 0) | (Attr & ~TCELL(TW_MAXWCOL, 0)); } DirtyVideo(X1, Y1, X1, Y2); X1++; if (X1 > X2) return; } if ((ldat)X2 == Rgt) { u = (ldat)X2 - Left; for (j = Y1, v = j - Up; j <= Y2; j++, v++) { W->FindBorder(u, v, Border, &Attr); Color = DoShadowColor(TCOLOR(Attr), Shaded || !WinActive, Shaded); Video[X2 + j * (ldat)DWidth] = TCELL(Color, 0) | (Attr & ~TCELL(TW_MAXWCOL, 0)); } DirtyVideo(X2, Y1, X2, Y2); X2--; if (X1 > X2) return; } } void DrawSelfWindow(draw_ctx *D) { window W = (window)D->TopW; if (QueuedDrawArea2FullScreen || (W->Flags & WIDGETFL_NOTVISIBLE)) return; if (!W_USE(W, USEROWS) && !W_USE(W, USECONTENTS)) { W->Fn->Fn_Widget->DrawSelf(D); return; } { const tcell *Contents, *CurrCont; const trune *TRune; tcolor *ColText; ldat Left, Up, Rgt; ldat DWidth, i, j, u, v; /* (ldat) to avoid multiplication overflows */ ldat Row, PosInRow; trune Font; row CurrRow; dat X1, Y1, X2, Y2; byte Shaded, Absent; byte Select, RowDisabled; tcolor Color; X1 = D->X1; Y1 = D->Y1; X2 = D->X2; Y2 = D->Y2; Left = D->Left; Up = D->Up; Rgt = D->Rgt; Shaded = D->Shaded; DWidth = D->DWidth; /* not here... already done in DrawWCtx() */ /* * Left -= W->XLogic; Rgt -= W->XLogic; * Up -= W->YLogic; Dwn -= W->YLogic; */ if (W_USE(W, USECONTENTS) && (Contents = W->USE.C.Contents)) { /* * For xterm-like windows, Contents is a buffer of (x=WLogic) * (y=HLogic) * tcell:s, in the same format as Video: TCELL(Color, Ascii). * Room in excess is used as scrollback. * * To avoid frequent mem-mem copies, VGA-like splitline method is used: * USE.C.Split is the first used line of Contents, and after the end * of Contents we restart from zero. * * HLogic also has the usual meaning: * number of total lines (visible + scrollback) */ if (Y2 - Up >= W->HLogic) { /* the ->Contents buffer is smaller than the window size... pad with SPACEs */ dat Ynew = Up + W->HLogic; FillVideo(X1, Ynew, X2, Y2, TCELL(W->ColText, ' ')); Y2 = Ynew - 1; } if (X2 - Left >= W->WLogic) { /* the ->Contents buffer is smaller than the window size... pad with SPACEs */ dat Xnew = Left + W->WLogic; FillVideo(Xnew, Y1, X2, Y2, TCELL(W->ColText, ' ')); X2 = Xnew - 1; } if (X1 <= X2 && Y1 <= Y2) { Row = Y1 - Up + W->USE.C.HSplit; /* row number in Contents */ if (Row >= W->HLogic) Row -= W->HLogic; CurrCont = Contents + Row * W->WLogic; Row = W->HLogic - 1 - Row; /* rows still readable */ if (!Shaded) { for (j = Y1, u = Y1 - Up; j <= Y2; j++, u++, Row--) { if (!(W->State & WINDOW_DO_SEL) || u < W->YstSel || u > W->YendSel) { CopyMem(CurrCont + X1 - Left, &Video[X1 + j * (ldat)DWidth], sizeof(tcell) * (X2 - X1 + 1)); } else { for (i = X1, v = X1 - Left; i <= X2; i++, v++) { Select = (W->State & WINDOW_DO_SEL) && ((u > W->YstSel || (u == W->YstSel && v >= W->XstSel)) && (u < W->YendSel || (u == W->YendSel && v <= W->XendSel))); if (Select) Color = W->ColSelect; else Color = TCOLOR(CurrCont[v]); Video[i + j * (ldat)DWidth] = TCELL(Color, TRUNEEXTRA(CurrCont[v])); } } CurrCont += W->WLogic; if (!Row) CurrCont -= (Row = W->HLogic) * W->WLogic; } } else { for (j = Y1, u = Y1 - Up; j <= Y2; j++, u++, Row--) { for (i = X1, v = X1 - Left; i <= X2; i++, v++) { Select = (W->State & WINDOW_DO_SEL) && ((u > W->YstSel || (u == W->YstSel && v >= W->XstSel)) && (u < W->YendSel || (u == W->YendSel && v <= W->XendSel))); if (Select) Color = W->ColSelect; else Color = TCOLOR(CurrCont[v]); Color = DoShadowColor(Color, Shaded, Shaded); Video[i + j * (ldat)DWidth] = TCELL(Color, TRUNEEXTRA(CurrCont[v])); } CurrCont += W->WLogic; if (!Row) CurrCont -= (Row = W->HLogic) * W->WLogic; } } DirtyVideo(X1, Y1, X2, Y2); } } else if (W_USE(W, USEROWS) && W->USE.R.FirstRow) { /* * editor-like windows. no length limit in the rows and in XLogic. */ Row = Y1 - Up; if (Row >= W->HLogic) CurrRow = (row)0; else if (W->USE.R.NumRowSplit && W->USE.R.RowSplit && Row == W->USE.R.NumRowSplit) CurrRow = W->USE.R.RowSplit; else if (W->USE.R.NumRowSplit && W->USE.R.RowSplit && W->USE.R.RowSplit->Next && Row == W->USE.R.NumRowSplit + (ldat)1) CurrRow = W->USE.R.RowSplit->Next; else if (W->USE.R.NumRowOne && W->USE.R.RowOne && Row == W->USE.R.NumRowOne) CurrRow = W->USE.R.RowOne; else if (Row == (ldat)0) CurrRow = W->USE.R.FirstRow; else if (Row + (ldat)1 == W->HLogic) CurrRow = W->USE.R.LastRow; else CurrRow = W->FindRow(Row); for (j = Y1; j <= Y2; j++, Row++) { RowDisabled = (W->Flags & WINDOWFL_DISABLED) || (CurrRow && !(CurrRow->Flags & (ROW_ACTIVE | ROW_IGNORE))); if (CurrRow) { TRune = CurrRow->Text; ColText = CurrRow->ColText; } PosInRow = X1 - Left; if (CurrRow && PosInRow >= 0 && (uldat)PosInRow >= CurrRow->Gap) PosInRow += CurrRow->LenGap; for (i = X1; i <= X2; i++, PosInRow++) { Absent = !CurrRow || (PosInRow >= 0 && (uldat)PosInRow >= CurrRow->Len); if (CurrRow && IS_MENUITEM(CurrRow) && ((menuitem)CurrRow)->Window && i == Rgt) { Font = T_UTF_32_BLACK_RIGHT_POINTING_TRIANGLE; } else if (Absent) Font = ' '; else Font = TRune[PosInRow]; if (W->Flags & WINDOWFL_ROWS_SELCURRENT) Select = Row == W->CurY; else { Select = (W->State & WINDOW_DO_SEL) && ((Row > W->YstSel || (Row == W->YstSel && PosInRow >= W->XstSel)) && (Row < W->YendSel || (Row == W->YendSel && PosInRow <= W->XendSel))); } if (CurrRow) Select &= !(CurrRow->Flags & ROW_IGNORE); if (Select) Color = RowDisabled ? W->ColSelectDisabled : W->ColSelect; else if (RowDisabled) Color = W->ColDisabled; else if ((W->Flags & WINDOWFL_ROWS_DEFCOL) || Absent) Color = W->ColText; else Color = ColText[PosInRow]; Color = DoShadowColor(Color, Shaded, Shaded); Video[i + j * (ldat)DWidth] = TCELL(Color, Font); } if (CurrRow) { W->USE.R.RowSplit = CurrRow; W->USE.R.NumRowSplit = Row; CurrRow = CurrRow->Next; } } DirtyVideo(X1, Y1, X2, Y2); } else { /* either an unknown window type or just one of the above, but empty */ Color = W->ColText; Color = DoShadowColor(Color, Shaded, Shaded); FillVideo(X1, Y1, X2, Y2, TCELL(Color, ' ')); } } } void DrawSelfScreen(draw_ctx *D) { /* should never be called */ printk("twin: DrawSelfScreen() called! This is not good...\n"); } static void _DrawWCtx_(draw_ctx **FirstD, widget W, widget ChildNext, widget OnlyChild, ldat Left, ldat Up, ldat Rgt, ldat Dwn, dat X1, dat Y1, dat X2, dat Y2, byte NoChildren, byte BorderDone, byte Shaded, errnum *lError) { draw_ctx *D; if (!QueuedDrawArea2FullScreen) { if ((D = (draw_ctx *)AllocMem(sizeof(draw_ctx)))) { D->TopW = W; D->W = ChildNext; D->OnlyW = OnlyChild; D->Screen = (screen)0; D->X1 = X1; D->Y1 = Y1; D->X2 = X2; D->Y2 = Y2; D->Left = Left; D->Up = Up; D->Rgt = Rgt; D->Dwn = Dwn; D->DWidth = All->DisplayWidth; D->DHeight = All->DisplayHeight; D->NoChildren = NoChildren; D->BorderDone = BorderDone; D->Shaded = Shaded; D->Next = *FirstD; *FirstD = D; } else { DrawDesktop((screen)0, X1, Y1, X2, Y2, Shaded); *lError = NOMEMORY; } } } static void DrawWCtx(draw_ctx *D) { draw_ctx *FirstD = D; widget w; widget OnlyChild, ChildNext; window Window; ldat Left, Up, Rgt, Dwn; dat X1, Y1, X2, Y2; ldat cL, cU, cR, cD; dat DWidth, DHeight; errnum lError = SUCCESS; byte Shaded, Border, WinActive, NoChildren; byte ChildFound = tfalse, FirstCycle = ttrue; if (QueuedDrawArea2FullScreen) return; do { w = D->TopW; ChildNext = D->W; OnlyChild = D->OnlyW; X1 = D->X1; Y1 = D->Y1; X2 = D->X2; Y2 = D->Y2; Left = D->Left; Up = D->Up; Rgt = D->Rgt; Dwn = D->Dwn; DWidth = D->DWidth; DHeight = D->DHeight; Shaded = D->Shaded; NoChildren = D->NoChildren; if (OnlyChild == w) /* got it */ OnlyChild = NULL; #ifdef DEBUG_DRAW FillVideo(X1, Y1, X2, Y2, TCELL(TCOL(twhite, tyellow), ' ')); FlushHW(); usleep(300000); FillVideo(X1, Y1, X2, Y2, TCELL(TCOL(twhite, tblack), ' ')); #endif FirstD = D->Next; /* take care of borders and XLogic,YLogic */ if (!D->BorderDone) { D->BorderDone = ttrue; if (IS_WINDOW(w) && !((Window = (window)w)->Flags & WINDOWFL_BORDERLESS)) { if (!OnlyChild) { WinActive = Window == (window)All->FirstScreen->FocusW || Window == All->FirstScreen->MenuWindow; Border = (Window->Flags & WINDOWFL_MENU) || !WinActive; DrawSelfBorder(Window, Left, Up, Rgt, Dwn, X1, Y1, X2, Y2, Border, WinActive, Shaded); } if ((ldat)X1 == Left++) X1++; if ((ldat)X2 == Rgt--) X2--; if ((ldat)Y1 == Up++) Y1++; if ((ldat)Y2 == Dwn--) Y2--; D->X1 = X1; D->Y1 = Y1; D->X2 = X2; D->Y2 = Y2; } /* * track displacement between real display coordinates * and widget interior coordinates. */ D->Left = Left -= w->XLogic; D->Up = Up -= w->YLogic; D->Rgt = Rgt -= w->XLogic; D->Dwn = Dwn -= w->YLogic; } if (X1 > X2 || Y1 > Y2 || X1 >= DWidth || Y1 >= DHeight || X2 < 0 || Y2 < 0) { if (!FirstCycle) FreeMem(D); else FirstCycle = tfalse; continue; } ChildFound = tfalse; if (NoChildren) ChildNext = NULL; else { if (!ChildNext) ChildNext = w->FirstW; if (!NoChildren && ChildNext) { while (ChildNext && !ChildFound) { cL = Left + ChildNext->Left; cR = cL + ChildNext->XWidth - 1; cU = Up + ChildNext->Up; cD = cU + ChildNext->YWidth - 1; if (cL > X2 || cU > Y2 || cR < X1 || cD < Y1 || (ChildNext->Flags & WIDGETFL_NOTVISIBLE)) ChildNext = ChildNext->Next; else ChildFound = ttrue; } } if (!ChildNext) NoChildren = ttrue; } if (!ChildFound) { /* no children... draw this widget */ w->DrawSelf(D); } if (!FirstCycle) FreeMem(D); else FirstCycle = tfalse; if (ChildFound) { /* recursively draw the area below ChildNext */ if (Y2 > cD) { _DrawWCtx_(&FirstD, w, ChildNext, OnlyChild, Left, Up, Rgt, Dwn, X1, cD + 1, X2, Y2, NoChildren, ttrue, Shaded, &lError); Y2 = cD; } /* recursively draw the area right of ChildNext */ if (X2 > cR) { _DrawWCtx_(&FirstD, w, ChildNext, OnlyChild, Left, Up, Rgt, Dwn, cR + 1, Y1, X2, Y2, NoChildren, ttrue, Shaded, &lError); X2 = cR; } /* recursively draw the area left of ChildNext */ if (X1 < cL) { _DrawWCtx_(&FirstD, w, ChildNext, OnlyChild, Left, Up, Rgt, Dwn, X1, Y1, cL - 1, Y2, NoChildren, ttrue, Shaded, &lError); X1 = cL; } /* recursively draw the area above ChildNext */ if (Y1 < cU) { _DrawWCtx_(&FirstD, w, ChildNext, OnlyChild, Left, Up, Rgt, Dwn, X1, Y1, X2, cU - 1, NoChildren, ttrue, Shaded, &lError); Y1 = cU; } /* ok, now actually draw ChildNext */ if (X1 <= X2 && Y1 <= Y2) { _DrawWCtx_(&FirstD, ChildNext, NULL, OnlyChild, cL, cU, cR, cD, X1, Y1, X2, Y2, tfalse, tfalse, Shaded, &lError); } } } while ((D = FirstD)); if (lError) Error(lError); } /* * this ASSUMES the specified part of the widget is unobscured */ void DrawWidget(widget W, dat X1, dat Y1, dat X2, dat Y2, byte Shaded) { draw_ctx D; if (!QueuedDrawArea2FullScreen && W && InitAbsoluteDrawCtx(W, X1, Y1, X2, Y2, Shaded, &D)) { D.TopW = W; D.W = D.OnlyW = NULL; DrawWCtx(&D); } } static void DrawAreaCtx(draw_ctx *D); /* * this DOES NOT assume that the specified part of the widget is unobscured */ /* partially replaces DrawAreaWindow() -- does not redraw shadow */ void DrawAreaWidget(widget W) { draw_ctx D; if (!QueuedDrawArea2FullScreen && W && InitAbsoluteDrawCtx(W, 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse, &D)) { D.TopW = D.W = D.OnlyW = NULL; DrawAreaCtx(&D); } } static void _DrawAreaCtx_(draw_ctx **FirstD, screen Screen, widget W, widget OnlyW, dat X1, dat Y1, dat X2, dat Y2, byte Shaded, errnum *lError) { draw_ctx *D; if (!QueuedDrawArea2FullScreen) { if ((D = (draw_ctx *)AllocMem(sizeof(draw_ctx)))) { D->TopW = W; D->W = OnlyW; D->Screen = Screen; D->Left = D->X1 = X1; D->Up = D->Y1 = Y1; D->Rgt = D->X2 = X2; D->Dwn = D->Y2 = Y2; D->DWidth = All->DisplayWidth; D->DHeight = All->DisplayHeight; D->Shaded = Shaded; D->Next = *FirstD; *FirstD = D; } else { DrawDesktop((screen)0, X1, Y1, X2, Y2, Shaded); *lError = NOMEMORY; } } } window WindowParent(widget W) { if (W) do { if (IS_WINDOW(W)) return (window)W; } while ((W = W->Parent)); return (window)0; } screen ScreenParent(widget W) { if (W) do { if (IS_SCREEN(W)) return (screen)W; } while ((W = W->Parent)); return (screen)0; } widget NonScreenParent(widget W) { if (W) while (W->Parent) { if (IS_SCREEN(W->Parent)) return W; W = W->Parent; } return W; } window FindCursorWindow(void) { widget P, W; if (!(P = All->FirstScreen->FocusW)) P = (widget)All->FirstScreen->MenuWindow; if (P) while ((W = P->SelectW)) P = W; return WindowParent(P); } byte ContainsCursor(widget W) { widget C = (widget)FindCursorWindow(); while (C) { if (C == W) return ttrue; C = C->Parent; } return tfalse; } static void DrawAreaCtx(draw_ctx *D) { draw_ctx *FirstD = D; screen FirstScreen, Screen; widget W, OnlyW, TopOnlyW, NextW; setup *SetUp; ldat DWidth, DHeight, YLimit; ldat shLeft = 0, shUp = 0, shRgt = 0, shDwn = 0; /* position of Horizontal Shadow */ ldat HS_X1, HS_X2, HS_Y1, S_Y2; /* position of Vertical Shadow */ ldat VS_X1, VS_X2, VS_Y1; dat Left, Up, Rgt, Dwn; dat X1, Y1, X2, Y2; errnum lError = SUCCESS; byte WidgetFound, Shade, FirstCycle = ttrue; byte DeltaXShade, DeltaYShade; byte Shaded; if (QueuedDrawArea2FullScreen) return; SetUp = All->SetUp; do { W = D->TopW; OnlyW = D->W; FirstScreen = D->Screen; X1 = D->X1; Y1 = D->Y1; X2 = D->X2; Y2 = D->Y2; DWidth = D->DWidth; DHeight = D->DHeight; Shaded = D->Shaded; FirstD = D->Next; if (!FirstCycle) FreeMem(D); else FirstCycle = tfalse; if (X1 > X2 || Y1 > Y2 || X1 >= DWidth || Y1 >= DHeight || X2 < 0 || Y2 < 0) continue; X1 = Max2(X1, 0); Y1 = Max2(Y1, 0); X2 = Min2(X2, DWidth - 1); Y2 = Min2(Y2, DHeight - 1); if (W) { if (IS_SCREEN(W->Parent)) FirstScreen = (screen)W->Parent; else continue; } if (!FirstScreen) FirstScreen = All->FirstScreen; /* calculate visible part of this screen */ for (Screen = All->FirstScreen; Screen && Screen != FirstScreen; Screen = Screen->Next) { YLimit = Screen->YLimit; if (Y2 >= YLimit) Y2 = YLimit - 1; } if (Y1 > Y2) continue; Screen = FirstScreen->Next; YLimit = FirstScreen->YLimit; /* FIXED +1 */ if (!OnlyW || (OnlyW && ScreenParent(OnlyW->Parent) != FirstScreen)) { if (Y1 < YLimit) { if (Screen) _DrawAreaCtx_(&FirstD, Screen, W, OnlyW, X1, Y1, X2, Min2(Y2, YLimit - 1), Shaded, &lError); else if (!OnlyW) DrawDesktop((screen)0, X1, Y1, X2, Y2, Shaded); } if (OnlyW) continue; } if (Y2 < YLimit) continue; if (Y1 < YLimit) Y1 = YLimit; if (!W) { W = FirstScreen->FirstW; if (Y1 == YLimit && !OnlyW) { FirstScreen->DrawMenu(X1, X2); if (++Y1 > Y2) continue; } } Shade = (SetUp->Flags & setup_shadows) && !Shaded; DeltaXShade = Shade ? SetUp->DeltaXShade : (byte)0; DeltaYShade = Shade ? SetUp->DeltaYShade : (byte)0; WidgetFound = tfalse; while (W && !WidgetFound) { if (W->Flags & WIDGETFL_NOTVISIBLE) { W = W->Next; continue; } shLeft = (ldat)W->Left + (ldat)FirstScreen->dummyLeft - FirstScreen->XLogic; shUp = (ldat)W->Up + (ldat)YLimit - FirstScreen->YLogic; shRgt = shLeft + (ldat)W->XWidth - 1; shDwn = shUp + (IS_WINDOW(W) && (((window)W)->Attr & WINDOW_ROLLED_UP) ? 0 : (ldat)W->YWidth - 1); if (Shade && IS_WINDOW(W)) { /* only windows have shadows */ HS_X1 = Max2(shLeft + (ldat)DeltaXShade, (ldat)X1); HS_X2 = Min2(shRgt, (ldat)X2); HS_Y1 = Max2(shUp + (ldat)DeltaYShade, shDwn + (ldat)1); HS_Y1 = Max2(HS_Y1, (ldat)Y1); S_Y2 = Min2(shDwn + (ldat)DeltaYShade, (ldat)Y2); VS_X1 = Max2(shLeft + (ldat)DeltaXShade, shRgt + (ldat)1); VS_X1 = Max2(VS_X1, (ldat)X1); VS_X2 = Min2(shRgt + (ldat)DeltaXShade, (ldat)X2); VS_Y1 = Max2(shUp + (ldat)DeltaYShade, (ldat)Y1); } if (shLeft <= (ldat)X2 && shRgt >= (ldat)X1 && shUp <= (ldat)Y2 && shDwn >= (ldat)Y1) WidgetFound = ttrue; else if (Shade && IS_WINDOW(W) && ((HS_X1 <= HS_X2 && HS_Y1 <= S_Y2) || (VS_X1 <= VS_X2 && VS_Y1 <= S_Y2))) WidgetFound = ttrue + ttrue; else W = W->Next; } /* again, only windows have shadows */ if (W && !IS_WINDOW(W)) { Shade = tfalse; DeltaXShade = DeltaYShade = (byte)0; } if (!WidgetFound && !OnlyW) { DrawDesktop(FirstScreen, X1, Y1, X2, Y2, Shaded); continue; } TopOnlyW = OnlyW ? NonScreenParent(OnlyW) : NULL; if (WidgetFound == ttrue && (!OnlyW || TopOnlyW == W)) { draw_ctx *FD = NULL; _DrawWCtx_(&FD, W, NULL, OnlyW, shLeft, shUp, shRgt, shDwn, Max2(X1, shLeft), Max2(Y1, shUp), Min2(X2, shRgt), Min2(Y2, shDwn), tfalse, tfalse, Shaded, &lError); if (FD) { DrawWCtx(FD); FreeMem(FD); } } /* Draw the window's shadow : */ NextW = W ? W->Next : W; if (WidgetFound && Shade && TopOnlyW != W) { if (HS_X1 <= HS_X2 && HS_Y1 <= S_Y2) { if (NextW) _DrawAreaCtx_(&FirstD, (screen)0, NextW, OnlyW, (dat)HS_X1, (dat)HS_Y1, (dat)HS_X2, (dat)S_Y2, ttrue, &lError); else DrawDesktop(FirstScreen, (dat)HS_X1, (dat)HS_Y1, (dat)HS_X2, (dat)S_Y2, ttrue); } if (VS_X1 <= VS_X2 && VS_Y1 <= S_Y2) { if (NextW) _DrawAreaCtx_(&FirstD, (screen)0, NextW, OnlyW, (dat)VS_X1, (dat)VS_Y1, (dat)VS_X2, (dat)S_Y2, ttrue, &lError); else DrawDesktop(FirstScreen, (dat)VS_X1, (dat)VS_Y1, (dat)VS_X2, (dat)S_Y2, ttrue); } } if (TopOnlyW == W || (TopOnlyW && !NextW)) continue; /* Draw the visible area below the window : */ if (shDwn + (ldat)DeltaYShade < (ldat)Y2) { Dwn = (dat)shDwn + (dat)DeltaYShade; if (NextW) _DrawAreaCtx_(&FirstD, (screen)0, NextW, OnlyW, X1, Dwn + (dat)1, X2, Y2, Shaded, &lError); else DrawDesktop(FirstScreen, X1, Dwn + (dat)1, X2, Y2, Shaded); } else Dwn = Y2; /* Draw the visible area right of the window : */ if (shRgt + (ldat)DeltaXShade < (ldat)X2) { Rgt = (dat)shRgt + (dat)DeltaXShade; if (NextW) _DrawAreaCtx_(&FirstD, (screen)0, NextW, OnlyW, Rgt + (dat)1, Y1, X2, Dwn, Shaded, &lError); else DrawDesktop(FirstScreen, Rgt + (dat)1, Y1, X2, Dwn, Shaded); } else Rgt = X2; /* Draw the visible area left of the window : */ if (shLeft > (ldat)X1) { Left = (dat)shLeft; if (NextW) _DrawAreaCtx_(&FirstD, (screen)0, NextW, OnlyW, X1, Y1, Left - (dat)1, Dwn, Shaded, &lError); else DrawDesktop(FirstScreen, X1, Y1, Left - (dat)1, Dwn, Shaded); } else Left = X1; /* Draw the visible area above the window : */ if (shUp > (ldat)Y1) { Up = (dat)shUp; if (NextW) _DrawAreaCtx_(&FirstD, (screen)0, NextW, OnlyW, Left, Y1, Rgt, Up - (dat)1, Shaded, &lError); else DrawDesktop(FirstScreen, Left, Y1, Rgt, Up - (dat)1, Shaded); } else Up = Y1; if (Shade) { ldat X_1, Y_1, X_2, Y_2; X_1 = Max2(shLeft, (ldat)X1); X_2 = Min2(shLeft + (ldat)DeltaXShade - (ldat)1, (ldat)X2); Y_1 = Max2(shDwn + (ldat)1, (ldat)Y1); Y_2 = Min2(shDwn + (ldat)DeltaYShade, (ldat)Y2); /* Draw the visible area below the window, left of the shadow : */ if (X_1 <= X_2 && Y_1 <= Y_2) { if (NextW) _DrawAreaCtx_(&FirstD, (screen)0, NextW, OnlyW, (dat)X_1, (dat)Y_1, (dat)X_2, (dat)Y_2, Shaded, &lError); else DrawDesktop(FirstScreen, (dat)X_1, (dat)Y_1, (dat)X_2, (dat)Y_2, Shaded); } /* Draw the visible area right of the window, above the shadow : */ X_1 = Max2(shRgt + (ldat)1, (ldat)X1); X_2 = Min2(shRgt + (ldat)DeltaXShade, (ldat)X2); Y_1 = Max2(shUp, (ldat)Y1); Y_2 = Min2(shUp + (ldat)DeltaYShade - (ldat)1, shDwn); Y_2 = Min2(Y_2, (ldat)Y2); if (X_1 <= X_2 && Y_1 <= Y2) { if (NextW) _DrawAreaCtx_(&FirstD, (screen)0, NextW, OnlyW, (dat)X_1, (dat)Y_1, (dat)X_2, (dat)Y_2, Shaded, &lError); else DrawDesktop(FirstScreen, (dat)X_1, (dat)Y_1, (dat)X_2, (dat)Y_2, Shaded); } /* Draw the visible area between the window and a floating shadow : */ if (shLeft + (ldat)DeltaXShade > shRgt + (ldat)1 || shUp + (ldat)DeltaYShade > shDwn + (ldat)1) { if (shUp + (ldat)DeltaYShade <= shDwn + (ldat)1) { /* * the shadow is like * * +--+BBBBBB * | |CC+--+ * +--+CC| | * AAAAAA+--+ * * parts A and B are already drawn, now draw C */ X_1 = Max2(shRgt + (ldat)1, (ldat)X1); X_2 = Min2(shLeft + (ldat)DeltaXShade - (ldat)1, (ldat)X2); Y_1 = Max2(shUp + (ldat)DeltaYShade, (ldat)Y1); Y_2 = Min2(shDwn, (ldat)Y2); } else { /* * the shadow is like * * +--+BBB +--+BBBBB * | |BBB | |BBBBB * +--+BBB +--+BBBBB * AAACCCC or AAAAACCCC * AAA+--+ AAAAA+--+ * AAA| | AAAAA| | * AAA+--+ AAAAA+--+ * * and we now draw C */ X_1 = Max2(shLeft + (ldat)DeltaXShade, (ldat)X1); X_2 = Min2(shRgt + (ldat)DeltaXShade, (ldat)X2); Y_1 = Max2(shDwn + (ldat)1, (ldat)Y1); Y_2 = Min2(shUp + (ldat)DeltaYShade - (ldat)1, (ldat)Y2); } if (X_1 <= X_2 && Y_1 <= Y2) { if (NextW) _DrawAreaCtx_(&FirstD, (screen)0, NextW, OnlyW, (dat)X_1, (dat)Y_1, (dat)X_2, (dat)Y_2, Shaded, &lError); else DrawDesktop(FirstScreen, (dat)X_1, (dat)Y_1, (dat)X_2, (dat)Y_2, Shaded); } } } } while ((D = FirstD)); if (lError) Error(lError); } void DrawArea2(screen FirstScreen, widget W, widget OnlyW, dat X1, dat Y1, dat X2, dat Y2, byte Shaded) { draw_ctx D; if (QueuedDrawArea2FullScreen) return; D.DWidth = All->DisplayWidth; D.DHeight = All->DisplayHeight; D.X1 = Max2(X1, 0); D.Y1 = Max2(Y1, 0); D.X2 = Min2(X2, D.DWidth - 1); D.Y2 = Min2(Y2, D.DHeight - 1); if (D.X1 <= D.X2 && D.Y1 <= D.Y2) { D.Next = (draw_ctx *)0; D.W = OnlyW; D.TopW = W; D.Screen = FirstScreen; D.Shaded = Shaded; DrawAreaCtx(&D); } } void DrawBorderWindow(window W, byte Flags) { ldat shLeft, shUp, shRgt, shDwn; dat Left, Up, Rgt, Dwn; dat DWidth, DHeight; dat YLimit; widget FirstW; widget Parent; screen Screen, FirstScreen; if (QueuedDrawArea2FullScreen || !W || (W->Flags & (WINDOWFL_BORDERLESS | WINDOWFL_NOTVISIBLE)) || !(Parent = W->Parent) || !IS_SCREEN(Parent)) return; Screen = (screen)Parent; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; YLimit = Screen->YLimit; /* FIXED +1 */ shUp = (ldat)W->Up - Screen->YLogic + (ldat)YLimit; shLeft = (ldat)W->Left - Screen->XLogic; shRgt = shLeft + (ldat)W->XWidth - (ldat)1; shDwn = shUp + (W->Attr & WINDOW_ROLLED_UP ? 0 : (ldat)W->YWidth - (ldat)1); if (shLeft >= (ldat)DWidth || shUp >= (ldat)DHeight || shRgt < (ldat)0 || shDwn <= (ldat)YLimit) return; FirstScreen = Screen == All->FirstScreen ? Screen : (screen)0; FirstW = FirstScreen && (widget)W == Screen->FirstW ? (widget)W : (widget)0; Left = (dat)Max2(shLeft, (ldat)0); Up = (dat)Max2(shUp, (ldat)YLimit + 1); Rgt = (dat)Min2(shRgt, (ldat)DWidth - (ldat)1); Dwn = (dat)Min2(shDwn, (ldat)DHeight - (ldat)1); if ((Flags & BORDER_UP) && shUp >= YLimit) DrawArea2(FirstScreen, FirstW, (widget)W, Left, Up, Rgt, Up, tfalse); if (!(W->Flags & WINDOW_ROLLED_UP)) { if ((Flags & BORDER_LEFT) && shLeft >= 0) DrawArea2(FirstScreen, FirstW, (widget)W, Left, Up, Left, Dwn, tfalse); if ((Flags & BORDER_RIGHT) && shRgt < (ldat)DWidth) DrawArea2(FirstScreen, FirstW, (widget)W, Rgt, Up, Rgt, Dwn, tfalse); if ((Flags & BORDER_DOWN) && shDwn < (ldat)DHeight) DrawArea2(FirstScreen, FirstW, (widget)W, Left, Dwn, Rgt, Dwn, tfalse); } } void DrawAreaShadeWindow(screen Screen, window W, dat X1, dat Y1, dat X2, dat Y2, ldat shLeft, ldat shUp, ldat shRgt, ldat shDwn, byte Internal) { dat DHeight, DWidth, YLimit; /* position of Horizontal Shadow */ ldat HS_X1, HS_X2, HS_Y1, S_Y2; /* position of Vertical Shadow */ ldat VS_X1, VS_X2, VS_Y1; byte DeltaXShade, DeltaYShade; setup *SetUp; SetUp = All->SetUp; if (QueuedDrawArea2FullScreen || !W || (W->Flags & WINDOWFL_NOTVISIBLE) || !Screen || X1 > X2 || Y1 > Y2 || !(SetUp->Flags & setup_shadows)) return; DeltaXShade = SetUp->DeltaXShade; DeltaYShade = SetUp->DeltaYShade; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; YLimit = Screen->YLimit; X1 = Max2(X1, 0); Y1 = Max2(Y1, YLimit + 1); X2 = Min2(X2, DWidth - 1); Y2 = Min2(Y2, DHeight - 1); if (shLeft + (ldat)DeltaXShade > (ldat)X2 || shUp + (ldat)DeltaYShade > (ldat)Y2 || shRgt + (ldat)DeltaXShade < (ldat)X1 || shDwn + (ldat)DeltaYShade < (ldat)Y1) return; W = (window)W->Next; HS_X1 = Max2(shLeft + (ldat)DeltaXShade, (ldat)X1); HS_X2 = Min2(shRgt, (ldat)X2); HS_Y1 = Max2(shUp + (ldat)DeltaYShade, shDwn + (ldat)1); HS_Y1 = Max2(HS_Y1, (ldat)Y1); S_Y2 = Min2(shDwn + (ldat)DeltaYShade, (ldat)Y2); VS_X1 = Max2(shLeft + (ldat)DeltaXShade, shRgt + (ldat)1); VS_X1 = Max2(VS_X1, (ldat)X1); VS_X2 = Min2(shRgt + (ldat)DeltaXShade, (ldat)X2); VS_Y1 = Max2(shUp + (ldat)DeltaYShade, (ldat)Y1); if (HS_X1 <= HS_X2 && HS_Y1 <= S_Y2) { if (!Internal) DrawArea2((screen)0, (widget)0, (widget)0, (dat)HS_X1, (dat)HS_Y1, (dat)HS_X2, (dat)S_Y2, tfalse); else if (W) DrawArea2((screen)0, (widget)W, (widget)0, (dat)HS_X1, (dat)HS_Y1, (dat)HS_X2, (dat)S_Y2, ttrue); else DrawDesktop(Screen, (dat)HS_X1, (dat)HS_Y1, (dat)HS_X2, (dat)S_Y2, ttrue); } if (VS_X1 <= VS_X2 && VS_Y1 <= S_Y2) { if (!Internal) DrawArea2((screen)0, (widget)0, (widget)0, (dat)VS_X1, (dat)VS_Y1, (dat)VS_X2, (dat)S_Y2, tfalse); else if (W) DrawArea2((screen)0, (widget)W, (widget)0, (dat)VS_X1, (dat)VS_Y1, (dat)VS_X2, (dat)S_Y2, ttrue); else DrawDesktop(Screen, (dat)VS_X1, (dat)VS_Y1, (dat)VS_X2, (dat)S_Y2, ttrue); } } void DrawShadeWindow(window W, dat X1, dat Y1, dat X2, dat Y2, byte Internal) { screen Screen; dat YLimit; ldat shLeft, shUp, shRgt, shDwn; if (!QueuedDrawArea2FullScreen && W && (Screen = (screen)W->Parent) && IS_SCREEN(Screen)) { YLimit = Screen->YLimit; shUp = (ldat)W->Up - Screen->YLogic + (ldat)YLimit; shLeft = (ldat)W->Left - Screen->XLogic; shRgt = shLeft + (ldat)W->XWidth - (ldat)1; shDwn = shUp + (W->Attr & WINDOW_ROLLED_UP ? 0 : (ldat)W->YWidth - 1); DrawAreaShadeWindow(Screen, W, X1, Y1, X2, Y2, shLeft, shUp, shRgt, shDwn, Internal); } } /* replaces DrawAreaWindow() */ void DrawAreaWindow2(window W) { draw_ctx D; byte Dvalid = tfalse; if (!QueuedDrawArea2FullScreen && W && W->Parent && IS_SCREEN(W->Parent)) { if ((widget)W == All->FirstScreen->FirstW) { DrawWidget((widget)W, 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse); } else if (InitDrawCtx((widget)W, 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse, &D)) { Dvalid = ttrue; D.W = D.TopW = NULL; DrawAreaCtx(&D); } if (All->SetUp->Flags & setup_shadows) { if (!Dvalid) InitDrawCtx((widget)W, 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse, &D); DrawAreaShadeWindow((screen)W->Parent, W, 0, 0, TW_MAXDAT, TW_MAXDAT, D.Left, D.Up, D.Rgt, D.Dwn, tfalse); } } } /* replaces DrawAbsoluteWindow() */ void DrawPartialWidget(widget W, dat X1, dat Y1, dat X2, dat Y2) { draw_ctx D; if (!QueuedDrawArea2FullScreen && W && InitDrawCtx(W, X1, Y1, X2, Y2, tfalse, &D)) { /* * DO NOT assume W is completely visible... * might be obscured by another window! So reset D.TopW * Assume instead that who called us wants to draw the visible part of W, * not whatever covers it. So set D.W (used as OnlyW) */ D.TopW = NULL; D.W = W; DrawAreaCtx(&D); } } /* replaces DrawTextWindow() */ void DrawLogicWidget(widget W, ldat X1, ldat Y1, ldat X2, ldat Y2) { ldat XL, YL; byte HasBorder; if (!QueuedDrawArea2FullScreen && W && !(W->Flags & WIDGETFL_NOTVISIBLE) && (!IS_WINDOW(W) || !(((window)W)->Attr & WINDOW_ROLLED_UP)) && X2 >= X1 && Y2 >= Y1) { XL = W->XLogic; YL = W->YLogic; HasBorder = IS_WINDOW(W) && !(((window)W)->Flags & WINDOWFL_BORDERLESS); if (X2 >= XL && Y2 >= YL && Y1 < TW_MAXLDAT && X1 < XL + (ldat)W->XWidth - 2 * HasBorder && Y1 < YL + (ldat)W->YWidth - 2 * HasBorder) { X1 = Max2(X1 - XL, 0); X1 = Min2(X1 + HasBorder, TW_MAXDAT); X2 = Min2(X2, XL + (ldat)W->XWidth - 1 - 2 * HasBorder); X2 = Max2(X2 - XL, 0); X2 = Min2(X2 + HasBorder, TW_MAXDAT); Y1 = Max2(Y1 - YL, 0); Y1 = Min2(Y1 + HasBorder, TW_MAXDAT); Y2 = Min2(Y2, YL + (ldat)W->YWidth - 1 - 2 * HasBorder); Y2 = Max2(Y2 - YL, 0); Y2 = Min2(Y2 + HasBorder, TW_MAXDAT); DrawPartialWidget(W, (dat)X1, (dat)Y1, (dat)X2, (dat)Y2); } } } void ReDrawRolledUpAreaWindow(window W, byte Shaded) { ldat shLeft, shUp, shRgt, shDwn; byte Shade, DeltaXShade, DeltaYShade; screen Screen; dat DWidth, DHeight; dat YLimit; if (QueuedDrawArea2FullScreen || !W || (W->Flags & WINDOWFL_NOTVISIBLE) || !W->Parent || !IS_SCREEN(W->Parent)) return; Screen = (screen)W->Parent; Shade = All->SetUp->Flags & setup_shadows; DeltaXShade = Shade ? All->SetUp->DeltaXShade : (byte)0; DeltaYShade = Shade ? All->SetUp->DeltaYShade : (byte)0; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; YLimit = Screen->YLimit; shUp = (ldat)W->Up - Screen->YLogic + (ldat)YLimit; shLeft = (ldat)W->Left - Screen->XLogic; shRgt = shLeft + (ldat)W->XWidth - (ldat)1; shDwn = shUp + (ldat)W->YWidth - (ldat)1; /*shDwn=shUp+(W->Attr & WINDOW_ROLLED_UP ? 0 : (ldat)W->YWidth-(ldat)1);*/ if (shLeft >= (ldat)DWidth || shUp >= (ldat)DHeight || shRgt < -(ldat)DeltaXShade || shDwn < (ldat)YLimit - (ldat)DeltaYShade) return; shLeft = Max2((ldat)0, shLeft); shUp = Max2((ldat)0, shUp + 1); shRgt = Min2((ldat)DWidth - (ldat)1, shRgt + (ldat)DeltaXShade); shDwn = Min2((ldat)DHeight - (ldat)1, shDwn + (ldat)DeltaYShade); DrawArea2((screen)0, (widget)0, (widget)0, (dat)shLeft, (dat)shUp, (dat)shRgt, (dat)shDwn, Shaded); } void DrawMenuScreen(screen Screen, dat Xstart, dat Xend) { screen fScreen; menu Menu; menuitem Item; dat DWidth, DHeight, i, j, x; tcell Attr; trune Font; tcolor Color; byte Select, State, MenuInfo; if (QueuedDrawArea2FullScreen || !Screen || !Screen->All || Xstart > Xend) return; j = Screen->YLimit; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; if (j < 0 || j >= DHeight || Xstart >= DWidth || Xstart > Xend) return; for (fScreen = All->FirstScreen; fScreen && fScreen != Screen; fScreen = fScreen->Next) { if (fScreen->YLimit <= j) return; } if (fScreen != Screen) return; State = All->State & state_any; Menu = Screen->FindMenu(); MenuInfo = State != state_menu && (All->SetUp->Flags & setup_menu_info); Xstart = Max2(Xstart, 0); Xend = Min2(Xend, DWidth - 1); for (i = Xstart; i <= Xend; i++) { if (i + 2 >= DWidth) { Color = State == state_screen ? Menu->ColSelShtCut : Menu->ColShtCut; if ((Screen->Flags & (SCREENFL_BACK_SELECT | SCREENFL_BACK_PRESSED)) == (SCREENFL_BACK_SELECT | SCREENFL_BACK_PRESSED)) { Color = TCOL(TCOLBG(Color), TCOLFG(Color)); } Font = Screen_Back[2 - (DWidth - i)]; } else if (DWidth - i <= (dat)3 + lenTWDisplay) { Color = State == state_screen ? Menu->ColSelShtCut : Menu->ColShtCut; Font = TWDisplay[3 + lenTWDisplay - (DWidth - i)]; if (!Font) Font = ' '; } else if (DWidth - i > 9 && (uldat)(DWidth - i) <= 9 + All->BuiltinRow->Len) { Color = State == state_screen ? Menu->ColSelect : Menu->ColItem; Font = All->BuiltinRow->Text[9 + All->BuiltinRow->Len - (DWidth - i)]; if (!Font) Font = ' '; } else if (MenuInfo && FindInfo(Menu, i)) { Select = State == state_screen; FindFontInfo(Menu, i, Select, &Attr); Font = TRUNE(Attr); Color = TCOLOR(Attr); } else { if (!MenuInfo) { Item = Menu->FindItem(i); if (Item) { /* check if Item is from All->CommonMenu */ if ((menu)Item->Parent == All->CommonMenu && Menu->LastI) x = Menu->LastI->Left + Menu->LastI->Len; else x = 0; Select = State == state_screen || (State == state_menu && ((menu)Item->Parent)->SelectI == Item); /* * CHEAT: Item may be in CommonMenu, not in Menu... * steal Item color from Menu. */ FindFontMenuItem(Menu, Item, i - x, Select, &Attr); Font = TRUNE(Attr); Color = TCOLOR(Attr); } } if (MenuInfo || !Item) { Color = State == state_screen ? Menu->ColSelect : Menu->ColItem; Font = ' '; } } if (Screen != All->FirstScreen) Color = Menu->ColDisabled; Video[i + j * (ldat)DWidth] = TCELL(Color, Font); } DirtyVideo(Xstart, j, Xend, j); } void DrawScreen(screen Screen) { screen FirstScreen; if (!QueuedDrawArea2FullScreen) { FirstScreen = Screen == All->FirstScreen ? Screen : (screen)0; DrawArea2(FirstScreen, (widget)0, (widget)0, 0, (dat)Screen->YLimit, TW_MAXDAT, TW_MAXDAT, tfalse); } } void ClearHilight(window W) { if (W->State & WINDOW_DO_SEL) { W->State &= ~WINDOW_DO_SEL; if (W->YendSel > W->YstSel) DrawLogicWidget((widget)W, W->XLogic, W->YstSel, W->XLogic + W->XWidth, W->YendSel); else DrawLogicWidget((widget)W, W->XstSel, W->YstSel, W->XendSel, W->YstSel); } } void StartHilight(window W, ldat XSel, ldat YSel) { if (W) { ClearHilight(W); W->State &= ~WINDOW_ANYSEL; W->State |= WINDOW_FWDSEL; W->XstSel = W->XendSel = XSel; W->YstSel = W->YendSel = YSel; } } void ExtendHilight(window W, ldat XSel, ldat YSel) { ldat oX, oY; uldat oState; if (!W) return; if (!(W->State & WINDOW_DO_SEL)) { if (W->State & WINDOW_ANYSEL) { if (W->State & WINDOW_FWDSEL) StartHilight(W, W->XstSel, W->YstSel); else if (W->State & WINDOW_REVSEL) StartHilight(W, W->XendSel, W->YendSel); W->State |= WINDOW_DO_SEL; DrawLogicWidget((widget)W, W->XstSel, W->YstSel, W->XendSel, W->YstSel); } else return; } if (W->State & WINDOW_FWDSEL) { oX = W->XendSel; oY = W->YendSel; } else { oX = W->XstSel; oY = W->YstSel; } oState = W->State; if ((W->State & WINDOW_FWDSEL) && (YSel < W->YstSel || (YSel == W->YstSel && XSel < W->XstSel))) { W->State ^= WINDOW_ANYSEL; W->XendSel = W->XstSel; W->YendSel = W->YstSel; } else if ((W->State & WINDOW_REVSEL) && (YSel > W->YendSel || (YSel == W->YendSel && XSel > W->XendSel))) { W->State ^= WINDOW_ANYSEL; W->XstSel = W->XendSel; W->YstSel = W->YendSel; } if (W->State & WINDOW_FWDSEL) { W->XendSel = XSel; W->YendSel = YSel; } else { W->XstSel = XSel; W->YstSel = YSel; } /* printf("%c%c %d %d %d %d\n", (W->State & WINDOW_DO_SEL) ? '*' : ' ', (W->State & WINDOW_FWDSEL) ? '+' : '-', W->XstSel, W->YstSel, W->XendSel, W->YendSel); */ if (YSel == oY && ((oState & WINDOW_ANYSEL) == (W->State & WINDOW_ANYSEL))) DrawLogicWidget((widget)W, Min2(XSel, oX), YSel, Max2(XSel, oX), YSel); else DrawLogicWidget((widget)W, W->XLogic, Min2(YSel, oY), W->XLogic + W->XWidth, Max2(YSel, oY)); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/draw.h����������������������������������������������������������������������������0000664�0000000�0000000�00000005212�13775351206�0015126�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_DRAW_H #define TWIN_DRAW_H byte InitDraw(void); widget FindWidgetAt(widget Parent, dat X, dat Y); void DrawSelfWidget(draw_ctx *D); void DrawSelfGadget(draw_ctx *D); void DrawSelfWindow(draw_ctx *D); void DrawSelfScreen(draw_ctx *D); byte InitDrawCtx(widget W, dat X1, dat Y1, dat X2, dat Y2, byte Shaded, draw_ctx *D); byte InitAbsoluteDrawCtx(widget W, dat X1, dat Y1, dat X2, dat Y2, byte Shaded, draw_ctx *D); void TranslateCoordsWidget(widget W1, widget W2, dat *X, dat *Y, byte *Inside); void DrawDesktop(screen Screen, dat Xstart, dat Ystart, dat Xend, dat Yend, byte Shaded); void DrawArea2(screen FirstScreen, widget Top, widget OnlyW, dat X1, dat Y1, dat X2, dat Y2, byte Shaded); #define FULL_SCREEN (screen)0, (widget)0, (widget)0, (dat)0, (dat)0, TW_MAXDAT, TW_MAXDAT, tfalse /* DrawWidget() assumes W is not obscured */ void DrawWidget(widget W, dat Xstart, dat Ystart, dat Xend, dat Yend, byte Shaded); #define DrawFirstWidget(W) DrawWidget((W), 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse) void DrawAreaWidget(widget W); /* like DrawAreaWindow2, but does not draw the shadow: */ #define DrawFullWindow2(W) DrawAreaWidget((widget)W) void DrawScreen(screen Screen); void DrawBorderWindow(window Window, byte Flags); #define BORDER_LEFT (0x1) #define BORDER_UP (0x2) #define BORDER_RIGHT (0x4) #define BORDER_DOWN (0x8) #define BORDER_ANY (0xF) void DrawShadeWindow(window Window, dat Xstart, dat Ystart, dat Xend, dat Yend, byte Internal); void DrawAreaShadeWindow(screen Screen, window Window, dat Xstart, dat Ystart, dat Xend, dat Yend, ldat shLeft, ldat shUp, ldat shRgt, ldat shDwn, byte Internal); /* this also draws the shadow: */ void DrawAreaWindow2(window Window); void DrawPartialWidget(widget W, dat X1, dat Y1, dat X2, dat Y2); void DrawLogicWidget(widget W, ldat X1, ldat Y1, ldat X2, ldat Y2); void ReDrawRolledUpAreaWindow(window Window, byte Shaded); void DrawMenuScreen(screen Screen, dat Xstart, dat Xend); void ClearHilight(window Window); void StartHilight(window Window, ldat XSel, ldat YSel); void ExtendHilight(window Window, ldat XSel, ldat YSel); screen ScreenParent(widget W); window WindowParent(widget W); widget NonScreenParent(widget W); window FindCursorWindow(void); byte ContainsCursor(widget W); widget RecursiveFindWidgetAt(widget Parent, dat X, dat Y); #endif /* TWIN_DRAW_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/extreg.cpp������������������������������������������������������������������������0000664�0000000�0000000�00000002650�13775351206�0016025�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * extreg.c -- code for simple-minded internal server extensions bookkeeping */ #include "twin.h" #include "main.h" #include "remote.h" #include "extreg.h" #include "methods.h" exts Exts = {{NULL}, {remoteKillSlot}, { (void (*)(msgport, msg))NoOp, AlwaysTrue, (void (*)(uldat, Span<s_tsfield>))NoOp, }, {FakeOpenTerm}}; static exts OrigExts = {{NULL}, {remoteKillSlot}, { (void (*)(msgport, msg))NoOp, AlwaysTrue, (void (*)(uldat, Span<s_tsfield>))NoOp, }, {FakeOpenTerm}}; #define OrigExt(where) ((void **)((byte *)&OrigExts + ((byte *)where - (byte *)&Exts))) byte Register_Ext(void **where, void *data) { if (*where == *OrigExt(where)) { *where = data; return ttrue; } return tfalse; } byte UnRegister_Ext(void **where, void *data) { if (*where == data) { *where = *OrigExt(where); return ttrue; } return tfalse; } ����������������������������������������������������������������������������������������twin-0.9.0/server/extreg.h��������������������������������������������������������������������������0000664�0000000�0000000�00000002171�13775351206�0015470�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_EXTREG_H #define TWIN_EXTREG_H #include "stl/span.h" typedef struct exts exts; struct exts { struct { msgport MsgPort; } WM; struct { void (*KillSlot)(uldat slot); } Remote; struct { void (*SendMsg)(msgport MsgPort, msg Msg); byte (*InitAuth)(void); void (*MultiplexS)(uldat order, Span<s_tsfield> args); } Socket; struct { window (*Open)(const char *arg0, const char *const *argv); } Term; }; extern exts Exts; byte Register_Ext(void **where, void *data); byte UnRegister_Ext(void **where, void *data); #define RegisterExt(kind, member, data) Register_Ext((void **)&(Exts.kind.member), (void *)data) #define UnRegisterExt(kind, member, data) UnRegister_Ext((void **)&(Exts.kind.member), (void *)data) #define Ext(kind, member) (Exts.kind.member) #endif /* TWIN_EXTREG_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/fdlist.h��������������������������������������������������������������������������0000664�0000000�0000000�00000005011�13775351206�0015453�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * fdlist.h -- include for File Descriptor book-keeping * * Copyright (C) 2001 by Massimiliano Ghilardi * */ #ifndef TWIN_FDLIST_H #define TWIN_FDLIST_H typedef void (*handler_io_s)(int, uldat); typedef void (*handler_io_d)(int, obj); typedef struct fdlist fdlist; /* for compressed sockets, two fdlist's are used: */ struct fdlist { /* the uncompressed one has */ int Fd; /* Fd == GZFD and pairSlot == the compressed one; */ uldat pairSlot; /* the compressed has */ obj HandlerData; /* Fd == real fd and pairSlot == the uncompressed;*/ union { handler_io_s S; handler_io_d D; } HandlerIO; msgport MsgPort; /* other sockets just have */ byte *WQueue; /* Fd == real fd and pairSlot == NOSLOT; */ byte *RQueue; uldat WQlen, WQmax; uldat RQstart, RQlen, RQmax; void (*PrivateAfterFlush)(uldat Slot); /* private enable/disable compression routine. * it gets called after RemoteFlush() and it must * remove itself if needed (e.g. call-once routines) */ byte (*PrivateFlush)(uldat Slot); /* private flush ((un)compression) routine */ void *PrivateData; /* used by (un)compression routines to hold private data */ /* * PrivateFlush and PrivateData are used both on low-level, compressed slot and on * uncompressed slot: in the compressed slot they are used to compress outgoing data, * while in the uncompressed one they are used to uncompress incoming data. */ byte AlienMagic[9 /*TWS_highest*/]; /* sizes and endianity used by slot * instead of native sizes and endianity */ byte extern_couldntwrite; }; enum Alien_magics { /* these are possible values of AlienXendian(slot) */ MagicUnknown = 0, MagicNative = 1, MagicAlien = 2, MagicAlienXendian = 3 }; #define AlienMagic(slot) (FdList[slot].AlienMagic) #define AlienXendian(slot) AlienMagic(slot)[TWS_void /*0*/] #define AlienSizeof(type, slot) AlienMagic(slot)[TWS_##type] #endif /* TWIN_FDLIST_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/field.h���������������������������������������������������������������������������0000664�0000000�0000000�00000003502�13775351206�0015254�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_FIELD_H #define TWIN_FIELD_H #include "stl/any.h" #include "stl_types.h" #include <Tw/Twstat.h> // can contain a value of arbitrary type T, with two constraints: // 1. T has trivial copy constructor and destructor // 2. sizeof(T) <= 2 * sizeof(size_t) class Field { public: using Label = uint32_t; using TypeId = uint32_t; Any any; Label label; TypeId type_id; Field() : any(), label(), type_id(TWS_void) { } Field(size_t value, Label l, TypeId t) : any(value), label(l), type_id(t) { } Field(obj o, Label l, TypeId t) : any(o), label(l), type_id(t) { } Field(CharSpan charspan, Label l, TypeId t) : any(charspan), label(l), type_id(t) { } Field(ColorSpan colorspan, Label l, TypeId t) : any(colorspan), label(l), type_id(t) { } Field(RuneSpan runespan, Label l, TypeId t) : any(runespan), label(l), type_id(t) { } Field(CellSpan cellspan, Label l, TypeId t) : any(cellspan), label(l), type_id(t) { } // Field(const Field &other) = default; // ~Field() = default; Field &operator=(const Field &other) { any = other.any; label = other.label; type_id = other.type_id; return *this; } size_t &scalar() { return any.value<size_t>(); } obj &obj() { return any.value<obj>(); } CharSpan &chars() { return any.value<CharSpan>(); } ColorSpan &colors() { return any.value<ColorSpan>(); } RuneSpan &runes() { return any.value<RuneSpan>(); } CellSpan &cells() { return any.value<CellSpan>(); } }; #endif /* TWIN_FIELD_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hotkey.h��������������������������������������������������������������������������0000664�0000000�0000000�00000000733�13775351206�0015477�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * edit this and recompile to change the HotKey (used to activate menu). * Usually not needed, as ~/.twinrc parser overrides this. */ #define HOT_KEY TW_Pause �������������������������������������twin-0.9.0/server/hw.cpp����������������������������������������������������������������������������0000664�0000000�0000000�00000037003�13775351206�0015145�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * hw.c -- common functions to use HW/hw_* displays * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * this is a very sensible part of code, as it must * correctly link both against twin and against twdisplay, * picking the correct versions of functions like * FlushHW(), PanicHW(), AllHWCanDragAreaNow(), DragAreaHW(), etc. * * This for example rules out calling methods like Delete() * or referencing the variable All. */ #include "twin.h" #ifdef TW_HAVE_SIGNAL_H #include <signal.h> #endif #ifdef TW_HAVE_SYS_STAT_H #include <sys/stat.h> #endif #ifdef TW_HAVE_SYS_RESOURCE_H #include <sys/resource.h> #endif #ifdef TW_HAVE_SYS_TTYDEFAULTS_H #include <sys/ttydefaults.h> #else #include "my_ttydefaults.h" #endif #ifdef TW_HAVE_SYS_WAIT_H #include <sys/wait.h> #endif #include "tty_ioctl.h" #include "alloc.h" #include "algo.h" #include "common.h" #include "hw.h" #ifndef VDISABLE #ifdef _POSIX_VDISABLE #define VDISABLE _POSIX_VDISABLE #else #define VDISABLE 255 #endif #endif display_hw HW, DisplayHWCTTY; tcell *Video, *OldVideo; byte NeedOldVideo, CanDragArea; byte ExpensiveFlushVideo, ValidOldVideo, NeedHW; dat (*ChangedVideo)[2][2]; byte ChangedVideoFlag, ChangedVideoFlagAgain; byte QueuedDrawArea2FullScreen; dat DisplayWidth, DisplayHeight; udat CursorX, CursorY; uldat CursorType; struct termios ttysave; VOLATILE byte GotSignals; static VOLATILE byte GotSignalWinch; static VOLATILE byte GotSignalChild; static VOLATILE byte GotSignalHangup; static TW_RETSIGTYPE SignalWinch(int n) { GotSignals = GotSignalWinch = ttrue; signal(SIGWINCH, SignalWinch); TW_RETFROMSIGNAL(0); } static TW_RETSIGTYPE HandleSignalWinch(void) { GotSignalWinch = tfalse; if (DisplayHWCTTY && DisplayHWCTTY != HWCTTY_DETACHED && DisplayHWCTTY->DisplayIsCTTY) { ResizeDisplayPrefer(DisplayHWCTTY); } TW_RETFROMSIGNAL(0); } static TW_RETSIGTYPE SignalChild(int n) { GotSignals = GotSignalChild = ttrue; signal(SIGCHLD, SignalChild); TW_RETFROMSIGNAL(0); } static void HandleSignalChild(void) { pid_t pid; int status; GotSignalChild = tfalse; while ((pid = Tw_wait3(&status, WNOHANG, (struct rusage *)0)) != 0 && pid != (pid_t)-1) { if (WIFEXITED(status) || WIFSIGNALED(status)) RemotePidIsDead(pid); } } /* * got a SIGHUP. shutdown the display on controlling tty, if any */ static TW_RETSIGTYPE SignalHangup(int n) { GotSignals = GotSignalHangup = ttrue; signal(SIGHUP, SignalHangup); TW_RETFROMSIGNAL(0); } static void HandleSignalHangup(void) { GotSignalHangup = tfalse; if (DisplayHWCTTY && DisplayHWCTTY != HWCTTY_DETACHED && DisplayHWCTTY->DisplayIsCTTY) { DisplayHWCTTY->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; } } void HandleSignals(void) { GotSignals = tfalse; if (GotSignalWinch) HandleSignalWinch(); if (GotSignalChild) HandleSignalChild(); if (GotSignalHangup) HandleSignalHangup(); } #ifndef TW_DONT_TRAP_SIGNALS static TW_RETSIGTYPE SignalFatal(int n) { sigset_t s, t; signal(n, SIG_DFL); sigemptyset(&s); sigaddset(&s, n); sigprocmask(SIG_BLOCK, &s, &t); Quit(-n); kill(getpid(), n); TW_RETFROMSIGNAL(0); } #endif static int signals_ignore[] = { SIGUSR1, SIGUSR2, SIGPIPE, SIGALRM, #ifdef SIGIO SIGIO, #endif #if defined(SIGPOLL) && (!defined(SIGIO) || SIGPOLL != SIGIO) SIGPOLL, #endif #if defined(SIGLOST) && (!defined(SIGIO) || SIGLOST != SIGIO) && \ (!defined(SIGPWR) || SIGLOST != SIGPWR) SIGLOST, #endif #ifdef SIGPROF SIGPROF, #endif #ifdef SIGSYS SIGSYS, #endif #if defined(SIGUNUSED) && (!defined(SIGSYS) || SIGUNUSED != SIGSYS) SIGUNUSED, #endif #ifdef SIGTRAP SIGTRAP, #endif #ifdef SIGURG SIGURG, #endif #ifdef SIGVTALRM SIGVTALRM, #endif }; static int signals_fatal[] = { SIGINT, SIGQUIT, SIGILL, SIGABRT, SIGBUS, SIGFPE, SIGSEGV, SIGTERM, #ifdef SIGXPCU SIGXCPU, #endif #ifdef SIGXFSZ SIGXFSZ, #endif #ifdef SIGPWR SIGPWR, #endif #ifdef SIGEMT SIGEMT, #endif #if defined(SIGSTKFLT) && (!defined(SIGEMT) || SIGSTKFLT != SIGEMT) SIGSTKFLT, #endif }; byte InitSignals(void) { uldat i; signal(SIGWINCH, SignalWinch); signal(SIGCHLD, SignalChild); signal(SIGHUP, SignalHangup); for (i = 0; i < sizeof(signals_ignore) / sizeof(signals_ignore[0]); i++) signal(signals_ignore[i], SIG_IGN); for (i = 0; i < sizeof(signals_fatal) / sizeof(signals_fatal[0]); i++) signal(signals_fatal[i], SignalFatal); return ttrue; } void QuitSignals(void) { uldat i; signal(SIGWINCH, SIG_IGN); signal(SIGCHLD, SIG_IGN); for (i = 0; i < sizeof(signals_ignore) / sizeof(signals_ignore[0]); i++) signal(signals_ignore[i], SIG_IGN); for (i = 0; i < sizeof(signals_fatal) / sizeof(signals_fatal[0]); i++) signal(signals_fatal[i], SIG_DFL); } void MoveToXY(dat x, dat y) { CursorX = x; CursorY = y; } void SetCursorType(uldat type) { if ((type & 0xF) == 0) type |= LINECURSOR; else if ((type & 0xF) > SOLIDCURSOR) type = (type & ~(uldat)0xF) | SOLIDCURSOR; CursorType = type; } void NeedRedrawVideo(dat Left, dat Up, dat Right, dat Down) { if (HW->RedrawVideo) { HW->RedrawLeft = Min2(HW->RedrawLeft, Left); HW->RedrawUp = Min2(HW->RedrawUp, Up); HW->RedrawRight = Max2(HW->RedrawRight, Right); HW->RedrawDown = Max2(HW->RedrawDown, Down); } else { HW->RedrawVideo = ttrue; HW->RedrawLeft = Left; HW->RedrawUp = Up; HW->RedrawRight = Right; HW->RedrawDown = Down; } } /* * The following functions are quite os-independent, * but they are part of the functionality implemented by hw.c * so they are included here. * * Also, some implementations might hw accel some of these... */ /* * for better cleannes, DirtyVideo() * should be used *before* actually touching Video[] */ void DirtyVideo(dat Xstart, dat Ystart, dat Xend, dat Yend) { dat s0, s1, e0, e1, len, min; byte i; if (QueuedDrawArea2FullScreen || Xstart > Xend || Xstart >= DisplayWidth || Xend < 0 || Ystart > Yend || Ystart >= DisplayHeight || Yend < 0) return; Xstart = Max2(Xstart, 0); Ystart = Max2(Ystart, 0); Xend = Min2(Xend, DisplayWidth - 1); Yend = Min2(Yend, DisplayHeight - 1); ChangedVideoFlag = ChangedVideoFlagAgain = ttrue; for (; Ystart <= Yend; Ystart++) { s0 = ChangedVideo[Ystart][0][0]; e0 = ChangedVideo[Ystart][0][1]; s1 = ChangedVideo[Ystart][1][0]; e1 = ChangedVideo[Ystart][1][1]; /* decide how to rearrange the slots to include Xstart..Xend */ if (s0 == -1) { /* trivial ! */ ChangedVideo[Ystart][0][0] = Xstart; ChangedVideo[Ystart][0][1] = Xend; continue; } if ((s0 != -1 && Xstart >= s0 && Xend <= e0) || (s1 != -1 && Xstart >= s1 && Xend <= e1)) /* nothing to do :) */ continue; if (s1 == -1) { /* * this is quite simple. * if s0..e0 and Xstart..Xend intersect or touch, merge. * else just put them in s0,e0 and s1,e1 : * there is no point in forcing a merge now if it costs cells, * we'll merge (if needed) when a third dirty segment appears. */ if (Xstart <= e0 + 1 && Xend + 1 >= s0) { ChangedVideo[Ystart][0][0] = Min2(s0, Xstart); ChangedVideo[Ystart][0][1] = Max2(e0, Xend); } else if (Xstart < s0) { ChangedVideo[Ystart][0][0] = Xstart; ChangedVideo[Ystart][0][1] = Xend; ChangedVideo[Ystart][1][0] = s0; ChangedVideo[Ystart][1][1] = e0; } else { ChangedVideo[Ystart][1][0] = Xstart; ChangedVideo[Ystart][1][1] = Xend; } continue; } /* * now the hairy thing... there are 5 possible actions: * * 0. put Xstart..Xend in slot 0 and merge s0..e0 with s1..e1 * 1. merge Xstart..Xend to s0..e0 * 2. merge all together, freeing slot 1 * 3. merge Xstart..Xend to s1..e1 * 4. put Xstart..Xend in slot 1 and merge s1..e1 with s0..e0 * 4. is the same as 0., except for slot inversion. * * do it the brutal way: calculate the 5 cases and choose * the one resulting in less dirty cells. * * we do no checks about the relative ordering of s0..e0, s1..e1, Xstart..Xend * and use Min2(sA, sB)..Max2(eA, eB) for merging. * the less dirty pattern automatically selects the best solution * which is non intersecting, and in the 0.,4. cases we choose manually * to preserve ordering between slots. * * all lenghts are decreased by 2 to avoid always doing (...)+2 */ /*0,4*/ min = Xend - Xstart + e1 - s0; i = 0; /* 1 */ len = Max2(Xend, e0) - Min2(Xstart, s0) + e1 - e0; if (len < min) min = len, i = 1; /* 2 */ len = Max2(Xend, e1) - Min2(Xstart, s0) - 1; if (len <= min) min = len, i = 2; /* prefer this if equal */ /* 3 */ len = e0 - s0 + Max2(Xend, e1) - Min2(Xstart, s1); if (len < min) min = len, i = 3; switch (i) { case 0: i = Xstart > s0; ChangedVideo[Ystart][!i][0] = s0; ChangedVideo[Ystart][!i][1] = e1; ChangedVideo[Ystart][i][0] = Xstart; ChangedVideo[Ystart][i][1] = Xend; break; case 1: ChangedVideo[Ystart][0][0] = Min2(Xstart, s0); ChangedVideo[Ystart][0][1] = Max2(Xend, e0); break; case 2: ChangedVideo[Ystart][0][0] = Min2(Xstart, s0); ChangedVideo[Ystart][0][1] = Max2(Xend, e1); ChangedVideo[Ystart][1][0] = -1; break; case 3: ChangedVideo[Ystart][1][0] = Min2(Xstart, s1); ChangedVideo[Ystart][1][1] = Max2(Xend, e1); break; default: break; } } } static void Video2OldVideo(dat Xstart, dat Ystart, dat Xend, dat Yend) { tcell *src, *dst; uldat xc, yc; if (Xstart > Xend || Xstart >= DisplayWidth || Xend < 0 || Ystart > Yend || Ystart >= DisplayHeight || Yend < 0) return; Xstart = Max2(Xstart, 0); Ystart = Max2(Ystart, 0); Xend = Min2(Xend, DisplayWidth - 1); Yend = Min2(Yend, DisplayHeight - 1); yc = Yend - Ystart + 1; xc = sizeof(tcell) * (uldat)(Xend - Xstart + 1); src = Video + Xstart + Ystart * (ldat)DisplayWidth; dst = OldVideo + Xstart + Ystart * (ldat)DisplayWidth; while (yc--) { CopyMem(src, dst, xc); src += DisplayWidth; dst += DisplayWidth; } } /* An important Video function: copy a rectangle. It must be _*FAST*_ !! */ void DragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { dat DstRgt = DstLeft + (Rgt - Left), DstDwn = DstUp + (Dwn - Up); ldat len, count; tcell *src = Video, *dst = Video; byte Accel; if (QueuedDrawArea2FullScreen) return; count = Dwn - Up + 1; len = (ldat)(Rgt - Left + 1) * sizeof(tcell); /* if HW can do the scroll, use it instead of redrawing */ /* HACK : for consistency problems, we actually drag only if all HW can drag */ Accel = AllHWCanDragAreaNow(Left, Up, Rgt, Dwn, DstLeft, DstUp); if (Accel) { FlushHW(); DragAreaHW(Left, Up, Rgt, Dwn, DstLeft, DstUp); } else DirtyVideo(DstLeft, DstUp, DstRgt, DstDwn); /* do the drag inside Video[] */ if (DstUp <= Up) { src += Left + Up * (ldat)DisplayWidth; dst += DstLeft + DstUp * (ldat)DisplayWidth; if (DstUp != Up) { /* copy forward */ while (count--) { CopyMem(src, dst, len); dst += DisplayWidth; src += DisplayWidth; } } else if (Left != DstLeft) { /* the tricky case: DstUp == Up */ /* copy forward, but with memmove() */ while (count--) { MoveMem(src, dst, len); dst += DisplayWidth; src += DisplayWidth; } } } else if (DstUp > Up) { /* copy backward */ src += Left + Dwn * (ldat)DisplayWidth; dst += DstLeft + DstDwn * (ldat)DisplayWidth; while (count--) { CopyMem(src, dst, len); dst -= DisplayWidth; src -= DisplayWidth; } } if (Accel && NeedOldVideo) Video2OldVideo(DstLeft, DstUp, DstRgt, DstDwn); } byte InitTtysave(void) { int _fd = open("/dev/tty", O_RDWR | O_NOCTTY); int fd = _fd >= 0 ? _fd : 0; byte ok = tty_getioctl(fd, &ttysave) == 0; if (_fd >= 0) close(_fd); ttysave.c_cc[VINTR] = CINTR; ttysave.c_cc[VQUIT] = CQUIT; ttysave.c_cc[VERASE] = CERASE; ttysave.c_cc[VKILL] = CKILL; ttysave.c_cc[VSTART] = CSTART; ttysave.c_cc[VSTOP] = CSTOP; ttysave.c_cc[VSUSP] = CSUSP; #ifdef VDSUSP ttysave.c_cc[VDSUSP] = VDISABLE; #endif #ifdef VREPRINT ttysave.c_cc[VREPRINT] = CRPRNT; #endif #ifdef VDISCRD ttysave.c_cc[VDISCRD] = CFLUSH; #endif #ifdef VWERSE ttysave.c_cc[VWERSE] = CWERASE; #endif #ifdef VLNEXT ttysave.c_cc[VLNEXT] = CLNEXT; #endif ttysave.c_cc[VEOF] = CEOF; ttysave.c_cc[VEOL] = VDISABLE; #ifdef VEOL2 ttysave.c_cc[VEOL2] = VDISABLE; #endif #ifdef VSWTC ttysave.c_cc[VSWTC] = VDISABLE; #endif #ifdef VSWTCH ttysave.c_cc[VSWTCH] = VDISABLE; #endif ttysave.c_cc[VMIN] = 1; ttysave.c_cc[VTIME] = 0; if (ok) { /* tweak as needed */ /* input modes */ ttysave.c_iflag |= (BRKINT | IGNPAR | ICRNL | IXON #ifdef ITW_MAXBEL | ITW_MAXBEL #endif ); ttysave.c_iflag &= ~(IGNBRK #ifdef PARMRK | PARMRK #endif #ifdef INPCK | INPCK #endif #ifdef IUCLC | IUCLC #endif | ISTRIP | INLCR | IXANY | IXOFF); /* output modes */ ttysave.c_oflag |= (OPOST | ONLCR); ttysave.c_oflag &= ~(0 #ifdef OLCUC | OLCUC #endif #ifdef ONOCR | ONOCR #endif #ifdef ONLRET | ONLRET #endif #ifdef OFILL | OFILL #endif #ifdef OFDEL | OFDEL #endif #ifdef NLDLY | NLDLY #endif #ifdef CRDLY | CRDLY #endif #ifdef TABDLY | TABDLY #endif #ifdef BSDLY | BSDLY #endif #ifdef VTDLY | VTDLY #endif #ifdef FFDLY | FFDLY #endif ); /* control modes */ ttysave.c_cflag |= (CS8 | CREAD); ttysave.c_cflag &= ~(CSTOPB | PARENB | PARODD #ifdef HUPCL | HUPCL #endif #ifdef CLOCAL | CLOCAL #endif #ifdef CMSPAR | CMSPAR #endif #ifdef CRTSCTS | CRTSCTS #endif ); /* line discipline modes */ ttysave.c_lflag |= (ISIG | ICANON | IEXTEN | ECHO | ECHOE | ECHOK #ifdef ECHOKE | ECHOKE #endif ); ttysave.c_lflag &= ~(ECHONL #ifdef XCASE | XCASE #endif #ifdef NOFLSH | NOFLSH #endif #ifdef TOSTOP | TOSTOP #endif #ifdef ECHOCTL | ECHOCTL #endif #ifdef ECHOPRT | ECHOPRT #endif #ifdef FLUSHO | FLUSHO #endif #ifdef PENDIN | PENDIN #endif ); } else { /* full initialization */ /* input modes */ ttysave.c_iflag = (BRKINT | IGNPAR | ICRNL | IXON #ifdef ITW_MAXBEL | ITW_MAXBEL #endif ); /* output modes */ ttysave.c_oflag = (OPOST | ONLCR); /* control modes */ ttysave.c_cflag = (CS8 | CREAD #if defined(CBAUD) && defined(B38400) | B38400 #endif ); /* line discipline modes */ ttysave.c_lflag = (ISIG | ICANON | IEXTEN | ECHO | ECHOE | ECHOK #ifdef ECHOKE | ECHOKE #endif ); } return ttrue; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw.h������������������������������������������������������������������������������0000664�0000000�0000000�00000002370�13775351206�0014611�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_HW_H #define TWIN_HW_H #define setFlush() (HW->NeedHW |= NEEDFlushHW) #define clrFlush() (HW->NeedHW &= ~NEEDFlushHW) #define HW_KBDAPPLIC 0x0001 #define HW_ALTCURSKEYS 0x0002 #define HW_BELLPITCH 0x0003 #define HW_BELLDURATION 0x0004 #define HW_MOUSEMOTIONEVENTS 0x0005 #define HW_CONFIGURE_MAX 0x0006 extern display_hw DisplayHWCTTY; #define HWCTTY_DETACHED ((display_hw)1) extern tcell *Video, *OldVideo; extern byte NeedOldVideo, ValidOldVideo; extern byte ExpensiveFlushVideo, NeedHW; extern byte CanDragArea, ChangedVideoFlagAgain; extern byte QueuedDrawArea2FullScreen; extern VOLATILE byte GotSignals; byte InitSignals(void); void HandleSignals(void); void QuitSignals(void); byte InitTtysave(void); void DirtyVideo(dat Xstart, dat Ystart, dat Xend, dat Yend); void DragArea(dat Xstart, dat Ystart, dat Xend, dat Yend, dat DstXstart, dat DstYstart); void MoveToXY(dat x, dat y); void SetCursorType(uldat type); #endif /* TWIN_HW_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/�������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014436�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/Makefile.am��������������������������������������������������������������������0000664�0000000�0000000�00000002605�13775351206�0016475�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������pkglib_LTLIBRARIES = if LIBHW_DISPLAY_la pkglib_LTLIBRARIES += libhw_display.la endif if LIBHW_X11_la pkglib_LTLIBRARIES += libhw_X11.la endif if LIBHW_XFT_la pkglib_LTLIBRARIES += libhw_xft.la endif if LIBHW_TTY_la pkglib_LTLIBRARIES += libhw_tty.la endif if LIBHW_TWIN_la pkglib_LTLIBRARIES += libhw_twin.la endif AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/server libhw_X11_la_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/server $(X11_CPPFLAGS) libhw_xft_la_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/server $(X11_CPPFLAGS) $(XFT_CFLAGS) libhw_display_la_SOURCES = hw_display.cpp libhw_X11_la_SOURCES = hw_X11.cpp libhw_xft_la_SOURCES = hw_xft.cpp libhw_tty_la_SOURCES = hw_tty.cpp libhw_twin_la_SOURCES = hw_twin.cpp AM_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) libhw_X11_la_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) $(X11_LDFLAGS) libhw_xft_la_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) $(X11_LDFLAGS) libhw_display_la_LIBADD = libhw_X11_la_LIBADD = $(LIBTUTF) $(LIBTSTL) $(LIBX11) libhw_xft_la_LIBADD = $(LIBTUTF) $(LIBTSTL) $(LIBX11) $(XFT_LIBS) $(LIBXFT) libhw_tty_la_LIBADD = $(LIBTUTF) $(LIBTERMCAP) $(LIBGPM) libhw_twin_la_LIBADD = $(LIBTUTF) $(LIBTW) $(LIBZ) ���������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/Makefile.in��������������������������������������������������������������������0000664�0000000�0000000�00000071202�13775351206�0016505�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @LIBHW_DISPLAY_la_TRUE@am__append_1 = libhw_display.la @LIBHW_X11_la_TRUE@am__append_2 = libhw_X11.la @LIBHW_XFT_la_TRUE@am__append_3 = libhw_xft.la @LIBHW_TTY_la_TRUE@am__append_4 = libhw_tty.la @LIBHW_TWIN_la_TRUE@am__append_5 = libhw_twin.la subdir = server/hw ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkglibdir)" LTLIBRARIES = $(pkglib_LTLIBRARIES) am__DEPENDENCIES_1 = libhw_X11_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libhw_X11_la_OBJECTS = libhw_X11_la-hw_X11.lo libhw_X11_la_OBJECTS = $(am_libhw_X11_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libhw_X11_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libhw_X11_la_LDFLAGS) $(LDFLAGS) -o $@ @LIBHW_X11_la_TRUE@am_libhw_X11_la_rpath = -rpath $(pkglibdir) libhw_display_la_DEPENDENCIES = am_libhw_display_la_OBJECTS = hw_display.lo libhw_display_la_OBJECTS = $(am_libhw_display_la_OBJECTS) @LIBHW_DISPLAY_la_TRUE@am_libhw_display_la_rpath = -rpath $(pkglibdir) libhw_tty_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libhw_tty_la_OBJECTS = hw_tty.lo libhw_tty_la_OBJECTS = $(am_libhw_tty_la_OBJECTS) @LIBHW_TTY_la_TRUE@am_libhw_tty_la_rpath = -rpath $(pkglibdir) libhw_twin_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libhw_twin_la_OBJECTS = hw_twin.lo libhw_twin_la_OBJECTS = $(am_libhw_twin_la_OBJECTS) @LIBHW_TWIN_la_TRUE@am_libhw_twin_la_rpath = -rpath $(pkglibdir) libhw_xft_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libhw_xft_la_OBJECTS = libhw_xft_la-hw_xft.lo libhw_xft_la_OBJECTS = $(am_libhw_xft_la_OBJECTS) libhw_xft_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libhw_xft_la_LDFLAGS) $(LDFLAGS) -o $@ @LIBHW_XFT_la_TRUE@am_libhw_xft_la_rpath = -rpath $(pkglibdir) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/hw_display.Plo \ ./$(DEPDIR)/hw_tty.Plo ./$(DEPDIR)/hw_twin.Plo \ ./$(DEPDIR)/libhw_X11_la-hw_X11.Plo \ ./$(DEPDIR)/libhw_xft_la-hw_xft.Plo am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(libhw_X11_la_SOURCES) $(libhw_display_la_SOURCES) \ $(libhw_tty_la_SOURCES) $(libhw_twin_la_SOURCES) \ $(libhw_xft_la_SOURCES) DIST_SOURCES = $(libhw_X11_la_SOURCES) $(libhw_display_la_SOURCES) \ $(libhw_tty_la_SOURCES) $(libhw_twin_la_SOURCES) \ $(libhw_xft_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/admin/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ pkglib_LTLIBRARIES = $(am__append_1) $(am__append_2) $(am__append_3) \ $(am__append_4) $(am__append_5) AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/server libhw_X11_la_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/server $(X11_CPPFLAGS) libhw_xft_la_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/server $(X11_CPPFLAGS) $(XFT_CFLAGS) libhw_display_la_SOURCES = hw_display.cpp libhw_X11_la_SOURCES = hw_X11.cpp libhw_xft_la_SOURCES = hw_xft.cpp libhw_tty_la_SOURCES = hw_tty.cpp libhw_twin_la_SOURCES = hw_twin.cpp AM_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) libhw_X11_la_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) $(X11_LDFLAGS) libhw_xft_la_LDFLAGS = -export-dynamic -export-symbols-regex '^(Init|Quit)Module$$' -release $(PACKAGE_VERSION) $(X11_LDFLAGS) libhw_display_la_LIBADD = libhw_X11_la_LIBADD = $(LIBTUTF) $(LIBTSTL) $(LIBX11) libhw_xft_la_LIBADD = $(LIBTUTF) $(LIBTSTL) $(LIBX11) $(XFT_LIBS) $(LIBXFT) libhw_tty_la_LIBADD = $(LIBTUTF) $(LIBTERMCAP) $(LIBGPM) libhw_twin_la_LIBADD = $(LIBTUTF) $(LIBTW) $(LIBZ) all: all-am .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign server/hw/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign server/hw/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ } uninstall-pkglibLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ done clean-pkglibLTLIBRARIES: -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) @list='$(pkglib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libhw_X11.la: $(libhw_X11_la_OBJECTS) $(libhw_X11_la_DEPENDENCIES) $(EXTRA_libhw_X11_la_DEPENDENCIES) $(AM_V_CXXLD)$(libhw_X11_la_LINK) $(am_libhw_X11_la_rpath) $(libhw_X11_la_OBJECTS) $(libhw_X11_la_LIBADD) $(LIBS) libhw_display.la: $(libhw_display_la_OBJECTS) $(libhw_display_la_DEPENDENCIES) $(EXTRA_libhw_display_la_DEPENDENCIES) $(AM_V_CXXLD)$(CXXLINK) $(am_libhw_display_la_rpath) $(libhw_display_la_OBJECTS) $(libhw_display_la_LIBADD) $(LIBS) libhw_tty.la: $(libhw_tty_la_OBJECTS) $(libhw_tty_la_DEPENDENCIES) $(EXTRA_libhw_tty_la_DEPENDENCIES) $(AM_V_CXXLD)$(CXXLINK) $(am_libhw_tty_la_rpath) $(libhw_tty_la_OBJECTS) $(libhw_tty_la_LIBADD) $(LIBS) libhw_twin.la: $(libhw_twin_la_OBJECTS) $(libhw_twin_la_DEPENDENCIES) $(EXTRA_libhw_twin_la_DEPENDENCIES) $(AM_V_CXXLD)$(CXXLINK) $(am_libhw_twin_la_rpath) $(libhw_twin_la_OBJECTS) $(libhw_twin_la_LIBADD) $(LIBS) libhw_xft.la: $(libhw_xft_la_OBJECTS) $(libhw_xft_la_DEPENDENCIES) $(EXTRA_libhw_xft_la_DEPENDENCIES) $(AM_V_CXXLD)$(libhw_xft_la_LINK) $(am_libhw_xft_la_rpath) $(libhw_xft_la_OBJECTS) $(libhw_xft_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hw_display.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hw_tty.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hw_twin.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhw_X11_la-hw_X11.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhw_xft_la-hw_xft.Plo@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< libhw_X11_la-hw_X11.lo: hw_X11.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhw_X11_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhw_X11_la-hw_X11.lo -MD -MP -MF $(DEPDIR)/libhw_X11_la-hw_X11.Tpo -c -o libhw_X11_la-hw_X11.lo `test -f 'hw_X11.cpp' || echo '$(srcdir)/'`hw_X11.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libhw_X11_la-hw_X11.Tpo $(DEPDIR)/libhw_X11_la-hw_X11.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hw_X11.cpp' object='libhw_X11_la-hw_X11.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhw_X11_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhw_X11_la-hw_X11.lo `test -f 'hw_X11.cpp' || echo '$(srcdir)/'`hw_X11.cpp libhw_xft_la-hw_xft.lo: hw_xft.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhw_xft_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libhw_xft_la-hw_xft.lo -MD -MP -MF $(DEPDIR)/libhw_xft_la-hw_xft.Tpo -c -o libhw_xft_la-hw_xft.lo `test -f 'hw_xft.cpp' || echo '$(srcdir)/'`hw_xft.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libhw_xft_la-hw_xft.Tpo $(DEPDIR)/libhw_xft_la-hw_xft.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='hw_xft.cpp' object='libhw_xft_la-hw_xft.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libhw_xft_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libhw_xft_la-hw_xft.lo `test -f 'hw_xft.cpp' || echo '$(srcdir)/'`hw_xft.cpp mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(pkglibdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -f ./$(DEPDIR)/hw_display.Plo -rm -f ./$(DEPDIR)/hw_tty.Plo -rm -f ./$(DEPDIR)/hw_twin.Plo -rm -f ./$(DEPDIR)/libhw_X11_la-hw_X11.Plo -rm -f ./$(DEPDIR)/libhw_xft_la-hw_xft.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-pkglibLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/hw_display.Plo -rm -f ./$(DEPDIR)/hw_tty.Plo -rm -f ./$(DEPDIR)/hw_twin.Plo -rm -f ./$(DEPDIR)/libhw_X11_la-hw_X11.Plo -rm -f ./$(DEPDIR)/libhw_xft_la-hw_xft.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-pkglibLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-generic clean-libtool clean-pkglibLTLIBRARIES \ cscopelist-am ctags ctags-am distclean distclean-compile \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-pkglibLTLIBRARIES install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-pkglibLTLIBRARIES .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_X11.cpp���������������������������������������������������������������������0000664�0000000�0000000�00000015024�13775351206�0016213�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * hw_X11.c -- functions to let twin display on X11 * * Copyright (C) 1999-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. */ #include <Tw/Twkeys.h> #include <Tutf/Tutf.h> #include <Tutf/Tutf_defs.h> #include "twin.h" #include "alloc.h" #include "main.h" #include "data.h" #include "remote.h" #include "hw.h" #include "hw_private.h" #include "hw_dirty.h" #include "common.h" #include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/keysym.h> #include <X11/Xatom.h> #include <X11/Xmd.h> /* CARD32 */ #define THIS "hw_X11" #include "hw_x/flavor.h" #undef HW_X_DRIVER #define HW_X_DRIVER HW_X11 #include "hw_x/features.h" #include "hw_x/x11_data.h" #include "hw_x/keyboard.h" #include "hw_x/xchar16.h" #include "hw_x/flavor_protos.h" #include "hw_x/util_protos.h" #include "hw_x/common_protos.h" #define myXDrawImageString XDrawImageString16 #define XDRAW(col, buf, buflen) \ do { \ X11_SetColors(col); \ myXDrawImageString(xdisplay, xwindow, xgc, xbegin, ybegin + xupfont, buf, buflen); \ } while (0) #define XDRAW_ANY(buf, buflen, col, _) XDRAW(col, buf, buflen) #include "hw_x/util.h" #include "hw_x/common.cpp" /* manage foreground/background colors */ static void X11_SetColors(tcolor col) { if (xsgc.foreground != xcol[TCOLFG(col)]) XSetForeground(xdisplay, xgc, xsgc.foreground = xcol[TCOLFG(col)]); if (xsgc.background != xcol[TCOLBG(col)]) XSetBackground(xdisplay, xgc, xsgc.background = xcol[TCOLBG(col)]); } /* * return ttrue if each font glyph is either 'narrow' (latin, etc.) or 'wide' (CJK...) * with 'wide' characters exactly twice as wide as 'narrow' ones */ static tbool X11_FontIsDualWidth(const XFontStruct *info) { XCharStruct *p = info->per_char; ldat wide = info->max_bounds.width, narrow = info->min_bounds.width, i, n_chars, w; if (wide != narrow * 2) return tfalse; if (p == NULL) /* * no way to check per-character bounding box. hope for the best... * at least GNU unifont falls in this case. */ return ttrue; n_chars = (ldat)(info->max_byte1 - info->min_byte1 + 1) * (info->max_char_or_byte2 - info->min_char_or_byte2 + 1); for (i = 0; i < n_chars; i++) { w = p[i].width; if (w != 0 && w != narrow && w != wide) return tfalse; } return ttrue; } /* if font is monospaced, return its score. otherwise return MINLDAT */ static ldat X11_MonospaceFontScore(const XFontStruct *info, udat fontwidth, udat fontheight, ldat best_score) { ldat score = TW_MINLDAT, width = info->min_bounds.width, height = (ldat)info->ascent + info->descent, max_width = info->max_bounds.width; if (width == max_width || X11_FontIsDualWidth(info)) { score = calcFontScore(fontwidth, fontheight, width, height); if (score > best_score) printk(" candidate font %ux%u score %ld\n", (unsigned)width, (unsigned)height, (long)score); } return score; } /* return name of selected font in allocated (char *) */ static char *X11_AutodetectFont(const char *family, udat fontwidth, udat fontheight) { struct { const char *wildcard; ldat score_adj; } patterns[] = { /* { "-gnu-unifont-medium-r-normal-*-%s?-*-*-*-*-*-iso10646-1", 0 }, double-width chars not supported yet */ {"-misc-console-medium-r-normal-*-%s?-*-*-*-*-*-iso10646-1", 0}, {"-misc-fixed-medium-r-normal-*-%s?-*-*-*-*-*-iso10646-1", 0}, {"-*-*-medium-r-normal-*-%s?-*-*-*-*-*-iso10646-1", 0}, {"-*-*-medium-r-normal-*-%s?-*-*-*-*-*-*-cp437", -5}, {"-*-*-medium-r-normal-*-%s?-*-*-*-*-*-*-cp850", -5}, {"-*-*-medium-r-normal-*-%s?-*-*-*-*-*-ibm-850", -5}, {"-*-*-medium-r-normal-*-%s?-*-*-*-*-*-iso8859-*", -10}, }; enum { max_fonts = 1000, n_patterns = sizeof(patterns) / sizeof(patterns[0]) }; XFontStruct *info; int i, j, k, n_fonts; char *pattern = NULL; char digits[1 + 3 * sizeof(unsigned)]; char **names = NULL; char *best = NULL; ldat score, best_score = TW_MINLDAT; byte beatable_score = ttrue, look_up = fontheight >= 10 && (fontheight % 10) >= 5; if (family) { return strdup(family); } pattern = (char *)AllocMem(strlen(patterns[0].wildcard) + 1 + 3 * sizeof(unsigned)); if (!pattern) return NULL; for (i = 0; i < n_patterns && beatable_score; i++) { ldat score_adj = patterns[i].score_adj; beatable_score = best_score <= MAX_FONT_SCORE + score_adj; for (j = 0; j < 2 && beatable_score; j++) { n_fonts = 0; info = NULL; sprintf(digits, "%u", (unsigned)(fontheight / 10 + (j != 0 ? look_up ? 1 : -1 : 0))); sprintf(pattern, patterns[i].wildcard, digits + (digits[0] == '0')); names = XListFontsWithInfo(xdisplay, pattern, max_fonts, &n_fonts, &info); /* printk("%4d fonts match '%s'\n", names ? n_fonts : 0, pattern); */ if (names == NULL) continue; for (k = 0; k < n_fonts && beatable_score; k++) { /* printk(" font '%s'\t direction = %u, min_byte1 = %u, max_byte1 = %u, min_char_or_byte2 = %d, max_char_or_byte2 = %d\n", names[k], info[k].direction, info[k].min_byte1, info[k].max_byte1, info[k].min_char_or_byte2, info[k].max_char_or_byte2); */ if (info[k].direction == FontLeftToRight && info[k].min_byte1 == 0 && info[k].min_char_or_byte2 <= 32) { score = X11_MonospaceFontScore(&info[k], fontwidth, fontheight, best_score - score_adj) + score_adj; if (score <= best_score) continue; best_score = score; beatable_score = best_score < MAX_FONT_SCORE + score_adj; FreeMem(best); best = CloneStr(names[k]); } } XFreeFontInfo(names, info, n_fonts); } } FreeMem(pattern); return best; } static int X11_AllocColor(Display *display, Visual *xvisual, Colormap colormap, XColor *xcolor, unsigned long *pixel, int color_num) { if (!XAllocColor(display, colormap, xcolor)) { return -1; } *pixel = xcolor->pixel; return 1; } static void X11_FlavorQuitHW(void) { if (xsfont) XFreeFont(xdisplay, xsfont); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_X11.h�����������������������������������������������������������������������0000664�0000000�0000000�00000000030�13775351206�0015647�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ byte X11_InitHW(void); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_dirty.h���������������������������������������������������������������������0000664�0000000�0000000�00000003336�13775351206�0016445�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TWIN_HW_DIRTY_H #define TWIN_HW_DIRTY_H inline byte Plain_isDirtyVideo(dat X, dat Y) { dat s; s = ChangedVideo[Y][0][0]; if (s == -1 || s > X || ChangedVideo[Y][0][1] < X) { s = ChangedVideo[Y][1][0]; if (s == -1 || s > X || ChangedVideo[Y][1][1] < X) return tfalse; } return ttrue; } /* * this is not trivial, as it must consider that areas nearer than * merge_Threshold will get merged together (by linux_FlushVideo() for example) */ inline byte Threshold_isDirtyVideo(dat X, dat Y) { dat s1, s2, e1, e2, delta; if ((s1 = ChangedVideo[Y][0][0]) == -1) return tfalse; e1 = ChangedVideo[Y][0][1]; if (s1 <= X && e1 >= X) return ttrue; if (e1 < X) { /* check the second slot */ s2 = ChangedVideo[Y][1][0]; if (s2 != -1) { e2 = ChangedVideo[Y][1][1]; if (s2 <= X && e2 >= X) return ttrue; if (s2 > X) return s2 - e1 < HW->merge_Threshold; s1 = s2; e1 = e2; } } /* check for slots in the previous/next line */ if (s1 > X && Y != 0) delta = -1; else if (e1 < X && Y < DisplayHeight - 1) delta = 1; else return tfalse; s2 = ChangedVideo[Y + delta][delta < 0][0]; if (s2 == -1) { s2 = ChangedVideo[Y + delta][delta > 0][0]; if (s2 == -1) return tfalse; e2 = ChangedVideo[Y + delta][delta > 0][1]; } else e2 = ChangedVideo[Y + delta][delta < 0][1]; if (delta < 0) return s1 + (DisplayWidth - e2) < HW->merge_Threshold; else return s2 + (DisplayWidth - e1) < HW->merge_Threshold; } /* VideoFlip is quite OS and driver independent ;) */ inline void VideoFlip(udat x, udat y) { Video[x + y * (ldat)DisplayWidth] ^= TCELL(TCOL(twhite, twhite), 0); } #endif /* TWIN_HW_DIRTY_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_display.cpp�����������������������������������������������������������������0000664�0000000�0000000�00000035230�13775351206�0017310�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * hw_display.c -- functions to let twin use `twdisplay' as display * * Copyright (C) 2000-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "main.h" #include "data.h" #include "remote.h" #include "methods.h" #include "extreg.h" #include "algo.h" #include "hw.h" #include "hw_private.h" #include "hw_dirty.h" #include "common.h" struct display_data { msgport display, Helper; }; #define displaydata ((struct display_data *)HW->Private) #define display (displaydata->display) #define Helper (displaydata->Helper) static msg Msg; static event_display *ev; static uldat Used; inline void display_CreateMsg(udat Code, udat Len) { Msg->Event.EventDisplay.Code = Code; Msg->Event.EventDisplay.Len = Len; } static void display_Beep(void) { display_CreateMsg(ev_dpy_Beep, 0); Ext(Socket, SendMsg)(display, Msg); setFlush(); } static void display_Configure(udat resource, byte todefault, udat value) { display_CreateMsg(ev_dpy_Configure, 0); ev->X = resource; if (todefault) ev->Y = -1; else ev->Y = (dat)value; Ext(Socket, SendMsg)(display, Msg); setFlush(); } /* handle messages from twdisplay */ static void display_HandleEvent(display_hw hw) { msg hMsg; event_any *Event; dat x, y, dx, dy; udat keys; SaveHW; SetHW(hw); while ((hMsg = Helper->FirstMsg)) { hMsg->Remove(); Event = &hMsg->Event; switch (hMsg->Type) { case msg_widget_key: KeyboardEventCommon(Event->EventKeyboard.Code, Event->EventKeyboard.ShiftFlags, Event->EventKeyboard.SeqLen, Event->EventKeyboard.AsciiSeq); break; case msg_widget_mouse: x = Event->EventMouse.X; y = Event->EventMouse.Y; dx = x == 0 ? -1 : x == DisplayWidth - 1 ? 1 : 0; dy = y == 0 ? -1 : y == DisplayHeight - 1 ? 1 : 0; keys = Event->EventMouse.Code; keys = (keys & HOLD_ANY) | (isPRESS(keys) ? HOLD_CODE(PRESS_N(keys)) : 0); MouseEventCommon(x, y, dx, dy, keys); break; case msg_widget_gadget: if (!Event->EventGadget.Code) /* 0 == Close Code */ HW->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; break; case msg_selection_clear: /* selection now owned by some other client on the same display HW as twdisplay */ HW->HWSelectionPrivate = (tany)0; /* * DO NOT use (obj)display here instead of (obj)HW, as it is a msgport * and would bypass the OwnerOnce mechanism, often resulting in an infinite loop. */ TwinSelectionSetOwner((obj)HW, SEL_CURRENTTIME, SEL_CURRENTTIME); break; case msg_selection_request: /* * should never happen, twdisplay uses libtw calls to manage Selection Requests */ printk( "\ntwin: display_HandleEvent(): unexpected SelectionRequest Message from twdisplay!\n"); #if 0 TwinSelectionRequest(Event->EventSelectionRequest.Requestor, Event->EventSelectionRequest.ReqPrivate, TwinSelectionGetOwner()); #endif break; case msg_selection_notify: /* * should never happen, twdisplay uses libtw calls to manage Selection Notifies */ printk("\ntwin: display_HandleEvent(): unexpected SelectionNotify Message from twdisplay!\n"); #if 0 TwinSelectionNotify( dRequestor, dReqPrivate, Event->EventSelectionNotify.Magic, Event->EventSelectionNotify.MIME, Chars(Event->EventSelectionNotify.Data, Event->EventSelectionNotify.Len)); #endif break; case msg_display: switch (Event->EventDisplay.Code) { case ev_dpy_RedrawVideo: /* * Not needed, twdisplay keeps its own copy of Video[] * and never generates ev_dpy_RedrawVideo events */ printk("\ntwin: display_HandleEvent(): unexpected Display.RedrawVideo Message from " "twdisplay!\n"); #if 0 if (Event->EventDisplay.Len == sizeof(dat) * 2) NeedRedrawVideo(Event->EventDisplay.X, Event->EventDisplay.Y, ((udat *)Event->EventDisplay.Data)[0], ((udat *)Event->EventDisplay.Data)[1]); break; #endif case ev_dpy_Resize: if (HW->X != Event->EventDisplay.X || HW->Y != Event->EventDisplay.Y) { HW->X = Event->EventDisplay.X; HW->Y = Event->EventDisplay.Y; ResizeDisplayPrefer(HW); } break; default: break; } break; default: break; } hMsg->Delete(); } RestoreHW; } static void display_HelperH(msgport Port) { display_HandleEvent(Port->AttachHW); } inline void display_DrawTCell(dat x, dat y, udat buflen, tcell *buf) { display_CreateMsg(ev_dpy_DrawTCell, buflen * sizeof(tcell)); ev->X = x; ev->Y = y; ev->Data = buf; Ext(Socket, SendMsg)(display, Msg); } inline void display_Mogrify(dat x, dat y, uldat len) { tcell *V, *oV; uldat buflen = 0; tcell *buf; dat xbegin = x, ybegin = y; V = Video + x + y * (ldat)DisplayWidth; oV = OldVideo + x + y * (ldat)DisplayWidth; for (; len; x++, V++, oV++, len--) { if (buflen && ValidOldVideo && *V == *oV) { display_DrawTCell(xbegin, ybegin, buflen, buf); buflen = 0; } if (!ValidOldVideo || *V != *oV) { if (!buflen++) { xbegin = x; ybegin = y; buf = V; } } } if (buflen) display_DrawTCell(xbegin, ybegin, buflen, buf); } inline void display_MoveToXY(udat x, udat y) { display_CreateMsg(ev_dpy_MoveToXY, 0); ev->X = x; ev->Y = y; Ext(Socket, SendMsg)(display, Msg); } inline void display_SetCursorType(uldat type) { display_CreateMsg(ev_dpy_SetCursorType, sizeof(uldat)); ev->Data = &type; Ext(Socket, SendMsg)(display, Msg); } static void display_FlushVideo(void) { dat start, end; udat i; /* first burst all changes */ if (ChangedVideoFlag) { for (i = 0; i < DisplayHeight * 2; i++) { start = ChangedVideo[i >> 1][i & 1][0]; end = ChangedVideo[i >> 1][i & 1][1]; if (start != -1) display_Mogrify(start, i >> 1, end - start + 1); } setFlush(); } /* update the cursor */ if (!ValidOldVideo || (CursorType != NOCURSOR && (CursorX != HW->XY[0] || CursorY != HW->XY[1]))) { display_MoveToXY(HW->XY[0] = CursorX, HW->XY[1] = CursorY); setFlush(); } if (!ValidOldVideo || CursorType != HW->TT) { display_SetCursorType(HW->TT = CursorType); setFlush(); } HW->FlagsHW &= ~FlHWChangedMouseFlag; } static void display_FlushHW(void) { display_CreateMsg(ev_dpy_FlushHW, 0); Ext(Socket, SendMsg)(display, Msg); if (RemoteFlush(HW->AttachSlot)) clrFlush(); } static void display_DetectSize(dat *x, dat *y) { *x = HW->X; *y = HW->Y; } static void display_CheckResize(dat *x, dat *y) { if (!HW->CanResize) { *x = Min2(*x, HW->X); *y = Min2(*y, HW->Y); } } static void display_Resize(dat x, dat y) { /* * when !HW->CanResize we send the Resize message even if * x == HW->X && y == HW->Y as twdisplay might be using a smaller area */ if (!HW->CanResize || x != HW->X || y != HW->Y) { display_CreateMsg(ev_dpy_Resize, 0); ev->X = x; ev->Y = y; if (HW->CanResize) { HW->X = x; HW->Y = y; } Ext(Socket, SendMsg)(display, Msg); setFlush(); } } static byte display_CanDragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { return (Rgt - Left + 1) * (Dwn - Up + 1) > 20; } static void display_DragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { udat data[4]; data[0] = Rgt; data[1] = Dwn; data[2] = DstLeft; data[3] = DstUp; display_CreateMsg(ev_dpy_DragArea, 4 * sizeof(dat)); ev->X = Left; ev->Y = Up; ev->Data = data; Ext(Socket, SendMsg)(display, Msg); setFlush(); } static void display_SetPalette(udat N, udat R, udat G, udat B) { udat data[3]; data[0] = R; data[1] = G; data[2] = B; display_CreateMsg(ev_dpy_SetPalette, 4 * sizeof(dat)); ev->X = N; ev->Data = data; Ext(Socket, SendMsg)(display, Msg); setFlush(); } static void display_ResetPalette(void) { display_CreateMsg(ev_dpy_ResetPalette, 0); Ext(Socket, SendMsg)(display, Msg); setFlush(); } /* * import Selection from twdisplay */ static byte display_SelectionImport_display(void) { return !HW->HWSelectionPrivate; } /* * export our Selection to twdisplay */ static void display_SelectionExport_display(void) { if (!HW->HWSelectionPrivate) { HW->HWSelectionPrivate = (tany)display; display_CreateMsg(ev_dpy_SelectionExport, 0); Ext(Socket, SendMsg)(display, Msg); setFlush(); } } /* * request Selection from twdisplay */ static void display_SelectionRequest_display(obj Requestor, uldat ReqPrivate) { if (!HW->HWSelectionPrivate) { /* * shortcut: since (display) is a msgport, use fail-safe TwinSelectionRequest() * to send message to twdisplay. */ TwinSelectionRequest(Requestor, ReqPrivate, (obj)display); } /* else race! someone else became Selection owner in the meanwhile... */ } /* * notify our Selection to twdisplay */ static void display_SelectionNotify_display(uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], Chars Data) { /* * shortcut: since (display) is a msgport, use fail-safe TwinSelectionNotify() * to send message to twdisplay. */ TwinSelectionNotify((obj)display, ReqPrivate, Magic, MIME, Data); } static void display_QuitHW(void) { /* tell twdisplay to cleanly quit */ display_CreateMsg(ev_dpy_Quit, 4 * sizeof(dat)); Ext(Socket, SendMsg)(display, Msg); RemoteFlush(HW->AttachSlot); /* then cleanup */ Helper->AttachHW = (display_hw)0; /* to avoid infinite loop */ Helper->Delete(); if (!--Used && Msg) { Msg->Delete(); Msg = NULL; } /* * the rest is done by HW->DoQuit(HW) by the upper layers, * including KillSlot(HW->AttachSlot) which forces twdisplay * to shutdown its display and quit */ HW->KeyboardEvent = (void (*)(int, display_hw))NoOp; HW->QuitHW = NoOp; } static void fix4display(void) { char *arg, *arg17; if (HW->Name && HW->NameLen > 17 && !memcmp(HW->Name, "-hw=display@(-hw=", 17) && (arg = (char *)memchr(arg17 = HW->Name + 17, ')', HW->NameLen - 17))) { uldat n = arg - arg17; /* cannot use sprintf(HW->Name, "-display=%.*s", (int)n, arg17) because arg17 points inside HW->Name -> undefined behaviour */ CopyMem("-display=", HW->Name, 9); MoveMem(arg17, HW->Name + 9, n); HW->NameLen = 9 + n; } } static byte display_InitHW(void) { char *s, *arg = HW->Name; msgport Port; if (arg && HW->NameLen > 4) { arg += 4; if (strncmp(arg, "display", 7)) return tfalse; /* user said "use <arg> as display, not twdisplay" */ arg += 7; } else arg = NULL; if (HW->AttachSlot == NOSLOT) { /* * we can't start unless we have a connected twdisplay... */ printk(" display_InitHW() failed: not connected to twdisplay.\n" " (you cannot use -hw=display from command line or twattach)\n"); return tfalse; } if (!(Port = RemoteGetMsgPort(HW->AttachSlot))) { printk(" display_InitHW() failed: twdisplay did not create a MsgPort.\n"); return tfalse; } if (!Ext(Socket, SendMsg)) { printk(" display_InitHW() failed: SocketSendMsg() not available.\n" " (maybe you should load Socket Server module?)\n"); return tfalse; } if (!(HW->Private = (struct display_data *)AllocMem(sizeof(struct display_data))) || !(Helper = New(msgport)(16, "twdisplay Helper", 0, 0, 0, display_HelperH)) || (!Msg && !(Msg = New(msg)(msg_display, sizeof(event_display))))) { if (HW->Private) { if (Helper) { Helper->Delete(); } FreeMem(HW->Private); } printk(" display_InitHW(): Out of memory!\n"); return tfalse; } ev = &Msg->Event.EventDisplay; display = Port; Helper->AttachHW = HW; HW->mouse_slot = NOSLOT; HW->keyboard_slot = NOSLOT; HW->FlushVideo = display_FlushVideo; HW->FlushHW = display_FlushHW; /* we must go through display_HelperH */ HW->KeyboardEvent = (void (*)(int, display_hw))NoOp; /* mouse events handled by display_HelperH */ HW->MouseEvent = (void (*)(int, display_hw))NoOp; HW->XY[0] = HW->XY[1] = 0; HW->TT = (uldat)-1; /* force updating cursor */ HW->ShowMouse = NoOp; HW->HideMouse = NoOp; HW->UpdateMouseAndCursor = NoOp; HW->MouseState.x = HW->MouseState.y = HW->MouseState.keys = 0; HW->DetectSize = display_DetectSize; HW->CheckResize = display_CheckResize; HW->Resize = display_Resize; HW->HWSelectionImport = display_SelectionImport_display; HW->HWSelectionExport = display_SelectionExport_display; HW->HWSelectionRequest = display_SelectionRequest_display; HW->HWSelectionNotify = display_SelectionNotify_display; HW->HWSelectionPrivate = (tany)0; if (arg && strstr(arg, ",drag")) { HW->CanDragArea = display_CanDragArea; HW->DragArea = display_DragArea; } else HW->CanDragArea = NULL; HW->Beep = display_Beep; HW->Configure = display_Configure; HW->SetPalette = display_SetPalette; HW->ResetPalette = display_ResetPalette; HW->QuitHW = display_QuitHW; HW->QuitKeyboard = NoOp; HW->QuitMouse = NoOp; HW->QuitVideo = NoOp; HW->DisplayIsCTTY = tfalse; HW->FlagsHW &= ~FlHWSoftMouse; HW->FlagsHW |= FlHWNeedOldVideo; if (arg && strstr(arg, ",slow")) HW->FlagsHW |= FlHWExpensiveFlushVideo; else HW->FlagsHW &= ~FlHWExpensiveFlushVideo; HW->NeedHW = NEEDPersistentSlot; HW->CanResize = arg && strstr(arg, ",resize"); HW->merge_Threshold = 0; display_CreateMsg(ev_dpy_Helper, sizeof(Helper->Id)); ev->Data = &Helper->Id; Ext(Socket, SendMsg)(display, Msg); /* don't flush now, twdisplay waits for attach messages */ if (arg && (s = strstr(arg, ",x="))) HW->X = atoi(s + 3); else HW->X = GetDisplayWidth(); if (arg && (s = strstr(arg, ",y="))) HW->Y = atoi(s + 3); else HW->Y = GetDisplayHeight(); /* * we must draw everything on our new shiny window * without forcing all other displays * to redraw everything too. */ HW->RedrawVideo = tfalse; NeedRedrawVideo(0, 0, HW->X - 1, HW->Y - 1); setFlush(); Used++; fix4display(); return ttrue; } EXTERN_C byte InitModule(module Module) { Module->DoInit = display_InitHW; return ttrue; } /* this MUST be included, or it seems that a bug in dlsym() gets triggered */ EXTERN_C void QuitModule(module Module) { } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_display.h�������������������������������������������������������������������0000664�0000000�0000000�00000000034�13775351206�0016747�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ byte display_InitHW(void); ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty.cpp���������������������������������������������������������������������0000664�0000000�0000000�00000041266�13775351206�0016471�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * hw_tty.c -- functions to let twin display on linux console * and inside a twin terminal * * Copyright (C) 1999-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twconfig.h" #ifdef TW_HAVE_UNISTD_H #include <unistd.h> #endif #ifdef TW_HAVE_SYS_STAT_H #include <sys/stat.h> #endif #include "tty_ioctl.h" #include "twin.h" #include "algo.h" #include "alloc.h" #include "main.h" #include "data.h" #include "remote.h" #include "util.h" /* for SetAlarm() and AlarmReceived */ #include "hw.h" #include "hw_private.h" #include "hw_dirty.h" #include "common.h" #include <Tw/Twkeys.h> #include <Tutf/Tutf.h> #if !defined(CONF_HW_TTY_LINUX) && !defined(CONF_HW_TTY_TWTERM) && !defined(CONF_HW_TTY_TERMCAP) #warning trying to compile hw_tty.c without support for any specific terminal. #warning twterm driver will be enabled by default. #define CONF_HW_TTY_TWTERM #endif #ifdef CONF_HW_TTY_LINUX /*void *_fxstat = __fxstat;*/ #include <gpm.h> #endif #ifdef CONF_HW_TTY_TERMCAP #include "hw_tty_common/driver_termcap_decls.h" #endif struct tty_data { int tty_fd, VcsaFd, tty_number; char *tty_name, *tty_TERM; uldat tty_charset; Tutf_function tty_UTF_32_to_charset; Tutf_array tty_charset_to_UTF_32; byte tty_use_utf8, tty_is_xterm; dat ttypar[3]; FILE *stdOUT; uldat saveCursorType; dat saveX, saveY; udat (*LookupKey)(udat *ShiftFlags, byte *slen, char *s, byte *retlen, const char **ret); const char *mouse_start_seq, *mouse_end_seq, *mouse_motion_seq; #ifdef CONF_HW_TTY_LINUX Gpm_Connect GPM_Conn; int GPM_fd; int GPM_keys; #endif char xterm_mouse_seq[9]; byte xterm_mouse_len; dat xterm_prev_x, xterm_prev_y; #ifdef CONF_HW_TTY_TERMCAP char *tc_cap[tc_cap_N]; byte colorbug, wrapglitch; #else char *tc_scr_clear; #endif }; #define ttydata ((struct tty_data *)HW->Private) #define tty_fd (ttydata->tty_fd) #define VcsaFd (ttydata->VcsaFd) #define tty_number (ttydata->tty_number) #define tty_name (ttydata->tty_name) #define tty_TERM (ttydata->tty_TERM) #define tty_charset (ttydata->tty_charset) #define tty_UTF_32_to_charset (ttydata->tty_UTF_32_to_charset) #define tty_charset_to_UTF_32 (ttydata->tty_charset_to_UTF_32) #define tty_use_utf8 (ttydata->tty_use_utf8) #define tty_is_xterm (ttydata->tty_is_xterm) #define ttypar (ttydata->ttypar) #define stdOUT (ttydata->stdOUT) #define saveCursorType (ttydata->saveCursorType) #define saveX (ttydata->saveX) #define saveY (ttydata->saveY) #define LookupKey (ttydata->LookupKey) #define mouse_start_seq (ttydata->mouse_start_seq) #define mouse_end_seq (ttydata->mouse_end_seq) #define mouse_motion_seq (ttydata->mouse_motion_seq) #define GPM_Conn (ttydata->GPM_Conn) #define GPM_fd (ttydata->GPM_fd) #define GPM_keys (ttydata->GPM_keys) #define xterm_mouse_seq (ttydata->xterm_mouse_seq) #define xterm_mouse_len (ttydata->xterm_mouse_len) #define xterm_prev_x (ttydata->xterm_prev_x) #define xterm_prev_y (ttydata->xterm_prev_y) #ifdef CONF_HW_TTY_TERMCAP #define tc_cap (ttydata->tc_cap) #define tc_scr_clear (tc_cap[tc_seq_scr_clear]) #define tc_cursor_goto (tc_cap[tc_seq_cursor_goto]) #define tc_cursor_on (tc_cap[tc_seq_cursor_on]) #define tc_cursor_off (tc_cap[tc_seq_cursor_off]) #define tc_bold_on (tc_cap[tc_seq_bold_on]) #define tc_blink_on (tc_cap[tc_seq_blink_on]) #define tc_attr_off (tc_cap[tc_seq_attr_off]) #define tc_kpad_on (tc_cap[tc_seq_kpad_on]) #define tc_kpad_off (tc_cap[tc_seq_kpad_off]) #define tc_audio_bell (tc_cap[tc_seq_audio_bell]) #define tc_charset_start (tc_cap[tc_seq_charset_start]) #define tc_charset_end (tc_cap[tc_seq_charset_end]) #define tc_audio_bell (tc_cap[tc_seq_audio_bell]) #define tc_charset_start (tc_cap[tc_seq_charset_start]) #define tc_charset_end (tc_cap[tc_seq_charset_end]) #define colorbug (ttydata->colorbug) #define wrapglitch (ttydata->wrapglitch) #else #define tc_scr_clear (ttydata->tc_scr_clear) #endif static void null_InitMouse(void); static byte null_InitMouseConfirm(void); static void stdin_DetectSize(dat *x, dat *y); static void stdin_CheckResize(dat *x, dat *y); static void stdin_Resize(dat x, dat y); static void stdout_FlushHW(void); static void tty_MogrifyUTF8(trune h); /* this can stay static, as it's used only as temporary storage */ static tcolor _col; static void tty_QuitHW(void); #include "hw_tty_common/kbd_stdin.h" #include "hw_tty_common/mouse_xterm.h" #if defined(CONF_HW_TTY_LINUX) || defined(CONF_HW_TTY_TWTERM) #include "hw_tty_linux/driver_linux.h" #endif #if defined(CONF_HW_TTY_TERMCAP) #include "hw_tty_common/driver_termcap.h" #endif static void null_InitMouse(void) { HW->mouse_slot = NOSLOT; /* no mouse at all :( */ HW->ConfigureMouse = (void (*)(udat, byte, udat))NoOp; HW->MouseEvent = (void (*)(int, display_hw))NoOp; HW->QuitMouse = NoOp; HW->FlagsHW &= ~FlHWSoftMouse; /* no need to Hide/Show it */ HW->ShowMouse = HW->HideMouse = NoOp; /* override the ones set by *_InitVideo() */ } static byte null_InitMouseConfirm(void) { byte c = '\0'; fflush(stdOUT); printk("%s", "\n" " \033[1m ALL MOUSE DRIVERS FAILED.\033[0m\n" "\n" " If you really want to run `twin' without mouse\n" " hit RETURN within 10 seconds to continue,\n" " otherwise hit CTRL-C (or wait 10 seconds) to cancel.\n"); flushk(); SetAlarm(10); read(tty_fd, &c, 1); SetAlarm(0); if (c == '\n' || c == '\r') { null_InitMouse(); return ttrue; } return tfalse; } static void stdin_DetectSize(dat *x, dat *y) { struct winsize wsiz; if (ioctl(tty_fd, TIOCGWINSZ, &wsiz) >= 0 && wsiz.ws_row > 0 && wsiz.ws_col > 0) { HW->X = wsiz.ws_col; HW->Y = wsiz.ws_row; } *x = HW->X; *y = HW->Y; } static void stdin_CheckResize(dat *x, dat *y) { *x = Min2(*x, HW->X); *y = Min2(*y, HW->Y); } static void stdin_Resize(dat x, dat y) { if (x < HW->usedX || y < HW->usedY) { /* * can't resize the tty, just clear it so that * extra size will get padded with blanks */ fprintf(stdOUT, "\033[0m%s", tc_scr_clear); fflush(stdOUT); /* * flush now not to risk arriving late * and clearing the screen AFTER *_FlushVideo() */ NeedRedrawVideo(0, 0, x - 1, y - 1); } HW->usedX = x; HW->usedY = y; } static void stdout_FlushHW(void) { if (fflush(stdOUT) != 0) HW->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; clrFlush(); } static void tty_MogrifyUTF8(trune h) { char buf[5]; if (h <= 0x7FF) { buf[0] = (h >> 6) | 0xC0; buf[1] = (h & 0x3F) | 0x80; buf[2] = 0; } else if (h <= 0xFFFF) { buf[0] = (h >> 12) | 0xE0; buf[1] = ((h >> 6) & 0x3F) | 0x80; buf[2] = (h & 0x3F) | 0x80; buf[3] = 0; } else { buf[0] = (h >> 18) | 0xF0; buf[1] = ((h >> 12) & 0x3F) | 0x80; buf[2] = ((h >> 6) & 0x3F) | 0x80; buf[3] = (h & 0x3F) | 0x80; buf[4] = 0; } fputs(buf, stdOUT); } /* * note: during xxx_InitHW() initialization, DON'T use DisplayWidth/DisplayHeight * as they may be not up to date. Use GetDisplayWidth() / GetDisplayHeight(). */ static byte tty_InitHW(void) { char *arg = HW->Name; char *s; char *charset = NULL; #define NEVER 0 #define MAYBE 1 #define ALWAYS 2 byte autotry_video = MAYBE, try_stdout = MAYBE, try_termcap = MAYBE, autotry_kbd = MAYBE, try_lrawkbd = MAYBE, force_mouse = tfalse, tc_colorbug = tfalse, need_persistent_slot = tfalse, try_ctty = tfalse, display_is_ctty = tfalse; if (!(HW->Private = (struct tty_data *)AllocMem0(sizeof(struct tty_data)))) { printk(" tty_InitHW(): Out of memory!\n"); return tfalse; } saveCursorType = (uldat)-1; tty_charset = (uldat)-1; tty_use_utf8 = ttrue + ttrue; /* i.e. unknown */ saveX = saveY = 0; stdOUT = NULL; tty_fd = -1; tty_TERM = tty_name = NULL; if (arg && HW->NameLen > 4) { arg += 4; if (strncmp(arg, "tty", 3)) return tfalse; /* user said "use <arg> as display, not tty" */ arg += 3; if (*arg == '@') { s = strchr(++arg, ','); if (s) *s = '\0'; tty_name = CloneStr(arg); if (s) *s = ','; arg = s; } while (arg && *arg) { /* parse options */ if (!strncmp(arg, ",TERM=", 6)) { s = strchr(arg += 6, ','); if (s) *s = '\0'; tty_TERM = CloneStr(arg); if (s) *s = ','; arg = s; } else if (!strncmp(arg, ",charset=", 9)) { s = strchr(arg += 9, ','); if (s) *s = '\0'; charset = CloneStr(arg); if (s) *s = ','; arg = s; } else if (!strncmp(arg, ",stdout", 7)) { try_stdout = !(autotry_video = !strncmp(arg + 7, "=no", 3)) << 1; arg = strchr(arg + 7, ','); } else if (!strncmp(arg, ",termcap", 8)) { try_termcap = !(autotry_video = !strncmp(arg + 8, "=no", 3)) << 1; arg = strchr(arg + 8, ','); } else if (!strncmp(arg, ",raw", 4)) { try_lrawkbd = !(autotry_kbd = !strncmp(arg + 4, "=no", 3)) << 1; arg = strchr(arg + 4, ','); } else if (!strncmp(arg, ",ctty", 5)) { arg = strchr(arg + 5, ','); try_ctty = ttrue; } else if (!strncmp(arg, ",colorbug", 9)) { arg = strchr(arg + 9, ','); tc_colorbug = ttrue; } else if (!strncmp(arg, ",mouse=", 7)) { if (!strncmp(arg + 7, "xterm", 5)) force_mouse = ttrue; else if (!strncmp(arg + 7, "twterm", 5)) force_mouse = ttrue + ttrue; arg = strchr(arg + 7, ','); } else if (!strncmp(arg, ",noinput", 8)) { arg = strchr(arg + 8, ','); HW->FlagsHW |= FlHWNoInput; } else if (!strncmp(arg, ",slow", 5)) { arg = strchr(arg + 5, ','); HW->FlagsHW |= FlHWExpensiveFlushVideo; } else if (!strncmp(arg, ",utf8", 5)) { tty_use_utf8 = !!strncmp(arg + 5, "=no", 3); arg = strchr(arg + 5, ','); } else { if (*arg == ',') arg++; arg = strchr(arg, ','); } } } if (tty_name) { /* * open user-specified tty as display */ /* * avoid fighting for the terminal with a shell * or some other process when we display on something * that was not our controlling tty * (even if we grab it as our new controlling tty) */ need_persistent_slot = ttrue; if ((tty_fd = open(tty_name, O_RDWR)) >= 0) { /* * try to set this tty as our controlling tty if user asked us. * this will greatly help detecting tty resizes, * but may hangup other processes running on that tty. */ if ((display_is_ctty = try_ctty && (!DisplayHWCTTY || DisplayHWCTTY == HWCTTY_DETACHED) && #ifdef TIOCSCTTY ioctl(tty_fd, TIOCSCTTY, 1) >= 0 #else 0 #endif )) { if (tty_fd != 0) { close(0); dup2(tty_fd, 0); close(tty_fd); tty_fd = 0; } } fcntl(tty_fd, F_SETFD, FD_CLOEXEC); stdOUT = fdopen(tty_fd, "r+"); } if (tty_fd == -1 || !stdOUT) { printk(" tty_InitHW(): open(\"" SS "\") failed: " SS "\n", tty_name, strerror(errno)); FreeMem(tty_name); if (tty_TERM) FreeMem(tty_TERM); return tfalse; } } else { /* * open our controlling tty as display */ if (DisplayHWCTTY) { printk(" tty_InitHW() failed: controlling tty " SS "\n", DisplayHWCTTY == HWCTTY_DETACHED ? "not usable after Detach" : "is already in use as display"); return tfalse; } else { display_is_ctty = ttrue; tty_fd = 0; stdOUT = stdout; tty_name = CloneStr(ttyname(0)); if (!tty_TERM) tty_TERM = CloneStr(origTERM); } } fflush(stdOUT); setvbuf(stdOUT, NULL, _IOFBF, BUFSIZ); tty_number = 0; if (tty_name && (!strncmp(tty_name, "/dev/tty", 8) || !strncmp(tty_name, "/dev/vc/", 8))) { s = tty_name + 8; while (*s && *s >= '0' && *s <= '9') { tty_number *= 10; tty_number += *s++ - '0'; } } #ifdef CONF_HW_TTY_TERMCAP colorbug = tc_colorbug; #endif if (charset) { /* honor user-specified charset */ if ((tty_charset = Tutf_charset_id(charset)) == (uldat)-1) printk(" tty_InitHW(): libtutf warning: unknown charset `" SS "', assuming `ASCII'\n", charset); else if (tty_charset == Tutf_charset_id(T_NAME(UTF_32))) { printk(" tty_InitHW(): charset `" SS "' is Unicode, assuming terminal supports UTF-8\n", charset); tty_use_utf8 = ttrue; tty_charset = (uldat)-1; } FreeMem(charset); } #define TRY_V(name) (autotry_video + try_##name >= ALWAYS) #define TRY_K(name) (autotry_kbd + try_##name >= ALWAYS) /* * ORDERING IS CRITICAL HERE! * * xterm_InitMouse() does not need to manually hide/show the mouse pointer, * so it overrides HW->ShowMouse and HW->HideMouse installed by *_InitVideo() * * Thus mouse initialization must come *AFTER* video initialization * * null_InitMouseConfirm() tries a blocking read() from tty_fd * (it asks user if he/she really wants to run without mouse), * while lrawkbd_InitKeyboard() puts tty_fd in non-blocking mode. * * Thus mouse initialization must come *BEFORE* keyboard initialization */ if (!stdin_TestTty()) { printk(" tty_InitHW() failed: unable to read from the terminal: " SS "\n", Errstr); } else if ( #if defined(CONF_HW_TTY_LINUX) || defined(CONF_HW_TTY_TWTERM) (TRY_V(stdout) && linux_InitVideo()) || #endif #ifdef CONF_HW_TTY_TERMCAP (TRY_V(termcap) && termcap_InitVideo()) || #endif tfalse) { if ( #ifdef CONF_HW_TTY_LINUX GPM_InitMouse() || #else (printk(" tty_InitHW(): gpm mouse support not compiled, skipping it.\n"), tfalse) || #endif xterm_InitMouse(force_mouse) || null_InitMouseConfirm()) { if ( #if defined(CONF_HW_TTY_LINUX) && defined(CONF_HW_TTY_LRAWKBD) (TRY_K(lrawkbd) && lrawkbd_InitKeyboard()) || #endif (autotry_kbd && stdin_InitKeyboard())) { if (tty_charset == (uldat)-1) { tty_UTF_32_to_charset = Tutf_UTF_32_to_ASCII; tty_charset_to_UTF_32 = Tutf_ASCII_to_UTF_32; } else { tty_UTF_32_to_charset = Tutf_UTF_32_to_charset_function(tty_charset); tty_charset_to_UTF_32 = Tutf_charset_to_UTF_32_array(tty_charset); } /* * must be deferred until now, as HW-specific functions * can clobber HW->NeedHW */ if (need_persistent_slot) HW->NeedHW |= NEEDPersistentSlot; if (display_is_ctty) { HW->DisplayIsCTTY = ttrue; DisplayHWCTTY = HW; } HW->QuitHW = tty_QuitHW; HW->MouseState.x = HW->MouseState.y = HW->MouseState.keys = HW->Last_x = HW->Last_y = 0; /* * we must draw everything on our new shiny window * without forcing all other displays * to redraw everything too. */ stdin_DetectSize(&HW->usedX, &HW->usedY); HW->usedX = GetDisplayWidth(); HW->usedY = GetDisplayHeight(); HW->RedrawVideo = tfalse; NeedRedrawVideo(0, 0, HW->X - 1, HW->Y - 1); if (tc_scr_clear) fputs(tc_scr_clear, stdOUT); fflush(stdOUT); return ttrue; } HW->QuitMouse(); } HW->QuitVideo(); } if (tty_fd >= 0) tty_setioctl(tty_fd, &ttysave); if (tty_fd > 0) close(tty_fd); if (stdOUT && stdOUT != stdout) fclose(stdOUT); return tfalse; } static void tty_QuitHW(void) { HW->QuitMouse(); HW->QuitKeyboard(); HW->QuitVideo(); HW->QuitHW = NoOp; if (tty_name) FreeMem(tty_name); if (tty_TERM) FreeMem(tty_TERM); if (HW->DisplayIsCTTY && DisplayHWCTTY == HW) DisplayHWCTTY = NULL; fflush(stdOUT); if (stdOUT != stdout) { /* if we forced tty_fd to be fd 0, release it while keeping fd 0 busy */ if (tty_fd == 0) { if ((tty_fd = open("/dev/null", O_RDWR)) != 0) { fclose(stdOUT); dup2(tty_fd, 0); close(tty_fd); } /* * else we don't fclose(stdOUT) to avoid having fd 0 unused... * it causes leaks, but much better than screwing up badly when * fd 0 will get used by something else (say a socket) and then * abruptly closed by tty_InitHW() */ } else fclose(stdOUT); } FreeMem(HW->Private); } EXTERN_C byte InitModule(module Module) { Module->DoInit = tty_InitHW; return ttrue; } /* this MUST be included, or it seems that a bug in dlsym() gets triggered */ EXTERN_C void QuitModule(module Module) { } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty.h�����������������������������������������������������������������������0000664�0000000�0000000�00000000030�13775351206�0016116�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ byte tty_InitHW(void); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_common/�����������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0017324�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_common/driver_termcap.h�������������������������������������������������0000664�0000000�0000000�00000040633�13775351206�0022511�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifdef CONF_HW_TTY_TERMCAP inline void termcap_SetCursorType(uldat type) { fprintf(stdOUT, "%s", (type & 0xFFFFFFl) == NOCURSOR ? tc_cursor_off : tc_cursor_on); } inline void termcap_MoveToXY(udat x, udat y) { fputs(tgoto(tc_cursor_goto, x, y), stdOUT); } static udat termcap_LookupKey(udat *ShiftFlags, byte *slen, char *s, byte *retlen, const char **ret) { struct linux_keys { udat k; byte l; const char *s; }; static struct linux_keys const linux_key[] = { #define IS(k, l, s) {CAT(TW_, k), l, s}, IS(F1, 4, "\033[[A") IS(F2, 4, "\033[[B") IS(F3, 4, "\033[[C") IS(F4, 4, "\033[[D") IS(F5, 4, "\033[[E") IS(F6, 5, "\033[17~") IS(F7, 5, "\033[18~") IS(F8, 5, "\033[19~") IS(F9, 5, "\033[20~") IS(F10, 5, "\033[21~") IS(F11, 5, "\033[23~") IS(F12, 5, "\033[24~") IS(Pause, 3, "\033[P") IS(Home, 4, "\033[1~") IS(End, 4, "\033[4~") IS(Delete, 4, "\033[3~") IS(Insert, 4, "\033[2~") IS(Next, 4, "\033[6~") IS(Prior, 4, "\033[5~") IS(Left, 3, "\033[D") IS(Up, 3, "\033[A") IS(Right, 3, "\033[C") IS(Down, 3, "\033[B") #undef IS }; struct linux_keys const *lk; char **key; byte keylen, len = *slen; *ret = s; *ShiftFlags = 0; if (len == 0) { *retlen = len; return TW_Null; } if (len > 1 && *s == '\033') { if (len == 2 && s[1] >= ' ' && s[1] <= '~') { /* try to handle ALT + <some key> */ *slen = *retlen = len; *ShiftFlags = KBD_ALT_FL; return (udat)s[1]; } for (key = tc_cap + tc_key_first; key < tc_cap + tc_key_last; key++) { if (*key && **key && (keylen = strlen(*key)) <= len && !memcmp(*key, s, keylen)) { lk = linux_key + (key - &tc_cap[tc_key_first]); *slen = keylen; *retlen = lk->l; *ret = lk->s; return lk->k; } } /* * return stdin_LookupKey(ShiftFlags, slen, s, retlen, ret); */ } *slen = *retlen = 1; switch (*s) { case TW_Tab: case TW_Linefeed: case TW_Return: case TW_Escape: return (udat)*s; default: if (*s < ' ') { /* try to handle CTRL + <some key> */ *ShiftFlags = KBD_CTRL_FL; return (udat)*s | 0x40; } return (udat)*s; } /* NOTREACHED */ return TW_Null; } static char *termcap_extract(const char *cap, char **dest) { char buf[20], *d = buf, *s = tgetstr(cap, &d); if (!s || !*s) { return *dest = CloneStr(""); } /* * Remove the padding information. We assume that no terminals * need padding nowadays. At least it makes things much easier. */ s += strspn(s, "0123456789*"); for (d = buf; *s; *d++ = *s++) { if (*s == '$' && s[1] == '<') if (!(s = strchr(s, '>')) || !*++s) break; } *d = '\0'; return *dest = CloneStr(buf); } static void termcap_cleanup(void) { char **n; for (n = tc_cap; n < tc_cap + tc_cap_N; n++) { if (*n) FreeMem(*n); } } static void fixup_colorbug(void) { uldat len = strlen(tc_attr_off); char *s = (char *)AllocMem(len + 9); if (s) { CopyMem(tc_attr_off, s, len); CopyMem("\033[37;40m", s + len, 9); FreeMem(tc_attr_off); tc_attr_off = s; } } static byte termcap_InitVideo(void) { const char *term = tty_TERM; const char *tc_name[tc_cap_N + 1] = {"cl", "cm", "ve", "vi", "md", "mb", "me", "ks", "ke", "bl", "as", "ae", "k1", "k2", "k3", "k4", "k5", "k6", "k7", "k8", "k9", "k;", "F1", "F2", "&7", "kh", "@7", "kD", "kI", "kN", "kP", "kl", "ku", "kr", "kd", NULL}; const char **n; char **d; char tcbuf[4096]; /* by convention, this is enough */ if (!term) { printk(" termcap_InitVideo() failed: unknown terminal type.\n"); return tfalse; } switch (tgetent(tcbuf, term)) { case 1: break; case 0: printk(" termcap_InitVideo() failed: no entry for `" SS "' in the terminal database.\n" " Please set your $TERM environment variable correctly.\n", term); return tfalse; default: printk(" termcap_InitVideo() failed: system call error in tgetent(): " SS "\n", strerror(errno)); return tfalse; } tty_is_xterm = !strncmp(term, "xterm", 5); /* do not use alternate character set mode, i.e. "as" and "ae" ... it causes more problems than it * solves */ tc_name[tc_seq_charset_start] = tc_name[tc_seq_charset_end] = ""; tc_charset_start = tc_charset_end = NULL; for (n = tc_name, d = tc_cap; *n; n++, d++) { if (**n && !termcap_extract(*n, d)) { printk(" termcap_InitVideo() failed: Out of memory!\n"); termcap_cleanup(); return tfalse; } } if (!*tc_cursor_goto) { printk(" termcap_InitVideo() failed: terminal misses `cursor goto' capability\n"); termcap_cleanup(); return tfalse; } if (tty_use_utf8 == ttrue + ttrue) { /* cannot really autodetect an utf8-capable terminal... use a whitelist */ uldat termlen = strlen(term); tty_use_utf8 = ((termlen == 5 && (!memcmp(term, "xterm", 5) || !memcmp(term, "linux", 5))) || (termlen >= 6 && !memcmp(term, "xterm-", 6)) || (termlen >= 12 && !memcmp(term, "rxvt-unicode", 12))); } if (tty_use_utf8 == ttrue) { if (!(tc_charset_start = CloneStr("\033%G")) || !(tc_charset_end = CloneStr("\033%@"))) { printk(" termcap_InitVideo() failed: Out of memory!\n"); termcap_cleanup(); return tfalse; } } wrapglitch = tgetflag("xn"); if (colorbug) fixup_colorbug(); fprintf(stdOUT, "%s%s%s", tc_attr_off, (tc_charset_start ? (const char *)tc_charset_start : ""), (tty_is_xterm ? "\033[?1h" : "")); HW->FlushVideo = termcap_FlushVideo; HW->FlushHW = stdout_FlushHW; HW->ShowMouse = termcap_ShowMouse; HW->HideMouse = termcap_HideMouse; HW->UpdateMouseAndCursor = termcap_UpdateMouseAndCursor; HW->DetectSize = stdin_DetectSize; HW->CheckResize = stdin_CheckResize; HW->Resize = stdin_Resize; HW->HWSelectionImport = AlwaysFalse; HW->HWSelectionExport = NoOp; HW->HWSelectionRequest = (void (*)(obj, uldat))NoOp; HW->HWSelectionNotify = (void (*)(uldat, uldat, const char *, Chars))NoOp; HW->HWSelectionPrivate = 0; HW->CanDragArea = termcap_CanDragArea; HW->DragArea = termcap_DragArea; HW->XY[0] = HW->XY[1] = -1; HW->TT = -1; /* force updating the cursor */ HW->Beep = termcap_Beep; HW->Configure = termcap_Configure; HW->ConfigureKeyboard = termcap_ConfigureKeyboard; HW->SetPalette = (void (*)(udat, udat, udat, udat))NoOp; HW->ResetPalette = (void (*)(void))NoOp; HW->QuitVideo = termcap_QuitVideo; HW->FlagsHW |= FlHWNeedOldVideo; HW->FlagsHW &= ~FlHWExpensiveFlushVideo; HW->NeedHW = 0; HW->merge_Threshold = 0; LookupKey = termcap_LookupKey; return ttrue; } static void termcap_QuitVideo(void) { termcap_MoveToXY(0, DisplayHeight - 1); termcap_SetCursorType(LINECURSOR); /* reset colors and charset */ fprintf(stdOUT, "%s%s", tc_attr_off, tc_charset_end ? tc_charset_end : ""); /* restore original alt cursor keys, keypad settings */ HW->Configure(HW_KBDAPPLIC, ttrue, 0); HW->Configure(HW_ALTCURSKEYS, ttrue, 0); termcap_cleanup(); HW->QuitVideo = NoOp; } #define termcap_MogrifyInit() \ fputs(tc_attr_off, stdOUT); \ _col = TCOL(twhite, tblack) #define termcap_MogrifyFinish() \ do { \ } while (0) inline char *termcap_CopyAttr(char *attr, char *dest) { while ((*dest++ = *attr++)) ; return --dest; } inline void termcap_SetColor(tcolor col) { static char colbuf[80]; char *colp = colbuf; byte c; if ((col & TCOL(thigh, thigh)) != (_col & TCOL(thigh, thigh))) { if (((_col & TCOL(0, thigh)) && !(col & TCOL(0, thigh))) || ((_col & TCOL(thigh, 0)) && !(col & TCOL(thigh, 0)))) { /* cannot turn off blinking or standout, reset everything */ colp = termcap_CopyAttr(tc_attr_off, colp); _col = TCOL(twhite, tblack); } if ((col & TCOL(thigh, 0)) && !(_col & TCOL(thigh, 0))) colp = termcap_CopyAttr(tc_bold_on, colp); if ((col & TCOL(0, thigh)) && !(_col & TCOL(0, thigh))) colp = termcap_CopyAttr(tc_blink_on, colp); } if ((col & TCOL(twhite, twhite)) != (_col & TCOL(twhite, twhite))) { *colp++ = '\033'; *colp++ = '['; if ((col & TCOL(twhite, 0)) != (_col & TCOL(twhite, 0))) { *colp++ = '3'; c = TCOLFG(col) & ~thigh; *colp++ = TVGA2ANSI(c) + '0'; *colp++ = ';'; } if ((col & TCOL(0, twhite)) != (_col & TCOL(0, twhite))) { *colp++ = '4'; c = TCOLBG(col) & ~thigh; *colp++ = TVGA2ANSI(c) + '0'; *colp++ = 'm'; } else if (colp[-1] == ';') { colp[-1] = 'm'; } } *colp = '\0'; _col = col; fputs(colbuf, stdOUT); } inline void termcap_Mogrify(dat x, dat y, uldat len) { uldat delta = x + y * (uldat)DisplayWidth; tcell *V, *oV; tcolor col; trune c, _c; byte sending = tfalse; if (!wrapglitch && delta + len >= (uldat)DisplayWidth * DisplayHeight) len = (uldat)DisplayWidth * DisplayHeight - delta - 1; V = Video + delta; oV = OldVideo + delta; for (; len; V++, oV++, x++, len--) { if (!ValidOldVideo || *V != *oV) { if (!sending) sending = ttrue, termcap_MoveToXY(x, y); col = TCOLOR(*V); if (col != _col) termcap_SetColor(col); c = _c = TRUNE(*V); if (c >= 128) { if (tty_use_utf8) { /* use utf-8 to output this non-ASCII char */ tty_MogrifyUTF8(_c); continue; } else if (tty_charset_to_UTF_32[c] != c) { c = tty_UTF_32_to_charset(_c); } } if (c < 32 || c == 127 || c == 128 + 27) { /* can't display it */ c = Tutf_UTF_32_to_ASCII(_c); if (c < 32 || c >= 127) c = 32; } putc((char)c, stdOUT); } else sending = tfalse; } } inline void termcap_SingleMogrify(dat x, dat y, tcell V) { trune c, _c; if (!wrapglitch && x == DisplayWidth - 1 && y == DisplayHeight - 1) /* wrapglitch is required to write to last screen position without scrolling */ return; termcap_MoveToXY(x, y); if (TCOLOR(V) != _col) termcap_SetColor(TCOLOR(V)); c = _c = TRUNE(V); if (c >= 128) { if (tty_use_utf8) { /* use utf-8 to output this non-ASCII char */ tty_MogrifyUTF8(_c); return; } else if (tty_charset_to_UTF_32[c] != c) { c = tty_UTF_32_to_charset(_c); } } if (c < 32 || c == 127 || c == 128 + 27) { /* can't display it */ c = Tutf_UTF_32_to_ASCII(_c); if (c < 32 || c >= 127) c = 32; } putc((char)c, stdOUT); } /* HideMouse and ShowMouse depend on Video setup, not on Mouse. * so we have linux_ and termcap_ versions, not GPM_ ones... */ static void termcap_ShowMouse(void) { uldat pos = (HW->Last_x = HW->MouseState.x) + (HW->Last_y = HW->MouseState.y) * (ldat)DisplayWidth; tcell h = Video[pos], c = TCELL_COLMASK(~h) ^ TCELL(TCOL(thigh, thigh), 0); termcap_SingleMogrify(HW->MouseState.x, HW->MouseState.y, c | TCELL_FONTMASK(h)); /* force updating the cursor */ HW->XY[0] = HW->XY[1] = -1; setFlush(); } static void termcap_HideMouse(void) { uldat pos = HW->Last_x + HW->Last_y * (ldat)DisplayWidth; termcap_SingleMogrify(HW->Last_x, HW->Last_y, Video[pos]); /* force updating the cursor */ HW->XY[0] = HW->XY[1] = -1; setFlush(); } static void termcap_Beep(void) { fputs(tc_audio_bell, stdOUT); setFlush(); } static void termcap_UpdateCursor(void) { if (!ValidOldVideo || (CursorType != NOCURSOR && (CursorX != HW->XY[0] || CursorY != HW->XY[1]))) { termcap_MoveToXY(HW->XY[0] = CursorX, HW->XY[1] = CursorY); setFlush(); } if (!ValidOldVideo || CursorType != HW->TT) { termcap_SetCursorType(HW->TT = CursorType); setFlush(); } } static void termcap_UpdateMouseAndCursor(void) { if ((HW->FlagsHW & FlHWSoftMouse) && (HW->FlagsHW & FlHWChangedMouseFlag)) { HW->HideMouse(); HW->ShowMouse(); HW->FlagsHW &= ~FlHWChangedMouseFlag; } termcap_UpdateCursor(); } static void termcap_ConfigureKeyboard(udat resource, byte todefault, udat value) { switch (resource) { case HW_KBDAPPLIC: if (tty_is_xterm) { fputs(todefault || !value ? tc_kpad_on : tc_kpad_off, stdOUT); /* * on xterm, tc_kpad_off has the undesired side-effect * of changing the sequences produced by cursor keys, * so we must restore the usual sequences */ fputs("\033[?1h", stdOUT); setFlush(); } break; case HW_ALTCURSKEYS: /* fputs(todefault || !value ? "\033[?1l" : "\033[?1h", stdOUT); setFlush(); */ break; } } static void termcap_Configure(udat resource, byte todefault, udat value) { switch (resource) { case HW_KBDAPPLIC: case HW_ALTCURSKEYS: HW->ConfigureKeyboard(resource, todefault, value); break; case HW_BELLPITCH: case HW_BELLDURATION: /* unsupported */ break; case HW_MOUSEMOTIONEVENTS: HW->ConfigureMouse(resource, todefault, value); break; default: break; } } static byte termcap_CanDragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { return Left == 0 && Rgt == HW->X - 1 && Dwn == HW->Y - 1 && DstUp == 0; } static void termcap_DragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { udat delta = Up - DstUp; HW->HideMouse(); HW->FlagsHW |= FlHWChangedMouseFlag; fprintf(stdOUT, "%s\033[0m%s", /* hide cursor, reset color */ tc_cursor_off, tgoto(tc_cursor_goto, 0, HW->Y - 1)); /* go to last line */ while (delta--) putc('\n', stdOUT); setFlush(); /* force updating the cursor */ HW->XY[0] = HW->XY[1] = -1; /* * now the last trick: tty scroll erased the part * below DstUp + (Dwn - Up) so we must redraw it. */ NeedRedrawVideo(0, DstUp + (Dwn - Up) + 1, HW->X - 1, HW->Y - 1); } static void termcap_FlushVideo(void) { dat i, j; dat start, end; byte FlippedVideo = tfalse, FlippedOldVideo = tfalse; tcell savedOldVideo; if (!ChangedVideoFlag) { HW->UpdateMouseAndCursor(); return; } /* hide the mouse if needed */ /* first, check the old mouse position */ if (HW->FlagsHW & FlHWSoftMouse) { if (HW->FlagsHW & FlHWChangedMouseFlag) { /* dirty the old mouse position, so that it will be overwritten */ /* * with multi-display this is a hack, but since OldVideo gets restored * below *BEFORE* returning from termcap_FlushVideo(), that's ok. */ DirtyVideo(HW->Last_x, HW->Last_y, HW->Last_x, HW->Last_y); if (ValidOldVideo) { FlippedOldVideo = ttrue; savedOldVideo = OldVideo[HW->Last_x + HW->Last_y * (ldat)DisplayWidth]; OldVideo[HW->Last_x + HW->Last_y * (ldat)DisplayWidth] = ~Video[HW->Last_x + HW->Last_y * (ldat)DisplayWidth]; } } i = HW->MouseState.x; j = HW->MouseState.y; /* * instead of calling ShowMouse(), * we flip the new mouse position in Video[] and dirty it if necessary. */ if ((HW->FlagsHW & FlHWChangedMouseFlag) || (FlippedVideo = Plain_isDirtyVideo(i, j))) { VideoFlip(i, j); if (!FlippedVideo) DirtyVideo(i, j, i, j); HW->FlagsHW &= ~FlHWChangedMouseFlag; FlippedVideo = ttrue; } else FlippedVideo = tfalse; } termcap_MogrifyInit(); if (HW->TT != NOCURSOR) termcap_SetCursorType(HW->TT = NOCURSOR); for (i = 0; i < DisplayHeight * 2; i++) { start = ChangedVideo[i >> 1][i & 1][0]; end = ChangedVideo[i >> 1][i & 1][1]; if (start != -1) termcap_Mogrify(start, i >> 1, end - start + 1); } /* force updating the cursor */ HW->XY[0] = HW->XY[1] = -1; setFlush(); /* ... and this redraws the mouse */ if (HW->FlagsHW & FlHWSoftMouse) { if (FlippedOldVideo) OldVideo[HW->Last_x + HW->Last_y * (ldat)DisplayWidth] = savedOldVideo; if (FlippedVideo) VideoFlip(HW->Last_x = HW->MouseState.x, HW->Last_y = HW->MouseState.y); else if (HW->FlagsHW & FlHWChangedMouseFlag) HW->ShowMouse(); } termcap_UpdateCursor(); HW->FlagsHW &= ~FlHWChangedMouseFlag; } #endif /* CONF_HW_TTY_TERMCAP */ �����������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_common/driver_termcap_decls.h�������������������������������������������0000664�0000000�0000000�00000005157�13775351206�0023665�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ #ifndef TWIN_HW_TTY_TERMCAP_H #define TWIN_HW_TTY_TERMCAP_H /* this is the usual mess of ad-hoc includes and defines... */ #if defined(__sun__) || defined(__SVR4) /* curses interfaces (emulated) to the termcap library (Solaris7, bwitt) */ #undef ttrue #undef tfalse #include <curses.h> #include <termio.h> /* Solaris7: needed "typedef struct sgttyb SGTTY" */ #include <term.h> #ifdef __sun__ /* Someone forgot a few prototypes! ugh (Solaris7, bwitt) */ extern char *tgoto(), *tgetstr(); #endif #else /* rest of the world */ #ifdef TW_HAVE_TERMCAP_H #include <termcap.h> #else #ifdef TW_HAVE_NCURSES_TERMCAP_H #include <ncurses/termcap.h> #else #ifdef TW_HAVE_NCURSES_H #include <ncurses.h> #else #ifdef TW_HAVE_NCURSES_NCURSES_H #include <ncurses/ncurses.h> #endif #endif #endif #endif #endif /* rest of the world */ static void termcap_QuitVideo(void); static void termcap_ShowMouse(void); static void termcap_HideMouse(void); static void termcap_FlushVideo(void); static void termcap_UpdateMouseAndCursor(void); static void termcap_Beep(void); static void termcap_Configure(udat resource, byte todefault, udat value); static void termcap_ConfigureKeyboard(udat resource, byte todefault, udat value); static byte termcap_CanDragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp); static void termcap_DragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp); /* * termcap names for special keys: * * kb : backspace * k1 : f1 function key * k2 : f2 function key * k3 : f3 function key * k4 : f4 function key * k5 : f5 function key * k6 : f6 function key * k7 : f7 function key * k8 : f8 function key * k9 : f9 function key * k; : f10 function key * F1 : f11 function key * F2 : f12 function key * * &7 : Suspend key * kh : Home key * @7 : End key * kD : Delete (Remove) key * kI : Insert key * kN : Next Page key * kP : Prev Page key * kl : Left Arrow key * ku : Up Arrow key * kr : Right Arrow key * kd : Down Arrow key */ struct tc_init_node { byte *cap, **buf; }; enum { tc_seq_first, tc_seq_scr_clear = tc_seq_first, tc_seq_cursor_goto, tc_seq_cursor_on, tc_seq_cursor_off, tc_seq_bold_on, tc_seq_blink_on, tc_seq_attr_off, tc_seq_kpad_on, tc_seq_kpad_off, tc_seq_audio_bell, tc_seq_charset_start, tc_seq_charset_end, tc_seq_last, tc_key_first = tc_seq_last, tc_key_FN = tc_key_first, tc_key_Suspend = tc_key_FN + 12, tc_key_Home, tc_key_End, tc_key_Delete, tc_key_Insert, tc_key_Page_Down, tc_key_Page_Up, tc_key_Left, tc_key_Up, tc_key_Right, tc_key_Down, tc_key_last, tc_cap_N = tc_key_last }; #endif /* TWIN_HW_TTY_TERMCAP_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_common/kbd_stdin.h������������������������������������������������������0000664�0000000�0000000�00000020414�13775351206�0021437�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* plain Unix-style tty keyboard input */ /* it can't update FullShiftFlags :( */ #include "util.h" /* for SetAlarm(), AlarmReceived */ static void stdin_QuitKeyboard(void); static void stdin_KeyboardEvent(int fd, display_hw hw); static udat linux_LookupKey(udat *ShiftFlags, byte *slen, char *s, byte *retlen, const char **ret); static void xterm_MouseEvent(int, display_hw); static byte stdin_TestTty(void) { struct termios ttyb; byte buf[16], *s = buf + 3, c; int i, alarmReceived; byte ok = ttrue; ttyb = ttysave; /* NL=='\n'==^J; CR=='\r'==^M */ ttyb.c_iflag &= ~(IXON | IXOFF | IGNCR | INLCR | ICRNL); /*ttyb.c_oflag &= ~OPOST;*/ ttyb.c_lflag &= ~(ECHO | ICANON); ttyb.c_cc[VTIME] = 0; ttyb.c_cc[VMIN] = 1; /* disable special handling of suspend key (^Z), quit key (^\), break key (^C) */ ttyb.c_cc[VSUSP] = 0; ttyb.c_cc[VQUIT] = 0; ttyb.c_cc[VINTR] = 0; tty_setioctl(tty_fd, &ttyb); /* request ID */ if (write(tty_fd, "\033[c", 3) != 3) { Errstr = "write() to tty failed"; ok = tfalse; } else { /* ensure we CAN read from the tty */ SetAlarm(5); do { i = read(tty_fd, buf, 15); } while ((alarmReceived = AlarmReceived) == 0 && i < 0 && (errno == EWOULDBLOCK || errno == EINTR)); SetAlarm(0); if (i <= 0) { Error(SYSERROR); if (alarmReceived) Errstr = "read() from tty timed out"; else if (i == 0) Errstr = "read() from tty returned END-OF-FILE"; ok = tfalse; } } if (!ok) { tty_setioctl(tty_fd, &ttysave); return ok; } buf[i] = '\0'; ttypar[0] = ttypar[1] = ttypar[2] = i = 0; while (i < 3 && (c = *s)) { if (c >= '0' && c <= '9') { ttypar[i] *= 10; ttypar[i] += c - '0'; } else if (*s == ';') i++; else break; s++; } return ok; } /* return tfalse if failed */ static byte stdin_InitKeyboard(void) { if (LookupKey == NULL #if defined(CONF_HW_TTY_LINUX) || defined(CONF_HW_TTY_TWTERM) && strcmp(tty_TERM, "linux") && strcmp(tty_TERM, "twterm") #endif ) return tfalse; HW->keyboard_slot = RegisterRemote(tty_fd, (obj)HW, (void (*)(int, obj))stdin_KeyboardEvent); if (HW->keyboard_slot == NOSLOT) { stdin_QuitKeyboard(); return tfalse; } HW->KeyboardEvent = stdin_KeyboardEvent; HW->QuitKeyboard = stdin_QuitKeyboard; if (LookupKey == NULL) LookupKey = linux_LookupKey; return ttrue; } static void stdin_QuitKeyboard(void) { tty_setioctl(tty_fd, &ttysave); UnRegisterRemote(HW->keyboard_slot); HW->keyboard_slot = NOSLOT; HW->QuitKeyboard = NoOp; } /* kludge! this is ok for linux terminals only... */ static udat linux_LookupKey(udat *ShiftFlags, byte *slen, char *s, byte *retlen, const char **ret) { byte used = 0, len = *slen; *ShiftFlags = 0; if (len == 0) { *retlen = len; return TW_Null; } *ret = s; if (len > 1 && *s == '\x1B') { ++used, --len; ++s; if (len == 1) { /* try to handle ALT + <some key> */ *slen = *retlen = ++used; *ShiftFlags = KBD_ALT_FL; return (udat)*s; } switch (*s) { #define K(sym) \ *slen = *retlen = ++used; \ return TW_##sym #define IS(sym, c) \ case c: \ K(sym) case '[': if (++used, --len) switch (*++s) { /* ESC [ */ IS(Up, 'A'); IS(Down, 'B'); IS(Right, 'C'); IS(Left, 'D'); IS(KP_5, 'G'); /* returned when NumLock is off */ IS(Pause, 'P'); /* FALLTHROUGH */ case '[': /* ESC [ [ */ if (++used, --len) switch (*++s) { IS(F1, 'A'); IS(F2, 'B'); IS(F3, 'C'); IS(F4, 'D'); IS(F5, 'E'); } break; case '1': /* ESC [ 1 */ if (++used, --len) { ++s; if (len == 1 && *s == '~') { /* ESC [ 1 ~ */ K(Home); } ++used, --len; if (len && s[1] == '~') /* ESC [ 1 ? ~ */ switch (*s) { IS(F6, '7'); IS(F7, '8'); IS(F8, '9'); } } break; case '2': /* ESC [ 2 */ if (++used, --len) { ++s; if (len == 1 && *s == '~') { /* ESC 2 ~ */ K(Insert); } ++used, --len; if (len && s[1] == '~') /* ESC [ 2 ? ~ */ switch (*s) { IS(F9, '0'); IS(F10, '1'); IS(F11, '3'); IS(F12, '4'); } } break; case '3': /* ESC [ 3 */ if (++used, --len) switch (*++s) { IS(Delete, '~'); } break; case '4': /* ESC [ 4 */ if (++used, --len) switch (*++s) { IS(End, '~'); } break; case '5': /* ESC [ 5 */ if (++used, --len) switch (*++s) { IS(Prior, '~'); } break; case '6': /* ESC [ 6 */ if (++used, --len) switch (*++s) { IS(Next, '~'); } break; } break; case 'O': /* ESC O */ if (++used, --len) switch (*++s) { /* alternate cursor keys... */ IS(Up, 'A'); IS(Down, 'B'); IS(Right, 'C'); IS(Left, 'D'); IS(KP_5, 'G'); IS(KP_Enter, 'M'); IS(Num_Lock, 'P'); IS(KP_Divide, 'Q'); IS(KP_Multiply, 'R'); IS(KP_Subtract, 'S'); IS(KP_Add, 'l'); IS(KP_Separator, 'm'); IS(KP_Delete, 'n'); IS(KP_Equal, 'o'); IS(KP_0, 'p'); IS(KP_1, 'q'); IS(KP_2, 'r'); IS(KP_3, 's'); IS(KP_4, 't'); IS(KP_5, 'u'); IS(KP_6, 'v'); IS(KP_7, 'w'); IS(KP_8, 'x'); IS(KP_9, 'y'); } break; default: break; } #undef IS #undef K } /* undo the increments above */ s -= used; len += used; used = 0; *slen = *retlen = ++used; switch (*s) { case TW_Tab: case TW_Linefeed: case TW_Return: case TW_Escape: return (udat)*s; default: if (*s < ' ') { /* try to handle CTRL + <some key> */ *ShiftFlags = KBD_CTRL_FL; return (udat)*s | 0x40; } return (udat)*s; } /* NOTREACHED */ return TW_Null; } static void stdin_KeyboardEvent(int fd, display_hw hw) { static char buf[TW_SMALLBUFF]; static fd_set rfds; static struct timeval t; char *s = buf, *end = buf + sizeof(buf) - 1; const char *ret; udat Code, ShiftFlags; byte got, chunk, retlen; SaveHW; SetHW(hw); FD_ZERO(&rfds); FD_SET(fd, &rfds); t.tv_sec = 0; t.tv_usec = 1000; do { got = read(fd, s, end - s); } while (got > 0 && (s += got) < end && select(fd + 1, &rfds, NULL, NULL, &t) == 1); if (got == (byte)-1 && errno != EINTR && errno != EWOULDBLOCK) { /* BIG troubles */ HW->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; return; } got = s - buf; s = buf; while (got > 0) { if (HW->MouseEvent == xterm_MouseEvent) { while (got) { if (got >= 6 && !memcmp(s, "\033[M", 3)) { /* classic xterm mouse reporting (X11 specs) */ CopyMem(s, xterm_mouse_seq, xterm_mouse_len = chunk = 6); } else if (got >= 9 && !memcmp(s, "\033[5M", 4)) { /* enhanced xterm-style reporting (twin specs) */ CopyMem(s, xterm_mouse_seq, xterm_mouse_len = chunk = 9); } else break; s += chunk, got -= chunk; xterm_MouseEvent(fd, HW); } } /* ok, now try to find out the correct KeyCode for the ASCII sequence we got */ if (!(chunk = got)) break; ret = end; Code = LookupKey(&ShiftFlags, &chunk, s, &retlen, &ret); s += chunk, got -= chunk; KeyboardEventCommon(Code, ShiftFlags, retlen, ret); } RestoreHW; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_common/mouse_xterm.h����������������������������������������������������0000664�0000000�0000000�00000011255�13775351206�0022050�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * xterm-style mouse input * * used to let twin run inside twin terminal, xterm, etc. * * it is always compiled in. */ static void xterm_QuitMouse(void); static void xterm_MouseEvent(int fd, display_hw hw); static void xterm_ConfigureMouse(udat resource, byte todefault, udat value); /* return tfalse if failed */ static byte xterm_InitMouse(byte force) { const char *term = tty_TERM; if (force == ttrue) { printk(" xterm_InitMouse(): xterm-style mouse FORCED.\n" " Assuming terminal has xterm compatible mouse reporting.\n"); term = "xterm"; } else if (force == ttrue + ttrue) { printk(" xterm_InitMouse(): twterm-style mouse FORCED.\n" " Assuming terminal has twterm compatible mouse reporting.\n"); term = "twterm"; } if (!term) { printk("%s", " xterm_InitMouse() failed: unknown terminal type.\n"); return tfalse; } mouse_start_seq = "\033[?9h"; mouse_end_seq = "\033[?9l"; mouse_motion_seq = "\033[?999h"; if (!strcmp(term, "twterm")) { ; } else if (!strcmp(term, "linux")) { /* * additional check... out-of-the box linux * doesn't have xterm-style mouse reporting */ if (ttypar[0] < 6 || (ttypar[0] == 6 && ttypar[1] < 3)) { printk("%s", " xterm_InitMouse() failed: this `linux' terminal\n" " has no support for xterm-style mouse reporting.\n"); return tfalse; } if (ttypar[0] == 6 && ttypar[1] < 4) { printk(" xterm_InitMouse() warning: this `linux' terminal\n" " can only report click, drag and release, not motion.\n"); mouse_motion_seq = mouse_start_seq; } } else if (!strncmp(term, "xterm", 5) || !strncmp(term, "rxvt", 4) || !strncmp(term, "Eterm", 5)) { mouse_start_seq = "\033[?1001s\033[?1000h\033[?1002h"; mouse_end_seq = "\033[?1002l\033[?1000l\033[?1001r"; mouse_motion_seq = mouse_start_seq; } else { printk("%s", " xterm_InitMouse() failed: terminal `" SS "' is not supported.\n", term); return tfalse; } fputs(mouse_start_seq, stdOUT); setFlush(); HW->mouse_slot = NOSLOT; /* shared with keyboard */ HW->MouseEvent = xterm_MouseEvent; HW->ConfigureMouse = xterm_ConfigureMouse; HW->QuitMouse = xterm_QuitMouse; HW->FlagsHW &= ~FlHWSoftMouse; /* no need to Hide/Show it */ HW->ShowMouse = HW->HideMouse = NoOp; /* override the ones set by InitVideo() */ return ttrue; } static void xterm_QuitMouse(void) { fputs(mouse_end_seq, stdOUT); HW->QuitMouse = NoOp; } static void xterm_ConfigureMouse(udat resource, byte todefault, udat value) { switch (resource) { case HW_MOUSEMOTIONEVENTS: /* either enable new style + mouse motion, or switch back to new style */ fputs(value && !todefault ? mouse_motion_seq : mouse_start_seq, stdOUT); setFlush(); break; default: break; } } static void xterm_MouseEvent(int fd, display_hw hw) { udat Buttons = 0, Id; dat x, y, dx, dy; dat prev_x = xterm_prev_x, prev_y = xterm_prev_y; const char *s = xterm_mouse_seq; byte len = xterm_mouse_len; if (s[0] != '\033' || s[1] != '[') return; if (len == 6 && s[2] == 'M' && (Id = (byte)s[3]) >= 32 && Id < 96) { /* classic xterm mouse reporting (X11 specs) */ /* |32 if click/release, or |64 if drag. Ignore them. */ /* also ignore keyboard modifiers: |4 (shift) |8 (alt) and |16 (ctrl) */ Id &= 3; if (Id == 0) Buttons |= HOLD_LEFT; else if (Id == 1) Buttons |= HOLD_MIDDLE; else if (Id == 2) Buttons |= HOLD_RIGHT; x = (byte)s[4] - '!'; y = (byte)s[5] - '!'; } else if (len == 9 && s[2] == '5' && s[3] == 'M' && (Id = (byte)s[4]) >= ' ' && (Id -= ' ') <= (HOLD_ANY >> HOLD_BITSHIFT)) { /* enhanced xterm-style reporting (twin specs) */ Buttons = Id << HOLD_BITSHIFT; x = (udat)(((byte)s[5] - '!') & 0x7f) | (udat)((udat)(((byte)s[6] - '!') & 0x7f) << 7); if (x & ((udat)1 << 13)) /* top bit is set, set also higher ones */ x |= (udat)~0 << 14; y = (udat)(((byte)s[7] - '!') & 0x7f) | (udat)((udat)(((byte)s[8] - '!') & 0x7f) << 7); if (y & ((udat)1 << 13)) /* top bit is set, set also higher ones */ y |= (udat)~0 << 14; } else return; x = Max2(x, 0); x = Min2(x, DisplayWidth - 1); y = Max2(y, 0); y = Min2(y, DisplayHeight - 1); if (x == 0 && prev_x == 0) dx = -1; else if (x == DisplayWidth - 1 && prev_x == DisplayWidth - 1) dx = 1; else dx = 0; if (y == 0 && prev_y == 0) dy = -1; else if (y == DisplayHeight - 1 && prev_y == DisplayHeight - 1) dy = 1; else dy = 0; xterm_prev_x = x; xterm_prev_y = y; MouseEventCommon(x, y, dx, dy, Buttons); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_linux/������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0017173�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_linux/driver_linux.h����������������������������������������������������0000664�0000000�0000000�00000001570�13775351206�0022061�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * Linux console, linux terminal and twterm terminal drivers: * * raw keyboard tty input; * (as fallback, plain Unix-style tty keyboard input) * * mouse input uses libgpm to connect to `gpm' mouse daemon * and read mouse state, but draws mouse pointer manually; * (as fallback, xterm-style mouse input) * * output through stdout * * CONF_HW_TTY_LINUX is for linux console support (gpm, stdout), while * CONF_HW_TTY_TWTERM is for twin terminal (xterm style mouse, stdout) */ #ifdef CONF_HW_TTY_LINUX #include "mouse_gpm.h" #endif /* CONF_HW_TTY_LINUX */ #if defined(CONF_HW_TTY_LINUX) || defined(CONF_HW_TTY_TWTERM) #include "video_stdout.h" #endif /* defined(CONF_HW_TTY_LINUX) || defined(CONF_HW_TTY_TWTERM) */ #if defined(CONF_HW_TTY_LINUX) && defined(CONF_HW_TTY_LRAWKBD) #include "kbd_raw.h" #endif /* defined(CONF_HW_TTY_LINUX) && defined(CONF_HW_TTY_LRAWKBD) */ ����������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_linux/kbd_bitops.h������������������������������������������������������0000664�0000000�0000000�00000002110�13775351206�0021456�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������inline int lrawkbd_test_bit(uldat nr, void *addr_) { uldat mask, *addr = (uldat *)addr_; addr += nr / BITS_PER_ULDAT; mask = 1 << (nr & (BITS_PER_ULDAT - 1)); return ((mask & *addr) != 0); } inline void lrawkbd_set_bit(uldat nr, void *addr_) { uldat mask, *addr = (uldat *)addr_; addr += nr / BITS_PER_ULDAT; mask = 1 << (nr & (BITS_PER_ULDAT - 1)); *addr |= mask; } inline int lrawkbd_test_and_set_bit(uldat nr, void *addr_) { uldat mask, *addr = (uldat *)addr_; int retval; addr += nr / BITS_PER_ULDAT; mask = 1 << (nr & (BITS_PER_ULDAT - 1)); retval = (mask & *addr) != 0; *addr |= mask; return retval; } inline void lrawkbd_clear_bit(uldat nr, void *addr_) { uldat mask, *addr = (uldat *)addr_; addr += nr / BITS_PER_ULDAT; mask = 1 << (nr & (BITS_PER_ULDAT - 1)); *addr &= ~mask; } inline int lrawkbd_test_and_clear_bit(uldat nr, void *addr_) { uldat mask, *addr = (uldat *)addr_; int retval; addr += nr / BITS_PER_ULDAT; mask = 1 << (nr & (BITS_PER_ULDAT - 1)); retval = (mask & *addr) != 0; *addr &= ~mask; return retval; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_linux/kbd_raw.h���������������������������������������������������������0000664�0000000�0000000�00000015017�13775351206�0020761�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* Linux console keyboard input */ #ifdef TW_HAVE_SYS_WAIT_H #include <sys/wait.h> #endif #include <signal.h> #include "kbd_raw1.h" /* only one display at time can be in raw-keyboard mode... results in much simpler code */ static display_hw lrawkbd_HW; static int lrawkbd_mode_save; static void lrawkbd_QuitKeyboard(void); static void lrawkbd_ConfigureKeyboard(udat resource, byte todefault, udat value); static udat lrawkbd_LookupKey(udat *ShiftFlags, byte *slen, char *s, byte *retlen, char **ret); static void lrawkbd_KeyboardEvent(int fd, display_hw hw); static byte lrawkbd_GetKeyboard(void); static void lrawkbd_SetKeyboard(void); static void lrawkbd_RestoreKeyboard(void); static void lrawkbd_LoadKeymaps(void); static void lrawkbd_FreeKeymaps(void); static void lrawkbd_GrabConsole(void); static void lrawkbd_ReleaseConsole(void); static void lrawkbd_InitSignals(void); static void lrawkbd_QuitSignals(void); /* return tfalse if failed */ static byte lrawkbd_InitKeyboard(void) { struct termios ttyb; if (lrawkbd_HW) { printk("lrawkbd_InitKeyboard(): error: another display is already using raw-keyboard mode.\n"); return tfalse; } else if (!lrawkbd_GetKeyboard()) { printk("lrawkbd_InitKeyboard(): error: tty is not a Linux console: ioctl(KDGKBMODE) failed!\n"); return tfalse; } lrawkbd_HW = HW; HW->keyboard_slot = RegisterRemote(tty_fd, (obj)HW, (void (*)(int, obj))lrawkbd_KeyboardEvent); if (HW->keyboard_slot == NOSLOT) return tfalse; HW->KeyboardEvent = lrawkbd_KeyboardEvent; HW->ConfigureKeyboard = lrawkbd_ConfigureKeyboard; HW->QuitKeyboard = lrawkbd_QuitKeyboard; ttyb = ttysave; /* NL=='\n'==^J; CR=='\r'==^M */ ttyb.c_iflag &= ~(IXON | IXOFF | IGNCR | INLCR | ICRNL); ttyb.c_cflag |= CS8; /*ttyb.c_oflag &= ~OPOST;*/ ttyb.c_lflag &= ~(ECHO | ICANON); ttyb.c_cc[VTIME] = 0; ttyb.c_cc[VMIN] = 0; /* disable special handling of suspend key (^Z), quit key (^\), break key (^C) */ ttyb.c_cc[VSUSP] = 0; /* set non-blocking mode */ ttyb.c_cc[VQUIT] = 0; ttyb.c_cc[VINTR] = 0; tty_setioctl(tty_fd, &ttyb); lrawkbd_InitSignals(); lrawkbd_GrabConsole(); lrawkbd_LoadKeymaps(); lrawkbd_SetKeyboard(); return ttrue; } static void lrawkbd_QuitKeyboard(void) { lrawkbd_RestoreKeyboard(); lrawkbd_FreeKeymaps(); lrawkbd_ReleaseConsole(); lrawkbd_QuitSignals(); tty_setioctl(tty_fd, &ttysave); UnRegisterRemote(HW->keyboard_slot); HW->keyboard_slot = NOSLOT; HW->QuitKeyboard = NoOp; lrawkbd_HW = NULL; } static void lrawkbd_ConfigureKeyboard(udat resource, byte todefault, udat value) { uldat flag = 0; switch (resource) { case HW_KBDAPPLIC: flag = VC_APPLIC; break; case HW_ALTCURSKEYS: flag = VC_CKMODE; break; default: return; } if (todefault || !value) clr_vc_kbd_mode(kbd, flag); else set_vc_kbd_mode(kbd, flag); } #ifdef DEBUG_HW_TTY_LRAWKBD static void dump_bytes(byte *s, uldat len) { uldat i; byte c; printk("lrawkbd: received `"); for (i = 0; (c = s[i]) && i < len; i++) { if (c >= ' ' && c <= '~') printk("%c", (int)c); else printk("\\x%02X", (int)c); } printk("'\n"); } #endif // DEBUG_HW_TTY_LRAWKBD static void lrawkbd_KeyboardEvent(int fd, display_hw hw) { char buf[16], *s, *ret; udat Code, ShiftFlags; byte got, chunk, retlen; SaveHW; SetHW(hw); got = read(fd, s = buf, 16); if (got == 0 || (got == (byte)-1 && errno != EINTR && errno != EWOULDBLOCK)) { /* BIG troubles */ HW->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; return; } while (got > 0) { /* ok, now try to find out the correct KeyCode for the scancodes we got */ chunk = got; #ifdef DEBUG_HW_TTY_LRAWKBD dump_bytes(s, got); #endif // DEBUG_HW_TTY_LRAWKBD Code = lrawkbd_LookupKey(&ShiftFlags, &chunk, s, &retlen, &ret); if (Code != TW_Null) KeyboardEventCommon(Code, ShiftFlags, retlen, ret); s += chunk, got -= chunk; } RestoreHW; } static byte lrawkbd_GetKeyboard(void) { return /* get original (probably XLATE) mode */ ioctl(tty_fd, KDGKBMODE, &lrawkbd_mode_save) >= 0; } static void lrawkbd_SetKeyboard(void) { /* set LED mode */ char leds = 0; ioctl(tty_fd, KDGETLED, &leds); ioctl(tty_fd, KDSETLED, lrawkbd_leds = leds & 7); /* set MEDIUMRAW mode */ ioctl(tty_fd, KDSKBMODE, K_MEDIUMRAW); } static void lrawkbd_RestoreKeyboard(void) { /* restore LED mode */ ioctl(tty_fd, KDSETLED, lrawkbd_leds | 8); /* restore original (probably XLATE) mode */ ioctl(tty_fd, KDSKBMODE, lrawkbd_mode_save); } static void lrawkbd_GrabConsole(void) { struct vt_mode vt; #if 0 struct vt_mode { char mode; /* vt mode */ char waitv; /* if set, hang on writes if not active */ short relsig; /* signal to raise on release req */ short acqsig; /* signal to raise on acquisition */ short frsig; /* unused (set to 0) */ }; #define VT_GETMODE 0x5601 /* get mode of active vt */ #define VT_SETMODE 0x5602 /* set mode of active vt */ #define VT_AUTO 0x00 /* auto vt switching */ #define VT_PROCESS 0x01 /* process controls switching */ #define VT_ACKACQ 0x02 /* acknowledge switch */ #endif /* 0 */ vt.mode = VT_PROCESS; vt.waitv = 0; vt.relsig = SIGUSR2; vt.acqsig = SIGUSR1; vt.frsig = 0; ioctl(tty_fd, VT_SETMODE, &vt); } static void lrawkbd_ReleaseConsole(void) { struct vt_mode vt; vt.mode = VT_AUTO; vt.waitv = 0; vt.relsig = 0; vt.acqsig = 0; vt.frsig = 0; ioctl(tty_fd, VT_SETMODE, &vt); } static TW_RETSIGTYPE lrawkbd_ReactSignalIn(int sig); static TW_RETSIGTYPE lrawkbd_ReactSignalOut(int sig) { /* HW may not be set here... use lrawkbd_HW */ SaveHW; SetHW(lrawkbd_HW); /* we just got SIGUSR1. restore settings and tell kernel we allow the switch */ signal(sig, lrawkbd_ReactSignalOut); lrawkbd_RestoreKeyboard(); ioctl(tty_fd, VT_RELDISP, 1); RestoreHW; TW_RETFROMSIGNAL(0); } static TW_RETSIGTYPE lrawkbd_ReactSignalIn(int sig) { /* HW may not be set here... use lrawkbd_HW */ SaveHW; SetHW(lrawkbd_HW); /* we just got SIGUSR2. tell kernel we allow the switch and initialize settings */ signal(sig, lrawkbd_ReactSignalIn); ioctl(tty_fd, VT_RELDISP, 2); lrawkbd_SetKeyboard(); RestoreHW; TW_RETFROMSIGNAL(0); } static void lrawkbd_InitSignals(void) { signal(SIGUSR1, lrawkbd_ReactSignalIn); signal(SIGUSR2, lrawkbd_ReactSignalOut); } static void lrawkbd_QuitSignals(void) { signal(SIGUSR1, SIG_DFL); signal(SIGUSR2, SIG_DFL); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_linux/kbd_raw1.h��������������������������������������������������������0000664�0000000�0000000�00000060054�13775351206�0021043�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * This file is derived from linux/drivers/char/keyboard.c : * * 31-03-03: adapted to twin, Massimiliano Ghilardi * * ******************************************************** * * linux/drivers/char/keyboard.c * * Written for linux by Johan Myreen as a translation from * the assembly version by Linus (with diacriticals added) * * Some additional features added by Christoph Niemann (ChN), March 1993 * * Loadable keymaps by Risto Kankkunen, May 1993 * * Diacriticals redone & other small changes, aeb@cwi.nl, June 1993 * Added decr/incr_console, dynamic keymaps, Unicode support, * dynamic function/string keys, led setting, Sept 1994 * `Sticky' modifier keys, 951006. * * 11-11-96: SAK should now work in the raw mode (Martin Mares) * * Modified to provide 'generic' keyboard support by Hamish Macdonald * Merge with the m68k keyboard driver and split-off of the PC low-level * parts by Geert Uytterhoeven, May 1997 * * 27-05-97: Added support for the Magic SysRq Key (Martin Mares) * 30-07-98: Dead keys redone, aeb@cwi.nl. * * ******************************************************** * */ #undef WNOHANG #undef WUNTRACED #include <linux/kd.h> #include <linux/keyboard.h> #include <linux/vt.h> #define SIZE(array) (sizeof(array) / sizeof(array[0])) #define BITS_PER_ULDAT (sizeof(uldat) * 8) #include "kbd_bitops.h" #define VC_APPLIC 0 /* application key mode */ #define VC_CKMODE 1 /* cursor key mode */ #define VC_REPEAT 2 /* keyboard repeat */ #define VC_CRLF 3 /* 0 - enter sends CR, 1 - enter sends CRLF */ #define VC_META 4 /* 0 - meta, 1 - meta=prefix with ESC */ #define vc_kbd_mode(kbd, bit) (lrawkbd_config >> (bit)&1) #define set_vc_kbd_mode(kbd, bit) (lrawkbd_config |= 1L << (bit)) #define clr_vc_kbd_mode(kbd, bit) (lrawkbd_config &= ~(1L << (bit))) #define chg_vc_kbd_mode(kbd, bit) (lrawkbd_config ^= 1L << (bit)) #define VC_SCROLLOCK 0 /* scroll-lock led mode */ #define VC_NUMLOCK 1 /* numeric lock led mode */ #define VC_CAPSLOCK 2 /* capslock led mode */ #define vc_kbd_led(kbd, bit) (lrawkbd_leds >> (bit)&1) #define set_vc_kbd_led(kbd, bit) set_lights(lrawkbd_leds |= 1L << (bit)) #define clr_vc_kbd_led(kbd, bit) set_lights(lrawkbd_leds &= ~(1L << (bit))) #define chg_vc_kbd_led(kbd, bit) set_lights(lrawkbd_leds ^= 1L << (bit)) #define chg_vc_kbd_lock(kbd, bit) (lrawkbd_lockstate ^= 1L << (bit)) #define chg_vc_kbd_slock(kbd, bit) (lrawkbd_slockstate ^= 1L << (bit)) #define U(x) ((x) ^ 0xf000) /* only one display at time can be in raw-keyboard mode... results in much simpler code */ static int lrawkbd_shiftstate; static int lrawkbd_config = 1 << VC_REPEAT | 1 << VC_META; static int lrawkbd_leds; static int lrawkbd_lockstate; static int lrawkbd_slockstate; /* shift state counters.. */ static byte k_down[NR_SHIFT]; /* keyboard key bitmap */ static uldat key_down[256 / BITS_PER_ULDAT]; static ldat dead_key_next; static ldat npadch = -1; /* -1 or number assembled on pad */ static char diacr; static byte rep; /* flag telling character repeat */ static char queue_buf[512]; static char *queue; /* the ASCII sequence of the current keycode */ static uldat queue_len; /* its length */ static int compute_shiftstate(void); static udat get_shiftstate_tw(void); static void set_lights(int lights); static udat get_kbentry(byte keycode, byte table); static const char *get_kbsentry(byte keysym); static udat do_spec(byte value, byte up_flag); static udat do_cur(byte value, byte up_flag); static void put_queue(char ch) { queue[queue_len++] = ch; } static void puts_queue(const char *cp) { while (*cp) { queue[queue_len++] = *cp++; } } static void applkey(char key, byte mode) { static char buf[] = {0x1b, 'O', 0x00, 0x00}; buf[1] = (mode ? 'O' : '['); buf[2] = key; puts_queue(buf); } static void noop_fn(void) { } static void enter(void) { if (diacr) { put_queue(diacr); diacr = 0; } put_queue(13); if (vc_kbd_mode(kbd, VC_CRLF)) put_queue(10); } static void caps_toggle(void) { if (!rep) chg_vc_kbd_led(kbd, VC_CAPSLOCK); } static void caps_on(void) { if (!rep) set_vc_kbd_led(kbd, VC_CAPSLOCK); } static void hold(void) { #if 1 if (!rep) chg_vc_kbd_led(kbd, VC_SCROLLOCK); #else if (rep) return; /* * Note: SCROLLOCK will be set (cleared) by stop_tty (start_tty); * these routines are also activated by ^S/^Q. * (And SCROLLOCK can also be set by the ioctl KDSKBLED.) */ if (tty_stopped) tty_start(); else tty_stop(); #endif /* 1 */ } /* * Bind this to Shift-NumLock if you work in application keypad mode * but want to be able to change the NumLock flag. * Bind this to NumLock if you prefer that the NumLock key always * changes the NumLock flag. */ static void bare_num(void) { if (!rep) chg_vc_kbd_led(kbd, VC_NUMLOCK); } static void num(void) { if (vc_kbd_mode(kbd, VC_APPLIC)) applkey('P', 1); else bare_num(); } static void set_console(byte nr) { ioctl(tty_fd, VT_ACTIVATE, nr & 63); /* we will receive SIGUSR1 if kernel needs our permission to switch */ } static udat get_console_bitmap(void) { struct vt_stat vs; #if 0 struct vt_stat { udat v_active; /* active vt */ udat v_signal; /* signal to send */ udat v_state; /* vt bitmask */ }; #endif if (ioctl(tty_fd, VT_GETSTATE, &vs) >= 0) return vs.v_state & ~1; /* skip tty0 */ return 0xFFFE; } #define b16 (sizeof(udat) * 8) static void set_console_ifthere(uldat k) { if (k >= b16 /* get_console_bitmap() cannot tell beyond b16 */ || get_console_bitmap() >> k & 1) { set_console(k); } } /* get the last used console */ static uldat get_console_last(void) { uldat b = get_console_bitmap(); uldat k = 0; while (b >>= 1) k++; return k; } static void set_console_last(void) { /* switch to the last used console, ChN */ set_console(get_console_last()); } static void decr_console(void) { uldat k = tty_number - 1; udat b; if (k >= b16) /* get_console_bitmap() cannot tell beyond b16 */ k = b16 - 1; b = get_console_bitmap(); b = b >> (k + 1) | b << (b16 - k - 1); while (b && !(b & 1 << (b16 - 1))) { b <<= 1; if (--k >= b16) k = b16 - 1; } if (b) set_console(k); } static void incr_console(void) { uldat k = tty_number + 1; udat b; k &= (udat)~0; /* get_console_bitmap() cannot tell beyond b16 */ b = get_console_bitmap(); b = b >> k | b << (b16 - k); while (b && !(b & 1)) { b >>= 1; k = (k + 1) & (udat)~0; } if (b) set_console(k); } static void send_intr(void) { #if 0 tty_break(); #endif } static void scroll_forw(void) { /* FIXME: finish this! */ } static void scroll_back(void) { /* FIXME: finish this! */ } static void boot_it(void) { /* HW->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; */ } static void compose(void) { dead_key_next = 1; } static void spawn_console(void) { /* no way to reproduce this from user level */ } static void SAK(void) { /* * SAK should also work in all raw modes and reset * them properly. * * So what here? */ } static udat do_ignore(byte value, byte up_flag) { return TW_Null; } static void do_null(void) { compute_shiftstate(); } static udat do_lowercase(byte value, byte up_flag) { printk("twin: hw/linux/kbd_low.h: do_lowercase() called - kernel bug!\n"); return TW_Null; } /* * We have a combining character DIACR here, followed by the character CH. * If the combination occurs in the table, return the corresponding value. * Otherwise, if CH is a space or equals DIACR, return DIACR. * Otherwise, conclude that DIACR was not combining after all, * queue it and return CH. */ static char handle_diacr(char ch) { static struct kbdiacrs accent_tables; static byte accent_tables_init; struct kbdiacr *accent_table; char d = diacr; unsigned i; diacr = 0; if (!accent_tables_init) { accent_tables_init = ttrue; ioctl(tty_fd, KDGKBDIACR, &accent_tables); } accent_table = accent_tables.kbdiacr; for (i = 0; i < accent_tables.kb_cnt; i++) { if (accent_table[i].diacr == d && accent_table[i].base == ch) return accent_table[i].result; } if (ch == ' ' || ch == d) return d; KeyboardEventCommon(d, get_shiftstate_tw(), 1, &d); return ch; } static udat post_latin(udat value) { if (value < 32) { udat shifts = get_shiftstate_tw(); if (shifts & KBD_CTRL_FL) value |= shifts & (KBD_SHIFT_FL | KBD_CAPS_LOCK) ? 0x40 : 0x60; } return value; } static udat do_latin(byte value, byte up_flag) { if (up_flag) return TW_Null; /* no action, if this is a key release */ if (diacr) value = handle_diacr(value); if (dead_key_next) { dead_key_next = 0; diacr = value; return TW_Null; } put_queue(value); return post_latin(value); } #define A_GRAVE '`' #define A_ACUTE '\'' #define A_CFLEX '^' #define A_TILDE '~' #define A_DIAER '"' #define A_CEDIL ',' static byte map_DIACR[NR_DEAD] = {A_GRAVE, A_ACUTE, A_CFLEX, A_TILDE, A_DIAER, A_CEDIL}; /* * Handle dead key. Note that we now may have several * dead keys modifying the same character. Very useful * for Vietnamese. */ static udat do_dead2(byte value, byte up_flag) { if (!up_flag) diacr = (diacr ? handle_diacr(value) : value); return TW_Null; } /* Obsolete - for backwards compatibility only */ static udat do_dead(byte value, byte up_flag) { value = map_DIACR[value]; do_dead2(value, up_flag); return TW_Null; } static udat do_cons(byte value, byte up_flag) { if (!up_flag) set_console_ifthere(value + 1); return TW_Null; } static udat map_FN[] = { /* K_F1 */ TW_F1, /* K_F2 */ TW_F2, /* K_F3 */ TW_F3, /* K_F4 */ TW_F4, /* K_F5 */ TW_F5, /* K_F6 */ TW_F6, /* K_F7 */ TW_F7, /* K_F8 */ TW_F8, /* K_F9 */ TW_F9, /* K_F10 */ TW_F10, /* K_F11 */ TW_F11, /* K_F12 */ TW_F12, /* K_F13 */ TW_F13, /* K_F14 */ TW_F14, /* K_F15 */ TW_F15, /* K_F16 */ TW_F16, /* K_F17 */ TW_F17, /* K_F18 */ TW_F18, /* K_F19 */ TW_F19, /* K_F20 */ TW_F20, /* K_FIND */ TW_Home, /* K_INSERT */ TW_Insert, /* K_REMOVE */ TW_Delete, /* K_SELECT */ TW_End, /* K_PGUP */ TW_Prior, /* K_PGDN */ TW_Next, /* K_MACRO */ TW_Null, /* K_HELP */ TW_Help, /* K_DO */ TW_Redo, /* K_PAUSE */ TW_Pause, }; static udat do_fn(byte value, byte up_flag) { if (up_flag) return TW_Null; puts_queue(get_kbsentry(value)); return value < SIZE(map_FN) ? map_FN[value] : 0; } static udat map_PAD[] = { /* K_P0 */ TW_KP_0, /* K_P1 */ TW_KP_1, /* K_P2 */ TW_KP_2, /* K_P3 */ TW_KP_3, /* K_P4 */ TW_KP_4, /* K_P5 */ TW_KP_5, /* K_P6 */ TW_KP_6, /* K_P7 */ TW_KP_7, /* K_P8 */ TW_KP_8, /* K_P9 */ TW_KP_9, /* K_PPLUS */ TW_KP_Add, /* K_PMINUS */ TW_KP_Subtract, /* K_PSTAR */ TW_KP_Multiply, /* K_PSLASH */ TW_KP_Divide, /* K_PENTER */ TW_KP_Enter, /* K_PCOMMA */ TW_KP_Decimal, /* K_PDOT */ TW_KP_Decimal, /* K_PPLUSMINUS */ TW_Null, /* K_PPARENL */ TW_Null, /* K_PPARENR */ TW_Null, }; enum { map_PAD_len = sizeof(map_PAD) / sizeof(map_PAD[0]) }; static udat do_pad(byte value, byte up_flag) { static const char *const pad_chars = "0123456789+-*/\015,.?()"; static const char *const app_map = "pqrstuvwxylSRQMnnmPQ"; if (up_flag) return TW_Null; /* no action, if this is a key release */ /* kludge... shift forces cursor/number keys */ if (vc_kbd_mode(kbd, VC_APPLIC) && !k_down[KG_SHIFT]) { if (value >= map_PAD_len) { return TW_Null; } applkey(app_map[value], 1); return map_PAD[value]; } if (!vc_kbd_led(kbd, VC_NUMLOCK)) { switch (value) { case KVAL(K_PCOMMA): case KVAL(K_PDOT): return do_fn(KVAL(K_REMOVE), 0); case KVAL(K_P0): return do_fn(KVAL(K_INSERT), 0); case KVAL(K_P1): return do_fn(KVAL(K_SELECT), 0); case KVAL(K_P2): return do_cur(KVAL(K_DOWN), 0); case KVAL(K_P3): return do_fn(KVAL(K_PGDN), 0); case KVAL(K_P4): return do_cur(KVAL(K_LEFT), 0); case KVAL(K_P6): return do_cur(KVAL(K_RIGHT), 0); case KVAL(K_P7): return do_fn(KVAL(K_FIND), 0); case KVAL(K_P8): return do_cur(KVAL(K_UP), 0); case KVAL(K_P9): return do_fn(KVAL(K_PGUP), 0); case KVAL(K_P5): applkey('G', vc_kbd_mode(kbd, VC_APPLIC)); return TW_KP_5; } } if (value >= map_PAD_len) { return TW_Null; } put_queue(pad_chars[value]); if (value == KVAL(K_PENTER) && vc_kbd_mode(kbd, VC_CRLF)) put_queue(10); return map_PAD[value]; } static udat map_CUR[] = { /* K_DOWN */ TW_Down, /* K_LEFT */ TW_Left, /* K_RIGHT */ TW_Right, /* K_UP */ TW_Up, }; enum { map_CUR_len = sizeof(map_CUR) / sizeof(map_CUR[0]) }; static udat do_cur(byte value, byte up_flag) { static const char *const cur_chars = "BDCA"; if (up_flag || value >= map_CUR_len) return TW_Null; applkey(cur_chars[value], vc_kbd_mode(kbd, VC_CKMODE)); return map_CUR[value]; } static udat map_SHIFT[] = { /* K_SHIFT */ TW_Shift_L, /* K_ALTGR */ TW_Alt_R, /* K_CTRL */ TW_Control_L, /* K_ALT */ TW_Alt_L, /* K_SHIFTL */ TW_Shift_L, /* K_SHIFTR */ TW_Shift_R, /* K_CTRLL */ TW_Control_L, /* K_CTRLR */ TW_Control_R, /* K_CAPSSHIFT*/ TW_Shift_R, }; enum { map_SHIFT_len = sizeof(map_SHIFT) / sizeof(map_SHIFT[0]) }; static udat do_shift(byte value, byte up_flag) { ldat old_state = lrawkbd_shiftstate; if (rep && value < map_SHIFT_len) return map_SHIFT[value]; /* Mimic typewriter: a CapsShift key acts like Shift but undoes CapsLock */ if (value == KVAL(K_CAPSSHIFT)) { value = KVAL(K_SHIFT); if (!up_flag) clr_vc_kbd_led(kbd, VC_CAPSLOCK); } if (up_flag) { /* handle the case that two shift or control keys are depressed simultaneously */ if (k_down[value]) k_down[value]--; } else k_down[value]++; if (k_down[value]) lrawkbd_shiftstate |= (1 << value); else lrawkbd_shiftstate &= ~(1 << value); /* kludge */ if (up_flag && lrawkbd_shiftstate != old_state && npadch != -1) { char ch = npadch & 0xff; KeyboardEventCommon(ch, get_shiftstate_tw(), 1, &ch); npadch = -1; } return (up_flag || value >= map_SHIFT_len) ? TW_Null : map_SHIFT[value]; } /* called after returning from RAW mode or when changing consoles - recompute k_down[] and shift_state from key_down[] */ /* maybe called when keymap is undefined, so that shiftkey release is seen */ static int compute_shiftstate(void) { uldat i, j, k; udat sym, val; lrawkbd_shiftstate = 0; for (i = 0; i < SIZE(k_down); i++) k_down[i] = 0; for (i = 0; i < SIZE(key_down); i++) { if (key_down[i]) { /* skip this word if not a single bit on */ k = i * BITS_PER_ULDAT; for (j = 0; j < BITS_PER_ULDAT; j++, k++) { if (lrawkbd_test_bit(k, (void *)key_down)) { sym = U(get_kbentry(k, 0)); if (KTYP(sym) == KT_SHIFT || KTYP(sym) == KT_SLOCK) { val = KVAL(sym); if (val == KVAL(K_CAPSSHIFT)) val = KVAL(K_SHIFT); k_down[val]++; lrawkbd_shiftstate |= (1 << val); } } } } } return lrawkbd_shiftstate; } static udat get_shiftstate_tw(void) { return (lrawkbd_shiftstate & (1 << KG_SHIFT | 1 << KG_SHIFTL | 1 << KG_SHIFTR) ? KBD_SHIFT_FL : 0) | (lrawkbd_shiftstate & (1 << KG_CTRL | 1 << KG_CTRLL | 1 << KG_CTRLR) ? KBD_CTRL_FL : 0) | (lrawkbd_shiftstate & (1 << KG_ALT | 1 << KG_ALTGR) ? KBD_ALT_FL : 0) | (lrawkbd_leds & 1 << VC_CAPSLOCK ? KBD_CAPS_LOCK : 0) | (lrawkbd_leds & 1 << VC_NUMLOCK ? KBD_NUM_LOCK : 0); } static udat do_meta(byte value, byte up_flag) { if (up_flag) return TW_Null; if (vc_kbd_mode(kbd, VC_META)) { put_queue('\033'); put_queue(value); } else put_queue(value | 0x80); return value; } static udat do_ascii(byte value, byte up_flag) { ldat base; if (up_flag) return TW_Null; if (value < 10) /* decimal input of code, while Alt depressed */ base = 10; else { /* hexadecimal input of code, while AltGr depressed */ value -= 10; base = 16; } if (npadch == -1) npadch = value; else npadch = npadch * base + value; return TW_Null; } static udat map_LOCK[] = { /* K_SHIFTLOCK */ TW_Shift_Lock, /* K_CTRLLOCK */ TW_Null, /* K_ALTLOCK */ TW_Null, /* K_ALTGRLOCK */ TW_Null, /* K_SHIFTLLOCK */ TW_Shift_Lock, /* K_SHIFTRLOCK */ TW_Shift_Lock, /* K_CTRLLLOCK */ TW_Null, /* K_CTRLRLOCK */ TW_Null, }; static udat do_lock(byte value, byte up_flag) { if (up_flag || rep) return TW_Null; chg_vc_kbd_lock(kbd, value); return map_LOCK[value]; } static udat map_SLOCK[] = { /* K_SHIFT_SLOCK */ TW_Shift_Lock, /* K_CTRL_SLOCK */ TW_Null, /* K_ALT_SLOCK */ TW_Null, /* K_ALTGR_SLOCK */ TW_Null, /* K_SHIFTL_SLOCK */ TW_Shift_Lock, /* K_SHIFTR_SLOCK */ TW_Shift_Lock, /* K_CTRLL_SLOCK */ TW_Null, /* K_CTRLR_SLOCK */ TW_Null, }; static udat do_slock(byte value, byte up_flag) { do_shift(value, up_flag); if (up_flag || rep) return TW_Null; chg_vc_kbd_slock(kbd, value); /* try to make Alt, oops, AltGr and such work */ if (get_kbentry(0, lrawkbd_lockstate ^ lrawkbd_slockstate) == K_NOSUCHMAP) { lrawkbd_slockstate = 0; chg_vc_kbd_slock(kbd, value); } return map_SLOCK[value]; } typedef void (*void_fnp)(void); #define show_ptregs noop_fn #define show_mem noop_fn #define show_state noop_fn static void_fnp table_SPEC[] = { do_null, enter, show_ptregs, show_mem, show_state, send_intr, set_console_last, caps_toggle, num, hold, scroll_forw, scroll_back, boot_it, caps_on, compose, SAK, decr_console, incr_console, spawn_console, bare_num}; static udat map_SPEC[] = { /* K_HOLE */ TW_Null, /* K_ENTER */ TW_Return, /* K_SH_REGS */ TW_Null, /* K_SH_MEM */ TW_Null, /* K_SH_STAT */ TW_Null, /* K_BREAK */ TW_Break, /* K_CONS */ TW_Null, /* K_CAPS */ TW_Caps_Lock, /* K_NUM */ TW_Num_Lock, /* K_HOLD */ TW_Scroll_Lock, /* K_SCROLLFORW */ TW_Next, /* hack! */ /* K_SCROLLBACK */ TW_Prior, /* hack! */ /* K_BOOT */ TW_Delete, /* hack! */ /* K_CAPSON */ TW_Null, /* K_COMPOSE */ TW_Null, /* K_SAK */ TW_Null, /* K_DECRCONSOLE */ TW_Null, /* K_INCRCONSOLE */ TW_Null, /* K_SPAWNCONSOLE */ TW_Up, /* hack! */ /* K_BARENUMLOCK */ TW_Caps_Lock, }; static udat do_spec(byte value, byte up_flag) { if (up_flag) return TW_Null; table_SPEC[value](); return map_SPEC[value]; } typedef udat (*k_hand)(byte value, byte up_flag); static k_hand key_handler[] = { do_latin, do_fn, do_spec, do_pad, do_dead, do_cons, do_cur, do_shift, do_meta, do_ascii, do_lock, do_lowercase, do_slock, do_dead2, do_ignore, do_ignore}; /* maximum values each key_handler can handle */ static const byte key_handler_maxval[] = {255, 255, SIZE(map_SPEC) - 1, SIZE(map_PAD) - 1, SIZE(map_DIACR) - 1, 255, SIZE(map_CUR) - 1, SIZE(map_SHIFT) - 1, 255, NR_ASCII - 1, SIZE(map_LOCK) - 1, 255, SIZE(map_SLOCK) - 1, 255, 0, 0}; static void set_lights(int lights) { #if 0 /* this is an identity */ lights = (lights & 1<<VC_SCROLLOCK ? LED_SCR : 0) | (lights & 1<<VC_NUMLOCK ? LED_NUM : 0) | (lights & 1<<VC_CAPSLOCK ? LED_CAP : 0); #endif ioctl(tty_fd, KDSETLED, lights); } #define lrawkbd_KEYMAPS_N (1 << (NR_SHIFT <= 8 * sizeof(byte) ? NR_SHIFT : 8 * sizeof(byte))) static udat *lrawkbd_keymaps[lrawkbd_KEYMAPS_N]; static void lrawkbd_FreeKeymaps(void) { udat *keymap; ldat table; for (table = 0; table < lrawkbd_KEYMAPS_N; table++) { if ((keymap = lrawkbd_keymaps[table]) != NULL) { FreeMem(keymap); lrawkbd_keymaps[table] = NULL; } } } static void lrawkbd_LoadKeymaps(void) { struct kbentry ke; ldat table, keycode; /* * set UNICODE keyboard mode. * needed to get accurate results from ioctl(tty_fd, KDGKBENT, ...) * * keyboard mode will be overridden in lrawkbd_SetKeyboard(), * no need to restore it here. */ ioctl(tty_fd, KDSKBMODE, K_UNICODE); for (table = 0; table < lrawkbd_KEYMAPS_N; table++) { for (keycode = 0; keycode < 0x80; keycode++) { ke.kb_table = table; ke.kb_index = keycode; ke.kb_value = 0; if (ioctl(tty_fd, KDGKBENT, &ke) == 0) { #ifdef DEBUG_HW_TTY_LRAWKBD printk("\t... ioctl(tty_fd = %d, KDGKBENT, {table = 0x%X, index = 0x%X} ) = 0x%X\n", (int)tty_fd, table, keycode, (int)ke.kb_value); #endif if (keycode == 0 && ke.kb_value == K_NOSUCHMAP) break; else if (!lrawkbd_keymaps[table] && !(lrawkbd_keymaps[table] = (udat *)AllocMem(0x80 * sizeof(udat)))) break; lrawkbd_keymaps[table][keycode] = ke.kb_value; } } } } static udat get_kbentry(byte keycode, byte table) { if (table < lrawkbd_KEYMAPS_N) { udat *keymap = lrawkbd_keymaps[table]; if (keymap != NULL) { #ifdef DEBUG_HW_TTY_LRAWKBD printk("\tget_kbentry(table = 0x%X, keycode = 0x%X) = 0x%X\n", (int)table, (int)keycode, (int)keymap[keycode & 0x7F]); #endif return keymap[keycode & 0x7F]; } } else printk("internal error! invalid arguments in get_kbentry(keycode = 0x%X, table = 0x%X): table " "must be < 0x%X\n", (int)keycode, (int)table, (int)lrawkbd_KEYMAPS_N); return K_NOSUCHMAP; } static const char *get_kbsentry(byte keysym) { static struct kbsentry ks; /* struct kbsentry { unsigned char kb_func; unsigned char kb_string[512]; }; */ ks.kb_func = keysym; ks.kb_string[0] = '\0'; ioctl(tty_fd, KDGKBSENT, &ks); return (const char *)ks.kb_string; } #ifdef DEBUG_HW_TTY_LRAWKBD static void dump_key(udat twk, ldat keysym, byte *s, uldat len) { uldat f; byte c; printk("\tTWsym = 0x%X, ksym = 0x%X, `", (int)twk, (int)keysym); for (f = 0; (c = s[f]) && f < len; f++) { if (c >= ' ' && c <= '~') printk("%c", (int)c); else printk("\\x%02X", (int)c); } printk("'\n"); } #endif static udat handle_keycode(byte keycode, byte up) { ldat up_flag = up ? 0x80 : 0; udat twk = 0; if (up_flag) { rep = 0; lrawkbd_clear_bit(keycode, (void *)key_down); } else rep = lrawkbd_test_and_set_bit(keycode, (void *)key_down); if (!rep || vc_kbd_mode(kbd, VC_REPEAT)) { udat keysym, type, val; /* the XOR below used to be an OR */ int shift_final = (lrawkbd_shiftstate | lrawkbd_slockstate) ^ lrawkbd_lockstate; keysym = get_kbentry(keycode, shift_final); type = KTYP(keysym); if (type == KT_LETTER) { type = KT_LATIN; if (vc_kbd_led(kbd, VC_CAPSLOCK)) keysym = get_kbentry(keycode, shift_final ^ (1 << KG_SHIFT)); } else if (type == 0xf0) { // treat UNICODE as plain ASCII (should be handled properly) type = KT_LATIN; } val = KVAL(keysym); if (type < SIZE(key_handler_maxval) && val <= key_handler_maxval[type]) twk = (*key_handler[type])(val, up_flag); if (type != KT_SLOCK) lrawkbd_slockstate = 0; #ifdef DEBUG_HW_TTY_LRAWKBD dump_key(twk, keysym, queue, queue_len); #endif } return twk; } static udat lrawkbd_LookupKey(udat *ShiftFlags, byte *slen, char *s, byte *retlen, char **ret) { udat twk; byte k = (byte)*s; queue = queue_buf; queue_len = 0; twk = handle_keycode(k & ~0x80, k & 0x80); *ShiftFlags = get_shiftstate_tw(); /* we ALWAYS process one byte at time */ *slen = 1; *retlen = queue_len; *ret = queue_buf; /* play it safe */ queue_len = 0; queue = NULL; return twk; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_linux/mouse_gpm.h�������������������������������������������������������0000664�0000000�0000000�00000012166�13775351206�0021345�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ /* * libgpm is stacked, not multi-headed (so no multiplex too) */ static byte GPM_InUse; /* * Linux gpm mouse input: * mouse input uses libgpm to connect to `gpm' mouse daemon * and read mouse state, but draws mouse pointer manually */ static void GPM_QuitMouse(void); static void GPM_MouseEvent(int fd, display_hw hw); static void GPM_ConfigureMouse(udat resource, byte todefault, udat value); static int wrap_Gpm_Open(void) { /* * HACK! this works around a quirk in libgpm: * if Gpm_Open fails, it sets gpm_tried to non-zero * and following calls will just fail, not even trying anymore */ extern int gpm_tried; if (!tty_name) { printk("%s", " GPM_InitMouse() failed: unable to detect tty device\n"); return NOFD; } if (tty_number < 1 || tty_number > 63) { printk(" GPM_InitMouse() failed: terminal `" SS "'\n" " is not a local linux console.\n", tty_name); return NOFD; } gpm_tried = 0; gpm_zerobased = 1; gpm_visiblepointer = 0; GPM_Conn.eventMask = ~0; /* Get everything */ GPM_Conn.defaultMask = ~GPM_HARD; /* Pass everything unused */ GPM_Conn.minMod = 0; /* Run always... */ GPM_Conn.maxMod = ~0; /* ...with any modifier */ GPM_fd = Gpm_Open(&GPM_Conn, tty_number); if (GPM_fd >= 0) { /* gpm_consolefd is opened by GPM_Open() */ fcntl(gpm_consolefd, F_SETFD, FD_CLOEXEC); } else { printk("%s", " GPM_InitMouse() failed: unable to connect to `gpm'.\n" " make sure you started `twin' from the console\n" " and/or check that `gpm' is running.\n"); } return GPM_fd; } /* return tfalse if failed */ static byte GPM_InitMouse(void) { if (GPM_InUse) { printk(" GPM_InitMouse() failed: already connected to `gpm'.\n"); return tfalse; } if (wrap_Gpm_Open() < 0) return tfalse; fcntl(GPM_fd, F_SETFD, FD_CLOEXEC); fcntl(GPM_fd, F_SETFL, O_NONBLOCK); HW->mouse_slot = RegisterRemote(GPM_fd, (obj)HW, (void (*)(int, obj))GPM_MouseEvent); if (HW->mouse_slot == NOSLOT) { Gpm_Close(); return tfalse; } HW->FlagsHW |= FlHWSoftMouse; /* _we_ Hide/Show it */ HW->MouseEvent = GPM_MouseEvent; HW->ConfigureMouse = GPM_ConfigureMouse; HW->QuitMouse = GPM_QuitMouse; GPM_InUse = ttrue; return ttrue; } static void GPM_QuitMouse(void) { /* we cannot be sure that some InitVideo() initialized HW->HideMouse */ #if 0 HW->HideMouse(); #endif Gpm_Close(); UnRegisterRemote(HW->mouse_slot); HW->mouse_slot = NOSLOT; GPM_InUse = tfalse; HW->QuitMouse = NoOp; } static void GPM_ConfigureMouse(udat resource, byte todefault, udat value) { switch (resource) { case HW_MOUSEMOTIONEVENTS: /* nothing to do */ break; default: break; } } static void GPM_MouseEvent(int fd, display_hw hw) { int left = 0; udat IdButtons, Buttons = 0; Gpm_Event GPM_EV; SaveHW; /* * All other parts of twin read and parse data from fds in big chunks, * while Gpm_GetEvent() reads and parses only a single event at time. * To compensate this and avoid mouse to lag behind, we do a small loop. */ byte loopN = 30; SetHW(hw); do { if ((left = Gpm_GetEvent(&GPM_EV)) <= 0) { if (loopN == 30) { printk("GPM_MouseEvent(): connection to gpm lost. continuing without mouse :-(\n"); HW->QuitMouse(); null_InitMouse(); } break; } #if 0 All->FullShiftFlags = (GPM_EV.modifiers & 1 ? FULL_LEFT_SHIFT_PRESSED : 0) | (GPM_EV.modifiers & 2 ? FULL_RIGHT_ALT_PRESSED : 0) | (GPM_EV.modifiers & 4 ? FULL_LEFT_CTRL_PRESSED : 0) | (GPM_EV.modifiers & 8 ? FULL_LEFT_ALT_PRESSED : 0); #endif /* * Gpm differs from us about what buttons to report on release events: * it reports which buttons get _released_, not which are still _pressed_ * Fixed here. SIGH. */ IdButtons = GPM_EV.buttons; if (GPM_EV.type & GPM_UP) IdButtons = GPM_keys & ~IdButtons; GPM_keys = IdButtons; Buttons |= (IdButtons & GPM_B_LEFT ? HOLD_LEFT : 0) | (IdButtons & GPM_B_MIDDLE ? HOLD_MIDDLE : 0) | (IdButtons & GPM_B_RIGHT ? HOLD_RIGHT : 0) | #if defined(GPM_B_UP) (IdButtons & GPM_B_UP ? HOLD_WHEEL_REV : 0) | #endif #if defined(GPM_B_DOWN) (IdButtons & GPM_B_DOWN ? HOLD_WHEEL_FWD : 0) | #endif 0; #ifdef TW_HAVE_STRUCT_GPM_EVENT_WDY if (GPM_EV.wdy != 0) { while (GPM_EV.wdy > 0) { MouseEventCommon(GPM_EV.x, GPM_EV.y, GPM_EV.dx, GPM_EV.dy, Buttons | HOLD_WHEEL_REV); MouseEventCommon(GPM_EV.x, GPM_EV.y, 0, 0, Buttons); GPM_EV.dx = GPM_EV.dy = 0; GPM_EV.wdy--; } while (GPM_EV.wdy < 0) { MouseEventCommon(GPM_EV.x, GPM_EV.y, GPM_EV.dx, GPM_EV.dy, Buttons | HOLD_WHEEL_FWD); MouseEventCommon(GPM_EV.x, GPM_EV.y, 0, 0, Buttons); GPM_EV.wdy++; GPM_EV.dx = GPM_EV.dy = 0; } } else #endif MouseEventCommon(GPM_EV.x, GPM_EV.y, GPM_EV.dx, GPM_EV.dy, Buttons); } while (loopN-- && ioctl(GPM_fd, FIONREAD, &left) >= 0 && left > 0); RestoreHW; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_tty_linux/video_stdout.h����������������������������������������������������0000664�0000000�0000000�00000032176�13775351206�0022065�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Video output on Linux terminals through stdout. * * this is used both inside twin terminal and inside Linux console. */ static void linux_QuitVideo(void); static void linux_ShowMouse(void); static void linux_HideMouse(void); static void linux_FlushVideo(void); static void linux_Beep(void); static void linux_Configure(udat resource, byte todefault, udat value); static void linux_ConfigureKeyboard(udat resource, byte todefault, udat value); static void linux_SetPalette(udat N, udat R, udat G, udat B); static void linux_ResetPalette(void); static void linux_UpdateMouseAndCursor(void); static byte linux_CanDragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp); static void linux_DragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp); inline void linux_SetCursorType(uldat type) { fprintf(stdOUT, "\033[?%d;%d;%dc", (int)(type & 0xFF), (int)((type >> 8) & 0xFF), (int)((type >> 16) & 0xFF)); } inline void linux_MoveToXY(udat x, udat y) { fprintf(stdOUT, "\033[%d;%dH", y + 1, x + 1); } /* return tfalse if failed */ static byte linux_InitVideo(void) { char *term = tty_TERM; if (!term) { printk(" linux_InitVideo() failed: unknown terminal type.\n"); return tfalse; } if (strcmp(term, "linux")) { printk(" linux_InitVideo() failed: terminal `" SS "' is not `linux'.\n", term); return tfalse; } if (!(tc_scr_clear = CloneStr("\033[2J"))) { printk(" linux_InitVideo() failed: out of memory!"); return tfalse; } if (tty_use_utf8 == ttrue + ttrue) { if (ttypar[0] == 6 && ttypar[1] != 3 && ttypar[1] != 4) { /* plain linux console supports utf-8, and also twin >= 0.3.11 does. */ tty_use_utf8 = ttrue; } else { tty_use_utf8 = tfalse; if (tty_charset == (uldat)-1) printk(" linux_InitVideo() warning: this 'linux' terminal seems to be an old twin " "(version <= 0.3.11) without UTF-8 support. Setting charset='ASCII'\n"); } } /* clear colors, enable/disable UTF-8 mode */ /* if UTF-8 mode is disabled, set TTY_DISPCTRL */ fprintf(stdOUT, "\033[0m%s", (tty_use_utf8 ? "\033[3l\033%G" : "\033%@\033[3h")); HW->FlushVideo = linux_FlushVideo; HW->FlushHW = stdout_FlushHW; HW->ShowMouse = linux_ShowMouse; HW->HideMouse = linux_HideMouse; HW->UpdateMouseAndCursor = linux_UpdateMouseAndCursor; HW->DetectSize = stdin_DetectSize; HW->CheckResize = stdin_CheckResize; HW->Resize = stdin_Resize; HW->HWSelectionImport = AlwaysFalse; HW->HWSelectionExport = NoOp; HW->HWSelectionRequest = (void (*)(obj, uldat))NoOp; HW->HWSelectionNotify = (void (*)(uldat, uldat, const char *, Chars))NoOp; HW->HWSelectionPrivate = 0; HW->CanDragArea = linux_CanDragArea; HW->DragArea = linux_DragArea; HW->XY[0] = HW->XY[1] = -1; HW->TT = (uldat)-1; /* force updating the cursor */ HW->Beep = linux_Beep; HW->Configure = linux_Configure; HW->ConfigureKeyboard = linux_ConfigureKeyboard; HW->SetPalette = linux_SetPalette; HW->ResetPalette = linux_ResetPalette; HW->QuitVideo = linux_QuitVideo; HW->FlagsHW |= FlHWNeedOldVideo; HW->FlagsHW &= ~FlHWExpensiveFlushVideo; HW->NeedHW = 0; HW->merge_Threshold = 0; return ttrue; } static void linux_QuitVideo(void) { linux_MoveToXY(0, DisplayHeight - 1); linux_SetCursorType(LINECURSOR); /* restore original colors, TTY_DISPCTRL, alt cursor keys, keypad settings */ fputs("\033[0m\033[3l\033[?1l\033>\n", stdOUT); HW->QuitVideo = NoOp; } #define CTRL_ALWAYS 0x0800f501 /* Cannot be overridden by TTY_DISPCTRL */ /* * the linux console is a noisy place... kernel and daemons often write there. * for better results, reinit UTF-8 mode and TTY_DISPCTRL every time */ #define linux_MogrifyInit() \ (fputs(tty_use_utf8 ? "\033[3l\033%G\033[m" : "\033%@\033[3h\033[m", stdOUT), \ _col = TCOL(twhite, tblack)) #define linux_MogrifyFinish() ((void)0) inline void linux_SetColor(tcolor col) { char colbuf[] = "\033[2x;2x;4x;3xm"; char *colp = colbuf + 2; byte c; if ((col & TCOL(thigh, 0)) != (_col & TCOL(thigh, 0))) { if (col & TCOL(thigh, 0)) *colp++ = '1'; /* '22m' is normal intensity. we used '21m', which is actually 'doubly underlined' */ else *colp++ = '2', *colp++ = '2'; *colp++ = ';'; } if ((col & TCOL(0, thigh)) != (_col & TCOL(0, thigh))) { if (_col & TCOL(0, thigh)) *colp++ = '2'; *colp++ = '5'; *colp++ = ';'; } if ((col & TCOL(0, twhite)) != (_col & TCOL(0, twhite))) { c = TCOLBG(col) & ~thigh; *colp++ = '4'; *colp++ = TVGA2ANSI(c) + '0'; *colp++ = ';'; } if ((col & TCOL(twhite, 0)) != (_col & TCOL(twhite, 0))) { c = TCOLFG(col) & ~thigh; *colp++ = '3'; *colp++ = TVGA2ANSI(c) + '0'; *colp++ = ';'; } _col = col; if (colp[-1] == ';') --colp; *colp++ = 'm'; *colp = '\0'; fputs(colbuf, stdOUT); } inline void linux_Mogrify(dat x, dat y, uldat len) { tcell *V, *oV; tcolor col; trune c, _c; byte sending = tfalse; V = Video + x + y * (ldat)DisplayWidth; oV = OldVideo + x + y * (ldat)DisplayWidth; for (; len; V++, oV++, x++, len--) { if (!ValidOldVideo || *V != *oV) { if (!sending) sending = ttrue, linux_MoveToXY(x, y); col = TCOLOR(*V); if (col != _col) linux_SetColor(col); c = _c = TRUNE(*V); if (c >= 128) { if (tty_use_utf8) { /* use utf-8 to output this non-ASCII char. */ tty_MogrifyUTF8(c); continue; } else if (tty_charset_to_UTF_32[c] != c) { c = tty_UTF_32_to_charset(_c); } } if (tty_use_utf8 ? (c < 32 || c == 127) : (c < 32 && ((CTRL_ALWAYS >> c) & 1)) || c == 127 || c == 128 + 27) { /* can't display it */ c = Tutf_UTF_32_to_ASCII(_c); if (c < 32 || c >= 127) c = 32; } putc((char)c, stdOUT); } else sending = tfalse; } } inline void linux_SingleMogrify(dat x, dat y, tcell V) { trune c, _c; linux_MoveToXY(x, y); if (TCOLOR(V) != _col) linux_SetColor(TCOLOR(V)); c = _c = TRUNE(V); if (c >= 128) { if (tty_use_utf8) { /* use utf-8 to output this non-ASCII char. */ tty_MogrifyUTF8(c); return; } else if (tty_charset_to_UTF_32[c] != c) { c = tty_UTF_32_to_charset(_c); } } if (tty_use_utf8 ? (c < 32 || c == 127) : (c < 32 && ((CTRL_ALWAYS >> c) & 1)) || c == 127 || c == 128 + 27) { /* can't display it */ c = Tutf_UTF_32_to_ASCII(_c); if (c < 32 || c >= 127) c = 32; } putc((char)c, stdOUT); } /* HideMouse and ShowMouse depend on Video setup, not on Mouse. * so we have linux_ and termcap_ versions, not GPM_ ones... */ static void linux_ShowMouse(void) { uldat pos = (HW->Last_x = HW->MouseState.x) + (HW->Last_y = HW->MouseState.y) * (ldat)DisplayWidth; tcell h = Video[pos]; tcolor c = ~TCOLOR(h) ^ TCOL(thigh, thigh); linux_SingleMogrify(HW->MouseState.x, HW->MouseState.y, TCELL(c, TRUNEEXTRA(h))); /* store current cursor state for correct updating */ HW->XY[1] = HW->MouseState.y; HW->XY[0] = HW->MouseState.x + 1; /* linux terminals have VT100 wrapglitch */ if (HW->XY[0] == HW->X) HW->XY[0]--; setFlush(); } static void linux_HideMouse(void) { uldat pos = HW->Last_x + HW->Last_y * (ldat)DisplayWidth; linux_SingleMogrify(HW->Last_x, HW->Last_y, Video[pos]); /* store current cursor state for correct updating */ HW->XY[1] = HW->Last_y; HW->XY[0] = HW->Last_x + 1; /* linux terminals have VT100 wrapglitch */ if (HW->XY[0] == HW->X) HW->XY[0]--; setFlush(); } static void linux_UpdateCursor(void) { if (!ValidOldVideo || (CursorType != NOCURSOR && (CursorX != HW->XY[0] || CursorY != HW->XY[1]))) { linux_MoveToXY(HW->XY[0] = CursorX, HW->XY[1] = CursorY); setFlush(); } if (!ValidOldVideo || CursorType != HW->TT) { linux_SetCursorType(HW->TT = CursorType); setFlush(); } } static void linux_UpdateMouseAndCursor(void) { if ((HW->FlagsHW & FlHWSoftMouse) && (HW->FlagsHW & FlHWChangedMouseFlag)) { HW->HideMouse(); HW->ShowMouse(); HW->FlagsHW &= ~FlHWChangedMouseFlag; } linux_UpdateCursor(); } static void linux_FlushVideo(void) { dat i, j, start, end, XY[2]; byte FlippedVideo = tfalse, FlippedOldVideo = tfalse; tcell savedOldVideo; if (!ChangedVideoFlag) { HW->UpdateMouseAndCursor(); linux_MogrifyFinish(); return; } /* hide the mouse if needed */ /* first, check the old mouse position */ if (HW->FlagsHW & FlHWSoftMouse) { if (HW->FlagsHW & FlHWChangedMouseFlag) { /* dirty the old mouse position, so that it will be overwritten */ /* * with multi-display this is a hack, but since OldVideo gets restored * below *BEFORE* returning from linux_FlushVideo(), that's ok. */ DirtyVideo(HW->Last_x, HW->Last_y, HW->Last_x, HW->Last_y); if (ValidOldVideo) { FlippedOldVideo = ttrue; savedOldVideo = OldVideo[HW->Last_x + HW->Last_y * (ldat)DisplayWidth]; OldVideo[HW->Last_x + HW->Last_y * (ldat)DisplayWidth] = ~Video[HW->Last_x + HW->Last_y * (ldat)DisplayWidth]; } } i = HW->MouseState.x; j = HW->MouseState.y; /* * instead of calling ShowMouse(), * we flip the new mouse position in Video[] and dirty it if necessary. */ if ((HW->FlagsHW & FlHWChangedMouseFlag) || (FlippedVideo = Plain_isDirtyVideo(i, j))) { VideoFlip(i, j); if (!FlippedVideo) DirtyVideo(i, j, i, j); HW->FlagsHW &= ~FlHWChangedMouseFlag; FlippedVideo = ttrue; } else FlippedVideo = tfalse; } linux_MogrifyInit(); for (i = 0; i < DisplayHeight * 2; i++) { start = ChangedVideo[i >> 1][i & 1][0]; end = ChangedVideo[i >> 1][i & 1][1]; if (start != -1) /* also keep track of cursor position */ linux_Mogrify(start, XY[1] = i >> 1, (XY[0] = end) - start + 1); } /* store current cursor state for correct updating */ HW->XY[1] = XY[1]; if ((HW->XY[0] = XY[0] + 1) == HW->X) /* linux terminals have VT100 wrapglitch */ HW->XY[0]--; setFlush(); /* ... and this redraws the mouse */ if (HW->FlagsHW & FlHWSoftMouse) { if (FlippedOldVideo) OldVideo[HW->Last_x + HW->Last_y * (ldat)DisplayWidth] = savedOldVideo; if (FlippedVideo) VideoFlip(HW->Last_x = HW->MouseState.x, HW->Last_y = HW->MouseState.y); else if (HW->FlagsHW & FlHWChangedMouseFlag) HW->ShowMouse(); } linux_UpdateCursor(); linux_MogrifyFinish(); HW->FlagsHW &= ~FlHWChangedMouseFlag; } static void linux_Beep(void) { fputs("\033[3l\007\033[3h", stdOUT); setFlush(); } static void linux_ConfigureKeyboard(udat resource, byte todefault, udat value) { switch (resource) { case HW_KBDAPPLIC: fputs(todefault || !value ? "\033>" : "\033=", stdOUT); setFlush(); break; case HW_ALTCURSKEYS: fputs(todefault || !value ? "\033[?1l" : "\033[?1h", stdOUT); setFlush(); break; } } static void linux_Configure(udat resource, byte todefault, udat value) { switch (resource) { case HW_KBDAPPLIC: case HW_ALTCURSKEYS: HW->ConfigureKeyboard(resource, todefault, value); break; case HW_BELLPITCH: if (todefault) fputs("\033[10]", stdOUT); else fprintf(stdOUT, "\033[10;%hd]", value); setFlush(); break; case HW_BELLDURATION: if (todefault) fputs("\033[11]", stdOUT); else fprintf(stdOUT, "\033[11;%hd]", value); setFlush(); break; case HW_MOUSEMOTIONEVENTS: HW->ConfigureMouse(resource, todefault, value); break; default: break; } } static void linux_SetPalette(udat N, udat R, udat G, udat B) { fprintf(stdOUT, "\033]P%1hx%02hx%02hx%02hx", N, R, G, B); setFlush(); } static void linux_ResetPalette(void) { fputs("\033]R", stdOUT); setFlush(); } static byte linux_CanDragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { /* * tty scrolling capabilities are very limited... * do not even consider using tty `ESC [ <n> M' (delete_line) * or `ESC [ <n> L' (insert_line) as they are *SLOW*, * so the only usable one is '\n' (newline). */ return Left == 0 && Rgt == HW->X - 1 && Dwn == HW->Y - 1 && DstUp == 0; } static void linux_DragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { udat delta = Up - DstUp; HW->HideMouse(); HW->FlagsHW |= FlHWChangedMouseFlag; fprintf(stdOUT, "%s\033[m\033[%d;1H", /* hide cursor, reset color, go to last line */ HW->TT == NOCURSOR ? "" : "\033[?1c", HW->Y); while (delta--) putc('\n', stdOUT); if (HW->FlushVideo == linux_FlushVideo) setFlush(); else fflush(stdOUT); /* store actual cursor state for correct updating */ HW->XY[0] = 0; HW->XY[1] = HW->Y - 1; HW->TT = NOCURSOR; /* * Now the last trick: tty scroll erased the part * below DstUp + (Dwn - Up) so we must redraw it. * This should not be necessary, as after a DragArea() * you are supposed to redraw the original position with whatever * is under the obj ect you dragged away, but better safe than sorry. */ NeedRedrawVideo(0, DstUp + (Dwn - Up) + 1, HW->X - 1, HW->Y - 1); } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_twin.cpp��������������������������������������������������������������������0000664�0000000�0000000�00000042447�13775351206�0016634�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * hw_twin.h -- functions to let twin display on another twin * * Copyright (C) 2000-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "main.h" #include "data.h" #include "remote.h" #include "hw.h" #include "hw_private.h" #include "hw_dirty.h" #include "common.h" #include "stl/view.h" #include <Tw/Tw.h> #include <Tw/Twerrno.h> #include <Tw/Twkeys.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> typedef struct { tany Requestor; uldat ReqPrivate; } sel_req; #define TSELMAX 2 typedef struct { tdisplay Td; twindow Twin; tmsgport Tmsgport; byte SelCount; byte TSelCount; sel_req SelReq[TSELMAX]; /* buffers to hold selection request data while waiting from twin */ sel_req TSelReq[TSELMAX]; /* buffers to hold selection request data while waiting from libtw */ } tw_data; #define twdata ((tw_data *)HW->Private) #define Td (twdata->Td) #define Twin (twdata->Twin) #define Tmsgport (twdata->Tmsgport) #define SelCount (twdata->SelCount) #define TSelCount (twdata->TSelCount) #define SelReq (twdata->SelReq) #define TSelReq (twdata->TSelReq) static void TW_SelectionRequest_up(uldat Requestor, uldat ReqPrivate); static void TW_SelectionNotify_up(uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], Chars Data); static void TW_Beep(void) { Tw_WriteCharsetWindow(Td, Twin, 1, "\007"); setFlush(); } static void TW_Configure(udat resource, byte todefault, udat value) { switch (resource) { case HW_KBDAPPLIC: Tw_WriteCharsetWindow(Td, Twin, 2, todefault || !value ? "\033>" : "\033="); setFlush(); break; case HW_ALTCURSKEYS: Tw_WriteCharsetWindow(Td, Twin, 5, todefault || !value ? "\033[?1l" : "\033[?1h"); setFlush(); break; case HW_BELLPITCH: if (todefault) Tw_WriteCharsetWindow(Td, Twin, 5, "\033[10]"); else { char buf[10]; sprintf(buf, "\033[10;%.3hd]", value); Tw_WriteCharsetWindow(Td, Twin, strlen(buf), buf); } setFlush(); break; case HW_BELLDURATION: if (todefault) Tw_WriteCharsetWindow(Td, Twin, 5, "\033[11]"); else { char buf[10]; sprintf(buf, "\033[11;%.3hd]", value); Tw_WriteCharsetWindow(Td, Twin, strlen(buf), buf); } setFlush(); break; case HW_MOUSEMOTIONEVENTS: if (todefault) value = 0; Tw_ChangeField(Td, Twin, TWS_window_Attr, TW_WINDOW_WANT_MOUSE_MOTION, value ? TW_WINDOW_WANT_MOUSE_MOTION : 0); setFlush(); break; default: break; } } static void TW_HandleMsg(tmsg Msg) { tevent_any Event; dat x, y, dx, dy; udat keys; Event = &Msg->Event; switch (Msg->Type) { case TW_MSG_SELECTIONCLEAR: HW->HWSelectionPrivate = 0; /* selection now owned by some other libtw client */ TwinSelectionSetOwner((obj)HW, SEL_CURRENTTIME, SEL_CURRENTTIME); return; case TW_MSG_SELECTIONREQUEST: TW_SelectionRequest_up(Event->EventSelectionRequest.Requestor, Event->EventSelectionRequest.ReqPrivate); return; case TW_MSG_SELECTIONNOTIFY: TW_SelectionNotify_up(Event->EventSelectionNotify.ReqPrivate, Event->EventSelectionNotify.Magic, Event->EventSelectionNotify.MIME, Chars(Event->EventSelectionNotify.Data, Event->EventSelectionNotify.Len)); return; default: break; } if (Event->EventCommon.W == Twin) { switch (Msg->Type) { case TW_MSG_WIDGET_KEY: KeyboardEventCommon(Event->EventKeyboard.Code, Event->EventKeyboard.ShiftFlags, Event->EventKeyboard.SeqLen, Event->EventKeyboard.AsciiSeq); break; case TW_MSG_WIDGET_MOUSE: x = Event->EventMouse.X; y = Event->EventMouse.Y; dx = x == 0 ? -1 : x == DisplayWidth - 1 ? 1 : 0; dy = y == 0 ? -1 : y == DisplayHeight - 1 ? 1 : 0; keys = Event->EventMouse.Code; keys = (keys & HOLD_ANY) | (isPRESS(keys) ? HOLD_CODE(PRESS_N(keys)) : 0); MouseEventCommon(x, y, dx, dy, keys); break; case TW_MSG_WIDGET_CHANGE: if (HW->X != Event->EventWidget.XWidth || HW->Y != Event->EventWidget.YWidth) { HW->X = Event->EventWidget.XWidth; HW->Y = Event->EventWidget.YWidth; ResizeDisplayPrefer(HW); } break; case TW_MSG_WIDGET_GADGET: if (!Event->EventGadget.Code) /* 0 == Close Code */ HW->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; break; default: break; } } } static void TW_KeyboardEvent(int fd, display_hw hw) { tmsg Msg; byte firstloop = ttrue; SaveHW; SetHW(hw); /* * All other parts of twin read and parse data from fds in big chunks, * while Tw_ReadMsg() returns only a single event at time. * To compensate this and avoid to lag behind, we do a small loop checking * for all messages received while reading the first one. */ while ((firstloop || Tw_PendingMsg(Td)) && (Msg = Tw_ReadMsg(Td, tfalse))) { TW_HandleMsg(Msg); firstloop = tfalse; } if (Tw_InPanic(Td)) HW->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; RestoreHW; } inline void TW_Mogrify(dat x, dat y, uldat len) { tcell *V, *oV; uldat buflen = 0; tcell *buf; dat xbegin = x, ybegin = y; V = Video + x + y * (ldat)DisplayWidth; oV = OldVideo + x + y * (ldat)DisplayWidth; for (; len; x++, V++, oV++, len--) { if (buflen && ValidOldVideo && *V == *oV) { Tw_WriteTCellWindow(Td, Twin, xbegin, ybegin, buflen, buf); buflen = 0; } if (!ValidOldVideo || *V != *oV) { if (!buflen++) { xbegin = x; ybegin = y; buf = V; } } } if (buflen) Tw_WriteTCellWindow(Td, Twin, xbegin, ybegin, buflen, buf); } static void TW_FlushVideo(void) { dat start, end; udat i; /* first burst all changes */ if (ChangedVideoFlag) { for (i = 0; i < DisplayHeight * 2; i++) { start = ChangedVideo[i >> 1][i & 1][0]; end = ChangedVideo[i >> 1][i & 1][1]; if (start != -1) TW_Mogrify(start, i >> 1, end - start + 1); } setFlush(); } /* update the cursor */ if (!ValidOldVideo || (CursorType != NOCURSOR && (CursorX != HW->XY[0] || CursorY != HW->XY[1]))) { Tw_GotoXYWindow(Td, Twin, HW->XY[0] = CursorX, HW->XY[1] = CursorY); setFlush(); } if (!ValidOldVideo || CursorType != HW->TT) { /* Tw_SetCursorWindow(Twin, CursorType); */ char buff[16]; sprintf(buff, "\033[?%d;%d;%dc", (int)(CursorType & 0xFF), (int)((CursorType >> 8) & 0xFF), (int)((CursorType >> 16) & 0xFF)); Tw_WriteCharsetWindow(Td, Twin, strlen(buff), buff); HW->TT = CursorType; setFlush(); } HW->FlagsHW &= ~FlHWChangedMouseFlag; HW->RedrawVideo = tfalse; } static void TW_FlushHW(void) { byte ret = Tw_TimidFlush(Td); if (ret == tfalse) HW->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; else if (ret == ttrue) { if (HW->NeedHW & NEEDFromPreviousFlushHW) { HW->NeedHW &= ~NEEDFromPreviousFlushHW; RemoteCouldWrite(HW->keyboard_slot); } clrFlush(); } else { /* ret == ttrue+ttrue */ if (!(HW->NeedHW & NEEDFromPreviousFlushHW)) { HW->NeedHW |= NEEDFromPreviousFlushHW; RemoteCouldntWrite(HW->keyboard_slot); } } } static void TW_DetectSize(dat *x, dat *y) { *x = HW->X; *y = HW->Y; } static void TW_CheckResize(dat *x, dat *y) { /* always ok */ } static void TW_Resize(dat x, dat y) { if (x != HW->X || y != HW->Y) { Tw_ResizeWindow(Td, Twin, HW->X = x, HW->Y = y); setFlush(); } } #if 0 static byte TW_canDragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { return (ldat)(Rgt-Left+1) * (Dwn-Up+1) > 20; } static void TW_DragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { Tw_DragAreaWindow(Td, Twin, Twin, Left, Up, Rgt, Dwn, DstLeft, DstUp); setFlush(); } #endif /* * import Selection from libtw */ static byte TW_SelectionImport_TW(void) { return !HW->HWSelectionPrivate; } /* * export our Selection to libtw */ static void TW_SelectionExport_TW(void) { if (!HW->HWSelectionPrivate) { #ifdef DEBUG_HW_TWIN printf("exporting selection to libtw server\n"); #endif HW->HWSelectionPrivate = Tmsgport; Tw_SetOwnerSelection(Td, SEL_CURRENTTIME, SEL_CURRENTTIME); setFlush(); } } /* * request Selection from libtw */ static void TW_SelectionRequest_TW(obj Requestor, uldat ReqPrivate) { if (!HW->HWSelectionPrivate) { if (TSelCount < TSELMAX) { #ifdef DEBUG_HW_TWIN printf("requesting selection (%d) from libtw server\n", TSelCount); #endif /* * we exploit the ReqPrivate field of libtw Selection Request/Notify */ TSelReq[TSelCount].Requestor = (topaque)Requestor; TSelReq[TSelCount].ReqPrivate = ReqPrivate; Tw_RequestSelection(Td, Tw_GetOwnerSelection(Td), TSelCount++); setFlush(); /* we will get a TW_MSG_SELECTIONNOTIFY event, i.e. * a TW_SelectionNotify_up() call */ } else { TSelCount = 0; printk( "hw_twin.c: TW_SelectionRequest_TW1(): too many nested Twin Selection Request events!\n"); } } /* else race! someone else became Selection owner in the meanwhile... */ } /* * request twin Selection from upper layer */ static void TW_SelectionRequest_up(uldat Requestor, uldat ReqPrivate) { if (SelCount < TSELMAX) { #ifdef DEBUG_HW_TWIN printf("requesting selection (%d) from twin core\n", SelCount); #endif /* * we exploit the ReqPrivate field of libtw Selection Request/Notify */ SelReq[SelCount].Requestor = Requestor; SelReq[SelCount].ReqPrivate = ReqPrivate; TwinSelectionRequest((obj)HW, SelCount++, TwinSelectionGetOwner()); /* we will get a HW->HWSelectionNotify(), i.e. TW_SelectionNotify_TW() call */ /* the call **CAN** arrive while we are still inside TwinSelectionRequest() !!! */ } else { SelCount = 0; printk( "hw_twin.c: TW_SelectionRequest_up(): too many nested libtw Selection Request events!\n"); } } /* * notify our Selection to libtw */ static void TW_SelectionNotify_TW(uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], Chars Data) { #ifdef DEBUG_HW_TWIN printf("notifying selection (%d/%d) to libtw server\n", ReqPrivate, SelCount - 1); #endif if (ReqPrivate + 1 == SelCount) { SelCount--; Tw_NotifySelection(Td, SelReq[SelCount].Requestor, SelReq[SelCount].ReqPrivate, Magic, MIME, Data.size(), Data.data()); setFlush(); } } /* * notify the libtw Selection to twin upper layer */ static void TW_SelectionNotify_up(uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], Chars Data) { #ifdef DEBUG_HW_TWIN printf("notifying selection (%d/%d) to twin core\n", ReqPrivate, TSelCount - 1); #endif if (ReqPrivate + 1 == TSelCount) { TSelCount--; TwinSelectionNotify((obj)(topaque)TSelReq[TSelCount].Requestor, TSelReq[TSelCount].ReqPrivate, Magic, MIME, Data); } } static void TW_QuitHW(void) { /* not necessary, and Tmsgport, Twin could be undefined */ /* * Tw_UnMapWidget(Td, Twin); * Tw_DeleteObj(Td, Twin); * Tw_DeleteObj(Td, Tmsgport); */ Tw_Close(Td); UnRegisterRemote(HW->keyboard_slot); HW->keyboard_slot = NOSLOT; HW->KeyboardEvent = (void (*)(int, display_hw))NoOp; HW->QuitHW = NoOp; } TW_DECL_MAGIC(hw_twin_magic); static byte TW_InitHW(void) { char *arg = HW->Name, *opt = NULL; char name[] = "twin :??? on twin"; uldat len; tmenu Tmenu; tscreen Tscreen; if (arg && HW->NameLen > 4) { arg += 4; if (strncmp(arg, "twin", 4)) return tfalse; /* user said "use <arg> as display, not libtw" */ arg += 4; if ((opt = strstr(arg, ",noinput"))) { *opt = '\0'; HW->FlagsHW |= FlHWNoInput; } if (strstr(arg, ",slow")) HW->FlagsHW |= FlHWExpensiveFlushVideo; if (*arg == '@') ++arg; /* use specified TWDISPLAY */ else arg = NULL; /* use default TWDISPLAY */ } else arg = NULL; if (!arg && !(arg = origTWDisplay)) { /* * we can't call Tw_Open(NULL) since getenv("TWDISPLAY") * returns OUR socket... and using ourself as display isn't * exactly a bright idea. */ printk(" TW_InitHW() failed: TWDISPLAY is not set\n"); if (opt) *opt = ','; return tfalse; } if (!(HW->Private = (tw_data *)AllocMem(sizeof(tw_data)))) { printk(" TW_InitHW(): Out of memory!\n"); if (opt) *opt = ','; return tfalse; } #ifdef CONF__ALLOC Tw_ConfigMalloc(AllocMem, ReAllocMem, free); #endif Td = NULL; if (Tw_CheckMagic(hw_twin_magic) && (Td = Tw_Open(arg)) && /* * check if the server supports the functions we need and store their IDs * to avoid deadlocking later when we call them. */ Tw_FindLFunction(Td, Tw_MapWidget, Tw_WriteCharsetWindow, Tw_WriteTCellWindow, Tw_GotoXYWindow, Tw_ResizeWindow, /* Tw_DragAreaWindow, */ NULL) && (Tscreen = Tw_FirstScreen(Td)) && (Tmsgport = Tw_CreateMsgPort(Td, 12, "Twin on Twin")) && (Tmenu = Tw_CreateMenu(Td, TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && Tw_Item4MenuCommon(Td, Tmenu)) do { Tw_Info4Menu(Td, Tmenu, TW_ROW_ACTIVE, (uldat)14, " Twin on Twin ", (const tcolor *)"ptppppppptpppp"); sprintf(name + 5, "%s on twin", TWDisplay); len = strlen(name); Twin = Tw_CreateWindow(Td, strlen(name), name, NULL, Tmenu, TCOL(twhite, tblack), TW_LINECURSOR, TW_WINDOW_WANT_KEYS | TW_WINDOW_WANT_MOUSE | TW_WINDOW_WANT_CHANGES | TW_WINDOW_DRAG | TW_WINDOW_RESIZE | TW_WINDOW_CLOSE, TW_WINDOWFL_USECONTENTS | TW_WINDOWFL_CURSOR_ON, (HW->X = GetDisplayWidth()), (HW->Y = GetDisplayHeight()), (uldat)0); if (!Twin) break; Tw_SetColorsWindow(Td, Twin, 0x1FF, TCOL(thigh | tyellow, tcyan), TCOL(thigh | tgreen, thigh | tblue), TCOL(twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(twhite, tblack), TCOL(twhite, thigh | tblack), TCOL(thigh | tblack, tblack), TCOL(tblack, thigh | tblack)); Tw_MapWidget(Td, Twin, Tscreen); /* * NOT Tw_Sync(Td) as it might deadlock when * twin:x displays on twin:y which displays on twin:x */ Tw_Flush(Td); TSelCount = SelCount = 0; HW->mouse_slot = NOSLOT; HW->keyboard_slot = RegisterRemote(Tw_ConnectionFd(Td), (obj)HW, (void (*)(int, obj))TW_KeyboardEvent); if (HW->keyboard_slot == NOSLOT) break; HW->FlushVideo = TW_FlushVideo; HW->FlushHW = TW_FlushHW; HW->KeyboardEvent = TW_KeyboardEvent; /* mouse events handled by TW_KeyboardEvent */ HW->MouseEvent = (void (*)(int, display_hw))NoOp; HW->XY[0] = HW->XY[1] = 0; HW->TT = (uldat)-1; /* force updating cursor */ HW->ShowMouse = NoOp; HW->HideMouse = NoOp; HW->UpdateMouseAndCursor = NoOp; HW->MouseState.x = HW->MouseState.y = HW->MouseState.keys = 0; HW->DetectSize = TW_DetectSize; HW->CheckResize = TW_CheckResize; HW->Resize = TW_Resize; HW->HWSelectionImport = TW_SelectionImport_TW; HW->HWSelectionExport = TW_SelectionExport_TW; HW->HWSelectionRequest = TW_SelectionRequest_TW; HW->HWSelectionNotify = TW_SelectionNotify_TW; HW->HWSelectionPrivate = 0; HW->CanDragArea = NULL; HW->Beep = TW_Beep; HW->Configure = TW_Configure; HW->SetPalette = (void (*)(udat, udat, udat, udat))NoOp; HW->ResetPalette = NoOp; HW->QuitHW = TW_QuitHW; HW->QuitKeyboard = NoOp; HW->QuitMouse = NoOp; HW->QuitVideo = NoOp; HW->DisplayIsCTTY = tfalse; HW->FlagsHW &= ~FlHWSoftMouse; /* mouse pointer handled by X11 server */ HW->FlagsHW |= FlHWNeedOldVideo; HW->FlagsHW &= ~FlHWExpensiveFlushVideo; HW->NeedHW = 0; HW->CanResize = ttrue; HW->merge_Threshold = 0; /* * we must draw everything on our new shiny window * without forcing all other displays * to redraw everything too. */ HW->RedrawVideo = tfalse; NeedRedrawVideo(0, 0, HW->X - 1, HW->Y - 1); if (opt) *opt = ','; return ttrue; } while (0); else { /* TwErrno(NULL) is valid... used when Tw_Open fails */ if ((len = Tw_Errno(Td))) printk(" TW_InitHW() failed: " SS "" SS "\n", Tw_StrError(Td, len), Tw_StrErrorDetail(Td, len, Tw_ErrnoDetail(Td))); else printk(" TW_InitHW() failed.\n"); } if (Td && Tw_ConnectionFd(Td) >= 0) TW_QuitHW(); if (opt) *opt = ','; return tfalse; } EXTERN_C byte InitModule(module Module) { Module->DoInit = TW_InitHW; return ttrue; } /* this MUST be defined, or it seems that a bug in dlsym() gets triggered */ EXTERN_C void QuitModule(module Module) { } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_twin.h����������������������������������������������������������������������0000664�0000000�0000000�00000000027�13775351206�0016265�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ byte TW_InitHW(void); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/��������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015403�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/common.cpp����������������������������������������������������������������0000664�0000000�0000000�00000033542�13775351206�0017406�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Functions that are common between hw_x11 and hw_xft. */ #include "algo.h" /* this can stay static, X11_FlushHW() is not reentrant */ static tcolor _col; inline void X11_Mogrify(dat x, dat y, ldat len) { tcell *V, *oV; tcolor col; udat buflen = 0; trune f; XChar16 buf[TW_SMALLBUFF]; int xbegin, ybegin; if (len <= 0) { return; } if (xhw_view) { if (x >= xhw_endx || x + len < xhw_startx || y < xhw_starty || y >= xhw_endy) return; if (x + len >= xhw_endx) len = xhw_endx - x; if (x < xhw_startx) { len -= xhw_startx - x; x = xhw_startx; } } xbegin = (x - xhw_startx) * (ldat)xwfont; ybegin = (y - xhw_starty) * (ldat)xhfont; V = Video + x + y * (ldat)DisplayWidth; oV = OldVideo + x + y * (ldat)DisplayWidth; for (_col = ~TCOLOR(*V); len; x++, V++, oV++, len--) { col = TCOLOR(*V); if (buflen && (col != _col || (ValidOldVideo && *V == *oV) || buflen == TW_SMALLBUFF)) { XDRAW(_col, buf, buflen); buflen = 0; } if (!ValidOldVideo || *V != *oV) { if (!buflen) { xbegin = (x - xhw_startx) * (ldat)xwfont; _col = col; } f = xUTF_32_to_charset(TRUNE(*V)); buf[buflen++] = RawToXChar16(f); } } if (buflen) { XDRAW(_col, buf, buflen); buflen = 0; } } inline ldat diff(ldat x, ldat y) { return x >= y ? x - y : y - x; } enum { MAX_FONT_SCORE = 100 }; static ldat calcFontScore(udat fontwidth, udat fontheight, ldat width, ldat height) { /* * TODO xft: since xft fonts are scalable, we could just consider the aspect ratio * compared to fontwidth X fontheight. */ ldat prod1 = (ldat)height * fontwidth; ldat prod2 = (ldat)width * fontheight; ldat score = MAX_FONT_SCORE - diff(height, fontheight) - 2 * diff(width, fontwidth) /* compare height/width ratio with requested one */ - diff(prod1, prod2) / Max3(1, fontwidth, width); return score; } static byte X11_LoadFont(const char *fontname, udat fontwidth, udat fontheight) { char *alloc_fontname = NULL; byte loaded = tfalse; fontname = alloc_fontname = X11_AutodetectFont(fontname, fontwidth, fontheight); #if HW_X_DRIVER == HW_X11 if ((fontname && (xsfont = XLoadQueryFont(xdisplay, fontname))) || (xsfont = XLoadQueryFont(xdisplay, fontname = "fixed"))) #elif HW_X_DRIVER == HW_XFT if (fontname && (xsfont = XftFontOpenName(xdisplay, DefaultScreen(xdisplay), fontname))) #endif { loaded = ttrue; #if HW_X_DRIVER == HW_X11 xwfont = xsfont->min_bounds.width; #elif HW_X_DRIVER == HW_XFT xwfont = xsfont->max_advance_width; #endif xwidth = xwfont * (unsigned)(HW->X = GetDisplayWidth()); xhfont = (xupfont = xsfont->ascent) + xsfont->descent; xheight = xhfont * (unsigned)(HW->Y = GetDisplayHeight()); printk(" selected %ux%u font `" SS "'\n", (unsigned)xwfont, (unsigned)xhfont, fontname); } if (alloc_fontname) free(alloc_fontname); /* allocated by FcNameUnparse() */ return loaded; } static void X11_QuitHW(void) { #ifdef TW_FEATURE_X11_XIM_XIC if (xic) XDestroyIC(xic); if (xim) XCloseIM(xim); #endif X11_FlavorQuitHW(); if (xgc != None) XFreeGC(xdisplay, xgc); if (xwindow != None) { XUnmapWindow(xdisplay, xwindow); XDestroyWindow(xdisplay, xwindow); } XCloseDisplay(xdisplay); xdisplay = NULL; if (HW->keyboard_slot != NOSLOT) UnRegisterRemote(HW->keyboard_slot); HW->keyboard_slot = NOSLOT; HW->KeyboardEvent = (void (*)(int, display_hw))NoOp; HW->QuitHW = NoOp; FreeMem(HW->Private); HW->Private = NULL; } static int check_hw_name(char *hw_name) { char *comma, *at; if (strncmp(hw_name, "-hw=", 4) != 0) { return -1; } comma = strchr(hw_name, ','); at = strchr(hw_name, '@'); if (at == NULL) { at = comma; } else if (comma != NULL && comma < at) { at = comma; } return at ? at - hw_name : -1; } static byte X11_InitHW(void) { char *arg = HW->Name; int xscreen; unsigned int xdepth; XSetWindowAttributes xattr; XColor xcolor; XSizeHints *xhints; XEvent event; Visual *xvisual; Colormap colormap; char *s, *xdisplay_ = NULL, *xdisplay0 = NULL, *fontname = NULL, *fontname0 = NULL, *charset = NULL, *charset0 = NULL, title[X11_TITLE_MAXLEN]; int i, nskip; udat fontwidth = 10, fontheight = 20; byte drag = tfalse, noinput = tfalse; unsigned long xcreategc_mask = GCForeground | GCBackground | GCGraphicsExposures; if (!(HW->Private = (struct x11_data *)AllocMem(sizeof(struct x11_data)))) { printk(" X11_InitHW(): Out of memory!\n"); return tfalse; } memset(HW->Private, 0, sizeof(struct x11_data)); /* default: show the whole screen */ xhw_view = xhw_startx = xhw_starty = xhw_endx = xhw_endy = 0; /* not yet opened */ xdisplay = NULL; if (arg && *arg && ((nskip = check_hw_name(arg)) >= 0)) { arg += nskip; if (*arg == '@') { if ((s = strchr(xdisplay_ = ++arg, ','))) { *(xdisplay0 = s) = '\0'; arg = s + 1; } else arg = NULL; } while (arg && *arg) { /* parse options */ if (*arg == ',') { arg++; continue; } if (!strncmp(arg, "font=", 5)) { fontname = arg += 5; s = strchr(arg, ','); if (s) *(fontname0 = s++) = '\0'; arg = s; } else if (!strncmp(arg, "fontsize=", 9)) { /* parse fontsize */ int n1 = atoi(arg += 9), n2 = 0; byte ch; if (n1 > 0) { while ((ch = (byte) * ++arg) && ch != ',') { /* skip fontsize digits */ if (ch == 'x') { /* parse fontheight */ n2 = atoi(arg + 1); while ((ch = (byte) * ++arg) && ch != ',') { /* skip fontheight digits */ } break; } } fontwidth = Min2(TW_MAXUDAT, n2 > 0 ? n1 : n1 / 2); fontheight = Min2(TW_MAXUDAT, n2 > 0 ? n2 : n1); } } else if (!strncmp(arg, "charset=", 8)) { charset = arg += 8; s = strchr(arg, ','); if (s) *(charset0 = s++) = '\0'; arg = s; } else if (!strncmp(arg, "view=", 5)) { xhw_view = 1; xhw_endx = strtol(arg + 5, &arg, 0); xhw_endy = strtol(arg + 1, &arg, 0); xhw_startx = strtol(arg + 1, &arg, 0); xhw_starty = strtol(arg + 1, &arg, 0); xhw_endx += xhw_startx; xhw_endy += xhw_starty; } else if (!strncmp(arg, "drag", 4)) { arg += 4; drag = ttrue; } else if (!strncmp(arg, "noinput", 7)) { arg += 7; noinput = ttrue; } else arg = strchr(arg, ','); } } xsfont = NULL; xhints = NULL; xwindow = None; xgc = None; xReqCount = XReqCount = 0; HW->keyboard_slot = NOSLOT; if ((xdisplay = XOpenDisplay(xdisplay_))) do { (void)XSetIOErrorHandler(X11_Die); if (!X11_CheckRemapKeys()) break; xscreen = DefaultScreen(xdisplay); xdepth = DefaultDepth(xdisplay, xscreen); xvisual = DefaultVisual(xdisplay, xscreen); colormap = DefaultColormap(xdisplay, xscreen); for (i = 0; i <= tmaxcol; i++) { xcolor.red = 257 * (udat)Palette[i].Red; xcolor.green = 257 * (udat)Palette[i].Green; xcolor.blue = 257 * (udat)Palette[i].Blue; if (!X11_AllocColor(xdisplay, xvisual, colormap, &xcolor, &xcol[i], i)) { printk(" X11_InitHW() failed to allocate colors\n"); break; } } if (i <= tmaxcol) break; xattr.background_pixel = xcol[0]; xattr.event_mask = ExposureMask | VisibilityChangeMask | StructureNotifyMask | SubstructureNotifyMask | KeyPressMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask; if (!X11_LoadFont(fontname, fontwidth, fontheight)) break; if (xhw_view && xhw_startx >= 0 && xhw_starty >= 0 && xhw_endx > xhw_startx && xhw_endy > xhw_starty) { /* a valid view was specified */ xwidth = xwfont * (ldat)(xhw_endx - xhw_startx); xheight = xhfont * (ldat)(xhw_endy - xhw_starty); } else { xhw_view = xhw_startx = xhw_starty = 0; xhw_endx = HW->X; xhw_endy = HW->Y; } if ((xwindow = XCreateWindow(xdisplay, DefaultRootWindow(xdisplay), 0, 0, xwidth, xheight, 0, xdepth, InputOutput, xvisual, CWBackPixel | CWEventMask, &xattr)) && (xsgc.foreground = xsgc.background = xcol[0], xsgc.graphics_exposures = False, #if HW_X_DRIVER == HW_X11 xsgc.font = xsfont->fid, xcreategc_mask = xcreategc_mask | GCFont, #elif HW_X_DRIVER == HW_XFT xforeground = xbackground = xftcolors[0], #endif xgc = XCreateGC(xdisplay, xwindow, xcreategc_mask, &xsgc)) && (xhints = XAllocSizeHints())) { static XComposeStatus static_xcompose; xcompose = static_xcompose; #if HW_X_DRIVER == HW_XFT xftdraw = XftDrawCreate(xdisplay, xwindow, xvisual, colormap); #endif #ifdef TW_FEATURE_X11_XIM_XIC xim = XOpenIM(xdisplay, NULL, NULL, NULL); if (xim != NULL) { xic = XCreateIC(xim, XNInputStyle, XIMStatusNothing | XIMPreeditNothing, XNClientWindow, xwindow, XNFocusWindow, xwindow, NULL); if (xic == NULL) { XCloseIM(xim); xim = NULL; } } else xic = NULL; #endif X11_FillWindowTitle(title, sizeof(title)); XStoreName(xdisplay, xwindow, title); if (!(xUTF_32_to_charset = X11_UTF_32_to_charset_function(charset))) xUTF_32_to_charset = X11_UTF_32_to_UCS_2; /* * ask ICCCM-compliant window manager to tell us when close window * has been chosen, rather than just killing us */ xCOMPOUND_TEXT = XInternAtom(xdisplay, "COMPOUND_TEXT", False); xTARGETS = XInternAtom(xdisplay, "TARGETS", False); xTEXT = XInternAtom(xdisplay, "TEXT", False); xUTF8_STRING = XInternAtom(xdisplay, "UTF8_STRING", False); xWM_DELETE_WINDOW = XInternAtom(xdisplay, "WM_DELETE_WINDOW", False); xWM_PROTOCOLS = XInternAtom(xdisplay, "WM_PROTOCOLS", False); XChangeProperty(xdisplay, xwindow, xWM_PROTOCOLS, XA_ATOM, 32, PropModeReplace, (unsigned char *)&xWM_DELETE_WINDOW, 1); if (xhw_view) { xhints->flags = PMinSize | PMaxSize; xhints->min_width = xhints->max_width = xwidth; xhints->min_height = xhints->max_height = xheight; } else { xhints->flags = PResizeInc; xhints->width_inc = xwfont; xhints->height_inc = xhfont; } XSetWMNormalHints(xdisplay, xwindow, xhints); XMapWindow(xdisplay, xwindow); do { XNextEvent(xdisplay, &event); } while (event.type != MapNotify); XFree(xhints); xhints = NULL; HW->mouse_slot = NOSLOT; HW->keyboard_slot = RegisterRemote(i = XConnectionNumber(xdisplay), (obj)HW, (void (*)(int, obj))X11_KeyboardEvent); if (HW->keyboard_slot == NOSLOT) break; fcntl(i, F_SETFD, FD_CLOEXEC); HW->FlushVideo = X11_FlushVideo; HW->FlushHW = X11_FlushHW; HW->KeyboardEvent = X11_KeyboardEvent; /* mouse events handled by X11_KeyboardEvent */ HW->MouseEvent = (void (*)(int, display_hw))NoOp; HW->XY[0] = HW->XY[1] = 0; HW->TT = NOCURSOR; HW->ShowMouse = NoOp; HW->HideMouse = NoOp; HW->UpdateMouseAndCursor = NoOp; HW->MouseState.x = HW->MouseState.y = HW->MouseState.keys = 0; HW->DetectSize = X11_DetectSize; HW->CheckResize = X11_CheckResize; HW->Resize = X11_Resize; HW->HWSelectionImport = X11_SelectionImport_X11; HW->HWSelectionExport = X11_SelectionExport_X11; HW->HWSelectionRequest = X11_SelectionRequest_X11; HW->HWSelectionNotify = X11_SelectionNotify_X11; HW->HWSelectionPrivate = 0; if (drag) { HW->CanDragArea = X11_CanDragArea; HW->DragArea = X11_DragArea; } else HW->CanDragArea = NULL; HW->Beep = X11_Beep; HW->Configure = X11_Configure; HW->SetPalette = (void (*)(udat, udat, udat, udat))NoOp; HW->ResetPalette = NoOp; HW->QuitHW = X11_QuitHW; HW->QuitKeyboard = NoOp; HW->QuitMouse = NoOp; HW->QuitVideo = NoOp; HW->DisplayIsCTTY = tfalse; HW->FlagsHW &= ~FlHWSoftMouse; /* mouse pointer handled by X11 server */ HW->FlagsHW |= FlHWNeedOldVideo; HW->FlagsHW |= FlHWExpensiveFlushVideo; if (noinput) HW->FlagsHW |= FlHWNoInput; HW->NeedHW = 0; HW->CanResize = ttrue; HW->merge_Threshold = 0; /* * we must draw everything on our new shiny window * without forcing all other displays * to redraw everything too. */ HW->RedrawVideo = tfalse; NeedRedrawVideo(0, 0, HW->X - 1, HW->Y - 1); if (xdisplay0) *xdisplay0 = ','; if (fontname0) *fontname0 = ','; if (charset0) *charset0 = ','; return ttrue; } } while (0); else { if (xdisplay_ || (xdisplay_ = getenv("DISPLAY"))) printk(" X11_InitHW() failed to open display " SS "\n", HW->Name); else printk(" X11_InitHW() failed: DISPLAY is not set\n"); } fail: if (xdisplay0) *xdisplay0 = ','; if (fontname0) *fontname0 = ','; if (charset0) *charset0 = ','; if (xdisplay) X11_QuitHW(); FreeMem(HW->Private); HW->Private = NULL; return tfalse; } EXTERN_C byte InitModule(module Module) { Module->DoInit = X11_InitHW; return ttrue; } /* this MUST be included, or it seems that a bug in dlsym() gets triggered */ EXTERN_C void QuitModule(module Module) { } ��������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/common_protos.h�����������������������������������������������������������0000664�0000000�0000000�00000001022�13775351206�0020445�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Function prototypes for the functions defined in common.c to minimize ordering dependencies * when #include-ing into hw_xyz.c. */ inline void X11_Mogrify(dat x, dat y, ldat len); inline ldat diff(ldat x, ldat y); static ldat calcFontScore(udat fontwidth, udat fontheight, ldat width, ldat height); static byte X11_LoadFont(const char *fontname, udat fontwidth, udat fontheight); static void X11_QuitHW(void); static byte X11_InitHW(void); EXTERN_C byte InitModule(module Module); EXTERN_C void QuitModule(module Module); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/features.h����������������������������������������������������������������0000664�0000000�0000000�00000000642�13775351206�0017374�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#undef TW_FEATURE_X11_XIM_XIC #if defined(XLookupBoth) && defined(XLookupChars) && defined(XLookupKeySym) #if defined(XNInputStyle) && defined(XIMStatusNothing) && defined(XIMPreeditNothing) #if defined(XNClientWindow) && defined(XNFocusWindow) #define TW_FEATURE_X11_XIM_XIC #endif #endif #endif #undef TW_FEATURE_X11_Xutf8LookupString #if defined(X_HAVE_UTF8_STRING) #define TW_FEATURE_X11_Xutf8LookupString #endif ����������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/flavor.h������������������������������������������������������������������0000664�0000000�0000000�00000000546�13775351206�0017052�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* The various flavors of X11-based drivers. */ #define HW_X11 1 #define HW_XFT 2 /* * The X11-based driver currently being compiled. Must be redefined in each X11-based hw_xyz.c * The default setting of "invalid" enforces this rule, because '#if HW_X_DRIVER == blah' will fail * to compile if HW_X_DRIVER is a string. */ #define HW_X_DRIVER "invalid" ����������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/flavor_protos.h�����������������������������������������������������������0000664�0000000�0000000�00000002255�13775351206�0020457�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Function prototypes for functions that each X11-based hw_xyz.c must implement. */ /* Prepare to print text using the foreground/background colors defined by 'col'. */ static void X11_SetColors(tcolor col); /* * Auto-detect the best font available, returning the name of the selected font in * allocated (char *). Returns NULL if not usable font was found. */ static char *X11_AutodetectFont(const char *family, udat fontwidth, udat fontheight); /* * Cause the X11 server to allocate the given color and store it in 'pixel'. Return 1 on * success, -1 on failure. * * Note: color_num is passed for the benefit of the xft driver which needs to store extra * information associated with the given color... */ static int X11_AllocColor(Display *display, Visual *xvisual, Colormap colormap, XColor *xcolor, unsigned long *pixel, int color_num); /* Do quit processing specific to the x11-flavor driver. */ static void X11_FlavorQuitHW(void); /* * Check whether the arg (which contains HW->Name) is a valid -hw=xyz If it is valid, return * the length of -hw=xyz. If it is not valid, log an error and return -1. */ static int check_hw_name(char *hw_name); ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/keyboard.h����������������������������������������������������������������0000664�0000000�0000000�00000031552�13775351206�0017362�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * keyboard.h * * Copyright (C) 2007 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * a user reported his system lacks DefaultRootWindow() ... */ #ifndef DefaultRootWindow #define DefaultRootWindow(xdpy) XDefaultRootWindow(xdpy) #endif #ifndef DefaultScreen #define DefaultScreen(xdpy) XDefaultScreen(xdpy) #endif #ifndef DefaultDepth #define DefaultDepth(xdpy, xscreen) XDefaultDepth(xdpy, xscreen) #endif /* * I always said X11 Selection is a nightmare... this is the worst bug I have ever seen: * * Suppose twin is running on X, and you also have twdisplay running on the same X. * You select something inside a twterm. Twin will export the selection on all displays, * in this case hw_X11 and hw_display (which talks to twdisplay and its other hw_X11). * Both the hw_X11 will do a XSetSelectionOwner, causing a race: one wins, * the other receives a SelectionClear event from X. * * Suppose twdisplay wins. * * Ok, so you have twin holding some selected data, but twdisplay actually holding * X11 Selection ownership. Now try to click on an xterm to paste that data.... nightmare! * * * note the nesting... here is what happens: * | | * v v * twdisplay receives a "Selection Request" from X (xterm), and knows twin Selection owner is twin * -> hw_X11 (twdisplay) so it forwards the request to twin * * twin receives a "Selection Request" from twdisplay, and knows twin Selection owner is twin * -> hw_X11 (twdisplay) so it resets the Selection owner (displays hold selection only for a single * request) and forwards the request to hw_X11 (twdisplay), so that twdisplay receives the request * AS AN X11 SELECTION REQUEST! * * twdisplay receives a "Selection Request" from X (twin), and knows twin Selection owner is None * so it forwards the request to twin. * PROBLEM: twdisplay must remember the TWO NESTED X11 SELECTION REQUESTS! * * twin receives a "Selection Request" from twdisplay, and knows twin Selection owner is None * so it picks its internal Selection data and Notifies it back to twdisplay * * twdisplay receives a "Selection Notify" from twin and forwards it to whoever asked it... * in this case to X (twin). * * twin receives a "Selection Notify" from twdisplay, and knows Requestor is twdisplay * so it forwards the notify to twdisplay. * * twdisplay receives a "Selection Notify" from twin and forwards it to whoever asked it... * If it remembered the nesting, it will correctly remove the previous * request from its list, and forward this notify to X (xterm), else will happily * forward this notify to X (twin), causing an INFINITE LOOP! * * * solution: * * Twdisplay must remember the two nested x11 selection requests. * Will only TWO nested requests suffice for any case? * Adding more twdisplay/twattach to the same X server * will not change anything, as only one will own X11 Selection, so I think so. * In any case, I add a counter and make twdisplay complain loud if it overflows. * */ /* Display variables */ static void X11_SelectionNotify_up(Window win, Atom prop); static void X11_SelectionRequest_up(XSelectionRequestEvent *req); static void X11_Beep(void) { XBell(xdisplay, 0); setFlush(); } static void X11_Configure(udat resource, byte todefault, udat value) { XKeyboardControl xctrl; switch (resource) { case HW_KBDAPPLIC: /* TODO */ break; case HW_ALTCURSKEYS: /* TODO */ break; case HW_BELLPITCH: xctrl.bell_pitch = todefault ? -1 : value; XChangeKeyboardControl(xdisplay, KBBellPitch, &xctrl); setFlush(); break; case HW_BELLDURATION: xctrl.bell_duration = todefault ? -1 : value; XChangeKeyboardControl(xdisplay, KBBellDuration, &xctrl); setFlush(); break; case HW_MOUSEMOTIONEVENTS: /* nothing to do */ break; default: break; } } static struct { KeySym xkey; Twkey tkey; byte len; const char *seq; } X11_keys[] = { #define IS(sym, l, s) {XK_##sym, TW_##sym, l, s}, #include "hw_keys.h" #undef IS }; static uldat X11_keyn = sizeof(X11_keys) / sizeof(X11_keys[0]); /* * calling XRebindKeysym() on non-english keyboards disrupts keys that use Mode_switch (AltGr), * so we implement a manual translation using binary search on the table above. * But first, check the table is sorted, or binary search would become bugged. */ static byte X11_CheckRemapKeys(void) { uldat i; for (i = 1; i < X11_keyn; i++) { if (X11_keys[i - 1].xkey >= X11_keys[i].xkey) { printk("\n" " ERROR: twin compiled from a bad server/hw_keys.h file\n" " (data in file is not sorted). " __FILE__ " driver is unusable!\n" " InitHW() failed: internal error.\n"); return tfalse; } } return ttrue; } #ifdef DEBUG_HW_X11 void X11_DEBUG_SHOW_KEY(const char *prefix, KeySym sym, udat len, const char *seq) { udat i; byte ch; printf("X11_LookupKey(): %s xkeysym=%d[%s] string=[", prefix, (int)sym, XKeysymToString(sym)); for (i = 0; i < len; i++) { ch = (byte)seq[i]; if (ch >= ' ' && ch <= '~' && ch != '\\') putchar((int)ch); else printf("\\x%02x", (unsigned)ch); } printf("] locale=%s\n", XLocaleOfIM(xim)); } #else #define X11_DEBUG_SHOW_KEY(prefix, sym, len, seq) ((void)0) #endif /* convert an X11 KeySym into a libtw key code and ASCII sequence */ static Twkey X11_LookupKey(XEvent *ev, udat *ShiftFlags, udat *len, char *seq) { static Twkey lastTW = TW_Null; static uldat lastI = TW_MAXULDAT; static KeySym lastXK = NoSymbol; KeySym sym = XK_VoidSymbol; XKeyEvent *kev = &ev->xkey; uldat i, low, up, _len = *len; *ShiftFlags = ((kev->state & ShiftMask) ? KBD_SHIFT_FL : 0) | ((kev->state & LockMask) ? KBD_CAPS_LOCK : 0) | ((kev->state & ControlMask) ? KBD_CTRL_FL : 0) | ((kev->state & (Mod1Mask | Mod3Mask)) ? KBD_ALT_FL : 0) | /* Alt|AltGr */ ((kev->state & Mod2Mask) ? KBD_NUM_LOCK : 0); /* Num_Lock */ #ifdef TW_FEATURE_X11_XIM_XIC if (xic) { Status status_return; #ifdef TW_FEATURE_X11_Xutf8LookupString *len = Xutf8LookupString(xic, kev, seq, _len, &sym, &status_return); #else *len = XmbLookupString(xic, kev, seq, _len, &sym, &status_return); #endif if (XFilterEvent(ev, None)) { return TW_Null; } if (status_return != XLookupBoth && status_return != XLookupChars && status_return != XLookupKeySym) { sym = XK_VoidSymbol; } } #endif if (sym == XK_VoidSymbol || sym == 0) { *len = XLookupString(kev, seq, _len, &sym, &xcompose); } X11_DEBUG_SHOW_KEY("", sym, *len, seq); if (sym == XK_BackSpace && (kev->state & (ControlMask | Mod1Mask)) != 0) { if (kev->state & ControlMask) { *len = 1, *seq = '\x1F'; } else { *len = 2, seq[0] = '\x1B', seq[1] = '\x7F'; } return TW_BackSpace; } if ((sym >= ' ' && sym <= '~') || (sym >= 0xA0 && sym <= 0xFF)) { /* turn ALT+A into ESC+A etc. */ if ((kev->state & Mod1Mask) != 0 && *len == 1 && (byte)sym == *seq) { *len = 2; seq[1] = seq[0]; seq[0] = '\x1B'; X11_DEBUG_SHOW_KEY("replaced(1)", sym, *len, seq); } return (Twkey)sym; } if (sym != lastXK) { low = 0; /* the first possible */ up = X11_keyn; /* 1 + the last possible */ while (low < up) { i = (low + up) / 2; if (sym == X11_keys[i].xkey) { lastTW = X11_keys[lastI = i].tkey; break; } else if (sym > X11_keys[i].xkey) low = i + 1; else up = i; } if (low == up) { lastI = X11_keyn; lastTW = TW_Null; } lastXK = sym; } /* XLookupString() returned empty string, or no ShiftFlags (ignoring CapsLock/NumLock): use the * sequence stated in hw_keys.h */ if (lastI < X11_keyn && X11_keys[lastI].len && (*len == 0 || (*ShiftFlags & ~(KBD_CAPS_LOCK | KBD_NUM_LOCK)) == 0)) { if (_len > X11_keys[lastI].len) { CopyMem(X11_keys[lastI].seq, seq, *len = X11_keys[lastI].len); X11_DEBUG_SHOW_KEY("replaced(2)", sym, *len, seq); } } return lastTW == TW_Null && *len != 0 ? TW_Other : lastTW; } static void X11_HandleEvent(XEvent *event) { /* this can stay static, X11_HandleEvent() is not reentrant */ static char seq[TW_SMALLBUFF]; dat x, y, dx, dy; udat len = sizeof(seq), ShiftFlags; Twkey TW_key; if (event->xany.window == xwindow) switch (event->type) { case KeyPress: TW_key = X11_LookupKey(event, &ShiftFlags, &len, seq); if (TW_key != TW_Null) { KeyboardEventCommon(TW_key, ShiftFlags, len, seq); } break; case KeyRelease: break; case MotionNotify: case ButtonPress: case ButtonRelease: x = event->xbutton.x / xwfont + xhw_startx; if (x < 0) x = 0; else if (x >= DisplayWidth) x = DisplayWidth - 1; y = event->xbutton.y / xhfont + xhw_starty; if (y < 0) y = 0; else if (y >= DisplayHeight) y = DisplayHeight - 1; if (event->type == MotionNotify) { dx = event->xbutton.x < xwfont / 2 ? -1 : xwidth - event->xbutton.x <= xwfont / 2 ? 1 : 0; dy = event->xbutton.y < xhfont / 2 ? -1 : xheight - event->xbutton.y <= xhfont / 2 ? 1 : 0; if (dx || dy || x != HW->MouseState.x || y != HW->MouseState.y) MouseEventCommon(x, y, dx, dy, HW->MouseState.keys); break; } dx = event->xbutton.state; dy = (dx & Button1Mask ? HOLD_LEFT : 0) | (dx & Button2Mask ? HOLD_MIDDLE : 0) | (dx & Button3Mask ? HOLD_RIGHT : 0) | #ifdef HOLD_WHEEL_REV (dx & Button4Mask ? HOLD_WHEEL_REV : 0) | #endif #ifdef HOLD_WHEEL_FWD (dx & Button5Mask ? HOLD_WHEEL_FWD : 0) | #endif 0; /* * when sending ButtonRelease event, X11 reports that button * as still held down in event->xbutton.state ButtonMask... * * instead when sending ButtonPress event, X11 reports that * button as still NOT held down in event->xbutton.state ButtonMask... * * fix both cases here. */ dx = event->xbutton.button; dx = (dx == Button1 ? HOLD_LEFT : dx == Button2 ? HOLD_MIDDLE : dx == Button3 ? HOLD_RIGHT : #ifdef HOLD_WHEEL_REV dx == Button4 ? HOLD_WHEEL_REV : #endif #ifdef HOLD_WHEEL_FWD dx == Button5 ? HOLD_WHEEL_FWD : #endif 0); if (event->type == ButtonPress) { dy |= dx; } else { dy &= ~dx; } MouseEventCommon(x, y, 0, 0, dy); break; case ConfigureNotify: if (!xhw_view) { if (HW->X != event->xconfigure.width / xwfont || HW->Y != event->xconfigure.height / xhfont) { HW->X = (xwidth = event->xconfigure.width) / xwfont; HW->Y = (xheight = event->xconfigure.height) / xhfont; ResizeDisplayPrefer(HW); } } break; case Expose: x = event->xexpose.x / xwfont + xhw_startx; y = event->xexpose.y / xhfont + xhw_starty; dx = (event->xexpose.x + xhw_startx * xwfont + event->xexpose.width + xwfont - 2) / xwfont; dy = (event->xexpose.y + xhw_starty * xhfont + event->xexpose.height + xhfont - 2) / xhfont; NeedRedrawVideo(x, y, dx, dy); /* must we redraw the cursor too ? */ if (HW->XY[0] >= x && HW->XY[0] <= dx && HW->XY[1] >= y && HW->XY[1] <= dy) { HW->TT = NOCURSOR; } break; case VisibilityNotify: xwindow_AllVisible = event->xvisibility.state == VisibilityUnobscured; break; case SelectionClear: HW->HWSelectionPrivate = 0; /* selection now owned by some other X11 client */ TwinSelectionSetOwner((obj)HW, SEL_CURRENTTIME, SEL_CURRENTTIME); break; case SelectionRequest: X11_SelectionRequest_up(&event->xselectionrequest); break; case SelectionNotify: X11_SelectionNotify_up(event->xselection.requestor, event->xselection.property); break; case ClientMessage: if (event->xclient.message_type == xWM_PROTOCOLS && event->xclient.format == 32 && (Atom)event->xclient.data.l[0] == xWM_DELETE_WINDOW) { /* going to close this display */ HW->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; } break; default: break; } } static void X11_KeyboardEvent(int fd, display_hw D_HW) { XEvent event; SaveHW; SetHW(D_HW); while (XPending(xdisplay) > 0) { XNextEvent(xdisplay, &event); X11_HandleEvent(&event); } RestoreHW; } ������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/util.h��������������������������������������������������������������������0000664�0000000�0000000�00000035201�13775351206�0016532�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Functions that are common between hw_x11 and hw_xft */ #define X11_TITLE_MAXLEN 80 static void X11_FillWindowTitle(char *title, int maxlen) { int left = maxlen; int chunk = 0; memset(title, '\0', left); if (left < 6) return; left--; /* reserve space for final '\0' */ memcpy(title, "twin ", 5); title += 5; left -= 5; if (gethostname(title, left) == 0) { char *end = (char *)memchr(title, '\0', left); chunk = (end == NULL) ? 0 : (int)(end - title); if (chunk > 0 && chunk <= left) { title[-1] = '@'; title += chunk; left -= chunk; } } chunk = strlen(TWDisplay); if (chunk > 0 && chunk <= left) { memcpy(title, TWDisplay, chunk); title += chunk; left -= chunk; } if (left <= 0) title--; title[0] = '\0'; } static void X11_HideCursor(dat x, dat y) { int xbegin = (x - xhw_startx) * xwfont, ybegin = (y - xhw_starty) * xhfont; /* needed by XDRAW_ANY */ tcell V = (x >= 0 && x < DisplayWidth && y >= 0 && y < DisplayHeight) ? Video[x + y * (ldat)DisplayWidth] : TCELL(TCOL(thigh | twhite, tblack), ' '); tcolor col = TCOLOR(V); tcell extra = 0; trune f = xUTF_32_to_charset(TRUNE(V)); XChar16 c = RawToXChar16(f); XDRAW_ANY(&c, 1, col, extra); } static void X11_ShowCursor(uldat type, dat x, dat y) { tcell V = (x >= 0 && x < DisplayWidth && y >= 0 && y < DisplayHeight) ? Video[x + y * (ldat)DisplayWidth] : TCELL(TCOL(thigh | twhite, tblack), ' '); ldat xbegin = (x - xhw_startx) * xwfont; ldat ybegin = (y - xhw_starty) * xhfont; if (type & 0x10) { /* soft cursor */ tcolor v = (TCOLOR(V) | ((type >> 16) & 0xff)) ^ ((type >> 8) & 0xff); trune f; XChar16 c; if ((type & 0x20) && (TCOLOR(V) & TCOL(0, twhite)) == (v & TCOL(0, twhite))) v ^= TCOL(0, twhite); if ((type & 0x40) && ((TCOLFG(v) & twhite) == (TCOLBG(v) & twhite))) v ^= TCOL(twhite, 0); f = xUTF_32_to_charset(TRUNE(V)); c = RawToXChar16(f); XDRAW_ANY(&c, 1, v, 0); } else if (type & 0xF) { /* VGA hw-like cursor */ /* doesn't work as expected on paletted visuals... */ unsigned long fg = xcol[TCOLFG(TCOLOR(V)) ^ TCOLBG(TCOLOR(V))]; udat i = xhfont * ((type & 0xF) - NOCURSOR) / (SOLIDCURSOR - NOCURSOR); if (xsgc.foreground != fg) { XSetForeground(xdisplay, xgc, xsgc.foreground = fg); #if HW_X_DRIVER == HW_XFT xforeground = xftcolors[TCOLFG(TCOLOR(V)) ^ TCOLBG(TCOLOR(V))]; #endif } XSetFunction(xdisplay, xgc, xsgc.function = GXxor); XFillRectangle(xdisplay, xwindow, xgc, xbegin, ybegin + xhfont - i, xwfont, i); XSetFunction(xdisplay, xgc, xsgc.function = GXcopy); } } static void X11_FlushVideo(void) { uldat i; dat start, end; byte iff; if (ValidOldVideo) { iff = ChangedVideoFlag && Video[HW->XY[0] + HW->XY[1] * (ldat)DisplayWidth] != OldVideo[HW->XY[0] + HW->XY[1] * (ldat)DisplayWidth]; /* ttrue if and only if the cursor will be erased by burst */ } /* first burst all changes */ if (ChangedVideoFlag) { for (i = 0; i < (uldat)DisplayHeight * 2; i++) { start = ChangedVideo[i >> 1][i & 1][0]; end = ChangedVideo[i >> 1][i & 1][1]; if (start != -1) X11_Mogrify(start, i >> 1, end - start + 1); } setFlush(); } /* then, we may have to erase the old cursor */ if (!ValidOldVideo || (!iff && HW->TT != NOCURSOR && (CursorType != HW->TT || CursorX != HW->XY[0] || CursorY != HW->XY[1]))) { HW->TT = NOCURSOR; X11_HideCursor(HW->XY[0], HW->XY[1]); setFlush(); } /* finally, redraw the cursor if forced to redraw or */ /* (we want a cursor and (the burst erased the cursor or the cursor changed)) */ if (!ValidOldVideo || (CursorType != NOCURSOR && (iff || CursorType != HW->TT || CursorX != HW->XY[0] || CursorY != HW->XY[1]))) { X11_ShowCursor(HW->TT = CursorType, HW->XY[0] = CursorX, HW->XY[1] = CursorY); setFlush(); } HW->FlagsHW &= ~FlHWChangedMouseFlag; } static void X11_FlushHW(void) { XFlush(xdisplay); clrFlush(); } static void X11_DetectSize(dat *x, dat *y) { if (!xhw_view) { *x = HW->X = xwidth / xwfont; *y = HW->Y = xheight / xhfont; } } static void X11_CheckResize(dat *x, dat *y) { /* always ok */ } static void X11_Resize(dat x, dat y) { if (x != HW->X || y != HW->Y) { if (!xhw_view) { XResizeWindow(xdisplay, xwindow, xwidth = xwfont * (HW->X = xhw_endx = x), xheight = xhfont * (HW->Y = xhw_endy = y)); } setFlush(); } } /* * import X11 Selection */ static byte X11_SelectionImport_X11(void) { return !HW->HWSelectionPrivate; } /* * export our Selection to X11 */ static void X11_SelectionExport_X11(void) { if (!HW->HWSelectionPrivate) { XSetSelectionOwner(xdisplay, XA_PRIMARY, xwindow, CurrentTime); HW->HWSelectionPrivate = (tany)xwindow; setFlush(); } } static void X11_utf8_to_wchar(Chars src, Vector<wchar_t> &dst) { dst.reserve(src.size()); Utf8 seq; while (src) { seq.parse(src, &src); dst.append(seq.rune()); } } /* * notify our Selection to X11 */ static void X11_SelectionNotify_X11(uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], Chars data) { XEvent ev; Atom target; if (XReqCount == 0) { printk(THIS ".c: X11_SelectionNotify_X11(): unexpected Twin Selection Notify event!\n"); return; } #if 0 else { printk(THIS ".c: X11_SelectionNotify_X11(): %d nested Twin Selection Notify events\n", XReqCount); } #endif XReqCount--; XSelectionRequestEvent &req = XReq(XReqCount); ev.xselection.type = SelectionNotify; ev.xselection.property = None; ev.xselection.display = req.display; ev.xselection.requestor = req.requestor; ev.xselection.selection = req.selection; ev.xselection.target = target = req.target; ev.xselection.time = req.time; if (target == xTARGETS) { /* * On some systems, the Atom typedef is 64 bits wide. * We need a type that is exactly 32 bits wide, * because a format of 64 is not allowed by the X11 protocol. */ typedef CARD32 Atom32; Atom32 target_list[5]; target_list[0] = (Atom32)xTARGETS; target_list[1] = (Atom32)XA_STRING; target_list[2] = (Atom32)xUTF8_STRING; target_list[3] = (Atom32)xTEXT; target_list[4] = (Atom32)xCOMPOUND_TEXT; XChangeProperty(xdisplay, req.requestor, req.property, xTARGETS, 32, PropModeReplace, (const byte *)target_list, sizeof(target_list)); } else if (target == xUTF8_STRING) { /* notify X11 selection as UTF-8 */ XChangeProperty(xdisplay, req.requestor, req.property, xUTF8_STRING, 8, PropModeReplace, (const byte *)data.data(), data.size()); } else { XICCEncodingStyle style; if (target == XA_STRING) { style = XStringStyle; } else if (target == xTEXT) { style = XStdICCTextStyle; } else /*if (target == xCOMPOUND_TEXT)*/ { style = XCompoundTextStyle; } Vector<wchar_t> wtext; X11_utf8_to_wchar(data, wtext); wtext.append('\0'); wchar_t *waddr = wtext.data(); XTextProperty ct = {}; bool freect = false; if (XwcTextListToTextProperty(xdisplay, &waddr, 1, style, &ct) >= 0) { freect = true; } else { ct.value = (byte *)const_cast<char *>(data.data()); ct.nitems = data.size(); ct.encoding = target; } XChangeProperty(xdisplay, req.requestor, req.property, ct.encoding, 8, PropModeReplace, ct.value, (int)ct.nitems); if (freect) { XFree(ct.value); } } ev.xselection.property = req.property; XSendEvent(xdisplay, req.requestor, False, 0, &ev); setFlush(); } /* * notify the X11 Selection to twin upper layer */ static void X11_SelectionNotify_up(Window win, Atom prop) { long nread = 0; unsigned long i, nitems, bytes_after = TW_BIGBUFF; Atom actual_type; int actual_fmt; byte *data = NULL; String buff; bool ok = true; if (xReqCount == 0) { printk(THIS ".c: X11_SelectionNotify_up(): unexpected X Selection Notify event!\n"); return; } #if 0 else { printk(THIS ".c: X11_SelectionNotify_up(): %d nested X Selection Notify event\n", xReqCount); } #endif if (prop == None) { return; } xReqCount--; do { ok = XGetWindowProperty(xdisplay, win, prop, nread / 4, bytes_after / 4, False, AnyPropertyType, &actual_type, &actual_fmt, &nitems, &bytes_after, &data) == Success; if (actual_type == xUTF8_STRING) { /* X11 selection contains UTF-8 */ ok = buff.append(Chars((const char *)data, nitems)); } else if (actual_type == XA_STRING) { /* X11 selection contains ISO8859-1: convert to UTF-8 */ for (i = 0; ok && i < nitems; i++) { ok = buff.append(Utf8(trune(data[i]))); } } else { ok = false; } } while (ok && bytes_after > 0); if (data) { XFree(data); } /* Signal the selection owner that we have successfully read the data. */ XDeleteProperty(xdisplay, win, prop); if (buff) { TwinSelectionNotify(xRequestor(xReqCount), xReqPrivate(xReqCount), SEL_UTF8MAGIC, NULL, buff); } } /* * request X11 Selection */ static void X11_SelectionRequest_X11(obj Requestor, uldat ReqPrivate) { if (!HW->HWSelectionPrivate) { if (xReqCount == NEST) { printk(THIS ".c: X11_SelectionRequest_X11(): too many nested Twin Selection Request events!\n"); return; } #if 0 else { printk(THIS ".c: X11_SelectionRequest_X11(): %d nested Twin Selection Request events\n", xReqCount+1); } #endif xRequestor(xReqCount) = Requestor; xReqPrivate(xReqCount) = ReqPrivate; xReqCount++; if (XGetSelectionOwner(xdisplay, XA_PRIMARY) == None) { X11_SelectionNotify_up(DefaultRootWindow(xdisplay), XA_CUT_BUFFER0); } else { Atom prop = XInternAtom(xdisplay, "VT_SELECTION", False); /* Request conversion to UTF-8. Not all owners will be able to fulfill that request. */ XConvertSelection(xdisplay, XA_PRIMARY, xUTF8_STRING, prop, xwindow, CurrentTime); setFlush(); /* we will get an X11 SelectionNotify event */ } } /* else race! someone else became Selection owner in the meanwhile... */ } /* * request twin Selection */ static void X11_SelectionRequest_up(XSelectionRequestEvent *req) { if (XReqCount == NEST) { printk(THIS ".c: X11_SelectionRequest_up(): too many nested X Selection Request events!\n"); return; } #if 0 else { printk(THIS ".c: X11_SelectionRequest_up(): %d nested X Selection Request events\n", XReqCount+1); } #endif CopyMem(req, &XReq(XReqCount), sizeof(XSelectionRequestEvent)); TwinSelectionRequest((obj)HW, XReqCount++, TwinSelectionGetOwner()); /* we will get a HW->HWSelectionNotify (i.e. X11_SelectionNotify_X11) call */ /* the call **CAN** arrive while we are still inside TwinSelectionRequest() !!! */ } static byte X11_CanDragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { return xwindow_AllVisible /* if window is partially covered, XCopyArea() cannot work */ && !HW->RedrawVideo /* if window is not up-to-date, XCopyArea() is unusable */ && (Rgt - Left + 1) * (Dwn - Up + 1) > 20; /* avoid XCopyArea() for very small areas */ } static void X11_DragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { dat DstRgt = (Rgt - Left) + DstLeft; dat DstDwn = (Dwn - Up) + DstUp; if (HW->TT != NOCURSOR) { if (HW->XY[0] >= Left && HW->XY[0] <= Rgt && HW->XY[1] >= Up && HW->XY[1] <= Dwn) { /* must hide the cursor before dragging */ X11_HideCursor(HW->XY[0], HW->XY[1]); /* and remember to redraw it */ HW->TT = (uldat)-1; } else if (HW->XY[0] >= DstLeft && HW->XY[0] <= DstRgt && HW->XY[1] >= DstUp && HW->XY[1] <= DstDwn) { /* cursor will be overwritten by drag, remember to redraw it */ HW->TT = (uldat)-1; } } XCopyArea(xdisplay, xwindow, xwindow, xgc, Left * xwfont, Up * xhfont, (Rgt - Left + 1) * xwfont, (Dwn - Up + 1) * xhfont, DstLeft * xwfont, DstUp * xhfont); setFlush(); } #if 0 /* does NOT work... libX11 insists on doing exit(1) */ static int X11_Die(Display *d) { /* * this is not exactly trivial: * find our HW, shut it down * and quit if it was the last HW. * * don't rely on HW->Private only, as non-X11 displays * may use it differently and have by chance the same value for it. */ forallHW { if (HW->QuitHW == X11_QuitHW && HW->Private && d == xdisplay) { /* expands to HW->Private->xdisplay */ HW->NeedHW |= NEEDPanicHW, NeedHW |= NEEDPanicHW; break; } } return 0; } #else static int X11_Die(Display *d) { Quit(0); return 0; } #endif #if HW_X_DRIVER != HW_XFT static Tutf_function X11_UTF_32_to_charset_function(const char *charset) { XFontProp *fp; unsigned long prop; const char *s, *fontname = NULL; uldat i; if (!charset) { /* attempt to autodetect encoding from fontname */ if (XGetFontProperty(xsfont, XA_FONT, &prop)) fontname = XGetAtomName(xdisplay, (Atom)prop); if (fontname && !strcmp(fontname, "vga")) { charset = T_NAME_CP437; } else if (fontname) { i = 2; for (s = fontname + strlen(fontname) - 1; i && s >= fontname; s--) { if (*s == '-') i--; } if (!i) charset = s + 2; /* skip current char and '-' */ } if (!charset) { if (xsfont->min_byte1 < xsfont->max_byte1) { /* font is more than just 8-bit. For now, assume it's unicode */ printk(" X11_InitHW: font `" SS "\' has no known charset encoding,\n" " assuming Unicode.\n", fontname); return NULL; } /* else assume codepage437. gross. */ printk(" X11_InitHW: font `" SS "\' has no known charset encoding,\n" " assuming CP437 codepage (\"VGA\").\n", fontname); return Tutf_UTF_32_to_CP437; } } i = Tutf_charset_id(charset); s = Tutf_charset_name(i); if (s && !strcmp(s, T_NAME_UTF_32)) { /* this is an Unicode font. good. */ return NULL; } if (i == (uldat)-1) { printk(" X11_InitHW(): libtutf warning: unknown charset `" SS "', assuming `CP437'\n", charset); return Tutf_UTF_32_to_CP437; } return Tutf_UTF_32_to_charset_function(i); } #endif static trune X11_UTF_32_to_UCS_2(trune c) { if ((c & 0x1FFE00) == 0xF000) /* private use codepoints. for compatibility, treat as "direct-to-font" zone */ c &= 0x01FF; if (c > 0x10FFFF) /* not representable in two bytes */ c = 0xFFFD; return c; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/util_protos.h�������������������������������������������������������������0000664�0000000�0000000�00000002352�13775351206�0020141�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * Function prototypes for the functions defined in util.h to minimize ordering dependencies * when #include-ing into hw_xyz.c. */ #include "stl/view.h" static void X11_FillWindowTitle(char *title, int maxlen); static void X11_HideCursor(dat x, dat y); static void X11_ShowCursor(uldat type, dat x, dat y); static void X11_FlushVideo(void); static void X11_FlushHW(void); static void X11_DetectSize(dat *x, dat *y); static void X11_CheckResize(dat *x, dat *y); static void X11_Resize(dat x, dat y); static byte X11_SelectionImport_X11(void); static void X11_SelectionExport_X11(void); static void X11_SelectionNotify_X11(uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], Chars Data); static void X11_SelectionNotify_up(Window win, Atom prop); static void X11_SelectionRequest_X11(obj Requestor, uldat ReqPrivate); static void X11_SelectionRequest_up(XSelectionRequestEvent *req); static byte X11_CanDragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp); static void X11_DragArea(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp); static int X11_Die(Display *d); static Tutf_function X11_UTF_32_to_charset_function(const char *charset); static trune X11_UTF_32_to_UCS_2(trune c); ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/x11_data.h����������������������������������������������������������������0000664�0000000�0000000�00000004651�13775351206�0017164�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* State data for the various hw modes that use X11. */ #define NEST 4 struct x11_data { int xwidth, xheight; int xwfont, xhfont, xupfont; /* we support showing only a portion of the whole twin display */ dat xhw_view, xhw_startx, xhw_starty, xhw_endx, xhw_endy; Tutf_function xUTF_32_to_charset; Display *xdisplay; Window xwindow; GC xgc; XGCValues xsgc; #if HW_X_DRIVER == HW_X11 XFontStruct *xsfont; #elif HW_X_DRIVER == HW_XFT XftFont *xsfont; XftDraw *xftdraw; XftColor *foreground; // current foreground color XftColor *background; // current background color XftColor *xftcolors[tmaxcol + 1]; #endif #ifdef TW_FEATURE_X11_XIM_XIC /* autodetected */ XIM xim; XIC xic; #endif XComposeStatus xcompose; byte xwindow_AllVisible, xfont_map; obj xRequestor[NEST]; uldat xReqPrivate[NEST]; uldat xReqCount; uldat XReqCount; XSelectionRequestEvent XReq[NEST]; unsigned long xcol[tmaxcol + 1]; Atom xCOMPOUND_TEXT, xTARGETS, xTEXT, xUTF8_STRING, xWM_DELETE_WINDOW, xWM_PROTOCOLS; }; #define xdata ((struct x11_data *)HW->Private) #define xwidth (xdata->xwidth) #define xheight (xdata->xheight) #define xwfont (xdata->xwfont) #define xhfont (xdata->xhfont) #define xupfont (xdata->xupfont) #define xhw_view (xdata->xhw_view) #define xhw_startx (xdata->xhw_startx) #define xhw_starty (xdata->xhw_starty) #define xhw_endx (xdata->xhw_endx) #define xhw_endy (xdata->xhw_endy) #define xUTF_32_to_charset (xdata->xUTF_32_to_charset) #define xdisplay (xdata->xdisplay) #define xwindow (xdata->xwindow) #define xgc (xdata->xgc) #define xsgc (xdata->xsgc) #define xsfont (xdata->xsfont) #define xim (xdata->xim) #define xic (xdata->xic) #define xcompose (xdata->xcompose) #define xwindow_AllVisible (xdata->xwindow_AllVisible) #define xfont_map (xdata->xfont_map) #define xRequestor(j) (xdata->xRequestor[j]) #define xReqPrivate(j) (xdata->xReqPrivate[j]) #define xReqCount (xdata->xReqCount) #define XReqCount (xdata->XReqCount) #define XReq(j) (xdata->XReq[j]) #define xcol (xdata->xcol) #define xCOMPOUND_TEXT (xdata->xCOMPOUND_TEXT) #define xTARGETS (xdata->xTARGETS) #define xTEXT (xdata->xTEXT) #define xUTF8_STRING (xdata->xUTF8_STRING) #define xWM_PROTOCOLS (xdata->xWM_PROTOCOLS) #define xWM_DELETE_WINDOW (xdata->xWM_DELETE_WINDOW) #if HW_X_DRIVER == HW_XFT #define xftdraw (xdata->xftdraw) #define xforeground (xdata->foreground) #define xbackground (xdata->background) #define xftcolors (xdata->xftcolors) #endif ���������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_x/xchar16.h�����������������������������������������������������������������0000664�0000000�0000000�00000000453�13775351206�0017032�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* 16-bit character representation for basic X11 */ typedef XChar2b XChar16; inline XChar16 RawToXChar16(trune raw) { XChar16 p = {(unsigned char)(raw >> 8), (unsigned char)(raw & 0xFF)}; return p; } inline trune XChar16ToRaw(XChar16 p) { return ((trune)p.byte1 << 8) | ((trune)p.byte2); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_xft.cpp���������������������������������������������������������������������0000664�0000000�0000000�00000020420�13775351206�0016437�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * hw_xft.c -- functions to let twin display on X11 with truetype fonts. * * Copyright (C) 1999-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <Tw/Twkeys.h> #include <Tutf/Tutf.h> #include <Tutf/Tutf_defs.h> #include "twin.h" #include "alloc.h" #include "main.h" #include "data.h" #include "remote.h" #include "hw.h" #include "hw_private.h" #include "hw_dirty.h" #include "common.h" #include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/keysym.h> #include <X11/Xatom.h> #include <X11/Xmd.h> /* CARD32 */ #include <X11/Xft/Xft.h> #include <fontconfig/fontconfig.h> #define THIS "hw_xft" #include "hw_x/flavor.h" #undef HW_X_DRIVER #define HW_X_DRIVER HW_XFT #include "hw_x/features.h" #include "hw_x/x11_data.h" #include "hw_x/keyboard.h" #include "hw_xft/xchar16.h" #include "hw_x/flavor_protos.h" #include "hw_x/util_protos.h" #include "hw_x/common_protos.h" /* forward declaration... */ static void X11_XftDrawString16(Display *display, Drawable d, GC gc, int x, int y, XChar16 *string, int length); #define myXDrawImageString X11_XftDrawString16 #define XDRAW(col, buf, buflen) \ do { \ X11_SetColors(col); \ myXDrawImageString(xdisplay, xwindow, xgc, xbegin, ybegin + xupfont, buf, buflen); \ } while (0) #define XDRAW_ANY(buf, buflen, col, _) XDRAW(col, buf, buflen) #include "hw_x/util.h" #include "hw_x/common.cpp" static void X11_XftDrawString16(Display *display, Drawable d, GC gc, int x, int y, XChar16 *string, int length) { /* * XftDrawString16 doesn't erase the existing character before it draws a new one, and when * it draws the new one, it only draws the strokes, so you see some of the previous character * "underneath" the new one. So we first draw a rectangle with the background color, and then * draw the text on top of it in the foreground color. */ XftDrawRect(xftdraw, xbackground, x, y - xsfont->ascent, length * xsfont->max_advance_width, xsfont->ascent + xsfont->descent); XftDrawString16(xftdraw, xforeground, xsfont, x, y, string, length); } /* manage foreground/background colors */ static void X11_SetColors(tcolor col) { if (xsgc.foreground != xcol[TCOLFG(col)]) { XSetForeground(xdisplay, xgc, xsgc.foreground = xcol[TCOLFG(col)]); xforeground = xftcolors[TCOLFG(col)]; } if (xsgc.background != xcol[TCOLBG(col)]) { XSetBackground(xdisplay, xgc, xsgc.background = xcol[TCOLBG(col)]); xbackground = xftcolors[TCOLBG(col)]; } } static ldat xftCalcFontScore(udat fontwidth, udat fontheight, XftFont *fontp, const char *fontname) { if (FC_CHARSET_MAP_SIZE >= 256 / 32) { FcChar32 map[FC_CHARSET_MAP_SIZE] = {}, *ptr = map, mask = (FcChar32)-1; FcChar32 next, first = FcCharSetFirstPage(fontp->charset, map, &next); /* check that font contains at least ASCII (space is not necessary since it's blank) */ if (first == FC_CHARSET_DONE || first > ' ' + 1) return 0; if (first == 0) { first = 32; } else { if (first < ' ') { FcChar32 n = ' ' - first; first = 32; map[0] >>= n; mask >>= n; } if ((map[0] & mask) != mask) return 0; } ptr++; while (first < '~') { if (ptr >= map + FC_CHARSET_MAP_SIZE) return 0; mask = (FcChar32)-1; if ('~' - first < 32) mask >>= '~' - first; if ((ptr[0] & mask) != mask) return 0; first += 32; ptr++; } } ldat score = calcFontScore(fontwidth, fontheight, (ldat)fontp->max_advance_width, (ldat)fontp->ascent + fontp->descent); /* slightly prefer fonts with "DejaVu" "Sans" and "Mono" in their name */ if (!strstr(fontname, "DejaVu") && !strstr(fontname, "dejavu")) score -= 2; if (!strstr(fontname, "Sans") && !strstr(fontname, "sans") && !strstr(fontname, "Mono") && !strstr(fontname, "mono")) score--; return score; } /* return name of selected font in allocated (char *) */ static char *X11_AutodetectFont(const char *family, udat fontwidth, udat fontheight) { char *fontname = NULL; FcPattern *best_pattern = NULL; ldat best_score = TW_MINLDAT; /* * find a usable font as follows * an xft font (outline=true, scalable=true) * monospace (spacing=100) * not italic (slant=0) * medium weight (75 <= weight <= 100) * highest font score (closest to fontwidth X fontheight) */ FcFontSet *fontset = XftListFonts(xdisplay, DefaultScreen(xdisplay), XFT_OUTLINE, XftTypeBool, FcTrue, XFT_SCALABLE, XftTypeBool, FcTrue, XFT_SPACING, XftTypeInteger, 100, XFT_SLANT, XftTypeInteger, 0, (char *)0, XFT_WEIGHT, XFT_FAMILY, XFT_FILE, (char *)0); if (fontset) { for (int i = 0; i < fontset->nfont; i++) { XftFont *fontp; FcChar8 *file; FcChar8 *t_family; FcPattern *t_pattern; int weight; if (FcPatternGetInteger(fontset->fonts[i], XFT_WEIGHT, 0, &weight) != FcResultMatch) { continue; } if ((weight < FC_WEIGHT_BOOK) || (weight > FC_WEIGHT_MEDIUM)) { continue; } if (FcPatternGetString(fontset->fonts[i], XFT_FILE, 0, &file) != FcResultMatch) { continue; } if (family && FcPatternGetString(fontset->fonts[i], XFT_FAMILY, 0, &t_family) == FcResultMatch) { if (!strstr((const char *)t_family, family)) { continue; } } t_pattern = FcPatternCreate(); FcPatternAddInteger(t_pattern, XFT_PIXEL_SIZE, fontheight * 5 / 6); FcPatternAddString(t_pattern, XFT_FILE, file); fontp = XftFontOpenPattern(xdisplay, t_pattern); if (fontp) { ldat score = xftCalcFontScore(fontwidth, fontheight, fontp, (const char *)file); if (best_pattern == NULL || score > best_score) { best_score = score; if (best_pattern) { FcPatternDestroy(best_pattern); } best_pattern = FcPatternDuplicate(t_pattern); } /* XftFontClose() also destroys the XftPattern passed to XftFontOpenPattern() */ XftFontClose(xdisplay, fontp); } } FcFontSetDestroy(fontset); } if (best_pattern) { fontname = (char *)FcNameUnparse(best_pattern); FcPatternDestroy(best_pattern); } else { fontname = strdup("Mono"); } return fontname; } static int X11_AllocColor(Display *display, Visual *xvisual, Colormap colormap, XColor *xcolor, unsigned long *pixel, int color_num) { XRenderColor xrcolor; XftColor *xft_color; if (!(xft_color = (XftColor *)AllocMem(sizeof(XftColor)))) { printk(" X11_AllocColor(): Out of memory!\n"); return -1; } memset(xft_color, 0, sizeof(XftColor)); xrcolor.red = xcolor->red; xrcolor.green = xcolor->green; xrcolor.blue = xcolor->blue; xrcolor.alpha = 65535; if (!XftColorAllocValue(xdisplay, xvisual, colormap, &xrcolor, xft_color)) { return -1; } *pixel = xft_color->pixel; xftcolors[color_num] = xft_color; return 1; } static void X11_FlavorQuitHW(void) { int xscreen; Colormap colormap; Visual *xvisual; if (xdisplay) { if (xsfont) XftFontClose(xdisplay, xsfont); xscreen = DefaultScreen(xdisplay); colormap = DefaultColormap(xdisplay, xscreen); xvisual = DefaultVisual(xdisplay, xscreen); } if (xftdraw) XftDrawDestroy(xftdraw); for (int i = 0; i < tmaxcol; i++) { if (xftcolors[i] == NULL) { break; } if (xdisplay) XftColorFree(xdisplay, xvisual, colormap, xftcolors[i]); FreeMem(xftcolors[i]); xftcolors[i] = NULL; } } /* custom version of X11_UTF_32_to_charset_function for the XFT driver */ static Tutf_function X11_UTF_32_to_charset_function(const char *charset) { /* this is sufficient for xft fonts which are 16-bit unicode */ return X11_UTF_32_to_UCS_2; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_xft/������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0015735�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw/hw_xft/xchar16.h���������������������������������������������������������������0000664�0000000�0000000�00000000311�13775351206�0017355�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* 16-bit character representation for xft */ typedef FcChar16 XChar16; inline XChar16 RawToXChar16(trune raw) { return (XChar16)raw; } inline trune XChar16ToRaw(XChar16 p) { return (trune)p; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw_keys.h�������������������������������������������������������������������������0000664�0000000�0000000�00000007304�13775351206�0015646�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * W A R N I N G : * * the ORDER of the IS() macros in this file is CAREFULLY chosen * so that the corresponding XK_* KeySym (from <X11/keysymdef.h>) * have continuously GROWING values (i.e. are sorted). * * If you need to add more entries in this file, * look at the include file <X11/keysymdef.h> and put new entries * at the exact position to preserve sorting. * * If you mess up this file, compiling `twin' with X11 support * will result in a non-working executable. * */ IS(BackSpace, 1, "\x7F") IS(Tab, 1, "\x09") IS(Linefeed, 1, "\x0A") IS(Clear, 1, "\x0B") IS(Return, 1, "\x0D") IS(Pause, 3, "\x1B[P") IS(Scroll_Lock, 0, "") #if defined(XK_space) && defined(XK_Sys_Req) IS(Sys_Req, 0, "") #endif IS(Escape, 1, "\x1B") IS(Home, 4, "\x1B[1~") IS(Left, 3, "\x1B[D") IS(Up, 3, "\x1B[A") IS(Right, 3, "\x1B[C") IS(Down, 3, "\x1B[B") IS(Prior, 4, "\x1B[5~") IS(Next, 4, "\x1B[6~") IS(End, 4, "\x1B[4~") IS(Begin, 4, "\x1B[1~") /* as Home */ IS(Select, 0, "") IS(Print, 0, "") IS(Execute, 0, "") IS(Insert, 4, "\x1B[2~") IS(Undo, 0, "") IS(Redo, 0, "") IS(Menu, 0, "") IS(Find, 0, "") IS(Cancel, 0, "") IS(Help, 0, "") IS(Break, 0, "") /*IS(Mode_switch,0, "")*/ /* I don't want to receive this, it's AltGr */ IS(Num_Lock, 3, "\x1BOP") IS(KP_Space, 1, " ") IS(KP_Tab, 1, "\x09") IS(KP_Enter, 3, "\x1BOM") IS(KP_F1, 4, "\x1B[[A") /* as F1 */ IS(KP_F2, 4, "\x1B[[B") /* as F2 */ IS(KP_F3, 4, "\x1B[[C") /* as F3 */ IS(KP_F4, 4, "\x1B[[D") /* as F4 */ /* these are duplicates of KP_[0..9] but have different X11 keysim */ #if defined(XK_KP_Home) && (XK_KP_Home != XK_KP_7) IS(KP_Home, 3, "\x1BOw") #endif #if defined(XK_KP_Left) && (XK_KP_Left != XK_KP_4) IS(KP_Left, 3, "\x1BOt") #endif #if defined(XK_KP_Up) && (XK_KP_Up != XK_KP_8) IS(KP_Up, 3, "\x1BOx") #endif #if defined(XK_KP_Right) && (XK_KP_Right != XK_KP_6) IS(KP_Right, 3, "\x1BOv") #endif #if defined(XK_KP_Down) && (XK_KP_Down != XK_KP_2) IS(KP_Down, 3, "\x1BOr") #endif #if defined(XK_KP_Prior) && (XK_KP_Prior != XK_KP_9) IS(KP_Prior, 3, "\x1BOy") #endif #if defined(XK_KP_Next) && (XK_KP_Next != XK_KP_3) IS(KP_Next, 3, "\x1BOs") #endif #if defined(XK_KP_End) && (XK_KP_End != XK_KP_1) IS(KP_End, 3, "\x1BOq") #endif #if defined(XK_KP_Begin) && (XK_KP_Begin != XK_KP_5) IS(KP_Begin, 3, "\x1BOu") #endif #if defined(XK_KP_Insert) && (XK_KP_Insert != XK_KP_0) IS(KP_Insert, 3, "\x1BOp") #endif #if defined(XK_KP_Delete) && (XK_KP_Delete != XK_KP_Decimal) IS(KP_Delete, 3, "\x1BOn") #endif IS(KP_Multiply, 3, "\x1BOR") IS(KP_Add, 3, "\x1BOl") IS(KP_Separator, 3, "\x1BOm") IS(KP_Subtract, 3, "\x1BOS") IS(KP_Decimal, 3, "\x1BOn") /* as KP_Delete */ IS(KP_Divide, 3, "\x1BOQ") IS(KP_0, 3, "\x1BOp") IS(KP_1, 3, "\x1BOq") IS(KP_2, 3, "\x1BOr") IS(KP_3, 3, "\x1BOs") IS(KP_4, 3, "\x1BOt") IS(KP_5, 3, "\x1BOu") IS(KP_6, 3, "\x1BOv") IS(KP_7, 3, "\x1BOw") IS(KP_8, 3, "\x1BOx") IS(KP_9, 3, "\x1BOy") IS(KP_Equal, 3, "\x1BOo") IS(F1, 4, "\x1B[[A") IS(F2, 4, "\x1B[[B") IS(F3, 4, "\x1B[[C") IS(F4, 4, "\x1B[[D") IS(F5, 4, "\x1B[[E") IS(F6, 5, "\x1B[17~") IS(F7, 5, "\x1B[18~") IS(F8, 5, "\x1B[19~") IS(F9, 5, "\x1B[20~") IS(F10, 5, "\x1B[21~") IS(F11, 5, "\x1B[23~") IS(F12, 5, "\x1B[24~") IS(Shift_L, 0, "") IS(Shift_R, 0, "") IS(Control_L, 0, "") IS(Control_R, 0, "") IS(Meta_L, 0, "") IS(Meta_R, 0, "") IS(Alt_L, 0, "") IS(Alt_R, 0, "") IS(Super_L, 0, "") IS(Super_R, 0, "") IS(Hyper_L, 0, "") IS(Hyper_R, 0, "") IS(Delete, 4, "\x1B[3~") // IS(EuroSign, 3, "\xE2\x82AC") ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw_multi.cpp����������������������������������������������������������������������0000664�0000000�0000000�00000077622�13775351206�0016372�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * hw_multi.c -- functions to use multiple * simultaneous HW/hw_* displays * * Copyright (C) 2000-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twautoconf.h" #include <stdio.h> #ifdef TW_HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif #ifdef TW_HAVE_SYS_STAT_H #include <sys/stat.h> #endif #include "twin.h" #include "alloc.h" #include "algo.h" #include "common.h" #include "data.h" #include "main.h" #include "methods.h" #include "draw.h" #include "remote.h" #include "extreg.h" #include "dl.h" #include "hw.h" #include "hw_private.h" #include "hw_multi.h" #include "printk.h" #include "resize.h" #include "util.h" #include <Tw/Tw.h> #define forHW for (HW = All->FirstDisplayHW; HW; HW = HW->Next) #define safeforHW(s_HW) \ for (HW = All->FirstDisplayHW; HW && (((s_HW) = HW->Next), ttrue); HW = (s_HW)) /* common data */ static dat (*saveChangedVideo)[2][2]; static dat savedDisplayWidth = 100, savedDisplayHeight = 30; static dat TryDisplayWidth, TryDisplayHeight; static dat AccelVideo[4] = {TW_MAXDAT, TW_MAXDAT, TW_MINDAT, TW_MINDAT}; byte StrategyFlag; tany StrategyDelay = (tany)0; static udat ConfigureHWValue[HW_CONFIGURE_MAX]; static byte ConfigureHWDefault[HW_CONFIGURE_MAX]; /* common functions */ dat GetDisplayWidth(void) { return All->FirstDisplayHW && !All->FirstDisplayHW->Quitted ? DisplayWidth : savedDisplayWidth; } dat GetDisplayHeight(void) { return All->FirstDisplayHW && !All->FirstDisplayHW->Quitted ? DisplayHeight : savedDisplayHeight; } void UpdateFlagsHW(void) { StrategyReset(); /* reset StrategyFlag */ NeedOldVideo = ExpensiveFlushVideo = tfalse; CanDragArea = ttrue; forHW { if (!HW->Quitted) { NeedOldVideo |= HW->FlagsHW & FlHWNeedOldVideo; ExpensiveFlushVideo |= HW->FlagsHW & FlHWExpensiveFlushVideo; CanDragArea &= !!HW->CanDragArea; } } } void RunNoHW(byte print_info) { pid_t child; if (DisplayWidth && DisplayHeight) { savedDisplayWidth = DisplayWidth; savedDisplayHeight = DisplayHeight; } ResizeDisplay(); if (!DisplayHWCTTY) { /* * we fork in the background * so that the shell we were started from * can realize we have finished with the tty */ switch ((child = fork())) { case 0: /* child: continue */ DisplayHWCTTY = HWCTTY_DETACHED; setsid(); break; case -1: break; default: /* parent: exit */ if (print_info) { struct stat s1, s2; /* if stderr != stdout, also print on stdout (exploited by twdm) */ if (fstat(1, &s1) != fstat(2, &s2) || s1.st_ino != s2.st_ino) printf("twin: starting in background as %s (pid %d)\n", TWDisplay, (unsigned)child); fprintf(stderr, "twin: starting in background as %s (pid %d)\n", TWDisplay, (unsigned)child); } exit(0); } } /* try to fire up the Socket Server ... */ (void)DlLoad(SocketSo); } static byte module_InitHW(const char *arg, uldat len) { const char *name, *tmp; char *alloc_name; byte (*InitD)(void); module Module; if (!arg || !len) return tfalse; if (len >= 4 && !memcmp(arg, "-hw=", 4)) { arg += 4; len -= 4; /* skip "-hw=" */ } name = (const char *)memchr(arg, '@', len); tmp = (const char *)memchr(arg, ',', len); if (tmp && (!name || tmp < name)) name = tmp; if (name) len = name - arg; if (len == 1 && *arg == 'X') { len = 3; arg = "X11"; } if ((alloc_name = (char *)AllocMem(len + 4))) { sprintf(alloc_name, "hw_%.*s", (int)len, arg); Module = DlLoadAny(len + 3, alloc_name); if (Module) { printk("twin: starting display driver module `" SS "'...\n", alloc_name); if ((InitD = Module->DoInit) && InitD()) { printk("twin: ...module `" SS "' successfully started.\n", alloc_name); FreeMem(alloc_name); HW->Module = Module; Module->Used++; return ttrue; } Module->Delete(); } } if (alloc_name) name = alloc_name; else if (!name) name = "(NULL)"; if (Module) { printk("twin: ...module `" SS "' failed to start.\n", name); } else printk("twin: unable to load display driver module `" SS "' :\n" " " SS "\n", name, Errstr); if (alloc_name) FreeMem(alloc_name); return tfalse; } static byte set_hw_name(display_hw D_HW, const char *name, uldat namelen) { char *alloc_name; if (D_HW && (alloc_name = CloneStrL(name, namelen)) != NULL) { if (D_HW->Name) FreeMem(D_HW->Name); D_HW->Name = alloc_name; D_HW->NameLen = namelen; } return ttrue; } static void warn_NoHW(const char *arg, uldat len) { printk("twin: all display drivers failed"); if (arg) printk(" for `%.*s\'\n", Min2((int)len, TW_SMALLBUFF), arg); else printk(".\n"); } /* * InitDisplayHW runs HW specific InitXXX() functions, starting from best setup * and falling back in case some of them fails. */ byte InitDisplayHW(display_hw D_HW) { char *arg = D_HW->Name; uldat arglen = D_HW->NameLen; byte success; SaveHW; SetHW(D_HW); D_HW->DisplayIsCTTY = D_HW->NeedHW = D_HW->FlagsHW = tfalse; #define AUTOTRY4(hw, len) (module_InitHW(hw, len) && set_hw_name(D_HW, hw, len)) if (arglen == 0) { success = AUTOTRY4("-hw=xft", 7) || AUTOTRY4("-hw=X11", 7) || AUTOTRY4("-hw=twin", 8) || AUTOTRY4("-hw=tty", 7); } else { success = module_InitHW(D_HW->Name, D_HW->NameLen); } #undef AUTOTRY4 if (success) { udat tried; D_HW->Quitted = tfalse; /* configure correctly the new HW */ for (tried = 0; tried < HW_CONFIGURE_MAX; tried++) { if (!(ConfigureHWDefault[tried])) D_HW->Configure(tried, tfalse, ConfigureHWValue[tried]); } if (!DisplayHWCTTY && D_HW->DisplayIsCTTY) DisplayHWCTTY = D_HW; if (All->FnHookDisplayHW) All->FnHookDisplayHW(All->HookDisplayHW); UpdateFlagsHW(); /* this garbles HW... not a problem here */ } else { warn_NoHW(arg, arglen); } RestoreHW; return success; } void QuitDisplayHW(display_hw D_HW) { msgport MsgPort; uldat slot; SaveHW; if (D_HW) { if (D_HW->QuitHW) HW = D_HW, D_HW->QuitHW(); D_HW->Quitted = ttrue; if ((slot = D_HW->AttachSlot) != NOSLOT) { /* avoid KillSlot <-> DeleteDisplayHW infinite recursion */ if ((MsgPort = RemoteGetMsgPort(slot))) MsgPort->AttachHW = (display_hw)0; Ext(Remote, KillSlot)(slot); } if (D_HW->Module) { D_HW->Module->Used--; D_HW->Module->Delete(); D_HW->Module = (module)0; } UpdateFlagsHW(); /* this garbles HW... not a problem here */ } RestoreHW; } static byte IsValidHW(uldat len, const char *arg) { uldat i; byte b; if (len >= 4 && !memcmp(arg, "-hw=", 4)) arg += 4, len -= 4; for (i = 0; i < len; i++) { b = arg[i]; if (b == '@' || b == ',') /* the rest are options - validated by each display HW */ break; if ((b < '0' || b > '9') && (b < 'A' || b > 'Z') && (b < 'a' || b > 'z') && b != '_') { printk("twin: invalid non-alphanumeric character `%c' in display HW name `%.*s'\n", (int)b, Min2((int)len, TW_SMALLBUFF), arg); return tfalse; } } return ttrue; } display_hw AttachDisplayHW(uldat len, const char *arg, uldat slot, byte flags) { display_hw D_HW = NULL; if ((len && len <= 4) || memcmp("-hw=", arg, Min2(len, 4))) { printk("twin: specified `%.*s\' is not a known option.\n" " try `twin --help' for usage summary.\n", Min2((int)len, TW_SMALLBUFF), arg); return D_HW; } if (All->ExclusiveHW) { printk("twin: exclusive display in use, permission to display denied!\n"); return D_HW; } if (IsValidHW(len, arg) && (D_HW = New(display_hw)(len, arg))) { D_HW->AttachSlot = slot; if (D_HW->DoInit()) { if (flags & TW_ATTACH_HW_EXCLUSIVE) { /* started exclusive display, kill all others */ display_hw s_HW, n_HW; All->ExclusiveHW = D_HW; for (s_HW = All->FirstDisplayHW; s_HW; s_HW = n_HW) { n_HW = s_HW->Next; if (s_HW != D_HW) { s_HW->Delete(); } } } if (ResizeDisplay()) { QueuedDrawArea2FullScreen = ttrue; } return D_HW; } /* failed, clean up without calling RunNoHW() or KillSlot() */ D_HW->Quitted = ttrue; D_HW->AttachSlot = NOSLOT; D_HW->QuitHW = NoOp; D_HW->Delete(); D_HW = NULL; } return D_HW; } byte DetachDisplayHW(uldat len, const char *arg, byte flags) { byte done = tfalse; display_hw s_HW; if (All->ExclusiveHW && !(flags & TW_ATTACH_HW_EXCLUSIVE)) return tfalse; if (len) { safeforHW(s_HW) { if (HW->NameLen == len && !memcmp(HW->Name, arg, len)) { HW->Delete(); done = ttrue; break; } } } else { QuitHW(); done = ttrue; } return done; } /* initialize all required HW displays. Since we are at it, also parse command line */ byte InitHW(void) { char **arglist = orig_argv; char *arg; udat hwcount = 0; byte ret = tfalse, flags = 0, nohw = tfalse; memset(ConfigureHWDefault, '\1', HW_CONFIGURE_MAX); /* set everything to default (-1) */ for (arglist = orig_argv; (arg = *arglist); arglist++) { if (!strcmp(arg, "-nohw")) nohw = ttrue; else if (!strcmp(arg, "-x") || !strcmp(arg, "-excl")) flags |= TW_ATTACH_HW_EXCLUSIVE; else if (!strcmp(arg, "-s") || !strcmp(arg, "-share")) flags &= ~TW_ATTACH_HW_EXCLUSIVE; else if (!strcmp(arg, "-secure")) flag_secure = ttrue; else if (!strcmp(arg, "-envrc")) flag_envrc = ttrue; else if (!strncmp(arg, "-hw=", 4)) hwcount++; else printk("twin: ignoring unknown option `" SS "'\n", arg); } if (nohw && hwcount > 0) { printk("twin: `--hw=' and `--nohw' options used together. make up your mind.\n"); return ret; } if (flags & TW_ATTACH_HW_EXCLUSIVE) { if (nohw || hwcount > 1) { printk("twin: `--excl' used with %s. make up your mind.\n", nohw ? "`--nohw'" : "multiple `--hw'"); return ret; } } /* * execute .twenvrc.sh if needed and read its output to set * environment variables (mostly useful for twdm) */ RunTwEnvRC(); if (nohw) RunNoHW(ret = ttrue); else if (hwcount) { for (arglist = orig_argv; (arg = *arglist); arglist++) { if (!strncmp(arg, "-hw=", 4)) { ret |= !!AttachDisplayHW(strlen(arg), arg, NOSLOT, flags); } } } if (hwcount == 0 && !ret) /* autoprobe */ ret = !!AttachDisplayHW(0, "", NOSLOT, flags); if (!ret) printk("\ntwin: \033[1mALL DISPLAY DRIVERS FAILED. QUITTING.\033[0m\n"); return ret; } void QuitHW(void) { DeleteList(All->FirstDisplayHW); } byte RestartHW(byte verbose) { display_hw s_HW; byte ret = tfalse; if (All->FirstDisplayHW) { safeforHW(s_HW) { if (HW->DoInit()) ret = ttrue; else HW->Delete(); } if (ret) { ResizeDisplay(); QueuedDrawArea2FullScreen = ttrue; } else { printk("\ntwin: \033[1mALL DISPLAY DRIVERS FAILED.\033[0m\n" "\ntwin: continuing in background with no display.\n"); RunNoHW(tfalse); } } else if (verbose) { printk("twin: RestartHW(): All display drivers removed by SuspendHW().\n" " No display available for restarting, use twattach or twdisplay.\n"); } return ret; } void SuspendHW(byte verbose) { display_hw s_HW; safeforHW(s_HW) { if (HW->AttachSlot != NOSLOT && HW->NeedHW & NEEDPersistentSlot) /* we will not be able to restart it */ HW->Delete(); else HW->DoQuit(); } if (verbose && !All->FirstDisplayHW) { printk("twin: SuspendHW(): All display drivers had to be removed\n" " since they were attached to clients (twattach/twdisplay).\n" "twin: --- STOPPED ---\n"); } } void PanicHW(void) { display_hw s_HW; if (NeedHW & NEEDPanicHW) { safeforHW(s_HW) { if (HW->NeedHW & NEEDPanicHW) HW->Delete(); } NeedHW &= ~NEEDPanicHW; } } void ResizeDisplayPrefer(display_hw D_HW) { SaveHW; SetHW(D_HW); D_HW->DetectSize(&TryDisplayWidth, &TryDisplayHeight); NeedHW |= NEEDResizeDisplay; RestoreHW; } /* * return ttrue if DisplayWidth or DisplayHeight were changed */ byte ResizeDisplay(void) { dat Width, Height; byte change = tfalse; if (All->FirstDisplayHW) { if (!TryDisplayWidth || !TryDisplayHeight) { /* * we are trying to come up with a fair display size * and have all HW agree on it. */ TryDisplayWidth = TryDisplayHeight = TW_MAXDAT; forHW { if (!HW->Quitted) { HW->DetectSize(&Width, &Height); if (TryDisplayWidth > Width) TryDisplayWidth = Width; if (TryDisplayHeight > Height) TryDisplayHeight = Height; } } } /* now let's check how much we can resize all HW displays... */ do { Width = TryDisplayWidth; Height = TryDisplayHeight; forHW { if (!HW->Quitted) HW->CheckResize(&TryDisplayWidth, &TryDisplayHeight); } } while (TryDisplayWidth < Width || TryDisplayHeight < Height); if (!TryDisplayWidth || TryDisplayWidth == TW_MAXDAT) TryDisplayWidth = DisplayWidth; if (!TryDisplayHeight || TryDisplayHeight == TW_MAXDAT) TryDisplayHeight = DisplayHeight; /* size seems reasonable, apply it to all HW displays */ forHW { if (!HW->Quitted) HW->Resize(TryDisplayWidth, TryDisplayHeight); } } else TryDisplayWidth = TryDisplayHeight = 1; change = DisplayWidth != TryDisplayWidth || DisplayHeight != TryDisplayHeight; if (!NeedOldVideo && OldVideo) { FreeMem(OldVideo); OldVideo = NULL; } else if ((NeedOldVideo && !OldVideo) || change) { if (!(OldVideo = (tcell *)ReAllocMem(OldVideo, (ldat)TryDisplayWidth * TryDisplayHeight * sizeof(tcell)))) { printk("twin: out of memory!\n"); Quit(1); } ValidOldVideo = tfalse; } if (!Video || change) { All->DisplayWidth = DisplayWidth = TryDisplayWidth; All->DisplayHeight = DisplayHeight = TryDisplayHeight; if (!(Video = (tcell *)ReAllocMem(Video, (ldat)DisplayWidth * DisplayHeight * sizeof(tcell))) || !(ChangedVideo = (dat(*)[2][2])ReAllocMem(ChangedVideo, (ldat)DisplayHeight * sizeof(dat) * 4)) || !(saveChangedVideo = (dat(*)[2][2])ReAllocMem(saveChangedVideo, (ldat)DisplayHeight * sizeof(dat) * 4))) { printk("twin: out of memory!\n"); Quit(1); } memset(ChangedVideo, 0xff, (ldat)DisplayHeight * sizeof(dat) * 4); } NeedHW &= ~NEEDResizeDisplay; TryDisplayWidth = TryDisplayHeight = 0; return change; } void BeepHW(void) { NeedHW |= NEEDBeepHW; } /* configure underlying HW */ void ConfigureHW(udat resource, byte todefault, udat value) { if (!(ConfigureHWDefault[resource] = todefault)) ConfigureHWValue[resource] = value; forHW { HW->Configure(resource, todefault, value); } } void SetPaletteHW(udat N, udat R, udat G, udat B) { if (N <= tmaxcol) { rgb c; c.Red = R; c.Green = G; c.Blue = B; if (memcmp(&Palette[N], &c, sizeof(rgb))) { Palette[N] = c; forHW { HW->SetPalette(N, R, G, B); } } } } void ResetPaletteHW(void) { forHW { HW->ResetPalette(); } } /* HW back-end function: get selection owner */ obj TwinSelectionGetOwner(void) { /* * this looks odd... but it's correct: * only libtw clients can persistently own the Selection; * a display HW can own the Selection only if you did a mouse click * on its display, and even in this case it will own the Selection * only for a single request. */ obj Owner = (obj)All->Selection->OwnerOnce; if (Owner) All->Selection->OwnerOnce = NULL; else Owner = (obj)All->Selection->Owner; return Owner; } static void SelectionClear(msgport Owner) { msg Msg; if ((Msg = New(msg)(msg_selection_clear, 0))) SendMsg(Owner, Msg); } /* HW back-end function: set selection owner */ void TwinSelectionSetOwner(obj Owner, tany Time, tany Frac) { timevalue T; if (Time == SEL_CURRENTTIME) CopyMem(&All->Now, &T, sizeof(timevalue)); else { T.Seconds = Time; T.Fraction = Frac; } if (CmpTime(&T, &All->Selection->Time) > 0) { if (!Owner || Owner->Id >> magic_shift == msgport_magic >> magic_shift) { if (All->Selection->Owner) SelectionClear(All->Selection->Owner); NeedHW |= NEEDSelectionExport; All->Selection->Owner = (msgport)Owner; All->Selection->OwnerOnce = NULL; CopyMem(&T, &All->Selection->Time, sizeof(timevalue)); } else if (Owner->Id >> magic_shift == display_hw_magic >> magic_shift) { /* don't NEEDSelectionExport here! */ All->Selection->OwnerOnce = (display_hw)0; } } } void TwinSelectionNotify(obj Requestor, uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], Chars Data) { msg NewMsg; event_any *Event; #if 0 printk("twin: Selection Notify to 0x%08x\n", Requestor ? Requestor->Id : NOID); #endif if (!Requestor) { (void)SelectionStore(Magic, MIME, Data); } else if (Requestor->Id >> magic_shift == msgport_magic >> magic_shift) { const size_t len = Data.size(); if ((NewMsg = New(msg)(msg_selection_notify, len))) { Event = &NewMsg->Event; Event->EventSelectionNotify.W = NULL; Event->EventSelectionNotify.Code = 0; Event->EventSelectionNotify.pad = 0; Event->EventSelectionNotify.ReqPrivate = ReqPrivate; Event->EventSelectionNotify.Magic = Magic; if (MIME) CopyMem(MIME, Event->EventSelectionNotify.MIME, MAX_MIMELEN); else memset(Event->EventSelectionNotify.MIME, '\0', MAX_MIMELEN); Event->EventSelectionNotify.Len = len; CopyMem(Data.data(), Event->EventSelectionNotify.Data, len); SendMsg((msgport)Requestor, NewMsg); } } else if (Requestor->Id >> magic_shift == display_hw_magic >> magic_shift) { SaveHW; SetHW((display_hw)Requestor); HW->HWSelectionNotify(ReqPrivate, Magic, MIME, Data); RestoreHW; } } void TwinSelectionRequest(obj Requestor, uldat ReqPrivate, obj Owner) { #if 0 printk("twin: Selection Request from 0x%08x, owner is 0x%08x\n", Requestor ? Requestor->Id : NOID, Owner ? Owner->Id : NOID); #endif if (Owner) { if (Owner->Id >> magic_shift == msgport_magic >> magic_shift) { msg NewMsg; event_any *Event; if ((NewMsg = New(msg)(msg_selection_request, 0))) { Event = &NewMsg->Event; Event->EventSelectionRequest.W = NULL; Event->EventSelectionRequest.Code = 0; Event->EventSelectionRequest.pad = 0; Event->EventSelectionRequest.Requestor = Requestor; Event->EventSelectionRequest.ReqPrivate = ReqPrivate; SendMsg((msgport)Owner, NewMsg); } } else if (Owner->Id >> magic_shift == display_hw_magic >> magic_shift) { SaveHW; SetHW((display_hw)Owner); HW->HWSelectionRequest(Requestor, ReqPrivate); RestoreHW; } } else { selection *Sel = All->Selection; TwinSelectionNotify(Requestor, ReqPrivate, Sel->Magic, Sel->MIME, Sel->Data); } } void SelectionExport(void) { forHW { HW->HWSelectionExport(); } NeedHW &= ~NEEDSelectionExport; } void SelectionImport(void) { if ((HW = All->MouseHW)) { if (HW->HWSelectionImport()) All->Selection->OwnerOnce = HW; else All->Selection->OwnerOnce = NULL; } } inline void DiscardBlinkVideo(void) { ldat i; uldat start, len; tcell *V; for (i = 0; i < (ldat)DisplayHeight * 2; i++) { start = (uldat)ChangedVideo[i >> 1][i & 1][0]; if (start != (uldat)-1) { len = (uldat)ChangedVideo[i >> 1][i & 1][1] + 1 - start; start += (i >> 1) * (ldat)DisplayWidth; for (V = &Video[start]; len; V++, len--) *V &= ~TCELL(TCOL(0, thigh), (byte)0); } } } inline void OptimizeChangedVideo(void) { uldat _start, start, _end, end; ldat i; ChangedVideoFlag = tfalse; for (i = 0; i < (ldat)DisplayHeight * 2; i++) { start = (uldat)ChangedVideo[i >> 1][!(i & 1)][0]; if (start != (uldat)-1) { start += (i >> 1) * (ldat)DisplayWidth; _start = start; _end = end = (uldat)ChangedVideo[i >> 1][!(i & 1)][1] + (i >> 1) * (ldat)DisplayWidth; while (start <= end && Video[start] == OldVideo[start]) start++; while (start <= end && Video[end] == OldVideo[end]) end--; if (start > end) { if (i & 1) { /* * this is the first area, to make it empty * copy the second on this. */ if (ChangedVideo[i >> 1][1][0] != -1) { ChangedVideo[i >> 1][0][0] = ChangedVideo[i >> 1][1][0]; ChangedVideo[i >> 1][0][1] = ChangedVideo[i >> 1][1][1]; ChangedVideo[i >> 1][1][0] = -1; } else ChangedVideo[i >> 1][0][0] = -1; } else ChangedVideo[i >> 1][1][0] = -1; continue; } else { ChangedVideoFlag = ttrue; if (start > _start) ChangedVideo[i >> 1][!(i & 1)][0] += start - _start; if (end < _end) ChangedVideo[i >> 1][!(i & 1)][1] -= _end - end; } } } } inline void SyncOldVideo(void) { ldat start, len; ldat i; for (i = 0; i < (ldat)DisplayHeight * 2; i++) { start = ChangedVideo[i >> 1][i & 1][0]; if (start != -1) { len = ChangedVideo[i >> 1][i & 1][1] + 1 - start; start += (i >> 1) * (ldat)DisplayWidth; ChangedVideo[i >> 1][i & 1][0] = -1; CopyMem(Video + start, OldVideo + start, len * sizeof(tcell)); } } } #define MaxRecentBeepHW ((byte)30) void FlushHW(void) { static timevalue LastBeep = {(tany)0, (tany)0}; timevalue tmp = {(tany)0, 100 MilliSECs}; byte doBeep = tfalse, saved = tfalse, mangled = tfalse; byte saveChangedVideoFlag, saveValidOldVideo; /* * we can NEVER get (saved == tfalse && mangled == ttrue) * as it would mean we have irreversibly lost ChangedVideo[] */ /* * displaying on ourselves can cause infine beeping loops... * avoid it */ if (NeedHW & NEEDBeepHW) { IncrTime(&tmp, &LastBeep); if (CmpTime(&All->Now, &tmp) >= 0) { CopyMem(&All->Now, &LastBeep, sizeof(timevalue)); doBeep = ttrue; } NeedHW &= ~NEEDBeepHW; } if (QueuedDrawArea2FullScreen) { QueuedDrawArea2FullScreen = tfalse; DirtyVideo(0, 0, DisplayWidth - 1, DisplayHeight - 1); DrawArea2(FULL_SCREEN); UpdateCursor(); } if (NeedUpdateCursor) FlushCursor(); if (!(All->SetUp->Flags & setup_blink)) DiscardBlinkVideo(); if (NeedOldVideo && ValidOldVideo) OptimizeChangedVideo(); forHW { /* * adjust ChangedVideoFlag and ChangedVideo[] * to include HW supplied area HW->Redraw* * * we do not save/restore ChangedVideoFlagAgain since it's used * to decide buffering strategies, so must reflect whether * some display had to draw something or not. */ if (mangled) { ValidOldVideo = saveValidOldVideo; ChangedVideoFlag = saveChangedVideoFlag; CopyMem(saveChangedVideo, ChangedVideo, (ldat)DisplayHeight * sizeof(dat) * 4); mangled = tfalse; } if (HW->RedrawVideo || ((HW->FlagsHW & FlHWSoftMouse) && (HW->FlagsHW & FlHWChangedMouseFlag))) { if (!saved) { saveValidOldVideo = ValidOldVideo; saveChangedVideoFlag = ChangedVideoFlag; CopyMem(ChangedVideo, saveChangedVideo, (ldat)DisplayHeight * sizeof(dat) * 4); saved = ttrue; } if (HW->RedrawVideo) { DirtyVideo(HW->RedrawLeft, HW->RedrawUp, HW->RedrawRight, HW->RedrawDown); ValidOldVideo = tfalse; /* the OldVideo[] caching would make all this stuff useless otherwise */ } mangled = ttrue; } if (doBeep) HW->Beep(); HW->FlushVideo(); HW->RedrawVideo = tfalse; if (HW->NeedHW & NEEDFlushHW) HW->FlushHW(); } if (NeedHW & NEEDFlushStdout) fflush(stdout), NeedHW &= ~NEEDFlushStdout; if (ChangedVideoFlag && NeedOldVideo) SyncOldVideo(); ChangedVideoFlag = tfalse; ValidOldVideo = ttrue; } void SyntheticKey(widget W, udat Code, udat ShiftFlags, byte Len, const char *Seq) { event_keyboard *Event; msg Msg; if (W && Len && Seq && (Msg = New(msg)(msg_widget_key, Len))) { Event = &Msg->Event.EventKeyboard; Event->W = W; Event->Code = Code; Event->ShiftFlags = ShiftFlags; Event->SeqLen = Len; CopyMem(Seq, Event->AsciiSeq, Len); Event->AsciiSeq[Len] = '\0'; /* terminate string with \0 */ SendMsg(W->Owner, Msg); } } void FillVideo(dat Xstart, dat Ystart, dat Xend, dat Yend, tcell Attr) { tcell *pos; udat _xc, xc, yc, delta; if (Xstart > Xend || Xstart >= DisplayWidth || Xend < 0 || Ystart > Yend || Ystart >= DisplayHeight || Yend < 0) return; Xstart = Max2(Xstart, 0); Ystart = Max2(Ystart, 0); Xend = Min2(Xend, DisplayWidth - 1); Yend = Min2(Yend, DisplayHeight - 1); DirtyVideo(Xstart, Ystart, Xend, Yend); yc = Yend - Ystart + 1; _xc = Xend - Xstart + 1; delta = DisplayWidth - _xc; pos = Video + Xstart + Ystart * (ldat)DisplayWidth; while (yc--) { xc = _xc; while (xc--) *pos++ = Attr; pos += delta; } } void FillOldVideo(dat Xstart, dat Ystart, dat Xend, dat Yend, tcell Attr) { tcell *pos; udat _xc, xc, yc, delta; if (Xstart > Xend || Xstart >= DisplayWidth || Xend < 0 || Ystart > Yend || Ystart >= DisplayHeight || Yend < 0) return; Xstart = Max2(Xstart, 0); Ystart = Max2(Ystart, 0); Xend = Min2(Xend, DisplayWidth - 1); Yend = Min2(Yend, DisplayHeight - 1); yc = Yend - Ystart + 1; _xc = Xend - Xstart + 1; delta = DisplayWidth - _xc; pos = OldVideo + Xstart + Ystart * (ldat)DisplayWidth; while (yc--) { xc = _xc; while (xc--) *pos++ = Attr; pos += delta; } } void RefreshVideo(void) { ValidOldVideo = tfalse; QueuedDrawArea2FullScreen = ttrue; /* safer than DirtyVideo(0, 0, DisplayWidth - 1, DisplayHeight - 1), * and also updates the cursor */ } inline uldat Plain_countDirtyVideo(dat X1, dat Y1, dat X2, dat Y2) { uldat t = 0; dat a, b; for (; Y1 <= Y2; Y1++) { a = ChangedVideo[Y1][0][0]; b = ChangedVideo[Y1][0][1]; if (a != -1 && a <= X2 && b >= X1) t += Min2(b, X2) - Max2(a, X1) + 1; if (a != -1) { a = ChangedVideo[Y1][1][0]; b = ChangedVideo[Y1][1][0]; if (a != -1 && a <= X2 && b >= X1) t += Min2(b, X2) - Max2(a, X1) + 1; } } return t; } void StrategyReset(void) { AccelVideo[0] = AccelVideo[1] = TW_MAXDAT; AccelVideo[2] = AccelVideo[3] = TW_MINDAT; StrategyFlag = HW_UNSET; } byte Strategy4Video(dat Xstart, dat Ystart, dat Xend, dat Yend) { uldat Varea = 0, XYarea_2 = (Xend - Xstart + 1) * (Yend - Ystart + 1) / 2; dat x1, y1, x2, y2; if (QueuedDrawArea2FullScreen || (StrategyFlag != HW_UNSET && StrategyFlag != HW_ACCEL)) return HW_BUFFER; /* find the intersection between the current area and AccelVideo[] */ if (Xstart < AccelVideo[2] && Ystart < AccelVideo[3] && Xend >= AccelVideo[0] && Yend >= AccelVideo[1]) { x1 = Max2(Xstart, AccelVideo[0]); y1 = Max2(Ystart, AccelVideo[1]); x2 = Min2(Xend, AccelVideo[2]); y2 = Min2(Yend, AccelVideo[3]); Varea = (uldat)(x2 - x1 + 1) * (y2 - y1 + 1); } if (Varea < XYarea_2) Varea += Plain_countDirtyVideo(Xstart, Ystart, Xend, Yend); if (Varea < XYarea_2) { AccelVideo[0] = Min2(Xstart, AccelVideo[0]); AccelVideo[1] = Min2(Ystart, AccelVideo[1]); AccelVideo[2] = Max2(Xend, AccelVideo[2]); AccelVideo[3] = Max2(Yend, AccelVideo[3]); return StrategyFlag = HW_ACCEL; } return StrategyFlag = HW_BUFFER; } byte AllHWCanDragAreaNow(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { dat DstRgt = DstLeft + (Rgt - Left), DstDwn = DstUp + (Dwn - Up); byte Accel; if (CanDragArea && Strategy4Video(DstLeft, DstUp, DstRgt, DstDwn) == HW_ACCEL) { Accel = ttrue; forHW { if (HW->CanDragArea && HW->CanDragArea(Left, Up, Rgt, Dwn, DstLeft, DstUp)) ; else { Accel = tfalse; break; } } } else Accel = tfalse; return Accel; } void DragAreaHW(dat Left, dat Up, dat Rgt, dat Dwn, dat DstLeft, dat DstUp) { forHW { HW->DragArea(Left, Up, Rgt, Dwn, DstLeft, DstUp); } } void EnableMouseMotionEvents(byte enable) { ConfigureHW(HW_MOUSEMOTIONEVENTS, tfalse, enable); } byte MouseEventCommon(dat x, dat y, dat dx, dat dy, udat Buttons) { dat prev_x, prev_y; udat OldButtons, i; mouse_state *OldState; udat result; byte ret = ttrue; byte alsoMotionEvents = All->MouseMotionN > 0; OldState = &HW->MouseState; OldButtons = OldState->keys; prev_x = OldState->x; prev_y = OldState->y; x = Max2(x, 0); x = Min2(x, DisplayWidth - 1); OldState->delta_x = x == 0 ? Min2(dx, 0) : x == DisplayWidth - 1 ? Max2(dx, 0) : 0; y = Max2(y, 0); y = Min2(y, DisplayHeight - 1); OldState->delta_y = y == 0 ? Min2(dy, 0) : y == DisplayHeight - 1 ? Max2(dy, 0) : 0; if (x != prev_x || y != prev_y) HW->FlagsHW |= FlHWChangedMouseFlag; OldState->x = x; OldState->y = y; OldState->keys = Buttons &= HOLD_ANY; /* keep it available */ All->MouseHW = HW; if (Buttons != OldButtons || ((alsoMotionEvents || OldButtons) && (x != prev_x || y != prev_y))) { if ((alsoMotionEvents || OldButtons) && (x != prev_x || y != prev_y)) { ret = StdAddMouseEvent(MOVE_MOUSE | OldButtons, x, y); } for (i = 0; i < BUTTON_N_MAX && ret; i++) { if ((Buttons & HOLD_CODE(i)) != (OldButtons & HOLD_CODE(i))) { result = (Buttons & HOLD_CODE(i) ? PRESS_CODE(i) : RELEASE_CODE(i)) | (OldButtons &= ~HOLD_CODE(i)); OldButtons |= Buttons & HOLD_CODE(i); ret = StdAddMouseEvent(result, x, y); } } } return ret; } byte StdAddMouseEvent(udat Code, dat MouseX, dat MouseY) { msg Msg; event_mouse *Event; if (HW && HW == All->MouseHW && HW->FlagsHW & FlHWNoInput) return ttrue; if ((Code & MOUSE_ACTION_ANY) == MOVE_MOUSE && (Msg = Ext(WM, MsgPort)->LastMsg) && Msg->Type == msg_mouse && (Event = &Msg->Event.EventMouse) && Event->Code == Code) { /* merge the two events */ Event->X = MouseX; Event->Y = MouseY; return ttrue; } if ((Msg = New(msg)(msg_mouse, 0))) { Event = &Msg->Event.EventMouse; Event->Code = Code; Event->ShiftFlags = (udat)0; Event->X = MouseX; Event->Y = MouseY; SendMsg(Ext(WM, MsgPort), Msg); return ttrue; } return tfalse; } byte KeyboardEventCommon(udat Code, udat ShiftFlags, udat Len, const char *Seq) { event_keyboard *Event; msg Msg; if (HW->FlagsHW & FlHWNoInput) return ttrue; if ((Msg = New(msg)(msg_key, Len))) { Event = &Msg->Event.EventKeyboard; Event->Code = Code; Event->ShiftFlags = ShiftFlags; Event->SeqLen = Len; CopyMem(Seq, Event->AsciiSeq, Len); Event->AsciiSeq[Len] = '\0'; /* terminate string with \0 */ SendMsg(Ext(WM, MsgPort), Msg); return ttrue; } return tfalse; } #ifdef __linux__ #include <linux/kd.h> #endif byte InitTransUser(void) { udat c; #ifdef __linux__ #define SCRNMAP_T unsigned short #define SCRNMAP_IOCTL GIO_UNISCRNMAP SCRNMAP_T map[E_TABSZ]; if (ioctl(0, SCRNMAP_IOCTL, map) == 0) { if (sizeof(SCRNMAP_T) == sizeof(trune)) CopyMem(map + 0x80, All->Gtranslations[USER_MAP] + 0x80, sizeof(trune) * 0x80); else for (c = 0x80; c < 0x100; c++) All->Gtranslations[USER_MAP][c] = (trune)map[c]; } else #endif { /* if nothing better is available, initialize to direct-to-font translation */ for (c = 0x80; c < 0x100; c++) All->Gtranslations[USER_MAP][c] = (trune)c | 0xf000; } for (c = 0; c < 0x80; c++) All->Gtranslations[USER_MAP][c] = (trune)c; return ttrue; } ��������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw_multi.h������������������������������������������������������������������������0000664�0000000�0000000�00000002611�13775351206�0016021�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_HW_MULTI_H #define TWIN_HW_MULTI_H /* * this file exports functions and variables defined in hw_multi.c * that are not exported from display.c */ extern byte StrategyFlag; extern tany StrategyDelay; /* strategy */ #define HW_UNSET 0 #define HW_ACCEL 1 #define HW_BUFFER 2 #define HW_DELAY 3 void StrategyReset(void); byte Strategy4Video(dat Xstart, dat Ystart, dat Xend, dat Yend); byte InitDisplayHW(display_hw); void QuitDisplayHW(display_hw); byte InitHW(void); void QuitHW(void); byte RestartHW(byte verbose); void SuspendHW(byte verbose); display_hw AttachDisplayHW(uldat len, const char *arg, uldat slot, byte flags); byte DetachDisplayHW(uldat len, const char *arg, byte flags); void FillVideo(dat Xstart, dat Ystart, dat Xend, dat Yend, tcell Attr); void RefreshVideo(void); byte ResizeDisplay(void); void RunNoHW(byte print_info); void UpdateFlagsHW(void); void EnableMouseMotionEvents(byte enable); byte StdAddMouseEvent(udat Code, dat MouseX, dat MouseY); void SyntheticKey(widget W, udat Code, udat ShiftFlags, byte Len, const char *Seq); #endif /* TWIN_HW_MULTI_H */ �����������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/hw_private.h����������������������������������������������������������������������0000664�0000000�0000000�00000001731�13775351206�0016343�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_HW_PRIVATE_H #define TWIN_HW_PRIVATE_H /* * this file exports "private" stuff from hw.c, * i.e. intended to be used only by hw/hw_*.c drivers */ extern dat (*ChangedVideo)[2][2]; extern byte ChangedVideoFlag; extern dat CursorX, CursorY; extern uldat CursorType; extern dat DisplayWidth, DisplayHeight; extern struct termios ttysave; void FillOldVideo(dat Xstart, dat Ystart, dat Xend, dat Yend, tcell Attr); void saveDisplaySize(void); void NeedRedrawVideo(dat Left, dat Up, dat Right, dat Down); extern display_hw HW; #define SaveHW display_hw s_hw = HW #define SetHW(hw) (HW = (hw)) #define RestoreHW (HW = s_hw) #endif /* TWIN_HW_PRIVATE_H */ ���������������������������������������twin-0.9.0/server/m4/�������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014340�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/m4/socket1.m4h��������������������������������������������������������������������0000664�0000000�0000000�00000003051�13775351206�0016322�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ dnl This file is `m4/socket1.m4' : m4 macros to autogenerate socket1_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/socket1.m4', do not edit! */ /* clang-format off */ define(`TRIM', `translit(`$1', ` ')') define(`NSHIFT', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')') define(`tv', v) define(`t_', _) define(`tx', x) define(`tV', V) define(`tW', V) define(`tX', V) define(`tY', V) define(`tO', _) define(`T_', tany) define(`TO', tany) define(`Tx', obj) define(`group', ggroup) define(`DECL0', `ifelse($2, v, `', `a[0]`'ifelse(T$2, obj, `_obj', `_any') = (T$2)')') define(`ARG', `ifelse($1, 1, `', ``, '')`'ifelse($3, V, `(const $2 *)a[$1]_vec', $3, x, `($2)a[$1]_obj', `($2)a[$1]_any')') define(`PARSE', `ifelse($#, 2, `', `ARG($1,$2,t$3)`'PARSE(incr($1), NSHIFT(4, $@))')') define(`CALL', `ifelse($4, 0, sock`'$2`'$3($6), $4, 1, Do($2,translit($3, `A-Z', `a-z'))($6), Act($2,($5)a[1]_obj)($6));') define(`PROTO', `case order_`'TRIM($3)`'TRIM($4): if (a.size() >= eval(($# - 5) / 3)) DECL0($1, t$2)`'CALL($1,TRIM($3),TRIM($4),$5,$6,PARSE(1, NSHIFT(5, $@))) break; ') define(`PROTOSyncSocket', `PROTO($@)') define(`PROTOFindFunction', `PROTO($@)') include(`m4/Tw_sockproto.m4') ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/m4/socket2.m4h��������������������������������������������������������������������0000664�0000000�0000000�00000002357�13775351206�0016333�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ dnl This file is `m4/socket2.m4' : m4 macros to autogenerate socket2_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/socket2.m4', do not edit! */ /* clang-format off */ define(`TRIM', `translit(`$1', ` ')') define(`NSHIFT', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')') define(`CHAIN', `TRIM($1)`'TRIM($2)') define(`tv', v) define(`t_', _) define(`tx', x) define(`tV', V) define(`tW', W) define(`tX', X) define(`tY', Y) define(`tO', _) define(`group', ggroup) define(`ARG', `"$3" ifelse($3, x, TRIM($2)_magic_STR, $3, X, TRIM($2)_magic_STR, $3, Y, TRIM($2)_magic_STR, TWS_`'TRIM($2)_STR)') define(`PARSE', `ifelse($#, 2, `', `ARG($1,$2,t$3)`'PARSE(incr($1), NSHIFT(4, $@))')') define(`PROTO', `{ 0, 0, "CHAIN($3, $4)", "$5" ARG(0, $1, $2)`'PARSE(1, NSHIFT(5, $@)) },') define(`PROTOSyncSocket', `PROTO($@)') define(`PROTOFindFunction', `PROTO($@)') include(`m4/Tw_sockproto.m4') ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/m4/socket3.m4h��������������������������������������������������������������������0000664�0000000�0000000�00000002461�13775351206�0016330�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ dnl This file is `m4/socket3.m4' : m4 macros to autogenerate socket3_m4.h dnl Tell the user about this. /* This file was automatically generated from `m4/socket3.m4', do not edit! */ /* clang-format off */ define(`TRIM', `translit(`$1', ` ')') define(`NSHIFT', `ifelse($1, 0, `shift($@)', `NSHIFT(decr($1), shift(shift($@)))')') define(`A', `a[$1]_any') define(`tV', `V') define(`tW', `V') define(`tX', `V') define(`tY', `V') define(`lV', `$1') define(`lW', `$1') define(`lX', `$1') define(`lY', `$1') define(`group', ggroup) define(`VEC', `ifelse($3, V, `NAME`' case $1: L = $4; break; `'define(`NAME')`'define(`ENDNAME', ` } break;')')') define(`CASE', `ifelse($#, 2, `', `VEC(`$1', `$2', t`'$3, l`'$3)'`CASE(incr($1), NSHIFT(4, $@))')') define(`PROTO', `define(`NAME', ` case order_`'TRIM($3)`'TRIM($4): switch (n) { ')`'define(`ENDNAME', `')`'CASE(1, NSHIFT(5, $@))`'ENDNAME') define(`PROTOSyncSocket', `PROTO($@)') define(`PROTOFindFunction', `PROTO($@)') include(`m4/Tw_sockproto.m4') ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/main.cpp��������������������������������������������������������������������������0000664�0000000�0000000�00000025520�13775351206�0015454�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * T W I N * * a Text mode WINdow manager. * * Author: * Massimiliano Ghilardi <https://github.com/cosmos72> * * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <signal.h> #include "twin.h" #include "alloc.h" #include "data.h" #include "builtin.h" #include "methods.h" #include "main.h" #include "draw.h" #include "resize.h" #include "extreg.h" #include "common.h" #include "dl.h" #include "hw.h" #include "hw_multi.h" #include "scroller.h" #include "util.h" #include "remote.h" #include "version.h" /*-------------*/ fd_set save_rfds, save_wfds; int max_fds; byte lenTWDisplay; char *TWDisplay, *origTWDisplay, *origTERM, *origHW, *HOME; char **main_argv, **orig_argv; uldat main_argv_usable_len; byte flag_secure, flag_envrc; const char *flag_secure_msg = "twin: cannot exec() external programs in secure mode.\n"; int (*OverrideSelect)(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); static timevalue *Now; inline struct timeval *CalcSleepTime(struct timeval *sleeptime, msgport Port, timevalue *now) { byte got = 0; timevalue *call = &Port->CallTime; if (Port->WakeUp) { if (CmpTime(call, now) > 0) { timevalue delta; SubTime(&delta, call, now); sleeptime->tv_sec = delta.Seconds; sleeptime->tv_usec = delta.Fraction / (1 MicroSECs); got = 1; } else { sleeptime->tv_sec = (time_t)0; sleeptime->tv_usec = 0; got = 2; } } if (got != 2) while (Port) { if (Port->FirstMsg) { sleeptime->tv_sec = (time_t)0; sleeptime->tv_usec = 0; got = 2; break; } Port = Port->Next; } return got ? sleeptime : (struct timeval *)0; } static msgport RunMsgPort(msgport CurrPort) { msgport NextPort; if ((CurrPort->WakeUp & (TIMER_ALWAYS | TIMER_ONCE)) && CmpTime(&CurrPort->CallTime, Now) <= 0) CurrPort->WakeUp &= ~TIMER_ONCE; else if (!CurrPort->FirstMsg) return NULL; All->RunMsgPort = CurrPort; if (CurrPort->Handler) { CurrPort->Handler(CurrPort); if (All->RunMsgPort == CurrPort) { if (CurrPort->WakeUp & (TIMER_ALWAYS | TIMER_ONCE)) SumTime(&CurrPort->CallTime, Now, &CurrPort->PauseDuration); /* get ->Next *BEFORE* re-sorting!!! */ NextPort = CurrPort->Next; SortMsgPortByCallTime(CurrPort); } else NextPort = All->RunMsgPort; } else { DeleteList(CurrPort->FirstMsg); NextPort = CurrPort->Next; } return NextPort; } static void Usage(void) { fputs("Usage: twin [OPTIONS]\n" "Currently known options: \n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" " --secure forbid starting external programs\n" " --envrc execute .twenvrc.sh and read its output to set\n" " environment variables (mostly useful for twdm)\n" " -s, --share start display as shared (default)\n" " -x, --excl start display as exclusive\n" " --nohw start in background without display\n" " --hw=<display>[,options] start with the given display (multiple --hw=... allowed)\n" " (default: autoprobe all displays until one succeeds)\n" "Currently known display drivers: \n" "\txft[@<XDISPLAY>]\n" "\tX[@<XDISPLAY>]\n" "\ttwin[@<TWDISPLAY>]\n" "\ttty[@<tty device>]\n", stdout); } static void ShowVersion(void) { fputs("twin " TWIN_VERSION_STR " with socket protocol " TW_PROTOCOL_VERSION_STR "\n", stdout); } static byte Check4SpecialArgs(void) { if (main_argv[1] && !main_argv[2]) { if (!strcmp(main_argv[1], "-h") || !strcmp(main_argv[1], "-help")) { Usage(); return ttrue; } else if (!strcmp(main_argv[1], "-V") || !strcmp(main_argv[1], "-version")) { ShowVersion(); return ttrue; } } return tfalse; } static byte DieWMSo(void) { printk("twin: fatal: failed to load the window manager: " SS "\n", Errstr); flushk(); return tfalse; } static byte Init(void) { FD_ZERO(&save_rfds); FD_ZERO(&save_wfds); OverrideSelect = select; CheckPrivileges(); if ((origTWDisplay = getenv("TWDISPLAY"))) origTWDisplay = strdup(origTWDisplay); if ((origTERM = getenv("TERM"))) origTERM = strdup(origTERM); /* * WARNING: * * do not touch the order of the following InitXXX() calls * unless you *REALLY* know what you're doing. * You may have twin SEGFAULT at startup or (worse) introduce subtle bugs! */ return (InitData() && InitSignals() && InitTWDisplay() && (All->AtQuit = QuitTWDisplay) && InitTransUser() && InitTtysave() && InitScroller() && InitBuiltin() && InitHW() /* * We need care here: DrawArea2(), DrawMenu(), etc. all need All->BuiltinMenu and * also Video[]. The former is initialized by InitBuiltin(), the latter by InitHW(). * No DrawArea2() are allowed at all before InitHW() ! */ && InitDraw() && (DlLoad(WMSo) || DieWMSo())); } void Quit(int status) { RemoteFlushAll(); if (All->AtQuit) All->AtQuit(); SuspendHW(tfalse); /* not QuitHW() as it would fire up socket.so and maybe fork() in bg */ if (status < 0) return; /* give control back to signal handler */ exit(status); } void NoOp(void) { } byte AlwaysTrue(void) { return ttrue; } byte AlwaysFalse(void) { return tfalse; } void *AlwaysNull(void) { return NULL; } static void MergeHyphensArgv(int argc, char **argv) { char *S; while (argc) { if ((S = *argv) && S[0] == '-' && S[1] == '-' && S[2] && S[3]) (*argv)++; argv++, argc--; } } #define MAXDELAY 50 MilliSECs #define MINDELAY 10000 int main(int argc, char *argv[]) { msgport CurrPort; timevalue Old, Cut; fd_set read_fds, write_fds, *pwrite_fds; struct timeval sel_timeout, *this_timeout; int num_fds; DropPrivileges(); main_argv_usable_len = ComputeUsableLenArgv(main_argv = argv); MergeHyphensArgv(argc, argv); #ifdef CONF__ALLOC /* do this as soon as possible */ if (!InitAlloc()) { fputs("twin: InitAlloc() failed: internal error!\n", stderr); return 1; } #endif if (Check4SpecialArgs()) return 0; if (!(orig_argv = CloneStrList(main_argv + 1))) { fputs("twin: Out of memory!\n", stderr); return 1; } Now = &All->Now; InstantNow(Now); /* needed by various InitXXX() */ if (!Init()) Quit(0); /* not needed... done by InitHW() */ /* QueuedDrawArea2FullScreen = ttrue; */ InstantNow(Now); /* read again... */ SortAllMsgPortsByCallTime(); /*------------------------ Main Loop -------------------------*/ for (;;) { RemoteFlushAll(); /* * we could call InstantNow(Now) here, to get a more accurate * sleep time and don't lag behing, but that doesn't make much sense * since in the first place if we are lagging behing it means * the system is very heavily loaded and our 'more accurate sleep time' * would just further increase the load */ this_timeout = CalcSleepTime(&sel_timeout, All->FirstMsgPort, Now); if (ExpensiveFlushVideo) { /* decide what to do... sleep a little if we can (HW_DELAY), * otherwise revert to one of the other strategies */ if (!ChangedVideoFlagAgain || StrategyDelay >= MAXDELAY) { StrategyDelay = (tany)0; if (StrategyFlag == HW_DELAY) StrategyFlag = HW_BUFFER; } else { if ((!this_timeout && (this_timeout = &sel_timeout)) || this_timeout->tv_sec || this_timeout->tv_usec > MINDELAY) { this_timeout->tv_sec = (tany)0; this_timeout->tv_usec = MINDELAY; } StrategyFlag = HW_DELAY; ChangedVideoFlagAgain = tfalse; } } do { /* synchronously handle signals */ if (GotSignals) HandleSignals(); if (NeedHW & NEEDResizeDisplay) { ResizeDisplay(); QueuedDrawArea2FullScreen = ttrue; } if (NeedHW & NEEDSelectionExport) SelectionExport(); /* * A display HW could Panic in its Event handlers or in its * FlushVideo/FlushHW routines. So check for Panic BEFORE or AFTER * FlushHW? Consider that after a HW shutdown due to Panic, * all displays could get resized and thus need another FlushHW. * I my opinion, it's better to keep open a paniced display HW for a while, * than not to flush all remaining displays which just resized. * * So first call PanicHW(), then FlushHW() */ if (NeedHW & NEEDPanicHW) PanicHW(); if (StrategyFlag != HW_DELAY) FlushHW(); if (NeedHW & NEEDPanicHW || All->FirstMsgPort->FirstMsg) { /* * hmm... displays are rotting quickly today! * we called PanicHW() just above, so don't call again, * just set a zero timeout and let the above call do the work * on next loop. */ sel_timeout.tv_sec = sel_timeout.tv_usec = 0; this_timeout = &sel_timeout; } read_fds = save_rfds; if (!FdWQueued) pwrite_fds = NULL; else { write_fds = save_wfds; pwrite_fds = &write_fds; } num_fds = OverrideSelect(max_fds + 1, &read_fds, pwrite_fds, NULL, this_timeout); } while (num_fds < 0 && errno == EINTR); if (num_fds < 0) /* ach, problem. */ num_fds = 0, RemoteParanoia(); if (StrategyFlag == HW_DELAY) { /* keep track of how much we are delaying the flush */ CopyMem(Now, &Old, sizeof(timevalue)); InstantNow(Now); SubTime(&Cut, Now, &Old); if (Cut.Seconds || Cut.Fraction >= MAXDELAY) StrategyDelay = MAXDELAY; else StrategyDelay += Cut.Fraction; } else { InstantNow(Now); StrategyReset(); } /* * handle mouse, keyboard and connections to other programs * (both in tty:s and Twin native connections) */ if (num_fds) RemoteEvent(num_fds, &read_fds); /* * handle local events: messages arrived in msgports * and timeout expires */ /* * run WM_MsgPort first since it has to dispatch mouse/keyboard events */ (void)RunMsgPort(Ext(WM, MsgPort)); /* * MsgPorts are ordered: runnable ones first, then non-runnable ones. * So bail out at the first non-runnable port. */ CurrPort = All->FirstMsgPort; while (CurrPort) CurrPort = RunMsgPort(CurrPort); All->RunMsgPort = (msgport)0; } /* NOTREACHED */ return 0; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/main.h����������������������������������������������������������������������������0000664�0000000�0000000�00000001642�13775351206�0015120�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_MAIN_H #define TWIN_MAIN_H extern fd_set save_rfds, save_wfds; extern int max_fds; extern byte lenTWDisplay; extern char *TWDisplay, *origTWDisplay, *origTERM, *origHW, *HOME; extern char **main_argv, **orig_argv; extern uldat main_argv_usable_len; extern byte flag_envrc, flag_secure; extern const char *flag_secure_msg; extern int (*OverrideSelect)(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); void Quit(int status); void NoOp(void); byte AlwaysTrue(void); byte AlwaysFalse(void); void *AlwaysNull(void); #endif /* TWIN_MAIN_H */ ����������������������������������������������������������������������������������������������twin-0.9.0/server/md5.cpp���������������������������������������������������������������������������0000664�0000000�0000000�00000020705�13775351206�0015215�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * This code implements the MD5 message-digest algorithm. * The algorithm is due to Ron Rivest. This code was * written by Colin Plumb in 1993, no copyright is claimed. * This code is in the public domain; do with it what you wish. * * Equivalent code is available from RSA Data Security, Inc. * This code has been tested against that, and is equivalent, * except that you don't need to include two pages of legalese * with every copy. * * To compute the message digest of a chunk of bytes, declare an * MD5Context structure, pass it to MD5Init, call MD5Update as * needed on buffers full of bytes, and then call MD5Final, which * will fill a supplied 16-byte array with the digest. */ #include "md5.h" #include <Tw/datasizes.h> /* TW_IS_LITTLE_ENDIAN */ #ifdef TW_HAVE_STRING_H #include <string.h> /* memcpy() */ #endif #if TW_IS_LITTLE_ENDIAN #define byteReverse(buf, len) ((void)0) #elif TW_IS_BIG_ENDIAN #ifdef ASM_MD5 void byteReverse(md5_uint32 *buf, unsigned longs); #else /* !ASM_MD5 */ /* * Note: this code is harmless on little-endian machines. */ TW_INLINE void byteReverse(md5_uint32 *buf, unsigned longs) { md5_uint32 t; do { #define BUF(i) ((md5_uint32) * ((unsigned char *)(buf) + (i))) t = BUF(0) | BUF(1) << 8 | BUF(2) << 16 | BUF(3) << 24; *buf++ = t; #undef BUF } while (--longs); } #endif /* ASM_MD5 */ #else /* TW_IS_LITTLE_ENDIAN */ #error unknown endianity: not little endian, not big endian #endif /* * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious * initialization constants. */ void MD5Init(struct MD5Context *ctx) { ctx->buf[0] = 0x67452301; ctx->buf[1] = 0xefcdab89; ctx->buf[2] = 0x98badcfe; ctx->buf[3] = 0x10325476; ctx->bits[0] = 0; ctx->bits[1] = 0; } /* * Update context to reflect the concatenation of another buffer full * of bytes. */ void MD5Update(struct MD5Context *ctx, void TW_CONST *mem, size_t len) { md5_uint32 t; unsigned TW_CONST char *buf = (unsigned TW_CONST char *)mem; /* Update bitcount */ t = ctx->bits[0]; if ((ctx->bits[0] = t + ((md5_uint32)len << 3)) < t) ctx->bits[1]++; /* Carry from low to high */ ctx->bits[1] += len >> 29; t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */ /* Handle any leading odd-sized chunks */ if (t) { unsigned char *p = (unsigned char *)ctx->in + t; t = 64 - t; if (len < t) { memcpy(p, buf, len); return; } memcpy(p, buf, t); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, ctx->in); buf += t; len -= t; } /* Process data in 64-byte chunks */ while (len >= 64) { memcpy(ctx->in, buf, 64); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, ctx->in); buf += 64; len -= 64; } /* Handle any remaining bytes of data. */ memcpy(ctx->in, buf, len); } /* * Final wrapup - pad to 64-byte boundary with the bit pattern * 1 0* (64-bit count of bits processed, MSB-first) */ void MD5Final(unsigned char digest[16], struct MD5Context *ctx) { unsigned count; unsigned char *p; /* Compute number of bytes mod 64 */ count = (ctx->bits[0] >> 3) & 0x3F; /* Set the first char of padding to 0x80. This is safe since there is always at least one byte free */ p = (unsigned char *)ctx->in + count; *p++ = 0x80; /* Bytes of padding needed to make 64 bytes */ count = 64 - 1 - count; /* Pad out to 56 mod 64 */ if (count < 8) { /* Two lots of padding: Pad the first block to 64 bytes */ memset(p, 0, count); byteReverse(ctx->in, 16); MD5Transform(ctx->buf, ctx->in); /* Now fill the next block with 56 bytes */ memset(ctx->in, 0, 56); } else { /* Pad block to 56 bytes */ memset(p, 0, count - 8); } byteReverse(ctx->in, 14); /* Append length in bits and transform */ ctx->in[14] = ctx->bits[0]; ctx->in[15] = ctx->bits[1]; MD5Transform(ctx->buf, ctx->in); byteReverse(ctx->buf, 4); memcpy(digest, ctx->buf, 16); memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */ } #ifndef ASM_MD5 /* The four core functions - F1 is optimized somewhat */ /* #define F1(x, y, z) (x & y | ~x & z) */ #define F1(x, y, z) (z ^ (x & (y ^ z))) #define F2(x, y, z) F1(z, x, y) #define F3(x, y, z) (x ^ y ^ z) #define F4(x, y, z) (y ^ (x | ~z)) /* This is the central step in the MD5 algorithm. */ #define MD5STEP(f, w, x, y, z, data, s) (w += f(x, y, z) + data, w = w << s | w >> (32 - s), w += x) /* * The core of the MD5 algorithm, this alters an existing MD5 hash to * reflect the addition of 16 longwords of new data. MD5Update blocks * the data and converts bytes into longwords for this routine. */ void MD5Transform(md5_uint32 buf[4], md5_uint32 TW_CONST in[16]) { register md5_uint32 a, b, c, d; a = buf[0]; b = buf[1]; c = buf[2]; d = buf[3]; MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7); MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12); MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17); MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22); MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7); MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12); MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17); MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22); MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7); MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12); MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17); MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22); MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7); MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12); MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17); MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22); MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5); MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9); MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14); MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20); MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5); MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9); MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14); MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20); MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5); MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9); MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14); MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20); MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5); MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9); MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14); MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20); MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4); MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11); MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16); MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23); MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4); MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11); MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16); MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23); MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4); MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11); MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16); MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23); MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4); MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11); MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16); MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23); MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6); MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10); MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15); MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21); MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6); MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10); MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15); MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21); MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6); MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10); MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15); MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21); MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6); MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10); MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15); MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21); buf[0] += a; buf[1] += b; buf[2] += c; buf[3] += d; } #endif #ifdef TW_DEBUG_MD5_MAIN #include <stdio.h> #include <string.h> int main(int argc, TW_CONST char *argv[]) { unsigned char digest[16]; struct MD5Context ctx; TW_CONST char *str = argc > 1 ? argv[1] : "abc\n"; unsigned i; MD5Init(&ctx); MD5Update(&ctx, (unsigned TW_CONST char *)str, strlen(str)); MD5Final(digest, &ctx); for (i = 0; i < sizeof(digest); i++) { printf("%02x", (unsigned)digest[i]); } putchar('\n'); return 0; } #endif /* TW_DEBUG_MD5_MAIN */ �����������������������������������������������������������twin-0.9.0/server/methods.cpp�����������������������������������������������������������������������0000664�0000000�0000000�00000154131�13775351206�0016174�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * methods.c -- functions for OO-style calls on twin data structures * (windows, menus, ...) * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "algo.h" #include "main.h" #include "builtin.h" #include "methods.h" #include "obj/id.h" #include "data.h" #include "extreg.h" #include "dl.h" #include "draw.h" #include "printk.h" #include "resize.h" #include "util.h" #include "hw.h" #include "hw_multi.h" #include <new> #include <Tw/Tw.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include <Tutf/Tutf.h> #include <Tutf/Tutf_defs.h> /* some object-oriented ones not included in fn_obj */ void *OverrideMth(void **where, void *OrigMth, void *NewMth) { if (*where == OrigMth) { *where = NewMth; return NewMth; } return NULL; } #if 0 /* not used */ inline void DeletePartialList(obj Obj) { obj Next; while (Obj) { Next = Obj->Next; Obj->Delete(); Obj = Next; } } #endif inline void InsertGeneric(obj_entry Obj, obj_list Parent, obj_entry Prev, obj_entry Next, ldat *ObjCount) { if (Obj->Prev || Obj->Next) return; if (Prev) Next = Prev->Next; else if (Next) Prev = Next->Prev; if ((Obj->Prev = Prev)) Prev->Next = Obj; else Parent->First = Obj; if ((Obj->Next = Next)) Next->Prev = Obj; else Parent->Last = Obj; if (ObjCount) (*ObjCount)++; } inline void RemoveGeneric(obj_entry Obj, obj_list Parent, ldat *ObjCount) { if (Obj->Prev) Obj->Prev->Next = Obj->Next; else if (Parent->First == Obj) Parent->First = Obj->Next; if (Obj->Next) Obj->Next->Prev = Obj->Prev; else if (Parent->Last == Obj) Parent->Last = Obj->Prev; Obj->Prev = Obj->Next = NULL; if (ObjCount) (*ObjCount)--; } /* fn_obj and others fn_XXX functions */ /* obj */ static void InsertObj(obj Obj, obj Parent, obj Prev, obj Next) { printk("twin: internal error: pure virtual function InsertObj() called!\n"); } static void RemoveObj(obj Obj) { printk("twin: internal error: pure virtual function RemoveObj() called!\n"); } static void DeleteObj(obj Obj) { /* not a good idea to RemoveObj(Obj) here */ DropId(Obj); FreeMem(Obj); } static struct s_fn_obj _FnObj = { obj_magic, InsertObj, RemoveObj, DeleteObj, (void (*)(obj, udat, uldat, uldat))NoOp, }; /* widget */ static void InsertWidget(widget W, widget Parent, widget Prev, widget Next) { if (Parent) { /* * don't check W->Parent here, as Raise() and Lower() call * RemoveWidget() then InsertWidget() but RemoveWidget() does not reset W->Parent */ InsertGeneric((obj_entry)W, (obj_list)&Parent->FirstW, (obj_entry)Prev, (obj_entry)Next, NULL); } } static void RemoveWidget(widget W) { if (W->Parent) { RemoveGeneric((obj_entry)W, (obj_list)&W->Parent->FirstW, NULL); } } static void DeleteWidget(widget W) { W->UnMap(); if (W->Hook) { W->RemoveHook(W->Hook, W->WhereHook); } if (W->ShutDownHook) { W->ShutDownHook(W); } W->DisOwn(); while (W->FirstW) { W->FirstW->UnMap(); } DeleteObj((obj)W); } static void SetFillWidget(widget W, tcell Fill) { if (W->USE_Fill != Fill) { W->USE_Fill = Fill; if (W->Parent) DrawAreaWidget(W); } } static void ChangeFieldWidget(widget W, udat field, uldat CLEARMask, uldat XORMask) { uldat i; if (W) switch (field) { case TWS_widget_Left: case TWS_widget_Up: case TWS_widget_Width: case TWS_widget_Height: break; case TWS_widget_USE_Fill: i = (tcell)((W->USE_Fill & ~CLEARMask) ^ XORMask); SetFillWidget(W, i); break; case TWS_widget_XLogic: case TWS_widget_YLogic: break; default: W->Fn->Fn_Obj->ChangeField((obj)W, field, CLEARMask, XORMask); break; } } widget FocusWidget(widget W) { widget oldW; if (W) oldW = W->KbdFocus(); else oldW = Do(KbdFocus, widget)(NULL); if (W != oldW && (!W || W->Parent == (widget)All->FirstScreen)) { if (W && IS_WINDOW(W)) DrawBorderWindow((window)W, BORDER_ANY); if (oldW && IS_WINDOW(oldW)) DrawBorderWindow((window)oldW, BORDER_ANY); if ((W && IS_WINDOW(W)) || (oldW && IS_WINDOW(oldW))) { UpdateCursor(); if (!W || !IS_WINDOW(W) || !(((window)W)->Flags & WINDOWFL_MENU)) All->FirstScreen->DrawMenu(0, TW_MAXDAT); } } return oldW; } #define TtyKbdFocus FakeKbdFocus widget FakeKbdFocus(widget W) { widget oldW; widget P; screen Screen = W && (P = W->Parent) && IS_SCREEN(P) ? (screen)P : All->FirstScreen; if (Screen) { oldW = Screen->FocusW; Screen->FocusW = W; } else oldW = (widget)0; return oldW; } static gadget FindGadgetByCode(widget Parent, udat Code) { widget W; for (W = Parent->FirstW; W; W = W->Next) { if (IS_GADGET(W) && ((gadget)W)->Code == Code) return (gadget)W; } return (gadget)0; } static void IncMouseMotionN(void) { if (!All->MouseMotionN++) EnableMouseMotionEvents(ttrue); } static void DecMouseMotionN(void) { if (All->MouseMotionN && !--All->MouseMotionN) EnableMouseMotionEvents(tfalse); } static void MapWidget(widget W, widget Parent) { msg Msg; if (W && !W->Parent && !W->MapQueueMsg && Parent) { if (IS_SCREEN(Parent)) { if (Ext(WM, MsgPort) && (Msg = New(msg)(msg_map, 0))) { Msg->Event.EventMap.W = W; Msg->Event.EventMap.Code = 0; Msg->Event.EventMap.Screen = (screen)Parent; W->MapQueueMsg = Msg; SendMsg(Ext(WM, MsgPort), Msg); } else W->MapTopReal((screen)Parent); } else if (IS_WIDGET(Parent)) { if (W->Up == TW_MAXDAT) { W->Left = Parent->XLogic; W->Up = Parent->YLogic; } InsertFirst(W, W, Parent); W->Parent = Parent; DrawAreaWidget(W); if (W->Attr & (WIDGET_WANT_MOUSE_MOTION | WIDGET_AUTO_FOCUS)) IncMouseMotionN(); if (W->MapUnMapHook) W->MapUnMapHook(W); } } } static void MapTopRealWidget(widget W, screen Screen) { widget OldW; if (Screen && !W->Parent && (!IS_WINDOW(W) || ((window)W)->Menu)) { if (W->MapQueueMsg) /* * let the upper layer do this: * W->MapQueueMsg->Delete(); */ W->MapQueueMsg = (msg)0; if (W->Up == TW_MAXDAT) { W->Left = Screen->XLogic; W->Up = Max2(Screen->YLimit + 1, 0) + Screen->YLogic; } else { W->Left += Screen->XLogic; W->Up += Screen->YLogic; } InsertFirst(W, W, (widget)Screen); W->Parent = (widget)Screen; /* top-level widgets must be visible */ W->Flags &= ~WINDOWFL_NOTVISIBLE; if (W->Attr & (WIDGET_WANT_MOUSE_MOTION | WIDGET_AUTO_FOCUS)) IncMouseMotionN(); if (Screen == All->FirstScreen) { OldW = W->KbdFocus(); if (OldW && IS_WINDOW(OldW)) DrawBorderWindow((window)OldW, BORDER_ANY); UpdateCursor(); } if (IS_WINDOW(W)) DrawAreaWindow2((window)W); else DrawAreaWidget(W); if (!(W->Flags & WINDOWFL_MENU)) Screen->DrawMenu(0, TW_MAXDAT); if (W->MapUnMapHook) W->MapUnMapHook(W); if (Screen->FnHookW) Screen->FnHookW(Screen->HookW); } } static void UnMapWidget(widget W) { widget Parent; window Next; screen Screen; byte wasFocus; if (W && (Parent = W->Parent)) { if (IS_SCREEN(Parent)) { if ((Screen = (screen)Parent) == All->FirstScreen && W == (widget)Screen->MenuWindow) { /* * ! DANGER ! * Trying to UnMap() the menu owner. * shutdown the menu first! */ CloseMenu(); } if (W->Attr & (WIDGET_WANT_MOUSE_MOTION | WIDGET_AUTO_FOCUS)) DecMouseMotionN(); if (Screen->ClickWindow == (window)W) Screen->ClickWindow = NULL; if ((wasFocus = W == Screen->FocusW)) { if (W->Flags & WINDOWFL_MENU) Next = Screen->MenuWindow; else { if ((widget)W == Screen->FirstW) Next = (window)W->Next; else Next = (window)Screen->FirstW; while (Next && !IS_WINDOW(Next)) Next = (window)Next->Next; } } W->Remove(); if (IS_WINDOW(W)) DrawAreaWindow2((window)W); else DrawAreaWidget(W); if (IS_SCREEN(Parent)) { W->Left = 0; W->Up = TW_MAXDAT; } W->Parent = (widget)0; if (wasFocus) { if (Screen == All->FirstScreen) { /* * in case the user was dragging this window... */ if ((All->State & state_any) < state_menu) All->State &= ~state_any; if (Next) { (void)Next->KbdFocus(); DrawBorderWindow(Next, BORDER_ANY); } else Do(KbdFocus, window)(NULL); if (!(W->Flags & WINDOWFL_MENU)) Screen->DrawMenu(0, TW_MAXDAT); UpdateCursor(); } else Screen->FocusW = (widget)Next; } if (W->MapUnMapHook) W->MapUnMapHook(W); if (Screen->FnHookW) Screen->FnHookW(Screen->HookW); } else { /* UnMap() a sub-window */ if (W == Parent->SelectW) Parent->SelectW = (widget)0; W->Remove(); DrawAreaWidget(W); W->Parent = (widget)0; if (W->Attr & (WIDGET_WANT_MOUSE_MOTION | WIDGET_AUTO_FOCUS)) DecMouseMotionN(); if (W->MapUnMapHook) W->MapUnMapHook(W); } } else if (W->MapQueueMsg) { /* the window was still waiting to be mapped! */ W->MapQueueMsg->Delete(); W->MapQueueMsg = (msg)0; } } static void RaiseW(widget W) { RaiseWidget(W, tfalse); } static void LowerW(widget W) { LowerWidget(W, tfalse); } static void SetXYWidget(widget W, dat X, dat Y) { widget Prev, Next; if (W->Parent) { Prev = W->Prev; Next = W->Next; W->Remove(); DrawAreaWidget(W); } W->Left = X; W->Up = Y; if (W->Parent) { InsertMiddle(W, W, W->Parent, Prev, Next); DrawAreaWidget(W); } } static void OwnWidget(widget Widget, msgport Owner) { if (!Widget->Owner) { if ((Widget->O_Next = Owner->FirstW)) Owner->FirstW->O_Prev = Widget; else Owner->LastW = Widget; Widget->O_Prev = (widget)0; Owner->FirstW = Widget; Widget->Owner = Owner; } } static void DisOwnWidget(widget W) { msgport Owner; if ((Owner = W->Owner)) { if (W->O_Prev) W->O_Prev->O_Next = W->O_Next; else if (Owner->FirstW == W) Owner->FirstW = W->O_Next; if (W->O_Next) W->O_Next->O_Prev = W->O_Prev; else if (Owner->LastW == W) Owner->LastW = W->O_Prev; W->O_Prev = W->O_Next = (widget)0; W->Owner = (msgport)0; } } static void RecursiveDeleteWidget(widget W, msgport maybeOwner) { while (W->FirstW) W->FirstW->RecursiveDelete(maybeOwner); if (W->Owner == maybeOwner) W->Delete(); else W->UnMap(); } static byte InstallHookWidget(widget W, fn_hook Hook, fn_hook *WhereHook) { if (W && !W->Hook && !W->WhereHook && Hook && WhereHook && !WhereHook[0] && !WhereHook[1]) { W->Hook = WhereHook[0] = Hook; W->WhereHook = WhereHook; WhereHook[1] = (fn_hook)W; return ttrue; } return tfalse; } static void RemoveHookWidget(widget W, fn_hook Hook, fn_hook *WhereHook) { if (W && Hook && W->Hook == Hook && WhereHook && W->WhereHook == WhereHook && WhereHook[0] == Hook && WhereHook[1] == (void *)W) { W->Hook = *WhereHook = (fn_hook)0; W->WhereHook = (fn_hook *)0; WhereHook[1] = (fn_hook)0; } } static struct s_fn_widget _FnWidget = { widget_magic, InsertWidget, RemoveWidget, DeleteWidget, ChangeFieldWidget, &_FnObj, DrawSelfWidget, /* exported by draw.c */ FindWidgetAt, /* exported by draw.c */ FindGadgetByCode, SetXYWidget, SetFillWidget, FocusWidget, TtyKbdFocus, MapWidget, UnMapWidget, MapTopRealWidget, RaiseW, LowerW, OwnWidget, DisOwnWidget, RecursiveDeleteWidget, ExposeWidget2, /* exported by resize.c */ InstallHookWidget, RemoveHookWidget, }; /* gadget */ static void DeleteGadget(gadget G) { byte i; G->UnMap(); if (G_USE(G, USETEXT)) { for (i = 0; i < 4; i++) { if (G->USE.T.Text[i]) FreeMem(G->USE.T.Text[i]); if (G->USE.T.Color[i]) FreeMem(G->USE.T.Color[i]); } } DeleteWidget((widget)G); } static void ChangeFieldGadget(gadget G, udat field, uldat CLEARMask, uldat XORMask) { uldat i, mask; if (G) switch (field) { case TWS_gadget_ColText: case TWS_gadget_ColSelect: case TWS_gadget_ColDisabled: case TWS_gadget_ColSelectDisabled: case TWS_gadget_Code: break; case TWS_gadget_Flags: mask = GADGETFL_DISABLED | GADGETFL_TEXT_DEFCOL | GADGETFL_PRESSED | GADGETFL_TOGGLE; CLEARMask &= mask; XORMask &= mask; i = (G->Flags & ~CLEARMask) ^ XORMask; if ((i & mask) != (G->Flags & mask)) { if ((i & GADGETFL_PRESSED) != (G->Flags & GADGETFL_PRESSED)) { if (i & GADGETFL_PRESSED) PressGadget(G); else UnPressGadget(G, ttrue); } mask = GADGETFL_DISABLED | GADGETFL_TEXT_DEFCOL; if ((i & mask) != (G->Flags & mask)) { G->Flags = i; DrawAreaWidget((widget)G); } else G->Flags = i; } break; default: G->Fn->Fn_Widget->ChangeField((widget)G, field, CLEARMask, XORMask); break; } } static gadget CreateEmptyButton(msgport Owner, dat XWidth, dat YWidth, tcolor BgCol) { gadget G = NULL; ldat Size; byte i; dat j, k; #define _FULL T_UTF_32_FULL_BLOCK #define _LOWER T_UTF_32_LOWER_HALF_BLOCK #define _UPPER T_UTF_32_UPPER_HALF_BLOCK void *addr = AllocMem0(sizeof(s_gadget)); if (addr) { G = new (addr) s_gadget(); G->Fn = Fn_gadget; if (!((widget)G)->Init(Owner, ++XWidth, ++YWidth, 0, GADGETFL_USETEXT | GADGETFL_BUTTON, 0, 0, (tcell)0)) { G->Delete(); return NULL; } Size = (ldat)XWidth * YWidth; for (i = 0; i < 4; i++) G->USE.T.Text[i] = NULL, G->USE.T.Color[i] = NULL; for (i = 0; i < 4; i++) if (!(G->USE.T.Text[i] = (trune *)AllocMem(Size * sizeof(trune))) || !(G->USE.T.Color[i] = (tcolor *)AllocMem(Size * sizeof(tcolor)))) { G->Delete(); return NULL; } Size = (ldat)--XWidth * --YWidth; BgCol &= TCOL(0, tmaxcol); for (i = 0; i < 4; i++) { for (j = k = (dat)0; j < YWidth; j++, k += XWidth + 1) { G->USE.T.Text[i][k + (i & 1 ? 0 : XWidth)] = i & 1 ? ' ' : k ? _FULL : _LOWER; G->USE.T.Color[i][k + (i & 1 ? 0 : XWidth)] = BgCol; } G->USE.T.Text[i][k] = ' '; for (j = (dat)0; j < XWidth; j++) G->USE.T.Text[i][k + 1 + j] = i & 1 ? ' ' : _UPPER; #if TW_SIZEOF_TCOLOR == 1 memset((void *)(G->USE.T.Color[i] + k), BgCol, XWidth + 1); #else for (j = (dat)0; j <= XWidth; j++) G->USE.T.Color[i][k + j] = BgCol; #endif } G->G_Prev = G->G_Next = (gadget)0; G->Group = (ggroup)0; } return G; #undef _FULL #undef _UPPER #undef _LOWER } byte FillButton(gadget G, widget Parent, udat Code, dat Left, dat Up, udat Flags, const char *Text, tcolor Color, tcolor ColorDisabled) { dat i, j, XWidth, YWidth; const char *T; if (Code >= COD_RESERVED) return tfalse; G->Code = Code; G->Left = Left; G->Up = Up; G->Flags = (Flags & ~GADGETFL_USEANY) | GADGETFL_USETEXT | GADGETFL_BUTTON; XWidth = G->XWidth; YWidth = G->YWidth; T = Text; for (j = (dat)0; j < (YWidth - (dat)1) * XWidth; j += XWidth) { for (i = (dat)0; i < XWidth - (dat)1; i++) { G->USE.T.Text[0][i + j] = G->USE.T.Text[1][i + j + 1] = G->USE.T.Text[2][i + j] = G->USE.T.Text[3][i + j + 1] = Tutf_CP437_to_UTF_32[(byte) * (T++)]; G->USE.T.Color[0][i + j] = G->USE.T.Color[1][i + j + 1] = Color; G->USE.T.Color[2][i + j] = G->USE.T.Color[3][i + j + 1] = ColorDisabled; } } if (Parent) G->Map(Parent); return ttrue; } static gadget CreateButton(widget Parent, dat XWidth, dat YWidth, const char *Text, uldat Flags, udat Code, tcolor BgCol, tcolor Col, tcolor ColDisabled, dat Left, dat Up) { gadget G; if (Parent && (G = CreateEmptyButton(Parent->Owner, XWidth, YWidth, BgCol))) { if (G->FillButton(Parent, Code, Left, Up, Flags, Text, Col, ColDisabled)) return G; G->Delete(); G = NULL; } return G; } static struct s_fn_gadget _FnGadget = { gadget_magic, // (void (*)(gadget, widget, widget, widget))InsertWidget, // (void (*)(gadget))RemoveWidget, DeleteGadget, ChangeFieldGadget, /* widget */ &_FnObj, DrawSelfGadget, /* exported by draw.c */ (widget (*)(gadget, dat, dat))FindWidgetAt, /* exported by draw.c */ (gadget (*)(gadget, udat))FindGadgetByCode, (void (*)(gadget, dat, dat))SetXYWidget, (void (*)(gadget, tcell))SetFillWidget, (widget(*)(gadget))FocusWidget, (widget(*)(gadget))TtyKbdFocus, (void (*)(gadget, widget))MapWidget, (void (*)(gadget))UnMapWidget, (void (*)(gadget, screen))MapTopRealWidget, (void (*)(gadget))RaiseW, (void (*)(gadget))LowerW, (void (*)(gadget, msgport))OwnWidget, (void (*)(gadget))DisOwnWidget, (void (*)(gadget, msgport))RecursiveDeleteWidget, (void (*)(gadget, dat, dat, dat, dat, const char *, const trune *, const tcell *))ExposeWidget2, /* exported by resize.c */ (byte (*)(gadget, fn_hook, void (**)(widget)))InstallHookWidget, (void (*)(gadget, fn_hook, void (**)(widget)))RemoveHookWidget, /* gadget */ &_FnWidget, CreateEmptyButton, FillButton, CreateButton, WriteTextsGadget, /* exported by resize.c */ WriteTRunesGadget, /* exported by resize.c */ }; /* window */ static void DeleteWindow(window W) { W->UnMap(); if (W->Name) FreeMem(W->Name); if (W->ColName) FreeMem(W->ColName); if (W_USE(W, USECONTENTS)) { if (W->USE.C.TtyData) FreeMem(W->USE.C.TtyData); if (W->USE.C.Contents) FreeMem(W->USE.C.Contents); } else if (W_USE(W, USEROWS)) { DeleteList(W->USE.R.FirstRow); } DeleteWidget((widget)W); } static void ChangeFieldWindow(window W, udat field, uldat CLEARMask, uldat XORMask) { uldat i, mask; if (W) switch (field) { case TWS_window_CurX: case TWS_window_CurY: case TWS_window_XstSel: case TWS_window_YstSel: case TWS_window_XendSel: case TWS_window_YendSel: /* FIXME: finish this */ break; case TWS_window_ColGadgets: case TWS_window_ColArrows: case TWS_window_ColBars: case TWS_window_ColTabs: case TWS_window_ColBorder: case TWS_window_ColText: case TWS_window_ColSelect: case TWS_window_ColDisabled: case TWS_window_ColSelectDisabled: { tcolor *C = NULL; switch (field) { case TWS_window_ColGadgets: C = &W->ColGadgets; break; case TWS_window_ColArrows: C = &W->ColArrows; break; case TWS_window_ColBars: C = &W->ColBars; break; case TWS_window_ColTabs: C = &W->ColTabs; break; case TWS_window_ColBorder: C = &W->ColBorder; break; case TWS_window_ColText: C = &W->ColText; break; case TWS_window_ColSelect: C = &W->ColSelect; break; case TWS_window_ColDisabled: C = &W->ColDisabled; break; case TWS_window_ColSelectDisabled: C = &W->ColSelectDisabled; break; default: break; } i = (*C & ~CLEARMask) ^ XORMask; if (i != *C) { *C = i; /* FIXME: this is an overkill */ DrawAreaWidget((widget)W); } } break; case TWS_window_Flags: mask = WINDOWFL_CURSOR_ON; CLEARMask &= mask; XORMask &= mask; i = (W->Flags & ~CLEARMask) ^ XORMask; if ((i & mask) != (W->Flags & mask)) { W->Flags = i; if (ContainsCursor((widget)W)) UpdateCursor(); } break; case TWS_window_Attr: mask = WINDOW_WANT_KEYS | WINDOW_WANT_MOUSE | WINDOW_WANT_CHANGES | WINDOW_AUTO_FOCUS | WINDOW_DRAG | WINDOW_RESIZE | WINDOW_CLOSE | WINDOW_ROLLED_UP | WINDOW_X_BAR | WINDOW_Y_BAR | WINDOW_AUTO_KEYS | WINDOW_WANT_MOUSE_MOTION; CLEARMask &= mask; XORMask &= mask; i = (W->Attr & ~CLEARMask) ^ XORMask; if ((i & mask) != (W->Attr & mask)) { if ((i & WINDOW_ROLLED_UP) != (W->Attr & WINDOW_ROLLED_UP)) RollUpWindow(W, !!(i & WINDOW_ROLLED_UP)); if ((i & (WINDOW_WANT_MOUSE_MOTION | WIDGET_AUTO_FOCUS)) != (W->Attr & (WINDOW_WANT_MOUSE_MOTION | WIDGET_AUTO_FOCUS)) && W->Parent) { if (i & (WINDOW_WANT_MOUSE_MOTION | WIDGET_AUTO_FOCUS)) IncMouseMotionN(); else DecMouseMotionN(); } mask = WINDOW_RESIZE | WINDOW_CLOSE | WINDOW_X_BAR | WINDOW_Y_BAR; if ((i & mask) != (W->Attr & mask) && W->Parent) { W->Attr = i; DrawBorderWindow(W, BORDER_ANY); } else W->Attr = i; } break; case TWS_window_State: case TWS_window_CursorType: case TWS_window_MinXWidth: case TWS_window_MinYWidth: case TWS_window_MaxXWidth: case TWS_window_MaxYWidth: case TWS_window_WLogic: case TWS_window_HLogic: break; default: W->Fn->Fn_Widget->ChangeField((widget)W, field, CLEARMask, XORMask); break; } } static void SetTitleWindow(window W, dat titlelen, char *title) { widget P; if (W->Name) FreeMem(W->Name); W->NameLen = titlelen; W->Name = title; #if 1 /* * do not allow changing window borders just because * some untrusted application set a new title */ DrawBorderWindow(W, BORDER_UP); #else /* user may have title-dependent borders in ~/.twinrc, honour them: */ Win->BorderPattern[0] = Win->BorderPattern[1] = NULL; DrawBorderWindow(W, BORDER_ANY); #endif if ((P = W->Parent) && IS_SCREEN(P)) { /* need to update window list with new name ? */ if (((screen)P)->FnHookW) ((screen)P)->FnHookW(((screen)P)->HookW); } } static void SetColTextWindow(window W, tcolor ColText) { W->ColText = ColText; } static void SetColorsWindow(window W, udat Bitmap, tcolor ColGadgets, tcolor ColArrows, tcolor ColBars, tcolor ColTabs, tcolor ColBorder, tcolor ColText, tcolor ColSelect, tcolor ColDisabled, tcolor ColSelectDisabled) { if (Bitmap & 1) W->ColGadgets = ColGadgets; if (Bitmap & 2) W->ColArrows = ColArrows; if (Bitmap & 4) W->ColBars = ColBars; if (Bitmap & 8) W->ColTabs = ColTabs; if (Bitmap & 0x10) W->ColBorder = ColBorder; if (Bitmap & 0x20) { W->ColText = ColText; if (W_USE(W, USECONTENTS)) W->USE.C.TtyData->Color = ColText; } if (Bitmap & 0x40) W->ColSelect = ColSelect; if (Bitmap & 0x80) W->ColDisabled = ColDisabled; if (Bitmap & 0x100) W->ColSelectDisabled = ColSelectDisabled; if (W->Parent) DrawBorderWindow(W, BORDER_ANY); } static void SetXYWindow(window W, dat X, dat Y) { widget Prev, Next; if (W->Parent) { Prev = W->Prev; Next = W->Next; W->Remove(); DrawAreaWindow2(W); } W->Left = X; W->Up = Y; if (W->Parent) { if (IS_SCREEN(W->Parent)) { W->Left += W->Parent->XLogic; W->Up += W->Parent->YLogic; } InsertMiddle(W, W, W->Parent, Prev, Next); DrawAreaWindow2(W); } } static void ConfigureWindow(window W, byte Bitmap, dat Left, dat Up, dat MinXWidth, dat MinYWidth, dat MaxXWidth, dat MaxYWidth) { widget Prev, Next; dat HasBorder = 2 * !(W->Flags & WINDOWFL_BORDERLESS); if (W->Parent) { Prev = W->Prev; Next = W->Next; W->Remove(); DrawAreaWindow2(W); } if (Bitmap & 1) { W->Left = Left; if (W->Parent && IS_SCREEN(W->Parent)) W->Left += W->Parent->XLogic; } if (Bitmap & 2) { W->Up = Up; if (W->Parent && IS_SCREEN(W->Parent)) W->Up += W->Parent->YLogic; } if (Bitmap & 4) { if (MinXWidth <= TW_MAXDAT - HasBorder) MinXWidth = Max2(MinXWidth, MinXWidth + HasBorder); W->MinXWidth = MinXWidth; W->XWidth = Max2(MinXWidth, W->XWidth); } if (Bitmap & 8) { if (MinYWidth <= TW_MAXDAT - HasBorder) MinYWidth = Max2(MinYWidth, MinYWidth + HasBorder); W->MinYWidth = MinYWidth; W->YWidth = Max2(MinYWidth, W->YWidth); } if (Bitmap & 0x10) { if (MaxXWidth <= TW_MAXDAT - HasBorder) MaxXWidth = Max2(MaxXWidth, MaxXWidth + HasBorder); W->MaxXWidth = Max2(W->MinXWidth, MaxXWidth); W->XWidth = Min2(MaxXWidth, W->XWidth); } if (Bitmap & 0x20) { if (MaxYWidth <= TW_MAXDAT - HasBorder) MaxYWidth = Max2(MaxYWidth, MaxYWidth + HasBorder); W->MaxYWidth = Max2(W->MinYWidth, MaxYWidth); W->YWidth = Min2(MaxYWidth, W->YWidth); } if (W->Parent) { InsertMiddle(W, W, W->Parent, Prev, Next); DrawAreaWindow2(W); } } static void GotoXYWindow(window Window, ldat X, ldat Y) { if (W_USE(Window, USECONTENTS)) { ttydata *TT = Window->USE.C.TtyData; X = Max2(X, 0); Y = Max2(Y, 0); if (X >= TT->SizeX) X = TT->SizeX - 1; if (Y >= TT->SizeY) Y = TT->SizeY - 1; TT->X = X; TT->Y = Y; TT->Pos = TT->Start + X + (ldat)Y * TT->SizeX; if (TT->Pos >= TT->Split) TT->Pos -= TT->Split - Window->USE.C.Contents; Y += Window->HLogic - TT->SizeY; } Window->CurX = X; Window->CurY = Y; if (ContainsCursor((widget)Window)) UpdateCursor(); } window Create4MenuWindow(menu Menu) { window Window = (window)0; if (Menu && (Window = New(window)(Menu->MsgPort, 0, NULL, (tcolor *)0, Menu, TCOL(tblack, twhite), NOCURSOR, WINDOW_AUTO_KEYS, WINDOWFL_MENU | WINDOWFL_USEROWS | WINDOWFL_ROWS_DEFCOL | WINDOWFL_ROWS_SELCURRENT, MIN_XWIN, MIN_YWIN, 0))) { Window->SetColors(0x1FF, TCOL(0, 0), TCOL(0, 0), TCOL(0, 0), TCOL(0, 0), TCOL(thigh | twhite, twhite), TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack)); Window->Configure(0x3F, 0, 1, MIN_XWIN, MIN_YWIN, TW_MAXDAT, TW_MAXDAT); } return Window; } byte FakeWriteCharset(window Window, uldat Len, const char *charset_bytes) { if (DlLoad(TermSo) && Window->Fn->TtyWriteCharset != FakeWriteCharset) return Window->TtyWriteCharset(Len, charset_bytes); return tfalse; } byte FakeWriteUtf8(window Window, uldat Len, const char *utf8_bytes) { if (DlLoad(TermSo) && Window->Fn->TtyWriteUtf8 != FakeWriteUtf8) return Window->TtyWriteUtf8(Len, utf8_bytes); return tfalse; } byte FakeWriteTRune(window Window, uldat Len, const trune *runes) { if (DlLoad(TermSo) && Window->Fn->TtyWriteTRune != FakeWriteTRune) return Window->TtyWriteTRune(Len, runes); return tfalse; } byte FakeWriteTCell(window Window, dat x, dat y, uldat Len, const tcell *cells) { if (DlLoad(TermSo) && Window->Fn->TtyWriteTCell != FakeWriteTCell) return Window->TtyWriteTCell(x, y, Len, cells); return tfalse; } window FakeOpenTerm(const char *arg0, const char *const *argv) { if (DlLoad(TermSo) && Ext(Term, Open) != FakeOpenTerm) return Ext(Term, Open)(arg0, argv); return NULL; } tpos FakeFindBorderWindow(window W, dat u, dat v, byte Border, tcell *PtrAttr) { byte Horiz, Vert; Horiz = u ? u + 1 == W->XWidth ? (byte)2 : (byte)1 : (byte)0; Vert = v ? v + 1 == W->YWidth ? (byte)2 : (byte)1 : (byte)0; if (*PtrAttr) *PtrAttr = TCELL(W->ColBorder, StdBorder[Border][Vert * 3 + Horiz]); return v ? POS_ROOT : POS_TITLE; } static row FindRow(window Window, ldat Row) { row CurrRow, ElPossib[4]; byte Index; ldat k, ElNumRows[4], ElDist[4]; ElPossib[0] = Window->USE.R.RowOne; ElPossib[1] = Window->USE.R.RowSplit; ElPossib[2] = Window->USE.R.FirstRow; ElPossib[3] = Window->USE.R.LastRow; ElNumRows[0] = Window->USE.R.NumRowOne; ElNumRows[1] = Window->USE.R.NumRowSplit; ElNumRows[2] = (ldat)0; ElNumRows[3] = Window->HLogic - (ldat)1; ElDist[0] = (ElPossib[0] && ElNumRows[0] ? Abs(ElNumRows[0] - Row) : TW_MAXLDAT); ElDist[1] = (ElPossib[1] && ElNumRows[1] ? Abs(ElNumRows[1] - Row) : TW_MAXLDAT); ElDist[2] = Row; ElDist[3] = Abs(ElNumRows[3] - Row); Index = Minimum((byte)4, ElDist); CurrRow = ElPossib[Index]; k = ElNumRows[Index]; if (CurrRow) { if (k < Row) while (k < Row && (CurrRow = CurrRow->Next)) k++; else if (k > Row) while (k > Row && (CurrRow = CurrRow->Prev)) k--; } if (CurrRow && IS_MENUITEM(CurrRow)) ((menuitem)CurrRow)->WCurY = Row; return CurrRow; } static row FindRowByCode(window Window, udat Code, ldat *NumRow) { row Row; ldat Num = (ldat)0; if ((Row = Window->USE.R.FirstRow)) while (Row && Row->Code != Code) { Row = Row->Next; Num++; } if (Row && NumRow) *NumRow = Num; return Row; } static struct s_fn_window _FnWindow = { window_magic, (void (*)(window, widget, widget, widget))InsertWidget, (void (*)(window))RemoveWidget, DeleteWindow, ChangeFieldWindow, /* widget */ &_FnObj, DrawSelfWindow, (widget(*)(window, dat, dat))FindWidgetAt, (gadget(*)(window, udat))FindGadgetByCode, SetXYWindow, (void (*)(window, tcell))SetFillWidget, (widget(*)(window))FocusWidget, (widget(*)(window))TtyKbdFocus, (void (*)(window, widget))MapWidget, (void (*)(window))UnMapWidget, (void (*)(window, screen))MapTopRealWidget, (void (*)(window))RaiseW, (void (*)(window))LowerW, (void (*)(window, msgport))OwnWidget, (void (*)(window))DisOwnWidget, (void (*)(window, msgport))RecursiveDeleteWidget, (void (*)(window, dat, dat, dat, dat, const char *, const trune *, const tcell *))ExposeWindow2, /* exported by resize.c */ (byte (*)(window, fn_hook, void (**)(widget)))InstallHookWidget, (void (*)(window, fn_hook, void (**)(widget)))RemoveHookWidget, /* window */ &_FnWidget, FakeWriteCharset, FakeWriteUtf8, FakeWriteTRune, FakeWriteTCell, RowWriteCharset, /* exported by resize.c */ RowWriteUtf8, RowWriteTRune, (byte(*)(window, dat, dat, uldat, const tcell *))AlwaysFalse, GotoXYWindow, SetTitleWindow, SetColTextWindow, SetColorsWindow, ConfigureWindow, Create4MenuWindow, FakeFindBorderWindow, FindRow, FindRowByCode, }; /* screen */ static screen CreateSimpleScreen(dat NameLen, const char *Name, tcell Bg) { return New(screen)(NameLen, Name, 1, 1, &Bg); } static void BgImageScreen(screen Screen, dat BgWidth, dat BgHeight, const tcell *Bg) { size_t size; if (Screen && S_USE(Screen, USEBG) && Bg && (size = (size_t)BgWidth * BgHeight * sizeof(tcell)) && (Screen->USE.B.Bg = (tcell *)ReAllocMem(Screen->USE.B.Bg, size))) { Screen->USE.B.BgWidth = BgWidth; Screen->USE.B.BgHeight = BgHeight; CopyMem(Bg, Screen->USE.B.Bg, size); DrawArea2((screen)0, (widget)0, (widget)0, 0, Screen->YLimit + 1, TW_MAXDAT, TW_MAXDAT, tfalse); } } static void InsertScreen(screen Screen, all Parent, screen Prev, screen Next) { if (!Screen->All && Parent) { InsertGeneric((obj_entry)Screen, (obj_list)&Parent->FirstScreen, (obj_entry)Prev, (obj_entry)Next, NULL); Screen->All = Parent; } } static void RemoveScreen(screen Screen) { if (Screen->All) { RemoveGeneric((obj_entry)Screen, (obj_list)&Screen->All->FirstScreen, NULL); Screen->All = (all)0; } } static void DeleteScreen(screen Screen) { while (Screen->FirstW) Screen->FirstW->UnMap(); Screen->Remove(); if (S_USE(Screen, USEBG) && Screen->USE.B.Bg) { FreeMem(Screen->USE.B.Bg); Screen->USE.B.Bg = NULL; } DeleteWidget((widget)Screen); } static void ChangeFieldScreen(screen S, udat field, uldat CLEARMask, uldat XORMask) { if (S) switch (field) { default: S->Fn->Fn_Widget->ChangeField((widget)S, field, CLEARMask, XORMask); break; } } static void SetXYScreen(screen Screen, dat X, dat Y) { if (Screen == All->FirstScreen) { Y = Max2(Y, -1); Y = Min2(Y, All->DisplayHeight - 1); ResizeFirstScreen(Y - Screen->YLimit); } } static menu FindMenuScreen(screen Screen) { if (Screen) { if (Screen->MenuWindow && IS_WINDOW(Screen->MenuWindow)) /* menu activated from Screen->MenuWindow, return its menu */ return Screen->MenuWindow->Menu; /* no window activated the menu... either the menu is inactive * or it is activated from the builtin menu */ if (Screen->FocusW && IS_WINDOW(Screen->FocusW) && ((window)Screen->FocusW)->Menu != All->CommonMenu) /* menu inactive... return the focus window's one */ return ((window)Screen->FocusW)->Menu; /* last case: menu activated from builtin menu */ return All->BuiltinMenu; } return (menu)0; } static screen FindScreen(dat j) { screen CurrScreen; byte VirtScrFound = tfalse; CurrScreen = All->FirstScreen; while (CurrScreen && !(VirtScrFound = (j >= (dat)CurrScreen->YLimit))) CurrScreen = CurrScreen->Next; if (VirtScrFound) return CurrScreen; return (screen)0; } static widget FocusScreen(screen tScreen) { screen Screen = All->FirstScreen; if (tScreen && Screen != tScreen) { MoveFirst(Screen, All, tScreen); DrawArea2((screen)0, (widget)0, (widget)0, 0, Min2(Screen->YLimit, tScreen->YLimit), TW_MAXDAT, TW_MAXDAT, tfalse); UpdateCursor(); } return (widget)Screen; } static void ActivateMenuScreen(screen Screen, menuitem Item, byte ByMouse) { if ((All->State & state_any) != state_default) return; if (Screen && Screen != All->FirstScreen) Screen->Focus(); SetMenuState(Item, ByMouse); } static void DeActivateMenuScreen(screen Screen) { if (Screen == All->FirstScreen && (All->State & state_any) == state_menu) CloseMenu(); } static struct s_fn_screen _FnScreen = { screen_magic, InsertScreen, RemoveScreen, DeleteScreen, ChangeFieldScreen, /* widget */ &_FnObj, DrawSelfScreen, (widget(*)(screen, dat, dat))FindWidgetAt, (gadget(*)(screen, udat))FindGadgetByCode, SetXYScreen, (void (*)(screen, tcell))SetFillWidget, FocusScreen, (widget(*)(screen))NoOp, /* KbdFocusWidget */ (void (*)(screen, widget))NoOp, /* MapWidget */ (void (*)(screen))NoOp, /* UnMapWidget */ (void (*)(screen, screen))NoOp, /* MapTopRealWidget */ (void (*)(screen))RaiseW, (void (*)(screen))LowerW, (void (*)(screen, msgport))OwnWidget, (void (*)(screen))DisOwnWidget, (void (*)(screen, msgport))RecursiveDeleteWidget, (void (*)(screen, dat, dat, dat, dat, const char *, const trune *, const tcell *))ExposeWidget2, /* exported by resize.c */ (byte (*)(screen, fn_hook, void (**)(widget)))InstallHookWidget, (void (*)(screen, fn_hook, void (**)(widget)))RemoveHookWidget, /* screen */ &_FnWidget, FindMenuScreen, FindScreen, CreateSimpleScreen, BgImageScreen, DrawMenuScreen, ActivateMenuScreen, DeActivateMenuScreen, }; /* ggroup */ static void InsertGroup(ggroup Group, msgport MsgPort, ggroup Prev, ggroup Next) { if (!Group->MsgPort && MsgPort) { InsertGeneric((obj_entry)Group, (obj_list)&MsgPort->FirstGroup, (obj_entry)Prev, (obj_entry)Next, NULL); Group->MsgPort = MsgPort; } } static void RemoveGroup(ggroup Group) { if (Group->MsgPort) { RemoveGeneric((obj_entry)Group, (obj_list)&Group->MsgPort->FirstGroup, NULL); Group->MsgPort = NULL; } } static void DeleteGroup(ggroup Group) { Group->Remove(); while (Group->FirstG) Group->RemoveGadget(Group->FirstG); DeleteObj((obj)Group); } static void InsertGadgetGroup(ggroup Group, gadget G) { if (G && !G->Group && !G->G_Prev && !G->G_Next) { if ((G->G_Next = Group->FirstG)) Group->FirstG->G_Prev = G; else Group->LastG = G; Group->FirstG = G; G->Group = Group; } } static void RemoveGadgetGroup(ggroup Group, gadget G) { if (G && G->Group == Group) { if (G->G_Prev) G->G_Prev->G_Next = G->G_Next; else if (Group->FirstG == G) Group->FirstG = G->G_Next; if (G->G_Next) G->G_Next->G_Prev = G->G_Prev; else if (Group->LastG == G) Group->LastG = G->G_Prev; G->G_Prev = G->G_Next = (gadget)0; G->Group = (ggroup)0; } } static gadget GetSelectedGadget(ggroup Group) { return Group->SelectG; } static void SetSelectedGadget(ggroup Group, gadget G) { if (!G || (G && G->Group == Group)) { if (Group->SelectG) UnPressGadget(Group->SelectG, ttrue); if (G) PressGadget(G); } } static struct s_fn_group _FnGroup = { ggroup_magic, InsertGroup, RemoveGroup, DeleteGroup, (void (*)(ggroup, udat, uldat, uldat))NoOp, &_FnObj, InsertGadgetGroup, RemoveGadgetGroup, GetSelectedGadget, SetSelectedGadget, }; /* row */ static void InsertRow(row Row, window Parent, row Prev, row Next) { if (!Row->Window && Parent && W_USE(Parent, USEROWS)) { InsertGeneric((obj_entry)Row, (obj_list)&Parent->USE.R.FirstRow, (obj_entry)Prev, (obj_entry)Next, &Parent->HLogic); Row->Window = Parent; Parent->USE.R.NumRowOne = Parent->USE.R.NumRowSplit = (ldat)0; } } static void RemoveRow(row Row) { if (Row->Window && W_USE(Row->Window, USEROWS)) { Row->Window->USE.R.NumRowOne = Row->Window->USE.R.NumRowSplit = (ldat)0; RemoveGeneric((obj_entry)Row, (obj_list)&Row->Window->USE.R.FirstRow, &Row->Window->HLogic); Row->Window = NULL; } } static void DeleteRow(row Row) { if (Row) { window W = Row->Window; Row->Remove(); if (Row->Text) FreeMem(Row->Text); if (Row->ColText) FreeMem(Row->ColText); DeleteObj((obj)Row); if (W && W->Parent && (W->Flags & WINDOWFL_MENU)) ResizeRelWindow(W, 0, -1); } } static byte SetTextRow(row Row, uldat Len, const char *Text, byte DefaultCol) { if (EnsureLenRow(Row, Len, DefaultCol)) { if (Len) { trune *RowText = Row->Text; ldat i = Len; while (i-- > 0) { *RowText++ = Tutf_CP437_to_UTF_32[(byte)*Text++]; } if (!(Row->Flags & ROW_DEFCOL) && !DefaultCol) /* will not work correctly if sizeof(tcolor) != 1 */ memset(Row->ColText, TCOL(twhite, tblack), Len * sizeof(tcolor)); } Row->Len = Len; Row->Gap = Row->LenGap = 0; return ttrue; } return tfalse; } static byte SetTRuneRow(row Row, uldat Len, const trune *TRune, byte DefaultCol) { if (EnsureLenRow(Row, Len, DefaultCol)) { if (Len) { CopyMem(TRune, Row->Text, Len * sizeof(trune)); if (!(Row->Flags & ROW_DEFCOL) && !DefaultCol) /* will not work correctly if sizeof(tcolor) != 1 */ memset(Row->ColText, TCOL(twhite, tblack), Len * sizeof(tcolor)); } Row->Len = Len; Row->Gap = Row->LenGap = 0; return ttrue; } return tfalse; } /* * this is used also for plain rows. * be careful to only access fields that even rows have */ static void RaiseMenuItem(menuitem M) { obj Parent; menuitem Next; if (M && (Parent = (obj)M->Parent)) { if (IS_MENU(Parent)) Next = ((menu)Parent)->FirstI; else if (IS_WINDOW(Parent) && W_USE((window)Parent, USEROWS)) Next = (menuitem)((window)Parent)->USE.R.FirstRow; else return; M->Remove(); M->Insert(Parent, (menuitem)0, Next); if (IS_MENU(Parent)) SyncMenu((menu)Parent); else DrawAreaWidget((widget)Parent); } } /* * this is used also for plain rows. * be careful to only access fields that even rows have */ static void LowerMenuItem(menuitem M) { obj Parent; menuitem Prev; if (M && (Parent = (obj)M->Parent)) { if (IS_MENU(Parent)) Prev = ((menu)Parent)->LastI; else if (IS_WINDOW(Parent) && W_USE((window)Parent, USEROWS)) Prev = (menuitem)((window)Parent)->USE.R.LastRow; else return; M->Remove(); M->Insert(Parent, Prev, NULL); if (IS_MENU(Parent)) SyncMenu((menu)Parent); else if (((obj_entry)Parent)->Parent) DrawAreaWidget((widget)Parent); } } static struct s_fn_row _FnRow = { row_magic, InsertRow, RemoveRow, DeleteRow, (void (*)(row, udat, uldat, uldat))NoOp, /* row */ &_FnObj, SetTextRow, SetTRuneRow, (void (*)(row))RaiseMenuItem, (void (*)(row))LowerMenuItem, }; byte FindInfo(menu Menu, dat i) { row Info; if (Menu && (Info = Menu->Info) && Info->Len > (udat)i) return ttrue; return tfalse; } /* menuitem */ static void InsertMenuItem(menuitem MenuItem, obj Parent, menuitem Prev, menuitem Next) { if (!MenuItem->Parent && Parent) { if (IS_MENU(Parent)) { InsertGeneric((obj_entry)MenuItem, (obj_list) & ((menu)Parent)->FirstI, (obj_entry)Prev, (obj_entry)Next, NULL); MenuItem->Parent = Parent; } else if (IS_WINDOW(Parent)) { InsertRow((row)MenuItem, (window)Parent, (row)Prev, (row)Next); } } } static void RemoveMenuItem(menuitem MenuItem) { if (MenuItem->Parent) { if (IS_MENU(MenuItem->Parent)) { RemoveGeneric((obj_entry)MenuItem, (obj_list) & ((menu)MenuItem->Parent)->FirstI, NULL); MenuItem->Parent = (obj)0; } else { RemoveRow((row)MenuItem); } } } static void DeleteMenuItem(menuitem MenuItem) { if (MenuItem) { obj Parent = MenuItem->Parent; MenuItem->Remove(); if (IS_MENU(Parent)) SyncMenu((menu)Parent); if (MenuItem->Window) MenuItem->Window->Delete(); DeleteRow((row)MenuItem); } } menuitem Create4MenuMenuItem(obj Parent, window Window, udat Code, byte Flags, ldat Len, const char *Name) { dat Left, ShortCut; if (!Parent) return (menuitem)0; if (IS_MENU(Parent) && ((menu)Parent)->LastI) Left = ((menu)Parent)->LastI->Left + ((menu)Parent)->LastI->Len; else Left = (dat)1; ShortCut = (dat)0; while (ShortCut < Len && Name[ShortCut] == ' ') ShortCut++; if (Window) Window->Left = Left; return New(menuitem)(Parent, Window, Code, Flags, Left, Len, ShortCut, Name); } /* this returns non-zero for compatibility */ static uldat Create4MenuCommonMenuItem(menu Menu) { if (Menu) { Menu->CommonItems = ttrue; SyncMenu(Menu); return (uldat)1; } return (uldat)0; } static struct s_fn_menuitem _FnMenuItem = { menuitem_magic, InsertMenuItem, RemoveMenuItem, DeleteMenuItem, (void (*)(menuitem, udat, uldat, uldat))NoOp, &_FnObj, SetTextRow, SetTRuneRow, RaiseMenuItem, LowerMenuItem, &_FnRow, Create4MenuMenuItem, Create4MenuCommonMenuItem, }; /* menu */ static void InsertMenu(menu Menu, msgport MsgPort, menu Prev, menu Next) { if (!Menu->MsgPort && MsgPort) { InsertGeneric((obj_entry)Menu, (obj_list)&MsgPort->FirstMenu, (obj_entry)Prev, (obj_entry)Next, NULL); Menu->MsgPort = MsgPort; } } static void RemoveMenu(menu Menu) { if (Menu->MsgPort) { RemoveGeneric((obj_entry)Menu, (obj_list)&Menu->MsgPort->FirstMenu, NULL); Menu->MsgPort = (msgport)0; } } static void DeleteMenu(menu Menu) { uldat count = 30; if (Menu) { msgport MsgPort = Menu->MsgPort; widget W, WNext; /* * warning: * the only way to get the list of windows that * are using this menu is to scan the whole MsgPort. * We must UnMap() all those windows * as a window without menu cannot be displayed. * * optimization: if we are going to UnMap() a lot of windows, * we set QueuedDrawArea2FullScreen = ttrue, so that the UnMap() * calls do not have to redraw every time. */ if (!QueuedDrawArea2FullScreen) { for (W = MsgPort->FirstW; W && count; W = WNext) { WNext = W->O_Next; if (IS_WINDOW(W) && ((window)W)->Menu == Menu) { if (W->Parent && IS_SCREEN(W->Parent)) { count--; } } } if (!count) QueuedDrawArea2FullScreen = ttrue; } for (W = MsgPort->FirstW; W; W = WNext) { WNext = W->O_Next; if (IS_WINDOW(W) && ((window)W)->Menu == Menu) { if (W->Parent && IS_SCREEN(W->Parent)) { W->UnMap(); ((window)W)->Menu = NULL; } } } Menu->Remove(); DeleteList(Menu->FirstI); if (Menu->Info) Menu->Info->Delete(); DeleteObj((obj)Menu); } } static row SetInfoMenu(menu Menu, byte Flags, ldat Len, const char *Text, const tcolor *ColText) { row Row; if ((Row = New(row)(0, Flags))) { if ((!Text || (Row->Text = CloneStr2TRune(Text, Len))) && (!ColText || (Row->ColText = (tcolor *)CloneMem(ColText, Len * sizeof(tcolor))))) { Row->Len = Row->MaxLen = Len; if (Menu->Info) Menu->Info->Delete(); return Menu->Info = Row; } Row->Delete(); Row = (row)0; } return Row; } static menuitem FindItem(menu Menu, dat i) { menuitem Item = (menuitem)0; if (Menu) { for (Item = Menu->FirstI; Item; Item = Item->Next) { if (i >= Item->Left && (uldat)(i - Item->Left) < Item->Len) break; } if (!Item && Menu->CommonItems && All->CommonMenu) { Item = Menu->LastI; if (!Item || (i >= Item->Left && (uldat)(i - Item->Left) >= Item->Len)) { /* search in All->CommonMenu */ if (Item) i -= Item->Left + (dat)Item->Len; for (Item = All->CommonMenu->FirstI; Item; Item = Item->Next) { if (i >= Item->Left && (uldat)(i - Item->Left) < Item->Len) break; } } else Item = (menuitem)0; } } return Item; } static menuitem GetSelectedItem(menu Menu) { if (Menu) { if (Menu->SelectI) return Menu->SelectI; if (Menu->CommonItems && All->CommonMenu) return All->CommonMenu->SelectI; } return (menuitem)0; } static menuitem RecursiveGetSelectedItem(menu Menu, dat *depth) { menuitem I = NULL, _I = Menu->GetSelectedItem(); window W = (window)0, FW = (window)All->FirstScreen->FocusW; dat d = -1; while (_I && IS_MENUITEM(_I)) { I = _I; d++; if (W == FW) break; if ((W = I->Window) && W->Parent) _I = (menuitem)W->FindRow(W->CurY); else break; } if (depth) *depth = d > 0 ? d : 0; return I; } static void SetSelectedItem(menu Menu, menuitem Item) { if (Menu) { if (Item) { if (Item->Parent == (obj)Menu) { Menu->SelectI = Item; if (Menu->CommonItems && All->CommonMenu) All->CommonMenu->SelectI = (menuitem)0; } else if (Menu->CommonItems && Item->Parent == (obj)All->CommonMenu) { Menu->SelectI = (menuitem)0; All->CommonMenu->SelectI = Item; } /* else Item is not a meaningful one! */ } else { Menu->SelectI = Item; if (Menu->CommonItems && All->CommonMenu) All->CommonMenu->SelectI = Item; } All->FirstScreen->DrawMenu(0, TW_MAXDAT); } } static struct s_fn_menu _FnMenu = { menu_magic, InsertMenu, RemoveMenu, DeleteMenu, (void (*)(menu, udat, uldat, uldat))NoOp, /* menu */ &_FnObj, SetInfoMenu, FindItem, GetSelectedItem, RecursiveGetSelectedItem, SetSelectedItem, }; /* msg */ static void InsertMsg(msg Msg, msgport Parent, msg Prev, msg Next) { if (!Msg->MsgPort && Parent) { /* if adding the first msg, move the msgport to the head * of msgport list, so that the scheduler will run it */ if (!Parent->FirstMsg && Parent->All) MoveFirst(MsgPort, All, Parent); InsertGeneric((obj_entry)Msg, (obj_list)&Parent->FirstMsg, (obj_entry)Prev, (obj_entry)Next, NULL); Msg->MsgPort = Parent; } } static void RemoveMsg(msg Msg) { if (Msg->MsgPort) { RemoveGeneric((obj_entry)Msg, (obj_list)&Msg->MsgPort->FirstMsg, NULL); Msg->MsgPort = NULL; } } static void DeleteMsg(msg Msg) { if (Msg) { Msg->Remove(); DeleteObj((obj)Msg); } } static struct s_fn_msg _FnMsg = { msg_magic, InsertMsg, RemoveMsg, DeleteMsg, (void (*)(msg, udat, uldat, uldat))NoOp, /* msg */ &_FnObj, }; /* msgport */ static void InsertMsgPort(msgport MsgPort, all Parent, msgport Prev, msgport Next) { if (!MsgPort->All && Parent) { InsertGeneric((obj_entry)MsgPort, (obj_list)&Parent->FirstMsgPort, (obj_entry)Prev, (obj_entry)Next, NULL); MsgPort->All = Parent; } } static void RemoveMsgPort(msgport MsgPort) { if (MsgPort->All) { if (All->RunMsgPort == MsgPort) All->RunMsgPort = MsgPort->Next; RemoveGeneric((obj_entry)MsgPort, (obj_list)&MsgPort->All->FirstMsgPort, NULL); MsgPort->All = (all)0; } } static void DeleteMsgPort(msgport MsgPort) { uldat count = 20; widget W; if (MsgPort) { /* * optimization: if we are going to UnMap() a lot of windows, * we set QueuedDrawArea2FullScreen = ttrue, so that the UnMap() * calls do not have to redraw every time. */ for (W = MsgPort->FirstW; W && count; W = W->O_Next) { if (IS_WINDOW(W) && W->Parent && IS_SCREEN(W->Parent)) { count--; } } if (!count) QueuedDrawArea2FullScreen = ttrue; if (MsgPort->ShutDownHook) MsgPort->ShutDownHook(MsgPort); /* * must delete the Menus first, as among widgets there are also * menuitem windows, which cannot be deleted before deleting * the corresponding menuitem. */ DeleteList(MsgPort->FirstMsg); DeleteList(MsgPort->FirstMenu); DeleteList(MsgPort->FirstW); DeleteList(MsgPort->FirstGroup); DeleteList(MsgPort->FirstMutex); MsgPort->Remove(); if (MsgPort->Name) FreeMem(MsgPort->Name); DeleteObj((obj)MsgPort); } } static struct s_fn_msgport _FnMsgPort = { msgport_magic, InsertMsgPort, RemoveMsgPort, DeleteMsgPort, (void (*)(msgport, udat, uldat, uldat))NoOp, /* msgport */ &_FnObj, }; /* mutex */ static void InsertMutex(mutex Mutex, all Parent, mutex Prev, mutex Next) { if (!Mutex->All && Parent) { InsertGeneric((obj_entry)Mutex, (obj_list)&Mutex->All->FirstMutex, (obj_entry)Prev, (obj_entry)Next, NULL); Mutex->All = Parent; } } static void RemoveMutex(mutex Mutex) { if (Mutex->All) { RemoveGeneric((obj_entry)Mutex, (obj_list)&Mutex->All->FirstMutex, NULL); Mutex->All = (all)0; } } static void DeleteMutex(mutex Mutex) { Mutex->DisOwn(); Mutex->Remove(); DeleteObj((obj)Mutex); } static void OwnMutex(mutex Mutex, msgport Parent) { if (!Mutex->Owner && Parent) { if ((Mutex->O_Prev = Parent->LastMutex)) Parent->LastMutex->O_Next = Mutex; else Parent->FirstMutex = Mutex; Mutex->O_Next = (mutex)0; Parent->LastMutex = Mutex; Mutex->Owner = Parent; } } static void DisOwnMutex(mutex Mutex) { msgport Parent; if ((Parent = Mutex->Owner)) { if (Mutex->O_Prev) Mutex->O_Prev->O_Next = Mutex->O_Next; else if (Parent->FirstMutex == Mutex) Parent->FirstMutex = Mutex->O_Next; if (Mutex->O_Next) Mutex->O_Next->O_Prev = Mutex->O_Prev; else if (Parent->LastMutex == Mutex) Parent->LastMutex = Mutex->O_Prev; Mutex->O_Prev = Mutex->O_Next = (mutex)0; Mutex->Owner = (msgport)0; } } static struct s_fn_mutex _FnMutex = { mutex_magic, InsertMutex, RemoveMutex, DeleteMutex, (void (*)(mutex, udat, uldat, uldat))NoOp, /* mutex */ &_FnObj, OwnMutex, DisOwnMutex, }; /* module */ static void InsertModule(module Module, all Parent, module Prev, module Next) { if (!Module->All && Parent) { InsertGeneric((obj_entry)Module, (obj_list)&Parent->FirstModule, (obj_entry)Prev, (obj_entry)Next, NULL); Module->All = Parent; } } static void RemoveModule(module Module) { if (Module->All) { RemoveGeneric((obj_entry)Module, (obj_list)&Module->All->FirstModule, NULL); Module->All = (all)0; } } static void DeleteModule(module Module) { if (!Module->Used) { Module->DlClose(); Module->Remove(); if (Module->Name) FreeMem(Module->Name); DeleteObj((obj)Module); } } static struct s_fn_module _FnModule = { module_magic, InsertModule, RemoveModule, DeleteModule, (void (*)(module, udat, uldat, uldat))NoOp, /* module */ &_FnObj, DlOpen, DlClose, }; /* display_hw */ static void InsertDisplayHW(display_hw DisplayHW, all Parent, display_hw Prev, display_hw Next) { if (!DisplayHW->All && Parent) { InsertGeneric((obj_entry)DisplayHW, (obj_list)&Parent->FirstDisplayHW, (obj_entry)Prev, (obj_entry)Next, NULL); DisplayHW->All = Parent; #if 0 /* * here we would call uninitialized DisplayHW routines like MoveToXY, * put this after DisplayHW->InitHW() */ if (All->FnHookDisplayHW) All->FnHookDisplayHW(All->HookDisplayHW); #endif } } static void RemoveDisplayHW(display_hw DisplayHW) { if (DisplayHW->All) { RemoveGeneric((obj_entry)DisplayHW, (obj_list)&DisplayHW->All->FirstDisplayHW, NULL); DisplayHW->All = (all)0; if (All->FnHookDisplayHW) All->FnHookDisplayHW(All->HookDisplayHW); } } static void DeleteDisplayHW(display_hw DisplayHW) { byte isCTTY = DisplayHW->DisplayIsCTTY && DisplayHW == DisplayHWCTTY; byte Quitted = DisplayHW->Quitted; if (!Quitted) DisplayHW->DoQuit(); /* avoid getting stale pointers */ if (All->MouseHW == DisplayHW) All->MouseHW = NULL; if (All->ExclusiveHW == DisplayHW) All->ExclusiveHW = NULL; DisplayHW->Remove(); if (DisplayHW->NameLen && DisplayHW->Name) FreeMem(DisplayHW->Name); DeleteObj((obj)DisplayHW); if (!Quitted) { if (!All->FirstDisplayHW || isCTTY) RunNoHW(tfalse); else if (All->FirstDisplayHW && ResizeDisplay()) { QueuedDrawArea2FullScreen = ttrue; } } } static struct s_fn_display_hw _FnDisplayHW = { display_hw_magic, InsertDisplayHW, RemoveDisplayHW, DeleteDisplayHW, (void (*)(display_hw, udat, uldat, uldat))NoOp, /* display_hw */ &_FnObj, InitDisplayHW, QuitDisplayHW, }; fn_struct FnStruct = { &_FnObj, &_FnWidget, &_FnGadget, &_FnWindow, &_FnScreen, &_FnGroup, &_FnRow, &_FnMenuItem, &_FnMenu, &_FnMsgPort, &_FnMutex, &_FnMsg, &_FnModule, &_FnDisplayHW, }; ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/methods.h�������������������������������������������������������������������������0000664�0000000�0000000�00000006212�13775351206�0015635�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_METHODS_H #define TWIN_METHODS_H #include "obj/fn.h" #include "obj/window.h" // tpos byte FindInfo(menu Menu, dat i); window FakeOpenTerm(const char *arg0, const char *const *argv); widget FakeKbdFocus(widget W); byte FakeWriteCharset(window Window, uldat Len, const char *charset_bytes); byte FakeWriteUtf8(window Window, uldat Len, const char *utf8_bytes); byte FakeWriteTRune(window Window, uldat Len, const trune *runes); byte FakeWriteTCell(window Window, dat x, dat y, uldat Len, const tcell *cells); tpos FakeFindBorderWindow(window W, dat u, dat v, byte Border, tcell *PtrAttr); #define Do(Command, obj_type) (Fn_##obj_type->Command) #define New(obj_type) s_##obj_type::Create #define SKIP_FIRST_ARG(arg, ...) (__VA_ARGS__) #define Act(Command, Obj) (Obj)->Command SKIP_FIRST_ARG #define DeleteList(First) \ do { \ while (First) { \ First->Delete(); \ } \ } while (0) #define InsertOnly(ObjName, Obj, Parent) (Obj)->Insert((Parent), NULL, NULL) #define InsertFirst(ObjName, Obj, Parent) (Obj)->Insert((Parent), NULL, (Parent)->First##ObjName) #define InsertMiddle(ObjName, Obj, Parent, ObjPrev, ObjNext) \ (Obj)->Insert((Parent), (ObjPrev), (ObjNext)) #define InsertLast(ObjName, Obj, Parent) (Obj)->Insert((Parent), (Parent)->Last##ObjName, NULL) #define MoveFirst(ObjName, Parent, Obj) ((Obj)->Remove(), InsertFirst(ObjName, Obj, Parent)) #define MoveLast(ObjName, Parent, Obj) ((Obj)->Remove(), InsertLast(ObjName, Obj, Parent)) #define SendMsg(MsgPort, WhichMsg) (InsertLast(Msg, WhichMsg, (MsgPort))) #define Info4Menu(Menu, Flags, Len, Text, ColText) (Menu)->SetInfo(Flags, Len, Text, ColText) #define Win4Menu(Menu) Do(Create4Menu, window)(Menu) #define Row4Menu(Window, Code, Flags, Len, Name) \ (row) Do(Create4Menu, menuitem)((obj)(Window), (window)0, (Code), (Flags), (Len), (Name)) #define Item4Menu(Menu, Window, Flags, Len, Name) \ Do(Create4Menu, menuitem)((obj)(Menu), (Window), (udat)0, (Flags), (Len), (Name)) #define Item4MenuCommon(Menu) Do(Create4MenuCommon, menuitem)(Menu) void *OverrideMth(void **where, void *OldMethod, void *NewMethod); #define OverrideMethod(obj_type, Command, ExpectedMethod, NewMethod) \ OverrideMth((void **)&(Fn_##obj_type->Command), (void *)ExpectedMethod, (void *)NewMethod) #endif /* TWIN_METHODS_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/missing.cpp�����������������������������������������������������������������������0000664�0000000�0000000�00000004152�13775351206�0016177�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * * Copyright (C) 2002 by Massimiliano Ghilardi * * 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. * */ #include <Tw/Twtypes.h> #ifndef TW_HAVE_GETENV char *Tw_missing_getenv(TW_CONST char *name) { return NULL; } #endif #ifndef TW_HAVE_MEMCMP int Tw_missing_memcmp(TW_CONST void *s1, TW_CONST void *s2, size_t n) { TW_CONST byte *b1, *b2; for (b1 = s1, b2 = s2; n; n--, b1++, b2++) { if (*b1 != *b2) return *b2 - *b1; } return 0; } #endif #ifndef TW_HAVE_STRDUP char *Tw_missing_strdup(TW_CONST char *s, void *(*missing_malloc)(size_t size)) { char *q; size_t len; if (s) { len = 1 + strlen(s); if ((q = missing_malloc(len))) memcpy(s, q, len); return q; } return NULL; } #endif #ifndef TW_HAVE_STRSPN size_t Tw_missing_strspn(TW_CONST char *s, TW_CONST char *accept) { size_t accept_len = strlen(accept); if (s) while (*s && memchr(accept, *s, accept_len)) s++; return s; } #endif #ifndef TW_HAVE_STRSTR TW_CONST char *Tw_missing_strstr(TW_CONST char *haystack, TW_CONST char *needle) { TW_CONST char *h; size_t needle_len; if (!haystack || !needle) return haystack; needle_len = strlen(needle); while (*haystack && (h = strchr(haystack, *needle))) { if (!memcmp(h, needle, needle_len)) return h; haystack = h + 1; } return NULL; } #endif int Tw_option_strcmp(TW_CONST char *s1, TW_CONST char *s2) { if (s1[0] == '-' && s1[1] == '-' && s1[2]) s1++; if (s2[0] == '-' && s2[1] == '-' && s2[2]) s2++; return strcmp(s1, s2); } int Tw_option_strncmp(TW_CONST char *s1, TW_CONST char *s2, size_t n) { if (n > 2 && s1[0] == '-' && s1[1] == '-' && s1[2]) n--, s1++; if (s2[0] == '-' && s2[1] == '-' && s2[2]) s2++; return strncmp(s1, s2, n); } enum { utf21_size = 0x110000, }; trune Tw_trune(tcell cell) { cell &= 0x001FFFFF; if (cell >= utf21_size) { cell -= utf21_size; } return cell; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0014572�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/all.cpp�����������������������������������������������������������������������0000664�0000000�0000000�00000002515�13775351206�0016051�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * all.cpp -- define server class s_all * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "obj/id.h" /* NOID */ #include "obj/all.h" #include "Tw/mouse.h" /* HOLD_* */ #include "Tutf/Tutf.h" /* Tutf_*_to_UTF_32[] */ static trune GtransUser[0x100]; static setup _SetUp = { (dat)1, /* MaxMouseSnap */ (udat)0x7, /* MinAllocSize */ (udat)0, /* Flags */ HOLD_LEFT, /* SelectionButton */ HOLD_MIDDLE, /* PasteButton */ (byte)3, (byte)2 /* DeltaXShade, DeltaYShade */ }; static selection _Selection = {{(tany)0, (tany)0}, (msgport)0, (display_hw)0, SEL_UTF8MAGIC, String(), ""}; all s_all::Init() { State = state_default; Selection = &_Selection; SetUp = &_SetUp; Gtranslations[VT100GR_MAP] = Tutf_VT100GR_to_UTF_32; Gtranslations[LATIN1_MAP] = NULL; /* it's the identity */ Gtranslations[IBMPC_MAP] = Tutf_CP437_to_UTF_32; Gtranslations[USER_MAP] = GtransUser; return this; }; static struct s_all _All; all const All = _All.Init(); �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/all.h�������������������������������������������������������������������������0000664�0000000�0000000�00000005125�13775351206�0015516�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * all.h -- declare server class s_all * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_ALL_H #define TWIN_ALL_H #include "obj/obj.h" #include "obj/event.h" /* MAX_MIMELEN */ #include "obj/window.h" /* BUTTON_MAX */ #include "tty.h" /* USER_MAP */ #include "stl_types.h" /* String */ struct s_setup { dat MaxMouseSnap; udat MinAllocSize; byte Flags; byte ButtonSelection, ButtonPaste; byte DeltaXShade, DeltaYShade; }; /* All->Setup->Flags */ enum e_setup_flag { setup_shadows = 0x01, setup_blink = 0x02, setup_cursor_always = 0x04, setup_menu_hide = 0x08, setup_menu_info = 0x10, setup_menu_relax = 0x20, setup_screen_scroll = 0x40, setup_terminals_utf8 = 0x80, }; enum { max_xshade = 9, max_yshade = 9, }; /* * values of All->State. * This order is hardcoded in methods.c:UnMapWindow(), * in resize.c:ExecScrollFocusWindow(), * in scroller.c:ScrollerH(), * do not change it! */ enum e_all_state { state_drag = 10, state_resize = 15, state_scroll = 16, state_gadget = 26, state_menu = 27, state_screen = 28, state_button_screen = 29, state_root = 30, state_default = 31, /* mask for all the above */ state_any = 0x1F, /* further All->State flags */ state_fl_bymouse = 0x40, }; typedef struct s_button_vec { trune shape[2]; sbyte pos; byte exists; byte changed; } button_vec; typedef struct s_selection { timevalue Time; msgport Owner; display_hw OwnerOnce; uldat Magic; String Data; char MIME[MAX_MIMELEN]; } selection; struct s_all : public s_obj { fn_obj Fn; obj Prev, Next, Parent; /* all */ screen FirstScreen, LastScreen; msgport FirstMsgPort, LastMsgPort, RunMsgPort; mutex FirstMutex, LastMutex; module FirstModule, LastModule; fn_hook FnHookModule; widget HookModule; display_hw FirstDisplayHW, LastDisplayHW, MouseHW, ExclusiveHW; fn_hook FnHookDisplayHW; widget HookDisplayHW; dat DisplayWidth, DisplayHeight; byte State; timevalue Now; selection *Selection; setup *SetUp; void (*AtQuit)(void); menu BuiltinMenu, CommonMenu; row BuiltinRow; uldat MouseMotionN; /* number of mapped windows wanting mouse motion events */ button_vec ButtonVec[BUTTON_MAX + 1]; /* +1 for window corner */ trune *Gtranslations[USER_MAP + 1]; all Init(); }; extern all const All; #endif /* TWIN_ALL_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/display_hw.cpp����������������������������������������������������������������0000664�0000000�0000000�00000002550�13775351206�0017443�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * display_hw.cpp -- define methods of server class s_display_hw * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "obj/all.h" // extern All #include "obj/display_hw.h" #include "alloc.h" // AllocMem0(), CloneStrL() #include "methods.h" // InsertLast() #include "twin.h" // NOSLOT #include <new> display_hw s_display_hw::Create(uldat namelen, const char *name) { display_hw d = NULL; if (name) { void *addr = AllocMem0(sizeof(s_display_hw)); if (addr) { d = new (addr) s_display_hw(); d->Fn = Fn_display_hw; if (!d->Init(namelen, name)) { d->Delete(); d = NULL; } } } return d; } display_hw s_display_hw::Init(uldat namelen, const char *name) { if (!name || !((obj)this)->Init()) { return NULL; } if (!(this->Name = CloneStrL(name, namelen))) { return NULL; } this->NameLen = namelen; this->Module = NULL; this->Quitted = ttrue; this->AttachSlot = NOSLOT; /* * ->Quitted will be set to tfalse only * after this->InitHW() has succeeded */ InsertLast(DisplayHW, this, ::All); return this; } ��������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/display_hw.h������������������������������������������������������������������0000664�0000000�0000000�00000015151�13775351206�0017111�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * module.h -- declare server class s_module * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_DISPLAY_HW_H #define TWIN_DISPLAY_HW_H #include "obj/fwd.h" #include "obj/event.h" // MAX_MIMELEN #include "obj/obj.h" #include "stl_types.h" struct s_fn_display_hw { uldat Magic; void (*Insert)(display_hw, all, display_hw Prev, display_hw Next); void (*Remove)(display_hw); void (*Delete)(display_hw); void (*ChangeField)(display_hw, udat field, uldat CLEARMask, uldat XORMask); /* display_hw */ fn_obj Fn_Obj; byte (*DoInit)(display_hw); void (*DoQuit)(display_hw); }; typedef struct s_mouse_state { dat x, y; dat delta_x, delta_y; byte keys; } mouse_state; struct s_display_hw : public s_obj { fn_display_hw Fn; display_hw Prev, Next; /* in the same All */ all All; /* display_hw */ uldat NameLen; char *Name; module Module; void *Private; /* used to store HW-specific data */ void (*FlushVideo)(void); void (*FlushHW)(void); void (*KeyboardEvent)(int fd, display_hw hw); void (*MouseEvent)(int fd, display_hw hw); void (*ShowMouse)(void); void (*HideMouse)(void); void (*UpdateMouseAndCursor)(void); /* just detect size */ void (*DetectSize)(dat *x, dat *y); /* check if size (x,y) is possible. if not, decrease (x,y) to the nearest possible size */ void (*CheckResize)(dat *x, dat *y); /* unconditionally resize to (x,y). it is guaranteed that CheckResize returned this (x,y) */ void (*Resize)(dat x, dat y); byte (*HWSelectionImport)(void); void (*HWSelectionExport)(void); void (*HWSelectionRequest)(obj Requestor, uldat ReqPrivate); void (*HWSelectionNotify)(uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], Chars Data); tany HWSelectionPrivate; byte (*CanDragArea)(dat Xstart, dat Ystart, dat Xend, dat Yend, dat DstXstart, dat DstYstart); void (*DragArea)(dat Xstart, dat Ystart, dat Xend, dat Yend, dat DstXstart, dat DstYstart); /* * if the display HW is capable of doing BLiTs (BLock image Transfers) under * certain conditions (tipically X11's XCopyArea()), set canDragArea to a * function that checks if the HW can do the BLiT with the given coordinates, * and set DragArea to a function that unconditionally does the BLiT * (it will very probably need to FlushVideo() first) */ void (*Beep)(void); void (*Configure)(udat resource, byte todefault, udat value); void (*ConfigureKeyboard)(udat resource, byte todefault, udat value); void (*ConfigureMouse)(udat resource, byte todefault, udat value); void (*SetPalette)(udat N, udat R, udat G, udat B); void (*ResetPalette)(void); void (*QuitHW)(void); void (*QuitKeyboard)(void); void (*QuitMouse)(void); void (*QuitVideo)(void); byte DisplayIsCTTY; /* set to ttrue if display is the controlling terminal */ byte Quitted; /* used internally: set to ttrue before InitHW() and after QuitHW() */ /* * various display HW flags: * * FlHWSoftMouse : set if display HW has to manually hide/show the mouse pointer * FlHWChangedMouseFlag : set after a mouse event that requires redrawing mouse pointer * FlHWNeedOldVideo : set if FlushVideo() is a bit expensive, and it's better to cache the * actual display contents in OldVideo[] and send only what effectively * changed, instead of all the dirty areas. * FlHWExpensiveFlushVideo : set if FlushVideo() is SO expensive that it's better to sleep * a little before flushing, hoping to receive more data in the meantime, * in order to merge the flush operations. * FlHWNoInput : set if the display HW should be used as view-only, ignoring all input * from it. */ byte FlagsHW; byte NeedHW; /* various runtime flags */ /* * set to ttrue if the display can actually resize itself (example: X11) * set to tfalse if it can only live with the externally set size (example: ttys) */ byte CanResize; /* * set to ttrue if the display was corrupted by some external event * example: hw_X11.c sets this when its window gets Expose events */ byte RedrawVideo; /* * the dirty area that needs to be redrawn. * * the upper layer (i.e. hw.c) automagically updates * ChangedVideoFlag and ChangedVideo[] to include this area * for your display. */ dat RedrawLeft, RedrawUp, RedrawRight, RedrawDown; uldat keyboard_slot, mouse_slot; mouse_state MouseState; dat X, Y; /* real display size, in character cells. */ dat usedX, usedY; /* used display size (i.e. ScreenWidth, ScreenHeight) */ dat Last_x, Last_y; /* position of last mouse event */ /* * if sending many small draw commands to the HW is more expensive * than sending fewer, bigger ones even considering you will also send * intermediate, clean areas, set merge_Threshold to a reasonable value * for merge: dirty areas less far than this will be considered as merged * by Threshold_isDirtyVideo(). * Anyway, it's up to your FlushVideo() to actually merge them. * * Otherwise, set this to zero. */ dat merge_Threshold; uldat AttachSlot; /* slot of client that told us to attach to this display */ dat XY[2]; /* hw-dependent cursor position */ uldat TT; /* hw-dependent cursor type */ static display_hw Create(uldat namelen, const char *name); display_hw Init(uldat namelen, const char *name); /* obj */ uldat Magic() const { return Fn->Magic; } void Insert(all a, display_hw prev, display_hw next) { Fn->Insert(this, a, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } /* display_hw */ byte DoInit() { return Fn->DoInit(this); } void DoQuit() { Fn->DoQuit(this); } }; /* DisplayHW->FlagsHW */ #define FlHWSoftMouse ((byte)0x01) #define FlHWChangedMouseFlag ((byte)0x02) #define FlHWNeedOldVideo ((byte)0x04) #define FlHWExpensiveFlushVideo ((byte)0x08) #define FlHWNoInput ((byte)0x10) /* DisplayHW->NeedHW */ #define NEEDFlushStdout ((byte)0x01) #define NEEDFlushHW ((byte)0x02) #define NEEDResizeDisplay ((byte)0x04) #define NEEDSelectionExport ((byte)0x08) #define NEEDPanicHW ((byte)0x10) #define NEEDPersistentSlot ((byte)0x20) #define NEEDFromPreviousFlushHW ((byte)0x40) #define NEEDBeepHW ((byte)0x80) #endif /* TWIN_DISPLAY_HW_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/event.h�����������������������������������������������������������������������0000664�0000000�0000000�00000013211�13775351206�0016062�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * menu.h -- declare server class s_menu * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_EVENT_H #define TWIN_EVENT_H #include "obj/fwd.h" #include <Tw/datatypes.h> enum e_msg { msg_key = 0, msg_mouse = 1, msg_map = 2, msg_control = 3, msg_display = 0x0FFF, msg_system_first = 0x1000, msg_widget_key = 0x1000, msg_widget_mouse = 0x1001, msg_widget_change = 0x1002, msg_widget_gadget = 0x1003, msg_menu_row = 0x1004, msg_selection = 0x1005, msg_selection_notify = 0x1006, msg_selection_request = 0x1007, msg_selection_clear = 0x1008, msg_user_first = 0x2000, msg_user_control = 0x2000, msg_user_control_reply = 0x2001, msg_user_clientmsg = 0x2100, }; /* * Notes about MsgType : * * 0x0000 ... 0x0FFF : Messages from Twin to the WM or another special task; * currently defined are: * msg_key use Msg->Event.EventKeyboard to get the event * msg_mouse use ...Event.EventMouse * msg_control use ...Event.EventControl * * msg_display use ...Event.EventDisplay * * 0x1000 ... 0x1FFF : Messages from the WM to a generick task * currently defined are: * msg_widget_key use ...EventKeyboard * msg_widget_mouse use ...EventMouse * msg_widget_change use ...EventWindow * msg_widget_gadget use ...EventGadget * msg_menu_row use ...EventMenu * msg_selection use ...EventSelection * msg_selection_notify use ...EventSelectionNotify * msg_selection_request use ...EventSelectionRequest * msg_selection_clear use ...EventCommon * If you don't want to get messages from gadgets or menuitem rows, * just set to 0 (zero) their Code. * * 0x2000 ... 0xFFFF : Messages from a generic task to another. * they are completely user-defined. As guideline, the following * are defined: * * msg_user_control use ...Event.EventControl */ typedef struct s_event_common { widget W; udat Code, pad; } event_common; typedef struct s_event_map { widget W; udat Code, pad; /* unused */ screen Screen; } event_map; typedef struct s_event_keyboard { widget W; udat Code, ShiftFlags, SeqLen; byte pad; char AsciiSeq[1]; /* AsciiSeq[SeqLen] == '\0' */ } event_keyboard; typedef struct s_event_mouse { widget W; udat Code, ShiftFlags; dat X, Y; } event_mouse; typedef struct s_event_control { widget W; udat Code, Len; dat X, Y; char Data[sizeof(uldat)]; /* [Len] bytes actually */ } event_control; /* some msg_control codes */ #define MSG_CONTROL_QUIT ((udat)0) #define MSG_CONTROL_RESTART ((udat)1) #define MSG_CONTROL_OPEN ((udat)2) #define MSG_CONTROL_DRAGNDROP ((udat)3) /* use for free-format messages between clients */ typedef struct s_event_clientmsg { widget W; udat Code, Format; uldat Len; union { byte b[sizeof(uldat)]; udat d[sizeof(uldat) / sizeof(udat)]; uldat l[1]; } Data; /* [Len] bytes actually */ } event_clientmsg; typedef struct s_event_display { widget W; /* not used here */ udat Code, Len; dat X, Y; void *Data; /* [Len] bytes actually */ } event_display; enum e_event_display_code { ev_dpy_DrawTCell = 0, ev_dpy_FlushHW = 1, ev_dpy_KeyboardEvent = 2, ev_dpy_MouseEvent = 3, ev_dpy_SetCursorType = 4, ev_dpy_MoveToXY = 5, ev_dpy_Resize = 6, ev_dpy_SelectionExport = 8, ev_dpy_DragArea = 9, ev_dpy_Beep = 10, ev_dpy_Configure = 11, ev_dpy_SetPalette = 12, ev_dpy_ResetPalette = 13, ev_dpy_Helper = 14, ev_dpy_RedrawVideo = 15, ev_dpy_Quit = 16, }; typedef struct s_event_widget event_widget; struct s_event_widget { widget W; udat Code, Flags; dat XWidth, YWidth; dat X, Y; }; /* some msg_widget_change codes */ #define MSG_WIDGET_RESIZE 0 #define MSG_WIDGET_EXPOSE 1 /* some msg_widget_change flags */ #define MSG_WIDGETFL_SHADED 1 typedef struct s_event_gadget event_gadget; struct s_event_gadget { widget W; udat Code, Flags; /* the Flags of the gadget */ }; typedef struct s_event_menu event_menu; struct s_event_menu { window W; udat Code, pad; menu Menu; row Row; }; typedef struct s_event_selection event_selection; struct s_event_selection { widget W; udat Code, pad; /* unused */ dat X, Y; }; #define MAX_MIMELEN 64 typedef struct s_event_selectionnotify event_selectionnotify; struct s_event_selectionnotify { widget W; udat Code, pad; /* unused */ uldat ReqPrivate; uldat Magic; char MIME[MAX_MIMELEN]; uldat Len; char Data[sizeof(uldat)]; /* Data[] is Len bytes actually */ }; /*SelectionNotify Magic*/ #define SEL_APPEND 0x00000000 #define SEL_UTF8MAGIC 0x55746638 /* UTF-8 */ #define SEL_FILEMAGIC 0x46696c65 #define SEL_URLMAGIC 0xAB1691BA #define SEL_DATAMAGIC 0xDA1AA1AD /* check MIME if you get this */ #define SEL_IDMAGIC 0x49644964 typedef struct s_event_selectionrequest event_selectionrequest; struct s_event_selectionrequest { widget W; udat Code, pad; /* unused */ obj Requestor; uldat ReqPrivate; }; typedef union event_any event_any; union event_any { event_common EventCommon; event_keyboard EventKeyboard; event_mouse EventMouse; event_control EventControl; event_clientmsg EventClientMsg; event_display EventDisplay; event_map EventMap; event_widget EventWidget; event_gadget EventGadget; event_menu EventMenu; event_selection EventSelection; event_selectionnotify EventSelectionNotify; event_selectionrequest EventSelectionRequest; }; #endif /* TWIN_EVENT_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/fn.h��������������������������������������������������������������������������0000664�0000000�0000000�00000002453�13775351206�0015352�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * fn.h -- declare server class s_fn * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_FN_H #define TWIN_FN_H #include "obj/fwd.h" /* in the same order as the #defines above ! */ struct s_fn_struct { fn_obj obj; fn_widget widget; fn_gadget gadget; fn_window window; fn_screen screen; fn_group group; fn_row row; fn_menuitem menuitem; fn_menu menu; fn_msgport msgport; fn_mutex mutex; fn_msg msg; fn_module module; fn_display_hw display_hw; fn_obj all; }; extern fn_struct FnStruct; #define Fn_obj (FnStruct.obj) #define Fn_widget (FnStruct.widget) #define Fn_gadget (FnStruct.gadget) #define Fn_window (FnStruct.window) #define Fn_screen (FnStruct.screen) #define Fn_group (FnStruct.group) #define Fn_row (FnStruct.row) #define Fn_menuitem (FnStruct.menuitem) #define Fn_menu (FnStruct.menu) #define Fn_msgport (FnStruct.msgport) #define Fn_mutex (FnStruct.mutex) #define Fn_msg (FnStruct.msg) #define Fn_module (FnStruct.module) #define Fn_display_hw (FnStruct.display_hw) #endif /* TWIN_FN_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/fwd.h�������������������������������������������������������������������������0000664�0000000�0000000�00000003345�13775351206�0015530�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * fwd.h -- forward declaration of server class s_obj and subclasses * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_FWD_H #define TWIN_FWD_H typedef struct s_draw_ctx draw_ctx; typedef struct s_obj_list *obj_list; typedef struct s_obj_entry *obj_entry; typedef struct s_ttydata ttydata; typedef struct s_remotedata remotedata; typedef struct s_obj *obj; typedef struct s_widget *widget; typedef struct s_gadget *gadget; typedef struct s_window *window; typedef struct s_screen *screen; typedef struct s_group *ggroup; typedef struct s_row *row; typedef struct s_menuitem *menuitem; typedef struct s_menu *menu; typedef struct s_msg *msg; typedef struct s_msgport *msgport; typedef struct s_mutex *mutex; typedef struct s_module *module; typedef struct s_display_hw *display_hw; typedef struct s_fn_obj *fn_obj; typedef struct s_fn_widget *fn_widget; typedef struct s_fn_gadget *fn_gadget; typedef struct s_fn_window *fn_window; typedef struct s_fn_screen *fn_screen; typedef struct s_fn_group *fn_group; typedef struct s_fn_row *fn_row; typedef struct s_fn_menuitem *fn_menuitem; typedef struct s_fn_menu *fn_menu; typedef struct s_fn_msg *fn_msg; typedef struct s_fn_msgport *fn_msgport; typedef struct s_fn_mutex *fn_mutex; typedef struct s_fn_module *fn_module; typedef struct s_fn_display_hw *fn_display_hw; typedef struct s_fn_struct fn_struct; typedef struct s_setup setup; typedef struct s_all *all; typedef void (*fn_hook)(widget); #endif /* TWIN_FWD_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/gadget.cpp��������������������������������������������������������������������0000664�0000000�0000000�00000005012�13775351206�0016527�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * gadget.cpp -- define methods of server class s_gadget * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "alloc.h" // AllocMem0(), CloneStr2TRune() #include "fn.h" // Fn_gadget #include "id.h" // AssignId() #include "menuitem.h" // COD_RESERVED #include "obj/gadget.h" #include <new> gadget s_gadget::Create(msgport owner, widget parent, dat xwidth, dat ywidth, const char *textnormal, uldat attr, uldat flags, udat code, tcolor coltext, tcolor coltextselect, tcolor coltextdisabled, tcolor coltextselectdisabled, dat left, dat up) { gadget g = NULL; if (owner) { void *addr = AllocMem0(sizeof(s_gadget)); if (addr) { g = new (addr) s_gadget(); g->Fn = Fn_gadget; if (!g->Init(owner, parent, xwidth, ywidth, textnormal, attr, flags, code, coltext, coltextselect, coltextdisabled, coltextselectdisabled, left, up)) { g->Delete(); g = NULL; } } } return g; } gadget s_gadget::Init(msgport owner, widget parent, dat xwidth, dat ywidth, const char *textnormal, uldat attr, uldat flags, udat code, tcolor coltext, tcolor coltextselect, tcolor coltextdisabled, tcolor coltextselectdisabled, dat left, dat up) { ldat Size; if (code >= COD_RESERVED || xwidth <= 0 || ywidth <= 0) { return NULL; } if (!((widget)this)->Init(owner, xwidth, ywidth, attr, flags, left, up, TCELL(coltext, ' '))) { return NULL; } this->ColText = coltext; this->ColSelect = coltextselect; this->ColDisabled = coltextdisabled; this->ColSelectDisabled = coltextselectdisabled; this->Code = code; // this->G_Prev = this->G_Next = NULL; // this->Group = NULL; if (G_USE(this, USETEXT)) { Size = (ldat)xwidth * ywidth; if (textnormal) this->USE.T.Text[0] = CloneStr2TRune(textnormal, Size); else { // this->USE.T.Text[0] = NULL; } // this->USE.T.Text[1] = this->USE.T.Text[2] = this->USE.T.Text[3] = NULL; // this->USE.T.Color[0] = this->USE.T.Color[1] = NULL; // this->USE.T.Color[2] = this->USE.T.Color[3] = NULL; } /* G->flags |= GADGETFL_TEXT_DEFCOL; */ if (parent) { this->Map(parent); } return this; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/gadget.h����������������������������������������������������������������������0000664�0000000�0000000�00000017575�13775351206�0016215�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * gadget.h -- declare server class s_gadget * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_GADGET_H #define TWIN_GADGET_H #include "obj/widget.h" struct s_gT { /* for GADGETFL_USETEXT gadgets */ trune *Text[4]; tcolor *Color[4]; }; struct s_fn_gadget { uldat Magic; void (*Insert)(gadget, widget Parent, widget Prev, widget Next); void (*Remove)(gadget); void (*Delete)(gadget); void (*ChangeField)(gadget, udat field, uldat CLEARMask, uldat XORMask); /* widget */ fn_obj Fn_Obj; void (*DrawSelf)(draw_ctx *D); widget (*FindWidgetAt)(gadget Parent, dat X, dat Y); gadget (*FindGadgetByCode)(gadget Parent, udat Code); void (*SetXY)(gadget, dat X, dat Y); void (*SetFill)(gadget, tcell Fill); widget (*Focus)(gadget); widget (*KbdFocus)(gadget); void (*Map)(gadget, widget Parent); void (*UnMap)(gadget); void (*MapTopReal)(gadget, screen); void (*Raise)(gadget); void (*Lower)(gadget); void (*Own)(gadget, msgport); void (*DisOwn)(gadget); void (*RecursiveDelete)(gadget, msgport); void (*Expose)(gadget, dat xwidth, dat ywidth, dat Left, dat Up, const char *, const trune *, const tcell *); byte (*InstallHook)(gadget, fn_hook, fn_hook *Where); void (*RemoveHook)(gadget, fn_hook, fn_hook *Where); /* gadget */ fn_widget Fn_Widget; gadget (*CreateEmptyButton)(msgport owner, dat xwidth, dat ywidth, tcolor BgCol); byte (*FillButton)(gadget g, widget Parent, udat Code, dat Left, dat Up, udat Flags, const char *Text, tcolor Color, tcolor ColorDisabled); gadget (*CreateButton)(widget Parent, dat xwidth, dat ywidth, const char *Text, uldat Flags, udat Code, tcolor BgCol, tcolor Col, tcolor ColDisabled, dat Left, dat Up); void (*WriteTexts)(gadget g, byte bitmap, dat xwidth, dat ywidth, const char *Text, dat Left, dat Up); void (*WriteTRunes)(gadget g, byte bitmap, dat xwidth, dat ywidth, const trune *TRune, dat Left, dat Up); }; struct s_gadget : public s_obj { fn_gadget Fn; widget Prev, Next; widget Parent; /* widget */ widget FirstW, LastW; /* list of children */ widget SelectW; /* selected child */ dat Left, Up, XWidth, YWidth; uldat Attr; uldat Flags; ldat XLogic, YLogic; widget O_Prev, O_Next; /* list in the same msgport (owner) */ msgport Owner; fn_hook ShutDownHook; /* hooks for this widget */ fn_hook Hook, *WhereHook; fn_hook MapUnMapHook; msg MapQueueMsg; tcell USE_Fill; union { struct s_gT T; struct s_wE E; } USE; /* gadget */ tcolor ColText, ColSelect, ColDisabled, ColSelectDisabled; udat Code; gadget G_Prev, G_Next; /* list in the same ggroup */ ggroup Group; static gadget Create(msgport owner, widget Parent, dat xwidth, dat ywidth, const char *TextNormal, uldat Attr, uldat Flags, udat Code, tcolor ColText, tcolor ColTextSelect, tcolor ColTextDisabled, tcolor ColTextSelectDisabled, dat Left, dat Up); gadget Init(msgport owner, widget Parent, dat xwidth, dat ywidth, const char *TextNormal, uldat Attr, uldat Flags, udat Code, tcolor ColText, tcolor ColTextSelect, tcolor ColTextDisabled, tcolor ColTextSelectDisabled, dat Left, dat Up); /* obj */ uldat Magic() const { return Fn->Magic; } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } /* widget */ void DrawSelf(draw_ctx *D) { Fn->DrawSelf(D); } widget FindWidgetAt(dat x, dat y) { return Fn->FindWidgetAt(this, x, y); } gadget FindGadgetByCode(udat code) { return Fn->FindGadgetByCode(this, code); } void SetXY(dat x, dat y) { Fn->SetXY(this, x, y); } void SetFill(tcell fill) { Fn->SetFill(this, fill); } widget Focus() { return Fn->Focus(this); } widget KbdFocus() { return Fn->KbdFocus(this); } void Map(widget parent) { Fn->Map(this, parent); } void UnMap() { Fn->UnMap(this); } void MapTopReal(screen scr) { Fn->MapTopReal(this, scr); } void Raise() { Fn->Raise(this); } void Lower() { Fn->Lower(this); } void Own(msgport port) { Fn->Own(this, port); } void DisOwn() { Fn->DisOwn(this); } void RecursiveDelete(msgport port) { Fn->RecursiveDelete(this, port); } void Expose(dat xwidth, dat ywidth, dat left, dat up, const char *ascii, const trune *runes, const tcell *cells) { Fn->Expose(this, xwidth, ywidth, left, up, ascii, runes, cells); } byte InstallHook(fn_hook hook, fn_hook *where) { return Fn->InstallHook(this, hook, where); } void RemoveHook(fn_hook hook, fn_hook *where) { Fn->RemoveHook(this, hook, where); } /* gadget */ byte FillButton(widget parent, udat code, dat left, dat up, udat flags, const char *text, tcolor color, tcolor colordisabled) { return Fn->FillButton(this, parent, code, left, up, flags, text, color, colordisabled); } gadget CreateEmptyButton(msgport owner, dat xwidth, dat ywidth, tcolor bgcol) { return Fn->CreateEmptyButton(owner, xwidth, ywidth, bgcol); } gadget CreateButton(widget parent, dat xwidth, dat ywidth, const char *text, uldat flags, udat code, tcolor bgcol, tcolor col, tcolor coldisabled, dat left, dat up) { return Fn->CreateButton(parent, xwidth, ywidth, text, flags, code, bgcol, col, coldisabled, left, up); } void WriteTexts(byte bitmap, dat xwidth, dat ywidth, const char *text, dat left, dat up) { Fn->WriteTexts(this, bitmap, xwidth, ywidth, text, left, up); } void WriteTRunes(byte bitmap, dat xwidth, dat ywidth, const trune *runes, dat left, dat up) { Fn->WriteTRunes(this, bitmap, xwidth, ywidth, runes, left, up); } }; /* Gadget->Attr */ typedef enum e_gadget_attr { GADGET_WANT_MOUSE_MOTION = WIDGET_WANT_MOUSE_MOTION, /* 0x0001 */ GADGET_WANT_KEYS = WIDGET_WANT_KEYS, /* 0x0002 */ GADGET_WANT_MOUSE = WIDGET_WANT_MOUSE, /* 0x0004 */ GADGET_WANT_CHANGES = WIDGET_WANT_CHANGES, /* 0x0008 */ GADGET_AUTO_FOCUS = WIDGET_AUTO_FOCUS, /* 0x0010 */ } gadget_attr; /* Gadget->Flags */ typedef enum e_gadget_flag { GADGETFL_USETEXT = 0x00, /* default */ GADGETFL_USEEXPOSE = WIDGETFL_USEEXPOSE, /* 0x02 */ GADGETFL_USEFILL = WIDGETFL_USEFILL, /* 0x03 */ GADGETFL_USEANY = WIDGETFL_USEANY, /* 0x07 */ /* remember this gadget is a button, so that SetText() does not ruin the shadow */ GADGETFL_BUTTON = 0x0010, GADGETFL_DISABLED = 0x0020, GADGETFL_TEXT_DEFCOL = 0x0040, /* this makes the gadget 'checkable' : can be in 'checked' or 'unchecked' state. * also necessary to put the gadget in a ggroup */ GADGETFL_TOGGLE = 0x0080, GADGETFL_PRESSED = 0x0100, GADGETFL_NOTVISIBLE = 0x8000, } gadget_flag; #define G_USE(g, USExxx) (((g)->Flags & GADGETFL_USEANY) == CAT(GADGETFL_, USExxx)) /* NOTE : * * the USE.T fields (Contents) of a gadget are used as follows: * Text[0]==TextNormal; (mandatory) * Text[1]==TextSelect; (if not present, use ...[0]) * Text[2]==TextDisabled; (if not present, use ...[0]) * Text[3]==TextSelectDisabled; (if not present, use ...[1]; if ...[1] not present too, use ...[0]) * * Color[0]==ColorNormal; (mandatory unless GADGET_USE_DEFCOL is set) * Color[1]==ColorSelect; (if not present, use ...[0]) * Color[2]==ColorDisabled; (if not present, use ...[0]) * Color[3]==ColorSelectDisabled;(if not present, use ...[1]; if ...[1] not present too, use ...[0]) * * If GADGET_USE_DEFCOL is set, * Color[0], [1], [2] and [3] are ignored. * */ #endif /* TWIN_GADGET_H */ �����������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/group.cpp���������������������������������������������������������������������0000664�0000000�0000000�00000002134�13775351206�0016432�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * group.cpp -- define methods of server class s_group * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "alloc.h" // AllocMem0() #include "fn.h" // Fn_group #include "id.h" // AssignId() #include "methods.h" // InsertLast() #include "obj/group.h" #include "obj/msgport.h" #include <new> ggroup s_group::Create(msgport owner) { ggroup g = NULL; if (owner) { void *addr = AllocMem0(sizeof(s_group)); if (addr) { g = new (addr) s_group(); g->Fn = Fn_group; if (!g->Init(owner)) { g->Delete(); g = NULL; } } } return g; } ggroup s_group::Init(msgport owner) { if (!owner || !((obj)this)->Init()) { return NULL; } // this->FirstG = this->LastG = this->SelectG = NULL; // this->MsgPort = NULL; InsertLast(Group, this, owner); return this; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/group.h�����������������������������������������������������������������������0000664�0000000�0000000�00000003431�13775351206�0016100�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * group.h -- declare server class s_group * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_GROUP_H #define TWIN_GROUP_H #include "obj/fwd.h" #include <Tw/datatypes.h> /* ggroup -- gadget group */ struct s_fn_group { uldat Magic; void (*Insert)(ggroup, msgport MsgPort, ggroup Prev, ggroup Next); void (*Remove)(ggroup); void (*Delete)(ggroup); void (*ChangeField)(ggroup, udat field, uldat CLEARMask, uldat XORMask); /* ggroup */ fn_obj Fn_Obj; /* backup of overloaded functions */ void (*InsertGadget)(ggroup, gadget); void (*RemoveGadget)(ggroup, gadget); gadget (*GetSelectedGadget)(ggroup); void (*SetSelectedGadget)(ggroup, gadget); }; struct s_group : public s_obj { fn_group Fn; ggroup Prev, Next; /* list in the same msgport */ msgport MsgPort; /* ggroup */ gadget FirstG, LastG; /* list in this ggroup */ gadget SelectG; static ggroup Create(msgport Parent); ggroup Init(msgport Parent); /* obj */ uldat Magic() const { return Fn->Magic; } void Insert(msgport owner, ggroup prev, ggroup next) { Fn->Insert(this, owner, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } /* group */ void InsertGadget(gadget g) { Fn->InsertGadget(this, g); } void RemoveGadget(gadget g) { Fn->RemoveGadget(this, g); } gadget GetSelectedGadget() { return Fn->GetSelectedGadget(this); } void SetSelectedGadget(gadget g) { Fn->SetSelectedGadget(this, g); } }; #endif /* TWIN_GROUP_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/id.cpp������������������������������������������������������������������������0000664�0000000�0000000�00000011425�13775351206�0015675�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * obj.cpp -- define methods of server class s_obj * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "obj/id.h" #include "obj/magic.h" #include "obj/obj.h" #include "algo.h" // Max2 #include "alloc.h" // Error(), ReAllocMem0() #include "twin.h" // NOSLOT #include <Tw/Tw_defs.h> // TW_BIGBUFF /* functions to manage Ids */ static obj *IdList[magic_n]; static uldat IdSize[magic_n], IdTop[magic_n], IdBottom[magic_n]; inline uldat IdListGrow(byte i) { uldat oldsize, size; obj *newIdList; oldsize = IdSize[i]; if (oldsize >= MAXID || i == obj_magic_id || i == all_magic_id) return NOSLOT; size = oldsize < TW_SMALLBUFF / 3 ? TW_SMALLBUFF / 2 : oldsize + (oldsize >> 1); if (size > MAXID) size = MAXID; if (!(newIdList = (obj *)ReAllocMem0(IdList[i], sizeof(obj) * oldsize, sizeof(obj) * size))) return NOSLOT; IdList[i] = newIdList; IdSize[i] = size; return oldsize; } inline void IdListShrink(byte i) { obj *newIdList; uldat size = Max2(TW_BIGBUFF, IdTop[i] << 1); if (size < IdSize[i] && (newIdList = (obj *)ReAllocMem0(IdList[i], sizeof(obj) * IdSize[i], sizeof(obj) * size))) { IdList[i] = newIdList; IdSize[i] = size; } } inline uldat IdListGet(byte i) { if (IdBottom[i] == IdSize[i]) return IdListGrow(i); return IdBottom[i]; } obj Id2Obj(byte i, uldat Id) { byte I = Id >> magic_shift; if (i < magic_n && I < magic_n) { /* everything is a valid (obj) */ /* gadgets, windows, screens are valid (widget) */ /* menuitems are valid (row) */ if (i == I || i == obj_magic_id || (i == widget_magic_id && (I == gadget_magic_id || I == window_magic_id || I == screen_magic_id)) || (i == row_magic_id && I == menuitem_magic_id)) { Id &= MAXID; if (Id < IdTop[I]) return IdList[I][Id]; } } return (obj)0; } inline byte _AssignId(byte i, obj o) { uldat Id, j; if ((Id = IdListGet(i)) != NOSLOT) { o->Id = Id | ((uldat)i << magic_shift); IdList[i][Id] = o; if (IdTop[i] <= Id) IdTop[i] = Id + 1; for (j = IdBottom[i] + 1; j < IdTop[i]; j++) if (!IdList[i][j]) break; IdBottom[i] = j; return ttrue; } Error(NOTABLES); return tfalse; } inline void _DropId(byte i, obj o) { uldat Id = o->Id & MAXID, j; if (Id < IdTop[i] && IdList[i][Id] == o /* paranoia */) { o->Id = NOID; IdList[i][Id] = (obj)0; if (IdBottom[i] > Id) IdBottom[i] = Id; for (j = IdTop[i] - 1; j > IdBottom[i]; j--) if (IdList[i][j]) break; IdTop[i] = (j == IdBottom[i]) ? j : j + 1; if (IdSize[i] > (IdTop[i] << 4) && IdSize[i] > TW_BIGBUFF) IdListShrink(i); } } byte AssignId(const fn_obj Fn_Obj, obj o) { byte i; if (o) switch (Fn_Obj->Magic) { case obj_magic: /* 'obj' is an abstract type, you can't create one */ break; case row_magic: case module_magic: case display_hw_magic: case msg_magic: /* * We don't use Ids for rows and msgs as we expect to create *lots* of them. * Remote access to module and display_hw is unsafe too, * so no Ids for them too. */ o->Id = Fn_Obj->Magic; return ttrue; case widget_magic: case gadget_magic: case window_magic: case screen_magic: case ggroup_magic: case menuitem_magic: case menu_magic: case msgport_magic: case mutex_magic: i = Fn_Obj->Magic >> magic_shift; return _AssignId(i, o); default: break; } return tfalse; } void DropId(obj o) { obj_entry e = (obj_entry)o; byte i = 0; if (o && e->Fn) switch (e->Fn->Magic) { case obj_magic: /* 'obj' is just a template type, you can't create one */ break; case row_magic: case module_magic: case display_hw_magic: case msg_magic: /* we don't use Ids for rows and msgs as we expect to create *lots* of them */ /* it's unsafe to allow modules access remotely, so no Ids for them too */ o->Id = NOID; break; case widget_magic: case gadget_magic: case window_magic: case screen_magic: case ggroup_magic: case menuitem_magic: case menu_magic: case msgport_magic: case mutex_magic: i = e->Fn->Magic >> magic_shift; if (i == (o->Id >> magic_shift)) _DropId(i, o); break; default: break; } } static obj IdList_all[1]; byte AssignId_all(all a) { byte i = all_magic_id; if (!IdList[i]) { IdList[i] = IdList_all; IdSize[i] = 1; return _AssignId(i, (obj)a); } return tfalse; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/id.h��������������������������������������������������������������������������0000664�0000000�0000000�00000001260�13775351206�0015336�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * obj.h -- declare server class s_obj * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_ID_H #define TWIN_ID_H #include "obj/fwd.h" #include <Tw/datatypes.h> /* IDs */ enum { NOID = 0, BADID = uldat(-1), MAXID = uldat(0x0FFFFFFFul), }; byte AssignId(const fn_obj Fn_Obj, obj Obj); byte AssignId_all(all Obj); void DropId(obj Obj); obj Id2Obj(byte i, uldat Id); #endif /* TWIN_ID_H */ ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/magic.h�����������������������������������������������������������������������0000664�0000000�0000000�00000004666�13775351206�0016037�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * magic.h -- define magic constants * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_MAGIC_H #define TWIN_MAGIC_H #define magic_mask ((uldat)0xF0000000ul) #define magic_shift 28 enum e_magic_id { obj_magic_id = 0, widget_magic_id = 1, gadget_magic_id = 2, window_magic_id = 3, screen_magic_id = 4, ggroup_magic_id = 5, row_magic_id = 6, menuitem_magic_id = 7, menu_magic_id = 8, msgport_magic_id = 9, msg_magic_id = 0xA, mutex_magic_id = 0xB, module_magic_id = 0xC, display_hw_magic_id = 0xE, all_magic_id = 0xF, }; /* * These must have consecutive values, but obj_magic_STR can be changed * as long as it has the same value as obj_magic_CHR. * To avoid troubles with strlen(), you should not use '\0' or "\0" * for any of the values below. */ #define base_magic_CHR '\x30' #define obj_magic_STR "\x30" #define widget_magic_STR "\x31" #define gadget_magic_STR "\x32" #define window_magic_STR "\x33" #define screen_magic_STR "\x34" #define ggroup_magic_STR "\x35" #define row_magic_STR "\x36" #define menuitem_magic_STR "\x37" #define menu_magic_STR "\x38" #define msgport_magic_STR "\x39" #define msg_magic_STR "\x3A" #define mutex_magic_STR "\x3B" #define module_magic_STR "\x3C" #define display_hw_magic_STR "\x3E" #define all_magic_STR "\x3F" enum e_magic { obj_magic = 0x0DEAD0B1ul, widget_magic = 0x161D9743ul, gadget_magic = 0x29867551ul, window_magic = 0x31357531ul, screen_magic = 0x42659871ul, ggroup_magic = 0x5741F326ul, row_magic = 0x68074FFAul, menuitem_magic = 0x7ABC8FDEul, menu_magic = 0x8BAD0BEDul, msgport_magic = 0x90981437ul, /* * B I G F A T WARNING: * * msg_magic is the magic number for user-created (tmsg) structures, * while MSG_MAGIC (defined in socklist_m4.h) is the serial number reserved by * libtw to receive server messages (which are still (tmsg) structures). */ msg_magic = 0xA3A61CE4ul, /* this must match tmsg_magic in include/Tw/Tw_defs.h */ mutex_magic = 0xB0FADED0ul, module_magic = 0xCB0F1278ul, display_hw_magic = 0xEDBCC609ul, all_magic = 0xFA11FA11ul, }; enum { magic_n = 16, /* max top hex digit of the above ones + 1 */ }; #endif /* TWIN_MAGIC_H */ ��������������������������������������������������������������������������twin-0.9.0/server/obj/menu.cpp����������������������������������������������������������������������0000664�0000000�0000000�00000003463�13775351206�0016250�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * menu.cpp -- define methods of server class s_menu * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "alloc.h" // AllocMem0() #include "fn.h" // Fn_menu #include "id.h" // AssignId() #include "methods.h" // InsertLast() #include "obj/menu.h" #include "obj/msgport.h" #include <new> menu s_menu::Create(msgport owner, tcolor colitem, tcolor colselect, tcolor coldisabled, tcolor colselectdisabled, tcolor colshtcut, tcolor colselshtcut, byte flagdefcolinfo) { menu m = NULL; if (owner) { void *addr = AllocMem0(sizeof(s_menu)); if (addr) { m = new (addr) s_menu(); m->Fn = Fn_menu; if (!m->Init(owner, colitem, colselect, coldisabled, colselectdisabled, colshtcut, colselshtcut, flagdefcolinfo)) { m->Delete(); m = NULL; } } } return m; } menu s_menu::Init(msgport owner, tcolor colitem, tcolor colselect, tcolor coldisabled, tcolor colselectdisabled, tcolor colshtcut, tcolor colselshtcut, byte flagdefcolinfo) { if (!owner || !((obj)this)->Init()) { return NULL; } this->ColItem = colitem; this->ColSelect = colselect; this->ColDisabled = coldisabled; this->ColSelectDisabled = colselectdisabled; this->ColShtCut = colshtcut; this->ColSelShtCut = colselshtcut; // this->FirstI = this->LastI = this->SelectI = NULL; this->CommonItems = tfalse; this->FlagDefColInfo = flagdefcolinfo; // this->Info = NULL; InsertLast(Menu, this, owner); return this; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/menu.h������������������������������������������������������������������������0000664�0000000�0000000�00000004533�13775351206�0015714�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * menu.h -- declare server class s_menu * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_MENU_H #define TWIN_MENU_H #include "obj/obj.h" struct s_fn_menu { uldat Magic; void (*Insert)(menu, msgport, menu Prev, menu Next); void (*Remove)(menu); void (*Delete)(menu); void (*ChangeField)(menu, udat field, uldat CLEARMask, uldat XORMask); /* menu */ fn_obj Fn_Obj; row (*SetInfo)(menu, byte Flags, ldat Len, const char *Text, const tcolor *ColText); menuitem (*FindItem)(menu, dat i); menuitem (*GetSelectedItem)(menu); menuitem (*RecursiveGetSelectedItem)(menu, dat *depth); void (*SetSelectedItem)(menu, menuitem); }; struct s_menu : public s_obj { fn_menu Fn; menu Prev, Next; /* in the same msgport */ msgport MsgPort; /* menu */ tcolor ColItem, ColSelect, ColDisabled, ColSelectDisabled, ColShtCut, ColSelShtCut; byte CommonItems; byte FlagDefColInfo; row Info; menuitem FirstI, LastI, SelectI; static menu Create(msgport port, tcolor colitem, tcolor colselect, tcolor coldisabled, tcolor colselectdisabled, tcolor colshtcut, tcolor colselshtcut, byte flagdefcolinfo); menu Init(msgport port, tcolor colitem, tcolor colselect, tcolor coldisabled, tcolor colselectdisabled, tcolor colshtcut, tcolor colselshtcut, byte flagdefcolinfo); /* obj */ uldat Magic() const { return Fn->Magic; } void Insert(msgport owner, menu prev, menu next) { Fn->Insert(this, owner, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } /* menu */ row SetInfo(byte flags, ldat len, const char *text, const tcolor *coltext) { return Fn->SetInfo(this, flags, len, text, coltext); } menuitem FindItem(dat i) { return Fn->FindItem(this, i); } menuitem GetSelectedItem() { return Fn->GetSelectedItem(this); } menuitem RecursiveGetSelectedItem(dat *depth) { return Fn->RecursiveGetSelectedItem(this, depth); } void SetSelectedItem(menuitem item) { Fn->SetSelectedItem(this, item); } }; #endif /* TWIN_MENU_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/menuitem.cpp������������������������������������������������������������������0000664�0000000�0000000�00000004337�13775351206�0017130�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * row.cpp -- define methods of server class s_row * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "algo.h" // Max2() #include "alloc.h" // AllocMem0(), CloneStr2TRune() #include "fn.h" // Fn_menuitem #include "id.h" // AssignId() #include "obj/menuitem.h" #include "resize.h" // SyncMenu() #include "twin.h" // IS_WINDOW() #include <new> #include <Tw/datasizes.h> // TW_MAXLDAT menuitem s_menuitem::Create(obj parent, window w, udat code, byte flags, dat left, ldat len, dat shortcut, const char *name) { menuitem item = NULL; if (parent && (IS_MENU(parent) || (IS_WINDOW(parent) && W_USE((window)parent, USEROWS))) && (!w || IS_WINDOW(w)) && name) { void *addr = AllocMem0(sizeof(s_menuitem)); if (addr) { item = new (addr) s_menuitem(); item->Fn = Fn_menuitem; if (!item->Init(parent, w, code, flags, left, len, shortcut, name)) { item->Delete(); item = NULL; } } } return item; } menuitem s_menuitem::Init(obj parent, window w, udat code, byte flags, dat left, ldat len, dat shortcut, const char *name) { if (parent && (IS_MENU(parent) || (IS_WINDOW(parent) && W_USE((window)parent, USEROWS))) && (!w || IS_WINDOW(w)) && name && (this->Text = CloneStr2TRune(name, len)) && ((row)this)->Init(code, flags)) { this->Len = len; this->Window = w; this->Left = left; this->ShortCut = shortcut; this->WCurY = TW_MAXLDAT; if (w) w->MenuItem = this; if (IS_WINDOW(parent)) { w = (window)parent; if ((ldat)w->XWidth < (len = Max2((ldat)10, len + (ldat)2))) w->XWidth = len; if ((ldat)w->YWidth < (len = Min2(TW_MAXDAT, w->HLogic + (ldat)3))) w->YWidth = len; this->Insert((obj)w, (menuitem)w->USE.R.LastRow, NULL); } else { this->Insert(parent, ((menu)parent)->LastI, NULL); SyncMenu((menu)parent); } return this; } return NULL; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/menuitem.h��������������������������������������������������������������������0000664�0000000�0000000�00000004356�13775351206�0016576�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * menuitem.h -- declare server class s_menuitem * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_MENUITEM_H #define TWIN_MENUITEM_H #include "obj/row.h" struct s_fn_menuitem { uldat Magic; void (*Insert)(menuitem, obj, menuitem Prev, menuitem Next); void (*Remove)(menuitem); void (*Delete)(menuitem); void (*ChangeField)(menuitem, udat field, uldat CLEARMask, uldat XORMask); /* row */ fn_obj Fn_Obj; byte (*SetText)(row, uldat Len, const char *Text, byte DefaultCol); byte (*SetTRune)(row, uldat Len, const trune *TRune, byte DefaultCol); /* menuitem */ void (*Raise)(menuitem); void (*Lower)(menuitem); fn_row Fn_Row; menuitem (*Create4Menu)(obj Parent, window Window, udat Code, byte Flags, ldat Len, const char *Name); uldat (*Create4MenuCommon)(menu); /* for compatibility this must return a non-zero value. */ }; struct s_menuitem : public s_obj { fn_menuitem Fn; menuitem Prev, Next; obj Parent; /* row */ udat Code; byte Flags; uldat Len, MaxLen; uldat Gap, LenGap; trune *Text; tcolor *ColText; /* menuitem */ window Window; dat Left, ShortCut; ldat WCurY; static menuitem Create(obj Parent, window Window, udat Code, byte Flags, dat Left, ldat Len, dat ShortCut, const char *Name); menuitem Init(obj Parent, window Window, udat Code, byte Flags, dat Left, ldat Len, dat ShortCut, const char *Name); /* obj */ uldat Magic() const { return Fn->Magic; } void Insert(obj parent, menuitem prev, menuitem next) { Fn->Insert(this, parent, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } }; /* Some common menuitem codes: */ #define COD_CANCEL 0xF700 #define COD_OK 0xF701 #define COD_HELP 0xF702 #define COD_OPEN 0xF703 #define COD_DELETE 0xF704 #define COD_NEW 0xF705 /* don't use codes above or equal to this one! */ #define COD_RESERVED 0xF800 #endif /* TWIN_MENUITEM_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/module.cpp��������������������������������������������������������������������0000664�0000000�0000000�00000002251�13775351206�0016563�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * module.cpp -- define methods of server class s_module * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "obj/all.h" // extern All #include "obj/module.h" #include "alloc.h" // CloneStrL() #include "methods.h" // InsertLast() #include <new> module s_module::Create(uldat namelen, const char *name) { module m = NULL; if (name) { void *addr = AllocMem0(sizeof(s_module)); if (addr) { m = new (addr) s_module(); m->Fn = Fn_module; if (!m->Init(namelen, name)) { m->Delete(); m = NULL; } } } return m; } module s_module::Init(uldat namelen, const char *name) { if (!name || !((obj)this)->Init()) { return NULL; } if (!(this->Name = CloneStrL(name, namelen))) { return NULL; } this->NameLen = namelen; this->Used = 0; // this->Handle = NULL; // this->DoInit = NULL; InsertLast(Module, this, ::All); return this; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/module.h����������������������������������������������������������������������0000664�0000000�0000000�00000002730�13775351206�0016232�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * module.h -- declare server class s_module * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_MODULE_H #define TWIN_MODULE_H #include "obj/fwd.h" #include "obj/obj.h" #include <Tw/datatypes.h> /* module */ struct s_fn_module { uldat Magic; void (*Insert)(module, all, module Prev, module Next); void (*Remove)(module); void (*Delete)(module); void (*ChangeField)(module, udat field, uldat CLEARMask, uldat XORMask); /* module */ fn_obj Fn_Obj; byte (*DlOpen)(module); void (*DlClose)(module); }; struct s_module : public s_obj { fn_module Fn; module Prev, Next; /* in the same All */ all All; /* module */ uldat NameLen, Used; char *Name; void *Handle; byte (*DoInit)(void); static module Create(uldat namelen, const char *name); module Init(uldat namelen, const char *name); /* obj */ uldat Magic() const { return Fn->Magic; } void Insert(all a, module prev, module next) { Fn->Insert(this, a, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } /* module */ byte DlOpen() { return Fn->DlOpen(this); } void DlClose() { Fn->DlClose(this); } }; #endif /* TWIN_MODULE_H */ ����������������������������������������twin-0.9.0/server/obj/msg.cpp�����������������������������������������������������������������������0000664�0000000�0000000�00000004332�13775351206�0016066�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * msg.cpp -- define methods of server class s_msg * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "alloc.h" // AllocMem() #include "fn.h" // Fn_msg #include "obj/id.h" // AssignId() #include "obj/msg.h" #define Delta ((size_t) & (((msg)0)->Event)) msg s_msg::Create(udat type, udat eventlen) { msg m; switch (type) { case msg_map: eventlen += sizeof(event_map); break; case msg_display: eventlen += sizeof(event_display); break; case msg_key: case msg_widget_key: eventlen += sizeof(event_keyboard); break; case msg_widget_mouse: case msg_mouse: eventlen += sizeof(event_mouse); break; case msg_widget_change: eventlen += sizeof(event_widget); break; case msg_widget_gadget: eventlen += sizeof(event_gadget); break; case msg_menu_row: eventlen += sizeof(event_menu); break; case msg_selection: eventlen += sizeof(event_selection); break; case msg_selection_notify: eventlen += sizeof(event_selectionnotify) - sizeof(uldat); break; case msg_selection_request: eventlen += sizeof(event_selectionrequest); break; case msg_control: case msg_user_control: eventlen += sizeof(event_control) - sizeof(uldat); break; case msg_user_clientmsg: eventlen += sizeof(event_clientmsg) - sizeof(uldat); break; case msg_selection_clear: eventlen += sizeof(event_common); break; default: printk("twin: CreateMsg(): internal error: unknown Msg->Type 0x%04x(%d)\n", (int)type, (int)type); return NULL; } if ((m = (msg)AllocMem0(eventlen + Delta))) { m->Fn = Fn_msg; if (!m->Init(type, eventlen)) { m->Delete(); m = NULL; } } return m; } #undef Delta msg s_msg::Init(udat type, udat eventlen) { if (AssignId((fn_obj)Fn, (obj)this)) { // this->Prev = this->Next = NULL; // this->MsgPort = NULL; this->Type = type; this->Len = eventlen; return this; } return NULL; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/msg.h�������������������������������������������������������������������������0000664�0000000�0000000�00000002416�13775351206�0015534�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * msg.h -- declare server class s_msg * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_MSG_H #define TWIN_MSG_H #include "obj/event.h" #include "obj/fwd.h" #include "obj/obj.h" #include "printk.h" #include <Tw/datatypes.h> struct s_fn_msg { uldat Magic; void (*Insert)(msg, msgport, msg Prev, msg Next); void (*Remove)(msg); void (*Delete)(msg); void (*ChangeField)(msg, udat field, uldat CLEARMask, uldat XORMask); /* msg */ fn_obj Fn_Obj; }; struct s_msg : public s_obj { fn_msg Fn; msg Prev, Next; msgport MsgPort; /* msg */ udat Type; /* See note above */ udat Len; /* length of Event */ event_any Event; static msg Create(udat type, udat eventlen); msg Init(udat type, udat eventlen); /* obj */ uldat Magic() const { return Fn->Magic; } void Insert(msgport port, msg prev, msg next) { Fn->Insert(this, port, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } }; #endif /* TWIN_MSG_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/msgport.cpp�������������������������������������������������������������������0000664�0000000�0000000�00000004350�13775351206�0016773�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * msgport.cpp -- define methods of server class s_msgport * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "obj/msgport.h" #include "alloc.h" // AllocMem0(), CloneStrL() #include "methods.h" // InsertMiddle() #include "obj/all.h" // extern All #include "util.h" // SumTime() #include "twin.h" // NOFD, NOPID, NOSLOT #include <new> msgport s_msgport::Create(byte namelen, const char *name, tany pausesec, tany pausefraction, byte wakeup, void (*handler)(msgport)) { msgport p = NULL; if (name) { void *addr = AllocMem0(sizeof(s_msgport)); if (addr) { p = new (addr) s_msgport(); p->Fn = Fn_msgport; if (!p->Init(namelen, name, pausesec, pausefraction, wakeup, handler)) { p->Delete(); p = NULL; } } } return p; } msgport s_msgport::Init(byte namelen, const char *name, tany pausesec, tany pausefraction, byte wakeup, void (*handler)(msgport)) { if (!handler || !((obj)this)->Init()) { return NULL; } if (name && !(this->Name = CloneStrL(name, namelen))) { return NULL; } this->WakeUp = wakeup; this->NameLen = namelen; this->Handler = handler; // this->ShutDownHook = (void (*)(msgport))0; this->PauseDuration.Seconds = pausesec; this->PauseDuration.Fraction = pausefraction; (void)SumTime(&this->CallTime, &::All->Now, &this->PauseDuration); this->RemoteData.Fd = NOFD; this->RemoteData.ChildPid = NOPID; this->RemoteData.FdSlot = NOSLOT; /* this->FirstMsg = this->LastMsg = NULL; this->FirstMenu = this->LastMenu = NULL; this->FirstW = this->LastW = NULL; this->FirstGroup = this->LastGroup = NULL; this->FirstMutex = this->LastMutex = NULL; this->CountE = this->SizeE = (uldat)0; this->Es = NULL; this->AttachHW = NULL; */ InsertMiddle(MsgPort, this, ::All, WakeUp ? (msgport)0 : ::All->LastMsgPort, WakeUp ? ::All->FirstMsgPort : (msgport)0); SortMsgPortByCallTime(this); return this; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/msgport.h���������������������������������������������������������������������0000664�0000000�0000000�00000004175�13775351206�0016445�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * msg.h -- declare server class s_msg * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_MSGPORT_H #define TWIN_MSGPORT_H #include "obj/fwd.h" #include "obj/window.h" // struct s_remotedata #include <Tw/datatypes.h> struct s_fn_msgport { uldat Magic; void (*Insert)(msgport, all, msgport Prev, msgport Next); void (*Remove)(msgport); void (*Delete)(msgport); void (*ChangeField)(msgport, udat field, uldat CLEARMask, uldat XORMask); /* msgport */ fn_obj Fn_Obj; }; struct s_msgport : public s_obj { fn_msgport Fn; msgport Prev, Next; /* list in the same All */ all All; /* msgport */ byte WakeUp, NameLen; char *Name; /* Note : a MsgPort is always woken up if it has pending messages. */ void (*Handler)(msgport); void (*ShutDownHook)(msgport); timevalue CallTime, PauseDuration; remotedata RemoteData; msg FirstMsg, LastMsg; menu FirstMenu, LastMenu; /* menus created by this MsgPort */ widget FirstW, LastW; /* widgets owned by this MsgPort */ ggroup FirstGroup, LastGroup; /* groups owned by this MsgPort */ mutex FirstMutex, LastMutex; /* mutexes owned by this MsgPort */ display_hw AttachHW; /* that was attached as told by MsgPort */ static msgport Create(byte NameLen, const char *Name, tany PauseSec, tany PauseFraction, byte WakeUp, void (*Handler)(msgport)); msgport Init(byte NameLen, const char *Name, tany PauseSec, tany PauseFraction, byte WakeUp, void (*Handler)(msgport)); /* obj */ uldat Magic() const { return Fn->Magic; } void Insert(all a, msgport prev, msgport next) { Fn->Insert(this, a, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } /* msgport */ }; /* MsgPort->WakeUp: */ #define TIMER_ALWAYS ((byte)1) #define TIMER_ONCE ((byte)2) #endif /* TWIN_MSGPORT_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/mutex.cpp���������������������������������������������������������������������0000664�0000000�0000000�00000003232�13775351206�0016440�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * row.cpp -- define methods of server class s_row * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "alloc.h" // AllocMem0() #include "obj/all.h" // extern All #include "obj/mutex.h" #include "methods.h" // Act(), InsertLast() #include <new> #include <string.h> // memcmp() mutex s_mutex::Create(msgport owner, byte namelen, const char *name, byte perm) { byte mask = PERM_WRITE; mutex curr, x = NULL, old = NULL; if (!perm || !owner) return x; curr = ::All->FirstMutex; while (curr && mask) { if (namelen == curr->NameLen && !memcmp(name, curr->Name, namelen)) { if (curr->Owner == owner) { old = curr; continue; } mask &= curr->Perm & PERM_WRITE ? PERM_NONE : curr->Perm & PERM_READ ? PERM_READ : ~(byte)0; } curr = curr->Next; } if (mask >= perm) { if (old) { old->Perm = perm; x = old; } else { void *addr = AllocMem0(sizeof(s_mutex)); if (addr) { x = new (addr) s_mutex(); x->Fn = Fn_mutex; if (!x->Init(owner, namelen, name, perm)) { x->Delete(); x = NULL; } } } } return x; } mutex s_mutex::Init(msgport owner, byte namelen, const char *name, byte perm) { if (!((obj)this)->Init()) { return NULL; } this->Perm = perm; InsertLast(Mutex, this, ::All); // this->Owner = NULL; this->Own(owner); return this; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/mutex.h�����������������������������������������������������������������������0000664�0000000�0000000�00000003065�13775351206�0016111�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * mutex.h -- declare server class s_mutex * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_MUTEX_H #define TWIN_MUTEX_H #include "obj/obj.h" struct s_fn_mutex { uldat Magic; void (*Insert)(mutex, all, mutex Prev, mutex Next); void (*Remove)(mutex); void (*Delete)(mutex); void (*ChangeField)(mutex, udat field, uldat CLEARMask, uldat XORMask); /* mutex */ fn_obj Fn_Obj; void (*Own)(mutex, msgport); void (*DisOwn)(mutex); }; struct s_mutex : public s_obj { fn_mutex Fn; mutex Prev, Next; /* in the same All */ all All; /* mutex */ mutex O_Prev, O_Next; /* owned by the same MsgPort */ msgport Owner; byte Perm, NameLen; char *Name; static mutex Create(msgport owner, byte namelen, const char *name, byte perm); mutex Init(msgport owner, byte namelen, const char *name, byte perm); /* obj */ uldat Magic() const { return Fn->Magic; } void Insert(all a, mutex prev, mutex next) { Fn->Insert(this, a, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } /* mutex */ void Own(msgport owner) { Fn->Own(this, owner); } void DisOwn() { Fn->DisOwn(this); } }; #define PERM_NONE ((byte)0) #define PERM_READ ((byte)1) #define PERM_WRITE ((byte)2) #endif /* TWIN_MUTEX_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/obj.cpp�����������������������������������������������������������������������0000664�0000000�0000000�00000002076�13775351206�0016055�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * obj.cpp -- define methods of server class s_obj * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "alloc.h" // AllocMem0() #include "fn.h" // Fn_obj #include "id.h" // AssignId() #include "obj/obj.h" #include <new> obj s_obj::Create() { obj o = NULL; void *addr = AllocMem0(sizeof(s_obj)); if (addr) { o = new (addr) s_obj(); obj_entry e = (obj_entry)o; e->Fn = Fn_obj; if (!o->Init()) { o->Delete(); o = NULL; } } return o; } obj s_obj::Init() { if (AssignId(((obj_entry)this)->Fn, this)) { return this; } return NULL; } void s_obj::Delete() { ((obj_entry)this)->Fn->Delete(this); } void s_obj::ChangeField(udat field, uldat clear_mask, uldat xor_mask) { ((obj_entry)this)->Fn->ChangeField(this, field, clear_mask, xor_mask); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/obj.h�������������������������������������������������������������������������0000664�0000000�0000000�00000003147�13775351206�0015522�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * obj.h -- declare server class s_obj * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_OBJ_H #define TWIN_OBJ_H #include "twautoconf.h" /* for TW_HAVE_* macros */ #include "compiler.h" #include "obj/fwd.h" #include "obj/id.h" #include <Tw/datatypes.h> typedef struct s_obj *obj; typedef struct s_fn_obj *fn_obj; typedef struct s_obj_entry *obj_entry; typedef struct s_obj_list *obj_list; struct s_fn_obj { uldat Magic; void (*Insert)(obj self, obj parent, obj prev, obj next); void (*Remove)(obj self); void (*Delete)(obj self); void (*ChangeField)(obj self, udat field, uldat clear_mask, uldat xor_mask); }; struct s_obj { protected: s_obj() { } virtual ~s_obj() { } public: uldat Id; // fn_obj Fn; static obj Create(); obj Init(); #if 0 uldat Magic() const { return ((const s_obj_entry *)this)->Fn->Magic; } void Insert(obj parent, obj prev, obj next) { ((obj_entry)this)->Fn->Insert(this, parent, prev, next); } void Remove() { ((obj_entry)this)->Fn->Remove(this); } #endif // 0 void Delete(); void ChangeField(udat field, uldat clear_mask, uldat xor_mask); }; inline uldat Obj2Id(obj o) { return o ? o->Id : NOID; } struct s_obj_entry : public s_obj { fn_obj Fn; obj_entry Prev, Next, Parent; }; struct s_obj_list { obj_entry First, Last; }; #endif /* TWIN_OBJ_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/row.cpp�����������������������������������������������������������������������0000664�0000000�0000000�00000002235�13775351206�0016107�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * row.cpp -- define methods of server class s_row * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "alloc.h" // AllocMem0() #include "fn.h" // Fn_row #include "id.h" // AssignId() #include "obj/menuitem.h" // COD_RESERVED #include "obj/row.h" #include <new> row s_row::Create(udat code, byte flags) { row r = NULL; if (code < COD_RESERVED) { void *addr = AllocMem0(sizeof(s_row)); if (addr) { r = new (addr) s_row(); r->Fn = Fn_row; if (!r->Init(code, flags)) { r->Delete(); r = NULL; } } } return r; } row s_row::Init(udat code, byte flags) { if (code < COD_RESERVED && ((obj)this)->Init()) { this->Code = code; this->Flags = flags; // this->Gap = this->LenGap = this->Len = this->MaxLen = 0; // this->Text = NULL; // this->ColText = NULL; return this; } return NULL; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/row.h�������������������������������������������������������������������������0000664�0000000�0000000�00000003542�13775351206�0015556�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * group.h -- declare server class s_group * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_ROW_H #define TWIN_ROW_H #include "obj/obj.h" /* row */ struct s_fn_row { uldat Magic; void (*Insert)(row, window, row prev, row next); void (*Remove)(row); void (*Delete)(row); void (*ChangeField)(row, udat field, uldat clearmask, uldat xormask); /* row */ fn_obj Fn_Obj; byte (*SetText)(row, uldat len, const char *text, byte defaultcol); byte (*SetTRune)(row, uldat len, const trune *runes, byte defaultcol); void (*Raise)(row); void (*Lower)(row); }; struct s_row : public s_obj { fn_row Fn; row Prev, Next; window Window; /* row */ udat Code; byte Flags; uldat Len, MaxLen; uldat Gap, LenGap; trune *Text; tcolor *ColText; static row Create(udat code, byte flags); row Init(udat code, byte flags); /* obj */ uldat Magic() const { return Fn->Magic; } void Insert(window w, row prev, row next) { Fn->Insert(this, w, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } /* row */ byte SetText(uldat len, const char *text, byte defaultcol) { return Fn->SetText(this, len, text, defaultcol); } byte SetTRune(uldat len, const trune *runes, byte defaultcol) { return Fn->SetTRune(this, len, runes, defaultcol); } void Raise() { Fn->Raise(this); } void Lower() { Fn->Lower(this); } }; /*Flags : */ #define ROW_INACTIVE ((byte)0x00) #define ROW_ACTIVE ((byte)0x01) #define ROW_IGNORE ((byte)0x02) #define ROW_DEFCOL ((byte)0x04) #endif /* TWIN_ROW_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/screen.cpp��������������������������������������������������������������������0000664�0000000�0000000�00000003326�13775351206�0016561�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * screen.cpp -- define methods of server class s_widget * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "alloc.h" // AllocMem0(), AllocMem(), CloneStrL(), CopyMem() #include "builtin.h" // Builtin_MsgPort #include "fn.h" // Fn_screen #include "obj/screen.h" #include <new> #include <Tw/datasizes.h> // TW_MAXDAT screen s_screen::Create(dat namelen, const char *name, dat bgwidth, dat bgheight, const tcell *bg) { screen S = NULL; if (bgwidth && bgheight) { void *addr = AllocMem0(sizeof(s_screen)); if (addr) { S = new (addr) s_screen(); S->Fn = Fn_screen; if (!S->Init(namelen, name, bgwidth, bgheight, bg)) { S->Delete(); S = NULL; } } } return S; } screen s_screen::Init(dat namelen, const char *name, dat bgwidth, dat bgheight, const tcell *bg) { size_t size = (size_t)bgwidth * bgheight * sizeof(tcell); if (!size || !((widget)this) ->Init(Builtin_MsgPort, TW_MAXDAT, TW_MAXDAT, 0, SCREENFL_USEBG, 0, 0, bg[0])) { return NULL; } if (name && !(this->Name = CloneStrL(name, namelen))) { return NULL; } if (!(this->USE.B.Bg = (tcell *)AllocMem(size))) { return NULL; } this->NameLen = namelen; // this->MenuWindow = this->ClickWindow = NULL; // this->HookW = NULL; // this->FnHookW = NULL; this->USE.B.BgWidth = bgwidth; this->USE.B.BgHeight = bgheight; CopyMem(bg, this->USE.B.Bg, size); this->All = NULL; return this; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/screen.h����������������������������������������������������������������������0000664�0000000�0000000�00000012740�13775351206�0016226�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * window.h -- declare server class s_window * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_SCREEN_H #define TWIN_SCREEN_H #include "obj/widget.h" struct s_sB { /* for SCREENFL_USEBG screens */ dat BgWidth, BgHeight; tcell *Bg; }; struct s_fn_screen { uldat Magic; void (*Insert)(screen, all, screen Prev, screen Next); void (*Remove)(screen); void (*Delete)(screen); void (*ChangeField)(screen, udat field, uldat CLEARMask, uldat XORMask); /* widget */ fn_obj Fn_Obj; void (*DrawSelf)(draw_ctx *D); widget (*FindWidgetAt)(screen Parent, dat X, dat Y); gadget (*FindGadgetByCode)(screen Parent, udat Code); void (*SetXY)(screen, dat X, dat Y); void (*SetFill)(screen, tcell Fill); widget (*Focus)(screen); widget (*KbdFocus)(screen); void (*Map)(screen, widget Parent); void (*UnMap)(screen); void (*MapTopReal)(screen, screen); void (*Raise)(screen); void (*Lower)(screen); void (*Own)(screen, msgport); void (*DisOwn)(screen); void (*RecursiveDelete)(screen, msgport); void (*Expose)(screen, dat XWidth, dat YWidth, dat Left, dat Up, const char *, const trune *, const tcell *); byte (*InstallHook)(screen, fn_hook, fn_hook *Where); void (*RemoveHook)(screen, fn_hook, fn_hook *Where); /* screen */ fn_widget Fn_Widget; menu (*FindMenu)(screen); screen (*Find)(dat j); screen (*CreateSimple)(dat NameLen, const char *Name, tcell Bg); void (*BgImage)(screen, dat BgWidth, dat BgHeight, const tcell *Bg); void (*DrawMenu)(screen, dat Xstart, dat Xend); void (*ActivateMenu)(screen, menuitem, byte ByMouse); void (*DeActivateMenu)(screen); }; struct s_screen : public s_obj { fn_screen Fn; screen Prev, Next; /* list in the same All */ widget dummyParent; /* NULL */ /* widget */ widget FirstW, LastW; /* list of children */ widget FocusW; /* same as SelectW : focused child */ dat dummyLeft, YLimit, dummyXWidth, dummyYWidth; uldat Attr; uldat Flags; ldat XLogic, YLogic; widget O_Prev, O_Next; /* list with the same msgport (owner) */ msgport Owner; fn_hook ShutDownHook; /* hooks for this widget */ fn_hook Hook, *WhereHook; fn_hook MapUnMapHook; msg MapQueueMsg; tcell USE_Fill; union { struct s_sB B; struct s_wE E; } USE; /* screen */ dat NameLen; char *Name; window MenuWindow, ClickWindow; all All; fn_hook FnHookW; /* allow hooks on children Map()/UnMap() inside this widget */ widget HookW; static screen Create(dat NameLen, const char *Name, dat BgWidth, dat BgHeight, const tcell *Bg); screen Init(dat NameLen, const char *Name, dat BgWidth, dat BgHeight, const tcell *Bg); /* obj */ uldat Magic() const { return Fn->Magic; } void Insert(all a, screen prev, screen next) { Fn->Insert(this, a, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } /* widget */ void DrawSelf(draw_ctx *D) { Fn->DrawSelf(D); } widget FindWidgetAt(dat x, dat y) { return Fn->FindWidgetAt(this, x, y); } gadget FindGadgetByCode(udat code) { return Fn->FindGadgetByCode(this, code); } void SetXY(dat x, dat y) { Fn->SetXY(this, x, y); } void SetFill(tcell fill) { Fn->SetFill(this, fill); } widget Focus() { return Fn->Focus(this); } widget KbdFocus() { return Fn->KbdFocus(this); } void Map(widget parent) { Fn->Map(this, parent); } void UnMap() { Fn->UnMap(this); } void MapTopReal(screen scr) { Fn->MapTopReal(this, scr); } void Raise() { Fn->Raise(this); } void Lower() { Fn->Lower(this); } void Own(msgport port) { Fn->Own(this, port); } void DisOwn() { Fn->DisOwn(this); } void RecursiveDelete(msgport port) { Fn->RecursiveDelete(this, port); } void Expose(dat xwidth, dat ywidth, dat left, dat up, const char *ascii, const trune *runes, const tcell *cells) { Fn->Expose(this, xwidth, ywidth, left, up, ascii, runes, cells); } byte InstallHook(fn_hook hook, fn_hook *where) { return Fn->InstallHook(this, hook, where); } void RemoveHook(fn_hook hook, fn_hook *where) { Fn->RemoveHook(this, hook, where); } /* screen */ menu FindMenu() { return Fn->FindMenu(this); } screen Find(dat j) { return Fn->Find(j); } screen CreateSimple(dat namelen, const char *name, tcell bg) { return Fn->CreateSimple(namelen, name, bg); } void BgImage(dat bgwidth, dat bgheight, const tcell *bg) { Fn->BgImage(this, bgwidth, bgheight, bg); } void DrawMenu(dat xstart, dat xend) { Fn->DrawMenu(this, xstart, xend); } void ActivateMenu(menuitem item, byte bymouse) { Fn->ActivateMenu(this, item, bymouse); } void DeActivateMenu() { Fn->DeActivateMenu(this); } }; /* Screen->Attr */ /* not used */ /* Screen->Flags */ #define SCREENFL_USEBG 0x00 /* it's the default */ #define SCREENFL_USEEXPOSE WIDGETFL_USEEXPOSE /* 0x02 */ #define SCREENFL_USEFILL WIDGETFL_USEFILL /* 0x03 */ #define SCREENFL_USEANY WIDGETFL_USEANY /* 0x07 */ #define S_USE(s, USExxx) (((s)->Flags & SCREENFL_USEANY) == CAT(SCREENFL_, USExxx)) #define SCREENFL_BACK_SELECT 0x0010 #define SCREENFL_BACK_PRESSED 0x0020 #define SCREENFL_NOTVISIBLE 0x8000 #endif /* TWIN_SCREEN_H */ ��������������������������������twin-0.9.0/server/obj/widget.cpp��������������������������������������������������������������������0000664�0000000�0000000�00000002654�13775351206�0016570�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * widget.cpp -- define methods of server class s_widget * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "obj/widget.h" #include "alloc.h" // AllocMem0() #include "fn.h" // Fn_widget #include "id.h" // AssignId() #include <new> #include <string.h> // memset() widget s_widget::Create(msgport owner, dat xwidth, dat ywidth, uldat attr, uldat flags, dat left, dat up, tcell fill) { widget w = NULL; if (owner) { void *addr = AllocMem0(sizeof(s_widget)); if (addr) { w = new (addr) s_widget(); w->Fn = Fn_widget; if (!w->Init(owner, xwidth, ywidth, attr, flags, left, up, fill)) { w->Delete(); w = NULL; } } } return w; } widget s_widget::Init(msgport owner, dat xwidth, dat ywidth, uldat attr, uldat flags, dat left, dat up, tcell fill) { if (owner && ((obj)this)->Init()) { Left = left; Up = up; XWidth = xwidth; YWidth = ywidth; Attr = attr; Flags = flags; USE_Fill = fill; /* if (w_USE(this, USEEXPOSE)) memset(&USE.E, '\0', sizeof(USE.E)); */ Own(owner); return this; } return NULL; } ������������������������������������������������������������������������������������twin-0.9.0/server/obj/widget.h����������������������������������������������������������������������0000664�0000000�0000000�00000012612�13775351206�0016230�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * widget.h -- declare server class s_widget * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_WIDGET_H #define TWIN_WIDGET_H #include "obj/obj.h" /* WIDGET_USEEXPOSE USE.E.Flags: */ #define WIDGET_USEEXPOSE_TEXT 1 #define WIDGET_USEEXPOSE_TRUNE 2 #define WIDGET_USEEXPOSE_TCELL 4 /* Widget->Attr */ typedef enum e_widget_attr { /* * ask the server to send events even for mouse motion without any pressed button. * works only if WIDGET_WANT_MOUSE is set too. */ WIDGET_WANT_MOUSE_MOTION = 0x0001, WIDGET_WANT_KEYS = 0x0002, WIDGET_WANT_MOUSE = 0x0004, WIDGET_WANT_CHANGES = 0x0008, WIDGET_AUTO_FOCUS = 0x0010, } widget_attr; /* Widget->Flags */ typedef enum e_widget_flag { WIDGETFL_USEEXPOSE = 0x02, WIDGETFL_USEFILL = 0x03, WIDGETFL_USEANY = 0x07, /* mask of all above ones */ WIDGETFL_NOTVISIBLE = 0x8000, } widget_flag; #define w_USE(w, USExxx) (((w)->Flags & WIDGETFL_USEANY) == CAT(WIDGETFL_, USExxx)) struct s_wE { /* for WIDGET_USEEXPOSE widgets */ union { const char *Text; const trune *TRune; const tcell *TCell; } E; dat Flags, Pitch; ldat X1, Y1, X2, Y2; }; struct s_draw_ctx { draw_ctx *Next; screen Screen; widget TopW; widget W; widget OnlyW; ldat Left, Up, Rgt, Dwn; /* widget corners position on Screen */ ldat X1, Y1, X2, Y2; /* screen area to draw */ dat DWidth; dat DHeight; byte NoChildren; byte BorderDone; byte Shaded; }; struct s_fn_widget { uldat Magic; void (*Insert)(widget self, widget parent, widget Prev, widget Next); void (*Remove)(widget self); void (*Delete)(widget self); void (*ChangeField)(widget self, udat field, uldat CLEARMask, uldat XORMask); /* widget */ fn_obj Fn_Obj; /* backup of overloaded functions */ void (*DrawSelf)(draw_ctx *d); widget (*FindWidgetAt)(widget self, dat x, dat y); gadget (*FindGadgetByCode)(widget self, udat code); void (*SetXY)(widget self, dat x, dat y); void (*SetFill)(widget self, tcell fill); widget (*Focus)(widget self); widget (*KbdFocus)(widget self); void (*Map)(widget self, widget parent); void (*UnMap)(widget self); void (*MapTopReal)(widget self, screen scr); void (*Raise)(widget self); void (*Lower)(widget self); void (*Own)(widget self, msgport port); void (*DisOwn)(widget self); void (*RecursiveDelete)(widget self, msgport port); void (*Expose)(widget self, dat xwidth, dat ywidth, dat left, dat up, dat pitch, const char *, const trune *, const tcell *); byte (*InstallHook)(widget, fn_hook, fn_hook *where); void (*RemoveHook)(widget, fn_hook, fn_hook *where); }; struct s_widget : public s_obj { fn_widget Fn; widget Prev, Next; /* list in the same parent */ widget Parent; /* where this widget sits */ /* widget */ widget FirstW, LastW; /* list of children */ widget SelectW; /* selected child */ dat Left, Up, XWidth, YWidth; uldat Attr; uldat Flags; ldat XLogic, YLogic; widget O_Prev, O_Next; /* list with the same msgport (owner) */ msgport Owner; fn_hook ShutDownHook; /* hooks for this widget */ fn_hook Hook, *WhereHook; fn_hook MapUnMapHook; msg MapQueueMsg; tcell USE_Fill; union { struct s_wE E; } USE; /* obj */ uldat Magic() const { return Fn->Magic; } static widget Create(msgport Owner, dat XWidth, dat YWidth, uldat Attr, uldat Flags, dat Left, dat Up, tcell USE_Fill); widget Init(msgport Owner, dat XWidth, dat YWidth, uldat Attr, uldat Flags, dat Left, dat Up, tcell USE_Fill); void Insert(widget parent, widget prev, widget next) { Fn->Insert(this, parent, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } void ChangeField(udat field, uldat clear_mask, uldat xor_mask) { Fn->ChangeField(this, field, clear_mask, xor_mask); } /* widget */ void DrawSelf(draw_ctx *D) { Fn->DrawSelf(D); } widget FindWidgetAt(dat x, dat y) { return Fn->FindWidgetAt(this, x, y); } gadget FindGadgetByCode(udat code) { return Fn->FindGadgetByCode(this, code); } void SetXY(dat x, dat y) { Fn->SetXY(this, x, y); } void SetFill(tcell fill) { Fn->SetFill(this, fill); } widget Focus() { return Fn->Focus(this); } widget KbdFocus() { return Fn->KbdFocus(this); } void Map(widget parent) { Fn->Map(this, parent); } void UnMap() { Fn->UnMap(this); } void MapTopReal(screen scr) { Fn->MapTopReal(this, scr); } void Raise() { Fn->Raise(this); } void Lower() { Fn->Lower(this); } void Own(msgport port) { Fn->Own(this, port); } void DisOwn() { Fn->DisOwn(this); } void RecursiveDelete(msgport port) { Fn->RecursiveDelete(this, port); } void Expose(dat xwidth, dat ywidth, dat left, dat up, dat pitch, const char *ascii, const trune *runes, const tcell *cells) { Fn->Expose(this, xwidth, ywidth, left, up, pitch, ascii, runes, cells); } byte InstallHook(fn_hook hook, fn_hook *where) { return Fn->InstallHook(this, hook, where); } void RemoveHook(fn_hook hook, fn_hook *where) { Fn->RemoveHook(this, hook, where); } }; #endif /* TWIN_WIDGET_H */ ����������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/window.cpp��������������������������������������������������������������������0000664�0000000�0000000�00000013107�13775351206�0016607�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * widget.cpp -- define methods of server class s_window * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "obj/window.h" #include "algo.h" // Max2() #include "alloc.h" // AllocMem0(), CloneStrL() #include "data.h" // DEFAULT_Col* #include "fn.h" // Fn_window #include "id.h" // AssignId() #include "twin.h" // NOFD, NOPID, NOSLOT #include <new> #include <string.h> // memset() #include <Tutf/Tutf.h> // Tutf_CP437_to_UTF_32[] static byte InitTtyData(window w, dat scrollbacklines); window s_window::Create(msgport owner, dat titlelen, const char *title, const tcolor *coltitle, menu m, tcolor coltext, uldat cursortype, uldat attr, uldat flags, dat xwidth, dat ywidth, dat scrollbacklines) { window w = NULL; if (owner) { void *addr = AllocMem0(sizeof(s_window)); if (addr) { w = new (addr) s_window(); w->Fn = Fn_window; if (!w->Init(owner, titlelen, title, coltitle, m, coltext, cursortype, attr, flags, xwidth, ywidth, scrollbacklines)) { w->Delete(); w = NULL; } } } return w; } window s_window::Init(msgport owner, dat titlelen, const char *title, const tcolor *coltitle, menu m, tcolor coltext, uldat cursortype, uldat attr, uldat flags, dat xwidth, dat ywidth, dat scrollbacklines) { byte hasborder = 2 * !(flags & WINDOWFL_BORDERLESS); /* overflow safety */ if (hasborder) { if ((dat)(xwidth + hasborder) > 0) xwidth += hasborder; if ((dat)(ywidth + hasborder) > 0) ywidth += hasborder; } if (!((widget)this) ->Init(owner, xwidth, ywidth, attr, flags, 0, TW_MAXDAT, TCELL(coltext, ' '))) { return NULL; } if (title && !(Name = CloneStrL(title, titlelen))) { return NULL; } if (coltitle && !(ColName = (tcolor *)CloneMem(coltitle, titlelen * sizeof(tcolor)))) { return NULL; } Menu = m; // MenuItem = NULL; NameLen = titlelen; // BorderPattern[0] = BorderPattern[1] = NULL; RemoteData.Fd = NOFD; RemoteData.ChildPid = NOPID; RemoteData.FdSlot = NOSLOT; // CurX = CurY = 0; // XstSel = YstSel = XendSel = YendSel = 0; ColGadgets = DEFAULT_ColGadgets; ColArrows = DEFAULT_ColArrows; ColBars = DEFAULT_ColBars; ColTabs = DEFAULT_ColTabs; ColBorder = DEFAULT_ColBorder; ColText = coltext; ColSelect = TCOL(TCOLBG(coltext), TCOLFG(coltext)); ColDisabled = DEFAULT_ColDisabled; ColSelectDisabled = DEFAULT_ColSelectDisabled; /* sanity: */ if (Flags & WINDOWFL_BORDERLESS) Attr &= ~WINDOW_ROLLED_UP; if (Attr & WINDOW_WANT_KEYS) Attr &= ~WINDOW_AUTO_KEYS; // State = (uldat)0; CursorType = cursortype; MinXWidth = MIN_XWIN; MinYWidth = MIN_YWIN; XWidth = xwidth = Max2(MIN_XWIN, xwidth); YWidth = ywidth = Max2(MIN_YWIN, ywidth); MaxXWidth = TW_MAXDAT; MaxYWidth = TW_MAXDAT; Charset = Tutf_CP437_to_UTF_32; // memset(&USE, '\0', sizeof(USE)); if (W_USE(this, USECONTENTS)) { if (TW_MAXDAT - scrollbacklines < ywidth - hasborder) scrollbacklines = TW_MAXDAT - YWidth + hasborder; CurY = YLogic = scrollbacklines; WLogic = xwidth - hasborder; HLogic = scrollbacklines + ywidth - hasborder; if (!InitTtyData(this, scrollbacklines)) { return NULL; } } else if (W_USE(this, USEROWS)) { WLogic = 1024; /* just an arbitrary value... */ HLogic = 0; /* no rows */ } else { WLogic = xwidth - hasborder; HLogic = scrollbacklines + ywidth - hasborder; } return this; } /* ttydata */ static byte InitTtyData(window w, dat scrollbacklines) { ttydata *Data = w->USE.C.TtyData; ldat count = w->WLogic * w->HLogic; tcell *p = w->USE.C.Contents, h; if (!Data && !(w->USE.C.TtyData = Data = (ttydata *)AllocMem(sizeof(ttydata)))) return tfalse; if (!p && !(w->USE.C.Contents = p = (tcell *)AllocMem(count * sizeof(tcell)))) return tfalse; h = TCELL(TCOL(twhite, tblack), ' '); while (count--) *p++ = h; /* * this is a superset of reset_tty(), * but we don't want to call it from here */ Data->State = ESnormal; Data->Flags = TTY_AUTOWRAP; Data->Effects = 0; w->YLogic = w->CurY = Data->ScrollBack = scrollbacklines; w->USE.C.HSplit = 0; Data->SizeX = w->WLogic; Data->SizeY = w->HLogic - scrollbacklines; Data->Top = 0; Data->Bottom = Data->SizeY; Data->saveX = Data->X = w->CurX = 0; Data->saveY = Data->Y = 0; Data->Pos = Data->Start = w->USE.C.Contents + Data->ScrollBack * w->WLogic; Data->Split = w->USE.C.Contents + w->WLogic * w->HLogic; w->CursorType = LINECURSOR; /* respect the WINDOWFL_CURSOR_ON set by the client and don't force it on */ #if 0 w->Flags |= WINDOWFL_CURSOR_ON; #endif w->ColText = Data->Color = Data->DefColor = Data->saveColor = TCOL(twhite, tblack); Data->Underline = TCOL(thigh | twhite, tblack); Data->HalfInten = TCOL(thigh | tblack, tblack); Data->TabStop[0] = 0x01010100; Data->TabStop[1] = Data->TabStop[2] = Data->TabStop[3] = Data->TabStop[4] = 0x01010101; Data->nPar = 0; Data->G = Data->saveG = 0; /* default to latin1 charset */ Data->currG = Data->G0 = Data->saveG0 = LATIN1_MAP; Data->G1 = Data->saveG1 = VT100GR_MAP; Data->utf8 = Data->utf8_count = Data->utf8_char = 0; Data->InvCharset = Tutf_UTF_32_to_ISO_8859_1; Data->newLen = Data->newMax = 0; Data->newName = NULL; return ttrue; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/obj/window.h����������������������������������������������������������������������0000664�0000000�0000000�00000027261�13775351206�0016262�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * window.h -- declare server class s_window * * Copyright (C) 1993-2019 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_WINDOW_H #define TWIN_WINDOW_H #include "twautoconf.h" #include "obj/widget.h" #ifdef TW_HAVE_SYS_TYPES_H #include <sys/types.h> /* pid_t */ #endif /* values returned by Fn_window->FindBorder (modeled after STATE_*) */ typedef enum e_pos { POS_TITLE = 10, POS_SIDE_LEFT = 11, POS_SIDE_UP = 12, POS_SIDE_RIGHT = 13, POS_SIDE_DOWN = 14, POS_BUTTON_RESIZE = 15, POS_X_BAR_BACK = 16, POS_X_BAR_FWD = 17, POS_X_TAB = 18, POS_X_ARROW_BACK = 19, POS_X_ARROW_FWD = 20, POS_Y_BAR_BACK = 21, POS_Y_BAR_FWD = 22, POS_Y_TAB = 23, POS_Y_ARROW_BACK = 24, POS_Y_ARROW_FWD = 25, POS_INSIDE = 26, POS_MENU = 27, POS_BUTTON_SCREEN = 29, POS_ROOT = 30, } tpos; struct s_remotedata { int Fd; pid_t ChildPid; uldat FdSlot; /* index in the FdList array (remote.c) */ }; struct s_WR { /* for WINDOWFL_USEROWS windows */ row FirstRow, LastRow; row RowOne, RowSplit; /*RESERVED: used to optimize the drawing on screen */ ldat NumRowOne, NumRowSplit; /*RESERVED: updated automatically by WriteRow. To insert */ /*or remove manually rows, you must zero out NumRowOne */ /*and NumRowSplit forcing twin to recalculate them */ }; struct s_WC { /* for WINDOWFL_USECONTENTS windows */ tcell *Contents; ttydata *TtyData; ldat HSplit; }; struct s_fn_window { uldat Magic; void (*Insert)(window, widget Parent, widget Prev, widget Next); void (*Remove)(window); void (*Delete)(window); void (*ChangeField)(window, udat field, uldat CLEARMask, uldat XORMask); /* widget */ fn_obj Fn_Obj; void (*DrawSelf)(draw_ctx *D); widget (*FindWidgetAt)(window Parent, dat X, dat Y); gadget (*FindGadgetByCode)(window Parent, udat Code); void (*SetXY)(window, dat X, dat Y); void (*SetFill)(window, tcell Fill); widget (*Focus)(window); widget (*KbdFocus)(window); void (*Map)(window, widget Parent); void (*UnMap)(window); void (*MapTopReal)(window, screen); void (*Raise)(window); void (*Lower)(window); void (*Own)(window, msgport); void (*DisOwn)(window); void (*RecursiveDelete)(window, msgport); void (*Expose)(window, dat XWidth, dat YWidth, dat Left, dat Up, const char *, const trune *, const tcell *); byte (*InstallHook)(window, fn_hook, fn_hook *Where); void (*RemoveHook)(window, fn_hook, fn_hook *Where); /* window */ fn_widget Fn_Widget; byte (*TtyWriteCharset)(window, uldat Len, const char *charset_bytes); byte (*TtyWriteUtf8)(window, uldat Len, const char *utf8_bytes); byte (*TtyWriteTRune)(window, uldat Len, const trune *runes); byte (*TtyWriteTCell)(window, dat x, dat y, uldat Len, const tcell *cells); byte (*RowWriteCharset)(window, uldat Len, const char *charset_bytes); byte (*RowWriteUtf8)(window, uldat Len, const char *utf8_bytes); byte (*RowWriteTRune)(window, uldat Len, const trune *runes); byte (*RowWriteTCell)(window, dat x, dat y, uldat Len, const tcell *cells); void (*GotoXY)(window, ldat X, ldat Y); void (*SetTitle)(window, dat titlelen, char *title); void (*SetColText)(window, tcolor ColText); void (*SetColors)(window, udat Bitmap, tcolor ColGadgets, tcolor ColArrows, tcolor ColBars, tcolor ColTabs, tcolor ColBorder, tcolor ColText, tcolor ColSelect, tcolor ColDisabled, tcolor ColSelectDisabled); void (*Configure)(window, byte Bitmap, dat Left, dat Up, dat MinXWidth, dat MinYWidth, dat MaxXWidth, dat MaxYWidth); window (*Create4Menu)(menu); tpos (*FindBorder)(window, dat u, dat v, byte Border, tcell *PtrAttr); row (*FindRow)(window, ldat RowN); row (*FindRowByCode)(window, udat Code, ldat *NumRow); }; struct s_window : public s_obj { fn_window Fn; widget Prev, Next; /* list in the same parent */ widget Parent; /* where this window sits */ /* widget */ widget FirstW, LastW; /* list of children */ widget SelectW; /* selected child */ dat Left, Up, XWidth, YWidth; uldat Attr; uldat Flags; ldat XLogic, YLogic; widget O_Prev, O_Next; /* list with the same msgport (owner) */ msgport Owner; fn_hook ShutDownHook; /* hooks for this widget */ fn_hook Hook, *WhereHook; fn_hook MapUnMapHook; msg MapQueueMsg; tcell USE_Fill; union { struct s_WR R; struct s_WC C; struct s_wE E; } USE; /* window */ menu Menu; menuitem MenuItem; /* from which the window depends */ dat NameLen; char *Name; tcolor *ColName; trune *BorderPattern[2]; remotedata RemoteData; ldat CurX, CurY; ldat XstSel, YstSel, XendSel, YendSel; tcolor ColGadgets, ColArrows, ColBars, ColTabs, ColBorder, ColText, ColSelect, ColDisabled, ColSelectDisabled; uldat State; uldat CursorType; dat MinXWidth, MinYWidth; dat MaxXWidth, MaxYWidth; ldat WLogic, HLogic; /* window interior logic size */ trune const *Charset; /* the byte -> trune translation to use */ /* obj */ static window Create(msgport owner, dat titlelen, const char *title, const tcolor *coltitle, menu menu, tcolor coltext, uldat cursortype, uldat attr, uldat flags, dat xwidth, dat ywidth, dat scrollbacklines); static window Create4Menu(menu); window Init(msgport owner, dat titlelen, const char *title, const tcolor *coltitle, menu menu, tcolor coltext, uldat cursortype, uldat attr, uldat flags, dat xwidth, dat ywidth, dat scrollbacklines); uldat Magic() const { return Fn->Magic; } void Insert(widget parent, widget prev, widget next) { Fn->Insert(this, parent, prev, next); } void Remove() { Fn->Remove(this); } void Delete() { Fn->Delete(this); } void ChangeField(udat field, uldat clear_mask, uldat xor_mask) { Fn->ChangeField(this, field, clear_mask, xor_mask); } /* widget */ void DrawSelf(draw_ctx *D) { Fn->DrawSelf(D); } widget FindWidgetAt(dat x, dat y) { return Fn->FindWidgetAt(this, x, y); } gadget FindGadgetByCode(udat code) { return Fn->FindGadgetByCode(this, code); } void SetXY(dat x, dat y) { Fn->SetXY(this, x, y); } void SetFill(tcell fill) { Fn->SetFill(this, fill); } widget Focus() { return Fn->Focus(this); } widget KbdFocus() { return Fn->KbdFocus(this); } void Map(widget parent) { Fn->Map(this, parent); } void UnMap() { Fn->UnMap(this); } void MapTopReal(screen scr) { Fn->MapTopReal(this, scr); } void Raise() { Fn->Raise(this); } void Lower() { Fn->Lower(this); } void Own(msgport port) { Fn->Own(this, port); } void DisOwn() { Fn->DisOwn(this); } void RecursiveDelete(msgport port) { Fn->RecursiveDelete(this, port); } void Expose(dat xwidth, dat ywidth, dat left, dat up, const char *ascii, const trune *runes, const tcell *cells) { Fn->Expose(this, xwidth, ywidth, left, up, ascii, runes, cells); } byte InstallHook(fn_hook hook, fn_hook *where) { return Fn->InstallHook(this, hook, where); } void RemoveHook(fn_hook hook, fn_hook *where) { Fn->RemoveHook(this, hook, where); } /* window */ byte TtyWriteCharset(uldat len, const char *charset_bytes) { return Fn->TtyWriteCharset(this, len, charset_bytes); } byte TtyWriteUtf8(uldat len, const char *utf8_bytes) { return Fn->TtyWriteUtf8(this, len, utf8_bytes); } byte TtyWriteTRune(uldat len, const trune *runes) { return Fn->TtyWriteTRune(this, len, runes); } byte TtyWriteTCell(dat x, dat y, uldat len, const tcell *cells) { return Fn->TtyWriteTCell(this, x, y, len, cells); } byte RowWriteCharset(uldat len, const char *charset_bytes) { return Fn->RowWriteCharset(this, len, charset_bytes); } byte RowWriteUtf8(uldat len, const char *utf8_bytes) { return Fn->RowWriteUtf8(this, len, utf8_bytes); } byte RowWriteTRune(uldat len, const trune *runes) { return Fn->RowWriteTRune(this, len, runes); } byte RowWriteTCell(dat x, dat y, uldat len, const tcell *attr) { return Fn->RowWriteTCell(this, x, y, len, attr); } void GotoXY(ldat x, ldat y) { Fn->GotoXY(this, x, y); } void SetTitle(dat titlelen, char *title) { Fn->SetTitle(this, titlelen, title); } void SetColText(tcolor coltext) { Fn->SetColText(this, coltext); } void SetColors(udat bitmap, tcolor colgadgets, tcolor colarrows, tcolor colbars, tcolor coltabs, tcolor colborder, tcolor coltext, tcolor colselect, tcolor coldisabled, tcolor colselectdisabled) { Fn->SetColors(this, bitmap, colgadgets, colarrows, colbars, coltabs, colborder, coltext, colselect, coldisabled, colselectdisabled); } void Configure(byte bitmap, dat left, dat up, dat minxwidth, dat minywidth, dat maxxwidth, dat maxywidth) { Fn->Configure(this, bitmap, left, up, minxwidth, minywidth, maxxwidth, maxywidth); } tpos FindBorder(dat u, dat v, byte border, tcell *ptrattr) { return Fn->FindBorder(this, u, v, border, ptrattr); } row FindRow(ldat rown) { return Fn->FindRow(this, rown); } row FindRowByCode(udat code, ldat *numrow) { return Fn->FindRowByCode(this, code, numrow); } }; /* Window->Attr */ typedef enum e_window_attr { WINDOW_WANT_MOUSE_MOTION = WIDGET_WANT_MOUSE_MOTION, /* 0x0001 */ WINDOW_WANT_KEYS = WIDGET_WANT_KEYS, /* 0x0002 */ WINDOW_WANT_MOUSE = WIDGET_WANT_MOUSE, /* 0x0004 */ WINDOW_WANT_CHANGES = WIDGET_WANT_CHANGES, /* 0x0008 */ WINDOW_AUTO_FOCUS = WIDGET_AUTO_FOCUS, /* 0x0010 */ WINDOW_DRAG = 0x0100, WINDOW_RESIZE = 0x0200, WINDOW_CLOSE = 0x0400, WINDOW_ROLLED_UP = 0x0800, WINDOW_X_BAR = 0x1000, WINDOW_Y_BAR = 0x2000, WINDOW_AUTO_KEYS = 0x4000, } window_attr; /* Window->Flags */ typedef enum e_window_flag { WINDOWFL_USEROWS = 0x00, /* default */ WINDOWFL_USECONTENTS = 0x01, WINDOWFL_USEEXPOSE = WIDGETFL_USEEXPOSE, /* 0x02 */ WINDOWFL_USEFILL = WIDGETFL_USEFILL, /* 0x03 */ WINDOWFL_USEANY = WIDGETFL_USEANY, /* 0x07 */ WINDOWFL_CURSOR_ON = 0x10, WINDOWFL_MENU = 0x20, WINDOWFL_DISABLED = 0x40, WINDOWFL_BORDERLESS = 0x80, WINDOWFL_ROWS_INSERT = 0x0100, WINDOWFL_ROWS_DEFCOL = 0x0200, WINDOWFL_ROWS_SELCURRENT = 0x0400, WINDOWFL_NOTVISIBLE = 0x8000, } window_flag; #define W_USE(W, USExxx) (((W)->Flags & WINDOWFL_USEANY) == CAT(WINDOWFL_, USExxx)) /* Window->State */ typedef enum e_window_state { X_BAR_SELECT = 0x0001, Y_BAR_SELECT = 0x0002, XY_BAR_SELECT = (X_BAR_SELECT | Y_BAR_SELECT), TAB_SELECT = 0x0004, PAGE_BACK_SELECT = 0x0008, PAGE_FWD_SELECT = 0x0010, ARROW_BACK_SELECT = 0x0020, ARROW_FWD_SELECT = 0x0040, SCROLL_ANY_SELECT = ARROW_BACK_SELECT | ARROW_FWD_SELECT | PAGE_BACK_SELECT | PAGE_FWD_SELECT | TAB_SELECT, WINDOW_FWDSEL = 0x0080, WINDOW_REVSEL = 0x0100, WINDOW_ANYSEL = (WINDOW_FWDSEL | WINDOW_REVSEL), WINDOW_DO_SEL = 0x0200, WINDOW_GADGET_PRESSED = 0x0400, BUTTON_FIRST_SELECT = 0x00400000u, BUTTON_LAST_SELECT = 0x80000000u, BUTTON_ANY_SELECT = 0xFFC00000u, } window_state; /*#define BUTTON_FIRST 0 */ /*#define BUTTON_CLOSE 0 */ /*#define BUTTON_LAST 9 */ #define BUTTON_MAX 10 /* Window->CursorType */ /* These come from linux/drivers/char/console.c */ typedef enum e_window_cursor_type { NOCURSOR = 1, LINECURSOR = 2, SOLIDCURSOR = 8, } window_cursor_type; /* window size limits */ #define MIN_XWIN 5 #define MIN_YWIN 2 #endif /* TWIN_WINDOW_H */ �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/printk.cpp������������������������������������������������������������������������0000664�0000000�0000000�00000004710�13775351206�0016035�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * printk.c -- report messages from twin core. * * Copyright (C) 2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "remote.h" #include "methods.h" #include "builtin.h" #include "draw.h" #ifdef TW_HAVE_STDARG_H #include <stdarg.h> #endif static char buf[TW_BIGBUFF]; /* hope it's enough */ static int printk_fd = NOFD; void printk_str(int len, const char *s) { int chunk; if (len > 0) { #ifdef CONF_PRINTK if (MessagesWin) { if (MessagesWin->HLogic > TW_SMALLBUFF) { while (MessagesWin->HLogic > TW_SMALLBUFF) { MessagesWin->USE.R.FirstRow->Delete(); MessagesWin->CurY--; } if (MessagesWin->Parent) DrawFullWindow2(MessagesWin); } MessagesWin->RowWriteCharset(len, s); } #endif /* CONF_PRINTK */ if (printk_fd == NOFD) fwrite(s, len, 1, stderr); else { do { do { chunk = write(printk_fd, s, len); } while (chunk < 0 && errno == EINTR); if (chunk > 0) { s += chunk; len -= chunk; } } while (len > 0 && chunk > 0); } } } int printk(const char *format, ...) { int len = 0; #if defined(TW_HAVE_VSNPRINTF) || defined(TW_HAVE_VSPRINTF) va_list ap; va_start(ap, format); #ifdef TW_HAVE_VSNPRINTF len = vsnprintf(buf, sizeof(buf), format, ap); va_end(ap); #else len = vsprintf(buf, format, ap); /* hopefully i < sizeof(buf) */ va_end(ap); if (len > sizeof(buf)) { fputs("twin: internal error: printk() overflow! \033[1mQUIT NOW !\033[0m\n", stderr); return sizeof(buf); } #endif /* TW_HAVE_VSNPRINTF */ printk_str(len, buf); #endif /* defined(TW_HAVE_VSNPRINTF) || defined(TW_HAVE_VPRINTF) */ return len; } int flushk(void) { return printk_fd == NOFD ? fflush(stderr) : ttrue; } int printk_receive_fd(int fd) { int got = 0, len; do { do { len = read(fd, buf, sizeof(buf)); } while (len < 0 && errno == EINTR); if (len > 0) { got += len; printk_str(len, buf); } } while (len > 0); return got; } byte RegisterPrintk(int fd) { if (printk_fd == NOFD) { printk_fd = fd; return ttrue; } return tfalse; } void UnRegisterPrintk(void) { printk_fd = NOFD; } ��������������������������������������������������������twin-0.9.0/server/printk.h��������������������������������������������������������������������������0000664�0000000�0000000�00000001161�13775351206�0015477�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_PRINTK_H #define TWIN_PRINTK_H #ifndef SS #define SS "%." STR(TW_SMALLBUFF) "s" #endif int printk(const char *format, ...); void printk_str(int len, const char *s); int printk_receive_fd(int fd); int flushk(void); byte RegisterPrintk(int fd); void UnRegisterPrintk(void); #endif /* TWIN_PRINTK_H */ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/privilege.cpp���������������������������������������������������������������������0000664�0000000�0000000�00000001257�13775351206�0016517�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * util.c -- utility functions * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twautoconf.h" #include "privilege.h" #ifdef TW_HAVE_GRP_H #include <grp.h> #endif gid_t get_tty_grgid(void) { struct group *gr; if ((gr = getgrnam("tty"))) return gr->gr_gid; else return (gid_t)-1; } int init_groups(const char *user_name, gid_t group_id) { return initgroups(user_name, group_id); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/privilege.h�����������������������������������������������������������������������0000664�0000000�0000000�00000001166�13775351206�0016163�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_PRIVILEGE_H #define TWIN_PRIVILEGE_H #include "twautoconf.h" #include "compiler.h" #ifdef TW_HAVE_UNISTD_H #include <unistd.h> #endif #ifdef TW_HAVE_SYS_TYPES_H #include <sys/types.h> #endif gid_t get_tty_grgid(void); int init_groups(const char *user_name, gid_t group_id); #endif /* TWIN_PRIVILEGE_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/pty.cpp���������������������������������������������������������������������������0000664�0000000�0000000�00000014602�13775351206�0015343�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * parts of code taken from: * * rxvt-2.4.7 sources (various authors) * available at ftp://ftp.math.fu-berlin.de/pub/rxvt/ * and usual Linux mirrors * * * other parts from Twin autor: * * Copyright (C) 1993-1999 Massimiliano Ghilardi * */ /* tell <stdlib.h> to declare grantpt(), unlockpt(), ptsname() */ #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif #ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE #endif #include "twautoconf.h" /* for TW_HAVE* macros */ #include "twconfig.h" /* for CONF_* macros */ #ifdef TW_HAVE_STDLIB_H #include <stdlib.h> #endif #ifdef TW_HAVE_SYS_STAT_H #include <sys/stat.h> #endif #ifdef TW_HAVE_FCNTL_H #include <fcntl.h> #endif #ifdef TW_HAVE_GRP_H #include <grp.h> #endif #ifdef TW_HAVE_TERMIOS_H #include <termios.h> #else #ifdef TW_HAVE_TERMIO_H #include <termio.h> #endif #endif #ifdef TW_HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif #ifdef TW_HAVE_SIGNAL_H #include <signal.h> #endif #include "tty_ioctl.h" #include "twin.h" #include "data.h" #include "main.h" #include "printk.h" #include "util.h" /* pseudo-teletype connections handling functions */ /* 0. variables */ static char *ptydev, *ttydev; static int ptyfd, ttyfd; static void pty_error(const char *d, const char *f, const char *arg) { printk("twin: " SS ": " SS "(\"" SS "\") failed: " SS "\n", d ? d : "<NULL>", f ? f : "<NULL>", arg ? arg : "<NULL>", strerror(errno)); } static void get_pty_error(const char *f, const char *arg) { pty_error("opening pseudo-tty", f, arg); } /* 1. Acquire a pseudo-teletype from the system. */ /* * On failure, returns tfalse. * On success, fills ttydev and ptydev with the names of the * master and slave parts and sets ptyfd to the pty file descriptor */ static byte get_pty(void) { int fd = -1, sfd = -1; #ifdef CONF_TERM_DEVPTS /* open master pty */ if ( #ifdef TW_HAVE_GETPT (fd = getpt()) >= 0 #else (fd = open("/dev/ptmx", O_RDWR | O_NOCTTY)) >= 0 #endif ) { if (grantpt(fd) == 0) { if (unlockpt(fd) == 0) { char *devname = ptsname(fd); ptydev = ttydev = devname; if ((sfd = open(devname, O_RDWR | O_NOCTTY)) >= 0) goto Found; else get_pty_error("slave open", devname); } else get_pty_error("unlockpt", ""); } else get_pty_error("grantpt", ""); close(fd); } else get_pty_error( #ifdef TW_HAVE_GETPT "getpt", "" #else "open", "/dev/ptmx" #endif ); #else static char pty_name[] = "/dev/pty??"; static char tty_name[] = "/dev/tty??"; int len = strlen(tty_name); char *c1, *c2; ptydev = pty_name; ttydev = tty_name; #define PTYCHAR1 "pqrstuvwxyzabcde" #define PTYCHAR2 "0123456789abcdef" for (c1 = PTYCHAR1; *c1; c1++) { ptydev[len - 2] = ttydev[len - 2] = *c1; for (c2 = PTYCHAR2; *c2; c2++) { ptydev[len - 1] = ttydev[len - 1] = *c2; if ((fd = open(ptydev, O_RDWR | O_NOCTTY)) >= 0) { if ((sfd = open(ttydev, O_RDWR | O_NOCTTY)) >= 0) /* access(ttydev, R_OK|W_OK) won't do as it checks against REAL uid */ goto Found; close(fd); } } } printk("twin: failed to get a pty/tty pseudo-tty pair\n"); #endif return tfalse; Found: fcntl(fd, F_SETFL, O_NDELAY); fcntl(fd, F_SETFD, FD_CLOEXEC); ttyfd = sfd; ptyfd = fd; return ttrue; } /* 2. Fixup permission for pty master/slave pairs */ static byte fixup_pty(void) { /* from util.c */ extern gid_t get_tty_grgid(void); uid_t id = getuid(); gid_t tty_gid = get_tty_grgid(); if (tty_gid != (gid_t)-1 && #ifndef CONF_TERM_DEVPTS chown(ptydev, id, 0) == 0 && chmod(ptydev, 0600) == 0 && #endif chown(ttydev, id, tty_gid) == 0 && chmod(ttydev, 0620) == 0) return ttrue; return tfalse; } static void setup_pty_error(const char *f, const char *arg) { pty_error("setting up slave tty", f, arg); } /* 3. Setup tty size and termios settings */ /* * do it before the fork() and NOT in the child to avoid * races with future tty resizes performed by the parent! */ static byte setup_tty(ttydata *Data) { struct winsize wsiz; /* from hw.c, ttysave is the console original state */ extern struct termios ttysave; if (All->SetUp->Flags & setup_terminals_utf8) Data->utf8 = 1; wsiz.ws_col = Data->SizeX; wsiz.ws_row = Data->SizeY; wsiz.ws_xpixel = 0; wsiz.ws_ypixel = 0; if (ioctl(ptyfd, TIOCSWINSZ, &wsiz) >= 0) { if (tty_setioctl(ttyfd, &ttysave) >= 0) return ttrue; else setup_pty_error("tty_setioctl", ""); } else setup_pty_error("ioctl", "TIOCSWINSZ"); return tfalse; } /* 4. Establish ttyfd as controlling teletype for new session and switch to it */ static byte switchto_tty(void) { int i; pid_t pid; pid = setsid(); if (pid < 0) return tfalse; /* * Hope all other file descriptors are set to fcntl(fd, F_SETFD, FD_CLOEXEC) */ for (i = 0; i <= 2; i++) { if (i != ttyfd) { close(i); dup2(ttyfd, i); } } if (ttyfd > 2) close(ttyfd); #ifdef TIOCSCTTY ioctl(0, TIOCSCTTY, 0); #endif /* set process group */ #if defined(_POSIX_VERSION) || defined(__svr4__) tcsetpgrp(0, pid); #elif defined(TIOCSPGRP) ioctl(0, TIOCSPGRP, &pid); #endif return ttrue; } /* exported API: fork() a program in a pseudo-teletype */ byte SpawnInWindow(window Window, const char *arg0, const char *const *argv) { pid_t childpid; remotedata *data; /* 0 */ if (flag_secure) { printk(flag_secure_msg); return tfalse; } GainPrivileges(); /* 1 */ if (!get_pty()) { DropPrivileges(); return tfalse; } /* 2 */ (void)fixup_pty(); DropPrivileges(); /* 3 */ if (setup_tty(Window->USE.C.TtyData)) { switch ((childpid = fork())) { case -1: /* failed */ close(ptyfd); ptyfd = -1; break; case 0: /* child */ /* 4 */ if (switchto_tty()) execvp(arg0, (char *const *)RemoveConst(argv)); exit(1); break; default: /* father */ data = &Window->RemoteData; data->Fd = ptyfd; data->ChildPid = childpid; break; } } else { close(ptyfd); ptyfd = -1; } close(ttyfd); return ptyfd != -1; } ������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/pty.h�����������������������������������������������������������������������������0000664�0000000�0000000�00000000737�13775351206�0015014�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_PTY_H #define TWIN_PTY_H byte SpawnInWindow(window Window, const char *arg0, const char *const *argv); gid_t get_tty_grgid(void); #endif /* TWIN_PTY_H */ ���������������������������������twin-0.9.0/server/rcopt.cpp�������������������������������������������������������������������������0000664�0000000�0000000�00000004373�13775351206�0015662�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * rcrun.c -- virtual machine to run byte-compiled ~/.twinrc code * * Copyright (C) 2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "data.h" static byte strfuzzy_ends_with(const char *s1, const char *s2) { const char *p1 = s1 + strlen(s1), *p2 = s2 + strlen(s2); char c1, c2; while (p1 != s1 && p2 != s2) { do { c1 = *--p1; } while (p1 != s1 && (c1 == ' ' || c1 == '-' || c1 == '_' || c1 == '.' || c1 == ':')); do { c2 = *--p2; } while (p2 != s2 && (c2 == ' ' || c2 == '-' || c2 == '_' || c2 == '.' || c2 == ':')); if (c1 >= 'A' && c1 <= 'Z') c1 += 'a' - 'A'; if (c2 >= 'A' && c2 <= 'Z') c2 += 'a' - 'A'; if (c1 != c2) return tfalse; } return p2 == s2; } byte InitRCOptions(void) { /* if any of these environment variables ends with "UTF-8" or similar then initialize tty emulator in UTF-8 mode */ const char *keys[] = { "LANG", "LANGUAGE", "LC_ALL", "LC_CTYPE", "LC_NUMERIC", "LC_TIME", "LC_COLLATE", "LC_MONETARY", "LC_MESSAGES", "LC_PAPER", "LC_NAME", "LC_ADDRESS", "LC_TELEPHONE", "LC_MEASUREMENT", "LC_IDENTIFICATION", }; const char *env; size_t i; byte utf8 = tfalse; for (i = 0; i < sizeof(keys) / sizeof(keys[0]); i++) { if ((env = getenv(keys[i])) && *env) { if (strfuzzy_ends_with(env, "utf8")) { utf8 = ttrue; break; } } } All->SetUp->Flags = (utf8 ? setup_terminals_utf8 : 0) #ifdef CONF_OPT_SHADOWS | setup_shadows #endif #ifdef CONF_OPT_BLINK | setup_blink #endif #ifdef CONF_OPT_CURSOR_ALWAYS | setup_cursor_always #endif #ifdef CONF_OPT_MENU_HIDE | setup_menu_hide #endif #ifdef CONF_OPT_MENU_RELAX | setup_menu_relax #endif #ifdef CONF_OPT_MENU_INFO | setup_menu_info #endif #ifdef CONF_OPT_SCREEN_SCROLL | setup_screen_scroll #endif ; return ttrue; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/rcparse.h�������������������������������������������������������������������������0000664�0000000�0000000�00000076635�13775351206�0015651�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * rcparse.h -- C back-end of ~/.twinrc parser for twin * * Copyright (C) 2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_RCPARSE_H #define TWIN_RCPARSE_H /* * ~/.twinrc syntax : * * AddScreen <screen name> * * AddToMenu {Default|Common} <name> ( * "entry" <function> * ... * ) * * # possible menus are: * # Default is the default menu * # Common is the common part of all menus * * AddToFunc <name> ( * <when> <function> * ... * ) * * Background <screen> <color> ( * "string" * ... * ) * * # set screen background * * Beep * * Border {Active|Inactive} <wildcard> ( * "�ͻ" * "� �" * "�ͼ" * ) * * Button <n> <shape> [+|-[<numeric pos>|Left|Right]] * * Center * # center window * * Close * * DeleteFunc <name> * * DeleteMenu {Default|Common} <itemname> * * DeleteButton <number> * * DeleteScreen <screen> * * Exec <shell command> * * ExecTty <shell command> * * Focus [On|Off|Toggle] * * GlobalFlags [[+|-]AltFont] [[+|-]CursorAlways] [[+|-]Blink] [[+|-]ScreenScroll] * [[+|-]TerminalsUtf8] [[+|-]MenuHide] [[+|-]MenuItems] [[+|-]Shadows] [Shadows <x> <y>] * [ButtonSelection <n>] * * Interactive <kind> * # Scroll, Move, Resize, Screen, Menu * * Key "<keyname>" <context> <function> * * Kill * * Lower * * Maximize * * FullScreen * * Menu <menu name> * # pop-up the menu * * Mouse "<button>" <context> <function> * * Move [+|-]<x> [+|-]<y> * # move window * * MoveScreen [+|-]<x> [+|-]<y> * # move screen * * Next [function] * # same as Window +1 [function] * * Nop ["<string>"] * # void function; non-empty string inserts a linebreak in menu * * Pass * #also send key / mouse action to window * * Prev [function] * # same as Window -1 [function] * * Quit * * Read <file> * * Refresh * * Restart [<window manager name>] * * Resize [+|-]<x> [+|-]<y> * # resize window * * ResizeScreen [+|-]<x> [+|-]<y> * * Raise * * Roll [On|Off|Toggle] * * Scroll [+|-]<x> [+|-]<y> * # scrolls window * * SelStart * # start selection * * SelCont * # continue/extend selection * * SelEnd * # end selection * * Sleep <n> * # sleep <n> seconds * * Stderr "<string>" * * SendToScreen <screen> * # sends window to given screen * * Wait <window name> * * Window {[+|-]<n>|<window name>} [function] * # sets default window to operate on: * # Window <n> : * # n = 0 : re-get current focused window * # n > 0 : 1 = First Window, 2 = Second, etc. * # * # Window {+|-}<n> * # n = 0 : no-op * # n < 0 : -1 : Prev Window, -2 Prev Prev, etc. * # n > 0 : +1 : Next Window, +2 Next Next, etc. * * * WindowList */ #include "rcparse_tab.hpp" ldat GlobalFlags[4]; ldat GlobalShadows[2]; static void yyerror(const char *s) { printk("twin: %s:%d: %s\n", FILE_NAME, LINE_NO, s); } #define NEW() (node) my_malloc(sizeof(struct s_node)) static node ReverseList(node l) { node base = NULL, v; while (l) { v = l->next; l->next = base; base = l; l = v; } return base; } inline node MakeNode(str name) { node n = NEW(); n->name = name; /* this is my_malloc()ed memory (done by rcparse.l) */ return n; } inline node MakeBuiltinFunc(ldat id) { node n = NEW(); n->id = id; return n; } /* * the code may try to add a NULL node to a list... * do nothing in that case * (it's a way to eat empty lines, they are coded as NULL nodes) */ inline node AddtoNodeList(node l, node n) { if (n) { n->next = l; return n; } return l; } static node MakeNodeBody(str name, node body, node *head) { node n = MakeNode(name); n->body = ReverseList(body); if (head) *head = AddtoNodeList(*head, n); return n; } static byte ImmAddScreen(str name) { MakeNodeBody(name, NULL, &ScreenList); return ttrue; } static void MergeNodeLists(node n, node l) { node ol = n->body; if (!ol) n->body = l; else if (l) { while (ol->next) ol = ol->next; ol->next = l; } } static byte MergeMenu(str name, node l) { node n; if ((n = LookupNodeName(name, MenuList))) MergeNodeLists(n, ReverseList(l)); else MakeNodeBody(name, l, &MenuList); return ttrue; } static byte MergeFunc(str name, node l) { node n; if ((n = LookupNodeName(name, FuncList))) MergeNodeLists(n, ReverseList(l)); else MakeNodeBody(name, l, &FuncList); return ttrue; } static byte ImmBackground(str name, tcell color, node shape) { node n; /* automagically create screen "1" if needed */ if ((n = LookupNodeName(name, ScreenList)) || (!strcmp(name, "1") && (n = MakeNodeBody(name, NULL, &ScreenList)))) { n->body = ReverseList(shape); n->x.color = color; return ttrue; } return tfalse; } static void UnwindBorderShape(node n) { cstr s = NULL; str d = n->data = (str)my_malloc(n->x.ctx = 10); node shape = n->body; while (shape) { s = shape->name; while (*s && (d - n->data) < 9) *d++ = *s++; if (!*s) shape = shape->next; } *d = '\0'; } static byte ImmBorder(str wildcard, ldat flag, node shape) { node n; if (shape) { n = MakeNodeBody(wildcard, shape, &BorderList); n->x.f.flag = flag; UnwindBorderShape(n); n->body = NULL; return ttrue; } return tfalse; } static ldat FreeButtonPos(ldat n, ldat lr) { ldat i; ldat freepos = lr == FL_LEFT ? 0 : -2; for (i = 0; i < BUTTON_MAX; i++) if (All->ButtonVec[i].exists) { if (All->ButtonVec[i].pos >= 0 && freepos >= 0 && freepos < All->ButtonVec[i].pos + 2) freepos = All->ButtonVec[i].pos + 2; else if (All->ButtonVec[i].pos < 0 && freepos < 0 && freepos > All->ButtonVec[i].pos - 2) freepos = All->ButtonVec[i].pos - 2; } return freepos; } static byte ImmButton(ldat n, str shape, ldat lr, ldat flag, ldat pos) { if (n >= 0 && n < BUTTON_MAX && strlen(shape) >= 2) { All->ButtonVec[n].shape[0] = Tutf_CP437_to_UTF_32[(byte)shape[0]]; All->ButtonVec[n].shape[1] = Tutf_CP437_to_UTF_32[(byte)shape[1]]; if (lr == FL_RIGHT) pos = -pos; if (flag == '+' || flag == '-') /* relative position */ pos += FreeButtonPos(n, lr); else { /* absolute position */ if (lr == FL_RIGHT) pos -= 2; /* -2 is the position corresponding to `Right 0' */ } All->ButtonVec[n].pos = pos; All->ButtonVec[n].exists = All->ButtonVec[n].changed = ttrue; return ttrue; } return tfalse; } static void DeleteNodeName(str name, node *l) { for (; *l; l = &((*l)->next)) { if (!strcmp(name, (*l)->name)) { *l = (*l)->next; return; } } } static byte ImmDeleteFunc(str name) { DeleteNodeName(name, &FuncList); return ttrue; } static byte ImmDeleteMenu(str name) { DeleteNodeName(name, &MenuList); return ttrue; } static byte ImmDeleteButton(ldat n) { if (n >= 0 && n < BUTTON_MAX) All->ButtonVec[n].exists = tfalse; return ttrue; } static byte ImmDeleteScreen(str name) { DeleteNodeName(name, &ScreenList); return ttrue; } static byte ImmGlobalFlags(node l) { ldat i, j; while (l) { switch (l->id) { case ALTFONT: /*ignored for compatibility*/ return ttrue; case BLINK: i = setup_blink; break; case CURSOR_ALWAYS: i = setup_cursor_always; break; case SCREEN_SCROLL: i = setup_screen_scroll; break; case MENU_HIDE: i = setup_menu_hide; break; case MENU_INFO: i = setup_menu_info; break; case MENU_RELAX: i = setup_menu_relax; break; case SHADOWS: i = setup_shadows; break; case TERMINALS_UTF8: i = setup_terminals_utf8; break; case BUTTON_PASTE: i = 0; break; case BUTTON_SELECTION: i = -1; break; default: return tfalse; } if (i > 0) switch (l->x.f.flag) { case FL_ON: case '+': case 0: GlobalFlags[0] |= i; /* OR */ GlobalFlags[1] &= ~i; /* XOR */ break; case FL_OFF: case '-': GlobalFlags[0] |= i; /* OR */ GlobalFlags[1] |= i; /* XOR */ /* (x OR 1) XOR 1 == 0 */ break; case FL_TOGGLE: GlobalFlags[0] &= ~i; /* OR */ GlobalFlags[1] |= i; /* XOR */ /* x XOR 1 == ~x */ break; case -(ldat)'+': if (l->id == SHADOWS) { GlobalShadows[0] = l->x.f.a; GlobalShadows[1] = l->x.f.b; } break; default: return tfalse; } else { /* ButtonSelection or ButtonPaste */ j = l->x.f.flag; if (j >= 1 && j <= BUTTON_N_MAX) GlobalFlags[i + 3] = HOLD_CODE(j - 1); else GlobalFlags[i + 3] = HOLD_LEFT; } l = l->next; } return ttrue; } static ldat BitmapCtx(str _ctx) { ldat res = 0; byte c; while ((c = *_ctx++)) switch (c) { case 'a': case 'A': res |= CTX_ANY; break; case 'b': case 'B': res |= CTX_BARS; break; case 'c': case 'C': res |= CTX_CORNER; break; case 'i': case 'I': res |= CTX_INSIDE; break; case 'm': case 'M': res |= CTX_MENU; break; case 'r': case 'R': res |= CTX_ROOT; break; case 's': case 'S': res |= CTX_SIDE; break; case 't': case 'T': res |= CTX_TITLE; break; case 'w': case 'W': res |= CTX_WIN; break; default: if (c >= '0' && c <= '9') res |= 1 << (c - '0'); break; } return res; } static node LookupBind(ldat label, ldat ctx, node l) { for (; l; l = l->next) { /* strict match here: (l->x.ctx == ctx) */ if (label == l->id && l->x.ctx == ctx) return l; } return NULL; } static str toString(ldat i) { str s = (str)my_malloc(2 + 3 * sizeof(ldat)); sprintf(s, "%d", (int)i); return s; } static ldat FindTwKey(str name) { uldat i; for (i = 0; TW_KeyList[i].name; i++) { if (!strcmp(name, TW_KeyList[i].name)) return (ldat)i; } return -1; } static byte BindKey(ldat shiftflags, str label, node func) { ldat key; node n; switch (strlen(label)) { case 0: return tfalse; case 1: key = (byte)*label; break; default: if ((key = FindTwKey(label)) == -1) return tfalse; key = TW_KeyList[key].key; break; } if (!(n = LookupBind(key, shiftflags, KeyList))) { n = MakeBuiltinFunc(key); n->name = label; n->x.ctx = shiftflags; KeyList = AddtoNodeList(KeyList, n); } n->body = ReverseList(func); return ttrue; } static byte BindMouse(str buttons, str _ctx, node func) { ldat ctx = BitmapCtx(_ctx); udat buttonmask = 0; node n; byte c; while ((c = *buttons++)) { if (c >= '1' && c <= '1' + BUTTON_N_MAX) buttonmask |= HOLD_CODE(c - '1'); else if (c == 'H' || c == 'h') buttonmask |= PRESS_; else if (c == 'C' || c == 'c') buttonmask |= RELEASE_; } if (buttonmask) { if (!(buttonmask & (PRESS_ | RELEASE_))) /* default is 'C' */ buttonmask |= RELEASE_; if (!(n = LookupBind(buttonmask, ctx, MouseList))) { n = MakeBuiltinFunc(buttonmask); n->x.ctx = ctx; n->name = _ctx; MouseList = AddtoNodeList(MouseList, n); } n->body = ReverseList(func); return ttrue; } return tfalse; } static node MakeFlagNode(ldat id, ldat flag) { node n = MakeBuiltinFunc(id); n->x.f.flag = flag; return n; } static node MakeModuleNode(str label, ldat flag) { node n; ldat len = strlen(label); /* remove .so suffix */ if (len > 3 && !memcmp(label + len - 3, ".so", 3)) label[len - 3] = '\0'; n = MakeNode(label); n->id = MODULE; n->x.f.flag = flag; n->x.f.a = -1; /* code for this module will be asked when needed */ return n; } static node MakeShadowsNode(ldat x, ldat y) { node n = MakeBuiltinFunc(SHADOWS); n->x.f.flag = -(ldat)'+'; n->x.f.a = x; n->x.f.b = y; return n; } static node MakeUserFunc(str name) { node n = MakeNode(name); n->id = USERFUNC; return n; } static void MakeArgVecReverse(node n, node l) { uldat len = 1; node base = NULL, v; cstr *s; if (!l) return; while (l) { v = l->next; l->next = base; base = l; l = v; len++; } l = base; n->x.v.argc = len; n->x.v.argv = s = (cstr *)my_malloc(len * sizeof(str)); while (l) { *s++ = l->name; l = l->next; } *s = NULL; } static node MakeExec(node l) { node n = MakeBuiltinFunc(EXEC); MakeArgVecReverse(n, l); return n; } static node MakeExecTty(node l) { node n = MakeBuiltinFunc(EXECTTY); MakeArgVecReverse(n, l); return n; } static node MakeMoveResizeScroll(ldat id, ldat flag_x, ldat x, ldat flag_y, ldat y) { node n = MakeBuiltinFunc(id); n->x.f.plus_minus = flag_x; n->x.f.flag = flag_y; n->x.f.a = x; n->x.f.b = y; return n; } static node MakeRestartWM(str name) { node n = MakeNode(name); n->id = RESTART; return n; } static node MakeStderr(node l) { node n = MakeBuiltinFunc(STDERR); MakeArgVecReverse(n, l); return n; } static node MakeSendToScreen(str name) { node n = MakeNode(name); n->id = SENDTOSCREEN; return n; } static node MakeSyntheticKey(ldat shiftflags, str label) { ldat key; const char *seq; char buf[4]; node n; switch (strlen(label)) { case 0: return NULL; case 1: key = (byte)*label; seq = label; break; default: if ((key = FindTwKey(label)) == -1) return NULL; seq = TW_KeyList[key].seq; key = TW_KeyList[key].key; break; } if (strlen(seq) == 1) { if (shiftflags & KBD_ALT_FL) { buf[0] = '\x1B'; buf[1] = *seq; buf[2] = '\0'; seq = buf; } else if (shiftflags & KBD_CTRL_FL) { buf[0] = *seq & 0x1F; buf[1] = '\0'; seq = buf; } } n = NEW(); n->id = SYNTHETICKEY; n->x.f.flag = shiftflags; n->x.f.a = key; n->name = my_strdup(seq); return n; } static node MakeSleep(ldat t) { node n = NEW(); n->id = SLEEP; n->x.f.a = t; return n; } static node MakeWait(str name) { node n = MakeNode(name); n->id = WAIT; return n; } static node MakeWindowNumber(ldat flag, ldat x) { node n = MakeBuiltinFunc(WINDOW); n->x.f.plus_minus = flag; n->x.f.a = x; return n; } static node MakeWindow(str name) { node n = MakeBuiltinFunc(WINDOW); n->name = name; return n; } static node AddtoStringList(node l, str string) { return AddtoNodeList(l, MakeNode(string)); } #if defined(DEBUG_YACC) || defined(DEBUG_RC) static str TokenName(ldat id) { switch (id) { case tblack: return "tblack"; case tblue: return "tblue"; case tgreen: return "tgreen"; case '+': return "+"; case '-': return "-"; case ADDSCREEN: return "AddScreen"; case ADDTOMENU: return "AddToMenu"; case ADDTOFUNC: return "AddToFunc"; case BACKGROUND: return "Background"; case BORDER: return "Border"; case BUTTON: return "Button"; case DELETEFUNC: return "DeleteFunc"; case DELETEMENU: return "DeleteMenu"; case DELETEBUTTON: return "DeleteButton"; case DELETESCREEN: return "DeleteScreen"; case EXEC: return "Exec"; case EXECTTY: return "ExecTty"; case GLOBALFLAGS: return "GlobalFlags"; case INTERACTIVE: return "Interactive"; case KEY: return "Key"; case MENU: return "Menu"; case MOUSE: return "Mouse"; case MOVE: return "Move"; case MOVESCREEN: return "MoveScreen"; case NEXT: return "Next"; case NOP: return "Nop"; case PREV: return "Prev"; case READ: return "Read"; case RESTART: return "Restart"; case RESIZE: return "Resize"; case RESIZESCREEN: return "ResizeScreen"; case SCREEN: return "Screen"; case SCROLL: return "Scroll"; case SENDTOSCREEN: return "SendToScreen"; case SLEEP: return "Sleep"; case STDERR: return "Stderr"; case SYNTHETICKEY: return "SyntheticKey"; case WAIT: return "Wait"; case WINDOW: return "Window"; case BEEP: return "Beep"; case CENTER: return "Center"; case CLOSE: return "Close"; case KILL: return "Kill"; case QUIT: return "Quit"; case REFRESH: return "Refresh"; case WINDOWLIST: return "WindowList"; case FOCUS: return "Focus"; case LOWER: return "Lower"; case MAXIMIZE: return "Maximize"; case FULLSCREEN: return "FullScreen"; case RAISE: return "Raise"; case RAISELOWER: return "RaiseLower"; case ROLL: return "Roll"; case USERFUNC: return ""; case FL_ON: return "On"; case FL_OFF: return "Off"; case FL_TOGGLE: return "Toggle"; case FL_ACTIVE: return "Active"; case FL_INACTIVE: return "Inactive"; case FL_LEFT: return "Left"; case FL_RIGHT: return "Right"; case ALTFONT: return "AltFont"; case BLINK: return "Blink"; case CURSOR_ALWAYS: return "CursorAlways"; case MENU_HIDE: return "MenuHide"; case MENU_INFO: return "MenuInfo"; case MENU_RELAX: return "MenuRelax"; case SCREEN_SCROLL: return "ScreenScroll"; case SHADOWS: return "Shadows"; case BUTTON_PASTE: return "ButtonPaste"; case BUTTON_SELECTION: return "ButtonSelection"; default: break; } return "(unknown)"; } #endif #ifdef DEBUG_RC static str ColorName(tcolor col) { switch (col) { case tblack: return "Black"; case tblue: return "Blue"; case tgreen: return "Green"; case tcyan: return "Cyan"; case tred: return "Red"; case tmagenta: return "Magenta"; case tyellow: return "Yellow"; case twhite: return "White"; case thigh: return "High"; default: break; } return "(unknown)"; } static void DumpColorName(tcolor col) { tcolor fg = TCOLFG(col), bg = TCOLBG(col); if (fg & thigh) fprintf(stderr, "%s ", ColorName(thigh)); fprintf(stderr, "%s %s ", ColorName(fg & ~thigh), TokenName(FL_ON)); if (bg & thigh) fprintf(stderr, "%s ", ColorName(thigh)); fprintf(stderr, "%s ", ColorName(bg & ~thigh)); } static void DumpNameList(node l, byte nl) { for (; l; l = l->next) { if (l->name) fprintf(stderr, "\"%s\"%c", l->name, nl ? '\n' : ' '); } } static void DumpGenericNode(node n) { ldat f, x; if (n) { if (n->id) fprintf(stderr, "%s ", TokenName(n->id)); if (n->name) fprintf(stderr, "\"%s\" ", n->name); if ((f = n->x.f.plus_minus)) fprintf(stderr, "%s", TokenName(f)); if ((x = n->x.f.a) || f == '+' || f == '-') fprintf(stderr, "%d ", x); if ((f = n->x.f.flag)) fprintf(stderr, "%s", TokenName(f)); if ((x = n->x.f.b) || f == '+' || f == '-') fprintf(stderr, "%d ", x); if (n->body) DumpGenericNode(n->body); } } static void DumpPlusList(node l) { for (; l; l = l->next) { if (l->name) fprintf(stderr, "\"%s\" ", l->name); DumpGenericNode(l->body); fprintf(stderr, "\n"); } } static void DumpFuncNode(node n) { if (!n) return; fprintf(stderr, "%s \"%s\" (\n", TokenName(ADDTOFUNC), n->name); DumpPlusList(n->body); fprintf(stderr, ")\n"); } static void DumpMenuNode(node n) { if (!n) return; fprintf(stderr, "%s \"%s\" (\n", TokenName(ADDTOMENU), n->name); DumpPlusList(n->body); fprintf(stderr, ")\n"); } static void DumpScreenNode(node n) { if (!n) return; fprintf(stderr, "%s \"%s\"\n%s \"%s\" ", TokenName(ADDSCREEN), n->name, TokenName(BACKGROUND), n->name); DumpColorName(n->x.color); fprintf(stderr, "(\n"); DumpNameList(n->body, ttrue); fprintf(stderr, ")\n"); } static void DumpBorderNode(node n) { if (!n) return; fprintf(stderr, "%s \"%s\" %s (\n" "\"%.3s\"\n" "\"%.3s\"\n" "\"%.3s\"\n" ")\n", TokenName(BORDER), n->name, TokenName(n->x.f.flag), n->data, n->data + 3, n->data + 6); } static void DumpKeyNode(node n) { if (!n) return; fprintf(stderr, "%s %s ", TokenName(KEY), n->name); DumpGenericNode(n->body); fprintf(stderr, "\n"); } static void DumpMouseNode(node n) { byte buttons[BUTTON_N_MAX + 1], *b = buttons; udat i; if (!n) return; for (i = 0; i < BUTTON_N_MAX; i++) { if (n->id & HOLD_N(i)) *b++ = '1' + i; } memset(b, '\0', BUTTON_N_MAX + 1 - (b - buttons)); fprintf(stderr, "%s %s %s ", TokenName(MOUSE), buttons, n->name); DumpGenericNode(n->body); fprintf(stderr, "\n"); } static void DumpGlobals(void) { node l; for (l = FuncList; l; l = l->next) DumpFuncNode(l); for (l = MenuList; l; l = l->next) DumpMenuNode(l); for (l = ScreenList; l; l = l->next) DumpScreenNode(l); for (l = BorderList; l; l = l->next) DumpBorderNode(l); for (l = KeyList; l; l = l->next) DumpKeyNode(l); for (l = MouseList; l; l = l->next) DumpMouseNode(l); for (l = CallList; l; l = l->next) { DumpGenericNode(l); fprintf(stderr, "\n"); } } #endif /* DEBUG_RC */ /* * clear all global pointers before parsing ~/.twinrc * (this happens in the child process) */ static void ClearGlobals(void) { memset(Globals, '\0', GLOBAL_MAX * sizeof(node)); memset(All->ButtonVec, '\0', BUTTON_MAX * sizeof(button_vec)); MenuBinds = NULL; MenuBindsMax = 0; } /* * copy all global pointers at the beginning of shm pool * to pass them to parent * (this happens in the child process) */ static void WriteGlobals(void) { node *g = Globals; void **M = (void **)shm_getbase(); while (g < Globals + GLOBAL_MAX) *M++ = ReverseList(*g++); CopyMem(All->ButtonVec, M, sizeof(All->ButtonVec)); M = (void **)((str)M + sizeof(All->ButtonVec)); CopyMem(GlobalFlags, M, sizeof(GlobalFlags)); M = (void **)((str)M + sizeof(GlobalFlags)); CopyMem(GlobalShadows, M, sizeof(GlobalShadows)); M = (void **)((str)M + sizeof(GlobalShadows)); } static screen FindNameInScreens(dat len, const char *name, screen S) { while (S) { if (len == S->NameLen && !memcmp(name, S->Name, len)) return S; S = S->Next; } return NULL; } static node FindNameInList(uldat len, const char *name, node list) { while (list) { if (list->name && strlen(list->name) == len && !memcmp(name, list->name, len)) return list; list = list->next; } return NULL; } static void DeleteScreens(screen first) { screen s = first, next; while (s) { next = s->Next; s->Delete(); s = next; } } /* * create new screens as needed or fail with no side effects */ static byte CreateNeededScreens(node list, screen *res_Screens) { node body; screen s, prev = (screen)0, top = (screen)0; cstr n; tcell *attr, *r; trune f; tcolor c; uldat w, h, len, _len; while (list) { w = h = 0; for (body = list->body; body; body = body->next) { len = body->name ? strlen(body->name) : 0; if (w < len) w = len; h++; } if (!w && !h) continue; if ((attr = (tcell *)AllocMem(w * h * sizeof(tcell)))) { h = 0; for (body = list->body; body; body = body->next) { if (body->name) { n = body->name; _len = len = strlen(n); c = list->x.color; r = attr + w * h; while (len--) { f = Tutf_CP437_to_UTF_32[(byte)*n++]; *r++ = TCELL(c, f); } while (_len++ < w) *r++ = TCELL(c, ' '); } h++; } s = New(screen)(strlen(list->name), list->name, w, h, attr); FreeMem(attr); } if (!attr || !s) { DeleteScreens(top); return tfalse; } if (prev) prev->Next = s; prev = s; if (!top) top = s; list = list->next; } *res_Screens = top; return ttrue; } /* * make screens in new_Screens visible if they don't exist, * otherwise copy their background then delete them. */ static void UpdateVisibleScreens(screen new_Screens) { screen S, Next, Orig; for (S = new_Screens; S; S = Next) { Next = S->Next; S->Next = (screen)0; if ((Orig = FindNameInScreens(S->NameLen, S->Name, All->FirstScreen))) { Orig->USE.B.BgWidth = S->USE.B.BgWidth; Orig->USE.B.BgHeight = S->USE.B.BgHeight; if (Orig->USE.B.Bg) FreeMem(Orig->USE.B.Bg); Orig->USE.B.Bg = S->USE.B.Bg; S->USE.B.Bg = NULL; S->Delete(); } else InsertLast(Screen, S, All); S = Next; } } /* * Delete no-longer needed screens (all except "1" and ones in list) */ static void DeleteUnneededScreens(node list) { screen S, Next; for (S = All->FirstScreen; S; S = Next) { Next = S->Next; if ((S->NameLen != 1 || S->Name[0] != '1') && !FindNameInList(S->NameLen, S->Name, list)) { S->Delete(); } } } static void NewCommonMenu_Overflow(void) { printk("twin: RC parser: user-defined menu is too big! (max is %d entries)\n", (int)(TW_MAXUDAT - COD_RESERVED + 1)); } /* * create new CommonMenu and MenuBinds from MenuList * or fail with no side effects */ static byte NewCommonMenu(void **shm_M, menu *res_CommonMenu, node **res_MenuBinds, uldat *res_MenuBindsMax) { node new_MenuList; node *new_MenuBinds = (node *)0; uldat new_MenuBindsMax; menu Menu = (menu)0; menuitem Item; window W; row Row; node N, M; uldat maxlen, l; str Line; /* extract needed length for new_MenuBinds[] */ new_MenuBindsMax = 0; new_MenuList = (node)(*(shm_M + (&MenuList - Globals))); for (M = new_MenuList; M; M = M->next) { for (N = M->body; N; N = N->next) { if (N->body && N->body->id != NOP) new_MenuBindsMax++; } } if (new_MenuBindsMax > TW_MAXUDAT - COD_RESERVED) { NewCommonMenu_Overflow(); return tfalse; } if (new_MenuBindsMax && !(new_MenuBinds = (node *)AllocMem(new_MenuBindsMax * sizeof(node)))) return tfalse; new_MenuBindsMax = 0; new_MenuList = (node)(*(shm_M + (&MenuList - Globals))); if (!(Menu = New(menu)(Ext(WM, MsgPort), (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0, ttrue))) return tfalse; /* ok, now create the CommonMenu. Fill new_MenuBinds[] as we proceed */ for (M = new_MenuList; M; M = M->next) { if ((W = Win4Menu(Menu)) && (Item = Item4Menu(Menu, W, ttrue, strlen(M->name), M->name))) { if (!Item->Prev) Item->Left = 0; /* remove padding */ maxlen = 0; for (N = M->body; N; N = N->next) { if (N->body && N->body->id != NOP) { l = strlen(N->name); maxlen = Max2(maxlen, l); } } if (!(Line = (str)AllocMem(maxlen + 1))) break; memset(Line, 0xC4, maxlen); Line[maxlen] = '\0'; /* not strictly necessary */ for (N = M->body; N; N = N->next) { if (N->body && N->body->id != NOP) { if ((Row = Row4Menu(W, 0, ROW_ACTIVE, strlen(N->name), N->name))) { Row->Code = (udat)(new_MenuBindsMax + COD_RESERVED); new_MenuBinds[new_MenuBindsMax++] = N->body; } } else Row = Row4Menu(W, 0, ROW_IGNORE, maxlen, Line); if (!Row) break; } FreeMem(Line); if (N) /* out of memory! */ break; } } if (!M) { *res_CommonMenu = Menu; *res_MenuBinds = new_MenuBinds; *res_MenuBindsMax = new_MenuBindsMax; return ttrue; } /* out of memory! */ FreeMem(new_MenuBinds); Menu->Delete(); return tfalse; } /* * get all global pointers from the beginning of shm pool, create * new Screens, Common Menu and MenuBinds or fail with no side effect. */ static byte ReadGlobals(void) { node *g; void **M = (void **)shm_getbase(); menu new_CommonMenu; node *new_MenuBinds = (node *)0; uldat new_MenuBindsMax; screen new_Screens = (screen)0; if (!CreateNeededScreens((node)M[ScreenIndex], &new_Screens)) return tfalse; if (!NewCommonMenu(M, &new_CommonMenu, &new_MenuBinds, &new_MenuBindsMax)) { DeleteScreens(new_Screens); return tfalse; } /* ok, this is the no-return point. we must succeed now */ UpdateVisibleScreens(new_Screens); DeleteUnneededScreens((node)M[ScreenIndex]); if (!GlobalsAreStatic) FreeMem(MenuBinds); GlobalsAreStatic = tfalse; if (All->CommonMenu) { All->CommonMenu->Delete(); } All->CommonMenu = new_CommonMenu; MenuBinds = new_MenuBinds; MenuBindsMax = new_MenuBindsMax; g = Globals; while (g < Globals + GLOBAL_MAX) *g++ = (node)*M++; CopyMem(M, All->ButtonVec, sizeof(All->ButtonVec)); M = (void **)((str)M + sizeof(All->ButtonVec)); CopyMem(M, GlobalFlags, sizeof(GlobalFlags)); M = (void **)((str)M + sizeof(GlobalFlags)); CopyMem(M, GlobalShadows, sizeof(GlobalShadows)); M = (void **)((str)M + sizeof(GlobalShadows)); #ifdef DEBUG_RC DumpGlobals(); #endif All->SetUp->Flags |= GlobalFlags[0]; All->SetUp->Flags ^= GlobalFlags[1]; All->SetUp->ButtonSelection = GlobalFlags[2]; All->SetUp->ButtonPaste = GlobalFlags[3]; All->SetUp->DeltaXShade = GlobalShadows[0]; All->SetUp->DeltaYShade = GlobalShadows[1]; shm_TSR(); QueuedDrawArea2FullScreen = ttrue; return ttrue; } static byte rcparse(cstr path); static byte rcload(void) { str path; uldat len; #ifndef DEBUG_FORK int fdm[2]; int fdl[2]; #endif byte c = tfalse; if (!(path = FindFile(".twinrc", &len))) return c; /* * try to guess a reasonable size: * assume a failsafe avg of a node every 4 bytes */ len = Min2(len, TW_MAXULDAT / sizeof(node)); len = Max2(len, TW_BIGBUFF) * sizeof(node) / 4; if (!shm_init(len)) { FreeMem(path); return c; } #ifdef DEBUG_FORK /* * This works, but it would be too complex to add proper error recovery to it: * one would need to check that all shm_malloc() calls succeed, or otherwise * correctly cleanup and cleanly abort yacc/lex parsing. * * It is thus much easier and cleaner to do the work in a child process, assuming * in the rest of the code that shm_malloc() and yacc/lex parsing never fail, * and brutally exit() from shm_malloc() or yacc/lex parsing in case of errors. * * In this way the original process deals with an atomic fork()/rcparse() combo, * that either succeeds or fails with no side effect at all, except for the * shm area, which anyway must always be cleaned up, even in case of success. * * On the other hand, it is much easier to debug the code if there are no fork()s, * so this gets used in case of debugging. */ if (rcparse(path)) { WriteGlobals(); c = ReadGlobals(); } if (!c) { ClearGlobals(); shm_abort(); } return c; #else if (socketpair(AF_UNIX, SOCK_STREAM, 0, fdm) == 0) { if (socketpair(AF_UNIX, SOCK_STREAM, 0, fdl) == 0) { switch (fork()) { case -1: /* error */ close(fdm[0]); close(fdm[1]); close(fdl[0]); close(fdl[1]); break; case 0: /* child */ QuitSignals(); close(fdm[0]); close(fdl[0]); if (fdl[1] != 2) { close(2); dup2(fdl[1], 2); close(fdl[1]); } ClearGlobals(); if (rcparse(path)) { WriteGlobals(); shm_send(fdm[1]); } exit(0); break; default: /* parent */ FreeMem(path); close(fdm[1]); close(fdl[1]); printk_receive_fd(fdl[0]); if (shm_receive(fdm[0]) && shm_shrink()) c = ReadGlobals(); close(fdm[0]); close(fdl[0]); break; } } else { close(fdm[0]); close(fdm[1]); } } if (!c) shm_abort(); return c; #endif } EXTERN_C byte InitModule(module Module) { Module->DoInit = rcload; return ttrue; } EXTERN_C void QuitModule(module Module) { } #endif /* TWIN_RCPARSE_H */ ���������������������������������������������������������������������������������������������������twin-0.9.0/server/rcparse.l�������������������������������������������������������������������������0000664�0000000�0000000�00000022247�13775351206�0015643�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������%{ /* -*-c-*- * * rcparse.l -- lex back-end of ~/.twinrc parser for twin * * Copyright (C) 2000-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "rctypes.h" #include "rcparse_tab.hpp" #define IS_OCTDIGIT(c) ((c) >= '0' && (c) <= '7') #define IS_HEXDIGIT(c) (((c) >= '0' && (c) <= '9') || ((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f')) #define HEX2INT(c) ((c) >= 'a' ? (c) - 'a' + 10 : (c) >= 'A' ? (c) - 'A' + 10 : (c) - '0') #define MAX_READ_DEPTH 64 static YY_BUFFER_STATE read_stack[MAX_READ_DEPTH]; int read_stack_curr = 0; char *file_name[MAX_READ_DEPTH]; int line_no[MAX_READ_DEPTH]; static int yywrap(void); static char errbuf[256]; /* twin.h typedefs `msg'... avoid it */ #define msg Msg #ifdef PURE_PARSER # define YY_DECL int yylex(YYSTYPE *_yylval, void *yylloc) # define yylval (*_yylval) #endif #define YY_SKIP_YYWRAP #define YY_NO_SCAN_BYTES #define YY_NO_SCAN_STRING #define YY_NO_UNPUT #define YY_NO_SCAN_BUFFER /*#undef YY_STACK_USED*/ #define YY_USE_PROTOS %} DEC [0-9] OCT [0-7] HEX [0-9A-Fa-f] NONZERO [1-9] ALPHA [A-Za-z_] ALNUM {ALPHA}|\-|{DEC} ID {ALPHA}{ALNUM}* DECNUMBER {NONZERO}{DEC}* OCTNUMBER "0"{OCT}* HEXNUMBER ("0x"|"0X"){HEX}+ NUMBER ({DECNUMBER}|{OCTNUMBER}|{HEXNUMBER}) OCTCHAR \\{OCTAL}{OCTAL}{OCTAL} HEXCHAR \\[xX]{HEX}{HEX} %% AddScreen return ADDSCREEN; AddToFunc return ADDTOFUNC; AddToMenu return ADDTOMENU; Background return BACKGROUND; Border return BORDER; Button return BUTTON; DeleteFunc return DELETEFUNC; DeleteMenu return DELETEMENU; DeleteButton return DELETEBUTTON; DeleteScreen return DELETESCREEN; Exec return EXEC; ExecTty return EXECTTY; GlobalFlags return GLOBALFLAGS; Interactive return INTERACTIVE; Key return KEY; Menu return MENU; Mouse return MOUSE; Module return MODULE; Move return MOVE; MoveScreen return MOVESCREEN; Next return NEXT; Prev return PREV; Read return READ; Restart return RESTART; Resize return RESIZE; ResizeScreen return RESIZESCREEN; Screen return SCREEN; Scroll return SCROLL; SendToScreen return SENDTOSCREEN; Stderr return STDERR; Sleep return SLEEP; SyntheticKey return SYNTHETICKEY; Wait return WAIT; Window return WINDOW; Focus { yylval.val = FOCUS; return FLAG_FUNC; } Roll { yylval.val = ROLL; return FLAG_FUNC; } Beep { yylval.val = BEEP; return EASY_FUNC; } Center { yylval.val = CENTER; return EASY_FUNC; } Close { yylval.val = CLOSE; return EASY_FUNC; } FullScreen { yylval.val = FULLSCREEN; return EASY_FUNC; } Kill { yylval.val = KILL; return EASY_FUNC; } Lower { yylval.val = LOWER; return EASY_FUNC; } Maximize { yylval.val = MAXIMIZE; return EASY_FUNC; } Nop { yylval.val = NOP; return EASY_FUNC; } Quit { yylval.val = QUIT; return EASY_FUNC; } Raise { yylval.val = RAISE; return EASY_FUNC; } RaiseLower { yylval.val = RAISELOWER; return EASY_FUNC; } Refresh { yylval.val = REFRESH; return EASY_FUNC; } WindowList { yylval.val = WINDOWLIST; return EASY_FUNC; } On return FL_ON; Off return FL_OFF; Toggle return FL_TOGGLE; Active return FL_ACTIVE; Inactive return FL_INACTIVE; Left return FL_LEFT; Right return FL_RIGHT; ButtonPaste|PasteButton return BUTTON_PASTE; ButtonSelection|SelectionButton return BUTTON_SELECTION; Shadows return SHADOWS; AltFont { yylval.val = ALTFONT; return GLOBAL_FLAG; } Blink { yylval.val = BLINK; return GLOBAL_FLAG; } CursorAlways|AlwaysCursor { yylval.val = CURSOR_ALWAYS;return GLOBAL_FLAG; } MenuHide|HideMenu { yylval.val = MENU_HIDE; return GLOBAL_FLAG; } MenuInfo { yylval.val = MENU_INFO; return GLOBAL_FLAG; } MenuRelax { yylval.val = MENU_RELAX; return GLOBAL_FLAG; } ScreenScroll|EdgeScroll { yylval.val = SCREEN_SCROLL;return GLOBAL_FLAG; } TerminalsUtf8 { yylval.val = TERMINALS_UTF8; return GLOBAL_FLAG; } Alt { yylval.val = KBD_ALT_FL; return KBD_FLAG; } Ctrl { yylval.val = KBD_CTRL_FL; return KBD_FLAG; } Shift { yylval.val = KBD_SHIFT_FL; return KBD_FLAG; } Black { yylval.val = tblack; return COLOR; } Blue { yylval.val = tblue; return COLOR; } Green { yylval.val = tgreen; return COLOR; } Cyan { yylval.val = tcyan; return COLOR; } Red { yylval.val = tred; return COLOR; } Magenta { yylval.val = tmagenta; return COLOR; } Yellow { yylval.val = tyellow; return COLOR; } White { yylval.val = twhite; return COLOR; } Bold|High return COL_HIGH; \n { LINE_NO++; return '\n'; } \; { return '\n'; } "#"[^\n]* /* eat comments */ {ID} { yylval._string = my_strdup(yytext); return STRING; } {NUMBER} { yylval.val = strtol(yytext, NULL, 0); return NUMBER; } [\(\)\+\-] return (unsigned char)yytext[0]; ({ALPHA}|{DEC})+ { sprintf(errbuf, "twin: %.200s:%d: invalid identifier `%s'\n", FILE_NAME, LINE_NO, yytext); YY_FATAL_ERROR(errbuf); } \"([^\"]|(\\.))*\" { int len = strlen(yytext + 1); char c, *p = yytext + 1; char *res = (char *)my_malloc(len), *s = res; while ((c = *p)) { if (c != '\\' || !p[1]) *s++ = *p++; else switch(*++p) { case 'a': *s++ = '\a'; break; case 'b': *s++ = '\b'; break; case 'e': *s++ = '\033'; break; case 'f': *s++ = '\f'; break; case 'n': *s++ = '\n'; break; case 'r': *s++ = '\r'; break; case 't': *s++ = '\t'; break; case 'v': *s++ = '\v'; break; case '0': *s++ = '\0'; break; case 'u': /* FIXME: unicode is ok, but s is a (char *), not (trune *) ! */ if (IS_HEXDIGIT(p[1]) && IS_HEXDIGIT(p[2]) && IS_HEXDIGIT(p[3]) && IS_HEXDIGIT(p[4])) { *s++ = (((HEX2INT(p[1]) << 4) | HEX2INT(p[2])) << 8) | ((HEX2INT(p[3]) << 4) | HEX2INT(p[2])); p += 5; } break; case 'x': if (IS_HEXDIGIT(p[1]) && IS_HEXDIGIT(p[2])) { *s++ = (HEX2INT(p[1]) << 4) | HEX2INT(p[2]); p += 3; } break; default: if (IS_OCTDIGIT(p[0]) && IS_OCTDIGIT(p[1]) && IS_OCTDIGIT(p[2])) { *s++ = ((p[0] - '0') << 6) | ((p[1] - '0') << 3) | (p[2] - '0'); p += 3; } else if (*p == '0') *s++ = '\0', p++; else *s++ = *p++; break; } } s[-1] = '\0'; /* overwrite final \" */ yylval._string = res; return STRING; } \"([^\"]|(\\.))* { char *buf = (char *)AllocMem(256 + strlen(yytext)); if (buf) { sprintf(buf, "twin: %.200s:%d: unterminated string:\n%s\n", FILE_NAME, LINE_NO, yytext); YY_FATAL_ERROR(buf); } else { YY_FATAL_ERROR("twin: unterminated string\n"); } } [\t\r\f\v ]+ /* eat whitespace */ . { unsigned char ch = yytext[0]; sprintf(errbuf, "twin: %.200s:%d: illegal character 0x%02X", FILE_NAME, LINE_NO, ch); if (ch >= 32 && ch < 127) { sprintf(errbuf + strlen(errbuf), " `%c'\n", ch); } else strcat(errbuf, "\n"); YY_FATAL_ERROR(errbuf); } %% int set_yy_file(const char *path) { uldat len; FILE *f; if (!path) return 1; if (read_stack_curr >= MAX_READ_DEPTH) { fprintf(stderr, "twin: %s:%d: `Read' commands nested too deeply!\n", FILE_NAME, LINE_NO); return 0; } if (!(f = fopen(path, "r"))) return 1; len = strlen(path) + 1; read_stack[read_stack_curr++] = YY_CURRENT_BUFFER; LINE_NO = 1; FILE_NAME = (char *)my_malloc(len); CopyMem(path, FILE_NAME, len); yy_switch_to_buffer(yy_create_buffer(yyin = f, YY_BUF_SIZE)); BEGIN(INITIAL); return 0; } static int yywrap(void) { if ( read_stack_curr > 0 ) { fclose(yyin); yy_delete_buffer( YY_CURRENT_BUFFER ); yy_switch_to_buffer(read_stack[--read_stack_curr]); BEGIN(INITIAL); } return read_stack_curr <= 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/rcparse.y�������������������������������������������������������������������������0000664�0000000�0000000�00000022263�13775351206�0015656�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* -*-c-*- * * rcparse.y -- bison ~/.twinrc parser for twin * * Copyright (C) 2000-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ %{ /* * C declarations */ #include <stdlib.h> #include <sys/stat.h> #include <sys/socket.h> #include <Tw/Twkeys.h> #include <Tutf/Tutf.h> #include "twin.h" #include "algo.h" #include "alloc.h" #include "methods.h" #include "data.h" #include "extreg.h" #include "hw.h" #include "main.h" #include "printk.h" #include "rctypes.h" #include "util.h" #include "version.h" #include "wm.h" #include "rcrun.h" /* needs wm.h, rctypes.h */ #include "rcparse_tab.hpp" /* needs rcrun.h */ #include "rcparse.h" /* needs rcparse_tab.hpp */ /* also put here the CONF_* and DEBUG_* used in rcparse.h so that MkDep catches them */ #if defined(DEBUG_RC) || defined(DEBUG_FORK) #endif /* * try to get meaningful error messages */ #define YYERROR_VERBOSE #ifdef DEBUG_YACC # define YYDEBUG 1 int yydebug = 1; static void yyprint(FILE *file, int type, void *value); # define YYPRINT(file, type, value) yyprint(file, type, &(value)) #endif /* twin.h typedefs `msg'... avoid it */ #define msg Msg %} /* * BISON declarations */ %union { ldat val; ldat_list *val_list; str _string; byte imm; node _node; } /* #ifdef PURE_PARSER %pure_parser #endif */ /* keywords: */ /* tokens not valid in a function: */ %token '(' ')' ADDSCREEN ADDTOMENU ADDTOFUNC %token BACKGROUND BORDER BUTTON %token DELETEFUNC DELETEMENU DELETEBUTTON DELETESCREEN %token READ /* tokens valid as first function token */ %token EXEC EXECTTY GLOBALFLAGS INTERACTIVE KEY %token MENU MODULE MOUSE MOVE MOVESCREEN NEXT NOP PREV %token RESTART RESIZE RESIZESCREEN %token SCREEN SCROLL SENDTOSCREEN SLEEP STDERR %token SYNTHETICKEY WAIT WINDOW %token '\n' %token <val> EASY_FUNC /* one of or */ %token BEEP CENTER CLOSE KILL QUIT REFRESH WINDOWLIST %token <val> FLAG_FUNC /* one of or */ %token FOCUS MAXIMIZE FULLSCREEN LOWER RAISE RAISELOWER ROLL %token USERFUNC /* end of tokens valid as first function token */ %token '+' '-' FL_ON FL_OFF FL_TOGGLE FL_ACTIVE FL_INACTIVE FL_LEFT FL_RIGHT %token <val> GLOBAL_FLAG /* one of */ %token ALTFONT CURSOR_ALWAYS BLINK MENU_HIDE MENU_INFO MENU_RELAX SCREEN_SCROLL TERMINALS_UTF8 SHADOWS %token BUTTON_PASTE BUTTON_SELECTION %token <val> COLOR %token COL_HIGH %token <val> KBD_FLAG /* one of KBD_*_FL in twin.h */ /* atoms: */ %token <val> NUMBER %token <_string> STRING /* complicated things: */ %type <val> color high %type <_string> string %type <val> interactive_mode move_or_resize %type <val> flag opt_flag flag_active opt_flag_toggle flag_lr %type <val> flag_kbd opt_flag_kbd %type <imm> nl opt_nl immediate_line %type <_node> func line %type <_node> global_flag funcbody menubody textbody %type <_node> string_list line_list global_list %type <_node> funcbody_list _funcbody_list %type <_node> menubody_list _menubody_list %type <_node> textbody_list _textbody_list %start rcfile %% /* * Grammar rules */ rcfile : line_list { CallList = $1; } ; line_list : line { $$ = AddtoNodeList(NULL, $1); } | line_list line { $$ = AddtoNodeList( $1 , $2); } ; line : immediate_line '\n' { $$ = NULL; } | func '\n' { $$ = $1; } | READ string '\n' { set_yy_file(FindFile($2, NULL)); $$ = NULL; } | '\n' { $$ = NULL; } ; nl : '\n' {} | nl '\n' {} ; opt_nl : /* nothing */ {} | nl {} ; immediate_line : ADDSCREEN string { $$ = ImmAddScreen($2); } | ADDTOMENU string { $$ = MergeMenu($2, NULL); } | ADDTOMENU string menubody_list { $$ = MergeMenu($2, $3 ); } | ADDTOFUNC string { $$ = MergeFunc($2, NULL); } | ADDTOFUNC string funcbody_list { $$ = MergeFunc($2, $3 ); } | BACKGROUND string color { $$ = ImmBackground($2, $3, NULL); } | BACKGROUND string color textbody_list { $$ = ImmBackground($2, $3, $4 ); } | BORDER string flag_active { $$ = ImmBorder($2, $3, NULL); } | BORDER string flag_active textbody_list { $$ = ImmBorder($2, $3, $4 ); } | BUTTON NUMBER string flag_lr { $$ = ImmButton($2, $3, $4, '+', 0); } | BUTTON NUMBER string flag_lr opt_flag NUMBER { $$ = ImmButton($2, $3, $4, $5, $6); } | DELETEFUNC string { $$ = ImmDeleteFunc($2); } | DELETEMENU string { $$ = ImmDeleteMenu($2); } | DELETEBUTTON NUMBER { $$ = ImmDeleteButton($2); } | DELETESCREEN string { $$ = ImmDeleteScreen($2); } | GLOBALFLAGS global_list { $$ = ImmGlobalFlags($2); } | KEY opt_flag_kbd string func { $$ = BindKey ($2, $3, $4); } | MOUSE string string func { $$ = BindMouse($2, $3, $4); } ; funcbody_list : '(' opt_nl _funcbody_list ')' { $$ = $3; } ; _funcbody_list : funcbody { $$ = AddtoNodeList(NULL, $1); } | _funcbody_list funcbody { $$ = AddtoNodeList( $1 , $2); } ; funcbody : func nl { $$ = $1; } ; menubody_list : '(' opt_nl _menubody_list ')' { $$ = $3; } ; _menubody_list : menubody { $$ = AddtoNodeList(NULL, $1); } | _menubody_list menubody { $$ = AddtoNodeList( $1 , $2); } ; menubody : string func nl { $$ = MakeNodeBody($1, $2, NULL); } ; textbody_list : '(' opt_nl _textbody_list ')' { $$ = $3; } ; _textbody_list : textbody { $$ = AddtoNodeList(NULL, $1); } | _textbody_list textbody { $$ = AddtoNodeList( $1 , $2); } ; textbody : string nl { $$ = MakeNode($1); } ; color : NUMBER { $$ = (tcolor) $1; } | high COLOR { $$ = TCOL($1|$2, tblack); } | high COLOR FL_ON high COLOR { $$ = TCOL($1|$2, $4|$5); } | FL_ON high COLOR { $$ = TCOL(twhite, $2|$3); } ; high : /* nothing */ { $$ = (tcolor)0; } | COL_HIGH { $$ = thigh; } ; global_list : global_flag { $$ = AddtoNodeList(NULL, $1); } | global_list global_flag { $$ = AddtoNodeList( $1 , $2); } ; global_flag : GLOBAL_FLAG { $$ = MakeFlagNode($1, 0); } | flag GLOBAL_FLAG { $$ = MakeFlagNode($2, $1); } | SHADOWS NUMBER NUMBER { $$ = MakeShadowsNode($2, $3); } | flag SHADOWS { $$ = MakeFlagNode(SHADOWS, $1); } | BUTTON_PASTE NUMBER { $$ = MakeFlagNode(BUTTON_PASTE, $2); } | BUTTON_SELECTION NUMBER { $$ = MakeFlagNode(BUTTON_SELECTION, $2); } ; func : string { $$ = MakeUserFunc($1); } | EASY_FUNC { $$ = MakeBuiltinFunc($1); } | EXEC string_list { $$ = MakeExec($2); } | EXECTTY string_list { $$ = MakeExecTty($2); } | FLAG_FUNC opt_flag_toggle { $$ = MakeFlagNode($1, $2); } | INTERACTIVE interactive_mode { $$ = MakeFlagNode(INTERACTIVE, $2); } | MODULE string opt_flag_toggle { $$ = MakeModuleNode($2, $3); } | MENU { $$ = MakeBuiltinFunc(MENU); } | move_or_resize opt_flag NUMBER opt_flag NUMBER { $$ = MakeMoveResizeScroll($1, $2, $3, $4, $5); } | NEXT { $$ = MakeWindowNumber('+', 1); } | RESTART string { $$ = MakeRestartWM($2); } | PREV { $$ = MakeWindowNumber('-', 1); } | SCROLL opt_flag NUMBER opt_flag NUMBER { $$ = MakeMoveResizeScroll(SCROLL, $2, $3, $4, $5); } | SENDTOSCREEN string { $$ = MakeSendToScreen($2); } | SLEEP NUMBER { $$ = MakeSleep($2); } | STDERR string_list { $$ = MakeStderr($2); } | SYNTHETICKEY opt_flag_kbd string { $$ = MakeSyntheticKey($2, $3); } | WAIT string { $$ = MakeWait($2); } | WINDOW opt_flag NUMBER { $$ = MakeWindowNumber($2, $3); } | WINDOW STRING { $$ = MakeWindow($2); } ; string_list : string { $$ = AddtoStringList((node)0, $1); } | string_list string { $$ = AddtoStringList( $1, $2); } ; string : STRING | NUMBER { $$ = toString($1); } ; interactive_mode: SCROLL { $$ = SCROLL; } | MENU { $$ = MENU; } | MOVE { $$ = MOVE; } | RESIZE { $$ = RESIZE; } | SCREEN { $$ = SCREEN; } ; move_or_resize : MOVE { $$ = MOVE; } | MOVESCREEN { $$ = MOVESCREEN; } | RESIZE { $$ = RESIZE; } | RESIZESCREEN { $$ = RESIZESCREEN; } ; opt_flag : /* nothing */ { $$ = 0; } | flag ; flag : '+' { $$ = '+'; } | '-' { $$ = '-'; } ; opt_flag_kbd : /* nothing */ { $$ = 0; } | flag_kbd ; flag_kbd : KBD_FLAG | KBD_FLAG flag { $$ = $1 | $2; } ; opt_flag_toggle : /* nothing */ { $$ = FL_ON; } | FL_ON { $$ = FL_ON; } | FL_OFF { $$ = FL_OFF; } | FL_TOGGLE { $$ = FL_TOGGLE; } ; flag_active : FL_ACTIVE { $$ = FL_ACTIVE; } | FL_INACTIVE { $$ = FL_INACTIVE; } ; flag_lr : FL_LEFT { $$ = FL_LEFT; } | FL_RIGHT { $$ = FL_RIGHT; } ; %% #ifdef DEBUG_YACC static void yyprint(FILE *file, int type, void *value) { if (type == NUMBER) fprintf (file, " %d", ((YYSTYPE *)value)->val); else if (type == STRING) fprintf (file, " \"%s\"", ((YYSTYPE *)value)->_string); else if (type == GLOBAL_FLAG || type == FLAG_FUNC || type == EASY_FUNC || type == COLOR) fprintf (file, " %s", TokenName(((YYSTYPE *)value)->val)); } #endif static byte rcparse(const char *path) { return set_yy_file(path) == 0 && yyparse() == 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/rcparse_lex.cpp�������������������������������������������������������������������0000664�0000000�0000000�00000234171�13775351206�0017043�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#line 2 "rcparse_lex.cpp" #line 4 "rcparse_lex.cpp" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 #define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include <stdio.h> #include <string.h> #include <errno.h> #include <stdlib.h> /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, * if you want the limit (max/min) macros for int types. */ #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 #endif #include <inttypes.h> typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; #else typedef signed char flex_int8_t; typedef short int flex_int16_t; typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; /* Limits of integral types. */ #ifndef INT8_MIN #define INT8_MIN (-128) #endif #ifndef INT16_MIN #define INT16_MIN (-32767-1) #endif #ifndef INT32_MIN #define INT32_MIN (-2147483647-1) #endif #ifndef INT8_MAX #define INT8_MAX (127) #endif #ifndef INT16_MAX #define INT16_MAX (32767) #endif #ifndef INT32_MAX #define INT32_MAX (2147483647) #endif #ifndef UINT8_MAX #define UINT8_MAX (255U) #endif #ifndef UINT16_MAX #define UINT16_MAX (65535U) #endif #ifndef UINT32_MAX #define UINT32_MAX (4294967295U) #endif #ifndef SIZE_MAX #define SIZE_MAX (~(size_t)0) #endif #endif /* ! C99 */ #endif /* ! FLEXINT_H */ /* begin standard C++ headers. */ /* TODO: this is always defined, so inline it */ #define yyconst const #if defined(__GNUC__) && __GNUC__ >= 3 #define yynoreturn __attribute__((__noreturn__)) #else #define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an * integer in range [0..255] for use as an array index. */ #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) /* Special action meaning "start processing a new file". */ #define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. * Ditto for the __ia64__ case accordingly. */ #define YY_BUF_SIZE 32768 #else #define YY_BUF_SIZE 16384 #endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. */ #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) #ifndef YY_TYPEDEF_YY_BUFFER_STATE #define YY_TYPEDEF_YY_BUFFER_STATE typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; #endif extern int yyleng; extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state { FILE *yy_input_file; char *yy_ch_buf; /* input buffer */ char *yy_buf_pos; /* current position in input buffer */ /* Size of input buffer in bytes, not including room for EOB * characters. */ int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to * delete it. */ int yy_is_our_buffer; /* Whether this is an "interactive" input source; if so, and * if we're using stdio for input, then we want to use getc() * instead of fread(), to make sure we stop fetching input after * each newline. */ int yy_is_interactive; /* Whether we're considered to be at the beginning of a line. * If so, '^' rules will be active on the next match, otherwise * not. */ int yy_at_bol; int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ /* Whether to try to fill the input buffer when we reach the * end of it. */ int yy_fill_buffer; int yy_buffer_status; #define YY_BUFFER_NEW 0 #define YY_BUFFER_NORMAL 1 /* When an EOF's been seen but there's still some text to process * then we mark the buffer as YY_EOF_PENDING, to indicate that we * shouldn't try reading from the input source any more. We might * still have a bunch of tokens to match, though, because of * possible backing-up. * * When we actually see the EOF, we change the status to "new" * (via yyrestart()), so that the user can continue scanning by * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general * "scanner state". * * Returns the top of the stack, or NULL. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow yywrap()'s to do buffer switches * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void yyrestart ( FILE *input_file ); void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); void yy_delete_buffer ( YY_BUFFER_STATE b ); void yy_flush_buffer ( YY_BUFFER_STATE b ); void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); void yypop_buffer_state ( void ); static void yyensure_buffer_stack ( void ); static void yy_load_buffer_state ( void ); static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); void *yyalloc ( yy_size_t ); void *yyrealloc ( void *, yy_size_t ); void yyfree ( void * ); #define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ typedef flex_uint8_t YY_CHAR; FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif #define yytext_ptr yytext static yy_state_type yy_get_previous_state ( void ); static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); static int yy_get_next_buffer ( void ); static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 91 #define YY_END_OF_BUFFER 92 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info { flex_int32_t yy_verify; flex_int32_t yy_nxt; }; static const flex_int16_t yy_accept[473] = { 0, 0, 0, 92, 90, 89, 80, 88, 82, 85, 84, 84, 81, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 89, 88, 87, 88, 82, 84, 86, 86, 84, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 50, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 88, 87, 88, 84, 83, 83, 68, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 15, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 44, 51, 83, 83, 83, 83, 83, 75, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 37, 83, 83, 72, 79, 83, 83, 83, 83, 69, 83, 74, 83, 83, 11, 83, 83, 83, 83, 83, 83, 83, 41, 55, 83, 83, 83, 16, 83, 83, 19, 21, 83, 22, 45, 83, 23, 83, 83, 83, 83, 36, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 33, 83, 83, 83, 83, 83, 83, 83, 83, 83, 71, 61, 83, 83, 83, 39, 83, 83, 83, 83, 35, 83, 83, 73, 83, 83, 83, 42, 83, 83, 83, 83, 83, 83, 17, 83, 83, 46, 83, 83, 83, 56, 83, 83, 83, 83, 83, 70, 31, 83, 83, 83, 83, 78, 83, 83, 53, 83, 83, 83, 83, 83, 83, 5, 6, 38, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 18, 83, 83, 83, 83, 25, 83, 27, 28, 83, 83, 83, 30, 83, 83, 52, 34, 77, 83, 83, 83, 60, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 12, 83, 83, 83, 83, 83, 76, 83, 83, 83, 83, 83, 83, 83, 48, 83, 24, 83, 83, 83, 59, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 63, 54, 83, 43, 64, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 1, 2, 3, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 65, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 4, 83, 83, 83, 83, 7, 8, 83, 66, 40, 83, 83, 20, 83, 47, 83, 83, 83, 83, 83, 83, 49, 83, 57, 83, 83, 83, 83, 13, 14, 83, 83, 83, 83, 83, 83, 62, 83, 9, 10, 26, 83, 29, 32, 83, 83, 83, 67, 83, 83, 58, 0 } ; static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 5, 1, 1, 1, 1, 6, 6, 1, 6, 1, 7, 1, 1, 8, 9, 9, 9, 9, 9, 9, 9, 10, 11, 1, 12, 1, 1, 1, 1, 1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 22, 34, 35, 36, 22, 1, 37, 1, 1, 22, 1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 22, 47, 48, 49, 50, 51, 52, 22, 53, 54, 55, 56, 57, 58, 59, 60, 61, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static const YY_CHAR yy_meta[62] = { 0, 1, 1, 2, 1, 1, 1, 3, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 } ; static const flex_int16_t yy_base[479] = { 0, 0, 0, 997, 998, 994, 998, 58, 0, 998, 55, 57, 998, 62, 67, 64, 65, 63, 70, 77, 71, 66, 988, 85, 86, 91, 90, 93, 101, 78, 106, 128, 104, 133, 138, 992, 145, 998, 147, 0, 67, 0, 181, 71, 0, 986, 92, 131, 146, 153, 158, 170, 154, 151, 155, 152, 156, 157, 149, 167, 168, 204, 174, 179, 162, 210, 218, 211, 178, 221, 222, 223, 224, 225, 229, 228, 226, 230, 985, 234, 232, 233, 236, 251, 227, 243, 237, 247, 238, 235, 257, 246, 240, 256, 253, 260, 254, 265, 297, 298, 304, 0, 273, 296, 76, 302, 303, 304, 305, 307, 309, 308, 311, 310, 313, 315, 314, 316, 317, 318, 319, 323, 322, 324, 325, 329, 331, 330, 326, 332, 984, 335, 336, 337, 339, 340, 341, 346, 347, 348, 351, 983, 982, 352, 369, 370, 373, 375, 981, 377, 378, 386, 380, 381, 387, 393, 396, 392, 397, 398, 388, 389, 401, 391, 402, 403, 404, 385, 382, 405, 407, 406, 410, 980, 408, 412, 979, 978, 411, 413, 429, 434, 977, 414, 976, 440, 441, 442, 443, 444, 453, 454, 455, 456, 460, 975, 974, 461, 462, 466, 463, 470, 474, 471, 973, 475, 972, 971, 478, 970, 479, 472, 481, 480, 969, 482, 483, 485, 491, 487, 489, 493, 494, 492, 496, 498, 968, 499, 500, 501, 515, 502, 525, 503, 519, 521, 967, 966, 522, 520, 523, 965, 527, 529, 532, 533, 964, 541, 542, 963, 547, 549, 553, 962, 551, 552, 554, 555, 557, 559, 961, 556, 82, 558, 560, 561, 562, 960, 570, 571, 572, 577, 576, 959, 958, 578, 579, 580, 587, 957, 585, 586, 956, 590, 595, 597, 600, 241, 601, 955, 605, 954, 244, 628, 603, 602, 604, 606, 610, 609, 618, 611, 615, 630, 631, 616, 953, 619, 633, 634, 638, 647, 640, 656, 952, 654, 660, 643, 951, 641, 661, 950, 658, 949, 662, 663, 666, 948, 668, 670, 672, 673, 674, 677, 679, 681, 685, 683, 947, 686, 691, 687, 694, 695, 946, 696, 698, 700, 699, 702, 701, 704, 945, 705, 944, 707, 710, 712, 943, 711, 720, 713, 714, 723, 722, 724, 725, 734, 735, 739, 741, 742, 748, 746, 747, 751, 753, 942, 931, 758, 924, 923, 759, 760, 762, 763, 766, 767, 764, 769, 772, 773, 774, 917, 916, 915, 775, 765, 777, 779, 778, 780, 783, 782, 794, 793, 787, 796, 800, 914, 801, 802, 803, 804, 808, 817, 806, 819, 827, 818, 823, 913, 826, 832, 836, 837, 912, 902, 838, 898, 896, 840, 842, 895, 843, 894, 845, 847, 848, 855, 856, 851, 893, 854, 892, 857, 859, 858, 860, 885, 884, 864, 863, 862, 868, 869, 872, 883, 870, 879, 875, 248, 871, 160, 159, 81, 874, 876, 94, 878, 882, 80, 998, 932, 936, 82, 938, 942, 944 } ; static const flex_int16_t yy_def[479] = { 0, 472, 1, 472, 472, 472, 472, 473, 474, 472, 475, 475, 472, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 472, 473, 472, 477, 474, 475, 475, 475, 475, 478, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 473, 473, 477, 42, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 0, 472, 472, 472, 472, 472, 472 } ; static const flex_int16_t yy_nxt[1060] = { 0, 4, 5, 6, 7, 8, 9, 9, 10, 11, 11, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 22, 33, 22, 34, 4, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 37, 40, 40, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 40, 40, 44, 44, 43, 43, 43, 43, 44, 44, 44, 41, 44, 44, 44, 42, 468, 44, 44, 170, 38, 308, 44, 44, 44, 44, 44, 46, 47, 60, 49, 54, 59, 44, 50, 48, 44, 55, 44, 42, 51, 67, 66, 52, 56, 57, 62, 61, 53, 58, 64, 63, 68, 70, 72, 65, 69, 75, 73, 81, 44, 77, 71, 44, 79, 44, 76, 74, 78, 82, 44, 92, 102, 83, 37, 36, 99, 84, 44, 80, 93, 44, 85, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 86, 44, 87, 94, 103, 88, 44, 44, 89, 44, 95, 96, 97, 44, 38, 90, 100, 44, 44, 118, 91, 101, 101, 101, 101, 106, 101, 101, 101, 101, 101, 101, 107, 104, 111, 115, 105, 114, 113, 112, 108, 116, 117, 44, 120, 124, 122, 119, 109, 44, 44, 101, 101, 101, 101, 101, 101, 44, 110, 123, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 130, 44, 44, 44, 44, 44, 44, 44, 121, 44, 44, 128, 44, 44, 125, 44, 44, 44, 328, 332, 44, 126, 44, 44, 127, 44, 44, 132, 129, 44, 134, 131, 137, 151, 44, 142, 144, 136, 156, 158, 141, 145, 44, 133, 146, 135, 157, 138, 139, 140, 143, 147, 153, 152, 148, 161, 149, 154, 160, 155, 159, 163, 162, 37, 37, 44, 165, 150, 164, 36, 99, 44, 44, 44, 44, 166, 44, 44, 44, 44, 44, 167, 44, 44, 44, 44, 44, 44, 44, 168, 169, 44, 44, 44, 44, 44, 38, 38, 44, 44, 44, 44, 171, 100, 44, 44, 44, 174, 44, 44, 44, 177, 172, 176, 178, 44, 44, 44, 173, 175, 44, 44, 185, 186, 182, 187, 190, 179, 193, 184, 180, 181, 183, 191, 189, 192, 194, 177, 44, 44, 188, 197, 44, 198, 44, 195, 44, 44, 199, 44, 44, 44, 203, 196, 44, 44, 44, 44, 44, 200, 44, 44, 44, 202, 201, 44, 44, 44, 204, 205, 44, 44, 44, 44, 44, 44, 44, 44, 209, 44, 44, 44, 44, 44, 231, 215, 211, 207, 206, 208, 214, 217, 210, 213, 216, 212, 218, 220, 44, 219, 224, 221, 222, 44, 230, 223, 228, 225, 226, 44, 44, 44, 44, 44, 229, 238, 235, 236, 232, 227, 233, 237, 44, 44, 44, 44, 239, 242, 234, 44, 44, 44, 44, 240, 244, 44, 245, 247, 241, 44, 44, 44, 250, 44, 44, 256, 257, 44, 44, 44, 44, 44, 44, 248, 44, 258, 44, 243, 44, 246, 44, 44, 44, 44, 261, 44, 249, 44, 44, 44, 44, 44, 44, 251, 254, 252, 253, 255, 260, 262, 259, 266, 263, 264, 44, 271, 268, 270, 44, 44, 44, 44, 44, 269, 44, 265, 44, 267, 44, 276, 272, 44, 44, 279, 277, 284, 273, 274, 278, 275, 44, 44, 285, 280, 281, 286, 44, 283, 44, 282, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 290, 293, 294, 287, 288, 289, 291, 44, 44, 44, 292, 296, 309, 44, 44, 44, 44, 44, 295, 298, 297, 300, 44, 44, 44, 299, 307, 44, 302, 305, 303, 306, 44, 311, 44, 304, 301, 44, 44, 44, 44, 44, 44, 44, 310, 312, 44, 44, 44, 314, 313, 319, 44, 44, 340, 44, 44, 315, 316, 321, 320, 318, 324, 330, 317, 44, 331, 44, 44, 326, 44, 44, 333, 322, 323, 44, 334, 44, 44, 344, 44, 325, 329, 335, 44, 327, 337, 339, 343, 336, 341, 44, 338, 44, 348, 44, 342, 44, 44, 44, 44, 346, 349, 44, 347, 44, 345, 44, 353, 44, 44, 44, 361, 352, 44, 351, 44, 355, 44, 350, 44, 357, 44, 44, 44, 354, 359, 358, 44, 360, 356, 44, 44, 44, 362, 44, 44, 44, 44, 44, 367, 44, 44, 363, 44, 368, 364, 44, 44, 44, 44, 44, 369, 372, 365, 373, 366, 44, 375, 44, 44, 44, 44, 370, 374, 371, 378, 382, 380, 376, 377, 44, 44, 377, 383, 386, 44, 387, 44, 44, 379, 381, 389, 44, 44, 44, 384, 390, 44, 392, 44, 388, 385, 394, 393, 44, 44, 44, 391, 44, 44, 44, 44, 44, 44, 397, 44, 396, 395, 44, 44, 44, 44, 399, 44, 44, 44, 44, 398, 44, 44, 407, 402, 406, 44, 405, 401, 400, 403, 404, 44, 44, 410, 44, 408, 412, 421, 44, 44, 44, 44, 44, 417, 44, 415, 44, 424, 411, 409, 413, 414, 423, 416, 426, 44, 44, 44, 418, 419, 420, 44, 438, 422, 44, 44, 425, 428, 430, 427, 44, 431, 429, 440, 44, 44, 44, 436, 44, 439, 44, 44, 433, 44, 434, 44, 44, 435, 432, 44, 437, 441, 44, 44, 44, 44, 44, 44, 44, 444, 44, 44, 44, 445, 442, 443, 44, 44, 44, 44, 44, 448, 44, 44, 44, 450, 44, 44, 451, 447, 44, 44, 44, 44, 444, 449, 452, 446, 454, 455, 44, 44, 44, 44, 44, 453, 44, 456, 457, 459, 44, 460, 429, 458, 457, 461, 465, 466, 462, 463, 44, 44, 44, 44, 44, 44, 469, 467, 470, 471, 464, 44, 44, 471, 36, 36, 36, 36, 39, 44, 39, 39, 45, 45, 98, 98, 98, 98, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 35, 44, 35, 472, 3, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472 } ; static const flex_int16_t yy_chk[1060] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 10, 10, 11, 11, 11, 11, 13, 17, 15, 16, 21, 14, 40, 40, 18, 20, 43, 43, 43, 43, 104, 19, 29, 475, 471, 465, 262, 10, 465, 23, 24, 104, 7, 262, 26, 25, 46, 27, 468, 13, 13, 17, 14, 15, 16, 28, 14, 13, 32, 15, 30, 10, 14, 21, 20, 14, 15, 15, 18, 17, 14, 15, 19, 18, 23, 24, 25, 19, 23, 26, 25, 29, 31, 27, 24, 47, 28, 33, 26, 25, 27, 30, 34, 32, 46, 30, 36, 38, 38, 30, 48, 28, 32, 58, 30, 53, 55, 49, 52, 54, 56, 57, 50, 464, 463, 31, 64, 31, 33, 47, 31, 59, 60, 31, 51, 33, 33, 34, 62, 36, 31, 38, 68, 63, 58, 31, 42, 42, 42, 42, 49, 42, 42, 42, 42, 42, 42, 50, 48, 52, 55, 48, 54, 53, 52, 51, 56, 57, 61, 60, 64, 62, 59, 51, 65, 67, 42, 42, 42, 42, 42, 42, 66, 51, 63, 69, 70, 71, 72, 73, 76, 84, 75, 74, 77, 68, 80, 81, 79, 89, 82, 86, 88, 61, 92, 287, 67, 85, 292, 65, 91, 87, 461, 287, 292, 83, 66, 94, 96, 66, 93, 90, 70, 67, 95, 72, 69, 74, 84, 97, 77, 80, 73, 88, 89, 76, 81, 102, 71, 82, 72, 88, 74, 74, 75, 79, 83, 86, 85, 83, 92, 83, 87, 91, 87, 90, 94, 93, 98, 99, 103, 96, 83, 95, 100, 100, 105, 106, 107, 108, 97, 109, 111, 110, 113, 112, 102, 114, 116, 115, 117, 118, 119, 120, 103, 103, 122, 121, 123, 124, 128, 98, 99, 125, 127, 126, 129, 105, 100, 131, 132, 133, 108, 134, 135, 136, 111, 106, 110, 112, 137, 138, 139, 107, 109, 140, 143, 119, 120, 116, 121, 124, 113, 128, 118, 114, 115, 117, 125, 123, 126, 129, 127, 144, 145, 122, 133, 146, 134, 147, 131, 149, 150, 135, 152, 153, 168, 139, 132, 167, 151, 154, 160, 161, 136, 163, 157, 155, 138, 137, 156, 158, 159, 140, 143, 162, 164, 165, 166, 169, 171, 170, 174, 147, 172, 178, 175, 179, 183, 168, 153, 150, 145, 144, 146, 152, 154, 149, 151, 153, 150, 155, 157, 180, 156, 161, 158, 159, 181, 167, 160, 165, 162, 163, 185, 186, 187, 188, 189, 166, 178, 172, 174, 169, 164, 170, 175, 190, 191, 192, 193, 179, 183, 171, 194, 197, 198, 200, 180, 186, 199, 187, 189, 181, 201, 203, 211, 192, 202, 205, 200, 200, 208, 210, 213, 212, 215, 216, 190, 217, 200, 219, 185, 220, 188, 218, 223, 221, 222, 203, 224, 191, 225, 227, 228, 229, 231, 233, 193, 198, 194, 197, 199, 202, 205, 201, 212, 208, 210, 230, 218, 215, 217, 234, 239, 235, 238, 240, 216, 232, 211, 242, 213, 243, 223, 219, 244, 245, 227, 224, 232, 220, 221, 225, 222, 247, 248, 232, 228, 229, 233, 250, 231, 251, 230, 254, 255, 252, 256, 257, 261, 258, 263, 259, 264, 265, 266, 239, 243, 244, 234, 235, 238, 240, 268, 269, 270, 242, 247, 263, 272, 271, 275, 276, 277, 245, 250, 248, 252, 280, 281, 278, 251, 261, 283, 255, 258, 256, 259, 284, 265, 285, 257, 254, 286, 288, 295, 294, 296, 290, 297, 264, 266, 299, 298, 301, 269, 268, 276, 302, 305, 297, 300, 307, 270, 271, 278, 277, 275, 283, 290, 272, 293, 290, 303, 304, 285, 308, 309, 293, 280, 281, 310, 293, 312, 319, 301, 317, 284, 288, 293, 311, 286, 294, 296, 300, 293, 298, 315, 295, 313, 305, 322, 299, 316, 320, 324, 325, 303, 307, 326, 304, 328, 302, 329, 311, 330, 331, 332, 322, 310, 333, 309, 334, 313, 335, 308, 337, 316, 336, 339, 341, 312, 319, 317, 340, 320, 315, 342, 343, 345, 324, 346, 348, 347, 350, 349, 330, 351, 353, 325, 355, 331, 326, 356, 359, 357, 361, 362, 332, 335, 328, 336, 329, 360, 339, 364, 363, 365, 366, 333, 337, 334, 342, 348, 345, 340, 346, 367, 368, 341, 349, 353, 369, 355, 370, 371, 343, 347, 357, 373, 374, 372, 350, 359, 375, 361, 376, 356, 351, 363, 362, 379, 382, 383, 360, 384, 385, 388, 397, 386, 387, 366, 389, 365, 364, 390, 391, 392, 396, 368, 398, 400, 399, 401, 367, 403, 402, 376, 371, 375, 406, 374, 370, 369, 372, 373, 405, 404, 383, 407, 379, 385, 397, 408, 410, 411, 412, 413, 390, 416, 388, 414, 400, 384, 382, 386, 387, 399, 389, 402, 415, 419, 417, 391, 392, 396, 420, 415, 398, 422, 418, 401, 404, 406, 403, 423, 407, 405, 417, 424, 425, 428, 413, 431, 416, 432, 434, 410, 436, 411, 437, 438, 412, 408, 441, 414, 418, 443, 439, 440, 445, 447, 446, 448, 422, 453, 452, 451, 423, 419, 420, 454, 455, 458, 462, 456, 428, 466, 460, 467, 432, 469, 459, 436, 425, 470, 457, 450, 449, 434, 431, 437, 424, 439, 440, 444, 442, 435, 433, 430, 438, 429, 441, 443, 447, 427, 448, 452, 445, 446, 451, 456, 458, 453, 454, 426, 421, 409, 395, 394, 393, 466, 462, 467, 469, 455, 381, 380, 470, 473, 473, 473, 473, 474, 378, 474, 474, 476, 476, 477, 477, 477, 477, 478, 478, 377, 358, 354, 352, 344, 338, 327, 323, 321, 318, 314, 306, 291, 289, 282, 279, 274, 273, 267, 260, 253, 249, 246, 241, 237, 236, 226, 214, 209, 207, 206, 204, 196, 195, 184, 182, 177, 176, 173, 148, 142, 141, 130, 78, 45, 35, 22, 5, 3, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472 } ; static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. */ #define REJECT reject_used_but_not_detected #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; #line 1 "rcparse.l" #line 2 "rcparse.l" /* -*-c-*- * * rcparse.l -- lex back-end of ~/.twinrc parser for twin * * Copyright (C) 2000-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "rctypes.h" #include "rcparse_tab.hpp" #define IS_OCTDIGIT(c) ((c) >= '0' && (c) <= '7') #define IS_HEXDIGIT(c) (((c) >= '0' && (c) <= '9') || ((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f')) #define HEX2INT(c) ((c) >= 'a' ? (c) - 'a' + 10 : (c) >= 'A' ? (c) - 'A' + 10 : (c) - '0') #define MAX_READ_DEPTH 64 static YY_BUFFER_STATE read_stack[MAX_READ_DEPTH]; int read_stack_curr = 0; char *file_name[MAX_READ_DEPTH]; int line_no[MAX_READ_DEPTH]; static int yywrap(void); static char errbuf[256]; /* twin.h typedefs `msg'... avoid it */ #define msg Msg #ifdef PURE_PARSER # define YY_DECL int yylex(YYSTYPE *_yylval, void *yylloc) # define yylval (*_yylval) #endif #define YY_SKIP_YYWRAP #define YY_NO_SCAN_BYTES #define YY_NO_SCAN_STRING #define YY_NO_UNPUT #define YY_NO_SCAN_BUFFER /*#undef YY_STACK_USED*/ #define YY_USE_PROTOS #line 882 "rcparse_lex.cpp" #line 883 "rcparse_lex.cpp" #define INITIAL 0 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way * down here because we want the user's section 1 to have been scanned first. * The user has a chance to override it with an option. */ #include <unistd.h> #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ int yylex_destroy ( void ); int yyget_debug ( void ); void yyset_debug ( int debug_flag ); YY_EXTRA_TYPE yyget_extra ( void ); void yyset_extra ( YY_EXTRA_TYPE user_defined ); FILE *yyget_in ( void ); void yyset_in ( FILE * _in_str ); FILE *yyget_out ( void ); void yyset_out ( FILE * _out_str ); int yyget_leng ( void ); char *yyget_text ( void ); int yyget_lineno ( void ); void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int yywrap ( void ); #else extern int yywrap ( void ); #endif #endif #ifndef YY_NO_UNPUT static void yyunput ( int c, char *buf_ptr ); #endif #ifndef yytext_ptr static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput ( void ); #else static int input ( void ); #endif #endif /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE #ifdef __ia64__ /* On IA-64, the buffer size is 16k, not 8k */ #define YY_READ_BUF_SIZE 16384 #else #define YY_READ_BUF_SIZE 8192 #endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ #ifndef ECHO /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, * is returned in "result". */ #ifndef YY_INPUT #define YY_INPUT(buf,result,max_size) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ int n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(yyin); \ } \ }\ \ #endif /* No semi-colon after return; correct usage is to write "yyterminate();" - * we don't want an extra ';' after the "return" because that will cause * some compilers to complain about unreachable statements. */ #ifndef yyterminate #define yyterminate() return YY_NULL #endif /* Number of entries by which start-condition stack grows. */ #ifndef YY_START_STACK_INCR #define YY_START_STACK_INCR 25 #endif /* Report a fatal error. */ #ifndef YY_FATAL_ERROR #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) #endif /* end tables serialization structures and prototypes */ /* Default declaration of generated scanner - a define so the user can * easily add parameters. */ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 extern int yylex (void); #define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION #define YY_USER_ACTION #endif /* Code executed at the end of each rule. */ #ifndef YY_BREAK #define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { yy_state_type yy_current_state; char *yy_cp, *yy_bp; int yy_act; if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! yyin ) yyin = stdin; if ( ! yyout ) yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_load_buffer_state( ); } { #line 70 "rcparse.l" #line 1103 "rcparse_lex.cpp" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of * the current run. */ yy_bp = yy_cp; yy_current_state = (yy_start); yy_match: do { YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 473 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 998 ); yy_find_action: yy_act = yy_accept[yy_current_state]; if ( yy_act == 0 ) { /* have to back up */ yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); yy_act = yy_accept[yy_current_state]; } YY_DO_BEFORE_ACTION; do_action: /* This label is used only to access EOF actions. */ switch ( yy_act ) { /* beginning of action switch */ case 0: /* must back up */ /* undo the effects of YY_DO_BEFORE_ACTION */ *yy_cp = (yy_hold_char); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); goto yy_find_action; case 1: YY_RULE_SETUP #line 72 "rcparse.l" return ADDSCREEN; YY_BREAK case 2: YY_RULE_SETUP #line 73 "rcparse.l" return ADDTOFUNC; YY_BREAK case 3: YY_RULE_SETUP #line 74 "rcparse.l" return ADDTOMENU; YY_BREAK case 4: YY_RULE_SETUP #line 75 "rcparse.l" return BACKGROUND; YY_BREAK case 5: YY_RULE_SETUP #line 76 "rcparse.l" return BORDER; YY_BREAK case 6: YY_RULE_SETUP #line 77 "rcparse.l" return BUTTON; YY_BREAK case 7: YY_RULE_SETUP #line 78 "rcparse.l" return DELETEFUNC; YY_BREAK case 8: YY_RULE_SETUP #line 79 "rcparse.l" return DELETEMENU; YY_BREAK case 9: YY_RULE_SETUP #line 80 "rcparse.l" return DELETEBUTTON; YY_BREAK case 10: YY_RULE_SETUP #line 81 "rcparse.l" return DELETESCREEN; YY_BREAK case 11: YY_RULE_SETUP #line 82 "rcparse.l" return EXEC; YY_BREAK case 12: YY_RULE_SETUP #line 83 "rcparse.l" return EXECTTY; YY_BREAK case 13: YY_RULE_SETUP #line 84 "rcparse.l" return GLOBALFLAGS; YY_BREAK case 14: YY_RULE_SETUP #line 85 "rcparse.l" return INTERACTIVE; YY_BREAK case 15: YY_RULE_SETUP #line 86 "rcparse.l" return KEY; YY_BREAK case 16: YY_RULE_SETUP #line 87 "rcparse.l" return MENU; YY_BREAK case 17: YY_RULE_SETUP #line 88 "rcparse.l" return MOUSE; YY_BREAK case 18: YY_RULE_SETUP #line 89 "rcparse.l" return MODULE; YY_BREAK case 19: YY_RULE_SETUP #line 90 "rcparse.l" return MOVE; YY_BREAK case 20: YY_RULE_SETUP #line 91 "rcparse.l" return MOVESCREEN; YY_BREAK case 21: YY_RULE_SETUP #line 92 "rcparse.l" return NEXT; YY_BREAK case 22: YY_RULE_SETUP #line 93 "rcparse.l" return PREV; YY_BREAK case 23: YY_RULE_SETUP #line 94 "rcparse.l" return READ; YY_BREAK case 24: YY_RULE_SETUP #line 95 "rcparse.l" return RESTART; YY_BREAK case 25: YY_RULE_SETUP #line 96 "rcparse.l" return RESIZE; YY_BREAK case 26: YY_RULE_SETUP #line 97 "rcparse.l" return RESIZESCREEN; YY_BREAK case 27: YY_RULE_SETUP #line 98 "rcparse.l" return SCREEN; YY_BREAK case 28: YY_RULE_SETUP #line 99 "rcparse.l" return SCROLL; YY_BREAK case 29: YY_RULE_SETUP #line 100 "rcparse.l" return SENDTOSCREEN; YY_BREAK case 30: YY_RULE_SETUP #line 101 "rcparse.l" return STDERR; YY_BREAK case 31: YY_RULE_SETUP #line 102 "rcparse.l" return SLEEP; YY_BREAK case 32: YY_RULE_SETUP #line 103 "rcparse.l" return SYNTHETICKEY; YY_BREAK case 33: YY_RULE_SETUP #line 104 "rcparse.l" return WAIT; YY_BREAK case 34: YY_RULE_SETUP #line 105 "rcparse.l" return WINDOW; YY_BREAK case 35: YY_RULE_SETUP #line 107 "rcparse.l" { yylval.val = FOCUS; return FLAG_FUNC; } YY_BREAK case 36: YY_RULE_SETUP #line 108 "rcparse.l" { yylval.val = ROLL; return FLAG_FUNC; } YY_BREAK case 37: YY_RULE_SETUP #line 110 "rcparse.l" { yylval.val = BEEP; return EASY_FUNC; } YY_BREAK case 38: YY_RULE_SETUP #line 111 "rcparse.l" { yylval.val = CENTER; return EASY_FUNC; } YY_BREAK case 39: YY_RULE_SETUP #line 112 "rcparse.l" { yylval.val = CLOSE; return EASY_FUNC; } YY_BREAK case 40: YY_RULE_SETUP #line 113 "rcparse.l" { yylval.val = FULLSCREEN; return EASY_FUNC; } YY_BREAK case 41: YY_RULE_SETUP #line 114 "rcparse.l" { yylval.val = KILL; return EASY_FUNC; } YY_BREAK case 42: YY_RULE_SETUP #line 115 "rcparse.l" { yylval.val = LOWER; return EASY_FUNC; } YY_BREAK case 43: YY_RULE_SETUP #line 116 "rcparse.l" { yylval.val = MAXIMIZE; return EASY_FUNC; } YY_BREAK case 44: YY_RULE_SETUP #line 117 "rcparse.l" { yylval.val = NOP; return EASY_FUNC; } YY_BREAK case 45: YY_RULE_SETUP #line 118 "rcparse.l" { yylval.val = QUIT; return EASY_FUNC; } YY_BREAK case 46: YY_RULE_SETUP #line 119 "rcparse.l" { yylval.val = RAISE; return EASY_FUNC; } YY_BREAK case 47: YY_RULE_SETUP #line 120 "rcparse.l" { yylval.val = RAISELOWER; return EASY_FUNC; } YY_BREAK case 48: YY_RULE_SETUP #line 121 "rcparse.l" { yylval.val = REFRESH; return EASY_FUNC; } YY_BREAK case 49: YY_RULE_SETUP #line 122 "rcparse.l" { yylval.val = WINDOWLIST; return EASY_FUNC; } YY_BREAK case 50: YY_RULE_SETUP #line 124 "rcparse.l" return FL_ON; YY_BREAK case 51: YY_RULE_SETUP #line 125 "rcparse.l" return FL_OFF; YY_BREAK case 52: YY_RULE_SETUP #line 126 "rcparse.l" return FL_TOGGLE; YY_BREAK case 53: YY_RULE_SETUP #line 127 "rcparse.l" return FL_ACTIVE; YY_BREAK case 54: YY_RULE_SETUP #line 128 "rcparse.l" return FL_INACTIVE; YY_BREAK case 55: YY_RULE_SETUP #line 129 "rcparse.l" return FL_LEFT; YY_BREAK case 56: YY_RULE_SETUP #line 130 "rcparse.l" return FL_RIGHT; YY_BREAK case 57: YY_RULE_SETUP #line 131 "rcparse.l" return BUTTON_PASTE; YY_BREAK case 58: YY_RULE_SETUP #line 132 "rcparse.l" return BUTTON_SELECTION; YY_BREAK case 59: YY_RULE_SETUP #line 133 "rcparse.l" return SHADOWS; YY_BREAK case 60: YY_RULE_SETUP #line 135 "rcparse.l" { yylval.val = ALTFONT; return GLOBAL_FLAG; } YY_BREAK case 61: YY_RULE_SETUP #line 136 "rcparse.l" { yylval.val = BLINK; return GLOBAL_FLAG; } YY_BREAK case 62: YY_RULE_SETUP #line 137 "rcparse.l" { yylval.val = CURSOR_ALWAYS;return GLOBAL_FLAG; } YY_BREAK case 63: YY_RULE_SETUP #line 139 "rcparse.l" { yylval.val = MENU_HIDE; return GLOBAL_FLAG; } YY_BREAK case 64: YY_RULE_SETUP #line 141 "rcparse.l" { yylval.val = MENU_INFO; return GLOBAL_FLAG; } YY_BREAK case 65: YY_RULE_SETUP #line 142 "rcparse.l" { yylval.val = MENU_RELAX; return GLOBAL_FLAG; } YY_BREAK case 66: YY_RULE_SETUP #line 143 "rcparse.l" { yylval.val = SCREEN_SCROLL;return GLOBAL_FLAG; } YY_BREAK case 67: YY_RULE_SETUP #line 145 "rcparse.l" { yylval.val = TERMINALS_UTF8; return GLOBAL_FLAG; } YY_BREAK case 68: YY_RULE_SETUP #line 146 "rcparse.l" { yylval.val = KBD_ALT_FL; return KBD_FLAG; } YY_BREAK case 69: YY_RULE_SETUP #line 147 "rcparse.l" { yylval.val = KBD_CTRL_FL; return KBD_FLAG; } YY_BREAK case 70: YY_RULE_SETUP #line 148 "rcparse.l" { yylval.val = KBD_SHIFT_FL; return KBD_FLAG; } YY_BREAK case 71: YY_RULE_SETUP #line 150 "rcparse.l" { yylval.val = tblack; return COLOR; } YY_BREAK case 72: YY_RULE_SETUP #line 151 "rcparse.l" { yylval.val = tblue; return COLOR; } YY_BREAK case 73: YY_RULE_SETUP #line 152 "rcparse.l" { yylval.val = tgreen; return COLOR; } YY_BREAK case 74: YY_RULE_SETUP #line 153 "rcparse.l" { yylval.val = tcyan; return COLOR; } YY_BREAK case 75: YY_RULE_SETUP #line 154 "rcparse.l" { yylval.val = tred; return COLOR; } YY_BREAK case 76: YY_RULE_SETUP #line 155 "rcparse.l" { yylval.val = tmagenta; return COLOR; } YY_BREAK case 77: YY_RULE_SETUP #line 156 "rcparse.l" { yylval.val = tyellow; return COLOR; } YY_BREAK case 78: YY_RULE_SETUP #line 157 "rcparse.l" { yylval.val = twhite; return COLOR; } YY_BREAK case 79: YY_RULE_SETUP #line 158 "rcparse.l" return COL_HIGH; YY_BREAK case 80: /* rule 80 can match eol */ YY_RULE_SETUP #line 160 "rcparse.l" { LINE_NO++; return '\n'; } YY_BREAK case 81: YY_RULE_SETUP #line 162 "rcparse.l" { return '\n'; } YY_BREAK case 82: YY_RULE_SETUP #line 164 "rcparse.l" /* eat comments */ YY_BREAK case 83: YY_RULE_SETUP #line 166 "rcparse.l" { yylval._string = my_strdup(yytext); return STRING; } YY_BREAK case 84: YY_RULE_SETUP #line 171 "rcparse.l" { yylval.val = strtol(yytext, NULL, 0); return NUMBER; } YY_BREAK case 85: YY_RULE_SETUP #line 176 "rcparse.l" return (unsigned char)yytext[0]; YY_BREAK case 86: YY_RULE_SETUP #line 178 "rcparse.l" { sprintf(errbuf, "twin: %.200s:%d: invalid identifier `%s'\n", FILE_NAME, LINE_NO, yytext); YY_FATAL_ERROR(errbuf); } YY_BREAK case 87: /* rule 87 can match eol */ YY_RULE_SETUP #line 184 "rcparse.l" { int len = strlen(yytext + 1); char c, *p = yytext + 1; char *res = (char *)my_malloc(len), *s = res; while ((c = *p)) { if (c != '\\' || !p[1]) *s++ = *p++; else switch(*++p) { case 'a': *s++ = '\a'; break; case 'b': *s++ = '\b'; break; case 'e': *s++ = '\033'; break; case 'f': *s++ = '\f'; break; case 'n': *s++ = '\n'; break; case 'r': *s++ = '\r'; break; case 't': *s++ = '\t'; break; case 'v': *s++ = '\v'; break; case '0': *s++ = '\0'; break; case 'u': /* FIXME: unicode is ok, but s is a (char *), not (trune *) ! */ if (IS_HEXDIGIT(p[1]) && IS_HEXDIGIT(p[2]) && IS_HEXDIGIT(p[3]) && IS_HEXDIGIT(p[4])) { *s++ = (((HEX2INT(p[1]) << 4) | HEX2INT(p[2])) << 8) | ((HEX2INT(p[3]) << 4) | HEX2INT(p[2])); p += 5; } break; case 'x': if (IS_HEXDIGIT(p[1]) && IS_HEXDIGIT(p[2])) { *s++ = (HEX2INT(p[1]) << 4) | HEX2INT(p[2]); p += 3; } break; default: if (IS_OCTDIGIT(p[0]) && IS_OCTDIGIT(p[1]) && IS_OCTDIGIT(p[2])) { *s++ = ((p[0] - '0') << 6) | ((p[1] - '0') << 3) | (p[2] - '0'); p += 3; } else if (*p == '0') *s++ = '\0', p++; else *s++ = *p++; break; } } s[-1] = '\0'; /* overwrite final \" */ yylval._string = res; return STRING; } YY_BREAK case 88: /* rule 88 can match eol */ YY_RULE_SETUP #line 240 "rcparse.l" { char *buf = (char *)AllocMem(256 + strlen(yytext)); if (buf) { sprintf(buf, "twin: %.200s:%d: unterminated string:\n%s\n", FILE_NAME, LINE_NO, yytext); YY_FATAL_ERROR(buf); } else { YY_FATAL_ERROR("twin: unterminated string\n"); } } YY_BREAK case 89: YY_RULE_SETUP #line 251 "rcparse.l" /* eat whitespace */ YY_BREAK case 90: YY_RULE_SETUP #line 254 "rcparse.l" { unsigned char ch = yytext[0]; sprintf(errbuf, "twin: %.200s:%d: illegal character 0x%02X", FILE_NAME, LINE_NO, ch); if (ch >= 32 && ch < 127) { sprintf(errbuf + strlen(errbuf), " `%c'\n", ch); } else strcat(errbuf, "\n"); YY_FATAL_ERROR(errbuf); } YY_BREAK case 91: YY_RULE_SETUP #line 265 "rcparse.l" ECHO; YY_BREAK #line 1703 "rcparse_lex.cpp" case YY_STATE_EOF(INITIAL): yyterminate(); case YY_END_OF_BUFFER: { /* Amount of text matched not including the EOB char. */ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; /* Undo the effects of YY_DO_BEFORE_ACTION. */ *yy_cp = (yy_hold_char); YY_RESTORE_YY_MORE_OFFSET if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) { /* We're scanning a new file or input source. It's * possible that this happened because the user * just pointed yyin at a new source and called * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } /* Note that here we test for yy_c_buf_p "<=" to the position * of the first EOB in the buffer, since yy_c_buf_p will * already have been incremented past the NUL character * (since all states make transitions on EOB to the * end-of-buffer state). Contrast this with the test * in input(). */ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) { /* This was really a NUL. */ yy_state_type yy_next_state; (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); /* Okay, we're now positioned to make the NUL * transition. We couldn't have * yy_get_previous_state() go ahead and do it * for us because it doesn't know how to deal * with the possibility of jamming (and we don't * want to build jamming into it because then it * will run more slowly). */ yy_next_state = yy_try_NUL_trans( yy_current_state ); yy_bp = (yytext_ptr) + YY_MORE_ADJ; if ( yy_next_state ) { /* Consume the NUL. */ yy_cp = ++(yy_c_buf_p); yy_current_state = yy_next_state; goto yy_match; } else { yy_cp = (yy_c_buf_p); goto yy_find_action; } } else switch ( yy_get_next_buffer( ) ) { case EOB_ACT_END_OF_FILE: { (yy_did_buffer_switch_on_eof) = 0; if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the * YY_NULL, it'll still work - another * YY_NULL will get returned. */ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; yy_act = YY_STATE_EOF(YY_START); goto do_action; } else { if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; } break; } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_match; case EOB_ACT_LAST_MATCH: (yy_c_buf_p) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; yy_current_state = yy_get_previous_state( ); yy_cp = (yy_c_buf_p); yy_bp = (yytext_ptr) + YY_MORE_ADJ; goto yy_find_action; } break; } default: YY_FATAL_ERROR( "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ } /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * * Returns a code representing an action: * EOB_ACT_LAST_MATCH - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position * EOB_ACT_END_OF_FILE - end of file */ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) YY_FATAL_ERROR( "fatal flex scanner internal error--end of buffer missed" ); if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) { /* Don't try to fill the buffer, so this is an EOF. */ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) { /* We matched a single character, the EOB, so * treat this as a final EOF. */ return EOB_ACT_END_OF_FILE; } else { /* We matched some text prior to the EOB, first * process it. */ return EOB_ACT_LAST_MATCH; } } /* Try to read more data. */ /* First move last chars to start of buffer. */ number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) /* don't do the read, it's not guaranteed to return an EOF, * just force an EOF */ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; else { int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ /* just a shorter name for the current buffer */ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; int yy_c_buf_p_offset = (int) ((yy_c_buf_p) - b->yy_ch_buf); if ( b->yy_is_our_buffer ) { int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; else b->yy_buf_size *= 2; b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ yyrealloc( (void *) b->yy_ch_buf, (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "fatal error - scanner input buffer overflow" ); (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; } if ( num_to_read > YY_READ_BUF_SIZE ) num_to_read = YY_READ_BUF_SIZE; /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } if ( (yy_n_chars) == 0 ) { if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; yyrestart( yyin ); } else { ret_val = EOB_ACT_LAST_MATCH; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_EOF_PENDING; } } else ret_val = EOB_ACT_CONTINUE_SCAN; if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); /* "- 2" to take care of EOB's */ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; return ret_val; } /* yy_get_previous_state - get the state just before the EOB char was reached */ static yy_state_type yy_get_previous_state (void) { yy_state_type yy_current_state; char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 473 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; } /* yy_try_NUL_trans - try to make a transition on the NUL character * * synopsis * next_state = yy_try_NUL_trans( current_state ); */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { int yy_is_jam; char *yy_cp = (yy_c_buf_p); YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; (yy_last_accepting_cpos) = yy_cp; } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 473 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 472); return yy_is_jam ? 0 : yy_current_state; } #ifndef YY_NO_UNPUT static void yyunput (int c, char * yy_bp ) { char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up yytext */ *yy_cp = (yy_hold_char); if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ int number_to_move = (yy_n_chars) + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) *--dest = *--source; yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); } *--yy_cp = (char) c; (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #endif #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) #else static int input (void) #endif { int c; *(yy_c_buf_p) = (yy_hold_char); if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) { /* yy_c_buf_p now points to the character we want to return. * If this occurs *before* the EOB characters, then it's a * valid NUL; if not, then we've hit the end of the buffer. */ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) /* This was really a NUL. */ *(yy_c_buf_p) = '\0'; else { /* need more input */ int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) { case EOB_ACT_LAST_MATCH: /* This happens because yy_g_n_b() * sees that we've accumulated a * token and flags that we need to * try matching the token before * proceeding. But for input(), * there's no matching to consider. * So convert the EOB_ACT_LAST_MATCH * to EOB_ACT_END_OF_FILE. */ /* Reset buffer status. */ yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; #ifdef __cplusplus return yyinput(); #else return input(); #endif } case EOB_ACT_CONTINUE_SCAN: (yy_c_buf_p) = (yytext_ptr) + offset; break; } } } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); return c; } #endif /* ifndef YY_NO_INPUT */ /** Immediately switch to a different input stream. * @param input_file A readable stream. * * @note This function does not reset the start condition to @c INITIAL . */ void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = yy_create_buffer( yyin, YY_BUF_SIZE ); } yy_init_buffer( YY_CURRENT_BUFFER, input_file ); yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * yypop_buffer_state(); * yypush_buffer_state(new_buffer); */ yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } YY_CURRENT_BUFFER_LVALUE = new_buffer; yy_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (yywrap()) processing, but the only time this flag * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } /** Allocate and initialize an input buffer state. * @param file A readable stream. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. * * @return the allocated buffer state. */ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; yy_init_buffer( b, file ); return b; } /** Destroy the buffer. * @param b a buffer created with yy_create_buffer() * */ void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) yyfree( (void *) b->yy_ch_buf ); yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a yyrestart() or at EOF. */ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then yy_init_buffer was _probably_ * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ b->yy_bs_lineno = 1; b->yy_bs_column = 0; } b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; errno = oerrno; } /** Discard all buffered characters. On the next scan, YY_INPUT will be called. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; b->yy_n_chars = 0; /* We always need two end-of-buffer characters. The first causes * a transition to the end-of-buffer state. The second causes * a jam in that state. */ b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; b->yy_buf_pos = &b->yy_ch_buf[0]; b->yy_at_bol = 1; b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes * the current state. This function will allocate the stack * if necessary. * @param new_buffer The new state. * */ void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; yyensure_buffer_stack(); /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ *(yy_c_buf_p) = (yy_hold_char); YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } /* Only push if top exists. Otherwise, replace top. */ if (YY_CURRENT_BUFFER) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; /* copied from yy_switch_to_buffer. */ yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } /** Removes and deletes the top of the stack, if present. * The next element becomes the new top. * */ void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { /* First allocation is just for 2 elements, since we don't know if this * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; } if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); (yy_buffer_stack_max) = num_to_alloc; } } /** Setup the input buffer state to scan directly from a user-specified character buffer. * @param base the character buffer * @param size the size in bytes of the character buffer * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; if ( size < 2 || base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ return NULL; b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; yy_switch_to_buffer( b ); return b; } /** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use * yy_scan_bytes() instead. */ YY_BUFFER_STATE yy_scan_string (const char * yystr ) { return yy_scan_bytes( yystr, (int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; int i; /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc( n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; b = yy_scan_buffer( buf, n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. */ b->yy_is_our_buffer = 1; return b; } #ifndef YY_EXIT_FAILURE #define YY_EXIT_FAILURE 2 #endif static void yynoreturn yy_fatal_error (const char* msg ) { fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } /* Redefine yyless() so it works in section 3 code. */ #undef yyless #define yyless(n) \ do \ { \ /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ yytext[yyleng] = (yy_hold_char); \ (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ yyleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int yyget_lineno (void) { return yylineno; } /** Get the input stream. * */ FILE *yyget_in (void) { return yyin; } /** Get the output stream. * */ FILE *yyget_out (void) { return yyout; } /** Get the length of the current token. * */ int yyget_leng (void) { return yyleng; } /** Get the current token. * */ char *yyget_text (void) { return yytext; } /** Set the current line number. * @param _line_number line number * */ void yyset_lineno (int _line_number ) { yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * * @see yy_switch_to_buffer */ void yyset_in (FILE * _in_str ) { yyin = _in_str ; } void yyset_out (FILE * _out_str ) { yyout = _out_str ; } int yyget_debug (void) { return yy_flex_debug; } void yyset_debug (int _bdebug ) { yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from yylex_destroy(), so don't allocate here. */ (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = NULL; yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by * yylex_init() */ return 0; } /* yylex_destroy is for both reentrant and non-reentrant scanners. */ int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; yypop_buffer_state(); } /* Destroy the stack itself. */ yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter * because both ANSI C and C++ allow castless assignment from * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ return realloc(ptr, size); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 265 "rcparse.l" int set_yy_file(const char *path) { uldat len; FILE *f; if (!path) return 1; if (read_stack_curr >= MAX_READ_DEPTH) { fprintf(stderr, "twin: %s:%d: `Read' commands nested too deeply!\n", FILE_NAME, LINE_NO); return 0; } if (!(f = fopen(path, "r"))) return 1; len = strlen(path) + 1; read_stack[read_stack_curr++] = YY_CURRENT_BUFFER; LINE_NO = 1; FILE_NAME = (char *)my_malloc(len); CopyMem(path, FILE_NAME, len); yy_switch_to_buffer(yy_create_buffer(yyin = f, YY_BUF_SIZE)); BEGIN(INITIAL); return 0; } static int yywrap(void) { if ( read_stack_curr > 0 ) { fclose(yyin); yy_delete_buffer( YY_CURRENT_BUFFER ); yy_switch_to_buffer(read_stack[--read_stack_curr]); BEGIN(INITIAL); } return read_stack_curr <= 0; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/rcparse_tab.cpp�������������������������������������������������������������������0000664�0000000�0000000�00000220241�13775351206�0017012�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A Bison parser, made by GNU Bison 3.7.4. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, Inc. This program 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 3 of the License, or (at your option) any later version. This program 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 program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output, and Bison version. */ #define YYBISON 30704 /* Bison version string. */ #define YYBISON_VERSION "3.7.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* First part of user prologue. */ /* * C declarations */ #include <stdlib.h> #include <sys/stat.h> #include <sys/socket.h> #include <Tw/Twkeys.h> #include <Tutf/Tutf.h> #include "twin.h" #include "algo.h" #include "alloc.h" #include "methods.h" #include "data.h" #include "extreg.h" #include "hw.h" #include "main.h" #include "printk.h" #include "rctypes.h" #include "util.h" #include "version.h" #include "wm.h" #include "rcrun.h" /* needs wm.h, rctypes.h */ #include "rcparse_tab.hpp" /* needs rcrun.h */ #include "rcparse.h" /* needs rcparse_tab.hpp */ /* also put here the CONF_* and DEBUG_* used in rcparse.h so that MkDep catches them */ #if defined(DEBUG_RC) || defined(DEBUG_FORK) #endif /* * try to get meaningful error messages */ #define YYERROR_VERBOSE #ifdef DEBUG_YACC # define YYDEBUG 1 int yydebug = 1; static void yyprint(FILE *file, int type, void *value); # define YYPRINT(file, type, value) yyprint(file, type, &(value)) #endif /* twin.h typedefs `msg'... avoid it */ #define msg Msg # ifndef YY_CAST # ifdef __cplusplus # define YY_CAST(Type, Val) static_cast<Type> (Val) # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val) # else # define YY_CAST(Type, Val) ((Type) (Val)) # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) # endif # endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # else # define YY_NULLPTR ((void*)0) # endif # endif #include "rcparse_tab.hpp" /* Symbol kind. */ enum yysymbol_kind_t { YYSYMBOL_YYEMPTY = -2, YYSYMBOL_YYEOF = 0, /* "end of file" */ YYSYMBOL_YYerror = 1, /* error */ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ YYSYMBOL_3_ = 3, /* '(' */ YYSYMBOL_4_ = 4, /* ')' */ YYSYMBOL_ADDSCREEN = 5, /* ADDSCREEN */ YYSYMBOL_ADDTOMENU = 6, /* ADDTOMENU */ YYSYMBOL_ADDTOFUNC = 7, /* ADDTOFUNC */ YYSYMBOL_BACKGROUND = 8, /* BACKGROUND */ YYSYMBOL_BORDER = 9, /* BORDER */ YYSYMBOL_BUTTON = 10, /* BUTTON */ YYSYMBOL_DELETEFUNC = 11, /* DELETEFUNC */ YYSYMBOL_DELETEMENU = 12, /* DELETEMENU */ YYSYMBOL_DELETEBUTTON = 13, /* DELETEBUTTON */ YYSYMBOL_DELETESCREEN = 14, /* DELETESCREEN */ YYSYMBOL_READ = 15, /* READ */ YYSYMBOL_EXEC = 16, /* EXEC */ YYSYMBOL_EXECTTY = 17, /* EXECTTY */ YYSYMBOL_GLOBALFLAGS = 18, /* GLOBALFLAGS */ YYSYMBOL_INTERACTIVE = 19, /* INTERACTIVE */ YYSYMBOL_KEY = 20, /* KEY */ YYSYMBOL_MENU = 21, /* MENU */ YYSYMBOL_MODULE = 22, /* MODULE */ YYSYMBOL_MOUSE = 23, /* MOUSE */ YYSYMBOL_MOVE = 24, /* MOVE */ YYSYMBOL_MOVESCREEN = 25, /* MOVESCREEN */ YYSYMBOL_NEXT = 26, /* NEXT */ YYSYMBOL_NOP = 27, /* NOP */ YYSYMBOL_PREV = 28, /* PREV */ YYSYMBOL_RESTART = 29, /* RESTART */ YYSYMBOL_RESIZE = 30, /* RESIZE */ YYSYMBOL_RESIZESCREEN = 31, /* RESIZESCREEN */ YYSYMBOL_SCREEN = 32, /* SCREEN */ YYSYMBOL_SCROLL = 33, /* SCROLL */ YYSYMBOL_SENDTOSCREEN = 34, /* SENDTOSCREEN */ YYSYMBOL_SLEEP = 35, /* SLEEP */ YYSYMBOL_STDERR = 36, /* STDERR */ YYSYMBOL_SYNTHETICKEY = 37, /* SYNTHETICKEY */ YYSYMBOL_WAIT = 38, /* WAIT */ YYSYMBOL_WINDOW = 39, /* WINDOW */ YYSYMBOL_40_n_ = 40, /* '\n' */ YYSYMBOL_EASY_FUNC = 41, /* EASY_FUNC */ YYSYMBOL_BEEP = 42, /* BEEP */ YYSYMBOL_CENTER = 43, /* CENTER */ YYSYMBOL_CLOSE = 44, /* CLOSE */ YYSYMBOL_KILL = 45, /* KILL */ YYSYMBOL_QUIT = 46, /* QUIT */ YYSYMBOL_REFRESH = 47, /* REFRESH */ YYSYMBOL_WINDOWLIST = 48, /* WINDOWLIST */ YYSYMBOL_FLAG_FUNC = 49, /* FLAG_FUNC */ YYSYMBOL_FOCUS = 50, /* FOCUS */ YYSYMBOL_MAXIMIZE = 51, /* MAXIMIZE */ YYSYMBOL_FULLSCREEN = 52, /* FULLSCREEN */ YYSYMBOL_LOWER = 53, /* LOWER */ YYSYMBOL_RAISE = 54, /* RAISE */ YYSYMBOL_RAISELOWER = 55, /* RAISELOWER */ YYSYMBOL_ROLL = 56, /* ROLL */ YYSYMBOL_USERFUNC = 57, /* USERFUNC */ YYSYMBOL_58_ = 58, /* '+' */ YYSYMBOL_59_ = 59, /* '-' */ YYSYMBOL_FL_ON = 60, /* FL_ON */ YYSYMBOL_FL_OFF = 61, /* FL_OFF */ YYSYMBOL_FL_TOGGLE = 62, /* FL_TOGGLE */ YYSYMBOL_FL_ACTIVE = 63, /* FL_ACTIVE */ YYSYMBOL_FL_INACTIVE = 64, /* FL_INACTIVE */ YYSYMBOL_FL_LEFT = 65, /* FL_LEFT */ YYSYMBOL_FL_RIGHT = 66, /* FL_RIGHT */ YYSYMBOL_GLOBAL_FLAG = 67, /* GLOBAL_FLAG */ YYSYMBOL_ALTFONT = 68, /* ALTFONT */ YYSYMBOL_CURSOR_ALWAYS = 69, /* CURSOR_ALWAYS */ YYSYMBOL_BLINK = 70, /* BLINK */ YYSYMBOL_MENU_HIDE = 71, /* MENU_HIDE */ YYSYMBOL_MENU_INFO = 72, /* MENU_INFO */ YYSYMBOL_MENU_RELAX = 73, /* MENU_RELAX */ YYSYMBOL_SCREEN_SCROLL = 74, /* SCREEN_SCROLL */ YYSYMBOL_TERMINALS_UTF8 = 75, /* TERMINALS_UTF8 */ YYSYMBOL_SHADOWS = 76, /* SHADOWS */ YYSYMBOL_BUTTON_PASTE = 77, /* BUTTON_PASTE */ YYSYMBOL_BUTTON_SELECTION = 78, /* BUTTON_SELECTION */ YYSYMBOL_COLOR = 79, /* COLOR */ YYSYMBOL_COL_HIGH = 80, /* COL_HIGH */ YYSYMBOL_KBD_FLAG = 81, /* KBD_FLAG */ YYSYMBOL_NUMBER = 82, /* NUMBER */ YYSYMBOL_STRING = 83, /* STRING */ YYSYMBOL_YYACCEPT = 84, /* $accept */ YYSYMBOL_rcfile = 85, /* rcfile */ YYSYMBOL_line_list = 86, /* line_list */ YYSYMBOL_line = 87, /* line */ YYSYMBOL_nl = 88, /* nl */ YYSYMBOL_opt_nl = 89, /* opt_nl */ YYSYMBOL_immediate_line = 90, /* immediate_line */ YYSYMBOL_funcbody_list = 91, /* funcbody_list */ YYSYMBOL__funcbody_list = 92, /* _funcbody_list */ YYSYMBOL_funcbody = 93, /* funcbody */ YYSYMBOL_menubody_list = 94, /* menubody_list */ YYSYMBOL__menubody_list = 95, /* _menubody_list */ YYSYMBOL_menubody = 96, /* menubody */ YYSYMBOL_textbody_list = 97, /* textbody_list */ YYSYMBOL__textbody_list = 98, /* _textbody_list */ YYSYMBOL_textbody = 99, /* textbody */ YYSYMBOL_color = 100, /* color */ YYSYMBOL_high = 101, /* high */ YYSYMBOL_global_list = 102, /* global_list */ YYSYMBOL_global_flag = 103, /* global_flag */ YYSYMBOL_func = 104, /* func */ YYSYMBOL_string_list = 105, /* string_list */ YYSYMBOL_string = 106, /* string */ YYSYMBOL_interactive_mode = 107, /* interactive_mode */ YYSYMBOL_move_or_resize = 108, /* move_or_resize */ YYSYMBOL_opt_flag = 109, /* opt_flag */ YYSYMBOL_flag = 110, /* flag */ YYSYMBOL_opt_flag_kbd = 111, /* opt_flag_kbd */ YYSYMBOL_flag_kbd = 112, /* flag_kbd */ YYSYMBOL_opt_flag_toggle = 113, /* opt_flag_toggle */ YYSYMBOL_flag_active = 114, /* flag_active */ YYSYMBOL_flag_lr = 115 /* flag_lr */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; #ifdef short # undef short #endif /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure <limits.h> and (if available) <stdint.h> are included so that the code can choose integer types of a good width. */ #ifndef __PTRDIFF_MAX__ # include <limits.h> /* INFRINGES ON USER NAME SPACE */ # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include <stdint.h> /* INFRINGES ON USER NAME SPACE */ # define YY_STDINT_H # endif #endif /* Narrow types that promote to a signed type and that can represent a signed or unsigned integer of at least N bits. In tables they can save space and decrease cache pressure. Promoting to a signed type helps avoid bugs in integer arithmetic. */ #ifdef __INT_LEAST8_MAX__ typedef __INT_LEAST8_TYPE__ yytype_int8; #elif defined YY_STDINT_H typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef __INT_LEAST16_MAX__ typedef __INT_LEAST16_TYPE__ yytype_int16; #elif defined YY_STDINT_H typedef int_least16_t yytype_int16; #else typedef short yytype_int16; #endif #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ && UINT_LEAST8_MAX <= INT_MAX) typedef uint_least8_t yytype_uint8; #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX typedef unsigned char yytype_uint8; #else typedef short yytype_uint8; #endif #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ typedef __UINT_LEAST16_TYPE__ yytype_uint16; #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ && UINT_LEAST16_MAX <= INT_MAX) typedef uint_least16_t yytype_uint16; #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX typedef unsigned short yytype_uint16; #else typedef int yytype_uint16; #endif #ifndef YYPTRDIFF_T # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ # define YYPTRDIFF_T __PTRDIFF_TYPE__ # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ # elif defined PTRDIFF_MAX # ifndef ptrdiff_t # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # endif # define YYPTRDIFF_T ptrdiff_t # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX # else # define YYPTRDIFF_T long # define YYPTRDIFF_MAXIMUM LONG_MAX # endif #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned # endif #endif #define YYSIZE_MAXIMUM \ YY_CAST (YYPTRDIFF_T, \ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ ? YYPTRDIFF_MAXIMUM \ : YY_CAST (YYSIZE_T, -1))) #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) /* Stored state numbers (used for stacks). */ typedef yytype_uint8 yy_state_t; /* State numbers in computations. */ typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif #ifndef YY_ATTRIBUTE_PURE # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define YY_ATTRIBUTE_PURE # endif #endif #ifndef YY_ATTRIBUTE_UNUSED # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # else # define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) #else # define YYUSE(E) /* empty */ #endif #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ # define YY_IGNORE_USELESS_CAST_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") # define YY_IGNORE_USELESS_CAST_END \ _Pragma ("GCC diagnostic pop") #endif #ifndef YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_END #endif #define YY_ASSERT(E) ((void) (0 && (E))) #if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include <alloca.h> /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include <malloc.h> /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's 'empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 94 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 275 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 84 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 32 /* YYNRULES -- Number of rules. */ #define YYNRULES 105 /* YYNSTATES -- Number of states. */ #define YYNSTATES 174 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 333 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ (0 <= (YYX) && (YYX) <= YYMAXUTOK \ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ static const yytype_int8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 40, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 2, 58, 2, 59, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { 0, 158, 158, 161, 162, 165, 166, 167, 168, 171, 172, 175, 176, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 199, 202, 203, 206, 209, 212, 213, 216, 219, 222, 223, 226, 229, 230, 231, 232, 235, 236, 239, 240, 243, 244, 245, 246, 247, 248, 251, 252, 253, 254, 255, 256, 258, 259, 260, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 275, 276, 279, 280, 283, 284, 285, 286, 287, 290, 291, 292, 293, 296, 297, 300, 301, 304, 305, 308, 309, 312, 313, 314, 315, 318, 319, 322, 323 }; #endif /** Accessing symbol of state STATE. */ #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) #if YYDEBUG || 0 /* The user-facing name of the symbol whose (internal) number is YYSYMBOL. No bounds checking. */ static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "\"end of file\"", "error", "\"invalid token\"", "'('", "')'", "ADDSCREEN", "ADDTOMENU", "ADDTOFUNC", "BACKGROUND", "BORDER", "BUTTON", "DELETEFUNC", "DELETEMENU", "DELETEBUTTON", "DELETESCREEN", "READ", "EXEC", "EXECTTY", "GLOBALFLAGS", "INTERACTIVE", "KEY", "MENU", "MODULE", "MOUSE", "MOVE", "MOVESCREEN", "NEXT", "NOP", "PREV", "RESTART", "RESIZE", "RESIZESCREEN", "SCREEN", "SCROLL", "SENDTOSCREEN", "SLEEP", "STDERR", "SYNTHETICKEY", "WAIT", "WINDOW", "'\\n'", "EASY_FUNC", "BEEP", "CENTER", "CLOSE", "KILL", "QUIT", "REFRESH", "WINDOWLIST", "FLAG_FUNC", "FOCUS", "MAXIMIZE", "FULLSCREEN", "LOWER", "RAISE", "RAISELOWER", "ROLL", "USERFUNC", "'+'", "'-'", "FL_ON", "FL_OFF", "FL_TOGGLE", "FL_ACTIVE", "FL_INACTIVE", "FL_LEFT", "FL_RIGHT", "GLOBAL_FLAG", "ALTFONT", "CURSOR_ALWAYS", "BLINK", "MENU_HIDE", "MENU_INFO", "MENU_RELAX", "SCREEN_SCROLL", "TERMINALS_UTF8", "SHADOWS", "BUTTON_PASTE", "BUTTON_SELECTION", "COLOR", "COL_HIGH", "KBD_FLAG", "NUMBER", "STRING", "$accept", "rcfile", "line_list", "line", "nl", "opt_nl", "immediate_line", "funcbody_list", "_funcbody_list", "funcbody", "menubody_list", "_menubody_list", "menubody", "textbody_list", "_textbody_list", "textbody", "color", "high", "global_list", "global_flag", "func", "string_list", "string", "interactive_mode", "move_or_resize", "opt_flag", "flag", "opt_flag_kbd", "flag_kbd", "opt_flag_toggle", "flag_active", "flag_lr", YY_NULLPTR }; static const char * yysymbol_name (yysymbol_kind_t yysymbol) { return yytname[yysymbol]; } #endif #ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ static const yytype_int16 yytoknum[] = { 0, 256, 257, 40, 41, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 10, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 43, 45, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333 }; #endif #define YYPACT_NINF (-119) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) #define YYTABLE_NINF (-91) #define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { 166, -45, -45, -45, -45, -45, -57, -45, -45, -52, -45, -45, -45, -45, -5, 44, -49, -119, -45, -45, -119, -119, -119, -119, -45, -119, -119, -15, -45, -19, -45, -49, -45, -37, -119, -119, 19, -119, -119, 55, 166, -119, 27, 42, -119, -15, -119, 80, 83, -41, -3, -45, -119, -119, -119, -119, 47, -45, -119, -45, -119, -119, -119, 6, 7, 8, -5, -119, -27, -119, -119, -119, -119, -119, -119, -15, -45, -119, 19, -45, -119, 14, -119, -119, -119, -45, -45, -119, -119, 16, -119, -119, -119, -119, -119, -119, -119, -119, 18, 57, -119, 57, -119, 21, -119, -119, 102, 28, -119, -119, 102, 4, -119, -119, 37, -119, -119, -119, -119, -119, -119, 192, -119, 192, -15, -119, -119, -15, -119, 70, -45, 192, 48, 57, -119, 71, -119, -119, -119, -23, -119, -119, -119, 50, 51, -119, 10, -119, 192, 87, -119, 57, -119, -45, 21, 52, -119, -119, -119, -119, 57, -119, -119, 70, 12, -119, 57, 56, -119, 70, -119, -119, 70, -119 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_int8 yydefact[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 64, 0, 0, 86, 87, 66, 68, 0, 88, 89, 90, 0, 0, 0, 94, 0, 90, 8, 58, 98, 80, 79, 0, 2, 3, 0, 0, 57, 90, 13, 14, 16, 47, 0, 0, 24, 25, 26, 27, 0, 59, 77, 60, 92, 93, 51, 0, 0, 0, 28, 49, 0, 82, 83, 84, 85, 81, 62, 96, 0, 95, 98, 0, 67, 0, 91, 70, 71, 72, 0, 74, 76, 0, 99, 100, 101, 61, 1, 4, 5, 6, 0, 11, 15, 11, 17, 47, 48, 43, 18, 0, 102, 103, 20, 0, 7, 78, 0, 55, 56, 50, 52, 54, 97, 0, 63, 0, 90, 73, 75, 90, 9, 12, 0, 0, 0, 11, 19, 44, 21, 104, 105, 22, 53, 29, 30, 0, 0, 10, 0, 36, 0, 0, 32, 0, 46, 0, 47, 0, 69, 65, 35, 37, 0, 31, 33, 34, 0, 40, 0, 0, 23, 38, 39, 41, 42, 45 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -119, -119, -119, 90, -118, -86, -119, -119, -119, -12, -119, -119, -8, 29, -119, -24, -119, -90, -119, 75, -97, 15, -1, -119, -119, -25, -9, 111, -119, 65, -119, -119 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 39, 40, 41, 129, 130, 42, 102, 149, 150, 100, 146, 147, 134, 164, 165, 106, 107, 66, 67, 43, 57, 44, 74, 45, 81, 82, 76, 77, 93, 110, 139 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { 46, 47, 48, 49, 50, 68, 52, 53, 89, 55, 56, 58, 58, 132, 158, 131, 170, 78, 79, 103, 98, 60, 61, 80, 141, 51, 142, 83, 59, 58, 54, 87, 75, 163, 151, 60, 61, 37, 38, 104, 118, 105, 169, 60, 61, 85, 88, 153, 172, 119, 111, 160, 151, 60, 61, 94, 113, 68, 113, -90, 108, 109, 62, 84, 167, 69, 120, 96, 70, 137, 138, 63, 64, 65, 71, 121, 72, 73, 123, 90, 91, 92, 97, 99, 113, 125, 101, 112, 114, 115, 116, 161, 37, 38, 37, 38, 124, 128, 126, 143, 127, 104, 144, 12, 13, 133, 15, 135, 17, 18, 145, 20, 21, 22, 155, 23, 24, 25, 26, 140, 27, 28, 29, 30, 31, 32, 33, 152, 35, 148, 95, 154, 156, 157, 168, 173, 36, 162, 159, 136, 171, 117, 86, 122, 0, 148, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 37, 38, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 34, 35, 12, 13, 0, 15, 0, 17, 18, 36, 20, 21, 22, 0, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 33, 0, 35, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 38 }; static const yytype_int16 yycheck[] = { 1, 2, 3, 4, 5, 14, 7, 8, 33, 10, 11, 12, 13, 103, 4, 101, 4, 18, 19, 60, 45, 58, 59, 24, 121, 82, 123, 28, 13, 30, 82, 32, 81, 151, 131, 58, 59, 82, 83, 80, 67, 82, 160, 58, 59, 30, 83, 133, 166, 76, 51, 148, 149, 58, 59, 0, 57, 66, 59, 82, 63, 64, 67, 82, 154, 21, 75, 40, 24, 65, 66, 76, 77, 78, 30, 76, 32, 33, 79, 60, 61, 62, 40, 3, 85, 86, 3, 40, 82, 82, 82, 4, 82, 83, 82, 83, 82, 40, 82, 124, 82, 80, 127, 16, 17, 3, 19, 79, 21, 22, 40, 24, 25, 26, 139, 28, 29, 30, 31, 82, 33, 34, 35, 36, 37, 38, 39, 79, 41, 130, 40, 60, 82, 82, 82, 79, 49, 149, 146, 110, 164, 66, 31, 78, -1, 146, -1, -1, -1, -1, -1, -1, 153, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 164, -1, -1, -1, -1, -1, 82, 83, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, 30, 31, -1, 33, 34, 35, 36, 37, 38, 39, 40, 41, 16, 17, -1, 19, -1, 21, 22, 49, 24, 25, 26, -1, 28, 29, 30, 31, -1, 33, 34, 35, 36, 37, 38, 39, -1, 41, -1, -1, -1, -1, -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, 82, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 83 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int8 yystos[] = { 0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 49, 82, 83, 85, 86, 87, 90, 104, 106, 108, 106, 106, 106, 106, 106, 82, 106, 106, 82, 106, 106, 105, 106, 105, 58, 59, 67, 76, 77, 78, 102, 103, 110, 21, 24, 30, 32, 33, 107, 81, 111, 112, 106, 106, 106, 109, 110, 106, 82, 105, 111, 106, 83, 109, 60, 61, 62, 113, 0, 87, 40, 40, 109, 3, 94, 3, 91, 60, 80, 82, 100, 101, 63, 64, 114, 106, 40, 106, 82, 82, 82, 103, 67, 76, 110, 106, 113, 106, 82, 106, 82, 82, 40, 88, 89, 89, 101, 3, 97, 79, 97, 65, 66, 115, 82, 104, 104, 109, 109, 40, 95, 96, 106, 92, 93, 104, 79, 89, 60, 109, 82, 82, 4, 96, 104, 4, 93, 88, 98, 99, 106, 101, 82, 88, 4, 99, 88, 79 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int8 yyr1[] = { 0, 84, 85, 86, 86, 87, 87, 87, 87, 88, 88, 89, 89, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 91, 92, 92, 93, 94, 95, 95, 96, 97, 98, 98, 99, 100, 100, 100, 100, 101, 101, 102, 102, 103, 103, 103, 103, 103, 103, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 105, 105, 106, 106, 107, 107, 107, 107, 107, 108, 108, 108, 108, 109, 109, 110, 110, 111, 111, 112, 112, 113, 113, 113, 113, 114, 114, 115, 115 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_int8 yyr2[] = { 0, 2, 1, 1, 2, 2, 2, 3, 1, 1, 2, 0, 1, 2, 2, 3, 2, 3, 3, 4, 3, 4, 4, 6, 2, 2, 2, 2, 2, 4, 4, 4, 1, 2, 2, 4, 1, 2, 3, 4, 1, 2, 2, 1, 2, 5, 3, 0, 1, 1, 2, 1, 2, 3, 2, 2, 2, 1, 1, 2, 2, 2, 2, 3, 1, 5, 1, 2, 1, 5, 2, 2, 2, 3, 2, 3, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 2, 0, 1, 1, 1, 1, 1, 1, 1 }; enum { YYENOMEM = -2 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Backward compatibility with an undocumented macro. Use YYerror or YYUNDEF. */ #define YYERRCODE YYUNDEF /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include <stdio.h> /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) /* This macro is provided for backward compatibility. */ # ifndef YY_LOCATION_PRINT # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Kind, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*-----------------------------------. | Print this symbol's value on YYO. | `-----------------------------------*/ static void yy_symbol_value_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; YYUSE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT if (yykind < YYNTOKENS) YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YYUSE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /*---------------------------. | Print this symbol on YYO. | `---------------------------*/ static void yy_symbol_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { YYFPRINTF (yyo, "%s %s (", yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); yy_symbol_value_print (yyo, yykind, yyvaluep); YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ static void yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), &yyvsp[(yyi + 1) - (yynrhs)]); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, Rule); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) ((void) 0) # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { YYUSE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YYUSE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ int yyparse (void) { yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus = 0; /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ YYPTRDIFF_T yystacksize = YYINITDEPTH; /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; yy_state_t *yyss = yyssa; yy_state_t *yyssp = yyss; /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp = yyvs; int yyn; /* The return value of yyparse. */ int yyresult; /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; /*------------------------------------------------------------. | yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; /*--------------------------------------------------------------------. | yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YY_ASSERT (0 <= yystate && yystate < YYNSTATES); YY_IGNORE_USELESS_CAST_BEGIN *yyssp = YY_CAST (yy_state_t, yystate); YY_IGNORE_USELESS_CAST_END YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE goto yyexhaustedlab; #else { /* Get the current used size of the three stacks, in elements. */ YYPTRDIFF_T yysize = yyssp - yyss + 1; # if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * YYSIZEOF (*yyssp), &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } # else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yy_state_t *yyss1 = yyss; union yyalloc *yyptr = YY_CAST (union yyalloc *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YY_IGNORE_USELESS_CAST_BEGIN YYDPRINTF ((stderr, "Stack size increased to %ld\n", YY_CAST (long, yystacksize))); YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { yychar = YYEOF; yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else if (yychar == YYerror) { /* The scanner already issued an error message, process directly to error recovery. But do not keep the error token as lookahead, it is too special and may lead us to an endless loop in error recovery. */ yychar = YYUNDEF; yytoken = YYSYMBOL_YYerror; goto yyerrlab1; } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Discard the shifted token. */ yychar = YYEMPTY; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: /* rcfile: line_list */ { CallList = (yyvsp[0]._node); } break; case 3: /* line_list: line */ { (yyval._node) = AddtoNodeList(NULL, (yyvsp[0]._node)); } break; case 4: /* line_list: line_list line */ { (yyval._node) = AddtoNodeList( (yyvsp[-1]._node) , (yyvsp[0]._node)); } break; case 5: /* line: immediate_line '\n' */ { (yyval._node) = NULL; } break; case 6: /* line: func '\n' */ { (yyval._node) = (yyvsp[-1]._node); } break; case 7: /* line: READ string '\n' */ { set_yy_file(FindFile((yyvsp[-1]._string), NULL)); (yyval._node) = NULL; } break; case 8: /* line: '\n' */ { (yyval._node) = NULL; } break; case 9: /* nl: '\n' */ {} break; case 10: /* nl: nl '\n' */ {} break; case 11: /* opt_nl: %empty */ {} break; case 12: /* opt_nl: nl */ {} break; case 13: /* immediate_line: ADDSCREEN string */ { (yyval.imm) = ImmAddScreen((yyvsp[0]._string)); } break; case 14: /* immediate_line: ADDTOMENU string */ { (yyval.imm) = MergeMenu((yyvsp[0]._string), NULL); } break; case 15: /* immediate_line: ADDTOMENU string menubody_list */ { (yyval.imm) = MergeMenu((yyvsp[-1]._string), (yyvsp[0]._node) ); } break; case 16: /* immediate_line: ADDTOFUNC string */ { (yyval.imm) = MergeFunc((yyvsp[0]._string), NULL); } break; case 17: /* immediate_line: ADDTOFUNC string funcbody_list */ { (yyval.imm) = MergeFunc((yyvsp[-1]._string), (yyvsp[0]._node) ); } break; case 18: /* immediate_line: BACKGROUND string color */ { (yyval.imm) = ImmBackground((yyvsp[-1]._string), (yyvsp[0].val), NULL); } break; case 19: /* immediate_line: BACKGROUND string color textbody_list */ { (yyval.imm) = ImmBackground((yyvsp[-2]._string), (yyvsp[-1].val), (yyvsp[0]._node) ); } break; case 20: /* immediate_line: BORDER string flag_active */ { (yyval.imm) = ImmBorder((yyvsp[-1]._string), (yyvsp[0].val), NULL); } break; case 21: /* immediate_line: BORDER string flag_active textbody_list */ { (yyval.imm) = ImmBorder((yyvsp[-2]._string), (yyvsp[-1].val), (yyvsp[0]._node) ); } break; case 22: /* immediate_line: BUTTON NUMBER string flag_lr */ { (yyval.imm) = ImmButton((yyvsp[-2].val), (yyvsp[-1]._string), (yyvsp[0].val), '+', 0); } break; case 23: /* immediate_line: BUTTON NUMBER string flag_lr opt_flag NUMBER */ { (yyval.imm) = ImmButton((yyvsp[-4].val), (yyvsp[-3]._string), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val)); } break; case 24: /* immediate_line: DELETEFUNC string */ { (yyval.imm) = ImmDeleteFunc((yyvsp[0]._string)); } break; case 25: /* immediate_line: DELETEMENU string */ { (yyval.imm) = ImmDeleteMenu((yyvsp[0]._string)); } break; case 26: /* immediate_line: DELETEBUTTON NUMBER */ { (yyval.imm) = ImmDeleteButton((yyvsp[0].val)); } break; case 27: /* immediate_line: DELETESCREEN string */ { (yyval.imm) = ImmDeleteScreen((yyvsp[0]._string)); } break; case 28: /* immediate_line: GLOBALFLAGS global_list */ { (yyval.imm) = ImmGlobalFlags((yyvsp[0]._node)); } break; case 29: /* immediate_line: KEY opt_flag_kbd string func */ { (yyval.imm) = BindKey ((yyvsp[-2].val), (yyvsp[-1]._string), (yyvsp[0]._node)); } break; case 30: /* immediate_line: MOUSE string string func */ { (yyval.imm) = BindMouse((yyvsp[-2]._string), (yyvsp[-1]._string), (yyvsp[0]._node)); } break; case 31: /* funcbody_list: '(' opt_nl _funcbody_list ')' */ { (yyval._node) = (yyvsp[-1]._node); } break; case 32: /* _funcbody_list: funcbody */ { (yyval._node) = AddtoNodeList(NULL, (yyvsp[0]._node)); } break; case 33: /* _funcbody_list: _funcbody_list funcbody */ { (yyval._node) = AddtoNodeList( (yyvsp[-1]._node) , (yyvsp[0]._node)); } break; case 34: /* funcbody: func nl */ { (yyval._node) = (yyvsp[-1]._node); } break; case 35: /* menubody_list: '(' opt_nl _menubody_list ')' */ { (yyval._node) = (yyvsp[-1]._node); } break; case 36: /* _menubody_list: menubody */ { (yyval._node) = AddtoNodeList(NULL, (yyvsp[0]._node)); } break; case 37: /* _menubody_list: _menubody_list menubody */ { (yyval._node) = AddtoNodeList( (yyvsp[-1]._node) , (yyvsp[0]._node)); } break; case 38: /* menubody: string func nl */ { (yyval._node) = MakeNodeBody((yyvsp[-2]._string), (yyvsp[-1]._node), NULL); } break; case 39: /* textbody_list: '(' opt_nl _textbody_list ')' */ { (yyval._node) = (yyvsp[-1]._node); } break; case 40: /* _textbody_list: textbody */ { (yyval._node) = AddtoNodeList(NULL, (yyvsp[0]._node)); } break; case 41: /* _textbody_list: _textbody_list textbody */ { (yyval._node) = AddtoNodeList( (yyvsp[-1]._node) , (yyvsp[0]._node)); } break; case 42: /* textbody: string nl */ { (yyval._node) = MakeNode((yyvsp[-1]._string)); } break; case 43: /* color: NUMBER */ { (yyval.val) = (tcolor) (yyvsp[0].val); } break; case 44: /* color: high COLOR */ { (yyval.val) = TCOL((yyvsp[-1].val)|(yyvsp[0].val), tblack); } break; case 45: /* color: high COLOR FL_ON high COLOR */ { (yyval.val) = TCOL((yyvsp[-4].val)|(yyvsp[-3].val), (yyvsp[-1].val)|(yyvsp[0].val)); } break; case 46: /* color: FL_ON high COLOR */ { (yyval.val) = TCOL(twhite, (yyvsp[-1].val)|(yyvsp[0].val)); } break; case 47: /* high: %empty */ { (yyval.val) = (tcolor)0; } break; case 48: /* high: COL_HIGH */ { (yyval.val) = thigh; } break; case 49: /* global_list: global_flag */ { (yyval._node) = AddtoNodeList(NULL, (yyvsp[0]._node)); } break; case 50: /* global_list: global_list global_flag */ { (yyval._node) = AddtoNodeList( (yyvsp[-1]._node) , (yyvsp[0]._node)); } break; case 51: /* global_flag: GLOBAL_FLAG */ { (yyval._node) = MakeFlagNode((yyvsp[0].val), 0); } break; case 52: /* global_flag: flag GLOBAL_FLAG */ { (yyval._node) = MakeFlagNode((yyvsp[0].val), (yyvsp[-1].val)); } break; case 53: /* global_flag: SHADOWS NUMBER NUMBER */ { (yyval._node) = MakeShadowsNode((yyvsp[-1].val), (yyvsp[0].val)); } break; case 54: /* global_flag: flag SHADOWS */ { (yyval._node) = MakeFlagNode(SHADOWS, (yyvsp[-1].val)); } break; case 55: /* global_flag: BUTTON_PASTE NUMBER */ { (yyval._node) = MakeFlagNode(BUTTON_PASTE, (yyvsp[0].val)); } break; case 56: /* global_flag: BUTTON_SELECTION NUMBER */ { (yyval._node) = MakeFlagNode(BUTTON_SELECTION, (yyvsp[0].val)); } break; case 57: /* func: string */ { (yyval._node) = MakeUserFunc((yyvsp[0]._string)); } break; case 58: /* func: EASY_FUNC */ { (yyval._node) = MakeBuiltinFunc((yyvsp[0].val)); } break; case 59: /* func: EXEC string_list */ { (yyval._node) = MakeExec((yyvsp[0]._node)); } break; case 60: /* func: EXECTTY string_list */ { (yyval._node) = MakeExecTty((yyvsp[0]._node)); } break; case 61: /* func: FLAG_FUNC opt_flag_toggle */ { (yyval._node) = MakeFlagNode((yyvsp[-1].val), (yyvsp[0].val)); } break; case 62: /* func: INTERACTIVE interactive_mode */ { (yyval._node) = MakeFlagNode(INTERACTIVE, (yyvsp[0].val)); } break; case 63: /* func: MODULE string opt_flag_toggle */ { (yyval._node) = MakeModuleNode((yyvsp[-1]._string), (yyvsp[0].val)); } break; case 64: /* func: MENU */ { (yyval._node) = MakeBuiltinFunc(MENU); } break; case 65: /* func: move_or_resize opt_flag NUMBER opt_flag NUMBER */ { (yyval._node) = MakeMoveResizeScroll((yyvsp[-4].val), (yyvsp[-3].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val)); } break; case 66: /* func: NEXT */ { (yyval._node) = MakeWindowNumber('+', 1); } break; case 67: /* func: RESTART string */ { (yyval._node) = MakeRestartWM((yyvsp[0]._string)); } break; case 68: /* func: PREV */ { (yyval._node) = MakeWindowNumber('-', 1); } break; case 69: /* func: SCROLL opt_flag NUMBER opt_flag NUMBER */ { (yyval._node) = MakeMoveResizeScroll(SCROLL, (yyvsp[-3].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val)); } break; case 70: /* func: SENDTOSCREEN string */ { (yyval._node) = MakeSendToScreen((yyvsp[0]._string)); } break; case 71: /* func: SLEEP NUMBER */ { (yyval._node) = MakeSleep((yyvsp[0].val)); } break; case 72: /* func: STDERR string_list */ { (yyval._node) = MakeStderr((yyvsp[0]._node)); } break; case 73: /* func: SYNTHETICKEY opt_flag_kbd string */ { (yyval._node) = MakeSyntheticKey((yyvsp[-1].val), (yyvsp[0]._string)); } break; case 74: /* func: WAIT string */ { (yyval._node) = MakeWait((yyvsp[0]._string)); } break; case 75: /* func: WINDOW opt_flag NUMBER */ { (yyval._node) = MakeWindowNumber((yyvsp[-1].val), (yyvsp[0].val)); } break; case 76: /* func: WINDOW STRING */ { (yyval._node) = MakeWindow((yyvsp[0]._string)); } break; case 77: /* string_list: string */ { (yyval._node) = AddtoStringList((node)0, (yyvsp[0]._string)); } break; case 78: /* string_list: string_list string */ { (yyval._node) = AddtoStringList( (yyvsp[-1]._node), (yyvsp[0]._string)); } break; case 80: /* string: NUMBER */ { (yyval._string) = toString((yyvsp[0].val)); } break; case 81: /* interactive_mode: SCROLL */ { (yyval.val) = SCROLL; } break; case 82: /* interactive_mode: MENU */ { (yyval.val) = MENU; } break; case 83: /* interactive_mode: MOVE */ { (yyval.val) = MOVE; } break; case 84: /* interactive_mode: RESIZE */ { (yyval.val) = RESIZE; } break; case 85: /* interactive_mode: SCREEN */ { (yyval.val) = SCREEN; } break; case 86: /* move_or_resize: MOVE */ { (yyval.val) = MOVE; } break; case 87: /* move_or_resize: MOVESCREEN */ { (yyval.val) = MOVESCREEN; } break; case 88: /* move_or_resize: RESIZE */ { (yyval.val) = RESIZE; } break; case 89: /* move_or_resize: RESIZESCREEN */ { (yyval.val) = RESIZESCREEN; } break; case 90: /* opt_flag: %empty */ { (yyval.val) = 0; } break; case 92: /* flag: '+' */ { (yyval.val) = '+'; } break; case 93: /* flag: '-' */ { (yyval.val) = '-'; } break; case 94: /* opt_flag_kbd: %empty */ { (yyval.val) = 0; } break; case 97: /* flag_kbd: KBD_FLAG flag */ { (yyval.val) = (yyvsp[-1].val) | (yyvsp[0].val); } break; case 98: /* opt_flag_toggle: %empty */ { (yyval.val) = FL_ON; } break; case 99: /* opt_flag_toggle: FL_ON */ { (yyval.val) = FL_ON; } break; case 100: /* opt_flag_toggle: FL_OFF */ { (yyval.val) = FL_OFF; } break; case 101: /* opt_flag_toggle: FL_TOGGLE */ { (yyval.val) = FL_TOGGLE; } break; case 102: /* flag_active: FL_ACTIVE */ { (yyval.val) = FL_ACTIVE; } break; case 103: /* flag_active: FL_INACTIVE */ { (yyval.val) = FL_INACTIVE; } break; case 104: /* flag_lr: FL_LEFT */ { (yyval.val) = FL_LEFT; } break; case 105: /* flag_lr: FL_RIGHT */ { (yyval.val) = FL_RIGHT; } break; default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; *++yyvsp = yyval; /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ { const int yylhs = yyr1[yyn] - YYNTOKENS; const int yyi = yypgoto[yylhs] + *yyssp; yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp ? yytable[yyi] : yydefgoto[yylhs]); } goto yynewstate; /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; yyerror (YY_("syntax error")); } if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) YYERROR; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYSYMBOL_YYerror; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", YY_ACCESSING_SYMBOL (yystate), yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #if !defined yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; goto yyreturn; #endif /*-------------------------------------------------------. | yyreturn -- parsing is finished, clean up and return. | `-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", YY_ACCESSING_SYMBOL (+*yyssp), yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif return yyresult; } #ifdef DEBUG_YACC static void yyprint(FILE *file, int type, void *value) { if (type == NUMBER) fprintf (file, " %d", ((YYSTYPE *)value)->val); else if (type == STRING) fprintf (file, " \"%s\"", ((YYSTYPE *)value)->_string); else if (type == GLOBAL_FLAG || type == FLAG_FUNC || type == EASY_FUNC || type == COLOR) fprintf (file, " %s", TokenName(((YYSTYPE *)value)->val)); } #endif static byte rcparse(const char *path) { return set_yy_file(path) == 0 && yyparse() == 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/rcparse_tab.hpp�������������������������������������������������������������������0000664�0000000�0000000�00000014512�13775351206�0017021�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A Bison parser, made by GNU Bison 3.7.4. */ /* Bison interface for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, Inc. This program 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 3 of the License, or (at your option) any later version. This program 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 program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ #ifndef YY_YY_RCPARSE_TAB_HPP_INCLUDED # define YY_YY_RCPARSE_TAB_HPP_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif #if YYDEBUG extern int yydebug; #endif /* Token kinds. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE enum yytokentype { YYEMPTY = -2, YYEOF = 0, /* "end of file" */ YYerror = 256, /* error */ YYUNDEF = 257, /* "invalid token" */ ADDSCREEN = 258, /* ADDSCREEN */ ADDTOMENU = 259, /* ADDTOMENU */ ADDTOFUNC = 260, /* ADDTOFUNC */ BACKGROUND = 261, /* BACKGROUND */ BORDER = 262, /* BORDER */ BUTTON = 263, /* BUTTON */ DELETEFUNC = 264, /* DELETEFUNC */ DELETEMENU = 265, /* DELETEMENU */ DELETEBUTTON = 266, /* DELETEBUTTON */ DELETESCREEN = 267, /* DELETESCREEN */ READ = 268, /* READ */ EXEC = 269, /* EXEC */ EXECTTY = 270, /* EXECTTY */ GLOBALFLAGS = 271, /* GLOBALFLAGS */ INTERACTIVE = 272, /* INTERACTIVE */ KEY = 273, /* KEY */ MENU = 274, /* MENU */ MODULE = 275, /* MODULE */ MOUSE = 276, /* MOUSE */ MOVE = 277, /* MOVE */ MOVESCREEN = 278, /* MOVESCREEN */ NEXT = 279, /* NEXT */ NOP = 280, /* NOP */ PREV = 281, /* PREV */ RESTART = 282, /* RESTART */ RESIZE = 283, /* RESIZE */ RESIZESCREEN = 284, /* RESIZESCREEN */ SCREEN = 285, /* SCREEN */ SCROLL = 286, /* SCROLL */ SENDTOSCREEN = 287, /* SENDTOSCREEN */ SLEEP = 288, /* SLEEP */ STDERR = 289, /* STDERR */ SYNTHETICKEY = 290, /* SYNTHETICKEY */ WAIT = 291, /* WAIT */ WINDOW = 292, /* WINDOW */ EASY_FUNC = 293, /* EASY_FUNC */ BEEP = 294, /* BEEP */ CENTER = 295, /* CENTER */ CLOSE = 296, /* CLOSE */ KILL = 297, /* KILL */ QUIT = 298, /* QUIT */ REFRESH = 299, /* REFRESH */ WINDOWLIST = 300, /* WINDOWLIST */ FLAG_FUNC = 301, /* FLAG_FUNC */ FOCUS = 302, /* FOCUS */ MAXIMIZE = 303, /* MAXIMIZE */ FULLSCREEN = 304, /* FULLSCREEN */ LOWER = 305, /* LOWER */ RAISE = 306, /* RAISE */ RAISELOWER = 307, /* RAISELOWER */ ROLL = 308, /* ROLL */ USERFUNC = 309, /* USERFUNC */ FL_ON = 310, /* FL_ON */ FL_OFF = 311, /* FL_OFF */ FL_TOGGLE = 312, /* FL_TOGGLE */ FL_ACTIVE = 313, /* FL_ACTIVE */ FL_INACTIVE = 314, /* FL_INACTIVE */ FL_LEFT = 315, /* FL_LEFT */ FL_RIGHT = 316, /* FL_RIGHT */ GLOBAL_FLAG = 317, /* GLOBAL_FLAG */ ALTFONT = 318, /* ALTFONT */ CURSOR_ALWAYS = 319, /* CURSOR_ALWAYS */ BLINK = 320, /* BLINK */ MENU_HIDE = 321, /* MENU_HIDE */ MENU_INFO = 322, /* MENU_INFO */ MENU_RELAX = 323, /* MENU_RELAX */ SCREEN_SCROLL = 324, /* SCREEN_SCROLL */ TERMINALS_UTF8 = 325, /* TERMINALS_UTF8 */ SHADOWS = 326, /* SHADOWS */ BUTTON_PASTE = 327, /* BUTTON_PASTE */ BUTTON_SELECTION = 328, /* BUTTON_SELECTION */ COLOR = 329, /* COLOR */ COL_HIGH = 330, /* COL_HIGH */ KBD_FLAG = 331, /* KBD_FLAG */ NUMBER = 332, /* NUMBER */ STRING = 333 /* STRING */ }; typedef enum yytokentype yytoken_kind_t; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { ldat val; ldat_list *val_list; str _string; byte imm; node _node; }; typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif extern YYSTYPE yylval; int yyparse (void); #endif /* !YY_YY_RCPARSE_TAB_HPP_INCLUDED */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/rcproto.h�������������������������������������������������������������������������0000664�0000000�0000000�00000000763�13775351206�0015667�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_RCPROTO_H #define TWIN_RCPROTO_H /* stuff exported by rcparse.h */ extern ldat GlobalFlags[4]; extern ldat GlobalShadows[2]; byte rcload(void); #endif /* TWIN_RCPROTO_H */ �������������twin-0.9.0/server/rcrun.cpp�������������������������������������������������������������������������0000664�0000000�0000000�00000105736�13775351206�0015671�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * rcrun.c -- virtual machine to run byte-compiled ~/.twinrc code * * Copyright (C) 2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "main.h" #include "alloc.h" #include "builtin.h" #include "data.h" #include "draw.h" #include "obj/id.h" // Obj2Id() #include "resize.h" #include "util.h" #include "wm.h" #include "dl.h" #include "extreg.h" #include "methods.h" #include "hw.h" #include "common.h" #include "hw_multi.h" #include "rctypes.h" #include "rcparse_tab.hpp" #include "rcrun.h" #ifdef CONF_WM_RC #include "rcproto.h" #endif #include <Tw/Twkeys.h> #include "hotkey.h" #include <Tutf/Tutf.h> #include <Tutf/Tutf_defs.h> #define MAX_RUNCYCLE 1024 /* kill a queue after this number of steps */ #define MAX_RUNSTACK 28 typedef struct run run; struct run { run *next; uldat W; /* the current widget (id) */ uldat depth; /* index of last used stack element; * stack[depth] is the current instruction */ uldat cycle; union { timevalue WakeUp; cstr Name; } SW; /* what we are waiting for: sleep timeout or widget map */ wm_ctx C; /* event that generated the run queue */ node stack[MAX_RUNSTACK]; }; byte GlobalsAreStatic; node Globals[GLOBAL_MAX]; node *MenuBinds; /* array of pointers to nodes inside MenuList */ udat MenuBindsMax; static run *Run; /* list of running queues */ static run *Sleep; /* list of sleeping queues */ static run *Wait; /* list of waiting-for-window queues */ static run *Interactive; /* list of waiting-for-interactive-op queues */ /* shell-like wildcard pattern matching */ static byte wildcard_match(cstr p, cstr q) { byte c; if (!q) q = ""; for (;;) { switch (c = (byte)*p++) { case '\0': return *q == '\0'; break; case '\\': if (*q++ != *p++) return tfalse; break; case '?': if (*q++ == '\0') return tfalse; break; case '*': c = (byte)*p; if (c != '\\' && c != '?' && c != '*' && c != '[') { while ((byte)*q != c) { if (*q++ == '\0') return tfalse; } } do { if (wildcard_match(p, q)) return ttrue; } while (*q++ != '\0'); return tfalse; case '[': { cstr endp; byte invert = 0, found = 0; byte chr; endp = p; if (*endp == '!') endp++; for (;;) { if (*endp == '\0') goto dft; /* no matching ] */ if (*endp == '\\') endp++; if (*++endp == ']') break; } if (*p == '!') { invert++; p++; } chr = *q++; c = *p++; do { if (c == '\\') c = (byte)*p++; if (*p == '-' && p[1] != ']') { p++; if (*p == '\\') p++; if (chr >= c && chr <= (byte)*p) found = 1; p++; } else { if (chr == c) found = 1; } } while ((c = (byte)*p++) != ']'); if (found == invert) return tfalse; break; } dft: default: if ((byte)*q++ != c) return tfalse; break; } } } node LookupNodeName(cstr name, node head) { node l; if (name) for (l = head; l; l = l->next) { if (!strcmp(name, l->name)) return l; } return NULL; } static run *ReverseRunList(run *l) { run *base = NULL, *v; while (l) { v = l->next; l->next = base; base = l; l = v; } return base; } static ldat Pos2Ctx(udat Pos) { switch (Pos) { case POS_TITLE: case POS_SIDE_UP: return CTX_TITLE; case POS_SIDE_LEFT: case POS_SIDE_RIGHT: case POS_SIDE_DOWN: return CTX_SIDE; case POS_BUTTON_RESIZE: return CTX_CORNER; case POS_X_BAR_BACK: case POS_X_BAR_FWD: case POS_X_TAB: case POS_X_ARROW_BACK: case POS_X_ARROW_FWD: case POS_Y_BAR_BACK: case POS_Y_BAR_FWD: case POS_Y_TAB: case POS_Y_ARROW_BACK: case POS_Y_ARROW_FWD: return CTX_BARS; case POS_INSIDE: return CTX_INSIDE; case POS_MENU: return CTX_MENU; case POS_BUTTON_SCREEN: case POS_ROOT: return CTX_ROOT; default: if (Pos < BUTTON_MAX) return CTX_BUTTON(Pos); } return 0; } static node RCFindKeyBind(ldat label, ldat shiftflags) { node l = KeyList; shiftflags &= ~(KBD_CAPS_LOCK | KBD_NUM_LOCK); /* ignore CapsLock and NumLock when looking for a keybind! */ for (; l; l = l->next) { if (label == l->id && shiftflags == l->x.ctx) return l->body; } return NULL; } static node RCFindMouseBind(ldat code, ldat ctx) { node l = MouseList; ldat hc = code & (PRESS_ | RELEASE_); code &= HOLD_ANY; for (; l; l = l->next) { /* triple-inclusive match here: * (l->id & code) : match buttons * (l->id & hc) : match hold/click * (l->x.ctx & ctx): match release context */ if ((l->id & code) && (l->id & hc) && (l->x.ctx & ctx)) return l; } return NULL; } trune *RCFindBorderPattern(window W, byte Border) { node l; if (!W) return NULL; for (l = BorderList; l; l = l->next) { if ((l->x.f.flag == FL_INACTIVE) == Border && wildcard_match(l->name, W->Name)) break; } return W->BorderPattern[Border] = l ? (trune *)l->data : NULL; } inline void RCRemove(run **p) { run *r = *p; *p = r->next; r->next = NULL; } #define RCAddFirst(r, head) \ do { \ (r)->next = (head); \ (head) = (r); \ } while (0) static void RCKillAll(void) { run *list[4] = { Run, Sleep, Wait, Interactive, }; udat i; for (i = 0; i < 4; i++) { run *s = list[i], *r; while ((r = s)) { s = r->next; FreeMem(r); } } Run = Sleep = Wait = Interactive = (run *)0; } inline void RCKill(run **p) { run *r; if ((r = *p)) { *p = r->next; FreeMem(r); } } static run *RCNew(node l) { run *r; if ((r = (run *)AllocMem(sizeof(run)))) { memset(r, 0, sizeof(run)); r->cycle = 0; r->stack[r->depth = 0] = l; RCAddFirst(r, Run); } return r; } static ldat applyflagx(node n) { ldat x = 0; switch (n->x.f.plus_minus) { case 0: case '+': case FL_ON: x++; break; case '-': case FL_OFF: x--; break; default: break; } return x * n->x.f.a; } static ldat applyflagy(node n) { ldat y = 0; switch (n->x.f.flag) { case 0: case '+': case FL_ON: y++; break; case '-': case FL_OFF: y--; break; default: break; } return y * n->x.f.b; } static window RCFindWindowName(cstr name) { uldat len = strlen(name); window W; screen S = All->FirstScreen; while (S) { /* search among mapped windows */ W = (window)S->FirstW; while (W) { if (IS_WINDOW(W) && W->NameLen >= 0 && (udat)W->NameLen == len && !memcmp(W->Name, name, len)) return W; W = (window)W->Next; } S = S->Next; } return NULL; } static screen RCFindScreenName(cstr name) { uldat len = strlen(name); screen S = All->FirstScreen; while (S) { if (S->NameLen >= 0 && (udat)S->NameLen == len && !memcmp(S->Name, name, len)) break; } return S; } inline widget RCCheck4WidgetId(run *r) { widget W; if (!(W = (widget)Id2Obj(widget_magic_id, r->W)) || !W->Parent || !IS_SCREEN(W->Parent)) r->W = NOID; return W; } #define Snext 0 #define Sfunc 1 #define Sbody 2 #define Ssleep 3 #define Swait 4 #define Sinter 5 #define Serr 6 inline widget ForwardWindow(widget W) { while (W) { if (IS_WINDOW(W)) return W; W = W->Next; } return W; } inline widget BackwardWindow(widget W) { while (W) { if (IS_WINDOW(W)) return W; W = W->Prev; } return W; } inline screen ScreenOf(widget W) { widget P; return W && (P = W->Parent) && IS_SCREEN(P) ? (screen)P : (screen)0; } /* run the specified queue */ static byte RCSteps(run *r) { widget W, SkipW; screen S; wm_ctx *C; node n, f; ldat flag; const cstr *argv; byte state, ret; int nfd; W = RCCheck4WidgetId(r); S = ScreenOf(W); C = &r->C; n = r->stack[r->depth]; while (r->cycle++ < MAX_RUNCYCLE) { state = Snext; if (n) switch (n->id) { case EXEC: if (flag_secure) printk(flag_secure_msg); else switch (fork()) { case -1: /* error */ break; case 0: /* child */ nfd = open("/dev/null", O_RDWR); close(0); close(1); close(2); if (nfd >= 0) { dup2(nfd, 0); dup2(nfd, 1); dup2(nfd, 2); } execvp(n->x.v.argv[0], (char *const *)RemoveConst(n->x.v.argv)); exit(1); break; default: /* parent */ break; } break; case EXECTTY: /* * luckily, this does not immediately Map() the window... * it goes in a msg_map queued in the WM_MsgPort, * so we have the time to reach the corresponding WAIT here */ Ext(Term, Open)(n->x.v.argv[0], n->x.v.argv); break; case INTERACTIVE: C->W = W; if (!C->Screen && !(C->Screen = S)) C->Screen = All->FirstScreen; ret = tfalse; switch (n->x.f.flag) { case MENU: ret = ActivateCtx(C, state_menu); break; case SCROLL: ret = ActivateCtx(C, state_scroll); break; case MOVE: ret = ActivateCtx(C, state_drag); break; case RESIZE: ret = ActivateCtx(C, state_resize); break; case SCREEN: ret = ActivateCtx(C, state_screen); break; default: state = Serr; break; } if (ret) state = Sinter; break; case MENU: /* this is just like INTERACTIVE MENU ... but does not wait! */ ActivateCtx(C, state_menu); break; case MODULE: if (n->x.f.a == -1) n->x.f.a = DlName2Code(n->name); if (n->x.f.flag == FL_ON) DlLoad(n->x.f.a); else DlUnload(n->x.f.a); break; case MOVE: if (W && IS_WINDOW(W)) DragWindow((window)W, applyflagx(n), applyflagy(n)); break; case MOVESCREEN: if (S && S != All->FirstScreen) S->Focus(); DragFirstScreen(applyflagx(n), applyflagy(n)); break; case NOP: break; case RESTART: SendControlMsg(Ext(WM, MsgPort), MSG_CONTROL_RESTART, 1 + strlen(n->name), n->name); return Serr; break; case RESIZE: if (W && IS_WINDOW(W)) { dat x = applyflagx(n), y = applyflagy(n); if (n->x.f.plus_minus == 0) x = n->x.f.a - W->XWidth + 2 * !(W->Flags & WINDOWFL_BORDERLESS); if (n->x.f.flag == 0) y = n->x.f.b - W->YWidth + 2 * !(W->Flags & WINDOWFL_BORDERLESS); ResizeRelWindow((window)W, x, y); Check4Resize((window)W); /* send MSG_WINDOW_CHANGE and realloc(W->Contents) */ } break; case RESIZESCREEN: if (S && S != All->FirstScreen) S->Focus(); ResizeFirstScreen(applyflagx(n)); break; case SCROLL: if (W && IS_WINDOW(W)) ScrollWindow((window)W, applyflagx(n), applyflagy(n)); break; case SENDTOSCREEN: if (W && IS_WINDOW(W) && S && n->name) { screen Screen = RCFindScreenName(n->name); if (S != Screen) { W->UnMap(); W->Map((widget)Screen); } } break; case SLEEP: r->SW.WakeUp.Seconds = n->x.f.a / 1000; r->SW.WakeUp.Fraction = n->x.f.a % 1000; IncrTime(&r->SW.WakeUp, &All->Now); state = Ssleep; break; case STDERR: argv = n->x.v.argv; while (*argv) printk("" SS " ", *argv++); printk("\n"); break; case SYNTHETICKEY: if (W) SyntheticKey(W, n->x.f.a, n->x.f.flag, strlen(n->name), n->name); break; case WAIT: /* remember the window name we are waiting for */ r->SW.Name = n->name; state = Swait; break; case WINDOW: if (n->name) W = (widget)RCFindWindowName(n->name); else { ldat i = applyflagx(n); flag = n->x.f.plus_minus; /* * WINDOW <n> : * n = 0 : re-get current focused window * n > 0 : 1 = First Window, 2 = Second, etc. * * WINDOW {+|-}<n> * n = 0 : no-op * n < 0 : -1 : Prev Window, -2 Prev Prev, etc. * n > 0 : +1 : Next Window, +2 Next Next, etc. */ if (flag == 0) { if (i == 0) { W = All->FirstScreen->FocusW; if (W && !IS_WINDOW(W)) W = (widget)0; } else { if (i > 0) i--; W = ForwardWindow(All->FirstScreen->FirstW); } } if (W) { while (i > 0 && W) { i--; if ((SkipW = ForwardWindow(W->Next))) W = SkipW; else { S = ScreenOf(W); W = NULL; if (S) while ((S = S->Next) && !(W = ForwardWindow(S->FirstW))) ; } } while (i < 0 && W) { i++; if ((SkipW = BackwardWindow(W->Prev))) W = SkipW; else { S = ScreenOf(W); W = NULL; if (S) while ((S = S->Prev) && !(W = BackwardWindow(S->LastW))) ; } } } } r->W = W ? W->Id : NOID; S = ScreenOf(W); if (n->body) /* enter function */ state = Sbody; break; case BEEP: BeepHW(); break; case CENTER: if (W && IS_WINDOW(W)) CenterWindow((window)W); break; case CLOSE: if (W) AskCloseWidget(W); break; case KILL: /* BRUTAL! */ if (W) { msgport M = W->Owner; /* * try not to exagerate with brutality: * allow deleting remote clients msgports only */ if (M->RemoteData.FdSlot != NOSLOT) { Ext(Remote, KillSlot)(M->RemoteData.FdSlot); W = NULL; S = NULL; r->W = NOID; } else AskCloseWidget(W); } break; case QUIT: Quit(0); break; case REFRESH: RefreshVideo(); break; case WINDOWLIST: ShowWinList(C); break; case FOCUS: if (W && S) { flag = n->x.f.flag; if (flag == FL_TOGGLE) flag = (S->FocusW == (widget)W) ? FL_OFF : FL_ON; if (flag == FL_ON && S != All->FirstScreen) S->Focus(); if (flag == FL_ON) { W->Focus(); } else { Do(Focus, window)(NULL); } } break; case MAXIMIZE: case FULLSCREEN: if (W && IS_WINDOW(W) && S) MaximizeWindow((window)W, n->id == FULLSCREEN); break; case LOWER: if (W && S) LowerWidget(W, tfalse); break; case RAISE: if (W && S) RaiseWidget(W, tfalse); break; case RAISELOWER: if (W && S) { if ((widget)W == S->FirstW) LowerWidget(W, ttrue); else RaiseWidget(W, ttrue); } break; case ROLL: if (W && IS_WINDOW(W)) { flag = n->x.f.flag; if (flag == FL_TOGGLE) flag = W->Attr & WINDOW_ROLLED_UP ? FL_OFF : FL_ON; RollUpWindow((window)W, flag == FL_ON); } break; case USERFUNC: if (n->x.func || ((f = LookupNodeName(n->name, FuncList)) && (n->x.func = f->body))) /* stored into n->f.func to speedup future references */ state = Sfunc; else /* user function not found. abort. */ state = Serr; break; default: /* unknown command. abort. */ state = Serr; break; } if (state == Snext) { /* next instruction */ if (!n || !(n = n->next)) { /* end of function. pop the stack. */ if (r->depth) n = r->stack[--r->depth]; else /* stack empty. exit. */ break; } } else if (state == Sfunc || state == Sbody) { /* enter f or n->body */ if (r->depth < MAX_RUNSTACK) { r->stack[r->depth++] = n->next; n = (state == Sfunc) ? n->x.func : n->body; } else /* stack overflow */ break; } else if (state == Ssleep || state == Swait || state == Sinter) { /* prepare to resume from next instruction after sleeping */ r->stack[r->depth] = n->next; break; } else break; } return state; } /* run all the runnable queues */ static void RCRun(void) { run *r, **p; /* ensure correct execution order */ Run = ReverseRunList(Run); p = &Run; while ((r = *p)) switch (RCSteps(r)) { case Ssleep: /* go to sleep */ RCRemove(p); RCAddFirst(r, Sleep); break; case Swait: /* wait 4 window */ RCRemove(p); RCAddFirst(r, Wait); break; case Sinter: /* wait 4 interactive op */ RCRemove(p); RCAddFirst(r, Interactive); break; default: /* exit, runaway or error */ RCKill(p); break; } } /* * let's see how much we can sleep: * return tfalse if no limit to sleep time; * else _t will be filled with max time to sleep. */ static byte RCSleep(timevalue *_t) { timevalue *t = _t; run *r = Sleep; t->Seconds = TW_MAXTANY; t->Fraction = (tany)0; /* not TW_MAXTANY as Normalize() would overflow */ while (r) { if (CmpTime(&r->SW.WakeUp, t) < 0) t = &r->SW.WakeUp; r = r->next; } if (t != _t) { if (CmpTime(t, &All->Now) > 0) SubTime(_t, t, &All->Now); else { /* avoid busy looping */ _t->Seconds = 0; _t->Fraction = 10 MilliSECs; } return ttrue; } return tfalse; } /* * this is the real Initialization / Restart function. * * kill the queues, reload .twinrc and restart queues */ static void RCReload(void) { module M; byte (*mod_rcload)(void) = NULL; byte success; if ((M = DlLoad(RCParseSo))) mod_rcload = M->DoInit; #if 0 /* this would garble -hw=tty display */ else printk("twin: failed to load the RC parser:\n" " " SS "\n", Errstr); #endif success = mod_rcload && mod_rcload(); if (M) DlUnload(RCParseSo); if (success) { QueuedDrawArea2FullScreen = ttrue; ResetBorderPattern(); RCKillAll(); if (CallList) RCNew(CallList); FillButtonWin(); UpdateOptionWin(); HideMenu(!!(All->SetUp->Flags & setup_menu_hide)); } } /* wake up queues when slept enough or when finished interactive op */ static void RCWake(void) { run **p = &Sleep, *r; while ((r = *p)) { if (CmpTime(&r->SW.WakeUp, &All->Now) <= 0) { RCRemove(p); /* p does not change but *p is now the next run */ RCAddFirst(r, Run); } else p = &r->next; } if ((All->State & state_any) == state_default && Interactive) { p = &Interactive; while ((r = *p)) { RCRemove(p); /* p does not change but *p is now the next run */ RCAddFirst(r, Run); } } } /* wake up queues when the wanted window appears */ static void RCWake4Window(window W) { str Name = W->Name; run **p = &Wait, *r; if (Name) while ((r = *p)) { if (!strcmp(r->SW.Name, Name)) { r->W = W->Id; RCRemove(p); /* p does not change but *p is now the next run */ RCAddFirst(r, Run); } else p = &r->next; } } static byte MouseClickReleaseSameCtx(uldat W1, uldat W2, ldat clickCtx, ldat relCtx, ldat ctx) { if ((ctx & clickCtx) && (ctx & relCtx)) { if ((clickCtx & CTX_ANY_WIN) != (relCtx & CTX_ANY_WIN)) return tfalse; if ((clickCtx & CTX_ANY_WIN) && (relCtx & CTX_ANY_WIN)) return W1 == W2; return ttrue; } return tfalse; } /* handle incoming messages */ byte RC_VMQueue(const wm_ctx *C) { uldat ClickWinId = All->FirstScreen->ClickWindow ? All->FirstScreen->ClickWindow->Id : NOID; widget W; ldat ctx; node n; run *r; udat Code; byte used = tfalse; /* from wm.c : */ extern byte ClickWindowPos; switch (C->Type) { case msg_key: case msg_mouse: n = (node)0; if (C->Type == msg_mouse) { ctx = Pos2Ctx(C->Pos); if (isSINGLE_PRESS(C->Code)) { Code = HOLD_CODE(PRESS_N(C->Code)) | PRESS_; n = RCFindMouseBind((ldat)Code, ctx); if (n) { ClickWinId = C->W ? C->W->Id : NOID; n = n->body; } } else if (isSINGLE_RELEASE(C->Code)) { Code = HOLD_CODE(RELEASE_N(C->Code)) | RELEASE_; n = RCFindMouseBind((ldat)Code, ctx); if (n && MouseClickReleaseSameCtx(ClickWinId, C->W ? C->W->Id : NOID, Pos2Ctx(ClickWindowPos), ctx, n->x.ctx)) n = n->body; else n = NULL; } } else n = RCFindKeyBind((ldat)C->Code, (ldat)C->ShiftFlags); if (n && (r = RCNew(n))) { used = ttrue, CopyMem(C, &r->C, sizeof(wm_ctx)); r->W = ClickWinId; /* to preserve execution orded, run it right now ! */ RCRun(); } break; case msg_map: used = ttrue, RCWake4Window((window)C->W); break; case msg_control: if (C->Code == MSG_CONTROL_OPEN) { used = ttrue; if (All->State != state_default) /* * return to state_default, and rely on RCReload() * to set QueuedDrawArea2FullScreen = ttrue */ ForceRelease(C); RCReload(); } break; case msg_menu_row: if (C->Code >= COD_RESERVED && C->Code < MenuBindsMax + COD_RESERVED) { n = MenuBinds[C->Code - COD_RESERVED]; if (n && (r = RCNew(n))) { used = ttrue; CopyMem(C, &r->C, sizeof(wm_ctx)); W = All->FirstScreen->FocusW; r->W = W ? W->Id : NOID; r->C.ByMouse = tfalse; /* to preserve execution orded, run it right now ! */ RCRun(); } } break; default: break; } return used; } /* virtual machine main loop */ byte RC_VM(timevalue *t) { /* do the real thing: run the queues */ RCWake(); RCRun(); return RCSleep(t); } void QuitRC(void) { ResetBorderPattern(); RCKillAll(); shm_quit(); } #define COD_COMMON_FIRST COD_COMMON_DRAG #define COD_COMMON_DRAG (COD_RESERVED) #define COD_COMMON_RESIZE (COD_RESERVED + 1) #define COD_COMMON_SCROLL (COD_RESERVED + 2) #define COD_COMMON_CENTER (COD_RESERVED + 3) #define COD_COMMON_MAXIMIZE (COD_RESERVED + 4) #define COD_COMMON_FULLSCREEN (COD_RESERVED + 5) #define COD_COMMON_ROLLTOGGLE (COD_RESERVED + 6) #define COD_COMMON_RAISELOWER (COD_RESERVED + 7) #define COD_COMMON_UNFOCUS (COD_RESERVED + 8) #define COD_COMMON_NEXT (COD_RESERVED + 9) #define COD_COMMON_WINDOWLIST (COD_RESERVED + 10) #define COD_COMMON_REFRESH (COD_RESERVED + 11) #define COD_COMMON_HOTKEY (COD_RESERVED + 12) #define COD_COMMON_CLOSE (COD_RESERVED + 13) #define COD_COMMON_LAST COD_COMMON_CLOSE static byte USEDefaultCommonMenu(void) { menu Menu; menuitem Item; window W; row Row; if (!(Menu = New(menu)(Ext(WM, MsgPort), (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0, (tcolor)0, ttrue))) return tfalse; if ((W = Win4Menu(Menu)) && (Item = Item4Menu(Menu, W, ttrue, 8, " Window ")) && /* we cannot create rows with codes >= COD_RESERVED... */ (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Move ")) && (Row->Code = COD_COMMON_DRAG) && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Resize ")) && (Row->Code = COD_COMMON_RESIZE) && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Scroll ")) && (Row->Code = COD_COMMON_SCROLL) && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Center ")) && (Row->Code = COD_COMMON_CENTER) && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Maximize ")) && (Row->Code = COD_COMMON_MAXIMIZE) && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Full Screen ")) && (Row->Code = COD_COMMON_FULLSCREEN) && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Roll Up ")) && (Row->Code = COD_COMMON_ROLLTOGGLE) && Row4Menu(W, 0, ROW_IGNORE, 13, "\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4") && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Raise/Lower ")) && (Row->Code = COD_COMMON_RAISELOWER) && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " UnFocus ")) && (Row->Code = COD_COMMON_UNFOCUS) && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Next ")) && (Row->Code = COD_COMMON_NEXT) && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " List... ")) && (Row->Code = COD_COMMON_WINDOWLIST) && Row4Menu(W, 0, ROW_IGNORE, 13, "\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4") && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Refresh ")) && (Row->Code = COD_COMMON_REFRESH) && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Send HotKey ")) && (Row->Code = COD_COMMON_HOTKEY) && Row4Menu(W, 0, ROW_IGNORE, 13, "\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4\xC4") && (Row = Row4Menu(W, 0, ROW_ACTIVE, 13, " Close ")) && (Row->Code = COD_COMMON_CLOSE)) { /* success */ Item->Left = 0; /* remove padding */ if (All->CommonMenu) { All->CommonMenu->Delete(); } All->CommonMenu = Menu; return ttrue; } /* out of memory */ Menu->Delete(); return tfalse; } byte InitRC(void) { byte InitRCOptions(void); static struct s_node N[] = { {INTERACTIVE, NULL, NULL, NULL, NULL, { { 0, MOVE, }, }}, /* COD_COMMON_DRAG */ {INTERACTIVE, NULL, NULL, NULL, NULL, { { 0, RESIZE, }, }}, /* COD_COMMON_RESIZE */ {INTERACTIVE, NULL, NULL, NULL, NULL, { { 0, SCROLL, }, }}, /* COD_COMMON_SCROLL */ { CENTER, }, /* COD_COMMON_CENTER */ { MAXIMIZE, }, /* COD_COMMON_MAXIMIZE */ { FULLSCREEN, }, /* COD_COMMON_FULLSCREEN */ {ROLL, NULL, NULL, NULL, NULL, { { 0, FL_TOGGLE, }, }}, /* COD_COMMON_ROLLTOGGLE */ { RAISELOWER, }, /* COD_COMMON_RAISELOWER */ {FOCUS, NULL, NULL, NULL, NULL, { { 0, FL_OFF, }, }}, /* COD_COMMON_UNFOCUS */ {WINDOW, NULL, NULL, NULL, NULL, { { '+', 0, 1, }, }}, /* COD_COMMON_NEXT */ { WINDOWLIST, }, /* COD_COMMON_WINDOWLIST */ { REFRESH, }, /* COD_COMMON_REFRESH */ { SYNTHETICKEY, }, /* COD_COMMON_HOTKEY */ { CLOSE, } /* COD_COMMON_CLOSE */ }; static struct s_node *pN[] = {N, N + 1, N + 2, N + 3, N + 4, N + 5, N + 6, N + 7, N + 8, N + 9, N + 10, N + 11, N + 12, N + 13}; /* now user functions list */ static struct s_node F[] = {/* AddToFunc _UnFocus ( Window 0; Focus Off;) */ { 0, "_UnFocus", NULL, F + 1, }, {WINDOW, NULL, N + 8, NULL, NULL, {{ 0, 0, }}}}; /* now keyboard binds */ static struct s_node K[] = {/* Key HOT_KEY Interactive Menu */ { 0, NULL, NULL, K + 1, }, {INTERACTIVE, NULL, NULL, NULL, NULL, { { 0, MENU, }, }}}; /* now mouse binds */ static struct s_node M[] = {/* Mouse 1 0 Close */ {HOLD_LEFT | RELEASE_, "0", M + 1, N + 13, NULL, {{ CTX_0, }}}, /* Mouse 123 1 RaiseLower */ {HOLD_ANY | RELEASE_, "1", M + 2, N + 7, NULL, {{ CTX_1, }}}, /* Mouse 123 3 Roll Toggle */ {HOLD_ANY | RELEASE_, "2", M + 3, N + 6, NULL, {{ CTX_2, }}}, /* Mouse H1 TS Interactive Move */ {HOLD_LEFT | PRESS_, "TS", M + 4, N + 0, NULL, {{ CTX_TITLE | CTX_SIDE, }}}, /* Mouse H1 C Interactive Resize */ {HOLD_LEFT | PRESS_, "C", M + 5, N + 1, NULL, {{ CTX_CORNER, }}}, /* Mouse H1 C Interactive Scroll */ {HOLD_LEFT | PRESS_, "B", M + 6, N + 2, NULL, {{ CTX_BARS, }}}, /* Mouse H1 R _UnFocus */ {HOLD_LEFT | PRESS_, "R", M + 8, M + 7, NULL, {{ CTX_ROOT, }}}, { USERFUNC, "_UnFocus", }, /* Mouse H2 R WindowList */ {HOLD_MIDDLE | PRESS_, "R", M + 9, N + 10, NULL, {{ CTX_ROOT, }}}, /* Mouse H3 A Interactive Menu */ {HOLD_RIGHT | PRESS_, "A", M + 10, K + 1, NULL, {{ CTX_ANY, }}}, /* Mouse H1 M Interactive Screen */ {HOLD_LEFT | PRESS_, "M", NULL, M + 11, NULL, {{ CTX_MENU, }}}, {INTERACTIVE, NULL, NULL, NULL, NULL, { { 0, SCREEN, }, }}}; #define UD_ARROW T_UTF_32_UP_DOWN_ARROW static button_vec V[] = {{{'[', ']'}, 0, ttrue, tfalse}, {{UD_ARROW, UD_ARROW}, -2, ttrue, tfalse}, {{'>', '<'}, -4, ttrue, tfalse}}; const char *Seq = ""; /* * this is really heavy on the compiler... * but it should be able to optimize it * to just the line with the correct TW_xxx key */ #define IS(key, len, seq) \ if (HOT_KEY == TW_##key) \ Seq = seq; #include "hw_keys.h" #undef IS K[0].name = N[COD_COMMON_HOTKEY - COD_COMMON_FIRST].name = Seq; K[0].id = N[COD_COMMON_HOTKEY - COD_COMMON_FIRST].x.f.a = HOT_KEY; memset(Globals, 0, sizeof(Globals)); FuncList = F; KeyList = K; MouseList = M; MenuBinds = pN; MenuBindsMax = COD_COMMON_LAST - COD_COMMON_FIRST + 1; GlobalsAreStatic = ttrue; memset(All->ButtonVec, 0, sizeof(All->ButtonVec)); CopyMem(V, All->ButtonVec, sizeof(V)); All->SetUp->ButtonSelection = HOLD_LEFT; All->SetUp->ButtonPaste = HOLD_MIDDLE; All->SetUp->DeltaXShade = 3; All->SetUp->DeltaXShade = 2; if (USEDefaultCommonMenu()) { InitRCOptions(); UpdateOptionWin(); FillButtonWin(); HideMenu(!!(All->SetUp->Flags & setup_menu_hide)); All->FirstScreen->DrawMenu(0, TW_MAXDAT); return ttrue; } return tfalse; } ����������������������������������twin-0.9.0/server/rcrun.h���������������������������������������������������������������������������0000664�0000000�0000000�00000001730�13775351206�0015323�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_RCRUN_H #define TWIN_RCRUN_H #define GLOBAL_MAX 7 extern node Globals[GLOBAL_MAX]; extern byte GlobalsAreStatic; #define CallList Globals[0] #define FuncList Globals[1] #define MenuList Globals[2] #define ScreenList Globals[3] #define ScreenIndex 3 #define BorderList Globals[4] #define KeyList Globals[5] #define MouseList Globals[6] extern node *MenuBinds; /* array of pointers to nodes inside MenuList */ extern udat MenuBindsMax; byte InitRC(void); void QuitRC(void); node LookupNodeName(cstr name, node head); trune *RCFindBorderPattern(window W, byte Border); byte RC_VM(timevalue *t); byte RC_VMQueue(const wm_ctx *C); #endif /* TWIN_RCRUN_H */ ����������������������������������������twin-0.9.0/server/rctypes.h�������������������������������������������������������������������������0000664�0000000�0000000�00000004364�13775351206�0015671�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_RCTYPES_H #define TWIN_RCTYPES_H /* types */ typedef char *str; typedef const char *cstr; typedef struct s_node *node; typedef struct ldat_list ldat_list; typedef struct str_list str_list; struct s_node { ldat id; cstr name; node next, body; str data; union { struct { ldat plus_minus, flag, a, b; } f; struct { const cstr *argv; uldat argc; } v; tcolor color; ldat ctx; node func; } x; }; /* * these are modeled after STATE_* and POS_* flags */ #define CTX_0 0x0001 #define CTX_1 0x0002 #define CTX_2 0x0004 #define CTX_3 0x0008 #define CTX_4 0x0010 #define CTX_5 0x0020 #define CTX_6 0x0040 #define CTX_7 0x0080 #define CTX_8 0x0100 #define CTX_9 0x0200 #define CTX_BUTTON(n) (1 << (n)) #define CTX_ANY_BUTTON 0x03FF #define CTX_CORNER 0x0400 #define CTX_TITLE 0x0800 #define CTX_SIDE 0x1000 #define CTX_BARS 0x2000 #define CTX_WIN (CTX_TITLE | CTX_SIDE | CTX_BARS) #define CTX_INSIDE 0x4000 #define CTX_ANY_WIN 0x7FFF #define CTX_MENU 0x8000 /* the menu bar */ #define CTX_ROOT 0x10000l #define CTX_ANY 0x1FFFFl #define CTX_BITS 18 /* this is 1 + # of used bits */ struct ldat_list { ldat val; struct ldat_list *l; }; /* stuff exported by shm.c */ #define my_malloc shm_malloc_or_die #define my_strdup shm_strdup_or_die void *shm_malloc_or_die(size_t size); char *shm_strdup_or_die(const char *s); byte shm_init(size_t len); byte shm_shrink(void); void shm_TSR(void); void shm_TSR_abort(void); void shm_abort(void); void shm_quit(void); byte shm_send(int fd); byte shm_receive(int fd); void *shm_getbase(void); #ifdef DEBUG_MALLOC void *shm_getend(void); #endif /* stuff exported by rcparse.l */ #ifdef PURE_PARSER int yylex(); #else int yylex(void); #endif extern int read_stack_curr; extern str file_name[]; extern int line_no[]; #define LINE_NO line_no[read_stack_curr - 1] #define FILE_NAME file_name[read_stack_curr - 1] int set_yy_file(const char *path); #endif /* TWIN_RCTYPES_H */ ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/remote.cpp������������������������������������������������������������������������0000664�0000000�0000000�00000030126�13775351206�0016021�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * remote.c -- file descriptor connections handling functions. * this is the backed used by sock.c, term.c * and by all code that wants to talk to the outside * using file descriptors. * * actually, sock.c needs some more functions * of this kind that are directly placed in it. * * Copyright (C) 1999-2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "algo.h" #include "alloc.h" #include "main.h" #include "methods.h" #include "fdlist.h" #include "printk.h" #include "remote.h" #include "util.h" /* variables */ fdlist *FdList; uldat FdSize, FdTop, FdBottom, FdWQueued; #define LS FdList[Slot] /* functions */ static uldat FdListGrow(void) { uldat oldsize, size; fdlist *newFdList; if ((oldsize = FdSize) == TW_MAXULDAT) { Error(NOMEMORY); return NOSLOT; } if ((size = oldsize < TW_SMALLBUFF / 3 ? TW_SMALLBUFF / 2 : oldsize + (oldsize >> 1)) < oldsize) size = TW_MAXULDAT; if (!(newFdList = (fdlist *)ReAllocMem0(FdList, // sizeof(fdlist) * oldsize, // sizeof(fdlist) * size))) { return NOSLOT; } for (FdSize = oldsize; FdSize < size; FdSize++) { newFdList[FdSize].Fd = NOFD; } FdList = newFdList; return oldsize; } inline void FdListShrink(void) { fdlist *newFdList; uldat size = Max2(TW_SMALLBUFF, FdTop << 1); if (size < FdSize && (newFdList = (fdlist *)ReAllocMem0(FdList, // sizeof(fdlist) * FdSize, // sizeof(fdlist) * size))) { FdList = newFdList; FdSize = size; } } inline uldat FdListGet(void) { if (FdBottom < FdSize) return FdBottom; return FdListGrow(); } byte RemoteFlush(uldat Slot) { uldat chunk = 0, offset = 0; if (Slot == NOSLOT || Slot >= FdTop || LS.Fd == NOFD) return tfalse; if (LS.PrivateFlush) { /* a (gzipped) paired slot: * PrivateFlush() does everything: * first gzip the data, then flush it */ chunk = LS.PrivateFlush(Slot); if (LS.PrivateAfterFlush) LS.PrivateAfterFlush(Slot); /* don't touch FdWQueued here as LS.PrivateFlush already handles it */ return (byte)chunk; } if (LS.WQlen == 0) { if (LS.PrivateAfterFlush) LS.PrivateAfterFlush(Slot); return ttrue; } while (LS.WQlen && ((chunk = write(LS.Fd, LS.WQueue + offset, LS.WQlen)), chunk && chunk != (uldat)-1)) { offset += chunk; LS.WQlen -= chunk; } if (LS.WQlen) { FD_SET(LS.Fd, &save_wfds); if (offset) MoveMem(LS.WQueue + offset, LS.WQueue, LS.WQlen); } else { FD_CLR(LS.Fd, &save_wfds); FdWQueued--; } if (LS.PrivateAfterFlush) LS.PrivateAfterFlush(Slot); return !LS.WQlen; } void RemoteFlushAll(void) { uldat Slot; for (Slot = 0; FdWQueued && Slot < FdTop; Slot++) { if (LS.Fd != NOFD && LS.WQlen) (void)RemoteFlush(Slot); } } void RemoteCouldntWrite(uldat Slot) { if (Slot == NOSLOT || Slot >= FdTop || LS.Fd == NOFD) return; if (LS.extern_couldntwrite == tfalse) { LS.extern_couldntwrite = ttrue; FdWQueued++; } FD_SET(LS.Fd, &save_wfds); } void RemoteCouldWrite(uldat Slot) { if (Slot == NOSLOT || Slot >= FdTop || LS.Fd == NOFD) return; if (LS.extern_couldntwrite == ttrue) { LS.extern_couldntwrite = tfalse; FdWQueued--; } FD_CLR(LS.Fd, &save_wfds); } msgport RemoteGetMsgPort(uldat Slot) { if (Slot < FdTop && LS.Fd != NOFD) return LS.MsgPort; return (msgport)0; } /* Register a Fd, its HandlerIO and eventually its HandlerData arg */ /* * On success, return the slot number. * On failure, return NOSLOT (-1). */ uldat RegisterRemote(int Fd, obj HandlerData, handler_obj HandlerObj) { uldat Slot, j; if ((Slot = FdListGet()) == NOSLOT) { Error(NOTABLES); return Slot; } if (FdTop <= Slot) FdTop = Slot + 1; for (j = FdBottom + 1; j < FdTop; j++) if (FdList[j].Fd == NOFD) break; FdBottom = j; if ((LS.Fd = Fd) >= 0) { FD_SET(Fd, &save_rfds); if (max_fds < Fd) max_fds = Fd; } LS.pairSlot = NOSLOT; if ((LS.HandlerData = HandlerData)) LS.HandlerIO.D = HandlerObj; else LS.HandlerIO.S = (handler_io)HandlerObj; LS.MsgPort = (msgport)0; LS.WQueue = LS.RQueue = (byte *)0; LS.WQlen = LS.WQmax = LS.RQlen = LS.RQmax = (uldat)0; LS.PrivateAfterFlush = NULL; LS.PrivateFlush = NULL; LS.PrivateData = NULL; LS.extern_couldntwrite = tfalse; return Slot; } uldat RegisterRemoteFd(int Fd, handler_io HandlerIO) { return RegisterRemote(Fd, NULL, (handler_obj)HandlerIO); } byte RegisterWindowFdIO(window Window, handler_window HandlerWindow) { return (Window->RemoteData.FdSlot = RegisterRemote(Window->RemoteData.Fd, (obj)Window, (handler_obj)HandlerWindow)) != NOSLOT; } /* UnRegister a Fd and related stuff given a slot number */ void UnRegisterRemote(uldat Slot) { int i; uldat j; if (Slot < FdTop && LS.Fd != NOFD) { /* * really not the case here... * call RemoteFlush() manually before UnRegisterRemote() if you need */ /* RemoteFlush(Slot); */ if (LS.WQlen || LS.extern_couldntwrite) FdWQueued--; /* trow away any data still queued :( */ LS.RQlen = LS.WQlen = 0; if (LS.WQueue) FreeMem(LS.WQueue); if (LS.RQueue) FreeMem(LS.RQueue); i = LS.Fd; LS.Fd = NOFD; if (i >= 0) { FD_CLR(i, &save_rfds); FD_CLR(i, &save_wfds); for (i = max_fds; i >= 0; i--) { if (FD_ISSET(i, &save_rfds)) break; } max_fds = i; } if (FdBottom > Slot) FdBottom = Slot; for (j = FdTop - 1; j > FdBottom; j--) if (FdList[j].Fd != NOFD) break; FdTop = (j == FdBottom) ? j : j + 1; if (FdSize > (FdTop << 4) && FdSize > TW_SMALLBUFF) FdListShrink(); } } void UnRegisterWindowFdIO(window Window) { if (Window && Window->RemoteData.FdSlot < FdTop) { UnRegisterRemote(Window->RemoteData.FdSlot); Window->RemoteData.FdSlot = NOSLOT; } } void remoteKillSlot(uldat slot) { msgport MsgPort; display_hw D_HW; if (slot != NOSLOT) { if ((MsgPort = RemoteGetMsgPort(slot))) { /* * no infinite recursion between KillSlot and DeleteMsgPort... * DeleteMsgPort doesn't kill the slot, only tries to unregister from it */ if ((D_HW = MsgPort->AttachHW)) { /* avoid KillSlot <-> DeleteDisplayHW infinite recursion */ MsgPort->AttachHW = (display_hw)0; D_HW->Delete(); } MsgPort->Delete(); /* and all its children ! */ } if (FdList[slot].Fd >= 0) close(FdList[slot].Fd); UnRegisterRemote(slot); } } void RemotePidIsDead(pid_t pid) { uldat Slot; int Fd; obj HData; remotedata *RData; for (Slot = 0; Slot < FdTop; Slot++) { /* only windows can be directly attached to a child process! */ if (LS.Fd != NOFD && (HData = LS.HandlerData) && IS_WINDOW(HData) && (RData = &((window)HData)->RemoteData, RData->ChildPid == pid)) { if ((Fd = LS.Fd) >= 0) /* might be specFD... */ close(Fd); /* let the handler know this Slot is dead */ /* don't unregister Slot, allow the handler do that. */ if (LS.HandlerData) LS.HandlerIO.D(Fd, LS.HandlerData); else LS.HandlerIO.S(Fd, Slot); /* failsafe */ if (Slot < FdTop && Fd == LS.Fd) UnRegisterRemote(Slot); return; } } } void RemoteEvent(int FdCount, fd_set *FdSet) { uldat Slot; int fd; for (Slot = 0; Slot < FdTop && FdCount; Slot++) { if ((fd = LS.Fd) >= 0) { if (FD_ISSET(fd, FdSet)) { FdCount--; if (LS.HandlerData) LS.HandlerIO.D(fd, LS.HandlerData); else LS.HandlerIO.S(fd, Slot); } } } } void RemoteParanoia(void) { struct timeval zero; fd_set sel_rfds, sel_wfds; int safe, unsafe, test, last_errno; uldat Slot; printk("twin: RemoteParanoia() called! Trying to recover from unexpected I/O error...\n"); /* rebuild max_fds, save_rfds, FdWQueued, save_wfds */ FdWQueued = max_fds = 0; FD_ZERO(&save_rfds); FD_ZERO(&save_wfds); for (Slot = 0; Slot < FdTop; Slot++) { if ((test = LS.Fd) >= 0) { FD_SET(test, &save_rfds); max_fds = Max2(max_fds, test); if (LS.extern_couldntwrite) { FdWQueued++; FD_SET(test, &save_wfds); } } } printk(" ... rebuilt internal file descriptor arrays...\n"); sel_rfds = save_rfds; sel_wfds = save_wfds; zero.tv_sec = zero.tv_usec = 0; if (select(max_fds + 1, &sel_rfds, &sel_wfds, NULL, &zero) >= 0) { printk(" ... problem disappeared. Good.\n"); return; } last_errno = errno; if (last_errno != EBADF && last_errno != EINVAL) { /* transient error ? */ for (test = 0; test < 10; test++) { sel_rfds = save_rfds; sel_wfds = save_wfds; zero.tv_sec = 0; zero.tv_usec = 100000; if (select(max_fds + 1, &sel_rfds, &sel_wfds, NULL, &zero) >= 0) break; } if (test < 10) { /* solved ? */ printk(" ... problem disappeared after a few tries, was:\n" " errno = %d (" SS ")\n", strerror(last_errno)); return; } } printk(" ... problem did not disappear, going to close some fds...\n"); /* * Assume we must thrash some fd with permanent errors. * Find the first one by binary seach. */ safe = 0; unsafe = max_fds + 1; while (safe + 1 < unsafe) { sel_rfds = save_rfds; sel_wfds = save_wfds; zero.tv_sec = zero.tv_usec = 0; test = (unsafe + safe + 1) / 2; if (select(test, &sel_rfds, &sel_wfds, NULL, &zero) >= 0) safe = test; else unsafe = test; } /* ok, let's trow away 'unsafe-1' fd. */ test = unsafe - 1; printk(" ... closing file descriptor %d\n", test); for (Slot = 0; Slot < FdTop; Slot++) { if (test == LS.Fd) { /* let the Handler realize this fd is dead */ /* don't unregister Slot, allow the handler do that. */ if (LS.HandlerData) LS.HandlerIO.D(test, LS.HandlerData); else LS.HandlerIO.S(test, Slot); /* failsafe: we're in paranoid mode, remember? */ if (Slot < FdTop && test == LS.Fd) { close(test); UnRegisterRemote(Slot); } return; } } printk(" ... bug! fd %d should not be registered at all!\n", test); /* Paranoia: still here? */ FD_CLR(test, &save_rfds); FD_CLR(test, &save_wfds); } /* * Add data[0...len-1] bytes to Write queue. * If data is NULL, don't copy data... but alloc (len) bytes and mark them as busy. * * return len if succeeded, 0 if failed. */ uldat RemoteWriteQueue(uldat Slot, uldat len, const void *data) { uldat nmax; byte *tmp; if (len == 0 || Slot == NOSLOT || LS.Fd == NOFD) return 0; /* append to queue */ if (LS.WQlen + len > LS.WQmax) { tmp = (byte *)ReAllocMem(LS.WQueue, nmax = (LS.WQmax + len + 40) * 5 / 4); if (!tmp) return 0; LS.WQueue = tmp; LS.WQmax = nmax; } if (!LS.WQlen) FdWQueued++; if (data) CopyMem(data, LS.WQueue + LS.WQlen, len); else memset(LS.WQueue + LS.WQlen, '\0', len); LS.WQlen += len; return len; } void RegisterMsgPort(msgport MsgPort, uldat Slot) { if (MsgPort && MsgPort->RemoteData.FdSlot == NOSLOT && Slot < FdTop && LS.Fd != NOFD && !LS.MsgPort) { LS.MsgPort = MsgPort; MsgPort->RemoteData.FdSlot = Slot; MsgPort->RemoteData.Fd = LS.Fd; } } void UnRegisterMsgPort(msgport MsgPort) { uldat Slot; if (MsgPort && (Slot = MsgPort->RemoteData.FdSlot) < FdTop && LS.Fd != NOFD && LS.MsgPort == MsgPort) { MsgPort->RemoteData.FdSlot = NOSLOT; LS.MsgPort = (msgport)0; } } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/remote.h��������������������������������������������������������������������������0000664�0000000�0000000�00000003432�13775351206�0015466�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_REMOTE_H #define TWIN_REMOTE_H typedef void (*handler_io)(int Fd, uldat Slot); typedef void (*handler_obj)(int Fd, obj HandlerObj); typedef void (*handler_window)(int Fd, window Window); uldat RegisterRemoteFd(int Fd, handler_io HandlerIO); uldat RegisterRemote(int Fd, obj HandlerData, handler_obj HandlerObj); void UnRegisterRemote(uldat Slot); byte RegisterWindowFdIO(window Window, handler_window HandlerWindow); void UnRegisterWindowFdIO(window Window); uldat RemoteWriteQueue(uldat Slot, uldat len, const void *data); #define RemoteWindowWriteQueue(Window, len, data) \ RemoteWriteQueue((Window)->RemoteData.FdSlot, (len), (data)) byte RemoteFlush(uldat Slot); #define RemoteWindowFlush(Window) RemoteFlush((Window)->RemoteData.FdSlot) msgport RemoteGetMsgPort(uldat Slot); void RemoteFlushAll(void); void RemoteEvent(int FdNum, fd_set *FdSet); void RemoteParanoia(void); /* * call this if you couldn't write all pending data to a slot * which DOES NOT use the RemoteWriteQueue mechanism * (i.e. the slot of a display or something like that) */ void RemoteCouldntWrite(uldat Slot); /* * if you called RemoteCouldntWrite(), * you *MUST* call RemoteCouldWrite() after you succeed * in writing all pending data */ void RemoteCouldWrite(uldat Slot); extern uldat FdWQueued; void RegisterMsgPort(msgport MsgPort, uldat Slot); void UnRegisterMsgPort(msgport MsgPort); void remoteKillSlot(uldat slot); #endif /* TWIN_REMOTE_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/resize.cpp������������������������������������������������������������������������0000664�0000000�0000000�00000163315�13775351206�0016036�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * resize.c -- code to drag and resize screens and windows * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include <sys/stat.h> #include <signal.h> #include "twautoconf.h" #ifdef TW_HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif #ifdef TW_HAVE_TERMIOS_H #include <termios.h> #else #ifdef TW_HAVE_TERMIO_H #include <termio.h> #endif #endif #include "twin.h" #include "alloc.h" #include "algo.h" #include "data.h" #include "methods.h" #include "draw.h" #include "printk.h" #include "resize.h" #include "util.h" #include "hw.h" #include "stl/utf8.h" #include "stl/vector.h" #include <Tw/Tw.h> #include <Tw/Twstat.h> #include <Tutf/Tutf.h> /***************/ byte NeedUpdateCursor; void FlushCursor(void) { draw_ctx D; uldat type = NOCURSOR; screen Screen; window Window; widget W; ldat CurX, CurY; byte HasBorder; if (NeedUpdateCursor) { NeedUpdateCursor = tfalse; Screen = All->FirstScreen; Window = FindCursorWindow(); if (Window && ((Window->Flags & WINDOWFL_CURSOR_ON) || (All->SetUp->Flags & setup_cursor_always))) { W = (widget)Window; HasBorder = !(Window->Flags & WINDOWFL_BORDERLESS); CurX = Window->CurX - Window->XLogic + HasBorder; CurY = Window->CurY - Window->YLogic + HasBorder; if (CurX >= 0 && CurX < (Window->XWidth - HasBorder) && CurY >= 0 && CurY < (Window->YWidth - HasBorder) && InitDrawCtx(W, (dat)CurX, (dat)CurY, (dat)CurX, (dat)CurY, tfalse, &D) && ((Window == (window)Screen->FirstW && !Window->FirstW) || #if 1 /* widgets and gadgets cannot contain cursor, but they can obscure it */ W == RecursiveFindWidgetAt((widget)Screen, (dat)D.X1, (dat)D.Y1 - Screen->YLimit) #else Window == WindowParent(RecursiveFindWidgetAt((widget)Screen, (dat)D.X1, (dat)D.Y1 - Screen->YLimit)) #endif )) { MoveToXY((dat)D.X1, (dat)D.Y1); if ((type = Window->CursorType) == NOCURSOR && All->SetUp->Flags & setup_cursor_always) type = LINECURSOR; } } SetCursorType(type); } } static byte SendResizeSignal(window Window) { struct winsize wsiz; wsiz.ws_col = Window->USE.C.TtyData->SizeX; wsiz.ws_row = Window->USE.C.TtyData->SizeY; wsiz.ws_xpixel = 0; wsiz.ws_ypixel = 0; #if 0 /* is this enough on every OS ? */ return ioctl(Window->RemoteData.Fd, TIOCSWINSZ, &wsiz) == 0; #else return ioctl(Window->RemoteData.Fd, TIOCSWINSZ, &wsiz) == 0 && kill(-Window->RemoteData.ChildPid, SIGWINCH) == 0; #endif } byte CheckResizeWindowContents(window Window) { if (W_USE(Window, USECONTENTS) && (Window->USE.C.TtyData->SizeY != Window->YWidth - 2 || Window->USE.C.TtyData->SizeX != Window->XWidth - 2)) { return ResizeWindowContents(Window); } return ttrue; } byte ResizeWindowContents(window Window) { tcell *NewCont, *saveNewCont, *OldCont, *max, h; ldat count, common, left; ttydata *Data = Window->USE.C.TtyData; dat x = Window->XWidth, y = Window->YWidth + Data->ScrollBack; if (!(Window->Flags & WINDOWFL_BORDERLESS)) x -= 2, y -= 2; h = TCELL(Window->ColText, ' '); /* safety check: */ if (x > 0 && y > 0) { if (!(saveNewCont = NewCont = (tcell *)AllocMem(x * y * sizeof(tcell)))) return tfalse; /* * copy the Contents. Quite non-trivial for two reasons: * 1. always preserve the cursor line * 2. copy as much scrollback as possible */ if ((max = OldCont = Window->USE.C.Contents)) { max += Window->WLogic * Window->HLogic; common = Min2(Window->WLogic, x); count = Min2(Window->HLogic, y); OldCont += Window->USE.C.HSplit * Window->WLogic; /* ok, now check for the cursor line */ if (Window->CurY >= y) { OldCont += (Window->CurY + 1 - y) * Window->WLogic; if (OldCont > max) OldCont -= Window->WLogic * Window->HLogic; } while (count--) { CopyMem(OldCont, NewCont, common * sizeof(tcell)); if ((OldCont += Window->WLogic) >= max) OldCont = Window->USE.C.Contents; NewCont += common; for (left = x - common; left; left--) *NewCont++ = h; } FreeMem(Window->USE.C.Contents); } left = (saveNewCont + x * y) - NewCont; while (left--) *NewCont++ = h; } else { x = y = 0; if (Window->USE.C.Contents) FreeMem(Window->USE.C.Contents); saveNewCont = NULL; } Window->XLogic = 0; Window->YLogic = Data->ScrollBack; Window->WLogic = x; /* Contents width */ Window->HLogic = y; /* Y visible + scrollback */ Window->USE.C.HSplit = 0; /* splitline == 0 */ Window->USE.C.Contents = saveNewCont; if (Window->CurY >= y) Window->CurY = y - 1; else if (Window->CurY < Window->YLogic) Window->CurY = Window->YLogic; Data->SizeX = x; Data->SizeY = Window->YWidth - 2; Data->Top = 0; Data->Bottom = Data->SizeY; Data->Start = Window->USE.C.Contents + x * Data->ScrollBack; Data->Split = Window->USE.C.Contents + x * y; Data->saveX = Data->X = Window->CurX; Data->saveY = Data->Y = Window->CurY - Data->ScrollBack; Data->Pos = Window->USE.C.Contents + Window->CurY * x + Window->CurX; if (!(Window->Attr & WINDOW_WANT_CHANGES) && Window->USE.C.TtyData && Window->RemoteData.FdSlot != NOSLOT) /* the MsgPort will not be informed of the resize... * we must send SIGWINCH manually */ (void)SendResizeSignal(Window); if (Window->Parent) { DrawBorderWindow(Window, BORDER_RIGHT); DrawLogicWidget((widget)Window, 0, 0, Window->WLogic - 1, Window->HLogic - 1); if (ContainsCursor((widget)Window)) UpdateCursor(); } return ttrue; } static row InsertRowsWindow(window Window, ldat NumRows) { row CurrRow; while (NumRows--) { if ((CurrRow = New(row)(0, ROW_ACTIVE))) { Act(Insert, CurrRow)(CurrRow, Window, Window->USE.R.LastRow, NULL); } else break; } DrawBorderWindow(Window, BORDER_RIGHT); return CurrRow; } byte EnsureLenRow(row Row, uldat Len, byte DefaultCol) { trune *tempText; tcolor *tempColText; uldat NewLen; if (Len > Row->MaxLen) { NewLen = (Len + (Len >> 1)) | All->SetUp->MinAllocSize; if ((tempText = (trune *)ReAllocMem(Row->Text, NewLen * sizeof(trune)))) { if (!(Row->Flags & ROW_DEFCOL) && !DefaultCol) { if ((tempColText = (tcolor *)ReAllocMem(Row->ColText, NewLen * sizeof(tcolor)))) Row->ColText = tempColText; else return tfalse; } Row->Text = tempText; Row->MaxLen = NewLen; } else return tfalse; } return ttrue; } byte RowWriteCharset(window Window, uldat Len, const char *charset_bytes) { row CurrRow; const char *_Text; byte ModeInsert; trune const *to_UTF_32; ldat x, y, max; uldat i, RowLen; if (!Window || (Len && !charset_bytes) || !W_USE(Window, USEROWS)) return tfalse; x = Window->CurX; y = Window->CurY; max = Window->HLogic; CurrRow = Window->USE.R.LastRow; ModeInsert = Window->Flags & WINDOWFL_ROWS_INSERT; if (Window->State & WINDOW_ANYSEL) ClearHilight(Window); while (Len) { if (max <= y || (max == y + 1 && (*charset_bytes == '\n' || *charset_bytes == '\r'))) { if (InsertRowsWindow(Window, Max2(y + 1 - max, 1))) { max = Window->HLogic; CurrRow = Window->USE.R.LastRow; } else return tfalse; } else { CurrRow = Act(FindRow, Window)(Window, y); } RowLen = 0; _Text = charset_bytes; while (RowLen < Len && *_Text != '\n' && *_Text != '\r') ++RowLen, ++_Text; /* WINDOWFL_INSERT non implementato */ /* Gap non implementato */ if (RowLen) { if (ModeInsert || (CurrRow && CurrRow->LenGap)) return tfalse; if (!EnsureLenRow(CurrRow, x + RowLen, (Window->Flags & WINDOWFL_ROWS_DEFCOL))) return tfalse; if (Window->USE.R.NumRowOne == y) Window->USE.R.RowOne = CurrRow; if (Window->USE.R.NumRowSplit == y) Window->USE.R.RowSplit = CurrRow; CurrRow->Flags = ROW_ACTIVE; to_UTF_32 = Window->Charset; for (i = (uldat)Max2(0, -x); i < RowLen; i++) CurrRow->Text[x + i] = to_UTF_32[(byte)charset_bytes[i]]; if (x >= 0 && (uldat)x > CurrRow->Len) for (i = CurrRow->Len; i < (uldat)x; i++) CurrRow->Text[i] = (trune)' '; if (!(Window->Flags & WINDOWFL_ROWS_DEFCOL)) { memset(CurrRow->ColText + x, Window->ColText, sizeof(tcolor) * RowLen); if (x >= 0 && (uldat)x > CurrRow->Len) memset(CurrRow->ColText + CurrRow->Len, Window->ColText, sizeof(tcolor) * (x - CurrRow->Len)); } if (CurrRow->Len < x + RowLen) CurrRow->Len = x + RowLen; DrawLogicWidget((widget)Window, x, y, x + RowLen - (ldat)1, y); charset_bytes += RowLen; Len -= RowLen; } if (Len && (*charset_bytes == '\n' || *charset_bytes == '\r')) { Window->CurX = x = (ldat)0; Window->CurY = ++y; charset_bytes++, Len--; } else Window->CurX = x += RowLen; } if (Window == FindCursorWindow()) UpdateCursor(); return ttrue; } byte RowWriteUtf8(window w, uldat len, const char *utf8_bytes) { View<char> chars(utf8_bytes, len); Vector<trune> runes; Utf8 seq; runes.reserve(len); while (chars) { seq.parse(chars, &chars); runes.append(seq.rune()); } if (!runes) { return tfalse; } return RowWriteTRune(w, runes.size(), runes.data()); } byte RowWriteTRune(window Window, uldat Len, const trune *runes) { row CurrRow; const trune *_Text; byte ModeInsert; ldat x, y, max; uldat i, RowLen; if (!Window || !Len || !W_USE(Window, USEROWS)) return tfalse; x = Window->CurX; y = Window->CurY; max = Window->HLogic; CurrRow = Window->USE.R.LastRow; ModeInsert = Window->Flags & WINDOWFL_ROWS_INSERT; if (Window->State & WINDOW_ANYSEL) ClearHilight(Window); while (Len) { if (max <= y || (max == y + 1 && (*runes == '\n' || *runes == '\r'))) { if (InsertRowsWindow(Window, Max2(y + 1 - max, 1))) { max = Window->HLogic; CurrRow = Window->USE.R.LastRow; } else return tfalse; } else { CurrRow = Act(FindRow, Window)(Window, y); } RowLen = (ldat)0; _Text = runes; while (RowLen < Len && *_Text != '\n' && *_Text != '\r') ++RowLen, ++_Text; /* WINDOWFL_INSERT non implementato */ /* Gap non implementato */ if (RowLen) { if (ModeInsert || (CurrRow && CurrRow->LenGap)) return tfalse; if (!EnsureLenRow(CurrRow, x + RowLen, (Window->Flags & WINDOWFL_ROWS_DEFCOL))) return tfalse; if (Window->USE.R.NumRowOne == y) Window->USE.R.RowOne = CurrRow; if (Window->USE.R.NumRowSplit == y) Window->USE.R.RowSplit = CurrRow; CurrRow->Flags = ROW_ACTIVE; if (x >= 0) { CopyMem(runes, CurrRow->Text + x, sizeof(trune) * RowLen); } else if ((uldat)-x < RowLen) { CopyMem(runes - x, CurrRow->Text, sizeof(trune) * (RowLen + x)); } if (x >= 0 && (uldat)x > CurrRow->Len) { for (i = CurrRow->Len; i < (uldat)x; i++) CurrRow->Text[i] = (trune)' '; } if (!(Window->Flags & WINDOWFL_ROWS_DEFCOL)) { if (x >= 0) { memset(CurrRow->ColText + x, Window->ColText, sizeof(tcolor) * RowLen); } else if ((uldat)-x < RowLen) { memset(CurrRow->ColText, Window->ColText - x, sizeof(tcolor) * (RowLen + x)); } if (x >= 0 && (uldat)x > CurrRow->Len) { memset(CurrRow->ColText + CurrRow->Len, Window->ColText, sizeof(tcolor) * (x - CurrRow->Len)); } } if (CurrRow->Len < x + RowLen) CurrRow->Len = x + RowLen; DrawLogicWidget((widget)Window, x, y, x + RowLen - (ldat)1, y); runes += RowLen; Len -= RowLen; } if (Len && (*runes == '\n' || *runes == '\r')) { Window->CurX = x = (ldat)0; Window->CurY = ++y; runes++, Len--; } else Window->CurX = x += RowLen; } if (Window == FindCursorWindow()) UpdateCursor(); return ttrue; } void ExposeWidget2(widget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, const char *utf8_bytes, const trune *runes, const tcell *cells) { if (w_USE(W, USEEXPOSE)) { if (utf8_bytes || runes || cells) { if (utf8_bytes) { W->USE.E.E.Text = utf8_bytes; W->USE.E.Flags = WIDGET_USEEXPOSE_TEXT; } else if (runes) { W->USE.E.E.TRune = runes; W->USE.E.Flags = WIDGET_USEEXPOSE_TRUNE; } else { W->USE.E.E.TCell = cells; W->USE.E.Flags = WIDGET_USEEXPOSE_TCELL; } W->USE.E.X1 = Left; W->USE.E.X2 = Left + XWidth - 1; W->USE.E.Y1 = Up; W->USE.E.Y2 = Up + YWidth - 1; W->USE.E.Pitch = Pitch; } else { W->USE.E.E.Text = (char *)1; W->USE.E.Flags = WIDGET_USEEXPOSE_TEXT; W->USE.E.X1 = W->USE.E.Y1 = W->USE.E.X2 = W->USE.E.Y2 = -1; W->USE.E.Pitch = 0; } DrawLogicWidget(W, Left, Up, Left + XWidth - 1, Up + YWidth - 1); memset(&W->USE.E.E, '\0', sizeof(W->USE.E.E)); W->USE.E.Flags = 0; } } void ExposeWindow2(window W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, const char *utf8_bytes, const trune *runes, const tcell *cells) { ldat CurX, CurY; if (W_USE(W, USEEXPOSE)) { ExposeWidget2((widget)W, XWidth, YWidth, Left, Up, Pitch, utf8_bytes, runes, cells); return; } if (!W_USE(W, USECONTENTS) && !W_USE(W, USEROWS)) return; /* handle negative (Left,Up) by clipping */ if (Left < 0) { XWidth += Left; if (utf8_bytes) utf8_bytes -= Left; if (runes) runes -= Left; if (cells) cells -= Left; Left = 0; } if (Up < 0) { YWidth += Up; if (utf8_bytes) utf8_bytes -= (ldat)Up * Pitch; if (runes) runes -= (ldat)Up * Pitch; if (cells) cells -= (ldat)Up * Pitch; Up = 0; } if (W_USE(W, USECONTENTS)) { /* clip to window size */ CurX = W->USE.C.TtyData->SizeX; CurY = W->USE.C.TtyData->SizeY; if (Left >= CurY || Up >= CurY) return; if ((ldat)XWidth + Left > CurX) XWidth = CurX - Left; if ((ldat)YWidth + Up > CurY) YWidth = CurY - Up; } if (XWidth <= 0 || YWidth <= 0) return; if (utf8_bytes) { byte (*WriteUtf8)(window, uldat, const char *); if (W_USE(W, USECONTENTS)) { WriteUtf8 = W->Fn->TtyWriteUtf8; } else WriteUtf8 = W->Fn->RowWriteUtf8; CurX = W->CurX; CurY = W->CurY; for (; YWidth; YWidth--, Up++, utf8_bytes += Pitch) { Act(GotoXY, W)(W, Left, Up); WriteUtf8(W, (uldat)XWidth, utf8_bytes); } Act(GotoXY, W)(W, CurX, CurY); } else if (runes) { byte (*WriteTRune)(window, uldat, const trune *); if (W_USE(W, USECONTENTS)) WriteTRune = W->Fn->TtyWriteTRune; else WriteTRune = W->Fn->RowWriteTRune; CurX = W->CurX; CurY = W->CurY; for (; YWidth; YWidth--, Up++, runes += Pitch) { Act(GotoXY, W)(W, Left, Up); WriteTRune(W, (uldat)XWidth, runes); } Act(GotoXY, W)(W, CurX, CurY); } else if (cells) { byte (*WriteTCell)(window, dat, dat, uldat, const tcell *); if (W_USE(W, USECONTENTS)) WriteTCell = W->Fn->TtyWriteTCell; else WriteTCell = W->Fn->RowWriteTCell; for (; YWidth; YWidth--, Up++, cells += Pitch) WriteTCell(W, Left, Up, (uldat)XWidth, cells); } } /***************/ void ResizeWidget(widget W, dat X, dat Y) { if (W) { X = Max2(1, X); Y = Max2(1, Y); /* mX = Max2(X, W->XWidth); */ /* mY = Max2(Y, W->YWidth); */ W->XWidth = X; W->YWidth = Y; if (!(W->Flags & WIDGETFL_NOTVISIBLE)) /* FIXME: use mX and mY */ DrawAreaWidget(W); } } void ResizeGadget(gadget G, dat X, dat Y) { if (G) { if (G_USE(G, USETEXT)) { /* FIXME: finish this */ } else { ResizeWidget((widget)G, X, Y); } } } /***************/ void DragFirstScreen(ldat DeltaX, ldat DeltaY) { screen Screen; dat DHeight, DWidth; dat YLimit; ldat Left, Up, Rgt, Dwn; Screen = All->FirstScreen; YLimit = Screen->YLimit; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; DeltaX = -DeltaX; DeltaY = -DeltaY; if (DeltaY < TW_MINDAT - Screen->YLogic) DeltaY = TW_MINDAT - Screen->YLogic; else if (DeltaY > TW_MAXDAT - Screen->YLogic - (ldat)DHeight + 1) DeltaY = TW_MAXDAT - Screen->YLogic - (ldat)DHeight + 1; if (DeltaX < TW_MINDAT - Screen->XLogic) DeltaX = TW_MINDAT - Screen->XLogic; else if (DeltaX > TW_MAXDAT - Screen->XLogic - (ldat)DWidth + 1) DeltaX = TW_MAXDAT - Screen->XLogic - (ldat)DWidth + 1; if (!DeltaX && !DeltaY) return; Left = Max2(DeltaX, (ldat)0); Up = (ldat)YLimit + 1 + Max2(DeltaY, (ldat)0); Rgt = (ldat)DWidth - (ldat)1 + Min2(DeltaX, (ldat)0); Dwn = (ldat)DHeight - (ldat)1 + Min2(DeltaY, (ldat)0); Screen->XLogic += DeltaX; Screen->YLogic += DeltaY; if (Up <= Dwn && Left <= Rgt) DragArea((dat)Left, (dat)Up, (dat)Rgt, (dat)Dwn, (dat)(Left - DeltaX), (dat)(Up - DeltaY)); YLimit++; if (Abs(DeltaX) >= DWidth || Abs(DeltaY) >= DHeight - YLimit) DrawArea2((screen)0, (widget)0, (widget)0, 0, YLimit, DWidth - 1, DHeight - 1, tfalse); else if (DeltaY < 0) { DrawArea2((screen)0, (widget)0, (widget)0, 0, YLimit, DWidth - 1, YLimit - DeltaY, tfalse); if (DeltaX <= 0) DrawArea2((screen)0, (widget)0, (widget)0, 0, YLimit - DeltaY, -DeltaX - 1, DHeight - 1, tfalse); else if (DeltaX > 0) DrawArea2((screen)0, (widget)0, (widget)0, DWidth - DeltaX, YLimit - DeltaY, DWidth - 1, DHeight - 1, tfalse); } else { DrawArea2((screen)0, (widget)0, (widget)0, 0, DHeight - DeltaY, DWidth - 1, DHeight - 1, tfalse); if (DeltaX <= 0) DrawArea2((screen)0, (widget)0, (widget)0, 0, YLimit, -DeltaX - 1, DHeight - DeltaY, tfalse); else if (DeltaX >= 0) DrawArea2((screen)0, (widget)0, (widget)0, DWidth - DeltaX, YLimit, DWidth - 1, DHeight - DeltaY, tfalse); } UpdateCursor(); } void ResizeFirstScreen(dat DeltaY) { screen Screen; dat DHeight, DWidth; dat YLimit; ldat Left, Up, Rgt, Dwn; Screen = All->FirstScreen; YLimit = Screen->YLimit; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; if (YLimit + DeltaY >= DHeight) DeltaY = DHeight - YLimit - 1; else if (YLimit + DeltaY < TW_MINDAT) DeltaY = TW_MINDAT - YLimit; Left = (ldat)0; Up = Max2(YLimit, 0); Rgt = DWidth - 1; Dwn = DHeight - 1 - Max2((ldat)DeltaY, 0); Screen->YLimit += DeltaY; if (DeltaY < 0) { if (Up <= Dwn) DragArea((dat)Left, (dat)Up, (dat)Rgt, (dat)Dwn, (dat)Left, (dat)Up + DeltaY); DrawArea2(Screen, (widget)0, (widget)0, (dat)Left, (dat)Dwn + 1 + DeltaY, (dat)Rgt, (dat)Dwn, tfalse); } else if (DeltaY > (dat)0) { if (Up <= Dwn) DragArea((dat)Left, (dat)Up, (dat)Rgt, (dat)Dwn, (dat)Left, (dat)Up + (dat)DeltaY); DrawArea2((screen)0, (widget)0, (widget)0, (dat)Left, (dat)Up, (dat)Rgt, (dat)Up + DeltaY - 1, tfalse); } UpdateCursor(); } void CenterWindow(window Window) { screen Screen; ldat parz1, parz2; ldat DeltaX, DeltaY; dat DWidth, DHeight; dat YLimit; if (!Window || !(Screen = (screen)Window->Parent) || (Screen != All->FirstScreen) || (Window->Flags & WINDOWFL_MENU)) return; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; YLimit = Screen->YLimit; parz1 = (ldat)Window->Left - (ldat)Screen->XLogic; parz2 = parz1 + (ldat)Window->XWidth; if (parz1 >= (ldat)0 && parz2 <= (ldat)DWidth) DeltaX = (ldat)0; else DeltaX = -parz1; if (Window->XWidth <= (dat)DWidth) { parz1 = DeltaX; parz2 = DeltaX + (ldat)DWidth - (ldat)Window->XWidth; DeltaX = Abs(parz1) < Abs(parz2) ? parz1 : parz2; } else DeltaX--; parz1 = (ldat)Window->Up - (ldat)Screen->YLogic + (ldat)YLimit; parz2 = parz1 + (ldat)Window->YWidth; if (parz1 > (ldat)YLimit && parz2 <= (ldat)DHeight) DeltaY = (ldat)0; else DeltaY = -parz1 + YLimit + 1; if ((ldat)Window->YWidth <= (ldat)DHeight - (ldat)YLimit - 1) { parz1 = DeltaY; parz2 = DeltaY + (ldat)DHeight - (ldat)YLimit - 1 - (ldat)Window->YWidth; DeltaY = Abs(parz1) < Abs(parz2) ? parz1 : parz2; } else DeltaY--; DragFirstScreen(DeltaX, DeltaY); } inline void DrawDeltaShadeFirstWindow(dat i, dat j) { ldat _Left, _Up, _Rgt, _Dwn; ldat Left_, Up_, Rgt_, Dwn_; screen Screen; window Window; dat YLimit; Screen = All->FirstScreen; if (!(Window = (window)Screen->FirstW) || !IS_WINDOW(Window)) return; YLimit = Screen->YLimit; Left_ = (ldat)Window->Left - Screen->XLogic; _Left = Left_ - i; Rgt_ = Left_ + (ldat)Window->XWidth - (ldat)1; _Rgt = Rgt_ - i; Up_ = (ldat)Window->Up - Screen->YLogic + (ldat)YLimit; _Up = Up_ - j; Dwn_ = Up_ + (Window->Attr & WINDOW_ROLLED_UP ? (ldat)0 : (ldat)Window->YWidth - (ldat)1); _Dwn = Dwn_ - j; DrawAreaShadeWindow(Screen, Window, 0, 0, TW_MAXDAT, TW_MAXDAT, _Left, _Up, _Rgt, _Dwn, tfalse); DrawAreaShadeWindow(Screen, Window, 0, 0, TW_MAXDAT, TW_MAXDAT, Left_, Up_, Rgt_, Dwn_, ttrue); } void DragFirstWindow(dat i, dat j) { ldat Left, Up, Rgt, Dwn; ldat _Left, _Up, _Rgt, _Dwn; ldat Left_, Up_, Rgt_, Dwn_; ldat xLeft, xRgt, xUp, xDwn; screen Screen; setup *SetUp; window Window; dat YLimit; dat DWidth, DHeight; byte Shade; Screen = All->FirstScreen; if (!(Window = (window)Screen->FirstW) || !IS_WINDOW(Window) || !(Window->Attr & WINDOW_DRAG)) return; YLimit = Screen->YLimit; if (i < 0 && Window->Left < TW_MINDAT - i) i = TW_MINDAT - Window->Left; else if (i > 0 && Window->Left > TW_MAXDAT - i) i = TW_MAXDAT - Window->Left; if (j < 0 && Window->Up < TW_MINDAT - j) j = TW_MINDAT - Window->Up; else if (j > 0 && Window->Up > TW_MAXDAT - j) j = TW_MAXDAT - Window->Up; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; SetUp = All->SetUp; Shade = !!(SetUp->Flags & setup_shadows); Left = (ldat)Window->Left - Screen->XLogic; Rgt = Left + (ldat)Window->XWidth - (ldat)1; Up = (ldat)Window->Up - Screen->YLogic + (ldat)YLimit; Dwn = Up + (Window->Attr & WINDOW_ROLLED_UP ? (ldat)0 : (ldat)Window->YWidth - (ldat)1); /* calculate the visible part of the window for direct DragArea() */ Left_ = Max2(Left, -Min2(i, 0)); Up_ = Max2(Up, (ldat)YLimit + 1 - Min2(j, 0)); Rgt_ = Min2(Rgt, (ldat)DWidth - (ldat)1 - Max2(i, 0)); Dwn_ = Min2(Dwn, (ldat)DHeight - (ldat)1 - Max2(j, 0)); /* copy the visible part */ if (Left_ <= Rgt_ && Up_ <= Dwn_) DragArea(Left_, Up_, Rgt_, Dwn_, Left_ + i, Up_ + j); Window->Left += i; Window->Up += j; if (Shade) /* update the window's shadow */ DrawDeltaShadeFirstWindow(i, j); /* redraw the old window location */ _Left = Max2(Left, (ldat)0); _Up = Max2(Up, (ldat)YLimit + 1); _Rgt = Min2(Rgt, (ldat)DWidth - (ldat)1); _Dwn = Min2(Dwn, (ldat)DHeight - (ldat)1); if (_Left <= _Rgt && _Up <= _Dwn) { xLeft = _Left; xRgt = _Rgt; if (i) { if (i > 0) xRgt = Min2(_Left + i - 1, _Rgt); else xLeft = Max2(_Left, _Rgt + i + 1); DrawArea2(Screen, (widget)0, (widget)0, (dat)xLeft, (dat)_Up, (dat)xRgt, (dat)_Dwn, tfalse); } xUp = _Up; xDwn = _Dwn; if (j && (!i || xRgt < _Rgt || xLeft > _Left)) { if (j > 0) xDwn = Min2(_Up + j - 1, _Dwn); else xUp = Max2(_Up, _Dwn + j + 1); if (xRgt < _Rgt) { xLeft = xRgt + (ldat)1; xRgt = _Rgt; } else if (xLeft > _Left) { xRgt = xLeft - (ldat)1; xLeft = _Left; } DrawArea2(Screen, (widget)0, (widget)0, (dat)xLeft, (dat)xUp, (dat)xRgt, (dat)xDwn, tfalse); } } /* draw the new window location */ /* xxx_ : final location of copied area */ Left_ += (ldat)i; Up_ += (ldat)j; Rgt_ += (ldat)i; Dwn_ += (ldat)j; /* _xxx : final location of window */ _Left = Max2(Left + (ldat)i, (ldat)0); _Up = Max2(Up + (ldat)j, (ldat)YLimit + 1); _Rgt = Min2(Rgt + (ldat)i, (ldat)DWidth - (ldat)1); _Dwn = Min2(Dwn + (ldat)j, (ldat)DHeight - (ldat)1); if (_Left <= _Rgt && _Up <= _Dwn) { if (Left_ > _Left) { xLeft = Min2(Left_ - (ldat)1, _Rgt); DrawWidget((widget)Window, (dat)_Left, (dat)_Up, (dat)xLeft, (dat)_Dwn, tfalse); } else xLeft = _Left; if (Rgt_ < _Rgt) { xRgt = Max2(Rgt_ + (ldat)1, _Left); DrawWidget((widget)Window, (dat)xRgt, (dat)_Up, (dat)_Rgt, (dat)_Dwn, tfalse); } else xRgt = _Rgt; if (Up_ > _Up) { xUp = Min2(Up_ - (ldat)1, _Dwn); DrawWidget((widget)Window, (dat)xLeft, (dat)_Up, (dat)xRgt, (dat)xUp, tfalse); } if (Dwn_ < _Dwn) { xDwn = Max2(Dwn_ + (ldat)1, _Up); DrawWidget((widget)Window, (dat)xLeft, (dat)xDwn, (dat)xRgt, (dat)_Dwn, tfalse); } } if (ContainsCursor((widget)Window)) UpdateCursor(); } void DragWindow(window Window, dat i, dat j) { ldat Left, Up, Rgt, Dwn; ldat Left1, Rgt1; screen Screen; setup *SetUp; dat YLimit; dat DWidth, DHeight; byte Shade, DeltaXShade, DeltaYShade; if (!Window || !(Window->Attr & WINDOW_DRAG)) return; if (Window == (window)All->FirstScreen->FirstW) { DragFirstWindow(i, j); return; } if (!(Screen = (screen)Window->Parent) || !IS_SCREEN(Screen)) return; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; SetUp = All->SetUp; Shade = !!(SetUp->Flags & setup_shadows); DeltaXShade = Shade ? SetUp->DeltaXShade : (byte)0; DeltaYShade = Shade ? SetUp->DeltaYShade : (byte)0; YLimit = Screen->YLimit; Up = (ldat)Window->Up - Screen->YLogic + (ldat)YLimit; Left = (ldat)Window->Left - Screen->XLogic; Rgt = Left + (ldat)Window->XWidth - (ldat)1; Dwn = Up + (Window->Attr & WINDOW_ROLLED_UP ? (ldat)0 : (ldat)Window->YWidth - (ldat)1); if (i < (dat)0) { if (Window->Left < TW_MINDAT - i) i = TW_MINDAT - Window->Left; } else if (i > (dat)0) { if (Window->Left > TW_MAXDAT - i) i = TW_MAXDAT - Window->Left; } if (j < (dat)0) { if (Window->Up < TW_MINDAT - j) j = TW_MINDAT - Window->Up; } else if (j > (dat)0) { if (Window->Up > TW_MAXDAT - j) j = TW_MAXDAT - Window->Up; } Window->Left += i; Window->Up += j; DrawArea2((screen)0, (widget)0, (widget)0, Left + i, Up + j, Rgt + i + DeltaXShade, Dwn + j + DeltaYShade, tfalse); if (Left < (ldat)DWidth && Up < (ldat)DHeight && Rgt + DeltaXShade >= (ldat)0 && Dwn + DeltaYShade > (ldat)YLimit) { if (i > 0) { Rgt1 = Min2(Rgt + DeltaXShade, Left + i - 1); Left1 = Max2(0, Left); } else { Left1 = Max2(Rgt + DeltaXShade + i, Left); Rgt1 = Min2((ldat)DWidth - (ldat)1, Rgt + DeltaXShade); } DrawArea2((screen)0, (widget)0, (widget)0, (dat)Left1, (dat)Up, (dat)Rgt1, (dat)Dwn + DeltaYShade, tfalse); if (j > 0) { Dwn = Min2(Dwn + DeltaYShade, Up + j - 1); Up = Max2(YLimit + 1, Up); } else { Up = Max2(Dwn + DeltaYShade + j, Up); Dwn = Min2((ldat)DHeight - (ldat)1, Dwn + DeltaYShade); } DrawArea2((screen)0, (widget)0, (widget)0, (dat)Left, (dat)Up, (dat)Rgt + DeltaXShade, (dat)Dwn, tfalse); } if (Window == (window)All->FirstScreen->FocusW) UpdateCursor(); } void ResizeRelFirstWindow(dat i, dat j) { ldat Left, Up, Rgt, Dwn; screen Screen; setup *SetUp; window Window; dat DeltaX, DeltaY; dat YLimit, XWidth, YWidth; dat MinXWidth, MinYWidth, MaxXWidth, MaxYWidth; dat DWidth, DHeight; byte Shade, DeltaXShade, DeltaYShade, HasBorder; Screen = All->FirstScreen; if (!(Window = (window)Screen->FirstW) || !IS_WINDOW(Window) || (!i && !j)) /* || !(Window->Attr & WINDOW_RESIZE)) */ return; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; SetUp = All->SetUp; Shade = !!(SetUp->Flags & setup_shadows); DeltaXShade = Shade ? SetUp->DeltaXShade : (byte)0; DeltaYShade = Shade ? SetUp->DeltaYShade : (byte)0; HasBorder = !(Window->Flags & WINDOWFL_BORDERLESS); YLimit = Screen->YLimit + 1; XWidth = Window->XWidth; YWidth = Window->YWidth; MinXWidth = Window->MinXWidth; MinYWidth = Window->MinYWidth; MaxXWidth = Window->MaxXWidth; MaxYWidth = Window->MaxYWidth; Up = (ldat)Window->Up - Screen->YLogic + (ldat)YLimit - 1; Left = (ldat)Window->Left - Screen->XLogic; Rgt = Left + (ldat)XWidth - (ldat)1; Dwn = Up + (ldat)YWidth - (ldat)1; if ((DeltaX = -i) > (dat)0 && XWidth > MinXWidth) { if (MinXWidth + DeltaX > XWidth) DeltaX = XWidth - MinXWidth; XWidth = Window->XWidth -= DeltaX; if (Left < (ldat)DWidth && Up < (ldat)DHeight && Rgt + (ldat)DeltaXShade >= (ldat)0 && Dwn + (ldat)DeltaYShade >= (ldat)YLimit) { DrawArea2((screen)0, (widget)Window, (widget)0, (dat)Rgt - DeltaX + 1, (dat)Max2(Up, (ldat)YLimit), (dat)Rgt, (dat)Max2((ldat)YLimit, Dwn), tfalse); if (Shade) { DrawArea2(Screen, (widget)0, (widget)0, (dat)Rgt + Max2((dat)DeltaXShade - DeltaX - 1, 1), (dat)Max2((ldat)YLimit, Up), (dat)Rgt + (dat)DeltaXShade, (dat)Dwn + (dat)DeltaYShade, tfalse); if (DeltaX > (dat)DeltaXShade) DrawArea2(Screen, (widget)0, (widget)0, (dat)Rgt + (dat)DeltaXShade - DeltaX + 1, (dat)Max2((ldat)YLimit, Dwn + 1), (dat)Rgt, (dat)Dwn + (dat)DeltaYShade, tfalse); } } Rgt -= DeltaX; } else if ((DeltaX = i) > (dat)0 && XWidth < MaxXWidth) { if (XWidth > MaxXWidth - DeltaX) DeltaX = MaxXWidth - XWidth; XWidth = Window->XWidth += DeltaX; if (Left < (ldat)DWidth && Up < (ldat)DHeight && Rgt + (ldat)DeltaXShade >= -(ldat)DeltaX && Dwn + (ldat)DeltaYShade >= (ldat)YLimit) { DrawArea2((screen)0, (widget)Window, (widget)0, (dat)Rgt, (dat)Max2(Up + HasBorder, (ldat)YLimit), (dat)Rgt + DeltaX - HasBorder, (dat)Max2((ldat)YLimit, Dwn - HasBorder), tfalse); if (Shade) { DrawArea2(Screen, (widget)0, (widget)0, (dat)Rgt + 1 + Max2((dat)DeltaXShade, DeltaX), (dat)Max2((ldat)YLimit, Up + (dat)DeltaYShade), (dat)Rgt + DeltaX + (dat)DeltaXShade, (dat)Dwn + (dat)DeltaYShade, tfalse); if (DeltaX > (dat)DeltaXShade) DrawArea2(Screen, (widget)0, (widget)0, (dat)Rgt + (dat)DeltaXShade + 1, (dat)Max2((ldat)YLimit, Dwn + 1), (dat)Rgt + DeltaX, (dat)Dwn + (dat)DeltaYShade, tfalse); } } Rgt += DeltaX; } if ((DeltaY = -j) > (dat)0 && YWidth > MinYWidth) { if (MinYWidth + DeltaY > YWidth) DeltaY = YWidth - MinYWidth; YWidth = Window->YWidth -= DeltaY; if (Left < (ldat)DWidth && Up < (ldat)DHeight && Rgt + (ldat)DeltaXShade >= (ldat)0 && Dwn + (ldat)DeltaYShade >= (ldat)YLimit) { DrawArea2(Screen, (widget)0, (widget)0, (dat)Left, (dat)Max2(Dwn - (ldat)DeltaY + (ldat)1, (ldat)YLimit), (dat)Rgt, (dat)Max2((ldat)YLimit, Dwn), tfalse); if (Shade) { DrawArea2(Screen, (widget)0, (widget)0, (dat)Left, (dat)Max2((ldat)YLimit, Dwn + 1 + Max2((dat)DeltaYShade - DeltaY, (dat)0)), (dat)Rgt + (dat)DeltaXShade, (dat)Dwn + (dat)DeltaYShade, tfalse); if (DeltaY > (dat)DeltaYShade) DrawArea2(Screen, (widget)0, (widget)0, (dat)Rgt + 1, (dat)Max2((ldat)YLimit, Dwn + 1 + (dat)DeltaYShade - DeltaY), (dat)Rgt + (dat)DeltaXShade, (dat)Max2((ldat)YLimit, Dwn), tfalse); } } Dwn -= DeltaY; } else if ((DeltaY = j) > (dat)0 && YWidth < MaxYWidth) { if (YWidth > MaxYWidth - DeltaY) DeltaY = MaxYWidth - YWidth; YWidth = Window->YWidth += DeltaY; if (Left < (ldat)DWidth && Up < (ldat)DHeight && Rgt + (ldat)DeltaXShade >= (ldat)0 && Dwn + (ldat)DeltaYShade >= -(ldat)DeltaY + (ldat)YLimit) { DrawArea2((screen)0, (widget)Window, (widget)0, (dat)Left, (dat)Max2((ldat)YLimit, Dwn), (dat)Rgt - HasBorder, (dat)Max2((ldat)YLimit, Dwn + DeltaY - HasBorder), tfalse); if (Shade) { DrawArea2(Screen, (widget)0, (widget)0, (dat)Left + (dat)DeltaXShade, (dat)Dwn + 1 + Max2(DeltaY, (dat)DeltaYShade), (dat)Rgt + (dat)DeltaXShade, (dat)Dwn + (dat)DeltaYShade + DeltaY, tfalse); if (DeltaY > (dat)DeltaYShade) DrawArea2(Screen, (widget)0, (widget)0, (dat)Rgt + 1, (dat)Dwn + (dat)DeltaYShade + 1, (dat)Rgt + (dat)DeltaXShade, (dat)Max2((ldat)YLimit, Dwn + DeltaY), tfalse); } } Dwn += DeltaY; } if (DeltaX || DeltaY) { DrawBorderWindow(Window, BORDER_ANY); if (Window == (window)Screen->FocusW) UpdateCursor(); /* resize contents? for Interactive Resize, let the WM resize it * when Interactive Resize finishes. otherwise, do it now */ if (W_USE(Window, USECONTENTS) && Window->USE.C.Contents && (Window != Screen->ClickWindow || (All->State & state_any) != state_resize)) CheckResizeWindowContents(Window); } } void ResizeRelWindow(window Window, dat i, dat j) { ldat Left, Up, Rgt, Dwn; widget Parent; setup *SetUp; dat DeltaX, DeltaY; dat YLimit, XWidth, YWidth; dat MinXWidth, MinYWidth, MaxXWidth, MaxYWidth; byte Shade, DeltaXShade, DeltaYShade, visible; if (!Window || (!i && !j)) /* || !(Window->Attr & WINDOW_RESIZE) */ return; visible = !(Window->Flags & WIDGETFL_NOTVISIBLE); if (visible && (widget)Window == All->FirstScreen->FirstW) { ResizeRelFirstWindow(i, j); return; } XWidth = Window->XWidth; YWidth = Window->YWidth; MinXWidth = Window->MinXWidth; MinYWidth = Window->MinYWidth; MaxXWidth = Window->MaxXWidth; MaxYWidth = Window->MaxYWidth; if (visible && (Parent = Window->Parent) && IS_SCREEN(Parent)) { SetUp = All->SetUp; Shade = !!(SetUp->Flags & setup_shadows); DeltaXShade = Shade ? SetUp->DeltaXShade : (byte)0; DeltaYShade = Shade ? SetUp->DeltaYShade : (byte)0; YLimit = Parent->Up; Up = (ldat)Window->Up - Parent->YLogic + (ldat)YLimit; Left = (ldat)Window->Left - Parent->XLogic; Rgt = Left + (ldat)XWidth - (ldat)1 + DeltaXShade; Dwn = Up + (ldat)YWidth - (ldat)1 + DeltaYShade; } if ((DeltaX = -i) > (dat)0 && XWidth > MinXWidth) { if (MinXWidth + DeltaX > XWidth) DeltaX = XWidth - MinXWidth; XWidth = Window->XWidth -= DeltaX; } else if ((DeltaX = i) > (dat)0 && XWidth < MaxXWidth) { if (XWidth > MaxXWidth - DeltaX) DeltaX = MaxXWidth - XWidth; XWidth = Window->XWidth += DeltaX; Rgt += DeltaX; } if ((DeltaY = -j) > (dat)0 && YWidth > MinYWidth) { if (MinYWidth + DeltaY > YWidth) DeltaY = YWidth - MinYWidth; YWidth = Window->YWidth -= DeltaY; } else if ((DeltaY = j) > (dat)0 && YWidth < MaxYWidth) { if (YWidth > MaxYWidth - DeltaY) DeltaY = MaxYWidth - YWidth; YWidth = Window->YWidth += DeltaY; Dwn += DeltaY; } if (DeltaX || DeltaY) { if (visible && Parent && IS_SCREEN(Parent)) { Up = (dat)Max2(Up, (ldat)YLimit); DrawArea2((screen)Parent, (widget)0, (widget)0, (dat)Left, (dat)Up, (dat)Rgt, (dat)Dwn, tfalse); if (Shade) DrawShadeWindow(Window, 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse); } if (visible && Window == (window)All->FirstScreen->FocusW) UpdateCursor(); /* resize contents? for Interactive Resize, let the WM resize it * when Interactive Resize finishes. otherwise, do it now */ if (W_USE(Window, USECONTENTS) && Window->USE.C.Contents && (Window != All->FirstScreen->ClickWindow || (All->State & state_any) != state_resize)) CheckResizeWindowContents(Window); } } /* * coordinates are special here: * (0,0) is the (XLogic,YLogic) cell of the Window, * i.e. the first visible one. */ void ScrollFirstWindowArea(dat X1, dat Y1, dat X2, dat Y2, ldat DeltaX, ldat DeltaY) { screen Screen; dat DWidth, DHeight; window Window; ldat shLeft, shUp; dat Left, Up, Rgt, Dwn; dat Xstart, Ystart, Xend, Yend; dat XWidth, YWidth, YLimit; Screen = All->FirstScreen; Window = (window)Screen->FirstW; if (!Window || !IS_WINDOW(Window) || (Window->Attr & WINDOW_ROLLED_UP)) return; XWidth = Window->XWidth; YWidth = Window->YWidth; if (X1 > X2 || X1 > XWidth - 3 || X2 < 0 || Y1 > Y2 || Y1 > YWidth - 3 || Y2 < 0) return; if (DeltaX >= XWidth || -DeltaX >= XWidth || DeltaY >= YWidth || -DeltaY >= YWidth) { DrawWidget((widget)Window, (dat)0, (dat)0, TW_MAXDAT, TW_MAXDAT, tfalse); return; } DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; YLimit = Screen->YLimit; shUp = (ldat)Window->Up - Screen->YLogic + (ldat)YLimit; shLeft = (ldat)Window->Left - Screen->XLogic; X1 = Max2(X1, 0); Y1 = Max2(Y1, 0); X2 = Min2(X2, XWidth - 3); Y2 = Min2(Y2, YWidth - 3); Left = (dat)(shLeft + (ldat)1 + (ldat)X1); if (Left < 0) X1 += -Left, Left = 0; else if (Left >= DWidth) return; Up = (dat)(shUp + (ldat)1 + (ldat)Y1); if (Up <= (dat)YLimit) Y1 += (dat)YLimit + 1 - Up, Up = (dat)YLimit + 1; else if (Up >= DHeight) return; Rgt = (dat)(shLeft + (ldat)1 + (ldat)X2); if (Rgt >= DWidth) X2 -= Rgt - DWidth, Rgt = DWidth - 1; else if (Rgt < 0) return; Dwn = (dat)(shUp + (ldat)1 + (ldat)Y2); if (Dwn >= DHeight) Y2 -= Dwn - DHeight, Dwn = DHeight - 1; else if (Dwn < 0) return; Xstart = Left + Max2(-DeltaX, (dat)0); Ystart = Up + Max2(-DeltaY, (dat)0); Xend = Rgt - Max2(DeltaX, (dat)0); Yend = Dwn - Max2(DeltaY, (dat)0); if (DeltaX) { if (Xend >= Xstart) DragArea(Xstart, Ystart, Xend, Yend, Xstart + DeltaX, Ystart); if (DeltaX > (dat)0) DrawWidget((widget)Window, Left, Up, Left + DeltaX - 1, Dwn, tfalse); else DrawWidget((widget)Window, Rgt + DeltaX + 1, Up, Rgt, Dwn, tfalse); } else if (DeltaY) { if (Yend >= Ystart) DragArea(Xstart, Ystart, Xend, Yend, Xstart, Ystart + DeltaY); if (DeltaY > (dat)0) DrawWidget((widget)Window, Left, Up, Rgt, Up + DeltaY - 1, tfalse); else DrawWidget((widget)Window, Left, Dwn + DeltaY + 1, Rgt, Dwn, tfalse); } } void ScrollFirstWindow(ldat DeltaX, ldat DeltaY, byte byXYLogic) { window Window; ldat XLogic, YLogic; dat XWidth, YWidth; Window = (window)All->FirstScreen->FirstW; if (!Window || !IS_WINDOW(Window)) return; XWidth = Window->XWidth; YWidth = Window->YWidth; if (byXYLogic) { XLogic = Window->XLogic; YLogic = Window->YLogic; if (DeltaX > 0 && XLogic >= TW_MAXLDAT - DeltaX) DeltaX = TW_MAXLDAT - XLogic - 1; else if (DeltaX < 0 && XLogic < -DeltaX) DeltaX = -XLogic; if (!W_USE(Window, USEROWS)) { /* * WARNING: Window->USE.C.Contents and other methods * may be unable to handle out-of-bound rows */ if (DeltaY > 0 && YLogic + YWidth - 2 + DeltaY >= Window->HLogic) DeltaY = Window->HLogic - YLogic - YWidth + 2; else if (DeltaY < 0 && YLogic < -DeltaY) DeltaY = -YLogic; } else { if (DeltaY > 0 && YLogic + DeltaY >= Window->HLogic) DeltaY = Window->HLogic - YLogic - 1; else if (DeltaY < 0 && YLogic < -DeltaY) DeltaY = -YLogic; } if (DeltaX) Window->XLogic = (XLogic += DeltaX); if (DeltaY) Window->YLogic = (YLogic += DeltaY); if (DeltaX || DeltaY) DrawBorderWindow(Window, (DeltaX ? BORDER_DOWN : 0) | (DeltaY ? BORDER_RIGHT : 0)); } ScrollFirstWindowArea(0, 0, XWidth - 3, YWidth - 3, -DeltaX, -DeltaY); if (byXYLogic && ContainsCursor((widget)Window)) UpdateCursor(); } void ScrollWindow(window Window, ldat DeltaX, ldat DeltaY) { ldat XLogic, YLogic; dat YWidth; if (!Window || !IS_WINDOW(Window) || (!DeltaX && !DeltaY)) return; if (!(Window->Attr & WINDOW_X_BAR)) DeltaX = 0; if (!(Window->Attr & WINDOW_Y_BAR)) DeltaY = 0; if (!DeltaX && !DeltaY) return; if ((widget)Window == All->FirstScreen->FirstW) { ScrollFirstWindow(DeltaX, DeltaY, ttrue); return; } YWidth = Window->YWidth; XLogic = Window->XLogic; YLogic = Window->YLogic; if (DeltaX > 0 && XLogic >= TW_MAXLDAT - DeltaX) DeltaX = TW_MAXLDAT - XLogic - 1; else if (DeltaX < 0 && XLogic < -DeltaX) DeltaX = -XLogic; if (!W_USE(Window, USEROWS)) { /* * WARNING: Window->USE.C.Contents and other methods * may be unable to handle out-of-bound rows */ if (DeltaY > 0 && YLogic + YWidth - 2 + DeltaY >= Window->HLogic) DeltaY = Window->HLogic - YLogic - YWidth + 2; else if (DeltaY < 0 && YLogic < -DeltaY) DeltaY = -YLogic; } else { if (DeltaY > 0 && YLogic + DeltaY >= Window->HLogic) DeltaY = Window->HLogic - YLogic - 1; else if (DeltaY < 0 && YLogic < -DeltaY) DeltaY = -YLogic; } if (DeltaX) Window->XLogic = (XLogic += DeltaX); if (DeltaY) Window->YLogic = (YLogic += DeltaY); DrawFullWindow2(Window); if (ContainsCursor((widget)Window)) UpdateCursor(); } void ScrollWidget(widget W, ldat DeltaX, ldat DeltaY) { ldat XLogic, YLogic; dat YWidth; if (!W || !(DeltaX || DeltaY)) return; if (IS_WINDOW(W)) { ScrollWindow((window)W, DeltaX, DeltaY); return; } YWidth = W->YWidth; XLogic = W->XLogic; YLogic = W->YLogic; if (DeltaX > 0 && XLogic >= TW_MAXLDAT - DeltaX) DeltaX = TW_MAXLDAT - XLogic - 1; else if (DeltaX < 0 && XLogic < -DeltaX) DeltaX = -XLogic; /* * WARNING: content methods may be * unable to handle out-of-bound areas */ if (DeltaY > 0 && YLogic + YWidth - 2 >= TW_MAXLDAT - DeltaY) DeltaY = TW_MAXLDAT - YLogic - YWidth + 2; else if (DeltaY < 0 && YLogic < -DeltaY) DeltaY = -YLogic; if (DeltaX) W->XLogic = (XLogic += DeltaX); if (DeltaY) W->YLogic = (YLogic += DeltaY); DrawAreaWidget(W); if (ContainsCursor(W)) UpdateCursor(); } byte ExecScrollFocusWindow(void) { screen Screen; dat DWidth, DHeight; window Window; uldat Attr, State, Scroll; dat XWidth, YWidth; dat DeltaX, DeltaY; if ((All->State & state_any) != state_scroll) return tfalse; if (!(Screen = All->FirstScreen) || !(Window = (window)Screen->FocusW) || !IS_WINDOW(Window)) return tfalse; Attr = Window->Attr; State = Window->State; DeltaX = DeltaY = (sbyte)0; if (Attr & WINDOW_X_BAR && State & X_BAR_SELECT) DeltaX = 1; else if (Attr & WINDOW_Y_BAR && State & Y_BAR_SELECT) DeltaY = 1; else return tfalse; DWidth = All->DisplayWidth; DHeight = All->DisplayHeight; XWidth = Window->XWidth; YWidth = Window->YWidth; XWidth = Min2(XWidth, DWidth); YWidth = Min2(YWidth, DHeight); Scroll = State & SCROLL_ANY_SELECT; if (Scroll != ARROW_BACK_SELECT && Scroll != ARROW_FWD_SELECT && Scroll != PAGE_BACK_SELECT && Scroll != PAGE_FWD_SELECT && Scroll != TAB_SELECT) return tfalse; if (Scroll == ARROW_BACK_SELECT) { DeltaX = -DeltaX; DeltaY = -DeltaY; } else if (Scroll == ARROW_FWD_SELECT) ; else if (Scroll == PAGE_BACK_SELECT) { DeltaX *= -(XWidth - 3); DeltaY *= -(YWidth - 3); } else if (Scroll == PAGE_FWD_SELECT) { DeltaX *= (XWidth - 3); DeltaY *= (YWidth - 3); } else if (Scroll == TAB_SELECT) return tfalse; if ((widget)Window == Screen->FirstW) ScrollFirstWindow(DeltaX, DeltaY, ttrue); else ScrollWindow(Window, DeltaX, DeltaY); return ttrue; } /* menu traversing functions */ void HideMenu(byte on_off) { screen Screen = All->FirstScreen; if (on_off) { if (Screen->YLimit == 0) { if (Screen->YLogic > TW_MINDAT) { Screen->YLogic--; Screen->YLimit--; DrawArea2(Screen, (widget)0, (widget)0, 0, 0, TW_MAXDAT, 0, tfalse); UpdateCursor(); } else ResizeFirstScreen(-1); } } else { if (Screen->YLimit == -1) { if (Screen->YLogic < TW_MAXDAT) { Screen->YLogic++; Screen->YLimit++; Act(DrawMenu, Screen)(Screen, 0, TW_MAXDAT); UpdateCursor(); } else ResizeFirstScreen(1); } } } static void OpenSubMenuItem(menu M, menuitem Item, byte ByMouse) { window P = (window)Item->Parent; window W = Item->Window; screen S = All->FirstScreen; ldat y = P->CurY; P->CurY = Item->WCurY; if (y != TW_MAXLDAT) DrawLogicWidget((widget)P, 0, y, TW_MAXLDAT, y); if ((y = P->CurY) == TW_MAXLDAT) (void)Act(FindRowByCode, P)(P, Item->Code, &P->CurY); if ((y = P->CurY) != TW_MAXLDAT) DrawLogicWidget((widget)P, 0, y, TW_MAXLDAT, y); if (W) { if (!W->Parent) { W->Left = P->Left + P->XWidth - S->XLogic; W->Up = P->Up + P->CurY - P->YLogic - S->YLogic + 1; } if (ByMouse) W->CurY = TW_MAXLDAT; else if (W->CurY == TW_MAXLDAT) W->CurY = 0; Act(MapTopReal, W)(W, S); } if ((widget)P != S->FocusW) Act(Focus, P)(P); } static void OpenTopMenuItem(menu M, menuitem Item, byte ByMouse) { menu _M = (menu)Item->Parent; /* may either be M or All->CommonMenu */ window W = Item->Window; if (!W->Parent) { W->Up = 1; W->Left = Item->Left; if (M != _M && M->LastI) /* adjust common menu W->Left to the Item position in this menu */ W->Left += M->LastI->Left + M->LastI->Len; } Act(SetSelectedItem, M)(M, Item); if (ByMouse) W->CurY = TW_MAXLDAT; else if (W->CurY == TW_MAXLDAT) W->CurY = (ldat)0; if (Item->Flags & ROW_ACTIVE) W->Flags &= ~WINDOWFL_DISABLED; else W->Flags |= WINDOWFL_DISABLED; Act(MapTopReal, W)(W, All->FirstScreen); if (W->CurY != TW_MAXLDAT && (Item = (menuitem)Act(FindRow, W)(W, W->CurY))) OpenSubMenuItem(M, Item, ByMouse); } static void OpenMenuItem(menu M, menuitem Item, byte ByMouse) { if (Item) { obj O = Item->Parent; if (O && IS_WINDOW(O)) OpenSubMenuItem(M, Item, ByMouse); else OpenTopMenuItem(M, Item, ByMouse); } else Act(SetSelectedItem, M)(M, (menuitem)0); } /* this activates the menu bar */ static void OpenMenu(menuitem Item, byte ByMouse) { screen S = All->FirstScreen; widget W = S->FocusW; menu M = Act(FindMenu, S)(S); if ((All->State & state_any) == state_default) { All->State = state_menu | (ByMouse ? state_fl_bymouse : 0); if (All->SetUp->Flags & setup_menu_hide) HideMenu(tfalse); if (!S->MenuWindow && W) { S->MenuWindow = (window)W; /* so that it keeps `active' borders */ S->FocusW = (widget)0; } } OpenMenuItem(M, Item, ByMouse); } /* * up one level; return new selected item; * do NOT use to close the menu, CloseMenu() does that */ static menuitem CloseMenuItem(menu M, menuitem Item, byte ByMouse) { window P = (window)Item->Parent, W = Item->Window; if (W) Act(UnMap, W)(W); if (P && IS_WINDOW(P)) { if (ByMouse) { ldat y = P->CurY; P->CurY = TW_MAXLDAT; if (y != TW_MAXLDAT) DrawLogicWidget((widget)P, 0, y, TW_MAXLDAT, y); } Item = P->MenuItem; if (Item) { W = (window)Item->Parent; if (W && IS_WINDOW(W)) W->Focus(); else P->Focus(); } return Item; } else { Item = (menuitem)0; Act(SetSelectedItem, M)(M, Item); return Item; } } static dat DepthOfMenuItem(menuitem I) { window W; dat d = 0; while (I && (W = (window)I->Parent) && IS_WINDOW(W)) { I = W->MenuItem; d++; } return d; } /* this traverses the menu bar as needed */ static void TraverseMenu(menu M, menuitem OldItem, dat Odepth, menuitem NewItem, dat Ndepth, byte ByMouse) { while (Odepth > Ndepth && OldItem) { Odepth--; OldItem = CloseMenuItem(M, OldItem, ByMouse); } /* paranoia */ Odepth = DepthOfMenuItem(OldItem); if (Ndepth == Odepth) { if (OldItem != NewItem) CloseMenuItem(M, OldItem, ByMouse); OpenMenuItem(M, NewItem, ByMouse); } else if (Ndepth == Odepth + 1) { OpenMenuItem(M, NewItem, ByMouse); } else printk("twin: internal error: unsupported menu traversing.\n"); } /* close the menu bar */ void CloseMenu(void) { screen S = All->FirstScreen; menu M = Act(FindMenu, S)(S); menuitem Item; window W; if (M) { if ((W = S->MenuWindow)) { Act(KbdFocus, W)(W); S->MenuWindow = NULL; } else Do(KbdFocus, window)(NULL); /* close whole currently open menu tree */ Item = Act(GetSelectedItem, M)(M); while (Item && IS_MENUITEM(Item) && (W = (window)Item->Window) && IS_WINDOW(W)) { Item = (menuitem)Act(FindRow, W)(W, W->CurY); Act(UnMap, W)(W); } } All->State = state_default; if (All->SetUp->Flags & setup_menu_hide) HideMenu(ttrue); else Act(DrawMenu, S)(S, 0, TW_MAXDAT); } /* * exported interface to open and interact with the menu. * do NOT use to close the menu, CloseMenu() does that */ void SetMenuState(menuitem Item, byte ByMouse) { screen S = All->FirstScreen; menu M = Act(FindMenu, S)(S); menuitem OldItem = (menuitem)0; dat Odepth = 0; if (M && (Item || ByMouse)) { if ((All->State & state_any) != state_default) OldItem = Act(RecursiveGetSelectedItem, M)(M, &Odepth); if (!OldItem) OpenMenu(Item, ByMouse); else if (OldItem != Item) TraverseMenu(M, OldItem, Odepth, Item, DepthOfMenuItem(Item), ByMouse); UpdateCursor(); } } /* ---------------- */ void UnFocusWidget(widget W) { if (W && W->Parent == (widget)All->FirstScreen && W == All->FirstScreen->FocusW) { if (IS_WINDOW(W)) { Act(KbdFocus, W)((widget)0); DrawBorderWindow((window)W, BORDER_ANY); Act(DrawMenu, (screen)W->Parent)((screen)W->Parent, 0, TW_MAXDAT); UpdateCursor(); } else All->FirstScreen->FocusW = (widget)0; } } void RollUpWindow(window W, byte on_off) { if (W && !(W->Flags & WINDOWFL_BORDERLESS)) { /* * you cannot roll-up borderless windows... * without a top border you cannot collapse them * to their top border :/ */ if (on_off && !(W->Attr & WINDOW_ROLLED_UP)) { W->Attr |= WINDOW_ROLLED_UP; ReDrawRolledUpAreaWindow(W, tfalse); } else if (!on_off && (W->Attr & WINDOW_ROLLED_UP)) { W->Attr &= ~WINDOW_ROLLED_UP; DrawAreaWindow2(W); } if (W->Parent == (widget)All->FirstScreen) UpdateCursor(); } } /* ---------------- */ void SetVisibleWidget(widget W, byte on_off) { byte visible; if (W) { on_off = !!on_off; visible = !(W->Flags & WIDGETFL_NOTVISIBLE); if (on_off != visible) { W->Flags ^= WIDGETFL_NOTVISIBLE; if (IS_WINDOW(W)) DrawAreaWindow2((window)W); else DrawAreaWidget(W); } } } void RaiseWidget(widget W, byte alsoFocus) { screen Screen; if (W && (Screen = (screen)W->Parent) && IS_SCREEN(Screen)) { if (Screen->FirstW != W) { MoveFirst(W, (widget)Screen, W); if (IS_WINDOW(W)) DrawAreaWindow2((window)W); else DrawAreaWidget(W); } if (Screen == All->FirstScreen) { if (alsoFocus) Act(Focus, W)(W); UpdateCursor(); } if (Screen->FnHookW) Screen->FnHookW(Screen->HookW); } } void LowerWidget(widget W, byte alsoUnFocus) { screen Screen; widget _W; if (W && (Screen = (screen)W->Parent) && IS_SCREEN(Screen)) { if (Screen->LastW != W) { MoveLast(W, (widget)Screen, W); if (IS_WINDOW(W)) DrawAreaWindow2((window)W); else DrawAreaWidget(W); } if (Screen == All->FirstScreen) { if (alsoUnFocus) { _W = Screen->FirstW; if (_W && IS_WINDOW(_W) && _W != W) _W->Focus(); else Do(Focus, window)(NULL); } else UpdateCursor(); } if (Screen->FnHookW) Screen->FnHookW(Screen->HookW); } } void RestackWidgets(widget W, uldat N, const widget *arrayW) { widget FW, CW; byte need_redraw = tfalse; if (W && N && arrayW) { for (FW = (widget)0; N; N--, arrayW++) { /* * Allow only children that really have the given parent. * Also deny WINDOFL_MENU windows */ if ((CW = *arrayW) && CW->Parent == W && !(CW->Flags & WINDOWFL_MENU)) { if (FW && CW != FW->Next) { /* restack after arrayW[0] */ CW->Remove(); Act(Insert, CW)(CW, W, FW, FW->Next); need_redraw = ttrue; } FW = CW; } } /* FIXME: this is gross */ if (need_redraw) DrawAreaWidget(W); } } /* ---------------- */ void RestackRows(obj O, uldat N, const row *arrayR) { row FR, CR; byte need_redraw = tfalse; if (O && (IS_MENU(O) || IS_WINDOW(O)) && N && arrayR) { for (FR = (row)0; N; N--, arrayR++) { /* * Allow only children that really have the given parent. */ if ((CR = *arrayR) && (obj)CR->Window == O) { if (FR && CR != FR->Next) { /* restack after arrayR[0] */ CR->Remove(); Act(Insert, CR)(CR, (window)O, FR, FR->Next); need_redraw = ttrue; } FR = CR; } } /* FIXME: this is gross */ if (need_redraw) { if (IS_MENU(O)) SyncMenu((menu)O); else DrawAreaWidget((widget)O); } } } /* ---------------- */ void SendMsgGadget(gadget G) { msg Msg; event_gadget *Event; if (G->Code && !(G->Flags & GADGETFL_DISABLED)) { if ((Msg = New(msg)(msg_widget_gadget, 0))) { Event = &Msg->Event.EventGadget; Event->W = G->Parent; Event->Code = G->Code; Event->Flags = G->Flags; SendMsg(G->Owner, Msg); } } } static void realUnPressGadget(gadget G) { G->Flags &= ~GADGETFL_PRESSED; if (G->Group && G->Group->SelectG == G) G->Group->SelectG = (gadget)0; if ((widget)G == All->FirstScreen->FirstW) DrawWidget((widget)G, 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse); else DrawAreaWidget((widget)G); } static void realPressGadget(gadget G) { G->Flags |= GADGETFL_PRESSED; if (G->Group) G->Group->SelectG = G; if ((widget)G == All->FirstScreen->FirstW) DrawWidget((widget)G, 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse); else DrawAreaWidget((widget)G); } void PressGadget(gadget G) { if (!(G->Flags & GADGETFL_DISABLED)) { /* honour groups */ if (G->Group && G->Group->SelectG && G->Group->SelectG != G) UnPressGadget(G->Group->SelectG, ttrue); realPressGadget(G); if (G->Flags & GADGETFL_TOGGLE) SendMsgGadget(G); } } void UnPressGadget(gadget G, byte maySendMsgIfNotToggle) { if (!(G->Flags & GADGETFL_DISABLED)) { realUnPressGadget(G); if (maySendMsgIfNotToggle || (G->Flags & GADGETFL_TOGGLE)) SendMsgGadget(G); } } /* Left < 0 means right-align leaving (-Left-1) margin */ /* Up < 0 means down-align leaving (-Up-1) margin */ void WriteTextsGadget(gadget G, byte bitmap, dat TW, dat TH, const char *charset_bytes, dat L, dat U) { dat GW = G->XWidth, GH = G->YWidth; dat TL = 0, TU = 0, W, H; dat _W; trune *GT; const char *TT; byte i; if (G->Flags & GADGETFL_BUTTON) { GW--; GH--; } if (!G_USE(G, USETEXT) || L >= GW || U >= GH) return; if (L < 0) { L += GW - TW + 1; if (L < 0) { TL = -L; L = 0; } } if (U < 0) { U += GH - TH + 1; if (U < 0) { TU = -U; U = 0; } } W = Min2(TW - TL, GW - L); H = Min2(TH - TU, GH - U); if (G->Flags & GADGETFL_BUTTON) { GW++; GH++; } if (W > 0) { for (i = 0; i < 4; i++, bitmap >>= 1) { if ((bitmap & 1) && G->USE.T.Text[i]) { GT = G->USE.T.Text[i] + L + U * GW; if (charset_bytes) { TT = charset_bytes + TL + TU * TW; /* update the specified part, do not touch the rest */ while (H-- > 0) { _W = W; while (_W-- > 0) { *GT++ = Tutf_CP437_to_UTF_32[(byte)(*TT++)]; } GT += GW - W; TT += TW - W; } } else { /* clear the specified part of gadget contents */ while (H-- > 0) { _W = W; while (_W-- > 0) *GT++ = ' '; GT += GW - W; } } } } DrawAreaWidget((widget)G); } } /* Left < 0 means right-align leaving (-Left-1) margin */ /* Up < 0 means down-align leaving (-Up-1) margin */ void WriteTRunesGadget(gadget G, byte bitmap, dat TW, dat TH, const trune *TRune, dat L, dat U) { dat GW = G->XWidth, GH = G->YWidth; dat TL = 0, TU = 0, W, H; dat _W; trune *GT; const trune *TT; byte i; if (G->Flags & GADGETFL_BUTTON) { GW--; GH--; } if (!G_USE(G, USETEXT) || L >= GW || U >= GH) return; if (L < 0) { L += GW - TW + 1; if (L < 0) { TL = -L; L = 0; } } if (U < 0) { U += GH - TH + 1; if (U < 0) { TU = -U; U = 0; } } W = Min2(TW - TL, GW - L); H = Min2(TH - TU, GH - U); if (G->Flags & GADGETFL_BUTTON) { GW++; GH++; } if (W > 0) { for (i = 0; i < 4; i++, bitmap >>= 1) { if ((bitmap & 1) && G->USE.T.Text[i]) { GT = G->USE.T.Text[i] + L + U * GW; if (TRune) { TT = TRune + TL + TU * TW; /* update the specified part, do not touch the rest */ while (H-- > 0) { _W = W; while (_W-- > 0) { *GT++ = Tutf_CP437_to_UTF_32[*TT++]; } GT += GW - W; TT += TW - W; } } else { /* clear the specified part of gadget contents */ while (H-- > 0) { _W = W; while (_W-- > 0) *GT++ = ' '; GT += GW - W; } } } } DrawAreaWidget((widget)G); } } void SyncMenu(menu Menu) { menuitem I, PrevI = (menuitem)0; screen Screen; if (Menu) { for (I = Menu->FirstI; I; I = I->Next) { if (PrevI) I->Left = PrevI->Left + PrevI->Len; else I->Left = 1; PrevI = I; } for (Screen = All->FirstScreen; Screen; Screen = Screen->Next) { if (Act(FindMenu, Screen)(Screen) == Menu) Act(DrawMenu, Screen)(Screen, 0, TW_MAXDAT); } } } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/resize.h��������������������������������������������������������������������������0000664�0000000�0000000�00000005300�13775351206�0015470�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_RESIZE_H #define TWIN_RESIZE_H byte EnsureLenRow(row r, uldat len, byte default_color); byte RowWriteCharset(window w, uldat Len, const char *charset_bytes); byte RowWriteUtf8(window w, uldat len, const char *utf8_bytes); byte RowWriteTRune(window w, uldat len, const trune *runes); void ExposeWidget2(widget W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, const char *utf8_bytes, const trune *runes, const tcell *cells); void ExposeWindow2(window W, dat XWidth, dat YWidth, dat Left, dat Up, dat Pitch, const char *utf8_bytes, const trune *runes, const tcell *cells); extern byte NeedUpdateCursor; #define UpdateCursor() (NeedUpdateCursor = ttrue) void FlushCursor(void); byte CheckResizeWindowContents(window Window); byte ResizeWindowContents(window Window); /* void SetNewFont(void); void GetPalette(void); void SetPalette(void); */ void ResizeFirstScreen(dat DeltaY); void DragFirstScreen(ldat DeltaX, ldat DeltaY); void HideMenu(byte on_off); void CloseMenu(void); void SetMenuState(menuitem Item, byte ByMouse); void ResizeWidget(widget W, dat X, dat Y); void ResizeGadget(gadget G, dat X, dat Y); void DragFirstWindow(dat i, dat j); void DragWindow(window Window, dat i, dat j); void ResizeRelFirstWindow(dat i, dat j); void ResizeRelWindow(window Window, dat i, dat j); void CenterWindow(window Window); byte ExecScrollFocusWindow(void); void ScrollFirstWindowArea(dat X1, dat Y1, dat X2, dat Y2, ldat DeltaX, ldat DeltaY); void ScrollFirstWindow(ldat DeltaX, ldat DeltaY, byte byXYLogic); void ScrollWindow(window Window, ldat DeltaX, ldat DeltaY); void ScrollWidget(widget W, ldat DeltaX, ldat DeltaY); void UnFocusWidget(widget W); void RollUpWindow(window W, byte on_off); void SetVisibleWidget(widget W, byte on_off); void RaiseWidget(widget W, byte alsoFocus); void LowerWidget(widget W, byte alsoDeFocus); void RestackWidgets(widget P, uldat N, const widget *arrayW); void RestackRows(obj O, uldat N, const row *arrayR); void PressGadget(gadget G); void UnPressGadget(gadget G, byte maySendMsgIfNotToggle); void SendMsgGadget(gadget G); void WriteTextsGadget(gadget G, byte bitmap, dat XWidth, dat YWidth, const char *Text, dat Left, dat Up); void WriteTRunesGadget(gadget G, byte bitmap, dat XWidth, dat YWidth, const trune *Text, dat Left, dat Up); void SyncMenu(menu Menu); #endif /* TWIN_RESIZE_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/scroller.cpp����������������������������������������������������������������������0000664�0000000�0000000�00000007417�13775351206�0016362�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * scroller.c -- manage autorepeat of virtual screen and window scrolling * * Copyright (C) 1993-2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "algo.h" #include "data.h" #include "methods.h" #include "scroller.h" #include "hw_multi.h" #include "resize.h" #include "printk.h" #include "util.h" /* FIXME: Fix screen scrolling during Interactive Drag/Resize */ msgport Scroller_MsgPort; static void ScrollerH(msgport MsgPort); /* * just dummy msgs that we receive when we are called * to start/stop scrolling immediately */ msg Do_Scroll, Dont_Scroll; byte InitScroller(void) { if ((Scroller_MsgPort = New(msgport)(16, "builtin scroller", (tany)0, 401 MilliSECs, (byte)0, ScrollerH)) && (Do_Scroll = New(msg)(0, 0)) && (Dont_Scroll = New(msg)(0, 0))) { return ttrue; } printk("twin: Scroller: " SS "\n", Errstr); return tfalse; } inline void ScrollerDeactivate(void) { Scroller_MsgPort->PauseDuration.Fraction = 333 MilliSECs + 1; Scroller_MsgPort->WakeUp = 0; } inline void ScrollerAutoRepeat(void) { if (Scroller_MsgPort->PauseDuration.Fraction > 333 MilliSECs) Scroller_MsgPort->PauseDuration.Fraction = 333 MilliSECs; else Scroller_MsgPort->PauseDuration.Fraction = 30 MilliSECs; } inline void ScrollerDelayRepeat(void) { Scroller_MsgPort->PauseDuration.Fraction = 333 MilliSECs + 1; } static void ScrollerH(msgport MsgPort) { msg Msg, saveMsg; mouse_state *Mouse; uldat Attr, WState; dat Limit; dat Mouse_delta_x, Mouse_delta_y; byte State, FlagDeskScroll, FlagWinScroll, WinScrolled = tfalse; window FocusWindow; while ((Msg = Scroller_MsgPort->FirstMsg)) { Msg->Remove(); if (Msg == Do_Scroll || Msg == Dont_Scroll) saveMsg = Msg; else Msg->Delete(); } if (saveMsg == Dont_Scroll || !All->MouseHW) { ScrollerDeactivate(); return; } Mouse = &All->MouseHW->MouseState; FocusWindow = (window)All->FirstScreen->FocusW; if (FocusWindow && !IS_WINDOW(FocusWindow)) FocusWindow = (window)0; if (FocusWindow) { Attr = FocusWindow->Attr; WState = FocusWindow->State; FlagWinScroll = (((Attr & WINDOW_X_BAR) && (WState | X_BAR_SELECT)) || ((Attr & WINDOW_Y_BAR) && (WState | Y_BAR_SELECT))) && !(WState & TAB_SELECT); } else FlagWinScroll = tfalse; FlagDeskScroll = (All->SetUp->Flags & setup_screen_scroll) /* only a single button must be held */ && (Mouse->keys == HOLD_CODE(HOLD_N(Mouse->keys))); State = All->State & state_any; if (State != state_default && State != state_scroll && State != state_drag && State != state_resize) { ScrollerDeactivate(); return; } if (State != state_default && FlagWinScroll) { if ((WinScrolled = ExecScrollFocusWindow())) ScrollerAutoRepeat(); } Mouse_delta_x = -Mouse->delta_x; Mouse_delta_y = -Mouse->delta_y; FlagDeskScroll &= Mouse_delta_x || Mouse_delta_y; if (!FlagDeskScroll) { if (!WinScrolled) { ScrollerDelayRepeat(); } return; } if (FlagDeskScroll) { Limit = All->SetUp->MaxMouseSnap; if (Scroller_MsgPort->PauseDuration.Fraction > 333 MilliSECs) { Mouse_delta_x = Sign(Mouse_delta_x); Mouse_delta_y = Sign(Mouse_delta_y); } DragFirstScreen(Mouse_delta_x * Limit, Mouse_delta_y * Limit); if (!WinScrolled) ScrollerAutoRepeat(); StdAddMouseEvent(MOVE_MOUSE | Mouse->keys, Mouse->x, Mouse->y); } else { if (!WinScrolled) ScrollerDelayRepeat(); } } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/scroller.h������������������������������������������������������������������������0000664�0000000�0000000�00000000742�13775351206�0016021�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_SCROLLER_H #define TWIN_SCROLLER_H byte InitScroller(void); extern msgport Scroller_MsgPort; extern msg Do_Scroll, Dont_Scroll; #endif /* TWIN_SCROLLER_H */ ������������������������������twin-0.9.0/server/shm.cpp���������������������������������������������������������������������������0000664�0000000�0000000�00000021131�13775351206�0015311�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * shm.c -- a custom version of malloc (not realloc/free) routines * which exclusively uses a shared mmapped file to get memory. * this implementation is really dumb, but does what is needed. * * Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twconfig.h" #include <Tw/pagesize.h> #ifdef TW_HAVE_SYS_STAT_H #include <sys/stat.h> #endif #ifdef TW_HAVE_SYS_MMAN_H #include <sys/mman.h> #endif #include "twin.h" #include "alloc.h" #include "main.h" #include "data.h" #include "printk.h" #include "wm.h" #include "rctypes.h" #include "rcproto.h" #include "rcrun.h" #include "util.h" #if !defined(CONF_WM_RC_SHMMAP) && defined(CONF_WM_RC_SHRINK) static byte may_shrink = ttrue; #endif static byte *M; /* the memory pool */ static size_t L; /* its length */ static byte *S; /* the first available address */ static byte *E; /* 1 + the last available address */ static byte *TSR_M; /* the _previous_ memory pool */ static size_t TSR_L; /* its length */ #define TW_ALIGN 15 /* look at WriteGlobals() to find the reason of this size */ #define _GL_SIZE \ (sizeof(Globals) + sizeof(All->ButtonVec) + sizeof(GlobalFlags) + sizeof(GlobalShadows)) #define GL_SIZE ((_GL_SIZE & ~TW_ALIGN) + TW_ALIGN + 1) static size_t full_write(int fd, const byte *data, size_t len) { size_t left = len; int r; do { r = write(fd, data, left); if (r > 0) { data += r; left -= r; } } while (left && (r > 0 || (r == -1 && errno == EINTR))); return len - left; } static size_t full_read(int fd, byte *data, size_t len) { size_t left = len; int r; do { r = read(fd, data, left); if (r > 0) { data += r; left -= r; } } while (left && (r > 0 || (r == -1 && errno == EINTR))); return len - left; } #if !defined(CONF_WM_RC_SHMMAP) && defined(CONF_WM_RC_SHRINK) static void shm_shrink_error(void) { may_shrink = tfalse; printk("twin: shm_shrink(): ReAllocMem() relocated memory while shrinking! \n" #ifdef CONF__ALLOC " This should not happen! Please report.\n" #endif " CONF_WM_RC_SHRINK disabled.\n" " Reconfigure and recompile to disable it permanently.\n"); } #endif /* !defined(CONF_WM_RC_SHMMAP) && defined(CONF_WM_RC_SHRINK) */ #ifdef CONF_WM_RC_SHMMAP /* value returned on mmap() failure */ #define NOCORE ((void *)-1) static size_t TW_PAGE_SIZE = 0; /* set by first call to shm_init() */ #define TW_PAGE_ALIGN_DOWN(l) ((l) & ~(size_t)(TW_PAGE_SIZE - 1)) #define TW_PAGE_ALIGN_UP(l) (((l) + (TW_PAGE_SIZE - 1)) & ~(size_t)(TW_PAGE_SIZE - 1)) byte shm_init(size_t len) { struct sockaddr_un addr; // for sun_path char *shmfile = addr.sun_path; int fd = NOFD; udat pathlen; if (TW_PAGE_SIZE == 0) TW_PAGE_SIZE = getpagesize(); pathlen = CopyToSockaddrUn(TmpDir(), &addr, 0); pathlen = CopyToSockaddrUn("/.Twin_shm", &addr, pathlen); pathlen = CopyToSockaddrUn(TWDisplay, &addr, pathlen); unlink(shmfile); len += GL_SIZE; len = TW_PAGE_ALIGN_UP(len + GL_SIZE); if ((fd = open(shmfile, O_RDWR | O_CREAT | O_TRUNC | O_EXCL, 0600)) >= 0) { if (((L = len), lseek(fd, (off_t)L - 1, SEEK_SET) == (off_t)L - 1) && write(fd, "", 1) == 1) { #ifndef MAP_FILE #define MAP_FILE 0 #endif #ifdef CONF__ALLOC if ((M = S = (byte *)mmap((byte *)AllocStatHighest() + (1l << 24), L, PROT_READ | PROT_WRITE, MAP_FILE | MAP_SHARED, fd, 0)) == NOCORE) #endif M = S = (byte *)mmap(0, L, PROT_READ | PROT_WRITE, MAP_FILE | MAP_SHARED, fd, 0); if (M != NOCORE) { S += GL_SIZE; /* reserve the first part for globals */ E = M + L; close(fd); unlink(shmfile); return ttrue; } } close(fd); unlink(shmfile); } return tfalse; } /* * shrink (M, M+L) to (M, S) */ byte shm_shrink(void) { size_t new_L = TW_PAGE_ALIGN_UP((size_t)(S - M)); if (new_L < L) { munmap(M + new_L, L - new_L); L = new_L; } return ttrue; } void shm_abort(void) { munmap(M, L); M = NULL; } void shm_TSR_abort(void) { if (TSR_M) (void)munmap(TSR_M, TSR_L); TSR_M = NULL; } /* * Terminate Stay Resident : * * free (TSR_M, TSR_M+TSR_L), * install (M, S) as the new (TSR_M, TSR_M+TSR_L) * */ void shm_TSR(void) { shm_TSR_abort(); TSR_M = M; TSR_L = L; M = NULL; } void shm_quit(void) { shm_TSR_abort(); shm_abort(); } /* * send all data structures through the fd * (not needed in this case, we have a real shared memory * so we just send the value of S to mark end of meaningful data) */ byte shm_send(int fd) { size_t len = S - M; return full_write(fd, (const byte *)&len, sizeof(size_t)) == sizeof(size_t); } byte shm_receive(int fd) { size_t len; if (full_read(fd, (byte *)&len, sizeof(size_t)) == sizeof(size_t)) { S = M + len; return ttrue; } return tfalse; } #else /* CONF_WM_RC_SHMMAP */ byte shm_init(size_t len) { M = S = AllocMem(L = len + 4096); if (M) { S += GL_SIZE; /* reserve the first part for globals */ E = M + L; } return !!M; } /* * shrink (M, M+L) to (M, S) */ byte shm_shrink(void) { #ifdef CONF_WM_RC_SHRINK if (may_shrink) { size_t new_L = (size_t)(S - M); if (new_L < L) { void *new_M = ReAllocMem(M, new_L); if (new_M == M) { L = new_L; return ttrue; } if (new_M) { /* ReAllocMem relocated ! inform the user and disable may_shrink ! */ shm_shrink_error(); M = new_M; L = new_L; } /* ReAllocMem failed or relocated... the only thing to do here is shm_abort() */ return tfalse; } } #endif /* CONF_WM_RC_SHRINK */ return ttrue; } void shm_abort(void) { if (M) FreeMem(M); M = NULL; } void shm_TSR_abort(void) { if (TSR_M) FreeMem(TSR_M); TSR_M = NULL; } /* * Terminate Stay Resident : * * free (TSR_M, TSR_M+TSR_L), * install (M, S) as the new (TSR_M, TSR_M+TSR_L) * */ void shm_TSR(void) { shm_TSR_abort(); TSR_M = M; TSR_L = L; M = NULL; } void shm_TSR_quit(void) { shm_TSR_abort(); shm_abort(); } void shm_quit(void) { shm_TSR_abort(); shm_abort(); } /* * send all data structures through the fd * (we don't have a real shared memory now, * so we must really send all data) */ byte shm_send(int fd) { size_t len = S - M; *(size_t *)M = len; return full_write(fd, M, len) == len; } static byte full_read0(int fd, byte *data, size_t *dlen) { size_t len, first = full_read(fd, data, sizeof(size_t)); if (first == sizeof(size_t)) { len = *(size_t *)data - first; data += first; *dlen = first + full_read(fd, data, len); return *dlen == first + len; } *dlen = first; return tfalse; } byte shm_receive(int fd) { size_t len; if (full_read0(fd, M, &len)) { /* * also update S, it allows strict FAILc() checks */ S = M + len; return ttrue; } return tfalse; } #endif /* CONF_WM_RC_SHMMAP */ /* important: memory returned by shm_malloc() must be full of zeros! */ void *shm_malloc(size_t len) { byte *ret, *retE; int delta; if (!len) return NULL; /* if allocating a multiple of 16 bytes, align return value at 16 bytes */ /* else if allocating a multiple of 8 bytes, align return value at 8 bytes */ /* else if allocating a multiple of 4 bytes, align return value at 4 bytes */ /* else if allocating a multiple of 2 bytes, align return value at 2 bytes */ /* else don't align return value */ if ((delta = ffs(len & TW_ALIGN)) > 1) delta = (2 << (delta - 2)) - 1; else delta = 0; ret = S; if ((size_t)ret & delta) ret += delta + 1 - ((size_t)ret & delta); retE = ret + len; if (retE <= E) { S = retE; #ifdef DEBUG_SHM printk("%.8X ", (size_t)ret); #endif #ifndef CONF_WM_RC_SHMMAP /* important: memory returned by shm_malloc() must be full of zeros! */ memset(ret, '\0', len); #endif return (void *)ret; } return NULL; } void *shm_malloc_or_die(size_t len) { void *m = shm_malloc(len); if (m || !len) return m; printk("twin: RC: Out of shared memory!\n"); exit(1); } char *shm_strdup_or_die(const char *s) { size_t len = strlen(s) + 1; char *d = (char *)shm_malloc_or_die(len); CopyMem(s, d, len); return d; } void *shm_getbase(void) { return M + sizeof(size_t); /* skip space for placing shm length */ } void *shm_getend(void) { return S; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/socket.cpp������������������������������������������������������������������������0000664�0000000�0000000�00000226773�13775351206�0016035�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * socket.c -- remote libtw server implementation: supports unix and inet sockets * * Copyright (C) 1999-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* * Life is tricky... under SunOS hstrerror() is in an obscure library, so it gets disabled, * yet <netdb.h> has its prototype, so the #define hstrerror() in "missing.h" breaks it. * Solution: include "twin.h" (pulls in "missing.h") late, but still include * "twconfig.h" and "osincludes.h" early to pull in TW_HAVE_* and system headers * necessary to include <sys/socket.h> under FreeBSD. */ #include "twautoconf.h" #include "osincludes.h" #include <sys/socket.h> #include <sys/un.h> #include <sys/stat.h> #include <netdb.h> #ifdef TW_HAVE_NETINET_IN_H #include <netinet/in.h> #endif #ifdef TW_HAVE_SYS_IOCTL_H #include <sys/ioctl.h> #endif #ifdef TW_HAVE_SYS_UTSNAME_H #include <sys/utsname.h> #endif #ifdef TW_HAVE_ZLIB_H #include <zlib.h> #endif #include "twin.h" #include "algo.h" #include "alloc.h" #include "data.h" #include "draw.h" #include "extreg.h" #include "main.h" #include "methods.h" #include "obj/id.h" // Obj2Id #include "printk.h" #include "resize.h" #include "util.h" #include "fdlist.h" #include "remote.h" #include "socket.h" #include "md5.h" #include "hw_multi.h" #include "common.h" #include "unaligned.h" #include "version.h" #include "stl/span.h" #include <Tw/Tw.h> #include <Tw/Twkeys.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include <Tutf/Tutf.h> #define CONF_SOCKET_ALIEN #ifdef CONF_SOCKET_ALIEN static const byte *alienPop(const byte *src, uldat alien_len, void *dst, uldat len); static byte *alienPush(const void *src, uldat len, byte *dst, uldat alien_len); #define alienPOP(src, type, lval) \ (src = alienPop(src, AlienSizeof(type, Slot), &(lval), sizeof(type))) #define alienPUSH(dst, type, lval) \ (dst = alienPush(&(lval), sizeof(type), (dst), AlienSizeof(type, Slot))) static void alienSendMsg(msgport MsgPort, msg Msg); static void AlienIO(int fd, uldat slot); #endif /* First: private variables from remote.c */ extern fdlist *FdList; extern uldat FdSize, FdTop, FdBottom, FdWQueued; #define LS FdList[Slot] #define ls FdList[slot] #define ls_p FdList[ls.pairSlot] /* some extra functions not included in remote.c */ #if 0 /* currently unused */ static uldat RemoteReadAddQueue(uldat Slot, uldat len, byte *data) { uldat nmax; if (len == 0 || Slot >= FdTop || LS.Fd == NOFD) return 0; /* append to queue */ if (LS.RQstart + LS.RQlen + len > LS.RQmax) { if (LS.RQstart) MoveMem(LS.RQueue + LS.RQstart, LS.RQueue, LS.RQlen), LS.RQstart = 0; if (LS.RQlen + len > LS.RQmax) { LS.RQueue = (byte *)ReAllocMem(LS.RQueue, nmax = (LS.RQmax+len+40)*5/4); if (!LS.RQueue) return (LS.RQmax = LS.RQlen = 0); LS.RQmax = nmax; } } CopyMem(data, LS.RQueue + LS.RQstart + LS.RQlen, len); LS.RQlen += len; return len; } #endif /* 0 */ static byte *RemoteReadGrowQueue(uldat Slot, uldat len) { uldat nmax; if (len == 0 || Slot >= FdTop || LS.Fd == NOFD) return NULL; if (LS.RQstart + LS.RQlen + len > LS.RQmax) { /* grow the queue */ if (LS.RQstart) MoveMem(LS.RQueue + LS.RQstart, LS.RQueue, LS.RQlen), LS.RQstart = 0; if (LS.RQlen + len > LS.RQmax) { LS.RQueue = (byte *)ReAllocMem(LS.RQueue, nmax = (LS.RQmax + len + 40) * 5 / 4); if (!LS.RQueue) { LS.RQmax = LS.RQlen = 0; return NULL; } LS.RQmax = nmax; } } nmax = LS.RQstart + LS.RQlen; LS.RQlen += len; return LS.RQueue + nmax; } static uldat RemoteReadShrinkQueue(uldat Slot, uldat len) { if (len && Slot < FdTop && LS.Fd != NOFD) { if (len < LS.RQlen) { LS.RQlen -= len; } else { len = LS.RQlen; LS.RQstart = LS.RQlen = 0; } return len; } return 0; } static uldat RemoteReadDeQueue(uldat Slot, uldat len) { if (len && Slot < FdTop && LS.Fd != NOFD) { if (len < LS.RQlen) { LS.RQstart += len; LS.RQlen -= len; } else { len = LS.RQlen; LS.RQstart = LS.RQlen = 0; } return len; } return 0; } static byte *RemoteReadGetQueue(uldat Slot, uldat *len) { if (Slot >= FdTop || LS.Fd == NOFD || !LS.RQlen) { if (len) { *len = 0; } return NULL; } if (len) *len = LS.RQlen; return LS.RQueue + LS.RQstart; } static byte *RemoteWriteGetQueue(uldat Slot, uldat *len) { if (Slot >= FdTop || LS.Fd == NOFD || !LS.WQlen) { if (len) *len = 0; return NULL; } if (len) *len = LS.WQlen; return LS.WQueue; } #ifdef CONF_SOCKET_GZ static byte *RemoteReadFillQueue(uldat Slot, uldat *len) { uldat delta; if (Slot >= FdTop || LS.Fd == NOFD) { if (len) { *len = 0; } return NULL; } delta = LS.RQmax - LS.RQstart - LS.RQlen; /* still available */ if (len) { *len = delta; } LS.RQlen += delta; /* alloc them */ return LS.RQueue + LS.RQmax - delta; /* return the address of first one */ } static byte *RemoteWriteFillQueue(uldat Slot, uldat *len) { uldat delta; if (Slot >= FdTop || LS.Fd == NOFD) { if (len) { *len = 0; } return NULL; } delta = LS.WQmax - LS.WQlen; /* still available */ if (len) { *len = delta; } if (!LS.WQlen && LS.WQmax) { LS.WQlen = LS.WQmax; /* alloc them */ FdWQueued++; } return LS.WQueue + LS.WQmax - delta; /* return the address of first one */ } /* compress an uncompressed slot */ static byte RemoteGzip(uldat Slot) { uldat slot = LS.pairSlot, delta; z_streamp z = (z_streamp)ls.PrivateData; int zret = Z_OK; /* compress the queue */ if (LS.WQlen) { z->next_in = LS.WQueue; z->avail_in = LS.WQlen; /* in case sizeof(z->avail_out) != sizeof(uldat) */ z->next_out = RemoteWriteFillQueue(slot, &delta); z->avail_out = delta; while (z->avail_in && zret == Z_OK) { if (z->avail_out < (delta = z->avail_in + 12)) { if (RemoteWriteQueue(slot, delta - z->avail_out, NULL)) { if (!(ls.WQlen -= delta)) FdWQueued--; z->next_out = RemoteWriteFillQueue(slot, &delta); z->avail_out = delta; } else { /* out of memory ! */ break; } } zret = deflate(z, Z_SYNC_FLUSH); /* update the compressed queue */ if (!(ls.WQlen -= z->avail_out)) FdWQueued--; } } /* update the uncompressed queue */ if (z->avail_in) { CopyMem(LS.WQueue + LS.WQlen - z->avail_in, LS.WQueue, z->avail_in); } slot = LS.WQlen; if (!(LS.WQlen = z->avail_in) && slot) { FdWQueued--; } return zret == Z_OK; } static byte RemoteGzipFlush(uldat Slot) { return RemoteGzip(Slot) && RemoteFlush(LS.pairSlot); } static byte RemoteGunzip(uldat Slot) { uldat slot = LS.pairSlot, delta; z_streamp z = (z_streamp)ls.PrivateData; int zret = Z_OK; /* uncompress the queue */ if (LS.RQlen) { /* in case sizeof(z->avail_out) != sizeof(uldat) */ z->next_in = RemoteReadGetQueue(Slot, &delta); z->avail_in = delta; z->next_out = RemoteReadFillQueue(slot, &delta); z->avail_out = delta; while (z->avail_in && zret == Z_OK) { /* approx. guess of uncompression ratio: 1 to 5 */ if (z->avail_out < (delta = 5 * z->avail_in + 12)) { if (RemoteReadGrowQueue(slot, delta - z->avail_out)) { ls.RQlen -= delta; z->next_out = RemoteReadFillQueue(slot, &delta); z->avail_out = delta; } else { /* out of memory ! */ break; } } zret = inflate(z, Z_SYNC_FLUSH); /* update the uncompressed queue */ ls.RQlen -= z->avail_out; } } /* update the compressed queue */ if (z->avail_in) { LS.RQstart += LS.RQlen - z->avail_in; } LS.RQlen = z->avail_in; return zret == Z_OK; } static void ShutdownGzip(uldat Slot); #endif /* CONF_SOCKET_GZ */ static void SocketH(msgport MsgPort); static void sockShutDown(msgport MsgPort) { if (MsgPort->RemoteData.FdSlot < FdTop) { UnRegisterMsgPort(MsgPort); } } /* prototypes of libtw back-end utility functions */ static uldat sockFindFunction(byte Len, const char *name, byte ProtoLen, const char *Proto); static byte sockSyncSocket(void); static byte sockServerSizeof(byte Type); static byte sockCanCompress(void); static byte sockDoCompress(byte on_off); static void sockNeedResizeDisplay(void); static void sockAttachHW(uldat len, const char *arg, byte flags); static byte sockDetachHW(uldat len, const char *arg); static void sockSetFontTranslation(const byte trans[0x80]); static void sockSetTRuneTranslation(const trune trans[0x80]); static void sockDeleteObj(void *V); static widget sockCreateWidget(dat XWidth, dat YWidth, uldat Attr, uldat Flags, dat Left, dat Up, tcell Fill); static void sockRecursiveDeleteWidget(widget W); static void sockSetXYWidget(widget W, dat x, dat y); static void sockResizeWidget(widget W, dat XWidth, dat YWidth); #define sockScrollWidget ScrollWidget static void sockDrawWidget(widget W, dat XWidth, dat YWidth, dat Left, dat Up, const char *utf8_bytes, const trune *runes, const tcell *cells); #define sockSetVisibleWidget SetVisibleWidget static void sockFocusSubWidget(widget W); #define sockRestackChildrenWidget RestackWidgets static void sockCirculateChildrenWidget(widget W, byte up_or_down); #define TW_CIRCULATE_RAISE_LAST 0 #define TW_CIRCULATE_LOWER_FIRST 1 static gadget sockCreateGadget(widget Parent, dat XWidth, dat YWidth, const char *TextNormal, uldat Attr, uldat Flags, udat Code, tcolor ColText, tcolor ColTextSelect, tcolor ColTextDisabled, tcolor ColTextSelectDisabled, dat Left, dat Up); static window sockCreateWindow(dat TitleLen, const char *Title, const tcolor *ColTitle, menu Menu, tcolor ColText, uldat CursorType, uldat Attr, uldat Flags, dat XWidth, dat YWidth, dat ScrollBackLines); static void sockWriteCharsetWindow(window Window, uldat Len, const char *charset_bytes); static void sockWriteUtf8Window(window Window, uldat Len, const char *utf8_bytes); static void sockWriteTRuneWindow(window Window, uldat Len, const trune *runes); static void sockWriteTCellWindow(window Window, dat x, dat y, uldat Len, const tcell *cells); static void sockSetTitleWindow(window Window, dat titlelen, const char *title); static row sockFindRowByCodeWindow(window Window, dat Code); static menuitem sockCreate4MenuAny(obj Parent, window Window, udat Code, byte Flags, ldat Len, const char *Name); #define sockRestackChildrenRow RestackRows static void sockCirculateChildrenRow(obj O, byte up_or_down); #define TW_CIRCULATE_RAISE_LAST 0 #define TW_CIRCULATE_LOWER_FIRST 1 static menu sockCreateMenu(tcolor ColItem, tcolor ColSelect, tcolor ColDisabled, tcolor ColSelectDisabled, tcolor ColShtCut, tcolor ColSelShtCut, byte FlagDefColInfo); static msgport sockCreateMsgPort(byte NameLen, const char *Name); static msgport sockFindMsgPort(msgport Prev, byte NameLen, const char *Name); static ggroup sockCreateGroup(void); static obj sockPrevObj(obj o); static obj sockNextObj(obj o); static obj sockParentObj(obj o); static screen sockFirstScreen(void); static widget sockFirstWidget(widget W); static msgport sockFirstMsgPort(void); static menu sockFirstMenu(msgport MsgPort); static widget sockFirstW(msgport MsgPort); static ggroup sockFirstGroup(msgport MsgPort); static mutex sockFirstMutex(msgport MsgPort); static menuitem sockFirstMenuItem(menu Menu); static gadget sockFirstGadget(ggroup Group); static byte sockSendToMsgPort(msgport MsgPort, udat Len, const byte *Data); static void sockBlindSendToMsgPort(msgport MsgPort, udat Len, const byte *Data); static obj sockGetOwnerSelection(void); static void sockSetOwnerSelection(tany Time, tany Frac); static void sockNotifySelection(obj Requestor, uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], uldat Len, const char *Data); static void sockRequestSelection(obj Owner, uldat ReqPrivate); #define sockSetServerUid SetServerUid #define sockGetDisplayWidth GetDisplayWidth #define sockGetDisplayHeight GetDisplayHeight static all sockGetAll(void); /* Second: socket handling functions */ static uldat MaxFunct, Slot, RequestN; static const byte *s, *end; static int inetFd = NOFD, Fd; static uldat inetSlot = NOSLOT; static byte sockReply(uldat code, uldat len, const void *data); static void SocketIO(int fd, uldat slot); #define Left(size) (s + (size) <= end) #include "socket_id.h" static void sockStat(obj x, udat n, const byte *in); typedef struct { byte Len, FormatLen; const char *Name, *Format; } sockfn; static sockfn sockF[] = { #include "socket2_m4.h" {0, 0, "StatObj", "0S0x" obj_magic_STR "_" TWS_udat_STR "V" TWS_udat_STR}, {0, 0, NULL, NULL}}; /* convert a 2-byte string "v"TWS_void_STR or "_"* or "V"* into a tsfield->type */ inline udat proto_2_TWS(const char proto[2]) { udat tws_type = 0; switch (proto[0]) { case 'V': tws_type |= TWS_vec; /* FALLTHROUGH */ case '_': if (proto[1] < TWS_highest) { tws_type |= proto[1]; break; } /* FALLTHROUGH */ case 'v': /* turn '\xFE' into TWS_void ('\0') */ if ((byte)proto[1] == (byte)TWS_void_CHR) break; /* FALLTHROUGH */ default: /* safe assumption */ tws_type = TWS_tany; break; } return tws_type; } inline void TWS_2_proto(udat tws_type, char proto[2]) { if (tws_type & TWS_vec) { proto[0] = 'V'; } else if (tws_type == TWS_void) { proto[0] = 'v'; } else proto[0] = '_'; if ((tws_type &= TWS_last) == TWS_void) { /* turn TWS_void ('\0') into '\xFE' */ proto[1] = TWS_void_CHR; } else if (tws_type < TWS_highest) { proto[1] = tws_type; } else { /* safe assumption */ proto[0] = '_'; proto[1] = TWS_tany; } } #define _obj .TWS_field_obj #define _any .TWS_field_scalar #define _vec .TWS_field_vecV #define _cvec .TWS_field_vecCV #define _len .TWS_field_vecL #define _type .type #define void_ TWS_void #define obj_ TWS_obj #define vec_ TWS_vec #define vecW_ TWS_vecW /* here a[0] is the first arg, N is the number of args */ static void sockMultiplex_S(uldat id, Span<s_tsfield> a) { switch (id) { #include "socket1_m4.h" default: break; } } /* here a[1] is the first arg, a[0] is the return value, N is the number of args + 1 */ #define fullMultiplexS(Id, a) \ do { \ if ((Id) == order_StatObj) { \ if ((a).size() > 3) { \ sockStat((obj)(a)[1] _obj, (udat)(a)[2] _any, (const byte *)(a)[3] _vec); \ } \ } else { \ sockMultiplex_S(Id, a); \ } \ } while (0) /* here a[0] is the first arg, a.size is the number of args */ static void sockMultiplexS(uldat id, Span<s_tsfield> a) { sockMultiplex_S(id, a); if (id < MaxFunct) a[0] _type = proto_2_TWS(sockF[id].Format); } /* code to return array lengths V(expr) and W(expr) */ static uldat sockLengths(uldat id, View<s_tsfield> a) { uldat L = 0; uldat n = a.size(); switch (id) { #include "socket3_m4.h" case order_StatObj: switch (n) { case 3: L = a[2] _any; break; } default: break; } return L; } TW_DECL_MAGIC(TwinMagicData); /***********/ #include "socketstat.h" /***********/ /* * translate an array of IDs to an array of obj of type c; * *alloced is ttrue if needed to allocate a buffer, tfalse otherwise. * if success, return array of obj, else return NULL. */ static obj *AllocId2ObjVec(byte *alloced, byte c, uldat n, byte *VV) { const byte *S; obj *aX; obj *X; uldat i; if ((aX = X = (obj *)AllocMem(n * sizeof(obj)))) { S = (const byte *)VV; while (n--) { Pop(S, uldat, i); *X++ = Id2Obj(c, i); } *alloced = ttrue; } else *alloced = tfalse; return aX; } inline ldat sockDecodeArg(uldat id, const char *Format, uldat n, tsfield a, uldat mask[1], byte flag[1], ldat fail) { const void *av; topaque nlen; byte c; switch ((c = (byte)*Format++)) { case '_': switch ((c = (byte)*Format)) { #define CASE_(type) \ case CAT(TWS_, type): \ /* ensure type size WAS negotiated */ \ if (AlienSizeof(type, Slot) && Left(sizeof(type))) { \ type an; \ Pop(s, type, an); \ a[n] _any = (tany)an; \ a[n] _type = c; \ break; \ } \ fail = -fail; \ break case TWS_tcolor: /*FALLTHROUGH*/ CASE_(byte); CASE_(dat); CASE_(ldat); CASE_(topaque); CASE_(tany); CASE_(trune); CASE_(tcell); #undef CASE_ default: fail = -fail; break; } break; case 'x': /* all kind of pointers */ if (Left(sizeof(uldat))) { uldat a0; Pop(s, uldat, a0); c = (byte)*Format - base_magic_CHR; a[n] _obj = Id2Obj(c, a0); a[n] _type = obj_; break; } fail = -fail; break; case 'V': nlen = sockLengths(id, View<s_tsfield>(a, n)); c = (byte)*Format; /* ensure type size WAS negotiated */ if ((c <= TWS_tcolor || AlienMagic(Slot)[c])) { nlen *= AlienMagic(Slot)[c]; if (Left(nlen)) { PopAddr(s, const byte, nlen, av); a[n] _len = nlen; a[n] _cvec = av; a[n] _type = vec_ | c; break; } } fail = -fail; break; case 'W': /* ensure 'topaque' size WAS negotiated */ if (AlienSizeof(topaque, Slot) && Left(sizeof(topaque))) { Pop(s, topaque, nlen); c = (byte)*Format; /* ensure type size WAS negotiated */ if ((c <= TWS_tcolor || AlienMagic(Slot)[c])) { if (!nlen || (Left(nlen) && nlen == sockLengths(id, View<s_tsfield>(a, n)) * AlienMagic(Slot)[c])) { PopAddr(s, const byte, nlen, av); a[n] _len = nlen; a[n] _cvec = av; a[n] _type = vec_ | vecW_ | c; break; } } } fail = -fail; break; case 'X': nlen = sockLengths(id, View<s_tsfield>(a, n)) * sizeof(uldat); if (Left(nlen)) { c = (byte)*Format - base_magic_CHR; PopAddr(s, const byte, nlen, av); if ((a[n] _vec = AllocId2ObjVec(flag, c, nlen / sizeof(uldat), (byte *)RemoveConst(av)))) { a[n] _len = nlen; a[n] _type = vec_ | obj_; *mask |= *flag << n; break; } } fail = -fail; break; case 'Y': /* ensure 'topaque' size WAS negotiated */ if (AlienSizeof(topaque, Slot) && Left(sizeof(topaque))) { Pop(s, topaque, nlen); nlen *= sizeof(uldat); if (Left(nlen)) { c = (byte)*Format - base_magic_CHR; PopAddr(s, const byte, nlen, av); if ((a[n] _vec = AllocId2ObjVec(flag, c, nlen / sizeof(uldat), (byte *)RemoveConst(av)))) { a[n] _len = nlen; a[n] _type = vec_ | obj_; *mask |= *flag << n; break; } } } fail = -fail; break; default: fail = -fail; break; } return fail; } static void sockMultiplexB(uldat id) { static struct s_tsfield a[TW_MAX_ARGS_N]; static byte warned = tfalse; uldat mask = 0; /* at least 32 bits. we need TW_MAX_ARGS_N... */ uldat nlen, n = 1; ldat fail = 1; const char *Format = sockF[id].Format; uldat a0; byte c, self, flag, retT[2]; self = (byte)*Format++; retT[0] = (byte)*Format++; retT[1] = (byte)*Format++; while (fail > 0 && *Format) { if (n < TW_MAX_ARGS_N) { fail = sockDecodeArg(id, Format, n, a, &mask, &flag, fail); } else /* (n >= TW_MAX_ARGS_N) */ { if (!warned) { warned = ttrue; printk("twin: sockMultiplexB(): got a call with %d args, only %d supported!\n", n, TW_MAX_ARGS_N); } fail = -fail; } if (fail > 0) { Format += 2; fail++; n++; } else break; } if ((flag = (fail > 0 && s == end && !*Format && (self != '2' || a[1] _obj)))) { if (retT[0] == 'O' && a[n - 1] _type == (TWS_vec | TWS_byte) && a[n - 1] _len == 2 * sizeof(byte)) { /* * variable return type. store it in last arg, * and let function implementation overwrite it * * evil trick: only a[n-1]_vec will be passed to the function, * but it points to a[n-1] itself! */ a[n - 1] _type = proto_2_TWS((const char *)(a[n - 1] _vec)); if (mask & 1 << (n - 1)) FreeMem(a[n - 1].TWS_field_vecV); a[n - 1] _vec = &a[n - 1]; a[n - 1] _len = 0; } fullMultiplexS(id, Span<s_tsfield>(a, n)); } for (nlen = 0; mask; mask >>= 1, nlen++) { if (mask & 1) FreeMem(a[nlen].TWS_field_vecV); } if (flag) { if (retT[0] == 'O') { /* variable return type. get it from last arg */ /* FIXME: currently, only '_' (scalar) and 'v' (void) return types are supported */ TWS_2_proto(a[n - 1] _type, (char *)retT); } switch (retT[0]) { case '_': switch (retT[1]) { #define CASE_(type) \ case CAT(TWS_, type): \ /* ensure type size WAS negotiated */ \ if (CAT(TWS_, type) <= TWS_tcolor || AlienSizeof(type, Slot)) { \ /* move to first bytes on MSB machines */ \ *(type *)&a[0] _any = (type)a[0] _any; \ c = sizeof(type); \ break; \ } \ fail = 0; \ break case TWS_tcolor: /*FALLTHROUGH*/ CASE_(byte); CASE_(dat); CASE_(ldat); CASE_(topaque); CASE_(tany); CASE_(trune); CASE_(tcell); #undef CASE_ default: c = 0; break; } if (c && fail > 0) { sockReply(OK_MAGIC, c, &a[0] _any); return; } break; case 'x': a0 = a[0] _obj ? a[0] _obj->Id : NOID; sockReply(OK_MAGIC, sizeof(tobj), &a0); return; case 'S': case 'v': return; default: break; } } if (retT[0] != 'v') { if (fail > 0) { if (self != '2' || a[1] _obj) fail = FAIL_MAGIC; else fail = 1; } sockReply(fail, 0, NULL); } } #undef _obj #undef _any #undef _vec #undef _len #undef _type #undef void_ #undef obj_ #undef vec_ #undef vecW_ /***********/ #ifdef CONF_SOCKET_ALIEN #include "socketalien.h" #endif /***********/ /* actual libtw back-end utility functions */ static int CmpFormat(const char *F1, const char *F2, uldat Len) { for (; Len; F1++, F2++, Len--) { if (Len > 1 && *F1 == *F2 && (*F1 == 'x' || *F1 == 'X' || *F1 == 'Y')) { /* * pointer. must allow any, since libtw * generically asks for 'tobj', not specific ones */ F1++, F2++, Len--; continue; } if (*F1 != *F2) break; } return Len ? *F1 - *F2 : 0; } static uldat sockFindFunction(byte Len, const char *Name, byte FormatLen, const char *Format) { sockfn *F = sockF; if (Name) { while (F->Name && (F->Len != Len || F->FormatLen - 1 != FormatLen || memcmp(F->Name, Name, Len) || CmpFormat(F->Format + 1, Format, FormatLen))) F++; if (F->Name) return (uldat)(F - sockF); } return NOID; } static byte sockSyncSocket(void) { return ttrue; } static byte sockServerSizeof(byte Type) { return TwinMagicData[Type < TWS_highest ? Type : TWS_void]; } static void sockNeedResizeDisplay(void) { if (LS.MsgPort && LS.MsgPort->AttachHW) ResizeDisplayPrefer(LS.MsgPort->AttachHW); } /* * this does direct write() on the connecting socket, * so it bypasses any compression. */ static void sockAttachHW(uldat len, const char *arg, byte flags) { display_hw D_HW; fd_set set; struct timeval tv = {2, 0}; int realFd; char buf[2] = "\0"; byte verbose = flags & TW_ATTACH_HW_REDIRECT; byte exclusive = flags & TW_ATTACH_HW_EXCLUSIVE; realFd = LS.Fd >= 0 ? LS.Fd : FdList[LS.pairSlot].Fd; if (!LS.MsgPort) { if (verbose) write(realFd, "twin: AttachHW(): client did not create a MsgPort\n\0", 52); else write(realFd, buf, 2); return; } if (verbose) verbose = RegisterPrintk(realFd); if ((D_HW = AttachDisplayHW(len, arg, Slot, exclusive))) { if (D_HW->NeedHW & NEEDPersistentSlot) LS.MsgPort->AttachHW = D_HW; else D_HW->AttachSlot = NOSLOT; /* we don't need it => forget it */ } if (D_HW) { buf[1]++; if (D_HW->NeedHW & NEEDPersistentSlot) buf[1]++; } write(realFd, buf, 2); /* wait for twattach to confirm attach... */ FD_ZERO(&set); FD_SET(realFd, &set); while (select(realFd + 1, &set, NULL, NULL, &tv) == -1 && errno == EINTR) ; read(realFd, buf, 1); if (verbose) UnRegisterPrintk(); } static byte sockDetachHW(uldat len, const char *arg) { return DetachDisplayHW(len, arg, 0); /* cannot detach exclusive displays !! */ } static void sockSetFontTranslation(const byte trans[0x80]) { if (trans) { int i; trune *G = All->Gtranslations[USER_MAP]; for (i = 0; i < 0x80; i++) G[i] = i; if (sizeof(trune) == sizeof(byte)) CopyMem(trans, G + 0x80, 0x80); else for (i = 0x0; i < 0x80; i++) G[0x80 | i] = trans[i]; } } static void sockSetTRuneTranslation(const trune trans[0x80]) { if (trans) { int i; trune *G = All->Gtranslations[USER_MAP]; for (i = 0; i < 0x80; i++) G[i] = i; CopyMem(trans, G + 0x80, sizeof(trune) * 0x80); } } static msgport sockGetMsgPortObj(obj p) { obj_entry e = (obj_entry)p; while (e) { if (IS_MSGPORT(e)) { return (msgport)e; } switch (e->Id >> magic_shift) { case row_magic_id: case menuitem_magic_id: case menu_magic_id: e = (obj_entry)e->Parent; break; case mutex_magic_id: e = (obj_entry)((mutex)e)->Owner; break; default: if (IS_WIDGET(e)) e = (obj_entry)((widget)e)->Owner; else e = NULL; break; } } return (msgport)e; } static void sockDeleteObj(void *V) { obj O = (obj)V; msgport MsgPort = RemoteGetMsgPort(Slot); if (MsgPort && MsgPort == sockGetMsgPortObj(O)) O->Delete(); } static widget sockCreateWidget(dat XWidth, dat YWidth, uldat Attr, uldat Flags, dat Left, dat Up, tcell Fill) { msgport Owner; if ((Owner = RemoteGetMsgPort(Slot))) return New(widget)(Owner, XWidth, YWidth, Attr, Flags, Left, Up, Fill); return (widget)0; } static void sockRecursiveDeleteWidget(widget W) { msgport MsgPort = RemoteGetMsgPort(Slot); /* avoid too much visual activity... UnMap top-level widget immediately */ Act(UnMap, W)(W); Act(RecursiveDelete, W)(W, MsgPort); } static void sockSetXYWidget(widget W, dat x, dat y) { if (W) { if (W->Parent && IS_SCREEN(W->Parent)) { x += W->Parent->XLogic; y += W->Parent->YLogic; } Act(SetXY, W)(W, x, y); } } static void sockDrawWidget(widget W, dat XWidth, dat YWidth, dat Left, dat Up, const char *Text, const trune *Font, const tcell *Attr) { if (W) { Act(Expose, W)(W, XWidth, YWidth, Left, Up, XWidth, Text, Font, Attr); } } static void sockFocusSubWidget(widget W) { widget P; if (W && !IS_SCREEN(W) && W->Parent && !IS_SCREEN(W->Parent)) { W->SelectW = NULL; while ((P = W->Parent) && !IS_SCREEN(P)) { P->SelectW = W; W = P; } if (ContainsCursor((widget)WindowParent(W))) UpdateCursor(); } } static void sockResizeWidget(widget W, dat X, dat Y) { if (W) { if (IS_WINDOW(W)) { if (!(W->Flags & WINDOWFL_BORDERLESS)) X += 2, Y += 2; ResizeRelWindow((window)W, X - W->XWidth, Y - W->YWidth); } else if (IS_GADGET(W)) { ResizeGadget((gadget)W, X, Y); } else { ResizeWidget((widget)W, X, Y); } } } static void sockCirculateChildrenWidget(widget W, byte up_or_down) { if (W) { if (up_or_down == TW_CIRCULATE_RAISE_LAST) { if ((W = W->LastW)) Act(Raise, W)(W); } else if (up_or_down == TW_CIRCULATE_LOWER_FIRST) { if ((W = W->FirstW)) Act(Lower, W)(W); } } } static void sockCirculateChildrenRow(obj O, byte up_or_down) { row R = (row)0; if (O) { if (IS_WINDOW(O) && W_USE((window)O, USEROWS)) { if (up_or_down == TW_CIRCULATE_RAISE_LAST) R = ((window)O)->USE.R.LastRow; else if (up_or_down == TW_CIRCULATE_LOWER_FIRST) R = ((window)O)->USE.R.FirstRow; } else if (IS_MENU(O)) { if (up_or_down == TW_CIRCULATE_RAISE_LAST) R = (row)((menu)O)->LastI; else if (up_or_down == TW_CIRCULATE_LOWER_FIRST) R = (row)((menu)O)->FirstI; } if (R) { if (up_or_down == TW_CIRCULATE_RAISE_LAST) Act(Raise, R)(R); else if (up_or_down == TW_CIRCULATE_LOWER_FIRST) Act(Lower, R)(R); } } } static gadget sockCreateGadget(widget Parent, dat XWidth, dat YWidth, const char *TextNormal, uldat Attr, uldat Flags, udat Code, tcolor ColText, tcolor ColTextSelect, tcolor ColTextDisabled, tcolor ColTextSelectDisabled, dat Left, dat Up) { msgport Owner; if ((Owner = RemoteGetMsgPort(Slot))) return New(gadget)(Owner, Parent, XWidth, YWidth, TextNormal, Attr, Flags, Code, ColText, ColTextSelect, ColTextDisabled, ColTextSelectDisabled, Left, Up); return (gadget)0; } static window sockCreateWindow(dat TitleLen, const char *Title, const tcolor *ColTitle, menu Menu, tcolor ColText, uldat CursorType, uldat Attr, uldat Flags, dat XWidth, dat YWidth, dat ScrollBackLines) { msgport Owner; if ((Owner = RemoteGetMsgPort(Slot))) return New(window)(Owner, TitleLen, Title, ColTitle, Menu, ColText, CursorType, Attr, Flags, XWidth, YWidth, ScrollBackLines); return (window)0; } static void sockWriteCharsetWindow(window Window, uldat Len, const char *charset_bytes) { if (Window) { if ((Window->Flags & WINDOWFL_USEANY) == WINDOWFL_USECONTENTS) Act(TtyWriteCharset, Window)(Window, Len, charset_bytes); else if ((Window->Flags & WINDOWFL_USEANY) == WINDOWFL_USEROWS) Act(RowWriteCharset, Window)(Window, Len, charset_bytes); } } static void sockWriteUtf8Window(window Window, uldat Len, const char *utf8_bytes) { if (Window) { if ((Window->Flags & WINDOWFL_USEANY) == WINDOWFL_USECONTENTS) Act(TtyWriteUtf8, Window)(Window, Len, utf8_bytes); else if ((Window->Flags & WINDOWFL_USEANY) == WINDOWFL_USEROWS) Act(RowWriteUtf8, Window)(Window, Len, utf8_bytes); } } static void sockWriteTRuneWindow(window Window, uldat Len, const trune *runes) { if (Window) { if ((Window->Flags & WINDOWFL_USEANY) == WINDOWFL_USECONTENTS) Act(TtyWriteTRune, Window)(Window, Len, runes); else if ((Window->Flags & WINDOWFL_USEANY) == WINDOWFL_USEROWS) Act(RowWriteTRune, Window)(Window, Len, runes); } } static void sockWriteTCellWindow(window Window, dat x, dat y, uldat Len, const tcell *cells) { if (Window) { if ((Window->Flags & WINDOWFL_USEANY) == WINDOWFL_USECONTENTS) Act(TtyWriteTCell, Window)(Window, x, y, Len, cells); else if ((Window->Flags & WINDOWFL_USEANY) == WINDOWFL_USEROWS) Act(RowWriteTCell, Window)(Window, x, y, Len, cells); } } static void sockSetTitleWindow(window Window, dat titlelen, const char *title) { char *_title = NULL; if (Window) { if (!titlelen || (_title = (char *)CloneMem(title, titlelen + 1))) Act(SetTitle, Window)(Window, titlelen, _title); } } static row sockFindRowByCodeWindow(window Window, dat Code) { if (Window) { return Act(FindRowByCode, Window)(Window, Code, NULL); } return (row)0; } static menuitem sockCreate4MenuAny(obj Parent, window Window, udat Code, byte Flags, ldat Len, const char *Name) { return Do(Create4Menu, menuitem)(Parent, Window, Code, Flags, Len, Name); } static menu sockCreateMenu(tcolor ColItem, tcolor ColSelect, tcolor ColDisabled, tcolor ColSelectDisabled, tcolor ColShtCut, tcolor ColSelShtCut, byte FlagDefColInfo) { msgport Owner; if ((Owner = RemoteGetMsgPort(Slot))) return New(menu)(Owner, ColItem, ColSelect, ColDisabled, ColSelectDisabled, ColShtCut, ColSelShtCut, FlagDefColInfo); return (menu)0; } /* last 3 args are currently useless for remote clients */ static msgport sockCreateMsgPort(byte NameLen, const char *Name) { msgport MsgPort; if ((MsgPort = New(msgport)(NameLen, Name, 0, 0, 0, SocketH))) { RegisterMsgPort(MsgPort, Slot); MsgPort->ShutDownHook = sockShutDown; } return MsgPort; } static msgport sockFindMsgPort(msgport Prev, byte NameLen, const char *Name) { msgport M; if (!(M = Prev)) M = All->FirstMsgPort; while (M) { if (M->NameLen == NameLen && !memcmp(M->Name, Name, NameLen)) break; M = M->Next; } return M; } static ggroup sockCreateGroup(void) { msgport Owner; if ((Owner = RemoteGetMsgPort(Slot))) return New(group)(Owner); return (ggroup)0; } static obj sockPrevObj(obj o) { obj_entry e = (obj_entry)o; return (obj)(e ? e->Prev : e); } static obj sockNextObj(obj o) { obj_entry e = (obj_entry)o; return (obj)(e ? e->Next : e); } static obj sockParentObj(obj o) { obj_entry e = (obj_entry)o; return (obj)(e ? e->Parent : e); } static screen sockFirstScreen(void) { return All->FirstScreen; } static widget sockFirstWidget(widget W) { return W ? W->FirstW : W; } static msgport sockFirstMsgPort(void) { return All->FirstMsgPort; } static menu sockFirstMenu(msgport MsgPort) { return MsgPort ? MsgPort->FirstMenu : (menu)0; } static widget sockFirstW(msgport MsgPort) { return MsgPort ? MsgPort->FirstW : (widget)0; } static ggroup sockFirstGroup(msgport MsgPort) { return MsgPort ? MsgPort->FirstGroup : (ggroup)0; } static mutex sockFirstMutex(msgport MsgPort) { return MsgPort ? MsgPort->FirstMutex : (mutex)0; } static menuitem sockFirstMenuItem(menu Menu) { return Menu ? Menu->FirstI : (menuitem)0; } static gadget sockFirstGadget(ggroup Group) { return Group ? Group->FirstG : (gadget)0; } static all sockGetAll(void) { return All; } /* * turn the (msg) into a (tmsg) and write it on the MsgPort file descriptor. * * this can be called in nasty places like detaching non-exclusive displays * when an exclusive one is started. Must preserve Slot, Fd and other globals! */ static void sockSendMsg(msgport MsgPort, msg Msg) { uldat Len, Tot; byte *t, Easy; uldat save_Slot; int save_Fd; #ifdef CONF_SOCKET_ALIEN if (AlienXendian(Slot) != MagicNative) { alienSendMsg(MsgPort, Msg); return; } #endif Len = 0; save_Slot = Slot; save_Fd = Fd; Easy = sizeof(twindow) == sizeof(window); RequestN = MSG_MAGIC; Fd = MsgPort->RemoteData.Fd; Slot = MsgPort->RemoteData.FdSlot; switch (Msg->Type) { case msg_display: Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 4 * sizeof(udat) + Msg->Event.EventDisplay.Len, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twindow, NOID); /* not used here */ if (sizeof(event_display) == sizeof(window) + 4 * sizeof(dat) + sizeof(byte *)) { PushV(t, 4 * sizeof(dat), &Msg->Event.EventDisplay.Code); } else { Push(t, udat, Msg->Event.EventDisplay.Code); Push(t, udat, Msg->Event.EventDisplay.Len); Push(t, udat, Msg->Event.EventDisplay.X); Push(t, udat, Msg->Event.EventDisplay.Y); } PushV(t, Msg->Event.EventDisplay.Len, Msg->Event.EventDisplay.Data); } break; case msg_widget_key: if (Easy && sizeof(event_keyboard) == sizeof(window) + 3 * sizeof(dat) + 2 * sizeof(byte)) break; else Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 3 * sizeof(udat) + 2 * sizeof(byte) + Msg->Event.EventKeyboard.SeqLen, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twidget, Obj2Id(Msg->Event.EventKeyboard.W)); Push(t, udat, Msg->Event.EventKeyboard.Code); Push(t, udat, Msg->Event.EventKeyboard.ShiftFlags); Push(t, udat, Msg->Event.EventKeyboard.SeqLen); Push(t, byte, Msg->Event.EventKeyboard.pad); PushV(t, Msg->Event.EventKeyboard.SeqLen + 1, /* the final '\0' */ Msg->Event.EventKeyboard.AsciiSeq); } break; case msg_widget_mouse: if (Easy && sizeof(event_mouse) == sizeof(window) + 4 * sizeof(dat)) break; else Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 4 * sizeof(udat), NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twidget, Obj2Id(Msg->Event.EventMouse.W)); Push(t, udat, Msg->Event.EventMouse.Code); Push(t, udat, Msg->Event.EventMouse.ShiftFlags); Push(t, dat, Msg->Event.EventMouse.X); Push(t, dat, Msg->Event.EventMouse.Y); } break; case msg_widget_change: if (Easy && sizeof(event_widget) == sizeof(widget) + 6 * sizeof(dat)) break; else Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 6 * sizeof(dat), NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twidget, Obj2Id(Msg->Event.EventWidget.W)); Push(t, udat, Msg->Event.EventWidget.Code); Push(t, udat, Msg->Event.EventWidget.Flags); Push(t, udat, Msg->Event.EventWidget.XWidth); Push(t, udat, Msg->Event.EventWidget.YWidth); Push(t, udat, Msg->Event.EventWidget.X); Push(t, udat, Msg->Event.EventWidget.Y); } break; case msg_widget_gadget: if (Easy && sizeof(event_gadget) == sizeof(window) + 2 * sizeof(dat)) break; else Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 2 * sizeof(dat), NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twidget, Obj2Id(Msg->Event.EventGadget.W)); Push(t, udat, Msg->Event.EventGadget.Code); Push(t, udat, Msg->Event.EventGadget.Flags); } break; case msg_menu_row: if (Easy && sizeof(event_menu) == sizeof(window) + 2 * sizeof(udat) + sizeof(menu) + sizeof(row)) break; else Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 2 * sizeof(dat) + sizeof(tmenu) + sizeof(row), NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twindow, Obj2Id(Msg->Event.EventMenu.W)); Push(t, udat, Msg->Event.EventMenu.Code); Push(t, udat, Msg->Event.EventMenu.pad); Push(t, tmenu, Obj2Id(Msg->Event.EventMenu.Menu)); Push(t, trow, Obj2Id(Msg->Event.EventMenu.Row)); } break; case msg_selection: if (Easy && sizeof(event_selection) == sizeof(window) + 4 * sizeof(dat)) break; else Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 4 * sizeof(dat), NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twidget, Obj2Id(Msg->Event.EventSelection.W)); Push(t, udat, Msg->Event.EventSelection.Code); Push(t, udat, Msg->Event.EventSelection.pad); Push(t, dat, Msg->Event.EventSelection.X); Push(t, dat, Msg->Event.EventSelection.Y); } break; case msg_selection_notify: if (Easy && sizeof(event_selectionnotify) == sizeof(window) + 2 * sizeof(dat) + 3 * sizeof(ldat) + MAX_MIMELEN + sizeof(uldat)) break; else Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 2 * sizeof(dat) + 3 * sizeof(ldat) + MAX_MIMELEN + Msg->Event.EventSelectionNotify.Len, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twidget, Obj2Id(Msg->Event.EventSelectionNotify.W)); Push(t, udat, Msg->Event.EventSelectionNotify.Code); Push(t, udat, Msg->Event.EventSelectionNotify.pad); Push(t, uldat, Msg->Event.EventSelectionNotify.ReqPrivate); Push(t, uldat, Msg->Event.EventSelectionNotify.Magic); PushV(t, MAX_MIMELEN, Msg->Event.EventSelectionNotify.MIME); Push(t, uldat, Msg->Event.EventSelectionNotify.Len); PushV(t, Msg->Event.EventSelectionNotify.Len, Msg->Event.EventSelectionNotify.Data); } break; case msg_selection_request: if (Easy && sizeof(event_selectionrequest) == sizeof(window) + 2 * sizeof(dat) + sizeof(obj) + sizeof(ldat)) break; else Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 2 * sizeof(dat) + sizeof(tobj) + sizeof(ldat), NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twidget, Obj2Id(Msg->Event.EventSelectionRequest.W)); Push(t, udat, Msg->Event.EventSelectionRequest.Code); Push(t, udat, Msg->Event.EventSelectionRequest.pad); Push(t, tobj, Obj2Id(Msg->Event.EventSelectionRequest.Requestor)); Push(t, uldat, Msg->Event.EventSelectionRequest.ReqPrivate); } break; case msg_user_control: if (Easy && sizeof(event_control) == sizeof(window) + 4 * sizeof(dat) + sizeof(uldat)) break; else Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 4 * sizeof(dat) + Msg->Event.EventControl.Len, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twidget, Obj2Id(Msg->Event.EventControl.W)); Push(t, udat, Msg->Event.EventControl.Code); Push(t, udat, Msg->Event.EventControl.Len); Push(t, dat, Msg->Event.EventControl.X); Push(t, dat, Msg->Event.EventControl.Y); PushV(t, Msg->Event.EventControl.Len, Msg->Event.EventControl.Data); } break; case msg_user_clientmsg: if (Easy && sizeof(event_clientmsg) == sizeof(window) + 2 * sizeof(dat) + 2 * sizeof(uldat)) break; else Easy = tfalse; sockReply(Msg->Type, Len = sizeof(twindow) + 2 * sizeof(dat) + Msg->Event.EventClientMsg.Len, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; Push(t, twidget, Obj2Id(Msg->Event.EventClientMsg.W)); Push(t, udat, Msg->Event.EventClientMsg.Code); Push(t, udat, Msg->Event.EventClientMsg.Format); Push(t, uldat, Msg->Event.EventClientMsg.Len); PushV(t, Msg->Event.EventClientMsg.Len, Msg->Event.EventClientMsg.Data.b); } break; default: Easy = tfalse; } #if TW_SIZEOF_TOPAQUE == TW_SIZEOF_ULDAT if (Easy) { Msg->Event.EventCommon.W = (void *)Obj2Id(Msg->Event.EventCommon.W); if (Msg->Type == msg_menu_row) { Msg->Event.EventMenu.Menu = (void *)Obj2Id(Msg->Event.EventMenu.Menu); Msg->Event.EventMenu.Row = (void *)Obj2Id(Msg->Event.EventMenu.Row); } else if (Msg->Type == msg_selection_request) Msg->Event.EventSelectionRequest.Requestor = (void *)Obj2Id(Msg->Event.EventSelectionRequest.Requestor); sockReply(Msg->Type, Msg->Len, &Msg->Event); } #endif Slot = save_Slot; Fd = save_Fd; } #define tmsgEventDelta ((udat)(size_t) & (((tmsg)0)->Event)) #define tmsgEventOffset(x) ((udat)(size_t) & (((tmsg)0)->Event.x)) /* extract the (tmsg) from Data, turn it into a (msg) and send it to MsgPort */ static byte sockSendToMsgPort(msgport MsgPort, udat Len, const byte *Data) { tmsg tMsg; msgport Sender; msg Msg; uldat dstSlot; udat _Len, minType; byte ok = ttrue; /* FIXME: must code alienSendToMsgPort() and call it if AlienMagic(Slot) != MagicNative */ /* be careful with alignment! */ tMsg = (tmsg)CloneMem(Data, Len); do if (MsgPort && Len && tMsg && Len >= tmsgEventDelta && Len == tMsg->Len && tMsg->Magic == msg_magic) { Sender = RemoteGetMsgPort(Slot); if (Sender && Sender->AttachHW && MsgPort->Handler != SocketH) minType = TW_MSG_DISPLAY; else minType = TW_MSG_USER_FIRST; if (tMsg->Type < minType) /* not allowed! */ break; _Len = 0; switch (tMsg->Type) { case TW_MSG_WIDGET_KEY: if (Len >= tmsgEventOffset(EventKeyboard.AsciiSeq)) { if (tMsg->Event.EventKeyboard.SeqLen + tmsgEventOffset(EventKeyboard.AsciiSeq) > Len) tMsg->Event.EventKeyboard.SeqLen = Len - tmsgEventOffset(EventKeyboard.AsciiSeq); _Len += tMsg->Event.EventKeyboard.SeqLen; } else /* (tmsg) too short */ ok = tfalse; break; case TW_MSG_USER_CONTROL: if (Len >= tmsgEventOffset(EventControl.Data)) { if (tMsg->Event.EventControl.Len + tmsgEventOffset(EventControl.Data) > Len) tMsg->Event.EventControl.Len = Len - tmsgEventOffset(EventControl.Data); _Len += tMsg->Event.EventControl.Len; } else /* (tmsg) too short */ ok = tfalse; break; case TW_MSG_USER_CLIENTMSG: if (Len >= tmsgEventOffset(EventClientMsg.Data)) { if (tMsg->Event.EventClientMsg.Len + tmsgEventOffset(EventClientMsg.Data) > Len) tMsg->Event.EventClientMsg.Len = Len - tmsgEventOffset(EventClientMsg.Data); _Len += tMsg->Event.EventClientMsg.Len; } else /* (tmsg) too short */ ok = tfalse; break; default: break; } if (!ok) break; if (MsgPort->Handler == SocketH && MsgPort->RemoteData.Fd != NOFD && (dstSlot = MsgPort->RemoteData.FdSlot) != NOSLOT && !memcmp(FdList[dstSlot].AlienMagic, LS.AlienMagic, TWS_highest - 1)) { /* * shortcut: we have a (tmsg); instead of turning it into a (msg) * then have SocketH() call sockSendMsg() to turn it back into a (tmsg), * we directly copy it --- only one condition must be met: * both clients must have the same AlienMagic() * (i.e. endianity and data sizes). */ tMsg->Len -= AlienSizeof(uldat, Slot); tMsg->Magic = MSG_MAGIC; RemoteWriteQueue(dstSlot, Len, (const byte *)tMsg); break; } if ((Msg = New(msg)(tMsg->Type, _Len))) { Msg->Event.EventCommon.W = (widget)Id2Obj(widget_magic_id, tMsg->Event.EventCommon.W); switch (tMsg->Type) { case TW_MSG_DISPLAY: if (sizeof(struct s_event_display) == sizeof(window) + 4 * sizeof(dat) + sizeof(byte *) && sizeof(struct s_tevent_display) == sizeof(twindow) + 4 * sizeof(dat) + sizeof(uldat)) { CopyMem((void *)&tMsg->Event.EventDisplay.Code, (void *)&Msg->Event.EventDisplay.Code, 4 * sizeof(dat)); } else { Msg->Event.EventDisplay.Code = tMsg->Event.EventDisplay.Code; Msg->Event.EventDisplay.Len = tMsg->Event.EventDisplay.Len; Msg->Event.EventDisplay.X = tMsg->Event.EventDisplay.X; Msg->Event.EventDisplay.Y = tMsg->Event.EventDisplay.Y; } if (!(Msg->Event.EventDisplay.Data = CloneMem(tMsg->Event.EventDisplay.Data, tMsg->Event.EventDisplay.Len)) && tMsg->Event.EventDisplay.Len) ok = tfalse; break; case TW_MSG_WIDGET_KEY: if (sizeof(struct s_event_keyboard) == sizeof(window) + 3 * sizeof(dat) + 2 * sizeof(byte) && sizeof(struct s_tevent_keyboard) == sizeof(twindow) + 3 * sizeof(dat) + 2 * sizeof(byte)) { CopyMem((void *)&tMsg->Event.EventKeyboard.Code, (void *)&Msg->Event.EventKeyboard.Code, 3 * sizeof(dat) + sizeof(byte)); } else { Msg->Event.EventKeyboard.Code = tMsg->Event.EventKeyboard.Code; Msg->Event.EventKeyboard.ShiftFlags = tMsg->Event.EventKeyboard.ShiftFlags; Msg->Event.EventKeyboard.SeqLen = tMsg->Event.EventKeyboard.SeqLen; Msg->Event.EventKeyboard.pad = tMsg->Event.EventKeyboard.pad; } CopyMem(tMsg->Event.EventKeyboard.AsciiSeq, Msg->Event.EventKeyboard.AsciiSeq, tMsg->Event.EventKeyboard.SeqLen); Msg->Event.EventKeyboard.AsciiSeq[tMsg->Event.EventKeyboard.SeqLen] = '\0'; break; case TW_MSG_WIDGET_MOUSE: if (sizeof(struct s_event_mouse) == sizeof(window) + 4 * sizeof(dat) && sizeof(struct s_tevent_mouse) == sizeof(twindow) + 4 * sizeof(dat)) { CopyMem((void *)&tMsg->Event.EventMouse.Code, (void *)&Msg->Event.EventMouse.Code, 4 * sizeof(dat)); } else { Msg->Event.EventMouse.Code = tMsg->Event.EventMouse.Code; Msg->Event.EventMouse.ShiftFlags = tMsg->Event.EventMouse.ShiftFlags; Msg->Event.EventMouse.X = tMsg->Event.EventMouse.X; Msg->Event.EventMouse.Y = tMsg->Event.EventMouse.Y; } break; case TW_MSG_SELECTIONCLEAR: if (sizeof(struct s_event_common) == sizeof(window) + 2 * sizeof(dat) && sizeof(struct s_tevent_common) == sizeof(twindow) + 2 * sizeof(dat)) { CopyMem((void *)&tMsg->Event.EventCommon.Code, (void *)&Msg->Event.EventCommon.Code, 2 * sizeof(dat)); } else { Msg->Event.EventCommon.Code = tMsg->Event.EventCommon.Code; Msg->Event.EventCommon.pad = tMsg->Event.EventCommon.pad; } break; /* TODO: is this needed? */ #if 0 case TW_MSG_WIDGET_CHANGE: Push(t, udat, Msg->Event.EventWidget.Code); Push(t, udat, Msg->Event.EventWidget.XWidth); Push(t, udat, Msg->Event.EventWidget.YWidth); break; case TW_MSG_WIDGET_GADGET: Push(t, udat, Msg->Event.EventGadget.Code); Push(t, udat, Msg->Event.EventGadget.pad); break; case TW_MSG_MENU_ROW: Push(t, udat, Msg->Event.EventMenu.Code); Push(t, udat, Msg->Event.EventMenu.pad); Push(t, tmenu, Obj2Id(Msg->Event.EventMenu.Menu)); Push(t, trow, Obj2Id(Msg->Event.EventMenu.Row)); break; #endif case TW_MSG_USER_CONTROL: if (sizeof(struct s_event_control) == sizeof(window) + 4 * sizeof(dat) + sizeof(uldat) && sizeof(struct s_tevent_control) == sizeof(twindow) + 4 * sizeof(dat) + sizeof(uldat)) { CopyMem((void *)&tMsg->Event.EventControl.Code, (void *)&Msg->Event.EventControl.Code, 4 * sizeof(dat)); } else { Msg->Event.EventControl.Code = tMsg->Event.EventControl.Code; Msg->Event.EventControl.Len = tMsg->Event.EventControl.Len; Msg->Event.EventControl.X = tMsg->Event.EventControl.X; Msg->Event.EventControl.Y = tMsg->Event.EventControl.Y; } CopyMem(tMsg->Event.EventControl.Data, Msg->Event.EventControl.Data, tMsg->Event.EventControl.Len); Msg->Event.EventControl.Data[Msg->Event.EventControl.Len] = '\0'; break; case TW_MSG_USER_CLIENTMSG: if (sizeof(struct s_event_clientmsg) == sizeof(window) + 2 * sizeof(dat) + 2 * sizeof(uldat) && sizeof(struct s_tevent_clientmsg) == sizeof(twindow) + 2 * sizeof(dat) + 2 * sizeof(uldat)) { CopyMem((void *)&tMsg->Event.EventClientMsg.Code, (void *)&Msg->Event.EventClientMsg.Code, 2 * sizeof(dat) + sizeof(uldat)); } else { Msg->Event.EventClientMsg.Code = tMsg->Event.EventClientMsg.Code; Msg->Event.EventClientMsg.Format = tMsg->Event.EventClientMsg.Format; Msg->Event.EventClientMsg.Len = tMsg->Event.EventClientMsg.Len; } #ifdef CONF_SOCKET_ALIEN /* FIXME: this must be replaced with a call to alienSendToMsgPort() above */ if (AlienXendian(Slot) == MagicAlienXendian) { tevent_clientmsg tC = &tMsg->Event.EventClientMsg; event_clientmsg *C = &Msg->Event.EventClientMsg; alienReadVec(tC->Data.b, C->Data.b, tC->Len, tC->Format, tC->Format, ttrue); } else #endif CopyMem(tMsg->Event.EventClientMsg.Data.b, Msg->Event.EventClientMsg.Data.b, tMsg->Event.EventClientMsg.Len); break; default: ok = tfalse; break; } if (ok) SendMsg(MsgPort, Msg); else Msg->Delete(); } } while (0); FreeMem(tMsg); return ok; } #undef tmsgEventDelta #undef tmsgEventOffset static void sockBlindSendToMsgPort(msgport MsgPort, udat Len, const byte *Data) { (void)sockSendToMsgPort(MsgPort, Len, Data); } static obj sockGetOwnerSelection(void) { return TwinSelectionGetOwner(); } static void sockSetOwnerSelection(tany Time, tany Frac) { if (LS.MsgPort) TwinSelectionSetOwner((obj)LS.MsgPort, Time, Frac); } static void sockNotifySelection(obj Requestor, uldat ReqPrivate, uldat Magic, const char MIME[MAX_MIMELEN], uldat Len, const char *Data) { TwinSelectionNotify(Requestor, ReqPrivate, Magic, MIME, Chars(Data, Len)); } static void sockRequestSelection(obj Owner, uldat ReqPrivate) { if (LS.MsgPort) TwinSelectionRequest((obj)LS.MsgPort, ReqPrivate, Owner); } #ifdef CONF_SOCKET_GZ static byte sockCanCompress(void) { return ttrue; } static voidpf sockZAlloc(voidpf opaque, uInt items, uInt size) { void *ret = AllocMem(items * (size_t)size); return ret ? (voidpf)ret : Z_NULL; } static void sockZFree(voidpf opaque, voidpf address) { if (address != Z_NULL) FreeMem((void *)address); } /* fixup the uncompressed slot for on-the-fly compression */ static void FixupGzip(uldat slot) { ls_p.Fd = ls.Fd; ls.Fd = specFD; ls.PrivateFlush = RemoteGzipFlush; ls.PrivateAfterFlush = NULL; } /* finish shutting down compression (called on the uncompressed slot) */ static void ShutdownGzip(uldat slot) { inflateEnd((z_streamp)ls.PrivateData); deflateEnd((z_streamp)ls_p.PrivateData); FreeMem(ls.PrivateData); FreeMem(ls_p.PrivateData); ls.Fd = ls_p.Fd; ls_p.Fd = specFD; UnRegisterRemote(ls.pairSlot); ls.pairSlot = NOSLOT; ls.PrivateFlush = NULL; ls.PrivateAfterFlush = NULL; } /* * this is not perfectly clean, but works well: * we enable (disable) compression and give an uncompressed (compressed) answer, * but we also send in the same way any answer pending or collected before the RemoteFlush(). * * So the library must wait for the answer immediately after calling TwDoCompress(); * this is what it normally does anyway since it has to wait for the return value... * no problem. */ static byte sockDoCompress(byte on_off) { uldat slot = NOSLOT; z_streamp z1 = NULL, z2 = NULL; if (on_off) { if ((slot = RegisterRemoteFd(specFD, LS.HandlerIO.S)) != NOSLOT && (z1 = (z_streamp)AllocMem(sizeof(*z1))) && (z2 = (z_streamp)AllocMem(sizeof(*z2)))) { z1->zalloc = z2->zalloc = sockZAlloc; z1->zfree = z2->zfree = sockZFree; z1->opaque = z2->opaque = NULL; if (deflateInit(z1, Z_BEST_COMPRESSION) == Z_OK) { if (inflateInit(z2) == Z_OK) { /* ok, start pairing the two slots */ ls.pairSlot = Slot; ls.PrivateData = (void *)z1; LS.pairSlot = slot; LS.PrivateData = (void *)z2; LS.PrivateAfterFlush = FixupGzip; /* we have ls.Fd == specFD. it will be fixed by LS.PrivateAfterFlush() */ return ttrue; } deflateEnd(z1); } } if (z2) FreeMem(z2); if (z1) FreeMem(z1); if (slot != NOSLOT) UnRegisterRemote(slot); return tfalse; } else { /* inform RemoteFlush() we are shutting down the compression... */ LS.PrivateAfterFlush = ShutdownGzip; return ttrue; } } #else static byte sockCanCompress(void) { return tfalse; } static byte sockDoCompress(byte on_off) { return tfalse; } #endif /* CONF_SOCKET_GZ */ /* socket initialization functions */ static uldat SendTwinProtocol(void) { static char buf[] = " Twin-" TW_PROTOCOL_VERSION_STR "-" TWIN_VERSION_STR "\n"; buf[0] = strlen(buf); return RemoteWriteQueue(Slot, buf[0], (const byte *)buf); } static byte SendTwinMagic(byte len, const byte *magic) { return RemoteWriteQueue(Slot, len, magic) == len; } static byte sockReply(uldat code, uldat len, const void *data) { uldat buf[3]; buf[0] = 2 * sizeof(uldat) + len; buf[1] = RequestN; buf[2] = code; if (RemoteWriteQueue(Slot, 3 * sizeof(uldat), buf) == 3 * sizeof(uldat) && len) return RemoteWriteQueue(Slot, len, data) == len; return tfalse; } static byte SendUldat(uldat data) { #ifdef CONF_SOCKET_ALIEN if (AlienXendian(Slot) == MagicNative) return RemoteWriteQueue(Slot, sizeof(uldat), &data) == sizeof(uldat); { uldat len; byte *t, AlienSizeofUldat = AlienSizeof(uldat, Slot); if (RemoteWriteQueue(Slot, AlienSizeofUldat, NULL) == AlienSizeofUldat) { t = RemoteWriteGetQueue(Slot, &len); t += len - AlienSizeofUldat; alienPUSH(t, uldat, data); return ttrue; } return tfalse; } #else /* !CONF_SOCKET_ALIEN */ return RemoteWriteQueue(Slot, sizeof(uldat), &data) == sizeof(uldat); #endif /* CONF_SOCKET_ALIEN */ } #define digestLen 16 /* hardcoded in MD5 routines */ #define AuthLen 256 /* length of ~/.TwinAuth */ #define ChallLen 256 /* length of random data */ #define TotalLen (AuthLen + ChallLen) static char AuthData[TotalLen]; static uldat GetRandomData(void) { int ufd, got = -1; unsigned long res; uldat len = 0; if ((ufd = open("/dev/urandom", O_RDONLY)) >= 0) { for (; len < AuthLen; len += got) { got = read(ufd, AuthData + len, (size_t)(AuthLen - len)); if (got < 0) { if (errno == EINTR || errno == EWOULDBLOCK) got = 0; else break; } } close(ufd); } if (len < AuthLen) { /* /dev/urandom unavailable ? use mrand48... */ srand48(time(NULL) + getpid()); got = 0; while (len < AuthLen) { if (!got) { got = 4; res = (unsigned long)mrand48(); } AuthData[len++] = res & TW_MAXBYTE; res >>= 8; got--; } } return len; } static byte CreateAuth(char *path) { int fd, got = -1; uldat len = 0; if ((fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, 0600)) >= 0 && chmod(path, 0600) == 0) { len = GetRandomData(); if (len == AuthLen) for (len = 0; len < AuthLen; len += got) { got = write(fd, AuthData + len, AuthLen - len); if (got < 0) { if (errno == EINTR || errno == EWOULDBLOCK) got = 0; else break; } } close(fd); } return len == AuthLen ? ttrue : Error(SYSERROR); } static byte sockInitAuth(void) { int fd, got; uldat len; if (!HOME) return tfalse; len = strlen(HOME); len = Min2(len, TotalLen - 11); CopyMem(HOME, AuthData, len); CopyMem("/.TwinAuth", AuthData + len, 11); if ((fd = open(AuthData, O_RDONLY)) < 0) return CreateAuth(AuthData); for (len = 0; len < AuthLen; len += got) { got = read(fd, AuthData + len, AuthLen - len); if (got < 0) { if (errno == EINTR || errno == EWOULDBLOCK) got = 0; else { close(fd); return Error(SYSERROR); } } } close(fd); if (len < AuthLen) return CreateAuth(AuthData); return ttrue; } static byte SendChallenge(void) { struct MD5Context ctx; int fd, got; uldat len, queue; byte *t; if ((fd = open("/dev/urandom", O_RDONLY)) < 0) return tfalse; len = AuthLen; for (got = 1; len < TotalLen && got; len += got) { do { got = read(fd, AuthData + len, TotalLen - len); } while (got < 0 && errno == EINTR); if (got <= 0) break; } close(fd); if (got > 0 && len == TotalLen && (len -= AuthLen) && RemoteReadGrowQueue(Slot, digestLen) && /* make space for digest, and also check there's no pending data */ (t = RemoteReadGetQueue(Slot, &queue)) && queue == digestLen && SendUldat(len) && RemoteWriteQueue(Slot, len, AuthData + AuthLen)) { MD5Init(&ctx); MD5Update(&ctx, AuthData, TotalLen); MD5Final(t, &ctx); /* write digest into t */ return ttrue; } return tfalse; } /* * try to read (len) bytes from socket. * return # of bytes received or -1 for errors */ static int TryRead(int fd, uldat slot, uldat len) { byte *t; int got; if ((t = RemoteReadGrowQueue(slot, len))) { got = read(fd, t, len); RemoteReadShrinkQueue(slot, len - Max2(got, 0)); return got; } return -1; } /* * try to ensure (len) bytes are in FdList[slot].RQueue. * return # of bytes available or -1 for errors */ static int EnsureRead(int fd, uldat slot, uldat len) { uldat max; int got; (void)RemoteReadGetQueue(slot, &max); if (max < len) { got = TryRead(fd, slot, len - max); if (got == 0 || (got < 0 && errno != EINTR && errno != EWOULDBLOCK)) return -1; if (got > 0) max += got; } return max; } static handler_io_s GetHandlerIO(void) { #ifdef CONF_SOCKET_ALIEN if (AlienXendian(Slot) != MagicNative) { return AlienIO; } #endif /* CONF_SOCKET_ALIEN */ return SocketIO; } static void Wait4AuthIO(int fd, uldat slot) { byte *t; int got; got = EnsureRead(fd, Slot = slot, digestLen * 2); if (got < 0) ; else if (got < digestLen * 2) /* not yet ready to check */ return; else { /* (got >= digestLen*2) */ t = RemoteReadGetQueue(Slot, NULL); if (!memcmp(t, t + digestLen, digestLen)) { /* OK! */ if ((LS.HandlerIO.S = GetHandlerIO())) { RemoteReadDeQueue(Slot, digestLen * 2); SendUldat(TW_GO_MAGIC); return; } } } /* I/O error or Auth error */ SendUldat(TW_STOP_MAGIC); RemoteFlush(Slot); UnRegisterRemote(Slot); close(fd); } static byte Check4MagicTranslation(uldat slot, const byte *magic, byte len) { #ifdef CONF_SOCKET_ALIEN static byte warn_count = 0; #endif const byte *zero = (const byte *)memchr(magic, '\0', len); byte len1 = zero ? (byte)(zero - magic) : 0; if (len1 > TWS_tcolor && len == magic[0] && len == len1 + 1 + sizeof(uldat) && /*check negotiated size to match ours*/ !memcmp(magic + 1, TwinMagicData + 1, Min2(len1, TWS_highest) - 1) && /*pre-0.3.9 compatibility: if tcell is not negotiated, assume 2 bytes*/ (len1 > TWS_tcell || sizeof(tcell) == 2) && /*check endianity*/ !memcmp(magic + len1 + 1, TwinMagicData + TWS_highest + 1, sizeof(uldat))) { /* store client magic numbers */ CopyMem(magic, AlienMagic(slot), Min2(len1, TWS_highest)); if (len1 < TWS_highest) /* version mismatch compatibility: zero out unnegotiated sizes */ memset(AlienMagic(slot) + len1, '\0', TWS_highest - len1); return MagicNative; } #ifdef CONF_SOCKET_ALIEN if (len1 > TWS_tcell && len == magic[0] && magic[TWS_byte] == 1 && /* sizeof(byte) MUST be 1, or passing byte[] vectors would fail */ magic[TWS_udat] >= 2 && magic[TWS_uldat] >= 4 && len - len1 == magic[TWS_uldat] + 1 && magic[TWS_tcolor] == 1 && /* sizeof(tcolor) MUST be 1, or passing tcolor[] vectors would fail */ magic[TWS_topaque] >= 4 && magic[TWS_tany] >= 4 && magic[TWS_trune] >= 1 && magic[TWS_tcell] >= 2) { /* store client magic numbers */ CopyMem(magic, AlienMagic(slot), Min2(len1, TWS_highest)); if (len1 < TWS_highest) /* version mismatch compatibility: zero out unnegotiated sizes */ memset(AlienMagic(slot) + len1, '\0', TWS_highest - len1); if (warn_count < 6) { zero = NULL; if (AlienMagic(slot)[TWS_tcell] < sizeof(tcell)) zero = (const byte *)"tcell"; else if (AlienMagic(slot)[TWS_trune] < sizeof(trune)) zero = (const byte *)"trune"; if (zero) { if (warn_count == 5) printk( "twin: warning: many clients with different sizes, suppressing further messages.\n"); else printk("twin: warning: client has different `" SS "' size, it may not be Unicode aware.\n", zero); warn_count++; } } /* * now check endianity. * * non-trivial trick: TWIN_MAGIC significant bits are 0-31, * so on little endian machines (magic+len1+1) is always "Twin"... * no matter what value has magic[TWS_uldat]. * On big endian machines, (magic+len1+1) is ..."niwT", with * (magic[TWS_uldat] - 4) zeroed bytes at start. */ if (!memcmp(magic + len1 + 1, "Twin", 4)) /* little endian client. and us? */ return TW_IS_LITTLE_ENDIAN ? MagicAlien : MagicAlienXendian; if (!memcmp(magic + len1 + 1 + (magic[TWS_uldat] - 4), "niwT", 4)) /* big endian client. and us? */ return TW_IS_BIG_ENDIAN ? MagicAlien : MagicAlienXendian; } #endif /* CONF_SOCKET_ALIEN */ return MagicUnknown; } static void Wait4Magic(int fd, uldat slot, byte isUnix) { byte *t; uldat max; int got; t = RemoteReadGetQueue(Slot = slot, &max); if (max == 0) max = TW_MAXBYTE; else max = t[0]; got = EnsureRead(fd, Slot, max); t = RemoteReadGetQueue(Slot, NULL); if (got > 0) max = t[0]; if (got < 0) { ; } else if ((uldat)got < max) { /* not yet ready to check */ return; } else { /* (got >= max) */ /* * check whether the client has our same sizes and endianity * or one of the available translations is needed. */ if ((AlienXendian(Slot) = Check4MagicTranslation(Slot, t, max)) == MagicUnknown) { /* * no suitable translation available. use our native magic, * in case library can handle it. */ CopyMem(TwinMagicData, AlienMagic(Slot), TWS_highest); AlienXendian(Slot) = MagicNative; got = SendTwinMagic(TwinMagicData[0], TwinMagicData); } else { /* * we have a translation for client's magic. * answer its same magic. */ got = SendTwinMagic((byte)max, t); } RemoteReadDeQueue(Slot, max); if (got) { if (isUnix) { if ((LS.HandlerIO.S = GetHandlerIO()) && SendUldat(TW_GO_MAGIC)) return; } else { LS.HandlerIO.S = Wait4AuthIO; if (SendUldat(TW_WAIT_MAGIC) && SendChallenge()) return; } } } /* problem... out of memory or I/O error. */ UnRegisterRemote(Slot); close(fd); } static void Wait4MagicUnixIO(int fd, uldat slot) { Wait4Magic(fd, slot, ttrue); } static void Wait4MagicInetIO(int fd, uldat slot) { Wait4Magic(fd, slot, tfalse); } static void unixSocketIO(int fd, uldat slot) { struct sockaddr_un un_addr; socklen_t len = sizeof(un_addr); if ((fd = accept(unixFd, (struct sockaddr *)&un_addr, &len)) >= 0) { /* programs on the unix socket are always authorized */ if ((Slot = RegisterRemoteFd(fd, Wait4MagicUnixIO)) != NOSLOT) { fcntl(fd, F_SETFL, O_NONBLOCK); fcntl(fd, F_SETFD, FD_CLOEXEC); if (SendTwinProtocol()) return; UnRegisterRemote(Slot); } close(fd); } } static void inetSocketIO(int fd, uldat slot) { struct sockaddr_in in_addr; socklen_t len = sizeof(in_addr); if ((fd = accept(inetFd, (struct sockaddr *)&in_addr, &len)) >= 0) { if ((Slot = RegisterRemoteFd(fd, Wait4MagicInetIO)) != NOSLOT) { fcntl(fd, F_SETFL, O_NONBLOCK); fcntl(fd, F_SETFD, FD_CLOEXEC); if (SendTwinProtocol()) return; UnRegisterRemote(Slot); } close(fd); } } static void sockKillSlot(uldat slot) { msgport MsgPort; display_hw D_HW; if (slot != NOSLOT) { #ifdef CONF_SOCKET_GZ if (ls.pairSlot != NOSLOT) { if (ls.Fd != specFD) /* compressed socket, use the other one */ slot = ls.pairSlot; /* uncompressed socket: shutdown compression then close */ ShutdownGzip(slot); UnRegisterRemote(ls.pairSlot); } #endif if ((MsgPort = RemoteGetMsgPort(slot))) { /* * no infinite recursion between KillSlot and DeleteMsgPort... * DeleteMsgPort doesn't kill the slot, only unregisters from it */ if ((D_HW = MsgPort->AttachHW)) { /* avoid KillSlot <-> DeleteDisplayHW infinite recursion */ D_HW->AttachSlot = NOSLOT; D_HW->Delete(); } MsgPort->Delete(); /* and all its children ! */ } if (ls.Fd >= 0) close(ls.Fd); UnRegisterRemote(slot); } } static void SocketIO(int fd, uldat slot) { uldat len, Funct; byte *t; const byte *tend; int tot = 0; #ifdef CONF_SOCKET_GZ uldat gzSlot; #endif Fd = fd; Slot = slot; if (ioctl(Fd, FIONREAD, &tot) != 0 || tot <= 0) tot = TW_SMALLBUFF; else if (tot > TW_BIGBUFF * TW_BIGBUFF) tot = TW_BIGBUFF * TW_BIGBUFF; if (!(t = RemoteReadGrowQueue(Slot, tot))) return; if ((len = read(Fd, t, tot)) && len && len != (uldat)-1) { if (len < (uldat)tot) RemoteReadShrinkQueue(Slot, (uldat)tot - len); /* ok, now process the data */ #ifdef CONF_SOCKET_GZ if ((gzSlot = LS.pairSlot) != NOSLOT) { /* hmmm, a compressed socket. */ if (RemoteGunzip(Slot)) Slot = gzSlot; else { Ext(Remote, KillSlot)(Slot); return; } } #endif s = t = RemoteReadGetQueue(Slot, &len); tend = s + len; while (s + 3 * sizeof(uldat) <= tend) { Pop(s, uldat, len); if (len < 2 * sizeof(uldat)) { s += len; continue; } if (s + len > s && s + len <= tend) { end = s + len; Pop(s, uldat, RequestN); Pop(s, uldat, Funct); if (Funct < MaxFunct) { slot = Slot; sockMultiplexB(Funct); /* Slot is the uncompressed socket here ! */ Slot = slot; /* * restore, in case sockF[Funct].F() changed it; * without this, tw* clients can freeze * if twdisplay is in use */ } else if (Funct == FIND_MAGIC) sockMultiplexB(0); s = end; } else if (s + len < s) { s = tend; break; } else { /* if (s + len > tend) */ /* must wait for rest of packet... unpop len */ s -= sizeof(uldat); break; } } RemoteReadDeQueue(Slot, (uldat)(s - t)); #ifdef CONF_SOCKET_GZ if (gzSlot != NOSLOT) /* compressed socket, restore Slot */ Slot = gzSlot; #endif } else if (!len || (len == (uldat)-1 && errno != EINTR && errno != EWOULDBLOCK)) { /* let's close this sucker */ Ext(Remote, KillSlot)(Slot); } } static void SocketH(msgport MsgPort) { msg Msg; widget W; char buf[10]; byte len; while ((Msg = MsgPort->FirstMsg)) { Msg->Remove(); if (Msg->Type == msg_widget_mouse && (W = Msg->Event.EventMouse.W) && IS_WINDOW(W) && (W->Flags & WINDOWFL_USECONTENTS) && ((window)W)->USE.C.TtyData && ((window)W)->USE.C.TtyData->Flags & (TTY_REPORTMOUSE | TTY_REPORTMOUSE2)) { len = CreateXTermMouseEvent(&Msg->Event.EventMouse, 10, buf); /* * SyntheticKey() will send an appropriate keyboard message to this MsgPort * and we will sockSendMsg() it later in the while() loop. */ if (len) SyntheticKey(Msg->Event.EventMouse.W, TW_XTermMouse, 0, len, buf); } else sockSendMsg(MsgPort, Msg); Msg->Delete(); } } static void (*save_unixSocketIO)(int fd, uldat slot); EXTERN_C byte InitModule(module Module) { uldat m; struct sockaddr_in addr; char opt[TW_SIZEOF_SIZE_T] = { 0, }; if (!sockInitAuth()) { printk("twin: failed to create ~/.TwinAuth: " SS "\n", Errstr); return tfalse; } memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port = htons(TW_INET_PORT + strtoul(TWDisplay + 1, NULL, 16)); if ((inetFd = socket(AF_INET, SOCK_STREAM, 0)) >= 0 && setsockopt(inetFd, SOL_SOCKET, SO_REUSEADDR, (void *)opt, sizeof(opt)) >= 0 && bind(inetFd, (struct sockaddr *)&addr, sizeof(addr)) >= 0 && listen(inetFd, 1) >= 0 && fcntl(inetFd, F_SETFD, FD_CLOEXEC) >= 0) { if ((inetSlot = RegisterRemoteFd(inetFd, inetSocketIO)) != NOSLOT) ; else close(inetFd); } else { Error(SYSERROR); if (inetFd >= 0) close(inetFd); } if (unixSlot != NOSLOT || inetSlot != NOSLOT) { for (MaxFunct = 0; sockF[MaxFunct].Name; MaxFunct++) { sockF[MaxFunct].Len = strlen(sockF[MaxFunct].Name); sockF[MaxFunct].FormatLen = strlen(sockF[MaxFunct].Format); } RegisterExt(Remote, KillSlot, sockKillSlot); RegisterExt(Socket, SendMsg, sockSendMsg); RegisterExt(Socket, InitAuth, sockInitAuth); RegisterExt(Socket, MultiplexS, sockMultiplexS); m = TWIN_MAGIC; CopyMem(&m, TwinMagicData + TwinMagicData[0] - sizeof(uldat), sizeof(uldat)); if (unixSlot != NOSLOT) { save_unixSocketIO = FdList[unixSlot].HandlerIO.S; FdList[unixSlot].HandlerIO.S = unixSocketIO; } return ttrue; } printk("twin: failed to create sockets: " SS "\n", Errstr); return tfalse; } EXTERN_C void QuitModule(module Module) { if (unixSlot != NOSLOT) FdList[unixSlot].HandlerIO.S = save_unixSocketIO; if (inetSlot != NOSLOT) { UnRegisterRemote(inetSlot); close(inetFd); } for (Slot = 0; Slot < FdTop; Slot++) { if (LS.Fd != NOFD && (LS.HandlerIO.S == Wait4MagicUnixIO || LS.HandlerIO.S == Wait4MagicInetIO || LS.HandlerIO.S == Wait4AuthIO || #ifdef CONF_SOCKET_ALIEN LS.HandlerIO.S == AlienIO || #endif LS.HandlerIO.S == SocketIO)) { Ext(Remote, KillSlot)(Slot); } } UnRegisterExt(Remote, KillSlot, sockKillSlot); UnRegisterExt(Socket, SendMsg, sockSendMsg); UnRegisterExt(Socket, InitAuth, sockInitAuth); UnRegisterExt(Socket, MultiplexS, sockMultiplexS); } �����twin-0.9.0/server/socket.h��������������������������������������������������������������������������0000664�0000000�0000000�00000000654�13775351206�0015466�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_SOCKET_H #define TWIN_SOCKET_H byte InitSocket(void); void QuitSocket(void); #endif /* TWIN_SOCKET_H */ ������������������������������������������������������������������������������������twin-0.9.0/server/socket1_m4.h����������������������������������������������������������������������0000664�0000000�0000000�00000030447�13775351206�0016152�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* This file was automatically generated from m4/socket1.m4, do not edit! */ /* clang-format off */ case order_FindFunction: if (a.size() >= 4) a[0]_any = (tany)sockFindFunction((byte)a[1]_any, (const char *)a[2]_vec, (byte)a[3]_any, (const char *)a[4]_vec); break; case order_SyncSocket: if (a.size() >= 0) a[0]_any = (tany)sockSyncSocket(); break; case order_ServerSizeof: if (a.size() >= 1) a[0]_any = (tany)sockServerSizeof((byte)a[1]_any); break; case order_CanCompress: if (a.size() >= 0) a[0]_any = (tany)sockCanCompress(); break; case order_DoCompress: if (a.size() >= 1) a[0]_any = (tany)sockDoCompress((byte)a[1]_any); break; case order_NeedResizeDisplay: if (a.size() >= 0) sockNeedResizeDisplay(); break; case order_AttachHW: if (a.size() >= 3) sockAttachHW((uldat)a[1]_any, (const char *)a[2]_vec, (byte)a[3]_any); break; case order_DetachHW: if (a.size() >= 2) a[0]_any = (tany)sockDetachHW((uldat)a[1]_any, (const char *)a[2]_vec); break; case order_SetFontTranslation: if (a.size() >= 1) sockSetFontTranslation((const byte *)a[1]_vec); break; case order_SetTRuneTranslation: if (a.size() >= 1) sockSetTRuneTranslation((const trune *)a[1]_vec); break; case order_DeleteObj: if (a.size() >= 1) sockDeleteObj((obj)a[1]_obj); break; case order_ChangeFieldObj: if (a.size() >= 4) Act(ChangeField,(obj)a[1]_obj)((obj)a[1]_obj, (udat)a[2]_any, (uldat)a[3]_any, (uldat)a[4]_any); break; case order_CreateWidget: if (a.size() >= 7) a[0]_obj = (obj)sockCreateWidget((dat)a[1]_any, (dat)a[2]_any, (uldat)a[3]_any, (uldat)a[4]_any, (dat)a[5]_any, (dat)a[6]_any, (tcell)a[7]_any); break; case order_RecursiveDeleteWidget: if (a.size() >= 1) sockRecursiveDeleteWidget((widget)a[1]_obj); break; case order_MapWidget: if (a.size() >= 2) Act(Map,(widget)a[1]_obj)((widget)a[1]_obj, (widget)a[2]_obj); break; case order_UnMapWidget: if (a.size() >= 1) Act(UnMap,(widget)a[1]_obj)((widget)a[1]_obj); break; case order_SetXYWidget: if (a.size() >= 3) sockSetXYWidget((widget)a[1]_obj, (dat)a[2]_any, (dat)a[3]_any); break; case order_ResizeWidget: if (a.size() >= 3) sockResizeWidget((widget)a[1]_obj, (dat)a[2]_any, (dat)a[3]_any); break; case order_ScrollWidget: if (a.size() >= 3) sockScrollWidget((widget)a[1]_obj, (ldat)a[2]_any, (ldat)a[3]_any); break; case order_DrawWidget: if (a.size() >= 8) sockDrawWidget((widget)a[1]_obj, (dat)a[2]_any, (dat)a[3]_any, (dat)a[4]_any, (dat)a[5]_any, (const char *)a[6]_vec, (const trune *)a[7]_vec, (const tcell *)a[8]_vec); break; case order_SetVisibleWidget: if (a.size() >= 2) sockSetVisibleWidget((widget)a[1]_obj, (byte)a[2]_any); break; case order_FocusSubWidget: if (a.size() >= 1) sockFocusSubWidget((widget)a[1]_obj); break; case order_FindWidgetAtWidget: if (a.size() >= 3) a[0]_obj = (obj)Act(FindWidgetAt,(widget)a[1]_obj)((widget)a[1]_obj, (dat)a[2]_any, (dat)a[3]_any); break; case order_RaiseWidget: if (a.size() >= 1) Act(Raise,(widget)a[1]_obj)((widget)a[1]_obj); break; case order_LowerWidget: if (a.size() >= 1) Act(Lower,(widget)a[1]_obj)((widget)a[1]_obj); break; case order_RestackChildrenWidget: if (a.size() >= 3) sockRestackChildrenWidget((widget)a[1]_obj, (uldat)a[2]_any, (const widget *)a[3]_vec); break; case order_CirculateChildrenWidget: if (a.size() >= 2) sockCirculateChildrenWidget((widget)a[1]_obj, (byte)a[2]_any); break; case order_CreateGadget: if (a.size() >= 13) a[0]_obj = (obj)sockCreateGadget((widget)a[1]_obj, (dat)a[2]_any, (dat)a[3]_any, (const char *)a[4]_vec, (uldat)a[5]_any, (uldat)a[6]_any, (udat)a[7]_any, (tcolor)a[8]_any, (tcolor)a[9]_any, (tcolor)a[10]_any, (tcolor)a[11]_any, (dat)a[12]_any, (dat)a[13]_any); break; case order_CreateButtonGadget: if (a.size() >= 11) a[0]_obj = (obj)Do(CreateButton,gadget)((widget)a[1]_obj, (dat)a[2]_any, (dat)a[3]_any, (const char *)a[4]_vec, (uldat)a[5]_any, (udat)a[6]_any, (tcolor)a[7]_any, (tcolor)a[8]_any, (tcolor)a[9]_any, (dat)a[10]_any, (dat)a[11]_any); break; case order_WriteTextsGadget: if (a.size() >= 7) Act(WriteTexts,(gadget)a[1]_obj)((gadget)a[1]_obj, (byte)a[2]_any, (dat)a[3]_any, (dat)a[4]_any, (const char *)a[5]_vec, (dat)a[6]_any, (dat)a[7]_any); break; case order_WriteTRunesGadget: if (a.size() >= 7) Act(WriteTRunes,(gadget)a[1]_obj)((gadget)a[1]_obj, (byte)a[2]_any, (dat)a[3]_any, (dat)a[4]_any, (const trune *)a[5]_vec, (dat)a[6]_any, (dat)a[7]_any); break; case order_CreateWindow: if (a.size() >= 11) a[0]_obj = (obj)sockCreateWindow((dat)a[1]_any, (const char *)a[2]_vec, (const tcolor *)a[3]_vec, (menu)a[4]_obj, (tcolor)a[5]_any, (uldat)a[6]_any, (uldat)a[7]_any, (uldat)a[8]_any, (dat)a[9]_any, (dat)a[10]_any, (dat)a[11]_any); break; case order_Create4MenuWindow: if (a.size() >= 1) a[0]_obj = (obj)Do(Create4Menu,window)((menu)a[1]_obj); break; case order_WriteCharsetWindow: if (a.size() >= 3) sockWriteCharsetWindow((window)a[1]_obj, (uldat)a[2]_any, (const char *)a[3]_vec); break; case order_WriteUtf8Window: if (a.size() >= 3) sockWriteUtf8Window((window)a[1]_obj, (uldat)a[2]_any, (const char *)a[3]_vec); break; case order_WriteTRuneWindow: if (a.size() >= 3) sockWriteTRuneWindow((window)a[1]_obj, (uldat)a[2]_any, (const trune *)a[3]_vec); break; case order_WriteTCellWindow: if (a.size() >= 5) sockWriteTCellWindow((window)a[1]_obj, (dat)a[2]_any, (dat)a[3]_any, (uldat)a[4]_any, (const tcell *)a[5]_vec); break; case order_GotoXYWindow: if (a.size() >= 3) Act(GotoXY,(window)a[1]_obj)((window)a[1]_obj, (ldat)a[2]_any, (ldat)a[3]_any); break; case order_SetTitleWindow: if (a.size() >= 3) sockSetTitleWindow((window)a[1]_obj, (dat)a[2]_any, (const char *)a[3]_vec); break; case order_SetColTextWindow: if (a.size() >= 2) Act(SetColText,(window)a[1]_obj)((window)a[1]_obj, (tcolor)a[2]_any); break; case order_SetColorsWindow: if (a.size() >= 11) Act(SetColors,(window)a[1]_obj)((window)a[1]_obj, (udat)a[2]_any, (tcolor)a[3]_any, (tcolor)a[4]_any, (tcolor)a[5]_any, (tcolor)a[6]_any, (tcolor)a[7]_any, (tcolor)a[8]_any, (tcolor)a[9]_any, (tcolor)a[10]_any, (tcolor)a[11]_any); break; case order_ConfigureWindow: if (a.size() >= 8) Act(Configure,(window)a[1]_obj)((window)a[1]_obj, (byte)a[2]_any, (dat)a[3]_any, (dat)a[4]_any, (dat)a[5]_any, (dat)a[6]_any, (dat)a[7]_any, (dat)a[8]_any); break; case order_FindRowByCodeWindow: if (a.size() >= 2) a[0]_obj = (obj)sockFindRowByCodeWindow((window)a[1]_obj, (dat)a[2]_any); break; case order_CreateGroup: if (a.size() >= 0) a[0]_obj = (obj)sockCreateGroup(); break; case order_InsertGadgetGroup: if (a.size() >= 2) Act(InsertGadget,(ggroup)a[1]_obj)((ggroup)a[1]_obj, (gadget)a[2]_obj); break; case order_RemoveGadgetGroup: if (a.size() >= 2) Act(RemoveGadget,(ggroup)a[1]_obj)((ggroup)a[1]_obj, (gadget)a[2]_obj); break; case order_GetSelectedGadgetGroup: if (a.size() >= 1) a[0]_obj = (obj)Act(GetSelectedGadget,(ggroup)a[1]_obj)((ggroup)a[1]_obj); break; case order_SetSelectedGadgetGroup: if (a.size() >= 2) Act(SetSelectedGadget,(ggroup)a[1]_obj)((ggroup)a[1]_obj, (gadget)a[2]_obj); break; case order_RaiseRow: if (a.size() >= 1) Act(Raise,(row)a[1]_obj)((row)a[1]_obj); break; case order_LowerRow: if (a.size() >= 1) Act(Lower,(row)a[1]_obj)((row)a[1]_obj); break; case order_RestackChildrenRow: if (a.size() >= 3) sockRestackChildrenRow((obj)a[1]_obj, (uldat)a[2]_any, (const row *)a[3]_vec); break; case order_CirculateChildrenRow: if (a.size() >= 2) sockCirculateChildrenRow((obj)a[1]_obj, (byte)a[2]_any); break; case order_Create4MenuAny: if (a.size() >= 6) a[0]_obj = (obj)sockCreate4MenuAny((obj)a[1]_obj, (window)a[2]_obj, (udat)a[3]_any, (byte)a[4]_any, (ldat)a[5]_any, (const char *)a[6]_vec); break; case order_Create4MenuCommonMenuItem: if (a.size() >= 1) a[0]_any = (tany)Do(Create4MenuCommon,menuitem)((menu)a[1]_obj); break; case order_CreateMenu: if (a.size() >= 7) a[0]_obj = (obj)sockCreateMenu((tcolor)a[1]_any, (tcolor)a[2]_any, (tcolor)a[3]_any, (tcolor)a[4]_any, (tcolor)a[5]_any, (tcolor)a[6]_any, (byte)a[7]_any); break; case order_SetInfoMenu: if (a.size() >= 5) Act(SetInfo,(menu)a[1]_obj)((menu)a[1]_obj, (byte)a[2]_any, (ldat)a[3]_any, (const char *)a[4]_vec, (const tcolor *)a[5]_vec); break; case order_CreateMsgPort: if (a.size() >= 2) a[0]_obj = (obj)sockCreateMsgPort((byte)a[1]_any, (const char *)a[2]_vec); break; case order_FindMsgPort: if (a.size() >= 3) a[0]_obj = (obj)sockFindMsgPort((msgport)a[1]_obj, (byte)a[2]_any, (const char *)a[3]_vec); break; case order_BgImageScreen: if (a.size() >= 4) Act(BgImage,(screen)a[1]_obj)((screen)a[1]_obj, (dat)a[2]_any, (dat)a[3]_any, (const tcell *)a[4]_vec); break; case order_PrevObj: if (a.size() >= 1) a[0]_obj = (obj)sockPrevObj((obj)a[1]_obj); break; case order_NextObj: if (a.size() >= 1) a[0]_obj = (obj)sockNextObj((obj)a[1]_obj); break; case order_ParentObj: if (a.size() >= 1) a[0]_obj = (obj)sockParentObj((obj)a[1]_obj); break; case order_FirstScreen: if (a.size() >= 0) a[0]_obj = (obj)sockFirstScreen(); break; case order_FirstWidget: if (a.size() >= 1) a[0]_obj = (obj)sockFirstWidget((widget )a[1]_obj); break; case order_FirstMsgPort: if (a.size() >= 0) a[0]_obj = (obj)sockFirstMsgPort(); break; case order_FirstMenu: if (a.size() >= 1) a[0]_obj = (obj)sockFirstMenu((msgport)a[1]_obj); break; case order_FirstW: if (a.size() >= 1) a[0]_obj = (obj)sockFirstW((msgport)a[1]_obj); break; case order_FirstGroup: if (a.size() >= 1) a[0]_obj = (obj)sockFirstGroup((msgport)a[1]_obj); break; case order_FirstMutex: if (a.size() >= 1) a[0]_obj = (obj)sockFirstMutex((msgport)a[1]_obj); break; case order_FirstMenuItem: if (a.size() >= 1) a[0]_obj = (obj)sockFirstMenuItem((menu )a[1]_obj); break; case order_FirstGadget: if (a.size() >= 1) a[0]_obj = (obj)sockFirstGadget((ggroup )a[1]_obj); break; case order_GetDisplayWidth: if (a.size() >= 0) a[0]_any = (tany)sockGetDisplayWidth(); break; case order_GetDisplayHeight: if (a.size() >= 0) a[0]_any = (tany)sockGetDisplayHeight(); break; case order_GetAll: if (a.size() >= 0) a[0]_obj = (obj)sockGetAll(); break; case order_SendToMsgPort: if (a.size() >= 3) a[0]_any = (tany)sockSendToMsgPort((msgport)a[1]_obj, (udat)a[2]_any, (const byte *)a[3]_vec); break; case order_BlindSendToMsgPort: if (a.size() >= 3) sockBlindSendToMsgPort((msgport)a[1]_obj, (udat)a[2]_any, (const byte *)a[3]_vec); break; case order_GetOwnerSelection: if (a.size() >= 0) a[0]_obj = (obj)sockGetOwnerSelection(); break; case order_SetOwnerSelection: if (a.size() >= 2) sockSetOwnerSelection((tany)a[1]_any, (tany)a[2]_any); break; case order_RequestSelection: if (a.size() >= 2) sockRequestSelection((obj)a[1]_obj, (uldat)a[2]_any); break; case order_NotifySelection: if (a.size() >= 6) sockNotifySelection((obj)a[1]_obj, (uldat)a[2]_any, (uldat)a[3]_any, (const char *)a[4]_vec, (uldat)a[5]_any, (const char *)a[6]_vec); break; case order_SetServerUid: if (a.size() >= 2) a[0]_any = (tany)sockSetServerUid((uldat)a[1]_any, (byte)a[2]_any); break; �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/socket2_m4.h����������������������������������������������������������������������0000664�0000000�0000000�00000021046�13775351206�0016146�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* This file was automatically generated from m4/socket2.m4, do not edit! */ /* clang-format off */ { 0, 0, "FindFunction", "0" "_" TWS_uldat_STR"_" TWS_byte_STR"V" TWS_char_STR"_" TWS_byte_STR"V" TWS_char_STR }, { 0, 0, "SyncSocket", "0" "_" TWS_byte_STR }, { 0, 0, "ServerSizeof", "0" "_" TWS_byte_STR"_" TWS_byte_STR }, { 0, 0, "CanCompress", "0" "_" TWS_byte_STR }, { 0, 0, "DoCompress", "0" "_" TWS_byte_STR"_" TWS_byte_STR }, { 0, 0, "NeedResizeDisplay", "0" "v" TWS_void_STR }, { 0, 0, "AttachHW", "0" "v" TWS_void_STR"_" TWS_uldat_STR"V" TWS_char_STR"_" TWS_byte_STR }, { 0, 0, "DetachHW", "0" "_" TWS_byte_STR"_" TWS_uldat_STR"V" TWS_char_STR }, { 0, 0, "SetFontTranslation", "0" "v" TWS_void_STR"V" TWS_byte_STR }, { 0, 0, "SetTRuneTranslation", "0" "v" TWS_void_STR"V" TWS_trune_STR }, { 0, 0, "DeleteObj", "0" "v" TWS_void_STR"x" obj_magic_STR }, { 0, 0, "ChangeFieldObj", "2" "v" TWS_void_STR"x" obj_magic_STR"_" TWS_udat_STR"_" TWS_uldat_STR"_" TWS_uldat_STR }, { 0, 0, "CreateWidget", "0" "x" widget_magic_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_uldat_STR"_" TWS_uldat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_tcell_STR }, { 0, 0, "RecursiveDeleteWidget", "0" "v" TWS_void_STR"x" widget_magic_STR }, { 0, 0, "MapWidget", "2" "v" TWS_void_STR"x" widget_magic_STR"x" widget_magic_STR }, { 0, 0, "UnMapWidget", "2" "v" TWS_void_STR"x" widget_magic_STR }, { 0, 0, "SetXYWidget", "0" "v" TWS_void_STR"x" widget_magic_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { 0, 0, "ResizeWidget", "0" "v" TWS_void_STR"x" widget_magic_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { 0, 0, "ScrollWidget", "0" "v" TWS_void_STR"x" widget_magic_STR"_" TWS_ldat_STR"_" TWS_ldat_STR }, { 0, 0, "DrawWidget", "0" "v" TWS_void_STR"x" widget_magic_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR"W" TWS_char_STR"W" TWS_trune_STR"W" TWS_tcell_STR }, { 0, 0, "SetVisibleWidget", "0" "v" TWS_void_STR"x" widget_magic_STR"_" TWS_byte_STR }, { 0, 0, "FocusSubWidget", "0" "v" TWS_void_STR"x" widget_magic_STR }, { 0, 0, "FindWidgetAtWidget", "2" "x" widget_magic_STR"x" widget_magic_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { 0, 0, "RaiseWidget", "2" "v" TWS_void_STR"x" widget_magic_STR }, { 0, 0, "LowerWidget", "2" "v" TWS_void_STR"x" widget_magic_STR }, { 0, 0, "RestackChildrenWidget", "0" "v" TWS_void_STR"x" widget_magic_STR"_" TWS_uldat_STR"X" widget_magic_STR }, { 0, 0, "CirculateChildrenWidget", "0" "v" TWS_void_STR"x" widget_magic_STR"_" TWS_byte_STR }, { 0, 0, "CreateGadget", "0" "x" gadget_magic_STR"x" widget_magic_STR"_" TWS_dat_STR"_" TWS_dat_STR"W" TWS_char_STR"_" TWS_uldat_STR"_" TWS_uldat_STR"_" TWS_udat_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { 0, 0, "CreateButtonGadget", "1" "x" gadget_magic_STR"x" widget_magic_STR"_" TWS_dat_STR"_" TWS_dat_STR"V" TWS_char_STR"_" TWS_uldat_STR"_" TWS_udat_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { 0, 0, "WriteTextsGadget", "2" "v" TWS_void_STR"x" gadget_magic_STR"_" TWS_byte_STR"_" TWS_dat_STR"_" TWS_dat_STR"W" TWS_char_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { 0, 0, "WriteTRunesGadget", "2" "v" TWS_void_STR"x" gadget_magic_STR"_" TWS_byte_STR"_" TWS_dat_STR"_" TWS_dat_STR"W" TWS_trune_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { 0, 0, "CreateWindow", "0" "x" window_magic_STR"_" TWS_dat_STR"V" TWS_char_STR"W" TWS_tcolor_STR"x" menu_magic_STR"_" TWS_tcolor_STR"_" TWS_uldat_STR"_" TWS_uldat_STR"_" TWS_uldat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { 0, 0, "Create4MenuWindow", "1" "x" window_magic_STR"x" menu_magic_STR }, { 0, 0, "WriteCharsetWindow", "0" "v" TWS_void_STR"x" window_magic_STR"_" TWS_uldat_STR"V" TWS_char_STR }, { 0, 0, "WriteUtf8Window", "0" "v" TWS_void_STR"x" window_magic_STR"_" TWS_uldat_STR"V" TWS_char_STR }, { 0, 0, "WriteTRuneWindow", "0" "v" TWS_void_STR"x" window_magic_STR"_" TWS_uldat_STR"V" TWS_trune_STR }, { 0, 0, "WriteTCellWindow", "0" "v" TWS_void_STR"x" window_magic_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_uldat_STR"V" TWS_tcell_STR }, { 0, 0, "GotoXYWindow", "2" "v" TWS_void_STR"x" window_magic_STR"_" TWS_ldat_STR"_" TWS_ldat_STR }, { 0, 0, "SetTitleWindow", "0" "v" TWS_void_STR"x" window_magic_STR"_" TWS_dat_STR"V" TWS_char_STR }, { 0, 0, "SetColTextWindow", "2" "v" TWS_void_STR"x" window_magic_STR"_" TWS_tcolor_STR }, { 0, 0, "SetColorsWindow", "2" "v" TWS_void_STR"x" window_magic_STR"_" TWS_udat_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR }, { 0, 0, "ConfigureWindow", "2" "v" TWS_void_STR"x" window_magic_STR"_" TWS_byte_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR"_" TWS_dat_STR }, { 0, 0, "FindRowByCodeWindow", "0" "x" row_magic_STR"x" window_magic_STR"_" TWS_dat_STR }, { 0, 0, "CreateGroup", "0" "x" ggroup_magic_STR }, { 0, 0, "InsertGadgetGroup", "2" "v" TWS_void_STR"x" ggroup_magic_STR"x" gadget_magic_STR }, { 0, 0, "RemoveGadgetGroup", "2" "v" TWS_void_STR"x" ggroup_magic_STR"x" gadget_magic_STR }, { 0, 0, "GetSelectedGadgetGroup", "2" "x" gadget_magic_STR"x" ggroup_magic_STR }, { 0, 0, "SetSelectedGadgetGroup", "2" "v" TWS_void_STR"x" ggroup_magic_STR"x" gadget_magic_STR }, { 0, 0, "RaiseRow", "2" "v" TWS_void_STR"x" row_magic_STR }, { 0, 0, "LowerRow", "2" "v" TWS_void_STR"x" row_magic_STR }, { 0, 0, "RestackChildrenRow", "0" "v" TWS_void_STR"x" obj_magic_STR"_" TWS_uldat_STR"X" row_magic_STR }, { 0, 0, "CirculateChildrenRow", "0" "v" TWS_void_STR"x" obj_magic_STR"_" TWS_byte_STR }, { 0, 0, "Create4MenuAny", "0" "x" row_magic_STR"x" obj_magic_STR"x" window_magic_STR"_" TWS_udat_STR"_" TWS_byte_STR"_" TWS_ldat_STR"V" TWS_char_STR }, { 0, 0, "Create4MenuCommonMenuItem", "1" "_" TWS_uldat_STR"x" menu_magic_STR }, { 0, 0, "CreateMenu", "0" "x" menu_magic_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_tcolor_STR"_" TWS_byte_STR }, { 0, 0, "SetInfoMenu", "2" "v" TWS_void_STR"x" menu_magic_STR"_" TWS_byte_STR"_" TWS_ldat_STR"V" TWS_char_STR"W" TWS_tcolor_STR }, { 0, 0, "CreateMsgPort", "0" "x" msgport_magic_STR"_" TWS_byte_STR"V" TWS_char_STR }, { 0, 0, "FindMsgPort", "0" "x" msgport_magic_STR"x" msgport_magic_STR"_" TWS_byte_STR"V" TWS_char_STR }, { 0, 0, "BgImageScreen", "2" "v" TWS_void_STR"x" screen_magic_STR"_" TWS_dat_STR"_" TWS_dat_STR"V" TWS_tcell_STR }, { 0, 0, "PrevObj", "0" "x" obj_magic_STR"x" obj_magic_STR }, { 0, 0, "NextObj", "0" "x" obj_magic_STR"x" obj_magic_STR }, { 0, 0, "ParentObj", "0" "x" obj_magic_STR"x" obj_magic_STR }, { 0, 0, "FirstScreen", "0" "x" screen_magic_STR }, { 0, 0, "FirstWidget", "0" "x" widget_magic_STR"x" widget_magic_STR }, { 0, 0, "FirstMsgPort", "0" "x" msgport_magic_STR }, { 0, 0, "FirstMenu", "0" "x" menu_magic_STR"x" msgport_magic_STR }, { 0, 0, "FirstW", "0" "x" widget_magic_STR"x" msgport_magic_STR }, { 0, 0, "FirstGroup", "0" "x" ggroup_magic_STR"x" msgport_magic_STR }, { 0, 0, "FirstMutex", "0" "x" mutex_magic_STR"x" msgport_magic_STR }, { 0, 0, "FirstMenuItem", "0" "x" menuitem_magic_STR"x" menu_magic_STR }, { 0, 0, "FirstGadget", "0" "x" gadget_magic_STR"x" ggroup_magic_STR }, { 0, 0, "GetDisplayWidth", "0" "_" TWS_dat_STR }, { 0, 0, "GetDisplayHeight", "0" "_" TWS_dat_STR }, { 0, 0, "GetAll", "0" "x" all_magic_STR }, { 0, 0, "SendToMsgPort", "0" "_" TWS_byte_STR"x" msgport_magic_STR"_" TWS_udat_STR"V" TWS_byte_STR }, { 0, 0, "BlindSendToMsgPort", "0" "v" TWS_void_STR"x" msgport_magic_STR"_" TWS_udat_STR"V" TWS_byte_STR }, { 0, 0, "GetOwnerSelection", "0" "x" obj_magic_STR }, { 0, 0, "SetOwnerSelection", "0" "v" TWS_void_STR"_" TWS_tany_STR"_" TWS_tany_STR }, { 0, 0, "RequestSelection", "0" "v" TWS_void_STR"x" obj_magic_STR"_" TWS_uldat_STR }, { 0, 0, "NotifySelection", "0" "v" TWS_void_STR"x" obj_magic_STR"_" TWS_uldat_STR"_" TWS_uldat_STR"V" TWS_char_STR"_" TWS_uldat_STR"V" TWS_char_STR }, { 0, 0, "SetServerUid", "0" "_" TWS_byte_STR"_" TWS_uldat_STR"_" TWS_byte_STR }, ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/socket3_m4.h����������������������������������������������������������������������0000664�0000000�0000000�00000006476�13775351206�0016161�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* This file was automatically generated from m4/socket3.m4, do not edit! */ /* clang-format off */ case order_FindFunction: switch (n) { case 2: L = a[1]_any; break; case 4: L = a[3]_any; break; } break; case order_AttachHW: switch (n) { case 2: L = a[1]_any; break; } break; case order_DetachHW: switch (n) { case 2: L = a[1]_any; break; } break; case order_SetFontTranslation: switch (n) { case 1: L = 0x80; break; } break; case order_SetTRuneTranslation: switch (n) { case 1: L = 0x80; break; } break; case order_DrawWidget: switch (n) { case 6: L = a[2]_any*a[3]_any; break; case 7: L = a[2]_any*a[3]_any; break; case 8: L = a[2]_any*a[3]_any; break; } break; case order_RestackChildrenWidget: switch (n) { case 3: L = a[2]_any; break; } break; case order_CreateGadget: switch (n) { case 4: L = a[2]_any*a[3]_any; break; } break; case order_CreateButtonGadget: switch (n) { case 4: L = a[2]_any*a[3]_any; break; } break; case order_WriteTextsGadget: switch (n) { case 5: L = a[2]_any*a[3]_any; break; } break; case order_WriteTRunesGadget: switch (n) { case 5: L = a[2]_any*a[3]_any; break; } break; case order_CreateWindow: switch (n) { case 2: L = a[1]_any; break; case 3: L = a[1]_any; break; } break; case order_WriteCharsetWindow: switch (n) { case 3: L = a[2]_any; break; } break; case order_WriteUtf8Window: switch (n) { case 3: L = a[2]_any; break; } break; case order_WriteTRuneWindow: switch (n) { case 3: L = a[2]_any; break; } break; case order_WriteTCellWindow: switch (n) { case 5: L = a[4]_any; break; } break; case order_SetTitleWindow: switch (n) { case 3: L = a[2]_any; break; } break; case order_RestackChildrenRow: switch (n) { case 3: L = a[2]_any; break; } break; case order_Create4MenuAny: switch (n) { case 6: L = a[5]_any; break; } break; case order_SetInfoMenu: switch (n) { case 4: L = a[3]_any; break; case 5: L = a[3]_any; break; } break; case order_CreateMsgPort: switch (n) { case 2: L = a[1]_any; break; } break; case order_FindMsgPort: switch (n) { case 3: L = a[2]_any; break; } break; case order_BgImageScreen: switch (n) { case 4: L = a[2]_any*a[3]_any; break; } break; case order_SendToMsgPort: switch (n) { case 3: L = a[2]_any; break; } break; case order_BlindSendToMsgPort: switch (n) { case 3: L = a[2]_any; break; } break; case order_NotifySelection: switch (n) { case 4: L = TW_MAX_MIMELEN; break; case 6: L = a[5]_any; break; } break; ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/socket_id.h�����������������������������������������������������������������������0000664�0000000�0000000�00000000760�13775351206�0016140�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_SOCKET_ID_H #define TWIN_SOCKET_ID_H enum sockid { #define EL(name) CAT(order_, name), #include "socklist_m4.h" #undef EL order_StatObj }; #endif /* TWIN_SOCKET_ID_H */ ����������������twin-0.9.0/server/socketalien.h���������������������������������������������������������������������0000664�0000000�0000000�00000072437�13775351206�0016507�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #define _obj .TWS_field_obj #define _any .TWS_field_scalar #define _vec .TWS_field_vecV #define _len .TWS_field_vecL #define _type .type #define void_ TWS_void #define obj_ TWS_obj #define vec_ TWS_vec #define vecW_ TWS_vecW /* defines and wrappers for commonly used stuff */ #define SIZEOF(type) AlienSizeof(type, Slot) #define REPLY(code, type, lval) alienReply(code, SIZEOF(type), sizeof(type), lval) #define POP(s, type, lval) alienPOP(s, type, lval) #define PUSH(s, type, lval) alienPUSH(s, type, lval) /* wrap alienPUSH() to work with non-lvalue `val' */ #define PUSH_(s, type, rval) \ do { \ type tmp__ = (rval); \ alienPUSH(s, type, tmp__); \ } while (0) inline void FlipCopyMem(const void *srcv, void *dstv, uldat len) { const byte *src = (const byte *)srcv + len - 1; byte *dst = (byte *)dstv; while (len--) *dst++ = *src--; } /*translate from alien data, copying srclen bytes to dstlen bytes, optionally flipping byte order*/ static void alienRead(const byte *src, uldat srclen, byte *dst, uldat dstlen, byte flip) { #if TW_IS_LITTLE_ENDIAN /* copy the least significant bits */ if (flip) FlipCopyMem(src + (srclen > dstlen ? srclen - dstlen : 0), dst, Min2(dstlen, srclen)); else CopyMem(src, dst, Min2(dstlen, srclen)); /* and set the remaining to zero */ if (dstlen > srclen) memset(dst + srclen, '\0', dstlen - srclen); #else /* TW_IS_BIG_ENDIAN */ /* copy the least significant bits */ if (flip) FlipCopyMem(src, dst + (dstlen > srclen ? dstlen - srclen : 0), Min2(dstlen, srclen)); else if (dstlen > srclen) CopyMem(src, dst + dstlen - srclen, srclen); else CopyMem(src + srclen - dstlen, dst, dstlen); /* set the high bits to zero */ if (dstlen > srclen) memset(dst, '\0', dstlen - srclen); #endif /* TW_IS_LITTLE_ENDIAN */ } /*translate to alien data, copying srclen bytes to dstlen bytes, optionally flipping byte order*/ static void alienWrite(const void *src, uldat srclen, byte *dst, uldat dstlen, byte flip) { #if TW_IS_LITTLE_ENDIAN /* copy the least significant bits */ if (flip) FlipCopyMem(src, dst + (dstlen > srclen ? dstlen - srclen : 0), Min2(dstlen, srclen)); else CopyMem(src, dst, Min2(dstlen, srclen)); /* and set the remaining to zero */ if (dstlen > srclen) memset(dst + (flip ? 0 : srclen), '\0', dstlen - srclen); #else /* TW_IS_BIG_ENDIAN */ /* copy the least significant bits */ if (flip) FlipCopyMem(src + (srclen > dstlen ? srclen - dstlen : 0), dst, Min2(dstlen, srclen)); else if (dstlen > srclen) CopyMem(src, dst + dstlen - srclen, srclen); else CopyMem(src + srclen - dstlen, dst, dstlen); /* set the high bits to zero */ if (dstlen > srclen) memset(dst + (flip ? srclen : 0), '\0', dstlen - srclen); #endif /* TW_IS_LITTLE_ENDIAN */ } /** * convert alien type at (*src) to native and write it at (*dst) * return src + alien_len */ static const byte *alienPop(const byte *src, uldat alien_len, void *dst, uldat len) { alienRead(src, alien_len, (byte *)dst, len, AlienXendian(Slot) == MagicAlienXendian); return src + alien_len; } /** * convert native type at (*src) to alien and write it at (*dst). * return dst + alien_len */ static byte *alienPush(const void *src, uldat len, byte *dst, uldat alien_len) { alienWrite((const byte *)src, len, dst, alien_len, AlienXendian(Slot) == MagicAlienXendian); return dst + alien_len; } /* * translate from alien data, copying len bytes from srcsize chunks to dstsize chunks, optionally * flipping byte order. assume dst is large enough to hold translated data. */ inline void alienReadVec(const byte *src, byte *dst, uldat len, uldat srcsize, uldat dstsize, byte flag) { /* round to srcsize multiple */ len = (len / srcsize) * srcsize; /* optimize common cases */ #if TW_IS_LITTLE_ENDIAN if (srcsize == 1) { while (len--) { memset(dst + 1, '\0', dstsize - 1); *dst = *src++; dst += dstsize; } } else if (dstsize == 1) { if (flag) { while (len--) { *dst++ = src[srcsize - 1]; src += srcsize; } } else { while (len--) { *dst++ = *src; src += srcsize; } } } #else /* TW_IS_BIG_ENDIAN */ if (srcsize == 1) { while (len--) { memset(dst, '\0', dstsize - 1); dst[dstsize - 1] = *src++; dst += dstsize; } } else if (dstsize == 1) { if (flag) { while (len--) { *dst++ = *src; src += srcsize; } } else { while (len--) { *dst++ = src[srcsize - 1]; src += srcsize; } } } #endif /* TW_IS_LITTLE_ENDIAN */ else if (srcsize == dstsize) { if (flag) { while (len) { FlipCopyMem(src, dst, srcsize); src += srcsize; dst += dstsize; len -= srcsize; } } else CopyMem(src, dst, srcsize); } else { /* fallback. all other cases */ while (len) { alienRead(src, srcsize, dst, dstsize, flag); src += srcsize; dst += dstsize; len -= srcsize; } } } /* * translate from alien data, copying len bytes from srcsize chunks to dstsize chunks, optionally * flipping byte order. allocate a new buffer to hold data. */ static byte *alienAllocReadVec(const byte *src, uldat len, uldat srcsize, uldat dstsize, byte flag) { byte *dst; if ((dst = (byte *)AllocMem(len / srcsize * dstsize))) alienReadVec(src, dst, len, srcsize, dstsize, flag); return dst; } /* * translate to alien data, copying len bytes from srcsize chunks to dstsize chunks, optionally * flipping byte order. assume dst is large enough to hold translated data. */ static void alienWriteVec(const byte *src, byte *dst, uldat len, uldat srcsize, uldat dstsize, byte flag) { /* round to srcsize multiple */ len = (len / srcsize) * srcsize; /* no optimization for srcsize == 1 or dstsize == 1 here */ if (srcsize == dstsize) { if (flag) { while (len) { FlipCopyMem(src, dst, srcsize); src += srcsize; dst += dstsize; len -= srcsize; } } else CopyMem(src, dst, srcsize); } else { /* fallback. all other cases */ while (len) { alienWrite(src, srcsize, dst, dstsize, flag); src += srcsize; dst += dstsize; len -= srcsize; } } } static void alienReply(uldat code, uldat alien_len, uldat len, const void *data) { byte AlienSizeofUldat = SIZEOF(uldat); if (RemoteWriteQueue(Slot, 3 * AlienSizeofUldat + alien_len, NULL) == 3 * AlienSizeofUldat + alien_len) { uldat queued; byte *T = RemoteWriteGetQueue(Slot, &queued); T += queued - 3 * AlienSizeofUldat - alien_len; alien_len += 2 * AlienSizeofUldat; PUSH(T, uldat, alien_len); PUSH(T, uldat, RequestN); PUSH(T, uldat, code); alien_len -= 2 * AlienSizeofUldat; if (alien_len && len && data) { T = RemoteWriteGetQueue(Slot, &queued); T += queued - alien_len; T = alienPush(data, len, T, alien_len); } } } static void alienTranslateTCellV_CP437_to_UTF_32(tcell *H, uldat Len) { trune f; while (Len--) { f = Tutf_CP437_to_UTF_32[TRUNE(*H) & 0xFF]; *H = TCELL_COLMASK(*H) | TCELL(0, f); H++; } } #define alienFixIdentity(x) x /* * twin < 0.8.0 used a different encoding {utf16_lo, color, utf16_hi, extra} * for tcell. detected by SIZEOF(trune) == 2 && SIZEOF(tcell) == 4 */ inline tcell alienFixDecodeTCell(tcell cell) { trune rune = (cell & 0xFF) | ((cell >> 8) & 0xFF00); tcolor col = (cell >> 8) & 0xFF; return TCELL(col, rune); } inline tcell alienMaybeFixDecodeTCell(tcell cell) { if (SIZEOF(trune) == 2 && SIZEOF(tcell) == 4) cell = alienFixDecodeTCell(cell); return cell; } static void alienFixDecodeTCellV(tcell *H, uldat Len) { while (Len--) { *H = alienFixDecodeTCell(*H); H++; } } inline ldat alienDecodeArg(uldat id, const char *Format, uldat n, tsfield a, uldat mask[1], byte flag[1], ldat fail) { void *A; const void *av; topaque nlen; uldat a0; byte c; switch ((c = (byte)*Format++)) { case '_': switch ((c = (byte)*Format)) { #define CASE_fix(type, fixtype) \ case CAT(TWS_, type): \ /* ensure type size WAS negotiated */ \ if (SIZEOF(type) && Left(SIZEOF(type))) { \ type an; \ POP(s, type, an); \ a[n] _any = (tany)fixtype(an); \ a[n] _type = c; \ } else \ fail = -fail; \ break; #define CASE_(type) CASE_fix(type, alienFixIdentity) #define CASE_tcell() CASE_fix(tcell, alienMaybeFixDecodeTCell) case TWS_tcolor: /*FALLTHROUGH*/ CASE_(byte); CASE_(dat); CASE_(ldat); CASE_(topaque); CASE_(tany); CASE_(trune); CASE_tcell(); #undef CASE_tcell #undef CASE_fix #undef CASE_ default: break; } break; case 'x': /* all kind of pointers */ if (Left(SIZEOF(uldat))) { POP(s, uldat, a0); c = (byte)*Format - base_magic_CHR; a[n] _obj = Id2Obj(c, a0); a[n] _type = obj_; break; } fail = -fail; break; case 'V': nlen = sockLengths(id, View<s_tsfield>(a, n)); c = (byte)*Format; /* ensure type size WAS negotiated */ if (AlienMagic(Slot)[c]) { nlen *= AlienMagic(Slot)[c]; if (Left(nlen)) { PopAddr(s, const byte, nlen, av); a[n] _cvec = av; a[n] _len = nlen / AlienMagic(Slot)[c] * TwinMagicData[c]; a[n] _type = vec_ | c; if (AlienMagic(Slot)[c] != TwinMagicData[c] || (TwinMagicData[c] != 1 && AlienXendian(Slot) == MagicAlienXendian)) { a[n] _vec = alienAllocReadVec((const byte *)av, nlen, AlienMagic(Slot)[c], TwinMagicData[c], AlienXendian(Slot) == MagicAlienXendian); if (a[n] _vec) { if (c == TWS_tcell && SIZEOF(tcell) == 2) alienTranslateTCellV_CP437_to_UTF_32((tcell *)a[n] _vec, nlen); *mask |= 1 << n; } else fail = -fail; } if (c == TWS_tcell && SIZEOF(trune) == 2 && SIZEOF(tcell) == 4 && a[n] _vec) alienFixDecodeTCellV((tcell *)a[n] _vec, nlen / TW_SIZEOF_TCELL); break; } } fail = -fail; break; case 'W': /* ensure 'topaque' size WAS negotiated */ if (SIZEOF(topaque) && Left(SIZEOF(topaque))) { POP(s, topaque, nlen); c = (byte)*Format; /* ensure type size WAS negotiated */ if (AlienMagic(Slot)[c]) { if (!nlen || (Left(nlen) && nlen == sockLengths(id, View<s_tsfield>(a, n)) * AlienMagic(Slot)[c])) { PopAddr(s, const byte, nlen, av); a[n] _cvec = av; a[n] _len = nlen / AlienMagic(Slot)[c] * TwinMagicData[c]; a[n] _type = vec_ | vecW_ | c; if (AlienMagic(Slot)[c] != TwinMagicData[c] || (TwinMagicData[c] != 1 && AlienXendian(Slot) == MagicAlienXendian)) { a[n] _vec = alienAllocReadVec((const byte *)av, nlen, AlienMagic(Slot)[c], TwinMagicData[c], AlienXendian(Slot) == MagicAlienXendian); if (a[n] _cvec) { if (c == TWS_tcell && SIZEOF(tcell) == 2) alienTranslateTCellV_CP437_to_UTF_32((tcell *)a[n] _vec, nlen); *mask |= 1 << n; } else fail = -fail; } if (c == TWS_tcell && SIZEOF(trune) == 2 && SIZEOF(tcell) == 4 && a[n] _vec) alienFixDecodeTCellV((tcell *)a[n] _vec, nlen / TW_SIZEOF_TCELL); break; } } } fail = -fail; break; case 'X': nlen = sockLengths(id, View<s_tsfield>(a, n)) * SIZEOF(uldat); c = (byte)*Format - base_magic_CHR; if (Left(nlen)) { PopAddr(s, const byte, nlen, av); a[n] _cvec = av; a[n] _len = nlen / SIZEOF(uldat) * sizeof(uldat); a[n] _type = vec_ | obj_; if (SIZEOF(uldat) != sizeof(uldat) || AlienXendian(Slot) == MagicAlienXendian) { A = a[n] _vec = alienAllocReadVec((const byte *)av, nlen, SIZEOF(uldat), sizeof(uldat), AlienXendian(Slot) == MagicAlienXendian); } else A = a[n] _vec; if (A) { a[n] _vec = AllocId2ObjVec(flag, c, nlen / sizeof(uldat), (byte *)A); FreeMem((void *)A); if (a[n] _vec) { *mask |= *flag << n; break; } } } fail = -fail; break; case 'Y': c = (byte)*Format - base_magic_CHR; /* ensure 'topaque' size WAS negotiated */ if (SIZEOF(topaque) && Left(SIZEOF(topaque))) { POP(s, topaque, nlen); nlen *= sizeof(uldat); if (Left(nlen)) { PopAddr(s, const byte, nlen, av); a[n] _cvec = av; a[n] _len = nlen / SIZEOF(uldat) * sizeof(uldat); a[n] _type = vec_ | obj_; if (SIZEOF(uldat) != sizeof(uldat) || AlienXendian(Slot) == MagicAlienXendian) { A = a[n] _vec = alienAllocReadVec((const byte *)av, nlen, SIZEOF(uldat), sizeof(uldat), AlienXendian(Slot) == MagicAlienXendian); } else A = a[n] _vec; if (A) { a[n] _vec = AllocId2ObjVec(flag, c, nlen / sizeof(uldat), (byte *)A); FreeMem((void *)A); if (a[n] _vec) { *mask |= *flag << n; break; } } } } fail = -fail; break; default: fail = -fail; break; } return fail; } static void alienMultiplexB(uldat id) { static struct s_tsfield a[TW_MAX_ARGS_N]; static byte warned = tfalse; uldat mask = 0; /* at least 32 bits. we need 20... */ uldat nlen, n = 1; ldat fail = 1; const char *Format = sockF[id].Format; uldat a0; char retT[2]; byte c, self, flag, tmp; self = (byte)*Format++; retT[0] = *Format++; retT[1] = *Format++; while (fail > 0 && *Format) { if (n < TW_MAX_ARGS_N) { fail = alienDecodeArg(id, Format, n, a, &mask, &flag, fail); } else /* (n >= TW_MAX_ARGS_N) */ { if (!warned) { warned = ttrue; printk("twin: alienMultiplexB(): got a call with %d args, only %d supported!\n", n, TW_MAX_ARGS_N); } fail = -fail; } if (fail > 0) { Format += 2; fail++; n++; } else break; } if ((flag = (fail > 0 && s == end && !*Format && (self != '2' || a[1] _obj)))) { if (retT[0] == 'O' && a[n - 1] _type == (TWS_vec | TWS_byte) && a[n - 1] _len == 2 * sizeof(byte)) { /* * variable return type. store it in last arg, * and let function implementation overwrite it * * evil trick: only a[n-1]_vec will be passed to the function, * but it points to a[n-1] itself! */ a[n - 1] _type = proto_2_TWS((const char *)(a[n - 1] _vec)); if (mask & 1 << (n - 1)) FreeMem(a[n - 1].TWS_field_vecV); a[n - 1] _vec = &a[n - 1]; a[n - 1] _len = 0; } fullMultiplexS(id, Span<s_tsfield>(a, n)); } for (nlen = 0; mask; mask >>= 1, nlen++) { if (mask & 1) FreeMem(a[nlen].TWS_field_vecV); } if (flag) { if (retT[0] == 'O') { /* variable return type. get it from last arg */ /* FIXME: currently, only '_' (scalar) and 'v' (void) return types are supported */ TWS_2_proto(a[n - 1] _type, retT); } switch ((byte)retT[0]) { case '_': switch ((byte)retT[1]) { #define CASE_(type) \ case CAT(TWS_, type): \ /* ensure type size WAS negotiated */ \ if (CAT(TWS_, type) <= TWS_tcolor || SIZEOF(type)) { \ /* move to first bytes on MSB machines */ \ *(type *)&a[0] _any = (type)a[0] _any; \ c = SIZEOF(type); \ tmp = sizeof(type); \ break; \ } \ fail = 0; \ break case TWS_tcolor: /*FALLTHROUGH*/ CASE_(byte); CASE_(dat); CASE_(ldat); CASE_(topaque); CASE_(tany); CASE_(trune); CASE_(tcell); #undef CASE_ default: c = self = 0; break; } if (c && fail > 0) { alienReply(OK_MAGIC, tmp, c, &a[0] _any); return; } break; case 'x': a0 = a[0] _obj ? a[0] _obj->Id : NOID; REPLY(OK_MAGIC, uldat, &a0); return; case 'S': case 'v': return; default: break; } } if (retT[0] != 'v') { if (fail > 0) { if (self != '2' || a[1] _obj) fail = FAIL_MAGIC; else fail = 1; } alienReply(fail, 0, 0, NULL); } } #undef _obj #undef _any #undef _vec #undef _len #undef _type #undef void_ #undef obj_ #undef vec_ #undef vecW_ static void AlienIO(int fd, uldat slot) { uldat len, Funct; byte *t; const byte *tend; int tot = 0; #ifdef CONF_SOCKET_GZ uldat gzSlot; #endif byte AlienSizeofUldat; Fd = fd; Slot = slot; if (ioctl(Fd, FIONREAD, &tot) != 0 || tot <= 0) tot = TW_SMALLBUFF; else if (tot > TW_BIGBUFF * TW_BIGBUFF) tot = TW_BIGBUFF * TW_BIGBUFF; if (!(t = RemoteReadGrowQueue(Slot, tot))) return; if ((len = read(Fd, t, tot)) && len && len != (uldat)-1) { if (len < (uldat)tot) RemoteReadShrinkQueue(Slot, (uldat)tot - len); /* ok, now process the data */ #ifdef CONF_SOCKET_GZ if ((gzSlot = LS.pairSlot) != NOSLOT) { /* hmmm, a compressed socket. */ if (RemoteGunzip(Slot)) Slot = gzSlot; else { Ext(Remote, KillSlot)(Slot); return; } } #endif s = t = RemoteReadGetQueue(Slot, &len); tend = s + len; AlienSizeofUldat = SIZEOF(uldat); while (s + 3 * AlienSizeofUldat <= tend) { POP(s, uldat, len); if (len < 2 * AlienSizeofUldat) { s += len; continue; } if (s + len > s && s + len <= tend) { end = s + len; POP(s, uldat, RequestN); POP(s, uldat, Funct); if (Funct < MaxFunct) { slot = Slot; alienMultiplexB(Funct); /* Slot is the uncompressed socket here ! */ Slot = slot; /* * restore, in case alienF[Funct].F() changed it; * without this, tw* clients can freeze * if twdisplay is in use */ } else if (Funct == FIND_MAGIC) alienMultiplexB(0); s = end; } else if (s + len < s) { s = tend; break; } else { /* if (s + len > tend) */ /* must wait for rest of packet... unpop len */ s -= AlienSizeofUldat; break; } } RemoteReadDeQueue(Slot, (uldat)(s - t)); #ifdef CONF_SOCKET_GZ if (gzSlot != NOSLOT) /* compressed socket, restore Slot */ Slot = gzSlot; #endif } else if (!len || (len == (uldat)-1 && errno != EINTR && errno != EWOULDBLOCK)) { /* let's close this sucker */ Ext(Remote, KillSlot)(Slot); } } /*move chunk bytes to chunk bytes at time, flipping byte order*/ static void FlipMoveMem(byte *mem, uldat len, uldat chunk) { uldat i, j; byte c; #if TW_IS_LITTLE_ENDIAN uint32_t t; switch (chunk) { case 1: return; case 2: while (len >= 2) { *(uint16_t *)mem = htons(*(const uint16_t *)mem); mem += 2; len -= 2; } return; case 4: while (len >= 4) { *(uint32_t *)mem = htonl(*(const uint32_t *)mem); mem += 4; len -= 4; } return; case 8: while (len >= 8) { t = htonl(((const uint32_t *)mem)[0]); ((uint32_t *)mem)[0] = htonl(((const uint32_t *)mem)[1]); ((uint32_t *)mem)[1] = t; mem += 8; len -= 8; } return; default: break; } #endif while (len >= chunk) { for (i = 0; i < chunk / 2; i++) { j = chunk - i - 1; c = mem[i]; mem[i] = mem[j]; mem[j] = c; } mem += chunk; len -= chunk; } } /* * Turn the (msg) into a (tmsg) and write it on the MsgPort file descriptor. * Used when MsgPort slot is using non-native data sizes and endianity. * * this can be called in nasty places like detaching non-exclusive displays * when an exclusive one is started. Must preserve Slot, Fd and other globals! */ static void alienSendMsg(msgport MsgPort, msg Msg) { byte *t; char *Src; uldat save_Slot = Slot, Len = 0, Tot, N; int save_Fd = Fd; tcell H; uint16_t h; byte Type; RequestN = MSG_MAGIC; Fd = MsgPort->RemoteData.Fd; Slot = MsgPort->RemoteData.FdSlot; switch (Msg->Type) { case msg_display: Src = (char *)Msg->Event.EventDisplay.Data; N = 1; switch (Msg->Event.EventDisplay.Code) { case ev_dpy_DrawTCell: Type = TWS_tcell; N = Msg->Event.EventDisplay.Len / sizeof(tcell); break; case ev_dpy_Helper: case ev_dpy_SetCursorType: Type = TWS_uldat; break; case ev_dpy_DragArea: case ev_dpy_SetPalette: Type = TWS_dat; N = 4; break; default: Type = TWS_byte; N = Msg->Event.EventDisplay.Len; break; } Len = AlienMagic(Slot)[Type] * N + SIZEOF(uldat) + 4 * SIZEOF(udat); alienReply(Msg->Type, Len, 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; PUSH_(t, uldat, NOID); /* not used here */ PUSH(t, udat, Msg->Event.EventDisplay.Code); Len -= SIZEOF(uldat) + 4 * SIZEOF(udat); PUSH(t, udat, Len); PUSH(t, udat, Msg->Event.EventDisplay.X); PUSH(t, udat, Msg->Event.EventDisplay.Y); if (Type == TWS_byte) { PushV(t, N, Src); } else if (Type == TWS_tcell && AlienMagic(Slot)[Type] == 2) { /* on the fly conversion from Unicode to CP437 */ while (N--) { Pop(Src, tcell, H); h = ((uint16_t)TCOLOR(H) << 8) | Tutf_UTF_32_to_CP437(TRUNE(H)); t = alienPush(&h, sizeof(tcell), t, 2); } } else { Tot = TwinMagicData[Type]; Len = AlienMagic(Slot)[Type]; while (N--) { t = alienPush(Src, Tot, t, Len); Src += Tot; } } } break; case msg_widget_key: alienReply(Msg->Type, Len = SIZEOF(uldat) + 3 * SIZEOF(udat) + 2 * SIZEOF(byte) + Msg->Event.EventKeyboard.SeqLen, 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; PUSH_(t, uldat, Obj2Id(Msg->Event.EventKeyboard.W)); PUSH(t, udat, Msg->Event.EventKeyboard.Code); PUSH(t, udat, Msg->Event.EventKeyboard.ShiftFlags); PUSH(t, udat, Msg->Event.EventKeyboard.SeqLen); PUSH(t, byte, Msg->Event.EventKeyboard.pad); PushV(t, Msg->Event.EventKeyboard.SeqLen + 1, /* the final '\0' */ Msg->Event.EventKeyboard.AsciiSeq); } break; case msg_widget_mouse: alienReply(Msg->Type, Len = SIZEOF(uldat) + 4 * SIZEOF(udat), 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; PUSH_(t, uldat, Obj2Id(Msg->Event.EventMouse.W)); PUSH(t, udat, Msg->Event.EventMouse.Code); PUSH(t, udat, Msg->Event.EventMouse.ShiftFlags); PUSH(t, dat, Msg->Event.EventMouse.X); PUSH(t, dat, Msg->Event.EventMouse.Y); } break; case msg_widget_change: alienReply(Msg->Type, Len = SIZEOF(uldat) + 4 * SIZEOF(dat), 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; PUSH_(t, uldat, Obj2Id(Msg->Event.EventWidget.W)); PUSH(t, udat, Msg->Event.EventWidget.Code); PUSH(t, udat, Msg->Event.EventWidget.Flags); PUSH(t, udat, Msg->Event.EventWidget.XWidth); PUSH(t, udat, Msg->Event.EventWidget.YWidth); PUSH(t, udat, Msg->Event.EventWidget.XWidth); PUSH(t, udat, Msg->Event.EventWidget.Y); } break; case msg_widget_gadget: alienReply(Msg->Type, Len = SIZEOF(uldat) + 2 * SIZEOF(dat), 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; PUSH_(t, uldat, Obj2Id(Msg->Event.EventGadget.W)); PUSH(t, udat, Msg->Event.EventGadget.Code); PUSH(t, udat, Msg->Event.EventGadget.Flags); } break; case msg_menu_row: alienReply(Msg->Type, Len = SIZEOF(uldat) + 2 * SIZEOF(dat) + SIZEOF(uldat), 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; PUSH_(t, uldat, Obj2Id(Msg->Event.EventMenu.W)); PUSH(t, udat, Msg->Event.EventMenu.Code); PUSH(t, udat, Msg->Event.EventMenu.pad); PUSH_(t, uldat, Obj2Id(Msg->Event.EventMenu.Menu)); } break; case msg_selection: alienReply(Msg->Type, Len = SIZEOF(uldat) + 4 * SIZEOF(dat), 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; PUSH_(t, uldat, Obj2Id(Msg->Event.EventSelection.W)); PUSH(t, udat, Msg->Event.EventSelection.Code); PUSH(t, udat, Msg->Event.EventSelection.pad); PUSH(t, dat, Msg->Event.EventSelection.X); PUSH(t, dat, Msg->Event.EventSelection.Y); } break; case msg_selection_notify: N = Msg->Event.EventSelectionNotify.Len; alienReply(Msg->Type, Len = 4 * SIZEOF(uldat) + 2 * SIZEOF(dat) + MAX_MIMELEN + N, 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; PUSH_(t, uldat, Obj2Id(Msg->Event.EventSelectionNotify.W)); PUSH(t, udat, Msg->Event.EventSelectionNotify.Code); PUSH(t, udat, Msg->Event.EventSelectionNotify.pad); PUSH(t, uldat, Msg->Event.EventSelectionNotify.ReqPrivate); PUSH(t, uldat, Msg->Event.EventSelectionNotify.Magic); PushV(t, MAX_MIMELEN, Msg->Event.EventSelectionNotify.MIME); PUSH(t, uldat, Msg->Event.EventSelectionNotify.Len); PushV(t, Msg->Event.EventSelectionNotify.Len, Msg->Event.EventSelectionNotify.Data); } break; case msg_selection_request: alienReply(Msg->Type, Len = SIZEOF(uldat) + 2 * SIZEOF(dat) + 2 * SIZEOF(ldat), 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; PUSH_(t, uldat, Obj2Id(Msg->Event.EventSelectionRequest.W)); PUSH(t, udat, Msg->Event.EventSelectionRequest.Code); PUSH(t, udat, Msg->Event.EventSelectionRequest.pad); PUSH_(t, uldat, Obj2Id(Msg->Event.EventSelectionRequest.Requestor)); PUSH(t, uldat, Msg->Event.EventSelectionRequest.ReqPrivate); } break; case msg_user_control: alienReply(Msg->Type, Len = SIZEOF(uldat) + 4 * SIZEOF(dat) + SIZEOF(byte) + Msg->Event.EventControl.Len, 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { t += Tot - Len; PUSH_(t, uldat, Obj2Id(Msg->Event.EventControl.W)); PUSH(t, udat, Msg->Event.EventControl.Code); PUSH(t, udat, Msg->Event.EventControl.Len); PUSH(t, dat, Msg->Event.EventControl.X); PUSH(t, dat, Msg->Event.EventControl.Y); PushV(t, Msg->Event.EventControl.Len, Msg->Event.EventControl.Data); } break; case msg_user_clientmsg: alienReply(Msg->Type, Len = 2 * SIZEOF(uldat) + 2 * SIZEOF(dat) + Msg->Event.EventClientMsg.Len, 0, NULL); if ((t = RemoteWriteGetQueue(Slot, &Tot)) && Tot >= Len) { event_clientmsg *E = &Msg->Event.EventClientMsg; t += Tot - Len; PUSH_(t, uldat, Obj2Id(E->W)); PUSH(t, udat, E->Code); PUSH(t, udat, E->Format); PUSH(t, uldat, E->Len); if (AlienXendian(Slot) == MagicAlienXendian && E->Format > 1) FlipMoveMem(E->Data.b, E->Len, E->Format); PushV(t, E->Len, E->Data.b); } break; default: break; } Slot = save_Slot; Fd = save_Fd; } #undef SIZEOF #undef REPLY #undef POP #undef PUSH_ ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/socketstat.h����������������������������������������������������������������������0000664�0000000�0000000�00000056340�13775351206�0016365�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ /* FIXME: remove these */ #define TWS_ggroup_Id TWS_group_Id #define TWS_ggroup_Prev TWS_group_Prev #define TWS_ggroup_Next TWS_group_Next #define TWS_ggroup_Parent TWS_group_Parent #define TWS_ggroup_Prev_List TWS_group_Prev_List #define TWS_ggroup_Next_List TWS_group_Next_List #define TWS_ggroup_Parent_List TWS_group_Parent_List #define TWS_ggroup_Owner TWS_group_Owner #define TWS_ggroup_MsgPort TWS_group_MsgPort #define TWS_ggroup_FirstG TWS_group_FirstG #define TWS_ggroup_LastG TWS_group_LastG #define TWS_ggroup_SelectG TWS_group_SelectG #define TWS_ggroup_ChildrenG_List TWS_group_ChildrenG_List #define TWScase(objtype, field, fieldtype) \ case CAT4(TWS_, objtype, _, field): \ /* ensure type size WAS negotiated */ \ if (CAT(TWS_, fieldtype) <= TWS_tcolor || CAT(TWS_, fieldtype) >= TWS_highest || \ AlienSizeof(fieldtype, Slot)) { \ TSF->CAT(TWS_field_, fieldtype) = (fieldtype)x->field; \ TSF->type = CAT(TWS_, fieldtype); \ break; \ } \ return tfalse #define TWScaseUSE(objtype, use, field, fieldtype) \ case CAT6(TWS_, objtype, _USE_, use, _, field): \ /* ensure type size WAS negotiated */ \ if (CAT(TWS_, fieldtype) <= TWS_tcolor || CAT(TWS_, fieldtype) >= TWS_highest || \ AlienSizeof(fieldtype, Slot)) { \ TSF->CAT(TWS_field_, fieldtype) = (fieldtype)x->USE.use.field; \ TSF->type = CAT(TWS_, fieldtype); \ break; \ } \ return tfalse #define TWScaseA(objtype, field, n, fieldtype) \ case CAT5(TWS_, objtype, _, field, V, n): \ /* ensure type size WAS negotiated */ \ if (CAT(TWS_, fieldtype) <= TWS_tcolor || CAT(TWS_, fieldtype) >= TWS_highest || \ AlienSizeof(fieldtype, Slot)) { \ TSF->CAT(TWS_field_, fieldtype) = (fieldtype)x->field[n]; \ TSF->type = CAT(TWS_, fieldtype); \ break; \ } \ return tfalse #define TWScaseAUSE(objtype, use, field, n, fieldtype) \ case CAT8(TWS_, objtype, _USE_, use, _, field, V, n): \ /* ensure type size WAS negotiated */ \ if (CAT(TWS_, fieldtype) <= TWS_tcolor || CAT(TWS_, fieldtype) >= TWS_highest || \ AlienSizeof(fieldtype, Slot)) { \ TSF->CAT(TWS_field_, fieldtype) = (fieldtype)x->USE.use.field[n]; \ TSF->type = CAT(TWS_, fieldtype); \ break; \ } \ return tfalse #define TWScasevec(objtype, field, _type, len) \ case CAT4(TWS_, objtype, _, field): \ if ((TSF->TWS_field_vecV = (void *)x->field)) \ TSF->TWS_field_vecL = (uldat)sizeof(_type) * (len); \ TSF->type = TWS_vec | CAT(TWS_, _type); \ break #define TWScasevecUSE(objtype, use, field, _type, len) \ case CAT6(TWS_, objtype, _USE_, use, _, field): \ if ((TSF->TWS_field_vecV = (void *)x->USE.use.field)) \ TSF->TWS_field_vecL = (uldat)sizeof(_type) * (len); \ TSF->type = TWS_vec | CAT(TWS_, _type); \ break #define TWScaseAvec(objtype, field, n, _type, len) \ case CAT6(TWS_, objtype, _, field, V, n): \ if ((TSF->TWS_field_vecV = (void *)x->field[n])) \ TSF->TWS_field_vecL = (uldat)sizeof(_type) * (len); \ TSF->type = TWS_vec | CAT(TWS_, _type); \ break #define TWScaseAvecUSE(objtype, use, field, n, _type, len) \ case CAT8(TWS_, objtype, _USE_, use, _, field, V, n): \ if ((TSF->TWS_field_vecV = (void *)x->USE.use.field[n])) \ TSF->TWS_field_vecL = (uldat)sizeof(_type) * (len); \ TSF->type = TWS_vec | CAT(TWS_, _type); \ break #define fieldDelta(field) ((udat)(size_t) & (((obj_entry)0)->field)) #define fieldTypeDelta(type, field) ((udat)(size_t) & (((type)0)->field)) #define sockAllocListPrevObjs(F, len) sockAllocListDeltaObjs((obj)(F), (len), fieldDelta(Prev)) #define sockAllocListNextObjs(F, len) sockAllocListDeltaObjs((obj)(F), (len), fieldDelta(Next)) #define sockAllocListParentObjs(F, len) sockAllocListDeltaObjs((obj)(F), (len), fieldDelta(Parent)) static tobj *sockAllocListDeltaObjs(obj F, topaque *len, udat fdelta) { topaque L = 0; tobj *_LW, *LW; obj O = F; while (O) { L++; O = *(obj *)(fdelta + (byte *)O); } if ((_LW = LW = (tobj *)AllocMem(L *= sizeof(tobj)))) { *len = L; O = F; while (O) { *LW++ = O->Id; O = *(obj *)(fdelta + (byte *)O); } } return _LW; } static byte sockStatObj(obj o, tsfield TSF) { obj_entry x = (obj_entry)o; switch (TSF->label) { case TWS_obj_Id: break; case TWS_obj_Prev: x = x->Prev; break; case TWS_obj_Next: x = x->Next; break; case TWS_obj_Parent: x = x->Parent; break; case TWS_obj_Prev_List: TSF->TWS_field_vecV = sockAllocListPrevObjs(x->Prev, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; return ttrue; case TWS_obj_Next_List: TSF->TWS_field_vecV = sockAllocListNextObjs(x->Next, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; return ttrue; case TWS_obj_Parent_List: TSF->TWS_field_vecV = sockAllocListParentObjs(x->Parent, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; return ttrue; default: return tfalse; } TSF->TWS_field_obj = (obj)x; TSF->type = TWS_obj; return ttrue; } static byte sockStatWidget(widget x, tsfield TSF) { switch (TSF->label) { TWScase(widget, FirstW, obj); TWScase(widget, LastW, obj); TWScase(widget, SelectW, obj); TWScase(widget, Left, dat); TWScase(widget, Up, dat); TWScase(widget, Attr, uldat); TWScase(widget, Flags, uldat); TWScase(widget, XWidth, dat); TWScase(widget, YWidth, dat); TWScase(widget, XLogic, ldat); TWScase(widget, YLogic, ldat); TWScase(widget, O_Prev, obj); TWScase(widget, O_Next, obj); TWScase(widget, Owner, obj); TWScase(widget, USE_Fill, tcell); case TWS_widget_ChildrenW_List: TSF->TWS_field_vecV = sockAllocListNextObjs((obj)x->FirstW, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; break; case TWS_widget_O_Prev_List: TSF->TWS_field_vecV = sockAllocListDeltaObjs((obj)x->O_Prev, &TSF->TWS_field_vecL, fieldTypeDelta(widget, O_Prev)); TSF->type = TWS_vec | TWS_tobj; break; case TWS_widget_O_Next_List: TSF->TWS_field_vecV = sockAllocListDeltaObjs((obj)x->O_Next, &TSF->TWS_field_vecL, fieldTypeDelta(widget, O_Next)); TSF->type = TWS_vec | TWS_tobj; break; default: return tfalse; } /* correct for screen scrolling */ if (x->Parent && IS_SCREEN(x->Parent)) { if (TSF->label == TWS_widget_Left) TSF->TWS_field_scalar -= x->Parent->XLogic; else if (TSF->label == TWS_widget_Up) TSF->TWS_field_scalar -= x->Parent->YLogic; } return ttrue; } static byte sockStatGadget(gadget x, tsfield TSF) { switch (TSF->label) { TWScase(gadget, ColText, tcolor); TWScase(gadget, ColSelect, tcolor); TWScase(gadget, ColDisabled, tcolor); TWScase(gadget, ColSelectDisabled, tcolor); TWScase(gadget, Code, udat); TWScase(gadget, Flags, udat); TWScase(gadget, G_Prev, obj); TWScase(gadget, G_Next, obj); TWScase(gadget, Group, obj); case TWS_gadget_G_Prev_List: TSF->TWS_field_vecV = sockAllocListDeltaObjs((obj)x->G_Prev, &TSF->TWS_field_vecL, fieldTypeDelta(gadget, G_Prev)); TSF->type = TWS_vec | TWS_tobj; break; case TWS_gadget_G_Next_List: TSF->TWS_field_vecV = sockAllocListDeltaObjs((obj)x->G_Next, &TSF->TWS_field_vecL, fieldTypeDelta(gadget, G_Next)); TSF->type = TWS_vec | TWS_tobj; break; default: if (G_USE((gadget)x, USETEXT)) { switch (TSF->label) { TWScaseAvecUSE(gadget, T, Text, 0, trune, x->XWidth * x->YWidth); TWScaseAvecUSE(gadget, T, Text, 1, trune, x->XWidth * x->YWidth); TWScaseAvecUSE(gadget, T, Text, 2, trune, x->XWidth * x->YWidth); TWScaseAvecUSE(gadget, T, Text, 3, trune, x->XWidth * x->YWidth); TWScaseAvecUSE(gadget, T, Color, 0, tcolor, x->XWidth * x->YWidth); TWScaseAvecUSE(gadget, T, Color, 1, tcolor, x->XWidth * x->YWidth); TWScaseAvecUSE(gadget, T, Color, 2, tcolor, x->XWidth * x->YWidth); TWScaseAvecUSE(gadget, T, Color, 3, tcolor, x->XWidth * x->YWidth); default: return tfalse; } } else return tfalse; break; } return ttrue; } static byte sockStatWindow(window x, tsfield TSF) { switch (TSF->label) { case TWS_widget_Left: case TWS_widget_Up: case TWS_widget_XWidth: case TWS_widget_YWidth: sockStatWidget((widget)x, TSF); break; TWScase(window, Menu, obj); TWScase(window, NameLen, dat); TWScasevec(window, Name, byte, x->NameLen); TWScasevec(window, ColName, tcolor, x->NameLen); TWScaseAvec(window, BorderPattern, 0, trune, 9); TWScaseAvec(window, BorderPattern, 1, trune, 9); TWScase(window, CurX, ldat); TWScase(window, CurY, ldat); TWScase(window, XstSel, ldat); TWScase(window, YstSel, ldat); TWScase(window, XendSel, ldat); TWScase(window, YendSel, ldat); TWScase(window, MenuItem, obj); TWScase(window, ColGadgets, tcolor); TWScase(window, ColArrows, tcolor); TWScase(window, ColBars, tcolor); TWScase(window, ColTabs, tcolor); TWScase(window, ColBorder, tcolor); TWScase(window, ColText, tcolor); TWScase(window, ColSelect, tcolor); TWScase(window, ColDisabled, tcolor); TWScase(window, ColSelectDisabled, tcolor); TWScase(window, State, uldat); TWScase(window, CursorType, uldat); TWScase(window, MinXWidth, dat); TWScase(window, MinYWidth, dat); TWScase(window, MaxXWidth, dat); TWScase(window, MaxYWidth, dat); TWScase(window, WLogic, ldat); TWScase(window, HLogic, ldat); default: if (W_USE((window)x, USECONTENTS)) { switch (TSF->label) { TWScasevecUSE(window, C, Contents, tcell, x->WLogic * x->HLogic); TWScaseUSE(window, C, HSplit, ldat); default: return tfalse; } } else if (W_USE((window)x, USEROWS)) { switch (TSF->label) { TWScaseUSE(window, R, FirstRow, obj); TWScaseUSE(window, R, LastRow, obj); case TWS_window_USE_R_ChildrenRow_List: TSF->TWS_field_vecV = sockAllocListNextObjs((obj)x->USE.R.FirstRow, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; break; default: return tfalse; } } else return tfalse; break; } /* correct for window borders */ if (!(x->Flags & WINDOWFL_BORDERLESS)) { if (TSF->label == TWS_widget_Left || TSF->label == TWS_widget_Up) TSF->TWS_field_scalar++; else if (TSF->label == TWS_widget_XWidth || TSF->label == TWS_widget_YWidth) TSF->TWS_field_scalar -= 2; } return ttrue; } static byte sockStatScreen(screen x, tsfield TSF) { switch (TSF->label) { TWScase(screen, NameLen, dat); TWScasevec(screen, Name, byte, x->NameLen); default: if (S_USE((gadget)x, USEBG)) { switch (TSF->label) { TWScaseUSE(screen, B, BgWidth, dat); TWScaseUSE(screen, B, BgHeight, dat); TWScasevecUSE(screen, B, Bg, tcell, x->USE.B.BgWidth * x->USE.B.BgHeight); default: return tfalse; } } else return tfalse; break; } return ttrue; } static byte sockStatGroup(ggroup x, tsfield TSF) { switch (TSF->label) { TWScase(ggroup, FirstG, obj); TWScase(ggroup, LastG, obj); TWScase(ggroup, SelectG, obj); case TWS_group_ChildrenG_List: TSF->TWS_field_vecV = sockAllocListDeltaObjs((obj)x->FirstG, &TSF->TWS_field_vecL, fieldTypeDelta(gadget, G_Next)); TSF->type = TWS_vec | TWS_tobj; break; default: return tfalse; } return ttrue; } static byte sockStatRow(row x, tsfield TSF) { switch (TSF->label) { TWScase(row, Code, udat); TWScase(row, Flags, byte); TWScase(row, Len, uldat); TWScasevec(row, Text, trune, x->Len); TWScasevec(row, ColText, tcolor, x->Len); default: return tfalse; } return ttrue; } static byte sockStatMenuItem(menuitem x, tsfield TSF) { switch (TSF->label) { /* missing: */ #if 0 TWS_menuitem_FlagActive;/*TWS_row_Flags*/ TWS_menuitem_NameLen; /*TWS_row_Len*/ TWS_menuitem_Name; /*TWS_row_Text*/ #endif TWScase(menuitem, Window, obj); TWScase(menuitem, Left, dat); TWScase(menuitem, ShortCut, dat); default: return tfalse; } return ttrue; } static byte sockStatMenu(menu x, tsfield TSF) { switch (TSF->label) { TWScase(menu, ColItem, tcolor); TWScase(menu, ColSelect, tcolor); TWScase(menu, ColDisabled, tcolor); TWScase(menu, ColSelectDisabled, tcolor); TWScase(menu, ColShtCut, tcolor); TWScase(menu, ColSelShtCut, tcolor); TWScase(menu, CommonItems, byte); TWScase(menu, FlagDefColInfo, byte); TWScase(menu, FirstI, obj); TWScase(menu, LastI, obj); TWScase(menu, SelectI, obj); case TWS_menu_ChildrenI_List: TSF->TWS_field_vecV = sockAllocListNextObjs((obj)x->FirstI, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; break; default: return tfalse; } return ttrue; } static byte sockStatMsgPort(msgport x, tsfield TSF) { switch (TSF->label) { TWScase(msgport, WakeUp, byte); TWScase(msgport, NameLen, byte); TWScasevec(msgport, Name, byte, x->NameLen); TWScase(msgport, FirstMenu, obj); TWScase(msgport, LastMenu, obj); TWScase(msgport, FirstW, obj); TWScase(msgport, LastW, obj); TWScase(msgport, FirstGroup, obj); TWScase(msgport, LastGroup, obj); TWScase(msgport, FirstMutex, obj); TWScase(msgport, LastMutex, obj); case TWS_msgport_ChildrenMenu_List: TSF->TWS_field_vecV = sockAllocListNextObjs((obj)x->FirstMenu, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; break; case TWS_msgport_ChildrenW_List: TSF->TWS_field_vecV = sockAllocListDeltaObjs((obj)x->FirstW, &TSF->TWS_field_vecL, fieldTypeDelta(widget, O_Next)); TSF->type = TWS_vec | TWS_tobj; break; case TWS_msgport_ChildrenGroup_List: TSF->TWS_field_vecV = sockAllocListNextObjs((obj)x->FirstGroup, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; break; case TWS_msgport_ChildrenMutex_List: TSF->TWS_field_vecV = sockAllocListDeltaObjs((obj)x->FirstMutex, &TSF->TWS_field_vecL, fieldTypeDelta(mutex, O_Next)); TSF->type = TWS_vec | TWS_tobj; break; default: return tfalse; } return ttrue; } static byte sockStatMutex(mutex x, tsfield TSF) { switch (TSF->label) { TWScase(mutex, O_Prev, obj); TWScase(mutex, O_Next, obj); TWScase(mutex, Owner, obj); TWScase(mutex, Perm, byte); TWScase(mutex, NameLen, byte); TWScasevec(mutex, Name, byte, x->NameLen); case TWS_mutex_O_Prev_List: TSF->TWS_field_vecV = sockAllocListDeltaObjs((obj)x->O_Prev, &TSF->TWS_field_vecL, fieldTypeDelta(mutex, O_Prev)); TSF->type = TWS_vec | TWS_tobj; break; case TWS_mutex_O_Next_List: TSF->TWS_field_vecV = sockAllocListDeltaObjs((obj)x->O_Next, &TSF->TWS_field_vecL, fieldTypeDelta(mutex, O_Next)); TSF->type = TWS_vec | TWS_tobj; break; default: return tfalse; } return ttrue; } static byte sockStatAll(all x, tsfield TSF) { switch (TSF->label) { TWScase(all, FirstScreen, obj); TWScase(all, LastScreen, obj); TWScase(all, FirstMsgPort, obj); TWScase(all, LastMsgPort, obj); TWScase(all, FirstMutex, obj); TWScase(all, LastMutex, obj); TWScase(all, DisplayWidth, dat); TWScase(all, DisplayHeight, dat); TWScase(all, BuiltinMenu, obj); TWScase(all, CommonMenu, obj); case TWS_all_ChildrenScreen_List: TSF->TWS_field_vecV = sockAllocListNextObjs((obj)x->FirstScreen, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; break; case TWS_all_ChildrenMsgPort_List: TSF->TWS_field_vecV = sockAllocListNextObjs((obj)x->FirstMsgPort, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; break; case TWS_all_ChildrenMutex_List: TSF->TWS_field_vecV = sockAllocListNextObjs((obj)x->FirstMutex, &TSF->TWS_field_vecL); TSF->type = TWS_vec | TWS_tobj; break; default: return tfalse; } return ttrue; } static void sockStat(obj x, udat n, const byte *in) { udat i, j; tsfield TSF; uldat len, q; byte *data, ok; ok = x && n && (TSF = (tsfield)AllocMem(n * sizeof(*TSF))); if (ok) { for (i = j = 0; j < n; j++) { Pop(in, udat, TSF[i].label); switch (x->Id >> magic_shift) { case widget_magic_id: ok = sockStatWidget((widget)x, TSF + i) || sockStatObj(x, TSF + i); break; case gadget_magic_id: ok = sockStatGadget((gadget)x, TSF + i) || sockStatWidget((widget)x, TSF + i) || sockStatObj(x, TSF + i); break; case window_magic_id: ok = sockStatWindow((window)x, TSF + i) || sockStatWidget((widget)x, TSF + i) || sockStatObj(x, TSF + i); break; case screen_magic_id: ok = sockStatScreen((screen)x, TSF + i) || sockStatWidget((widget)x, TSF + i) || sockStatObj(x, TSF + i); break; case ggroup_magic_id: ok = sockStatGroup((ggroup)x, TSF + i) || sockStatObj(x, TSF + i); break; case menuitem_magic_id: ok = sockStatMenuItem((menuitem)x, TSF + i) || sockStatRow((row)x, TSF + i) || sockStatObj(x, TSF + i); break; case menu_magic_id: ok = sockStatMenu((menu)x, TSF + i) || sockStatObj(x, TSF + i); break; case msgport_magic_id: ok = sockStatMsgPort((msgport)x, TSF + i) || sockStatObj(x, TSF + i); break; case mutex_magic_id: ok = sockStatMutex((mutex)x, TSF + i) || sockStatObj(x, TSF + i); break; case all_magic_id: ok = sockStatAll((all)x, TSF + i) || sockStatObj(x, TSF + i); break; default: ok = tfalse; break; } if (ok) i++; } len = 2 * (j = i) * sizeof(udat) + 2 * sizeof(udat); for (i = 0; i < j; i++) { if (TSF[i].type < TWS_highest) len += TwinMagicData[TSF[i].type]; else if (TSF[i].type == TWS_obj) { TSF[i].TWS_field_tobj = TSF[i].TWS_field_obj ? TSF[i].TWS_field_obj->Id : NOID; len += sizeof(tobj); } else { if (!TSF[i].TWS_field_vecV) TSF[i].TWS_field_vecL = 0; len += TSF[i].TWS_field_vecL + sizeof(uldat); } } ok = sockReply(OK_MAGIC, len, NULL) && (data = RemoteWriteGetQueue(Slot, &q)) && q >= len; if (ok) { i = 0; data += q - len; Push(data, udat, j); Push(data, udat, i); /* pad */ for (; i < j; i++) { Push(data, udat, TSF[i].label); Push(data, udat, TSF[i].type); switch (TSF[i].type) { #if TW_IS_LITTLE_ENDIAN #define Pushcase(type) \ case CAT(TWS_, type): \ Push(data, type, TSF[i].CAT(TWS_field_, type)); \ break #else #define Pushcase(type) \ case CAT(TWS_, type): { \ /* avoid padding problems on big-endian machines */ \ type f = (type)TSF[i].CAT(TWS_field_, type); \ Push(data, type, f); \ } break #endif Pushcase(byte); Pushcase(udat); Pushcase(uldat); Pushcase(tcolor); Pushcase(topaque); Pushcase(tany); Pushcase(trune); Pushcase(tcell); Pushcase(tobj); #undef Pushcase default: Push(data, uldat, TSF[i].TWS_field_vecL); if (TSF[i].TWS_field_vecL) PushV(data, TSF[i].TWS_field_vecL, TSF[i].TWS_field_vecV); break; } if (TSF[i].type == (TWS_vec | TWS_tobj) && TSF[i].TWS_field_vecV) FreeMem(TSF[i].TWS_field_vecV); } } FreeMem(TSF); } if (!ok) sockReply(1, 0, NULL); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/stl_types.h�����������������������������������������������������������������������0000664�0000000�0000000�00000000636�13775351206�0016224�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#ifndef TWIN_STL_TYPES_H #define TWIN_STL_TYPES_H #include <Tw/datatypes.h> #include "stl/string.h" typedef View<tcolor> TColors; typedef View<trune> TRunes; typedef View<tcell> TCells; typedef Span<tcolor> TColorSpan; typedef Span<trune> TRuneSpan; typedef Span<tcell> TCellSpan; typedef Vector<tcolor> TColorVec; typedef Vector<trune> TRuneVec; typedef Vector<tcell> TCellVec; #endif /* TWIN_STL_TYPES_H */ ��������������������������������������������������������������������������������������������������twin-0.9.0/server/tterm.cpp�������������������������������������������������������������������������0000664�0000000�0000000�00000017736�13775351206�0015675�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * tterm.c -- create and manage multiple terminal emulator windows on twin * * Copyright (C) 1999-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "extreg.h" #include "data.h" #include "methods.h" #include "obj/id.h" // Id2Obj() #include "remote.h" #include "pty.h" #include "util.h" #include "common.h" #define COD_QUIT (udat)1 #define COD_SPAWN (udat)3 static menu Term_Menu; static char *default_args[3]; static msgport Term_MsgPort; static void TwinTermH(msgport MsgPort); static void TwinTermIO(int Fd, window Window); static void termShutDown(widget W) { window Window; if (IS_WINDOW(W)) { Window = (window)W; if (Window->RemoteData.Fd != NOFD) close(Window->RemoteData.Fd); UnRegisterWindowFdIO(Window); } } static window newTermWindow(const char *title) { window Window; Window = New(window)(Term_MsgPort, strlen(title), title, NULL, Term_Menu, TCOL(twhite, tblack), LINECURSOR, WINDOW_WANT_KEYS | WINDOW_DRAG | WINDOW_RESIZE | WINDOW_Y_BAR | WINDOW_CLOSE, WINDOWFL_CURSOR_ON | WINDOWFL_USECONTENTS, /*width*/ 80, /*height*/ 25, /*scrollbacklines*/ 1000); if (Window) { Window->SetColors(0x1FF, TCOL(thigh | tyellow, tcyan), TCOL(thigh | tgreen, thigh | tblue), TCOL(twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(thigh | twhite, thigh | tblue), TCOL(twhite, tblack), TCOL(thigh | tblack, thigh | twhite), TCOL(thigh | tblack, tblack), TCOL(tblack, thigh | tblack)); Window->Configure((1 << 2) | (1 << 3), 0, 0, 7, 3, 0, 0); } return Window; } static window OpenTerm(const char *arg0, const char *const *argv) { window Window; const char *title; /* if {arg0, argv} is {NULL, ...} or {"", ... } then start user's shell */ if (arg0 && *arg0 && argv && argv[0]) { if ((title = strrchr(argv[0], '/'))) title++; else title = argv[0]; } else { arg0 = default_args[0]; argv = (const char *const *)default_args + 1; title = "Twin Term"; } if ((Window = newTermWindow(title))) { if (SpawnInWindow(Window, arg0, argv)) { if (RegisterWindowFdIO(Window, TwinTermIO)) { Window->ShutDownHook = termShutDown; Window->Map((widget)All->FirstScreen); return Window; } close(Window->RemoteData.Fd); } Window->Delete(); } return NULL; } static void TwinTermH(msgport MsgPort) { msg Msg; event_any *Event; udat Code /*, Repeat*/; window Win; while ((Msg = Term_MsgPort->FirstMsg)) { Msg->Remove(); Event = &Msg->Event; Win = (window)Event->EventSelection.W; if (Win && !IS_WINDOW(Win)) Win = NULL; if (Msg->Type == msg_widget_key) { Code = Event->EventKeyboard.Code; /* send keypresses */ if (Win) (void)RemoteWindowWriteQueue(Win, Event->EventKeyboard.SeqLen, Event->EventKeyboard.AsciiSeq); } else if (Msg->Type == msg_selection) { TwinSelectionRequest((obj)Term_MsgPort, Win->Id, TwinSelectionGetOwner()); } else if (Msg->Type == msg_selection_notify) { if ((Win = (window)Id2Obj(window_magic_id, Event->EventSelectionNotify.ReqPrivate))) { (void)RemoteWindowWriteQueue(Win, Event->EventSelectionNotify.Len, Event->EventSelectionNotify.Data); } } else if (Msg->Type == msg_widget_mouse) { if (Win) { char buf[10]; byte len = CreateXTermMouseEvent(&Event->EventMouse, 10, buf); /* send mouse movements using xterm mouse protocol */ if (len) (void)RemoteWindowWriteQueue(Win, len, buf); } } else if (Msg->Type == msg_widget_gadget) { if (Win && Event->EventGadget.Code == 0 /* Close Code */) { Win->Delete(); } } else if (Msg->Type == msg_menu_row) { if (Event->EventMenu.Menu == Term_Menu) { Code = Event->EventMenu.Code; switch (Code) { case COD_SPAWN: OpenTerm(NULL, NULL); break; default: break; } } } else if (Msg->Type == msg_user_control) { /* this duplicates the same functionality of builtin.c */ if (Event->EventControl.Code == MSG_CONTROL_OPEN) { char **cmd = TokenizeStringVec(Event->EventControl.Len, Event->EventControl.Data); if (cmd) { OpenTerm(cmd[0], (const char *const *)cmd); FreeStringVec(cmd); } else OpenTerm(NULL, NULL); } } Msg->Delete(); } } static void TwinTermIO(int Fd, window Window) { static char buf[TW_BIGBUFF]; uldat got = 0, chunk = 0; do { /* * TW_BIGBUFF - 1 to avoid silly windows... * linux ttys buffer up to 4095 bytes. */ chunk = read(Fd, buf + got, TW_BIGBUFF - 1 - got); } while (chunk && chunk != (uldat)-1 && (got += chunk) < TW_BIGBUFF - 1); if (got) { Window->TtyWriteCharset(got, buf); } else if (chunk == (uldat)-1 && errno != EINTR && errno != EWOULDBLOCK) { /* something bad happened to our child :( */ Window->Delete(); } } #include "tty.h" static void OverrideMethods(byte enter) { if (enter) { OverrideMethod(widget, KbdFocus, FakeKbdFocus, TtyKbdFocus); OverrideMethod(gadget, KbdFocus, FakeKbdFocus, TtyKbdFocus); OverrideMethod(window, KbdFocus, FakeKbdFocus, TtyKbdFocus); OverrideMethod(window, TtyWriteCharset, FakeWriteCharset, TtyWriteCharset); OverrideMethod(window, TtyWriteUtf8, FakeWriteUtf8, TtyWriteUtf8); OverrideMethod(window, TtyWriteTRune, FakeWriteTRune, TtyWriteTRune); OverrideMethod(window, TtyWriteTCell, FakeWriteTCell, TtyWriteTCell); ForceKbdFocus(); } else { OverrideMethod(window, TtyWriteTCell, TtyWriteTCell, FakeWriteTCell); OverrideMethod(window, TtyWriteTRune, TtyWriteTRune, FakeWriteTRune); OverrideMethod(window, TtyWriteUtf8, TtyWriteUtf8, FakeWriteUtf8); OverrideMethod(window, TtyWriteCharset, TtyWriteCharset, FakeWriteCharset); OverrideMethod(window, KbdFocus, TtyKbdFocus, FakeKbdFocus); OverrideMethod(gadget, KbdFocus, TtyKbdFocus, FakeKbdFocus); OverrideMethod(widget, KbdFocus, TtyKbdFocus, FakeKbdFocus); } } EXTERN_C byte InitModule(module Module) { window Window; const char *shellpath, *shell; if (((shellpath = getenv("SHELL")) || (shellpath = "/bin/sh")) && (default_args[0] = CloneStr(shellpath)) && (default_args[1] = (shell = strrchr(shellpath, '/')) ? CloneStr(shell) : CloneStr(shellpath)) && (Term_MsgPort = New(msgport)(14, "builtin twterm", (uldat)0, (udat)0, (byte)0, TwinTermH)) && (Term_Menu = New(menu)(Term_MsgPort, TCOL(tblack, twhite), TCOL(tblack, tgreen), TCOL(thigh | tblack, twhite), TCOL(thigh | tblack, tblack), TCOL(tred, twhite), TCOL(tred, tgreen), (byte)0)) && Info4Menu(Term_Menu, ROW_ACTIVE, (uldat)19, " Builtin Twin Term ", (const tcolor *)"ptppppppptpppptpppp") && (Window = Win4Menu(Term_Menu)) && Row4Menu(Window, COD_SPAWN, ROW_ACTIVE, 10, " New Term ") && Row4Menu(Window, COD_QUIT, tfalse, 6, " Exit ") && Item4Menu(Term_Menu, Window, ttrue, 6, " File ") && Item4MenuCommon(Term_Menu)) { RegisterExt(Term, Open, OpenTerm); OverrideMethods(ttrue); if (default_args[1][0] == '/') default_args[1][0] = '-'; return ttrue; } if (shellpath) printk("twin: InitTerm(): " SS "\n", Errstr); else printk("twin: environment variable $SHELL not set!\n"); return tfalse; } EXTERN_C void QuitModule(module Module) { UnRegisterExt(Term, Open, OpenTerm); OverrideMethods(tfalse); if (Term_MsgPort) { Term_MsgPort->Delete(); } } ����������������������������������twin-0.9.0/server/tterm.h���������������������������������������������������������������������������0000664�0000000�0000000�00000000650�13775351206�0015325�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_TTERM_H #define TWIN_TTERM_H byte InitTerm(void); extern menu Term_Menu; #endif /* TWIN_TTERM_H */ ����������������������������������������������������������������������������������������twin-0.9.0/server/tty.cpp���������������������������������������������������������������������������0000664�0000000�0000000�00000124547�13775351206�0015361�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * tty.c -- linux terminal emulator * * linux terminal control sequences decoder taken from: * linux/drivers/char/console.c * Copyright (C) 1991, 1992 Linus Torvalds * * all the rest written by twin author: * Copyright (C) 1993-2001 Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "algo.h" #include "alloc.h" #include "data.h" #include "methods.h" #include "draw.h" #include "resize.h" #include "remote.h" #include "hw.h" #include "common.h" #include "tty.h" #include <Tw/Tw.h> #include <Tw/Twstat.h> #include <Tw/Twstat_defs.h> #include <Tutf/Tutf.h> /* * VT102 emulator */ /* static variables, common to most functions */ static window Win; static ttydata *Data; static udat *Flags; /* enable keypad by default */ static udat kbdFlags = TTY_KBDAPPLIC | TTY_AUTOWRAP, defaultFlags = TTY_KBDAPPLIC | TTY_AUTOWRAP; static dat dirty[2][4]; static ldat dirtyS[2]; static byte dirtyN; #define ColText Win->ColText #define DState Data->State #define Effects Data->Effects #define ScrollBack Data->ScrollBack #define SizeX Data->SizeX #define SizeY Data->SizeY #define Top Data->Top #define Bottom Data->Bottom #define X Data->X #define Y Data->Y #define saveX Data->saveX #define saveY Data->saveY #define Base Win->USE.C.Contents #define Start Data->Start #define Split Data->Split #define Pos Data->Pos #define Color Data->Color #define DefColor Data->DefColor #define saveColor Data->saveColor #define Underline Data->Underline #define HalfInten Data->HalfInten #define TabStop Data->TabStop #define Par Data->Par #define nPar Data->nPar #define currG Data->currG #define Charset Win->Charset #define InvCharset Data->InvCharset #define G Data->G #define G0 Data->G0 #define G1 Data->G1 #define saveG Data->saveG #define saveG0 Data->saveG0 #define saveG1 Data->saveG1 #define utf8 Data->utf8 #define utf8_count Data->utf8_count #define utf8_char Data->utf8_char #define newLen Data->newLen #define newMax Data->newMax #define newName Data->newName /* A bitmap for codes <32. A bit of 1 indicates that the code * corresponding to that bit number invokes some special action * (such as cursor movement) and should not be displayed as a * glyph unless the TTY_DISPCTRL mode is explicitly enabled. */ #define CTRL_ACTION 0x0d00ff81 #define CTRL_ALWAYS 0x0800f501 /* Cannot be overridden by TTY_DISPCTRL */ #define CHANGE_BIT(bit, on_off) \ do { \ if (on_off) \ *Flags |= (bit); \ else \ *Flags &= ~(bit); \ } while (0) /* * for better cleannes, dirty_tty() * should be used *before* actually touching Win->Contents[] */ static void dirty_tty(dat x1, dat y1, dat x2, dat y2) { byte i; ldat S[2] = {0, 0}; dat xy[2][4]; if (dirtyN == TW_MAXBYTE || x1 > x2 || x1 >= SizeX || y1 > y2 || y1 >= SizeY) return; x2 = Min2(x2, SizeX - 1); y2 = Min2(y2, SizeY - 1); for (i = 0; i < dirtyN; i++) { xy[i][0] = Min2(dirty[i][0], x1); xy[i][1] = Min2(dirty[i][1], y1); xy[i][2] = Max2(dirty[i][2], x2); xy[i][3] = Max2(dirty[i][3], y2); S[i] += (xy[0][2] - xy[0][0] + 1) * (xy[0][3] - xy[0][1] + 1); S[!i] += dirtyS[i]; } if (dirtyN < 2) S[dirtyN] += (x2 - x1 + 1) * (y2 - y1 + 1); i = dirtyN && S[0] > S[1]; if (S[i] >= SizeX * SizeY * 3 / 4) { dirtyN = TW_MAXBYTE; return; } else if (i < dirtyN) { CopyMem(xy[i], dirty[i], 4 * sizeof(dat)); } else { dirtyN++; dirty[i][0] = x1; dirty[i][1] = y1; dirty[i][2] = x2; dirty[i][3] = y2; } dirtyS[i] = (dirty[i][2] - dirty[i][0] + 1) * (dirty[i][3] - dirty[i][1] + 1); } static void flush_tty(void) { byte doupdate = tfalse; dat i; /* first, draw on screen whatever changed in the window */ if (dirtyN) { if (dirtyN == TW_MAXBYTE) DrawLogicWidget((widget)Win, 0, ScrollBack, SizeX - 1, SizeY - 1 + ScrollBack); else for (i = 0; i < dirtyN; i++) DrawLogicWidget((widget)Win, dirty[i][0], dirty[i][1] + ScrollBack, dirty[i][2], dirty[i][3] + ScrollBack); dirtyN = 0; } /* then update cursor */ if (Win->CurX != (ldat)X || Win->CurY != (ldat)Y + ScrollBack) { Win->CurX = (ldat)X; Win->CurY = (ldat)Y + ScrollBack; Pos = Base + Win->CurX + (Win->CurY + Win->USE.C.HSplit) * SizeX; if (Pos >= Split) Pos -= Split - Base; doupdate = ttrue; } else doupdate = tfalse; if ((doupdate || (*Flags & TTY_UPDATECURSOR)) && ContainsCursor((widget)Win)) UpdateCursor(); *Flags &= ~TTY_UPDATECURSOR; /* finally, keyboard focus configuration: */ if (*Flags & TTY_NEEDREFOCUS) { *Flags &= ~TTY_NEEDREFOCUS; if (Win == (window)All->FirstScreen->FocusW) Win->KbdFocus(); } } /* Note: inverting the screen twice should revert to the original state */ static void invert_screen(void) { tcell a, *p = Start; ldat count; dirty_tty(0, 0, SizeX - 1, SizeY - 1); count = SizeX * SizeY; while (count--) { a = *p; *p++ = (a & ~TCELL(TW_MAXWCOL, 0)) | TCELL(TCOL(TCOLBG(TCOLOR(a)), TCOLFG(TCOLOR(a))), 0); if (p == Split) p = Base; } } static void insert_char(ldat nr) { tcell *p, *q = Pos; p = q + SizeX - X - nr; dirty_tty(X, Y, SizeX - 1, Y); while (--p >= q) p[nr] = *p; while (nr--) *q++ = TCELL(ColText, ' '); *Flags &= ~TTY_NEEDWRAP; } inline void delete_char(ldat nr) { dat i; tcell *p = Pos; i = SizeX - X - nr; dirty_tty(X, Y, SizeX - 1, Y); while (i--) { *p = p[nr]; p++; } while (nr--) *p++ = TCELL(ColText, ' '); *Flags &= ~TTY_NEEDWRAP; } /* * goto_xy() must verify all boundaries, because the arguments * might also be negative. If the given position is out of * bounds, the cursor is placed at the nearest margin. */ static void goto_xy(ldat new_x, ldat new_y) { dat min_y, max_y; if (new_x < 0) X = 0; else if (new_x >= (ldat)SizeX) X = SizeX - 1; else X = (dat)new_x; if (*Flags & TTY_RELORIG) { min_y = Top; max_y = Bottom; } else { min_y = 0; max_y = SizeY; } if (new_y < (ldat)min_y) Y = min_y; else if (new_y >= (ldat)max_y) Y = max_y - 1; else Y = (dat)new_y; *Flags &= ~TTY_NEEDWRAP; /* never flush here, just update Pos */ Pos = Start + X + (ldat)Y * SizeX; if (Pos >= Split) Pos -= Split - Base; } /* for absolute user moves, when TTY_RELORIG (decom) is set */ inline void goto_axy(ldat new_x, ldat new_y) { goto_xy(new_x, *Flags & TTY_RELORIG ? (Top + new_y) : new_y); } /* WARNING: fwd_copy() doesn't call dirty_tty(), you must call it manually! */ static void fwd_copy(tcell *s, tcell *d, ldat len) { ldat l; while (s >= Split) s -= Split - Base; while (d >= Split) d -= Split - Base; while (len > 0) { l = Min2(len, Split - s); l = Min2(l, Split - d); MoveMem(s, d, l * sizeof(tcell)); // s and d can overlap! s += l; d += l; len -= l; if (s == Split) s = Base; if (d == Split) d = Base; } } /* WARNING: rev_copy() doesn't call dirty_tty(), you must call it manually! */ static void rev_copy(tcell *s, tcell *d, ldat len) { ldat l; s += len; d += len; while (s > Split) s -= Split - Base; while (d > Split) d -= Split - Base; while (len > 0) { l = Min2(len, s - Base); l = Min2(l, d - Base); s -= l; d -= l; len -= l; MoveMem(s, d, l * sizeof(tcell)); if (s == Base) s = Split; if (d == Base) d = Split; } } /* WARNING: fill() doesn't call dirty_tty(), you must call it manually! */ static void fill(tcell *s, tcell c, ldat len) { ldat l; while (s >= Split) s -= Split - Base; while (len > 0) { l = Min2(len, Split - s); len -= l; while (l--) *s++ = c; if (s == Split) s = Base; } } static void scrollup(dat t, dat b, dat nr) { tcell *d, *s; byte accel = tfalse; if (t + nr >= b) nr = b - t - 1; if (b > SizeY || t >= b || nr < 1) return; /* try to accelerate this */ if ((widget)Win == All->FirstScreen->FirstW) { accel = ttrue; flush_tty(); } else dirty_tty(0, t, SizeX - 1, b - 1); if (t == 0 && b == SizeY) { /* full screen scrolls. use splitline+scrollback */ Win->USE.C.HSplit += nr; if (Win->USE.C.HSplit >= Win->HLogic) Win->USE.C.HSplit -= Win->HLogic; Start += nr * SizeX; if (Start >= Split) Start -= Split - Base; Pos += nr * SizeX; if (Pos >= Split) Pos -= Split - Base; s = Start + SizeX * (t + nr); d = Start + SizeX * t; } else { /* plain memcpy */ s = Start + SizeX * (t + nr); d = Start + SizeX * t; fwd_copy(s, d, (b - t - nr) * SizeX); } /* clear the last nr lines */ fill(d + (b - t - nr) * SizeX, TCELL(ColText, ' '), nr * SizeX); if (accel) ScrollFirstWindowArea(0, t, SizeX - 1, b - 1, 0, -nr); } static void scrolldown(dat t, dat b, dat nr) { tcell *s; ldat step; byte accel = tfalse; if (t + nr >= b) nr = b - t - 1; if (b > SizeY || t >= b || nr < 1) return; /* try to accelerate this */ if ((widget)Win == All->FirstScreen->FirstW) { accel = ttrue; flush_tty(); } else dirty_tty(0, t, SizeX - 1, b - 1); s = Start + SizeX * t; step = SizeX * nr; rev_copy(s, s + step, (b - t - nr) * SizeX); fill(s, TCELL(ColText, ' '), step); if (accel) ScrollFirstWindowArea(0, t, SizeX - 1, b - 1, 0, nr); } inline void lf(void) { /* don't scroll if above bottom of scrolling region, or * if below scrolling region */ if (Y + 1 == Bottom) scrollup(Top, Bottom, 1); else if (Y < SizeY - 1) { Y++; Pos += SizeX; if (Pos >= Split) Pos -= Split - Base; } *Flags &= ~TTY_NEEDWRAP; } static void ri(void) { /* don't scroll if below top of scrolling region, or * if above scrolling region */ if (Y == Top) scrolldown(Top, Bottom, 1); else if (Y > 0) { Y--; Pos -= SizeX; if (Pos < Base) Pos += Split - Base; } *Flags &= ~TTY_NEEDWRAP; } inline void cr(void) { Pos -= X; X = 0; *Flags &= ~TTY_NEEDWRAP; } inline void bs(void) { if (X) { X--; Pos--; *Flags &= ~TTY_NEEDWRAP; } } inline void del(void) { /* ignored */ } static void csi_J(int vpar) { ldat count; tcell *start; switch (vpar) { case 0: /* erase from cursor to end of display */ dirty_tty(0, Y, SizeX - 1, SizeY - 1); count = (SizeY - Y) * (ldat)SizeX + SizeX - X; start = Pos; break; case 1: /* erase from start to cursor */ dirty_tty(0, 0, SizeX - 1, Y); count = Y * (ldat)SizeX + X; start = Start; break; case 2: /* erase whole display */ dirty_tty(0, 0, SizeX - 1, SizeY - 1); count = (ldat)SizeX * SizeY; start = Start; break; default: return; } fill(start, TCELL(ColText, ' '), count); *Flags &= ~TTY_NEEDWRAP; } static void csi_K(int vpar) { dat count; tcell *start; switch (vpar) { case 0: /* erase from cursor to end of line */ dirty_tty(X, Y, SizeX - 1, Y); count = SizeX - X; start = Pos; break; case 1: /* erase from start of line to cursor */ dirty_tty(0, Y, X, Y); count = X + 1; start = Pos - X; break; case 2: /* erase whole line */ dirty_tty(0, Y, SizeX - 1, Y); count = SizeX; start = Pos - X; break; default: return; } while (count--) *start++ = TCELL(ColText, ' '); *Flags &= ~TTY_NEEDWRAP; } static void csi_X(int vpar) /* erase the following vpar positions */ { /* not vt100? */ tcell *start = Pos; if (!vpar) vpar++; vpar = Min2(vpar, SizeX - X); dirty_tty(X, Y, X + vpar - 1, Y); while (vpar--) *start++ = TCELL(ColText, ' '); *Flags &= ~TTY_NEEDWRAP; } static void update_eff(void) { udat effects = Effects; tcolor fg = TCOLFG(ColText), bg = TCOLBG(ColText); if (effects & EFF_UNDERLINE) fg = TCOLFG(Underline); else if (effects & EFF_HALFINTENS) fg = TCOLFG(HalfInten); if (!!(effects & EFF_REVERSE) != !!(*Flags & TTY_INVERTSCR)) { tcolor tmp = TCOL(bg & ~thigh, fg & ~thigh) | TCOL(fg & thigh, bg & thigh); fg = TCOLFG(tmp); bg = TCOLBG(tmp); } if (effects & EFF_INTENSITY) fg ^= thigh; if (effects & EFF_BLINK) bg ^= thigh; Color = TCOL(fg, bg); } #define setCharset(g) \ do \ switch ((currG = (g))) { \ case VT100GR_MAP: \ Charset = Tutf_VT100GR_to_UTF_32; \ InvCharset = Tutf_UTF_32_to_VT100GR; \ break; \ case LATIN1_MAP: \ Charset = Tutf_ISO8859_1_to_UTF_32; \ InvCharset = Tutf_UTF_32_to_ISO8859_1; \ break; \ case IBMPC_MAP: \ Charset = Tutf_CP437_to_UTF_32; \ InvCharset = Tutf_UTF_32_to_CP437; \ break; \ case USER_MAP: \ Charset = All->Gtranslations[USER_MAP]; \ InvCharset = Tutf_UTF_32_to_ISO8859_1; /* very rough :( */ \ break; \ } \ while (0) inline trune applyG(trune c) { if (c < 0x100) c = Charset[c]; return c; } inline void csi_m(void) { uldat i; udat effects = Effects; tcolor fg = TCOLFG(ColText), bg = TCOLBG(ColText); for (i = 0; i <= nPar; i++) switch (Par[i]) { case 0: /* all attributes off */ fg = TCOLFG(DefColor); bg = TCOLBG(DefColor); effects = 0; break; case 1: effects &= ~EFF_HALFINTENS; effects |= EFF_INTENSITY; break; case 2: effects &= ~EFF_INTENSITY; effects |= EFF_HALFINTENS; break; case 4: effects |= EFF_UNDERLINE; break; case 5: effects |= EFF_BLINK; break; case 7: effects |= EFF_REVERSE; break; case 10: /* ANSI X3.64-1979 (SCO-ish?) * Select primary font, don't display * control chars if defined, don't set * bit 8 on output. */ setCharset(G ? G1 : G0); *Flags &= ~(TTY_DISPCTRL | TTY_SETMETA); break; case 11: /* ANSI X3.64-1979 (SCO-ish?) * Select first alternate font, lets * chars < 32 be displayed as ROM chars. */ setCharset(IBMPC_MAP); *Flags |= TTY_DISPCTRL; *Flags &= ~TTY_SETMETA; break; case 12: /* ANSI X3.64-1979 (SCO-ish?) * Select second alternate font, toggle * high bit before displaying as ROM char. */ setCharset(IBMPC_MAP); *Flags |= TTY_DISPCTRL | TTY_SETMETA; break; case 21: case 22: effects &= ~(EFF_HALFINTENS | EFF_INTENSITY); break; case 24: effects &= ~EFF_UNDERLINE; break; case 25: effects &= ~EFF_BLINK; break; case 27: effects &= ~EFF_REVERSE; break; case 38: /* ANSI X3.64-1979 (SCO-ish?) * Enables underscore, white foreground * with white underscore * (Linux - use default foreground). */ fg = TCOLFG(DefColor); effects |= EFF_UNDERLINE; break; case 39: /* ANSI X3.64-1979 (SCO-ish?) * Disable underline option. * Reset colour to default? It did this * before... */ fg = TCOLFG(DefColor); effects &= ~EFF_UNDERLINE; break; case 49: /* restore default bg */ bg = TCOLBG(DefColor); break; default: if (Par[i] >= 30 && Par[i] <= 37) Par[i] -= 30, fg = TANSI2VGA(Par[i]); else if (Par[i] >= 40 && Par[i] <= 47) Par[i] -= 40, bg = TANSI2VGA(Par[i]); break; } Effects = effects; ColText = TCOL(fg, bg); update_eff(); } static void respond_string(const char *p) { ldat len = strlen(p); /* the remote program may be directly attached to the window */ if (!RemoteWindowWriteQueue(Win, len, p)) { /* or we may need to send a Msg to Win->Owner */ msg Msg; event_keyboard *Event; if ((Msg = New(msg)(msg_widget_key, len))) { /* this is the same code as in KeyboardEvent() in hw.c */ Event = &Msg->Event.EventKeyboard; Event->W = (widget)Win; if (len == 1 && (p[0] == ENTER || p[0] == ESCAPE)) Event->Code = p[0]; else Event->Code = 1; Event->ShiftFlags = (udat)0; Event->SeqLen = len; CopyMem(p, Event->AsciiSeq, len); Event->AsciiSeq[len] = '\0'; /* terminate string with \0 */ SendMsg(Win->Owner, Msg); } } } static void cursor_report(void) { char buf[40]; sprintf(buf, "\033[%d;%dR", Y + (*Flags & TTY_RELORIG ? Top + 1 : 1), X + 1); respond_string(buf); } inline void status_report(void) { respond_string("\033[0n"); /* Terminal ok */ } /* * this is what the terminal answers to a ESC-Z or csi0c query. */ inline void respond_ID(void) { /* VT102ID (returned by linux console) is "\033[?6c" */ /* twin <= 0.3.8 reports "\033[?6;3c" to indicate xterm-style mouse features */ /* twin <= 0.3.10 reports "\033[?6;4c", can also report mouse motion with no buttons pressed */ /* twin >= 0.3.11 reports "\033[?6;5c", also supports utf-8 mode */ respond_string("\033[?6;5c"); } static void set_mode(byte on_off) { uldat i; for (i = 0; i <= nPar; i++) /* DEC private modes set/reset */ if (DState & ESques) switch (Par[i]) { case 1: /* Cursor keys send ^[Ox/^[[x */ CHANGE_BIT(TTY_ALTCURSKEYS, on_off); *Flags |= TTY_NEEDREFOCUS; break; case 3: /* 80/132 mode switch unimplemented */ break; case 5: /* Inverted screen on/off */ CHANGE_BIT(TTY_INVERTSCR, on_off); update_eff(); invert_screen(); break; case 6: /* Origin relative/absolute */ CHANGE_BIT(TTY_RELORIG, on_off); goto_axy(0, 0); break; case 7: /* Autowrap on/off */ CHANGE_BIT(TTY_AUTOWRAP, on_off); break; case 8: /* Autorepeat on/off */ break; case 9: /* new style */ CHANGE_BIT(TTY_REPORTMOUSE, on_off); CHANGE_BIT(TTY_REPORTMOUSE2, tfalse); Win->ChangeField(TWS_window_Attr, WINDOW_WANT_MOUSE_MOTION | WINDOW_WANT_MOUSE, on_off ? WINDOW_WANT_MOUSE : 0); break; case 25: /* Cursor on/off */ Win->ChangeField(TWS_window_Flags, WINDOWFL_CURSOR_ON, on_off ? WINDOWFL_CURSOR_ON : 0); *Flags |= TTY_UPDATECURSOR; break; case 999: /* new style, report also motions */ CHANGE_BIT(TTY_REPORTMOUSE, on_off); CHANGE_BIT(TTY_REPORTMOUSE2, on_off); Win->ChangeField(TWS_window_Attr, WINDOW_WANT_MOUSE | WINDOW_WANT_MOUSE_MOTION, on_off ? WINDOW_WANT_MOUSE | WINDOW_WANT_MOUSE_MOTION : 0); break; case 1000: /* classic xterm style */ CHANGE_BIT(TTY_REPORTMOUSE, tfalse); CHANGE_BIT(TTY_REPORTMOUSE2, on_off); Win->ChangeField(TWS_window_Attr, WINDOW_WANT_MOUSE | WINDOW_WANT_MOUSE_MOTION, on_off ? WINDOW_WANT_MOUSE | WINDOW_WANT_MOUSE_MOTION : 0); break; /* ANSI modes set/reset */ } else switch (Par[i]) { case 3: /* Monitor (display ctrls) */ CHANGE_BIT(TTY_DISPCTRL, on_off); break; case 4: /* Insert Mode on/off */ CHANGE_BIT(TTY_INSERT, on_off); break; case 20: /* Lf, Enter == CrLf/Lf */ CHANGE_BIT(TTY_CRLF, on_off); break; } } static void setterm_command(void) { switch (Par[0]) { case 1: /* set fg color for underline mode */ if (Par[1] <= tmaxcol) { Underline = TCOL(TANSI2VGA(Par[1]), 0); if (Effects & EFF_UNDERLINE) update_eff(); } break; case 2: /* set color for half intensity mode */ if (Par[1] <= tmaxcol) { HalfInten = TCOL(TANSI2VGA(Par[1]), 0); if (Effects & EFF_HALFINTENS) update_eff(); } break; case 8: /* store colors - but not effects - as defaults */ DefColor = ColText; break; case 9: /* set blanking interval */ break; case 10: /* set bell frequency in Hz */ case 11: /* set bell duration in msec */ ConfigureHW(Par[0] == 10 ? HW_BELLPITCH : HW_BELLDURATION, nPar == 0, Par[1]); break; case 12: /* bring specified console to the front */ break; case 13: /* unblank the screen */ break; case 14: /* set vesa powerdown interval */ break; default: break; } } inline void insert_line(ldat nr) { scrolldown(Y, Bottom, nr); *Flags &= ~TTY_NEEDWRAP; } inline void delete_line(ldat nr) { scrollup(Y, Bottom, nr); *Flags &= ~TTY_NEEDWRAP; } inline void csi_at(ldat nr) { if (nr > (ldat)SizeX - X) nr = (ldat)SizeX - X; else if (!nr) nr = 1; insert_char(nr); } inline void csi_L(ldat nr) { if (nr > (ldat)SizeY - Y) nr = (ldat)SizeY - Y; else if (!nr) nr = 1; insert_line(nr); } inline void csi_P(ldat nr) { if (nr > (ldat)SizeX - X) nr = (ldat)SizeX - X; else if (!nr) nr = 1; delete_char(nr); } inline void csi_M(ldat nr) { if (nr > (ldat)SizeY - Y) nr = (ldat)SizeY - Y; else if (!nr) nr = 1; delete_line(nr); } inline void save_current(void) { saveX = X; saveY = Y; saveColor = ColText; saveG = G; saveG0 = G0; saveG1 = G1; } inline void restore_current(void) { goto_xy(saveX, saveY); ColText = saveColor; update_eff(); *Flags &= ~TTY_NEEDWRAP; G = saveG; G0 = saveG0; G1 = saveG1; setCharset(G ? G1 : G0); } static void reset_tty(byte do_clear) { DState = ESnormal; if (*Flags & TTY_INVERTSCR) invert_screen(); *Flags = TTY_AUTOWRAP; Effects = 0; Top = 0; Bottom = SizeY; ColText = Color = DefColor = TCOL(twhite, tblack); Underline = TCOL(thigh | twhite, tblack); HalfInten = TCOL(thigh | tblack, tblack); Win->Flags |= WINDOWFL_CURSOR_ON; Win->CursorType = LINECURSOR; TabStop[0] = 0x01010100; TabStop[1] = TabStop[2] = TabStop[3] = TabStop[4] = 0x01010101; nPar = 0; G = saveG = 0; /* default to latin1 charset */ setCharset(G0 = saveG0 = LATIN1_MAP); G1 = saveG1 = VT100GR_MAP; utf8 = utf8_count = utf8_char = 0; /* bell_pitch = DEFAULT_BELL_PITCH; bell_duration = DEFAULT_BELL_DURATION; kbd_table.ledmode = LED_SHOW_FLAGS; kbd_table.ledflagstate = kbd_table.default_ledflagstate; */ goto_xy(0, 0); save_current(); if (do_clear) csi_J(2); } static byte grow_newtitle(void) { ldat _Max; char *_Name; if (newMax < TW_MAXDAT) { _Max = ((ldat)newMax + (newMax >> 1) + 3) | All->SetUp->MinAllocSize; if (_Max > TW_MAXDAT) _Max = TW_MAXDAT; if ((_Name = (char *)ReAllocMem(newName, _Max))) { newName = _Name; newMax = _Max; return ttrue; } } return tfalse; } static byte insert_newtitle(byte c) { if (newLen < newMax || grow_newtitle()) { newName[newLen++] = c; return ttrue; } return tfalse; } static void set_newtitle(void) { dat _Len; char *_Name; /* try to shrink... */ if (!(_Name = (char *)ReAllocMem(newName, _Len = newLen))) _Name = newName; newLen = newMax = 0; newName = NULL; Win->SetTitle(_Len, _Name); } static void clear_newtitle(void) { if (newName) FreeMem(newName); newName = NULL; newLen = newMax = 0; } static inline void write_ctrl(byte c) { /* * Control characters can be used in the _middle_ * of an escape sequence. */ switch (c) { case 0: return; case 7: if (DState != ESxterm_ignore && DState != ESxterm_title) { BeepHW(); return; } if (DState == ESxterm_title) set_newtitle(); DState = ESnormal; return; case 8: bs(); return; case 9: /* TAB */ Pos -= X; while (X < SizeX - 1) { X++; if (TabStop[X >> 5] & (1 << (X & 31))) break; } Pos += X; return; case 10: case 11: case 12: lf(); if (!(*Flags & TTY_CRLF)) return; /* FALLTHROUGH */ case 13: cr(); return; case 14: G = 1; setCharset(G1); *Flags |= TTY_DISPCTRL; return; case 15: G = 0; setCharset(G0); *Flags &= ~TTY_DISPCTRL; return; case 24: case 26: DState = ESnormal; return; case 27: DState = ESesc; return; case 127: del(); return; case 128 + 27: DState = ESsquare; return; } /* DState machine */ /* mask out ESques for now */ switch (DState & ESany) { case ESesc: switch (c) { case '[': DState = ESsquare; return; case ']': DState = ESnonstd; return; case '%': DState = ESpercent; return; case 'E': cr(); lf(); break; case 'M': ri(); break; case 'D': lf(); break; case 'H': TabStop[X >> 5] |= (1 << (X & 31)); break; case 'Z': respond_ID(); break; case '7': save_current(); break; case '8': restore_current(); break; case '(': DState = ESsetG0; return; case ')': DState = ESsetG1; return; case '#': DState = EShash; return; case 'c': reset_tty(ttrue); break; case '>': /* Numeric keypad */ *Flags &= ~TTY_KBDAPPLIC; *Flags |= TTY_NEEDREFOCUS; break; case '=': /* Appl. keypad */ *Flags |= TTY_KBDAPPLIC | TTY_NEEDREFOCUS; break; } break; case ESnonstd: if (c == 'P') { /* Palette escape sequence */ nPar = 0; memset((byte *)&Par, 0, NPAR * sizeof(ldat)); DState = ESrgb; return; } else if (c == 'R') /* Reset palette */ ResetPaletteHW(); else if (c == '1') { /* may be xterm set window icon title */ DState = ESxterm_ignore_; return; } else if (c == '0' || c == '2' || c == '7') { /* may be xterm "set icon name & window title" or xterm "set window title" or OS X "set * current directory title" */ DState = ESxterm_title_; return; } break; case ESrgb: if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f')) { Par[nPar++] = (c > '9' ? (c & 0xDF) - 'A' + 10 : c - '0'); if (nPar == 7) SetPaletteHW(Par[0], Par[1] * 16 + Par[2], Par[3] * 16 + Par[4], Par[5] * 16 + Par[6]); else return; /* avoid resetting DState */ } break; case ESsquare: Par[0] = nPar = 0; /*memset((byte *)&Par, 0, NPAR * sizeof(ldat));*/ DState = ESgetpars; if (c == '[') { /* Function key */ DState = ESfunckey; return; } if (c == '?') { DState = (ttystate)(DState | ESques); return; } /* FALLTHROUGH */ case ESgetpars: if (c == ';' && nPar < NPAR - 1) { Par[++nPar] = 0; return; } else if (c >= '0' && c <= '9') { Par[nPar] *= 10; Par[nPar] += c - '0'; return; } else DState = (ttystate)(ESgotpars | (DState & ESques)); /* FALLTHROUGH */ case ESgotpars: switch (c) { case 'h': set_mode(1); break; case 'l': set_mode(0); break; case 'c': if (DState & ESques) { if (!Par[0]) Par[1] = Par[2] = Par[0]; else if (nPar == 1) Par[2] = 0; Win->CursorType = Par[0] | (Par[1] << 8) | (Par[2] << 16); *Flags |= TTY_UPDATECURSOR; } case 'm': /* selection complement mask */ break; case 'n': if (!(DState & ESques)) { if (Par[0] == 5) status_report(); else if (Par[0] == 6) cursor_report(); } break; } if (DState & ESques) break; switch (c) { case 'm': csi_m(); break; case 'H': case 'f': if (Par[0]) Par[0]--; if (!nPar) Par[1] = 0; else if (Par[1]) Par[1]--; goto_axy(Par[1], Par[0]); break; case 'J': csi_J(Par[0]); break; case 'K': csi_K(Par[0]); break; case 'G': case '`': if (Par[0]) Par[0]--; goto_xy(Par[0], Y); break; case 'A': if (!Par[0]) Par[0]++; goto_xy(X, Y - Par[0]); break; case 'B': case 'e': if (!Par[0]) Par[0]++; goto_xy(X, Y + Par[0]); break; case 'C': case 'a': if (!Par[0]) Par[0]++; goto_xy(X + Par[0], Y); break; case 'D': if (!Par[0]) Par[0]++; goto_xy(X - Par[0], Y); break; case 'E': if (!Par[0]) Par[0]++; goto_xy(0, Y + Par[0]); break; case 'F': if (!Par[0]) Par[0]++; goto_xy(0, Y - Par[0]); break; case 'd': if (Par[0]) Par[0]--; goto_axy(X, Par[0]); break; case 'L': csi_L(Par[0]); break; case 'M': csi_M(Par[0]); break; case 'P': csi_P(Par[0]); break; case 'c': if (!Par[0]) respond_ID(); break; case 'g': if (!Par[0]) TabStop[X >> 5] &= ~(1 << (X & 31)); else if (Par[0] == 3) TabStop[0] = TabStop[1] = TabStop[2] = TabStop[3] = TabStop[4] = 0; break; case 'q': /* DECLL - but only 3 leds */ /* map 0,1,2,3 to 0,1,2,4 */ #if 0 if (Par[0] < 4) setledstate(kbd_table, (Par[0] < 3) ? Par[0] : 4); #endif break; case 'r': if (!Par[0]) Par[0]++; if (!nPar || !Par[1]) Par[1] = SizeY; /* Minimum allowed region is 2 lines */ if (Par[0] < Par[1] && SizeY >= 0 && Par[1] <= (uldat)SizeY) { Top = Par[0] - 1; Bottom = Par[1]; goto_axy(0, 0); } break; case 's': save_current(); break; case 'u': restore_current(); break; case 'X': csi_X(Par[0]); break; case '@': csi_at(Par[0]); break; case ']': /* setterm functions */ setterm_command(); break; } break; case ESpercent: switch (c) { case '@': /* defined in ISO 2022 */ utf8 = 0; break; case 'G': /* prelim official escape code */ case '8': /* retained for compatibility */ utf8 = 1; break; } break; case ESfunckey: break; case EShash: if (c == '8') { /* DEC screen alignment test */ dirty_tty(0, 0, SizeX - 1, SizeY - 1); fill(Start, TCELL(ColText, 'E'), (ldat)SizeX * SizeY); } break; case ESsetG0: switch (c) { case '0': G0 = VT100GR_MAP; break; case 'B': G0 = LATIN1_MAP; break; case 'U': G0 = IBMPC_MAP; break; case 'K': G0 = USER_MAP; break; default: break; } if (G == 0) setCharset(G0); break; case ESsetG1: switch (c) { case '0': G1 = VT100GR_MAP; break; case 'B': G1 = LATIN1_MAP; break; case 'U': G1 = IBMPC_MAP; break; case 'K': G1 = USER_MAP; break; default: break; } if (G == 1) setCharset(G1); break; case ESxterm_ignore_: if (c == ';') { DState = ESxterm_ignore; return; } break; case ESxterm_ignore: /* ignore, cannot set icon name */ return; case ESxterm_title_: if (c == ';') { DState = ESxterm_title; return; } break; case ESxterm_title: if (c >= ' ' && insert_newtitle(c)) return; break; default: break; } if (newName) clear_newtitle(); DState = ESnormal; } widget TtyKbdFocus(widget newW) { udat newFlags; widget oldW; widget P; screen Screen = newW && (P = newW->Parent) && IS_SCREEN(P) ? (screen)P : All->FirstScreen; if (Screen) { oldW = Screen->FocusW; Screen->FocusW = newW; } else oldW = newW = (widget)0; if (Screen == All->FirstScreen) { if (!newW || !IS_WINDOW(newW) || !W_USE((window)newW, USECONTENTS) || !((window)newW)->USE.C.TtyData) newFlags = defaultFlags; else newFlags = ((window)newW)->USE.C.TtyData->Flags; if ((newFlags ^ kbdFlags) & TTY_KBDAPPLIC) ConfigureHW(HW_KBDAPPLIC, tfalse, newFlags & TTY_KBDAPPLIC); if ((newFlags ^ kbdFlags) & TTY_ALTCURSKEYS) ConfigureHW(HW_ALTCURSKEYS, tfalse, newFlags & TTY_ALTCURSKEYS); kbdFlags = newFlags; } return oldW; } void ForceKbdFocus(void) { kbdFlags = ~defaultFlags; (void)TtyKbdFocus(All->FirstScreen->FocusW); } /* initialize global static data */ static void common(window w) { Win = w; Data = Win->USE.C.TtyData; Flags = &Data->Flags; if (!SizeX || !SizeY) return; /* scroll YLogic to bottom */ if (Win->YLogic < ScrollBack) { if ((widget)Win == All->FirstScreen->FirstW) ScrollFirstWindow(0, ScrollBack - Win->YLogic, ttrue); else { dirty_tty(0, 0, SizeX - 1, SizeY - 1); Win->YLogic = ScrollBack; DrawBorderWindow(w, BORDER_RIGHT); } } /* clear any selection */ if (Win->State & WINDOW_ANYSEL) ClearHilight(Win); } /* * combine (*pc) with partial utf-8 char stored in utf8_char. * return ttrue if the utf-8 char is complete, and can be displayed. */ static tbool combine_utf8(trune *pc) { trune c = *pc; if (utf8_count > 0 && (c & 0xc0) == 0x80) { utf8_char = (utf8_char << 6) | (c & 0x3f); utf8_count--; if (utf8_count == 0) *pc = utf8_char; return (tbool)(utf8_count == 0); } if ((c & 0xe0) == 0xc0) { utf8_count = 1; utf8_char = (c & 0x1f); } else if ((c & 0xf0) == 0xe0) { utf8_count = 2; utf8_char = (c & 0x0f); } else if ((c & 0xf8) == 0xf0) { utf8_count = 3; utf8_char = (c & 0x07); } else utf8_count = 0; return tfalse; } /* this is the main entry point */ byte TtyWriteCharsetOrUtf8(window w, uldat len, const char *chars, bool force_utf8) { trune c; byte printable, utf8_in_use, disp_ctrl, state_normal; if (!w || !W_USE(w, USECONTENTS) || !w->USE.C.TtyData) return tfalse; if (!len || !chars) return ttrue; common(w); while (!(*Flags & TTY_STOPPED) && len) { c = (byte)*chars++; len--; /* If the original code was a control character we only allow a glyph * to be displayed if the code is not normally used (such as for cursor movement) * or if the TTY_DISPCTRL mode has been explicitly enabled. Certain characters * (as given by the CTRL_ALWAYS bitmap) are always displayed as control characters, * as the console would be pretty useless without them; to display an arbitrary * font position use the direct-to-font zone in UTF-8 mode. */ if ((state_normal = (DState == ESnormal))) { disp_ctrl = *Flags & TTY_DISPCTRL; utf8_in_use = utf8 && !disp_ctrl; if (force_utf8 || utf8_in_use) { if (c & 0x80) { if (!combine_utf8(&c)) continue; } else utf8_count = 0; printable = c >= 32 && c != 127 && c != 128 + 27; } else { if (*Flags & TTY_SETMETA) c |= 0x80; printable = (c >= 32 || !(((disp_ctrl ? CTRL_ALWAYS : CTRL_ACTION) >> c) & 1)) && (c != 127 || disp_ctrl) && (c != 128 + 27); if (printable) c = applyG((byte)c); } } else utf8_in_use = printable = tfalse; if (printable && state_normal) { /* Now try to find out how to display it */ if (*Flags & TTY_NEEDWRAP) { cr(); lf(); } if (*Flags & TTY_INSERT) insert_char(1); dirty_tty(X, Y, X, Y); *Pos = TCELL(Color, c); if (X == SizeX - 1) { if (*Flags & TTY_AUTOWRAP) *Flags |= TTY_NEEDWRAP; } else { X++; Pos++; } } else write_ctrl((byte)c); /* don't flush here, it just decreases performance */ /* flush_tty(); */ } flush_tty(); return ttrue; } byte TtyWriteCharset(window w, uldat len, const char *charset_bytes) { return TtyWriteCharsetOrUtf8(w, len, charset_bytes, false); } byte TtyWriteUtf8(window w, uldat len, const char *utf8_bytes) { return TtyWriteCharsetOrUtf8(w, len, utf8_bytes, true); } /* similar to TtyWriteUtf8(), but writes UTF-32 */ byte TtyWriteTRune(window w, uldat len, const trune *runes) { trune c; byte ok; if (!w || !W_USE(w, USECONTENTS) || !w->USE.C.TtyData) return tfalse; if (!len || !runes) return ttrue; common(w); while (!(*Flags & TTY_STOPPED) && len) { c = *runes++; len--; if (c < 0x100) { if (*Flags & TTY_SETMETA) c |= 0x80; /* If the original code < 32, interpret as control character */ ok = (c >= 32 || !(((*Flags & TTY_DISPCTRL ? CTRL_ALWAYS : CTRL_ACTION) >> c) & 1)) && (c != 127 || (*Flags & TTY_DISPCTRL)) && (c != 128 + 27); } else ok = ttrue; if (DState == ESnormal && ok) { /* Now try to find out how to display it */ if (*Flags & TTY_NEEDWRAP) { cr(); lf(); } if (*Flags & TTY_INSERT) insert_char(1); dirty_tty(X, Y, X, Y); *Pos = TCELL(Color, c); if (X == SizeX - 1) { if (*Flags & TTY_AUTOWRAP) *Flags |= TTY_NEEDWRAP; } else { X++; Pos++; } } else write_ctrl((byte)c); } flush_tty(); return ttrue; } /* * this currently wraps at window width so it can write multiple rows at time. * does not move cursor position, nor interacts with wrapglitch. */ byte TtyWriteTCell(window w, dat x, dat y, uldat len, const tcell *text) { ldat left, max, chunk; ldat i; tcell *dst; if (!w || !W_USE(w, USECONTENTS) || !w->USE.C.TtyData) return tfalse; if (!len || !text) return ttrue; common(w); x = Max2(x, 0); x = Min2(x, SizeX - 1); y = Max2(y, 0); y = Min2(y, SizeY - 1); if (len > (uldat)(SizeY - y) * (uldat)SizeX - (uldat)x) len = (uldat)(SizeY - y) * (uldat)SizeX - (uldat)x; left = len; dst = Start + y * SizeX + x; /* scroll YLogic to bottom */ if (Win->YLogic < ScrollBack) { if ((widget)Win == All->FirstScreen->FirstW) ScrollFirstWindow(0, ScrollBack - Win->YLogic, ttrue); else { dirty_tty(0, 0, SizeX - 1, SizeY - 1); Win->YLogic = ScrollBack; DrawBorderWindow(w, BORDER_RIGHT); } } /* clear any selection */ if (Win->State & WINDOW_ANYSEL) ClearHilight(Win); do { if (dst >= Split) dst -= Split - Base; max = Split - dst; chunk = Min2(left, max); for (i = chunk; i; i--) { *dst++ = *text++; } } while ((left -= chunk) > 0); if (len > (uldat)(SizeX - x)) dirty_tty(0, y, SizeX - 1, y + (x + len - 1) / SizeX); else dirty_tty(x, y, x + len - 1, y); flush_tty(); return ttrue; } #if 0 /* * Turn the Scroll-Lock LED on when the tty is stopped */ static void con_stop(struct tty_struct *tty) { int console_num; if (!tty) return; console_num = MINOR(tty->device) - (tty->driver.minor_start); if (!vc_cons_allocated(console_num)) return; set_vc_kbd_led(kbd_table + console_num, VC_SCROLLOCK); set_leds(); } /* * Turn the Scroll-Lock LED off when the console is started */ static void con_start(struct tty_struct *tty) { int console_num; if (!tty) return; console_num = MINOR(tty->device) - (tty->driver.minor_start); if (!vc_cons_allocated(console_num)) return; clr_vc_kbd_led(kbd_table + console_num, VC_SCROLLOCK); set_leds(); } static void clear_buffer_attributes(window w) { unsigned short *p = (unsigned short *) origin; int count = screenbuf_size/2; int mask = hi_font_mask | 0xff; for (; count > 0; count--, p++) { scr_writew((scr_readw(p)&mask) | (video_erase_char&~mask), p); } } /* * Palettes */ void set_palette(window w) { if (vcmode != KD_GRAPHICS) sw->con_set_palette(vc_cons.d, color_table); } static int set_get_cmap(unsigned char *arg, int set) { int i, j, k; for (i = 0; i < 16; i++) if (set) { get_user(default_red[i], arg++); get_user(default_grn[i], arg++); get_user(default_blu[i], arg++); } else { put_user(default_red[i], arg++); put_user(default_grn[i], arg++); put_user(default_blu[i], arg++); } if (set) { for (i = 0; i < MAX_NR_CONSOLES; i++) if (vc_cons_allocated(i)) { for (j = k = 0; j < 16; j++) { vc_cons[i].d->vc_palette[k++] = default_red[j]; vc_cons[i].d->vc_palette[k++] = default_grn[j]; vc_cons[i].d->vc_palette[k++] = default_blu[j]; } set_palette(i); } } return 0; } /* * Load palette into the DAC registers. arg points to a colour * map, 3 bytes per colour, 16 colours, range from 0 to 255. */ int con_set_cmap(unsigned char *arg) { return set_get_cmap (arg,1); } int con_get_cmap(unsigned char *arg) { return set_get_cmap (arg,0); } void reset_palette(window w) { int j, k; for (j=k=0; j<16; j++) { palette[k++] = default_red[j]; palette[k++] = default_grn[j]; palette[k++] = default_blu[j]; } set_palette(currcons); } #endif /* 0 */ ���������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/tty.h�����������������������������������������������������������������������������0000664�0000000�0000000�00000005352�13775351206�0015016�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_TTY_H #define TWIN_TTY_H #include <Tw/datatypes.h> /* ttydata->Flags */ typedef enum e_tty_flag { TTY_STOPPED = 0x0001, TTY_AUTOWRAP = 0x0002, TTY_NEEDWRAP = 0x0004, TTY_DISPCTRL = 0x0008, TTY_CRLF = 0x0010, TTY_KBDAPPLIC = 0x0020, TTY_INSERT = 0x0040, TTY_REVERSECOL = 0x0080, TTY_INVERTSCR = 0x0100, TTY_ALTCURSKEYS = 0x0200, TTY_RELORIG = 0x0400, TTY_SETMETA = 0x0800, TTY_UPDATECURSOR = 0x1000, TTY_REPORTMOUSE = 0x2000, TTY_REPORTMOUSE2 = 0x4000, TTY_NEEDREFOCUS = 0x8000, } tty_flag; /* ttydata->Effects */ typedef enum e_tty_effect { EFF_INTENSITY = 0x0001, EFF_HALFINTENS = 0x0002, EFF_UNDERLINE = 0x0004, EFF_BLINK = 0x0008, EFF_REVERSE = 0x0010, } tty_effect; /* ttydata->nPar */ typedef enum e_tty_par { NPAR = 16, } tty_par; /* ttydata->*G? */ typedef enum e_tty_charmap { VT100GR_MAP = 0, LATIN1_MAP = 1, IBMPC_MAP = 2, USER_MAP = 3, } tty_charmap; typedef enum e_ttystate { ESnormal = 0, ESesc, ESsquare, ESgetpars, ESgotpars, ESfunckey, EShash, ESsetG0, ESsetG1, ESpercent, ESignore, ESnonstd, ESrgb, ESxterm_ignore_, ESxterm_ignore, ESxterm_title_, ESxterm_title, ESany = 0xFF, ESques = 0x100 } ttystate; struct s_ttydata { ttystate State; udat Flags; udat Effects; dat ScrollBack; /* Number of scrollback lines */ dat SizeX, SizeY; /* Terminal size */ dat Top, Bottom; /* Y scrolling region. default 0...SizeY-1 */ dat X, Y; /* Cursor position in visible buffer */ dat saveX, saveY; tcell *Start, *Split; /* Start and Split of visible buffer */ /* AfterSplit is just Window->Contents */ tcell *Pos; /* Pointer to cursor position in buffer */ tcolor Color, DefColor, saveColor, Underline, HalfInten; uldat TabStop[5]; uldat nPar, Par[NPAR]; byte currG, G, G0, G1, saveG, saveG0, saveG1; byte utf8, utf8_count; trune utf8_char; trune (*InvCharset)(trune); /* pointer to trune -> byte translation function */ dat newLen, newMax; char *newName; /* buffer for xterm set window title escape seq */ }; byte TtyWriteCharset(window Window, uldat Len, const char *charset_bytes); byte TtyWriteUtf8(window Window, uldat Len, const char *utf8_bytes); byte TtyWriteTRune(window Window, uldat Len, const trune *runes); byte TtyWriteTCell(window Window, dat x, dat y, uldat Len, const tcell *cells); widget TtyKbdFocus(widget Window); void ForceKbdFocus(void); #endif /* TWIN_TTY_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/twin.h����������������������������������������������������������������������������0000664�0000000�0000000�00000005361�13775351206�0015157�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * twin.h -- main include for all twin-related data types, functions and macros * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_H #define TWIN_H #include "twautoconf.h" /* for TW_HAVE_* macros */ #include "twconfig.h" /* for CONF_* macros */ #include "obj/fwd.h" /* pull in "obj" field in <Tw/stattypes.h> */ #define obj obj #include "compiler.h" #include "version.h" #include "osincludes.h" #include <Tw/Twtypes.h> #include <Tw/Tw_defs.h> #include <Tw/missing.h> #include <Tw/mouse.h> /***************/ #include "tty.h" // USER_MAP #include "obj/magic.h" #include "obj/obj.h" #include "obj/widget.h" #include "obj/gadget.h" #include "obj/window.h" #include "obj/screen.h" #include "obj/group.h" #include "obj/row.h" #include "obj/menuitem.h" #include "obj/menu.h" #include "obj/event.h" #include "obj/msg.h" #include "obj/msgport.h" #include "obj/mutex.h" #include "obj/module.h" #include "obj/display_hw.h" #include "obj/all.h" #include "obj/fn.h" enum s_fd { NOFD = -1, /* use for every FD that needs a special RemoteFlush() * instead of a plain write() and set PrivateFlush as needed */ specFD = -2, }; #ifndef NOPID /* some OSes (Solaris for one) already define NOPID */ #define NOPID ((pid_t)0) #endif #define NOSLOT TW_MAXULDAT #define IS_OBJ(type, O) (((O)->Id >> magic_shift) == type##_magic_id) #define IS_WIDGET(O) \ (IS_OBJ(widget, O) || IS_OBJ(gadget, O) || IS_OBJ(window, O) || IS_OBJ(screen, O)) #define IS_GADGET(O) IS_OBJ(gadget, O) #define IS_WINDOW(O) IS_OBJ(window, O) #define IS_SCREEN(O) IS_OBJ(screen, O) #define IS_ROW(O) (IS_OBJ(row, O) || IS_OBJ(menuitem, O)) #define IS_MENUITEM(O) IS_OBJ(menuitem, O) #define IS_MENU(O) IS_OBJ(menu, O) #define IS_MSGPORT(O) IS_OBJ(msgport, O) #define IS_MUTEX(O) IS_OBJ(mutex, O) #define IS_MSG(O) IS_OBJ(msg, O) #define IS_MODULE(O) IS_OBJ(module, O) #define IS_DISPLAY_HW(O) IS_OBJ(display_hw, O) #define IS_ALL(O) IS_OBJ(all, O) /************** Keys **************/ #define KBD_SHIFT_FL (byte)0x1 #define KBD_CTRL_FL (byte)0x2 #define KBD_ALT_FL (byte)0x4 #define KBD_CAPS_LOCK (byte)0x8 #define KBD_NUM_LOCK (byte)0x10 #define ENTER ((udat)'\r') #define ESCAPE ((udat)'\033') /**********************************/ typedef enum { none, sgidtty, suidroot } e_privilege; #define DropPrivileges() (setegid(getgid()), seteuid(getuid())) #define GainRootPrivileges() seteuid(0) #define GainGroupPrivileges(g) setegid(g) #endif /* TWIN_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/twstart���������������������������������������������������������������������������0000775�0000000�0000000�00000003717�13775351206�0015466�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/bash # Copyright (C) 2000,2017 by Massimiliano Ghilardi # # This program 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 2 of the License, or # (at your option) any later version. # # FIRSTARG=1 MODE=normal DPY= #echo "twstart: $# arguments [$@]" for ARG do #echo "twstart: now parsing [$ARG]" if [ "$FIRSTARG" = 1 ]; then set -- FIRSTARG=0 fi if [ "$MODE" = normal ]; then case "$ARG" in -h|--help|-help ) echo "Usage: twstart [OPTIONS] Attach a running twin server to a display or start a new server. If a twin server is found, \`twdisplay' is used to attach it to a display, else a new twin server is started. Currently known options: -h, --help show this help and exit --twin@<TWDISPLAY> specify server to contact instead of autodetecting it <TWDISPLAY> shortcut for --twin@<TWDISPLAY> -- end of options: pass further args to twin or twdisplay --<OPTION> other options are passed verbatim to twin or twdisplay " exit 0 ;; -- ) # end of twstart options, pass the rest to twin or twdisplay MODE=literal ;; --twin@* ) DPY="${ARG:7}"; ;; -twin@* ) DPY="${ARG:6}"; ;; --*|-* ) # accumulate current argument set -- "$@" "$ARG" ;; *:[0-9a-fA-F]* ) DPY="$ARG"; ;; * ) echo "twstart: unknown option \`$ARG\' try \`twstart --help\' for usage summary." exit 1 ;; esac else # accumulate current argument set -- "$@" "$ARG" fi #echo "twstart: accumulated arguments [$@]" done if [ "$DPY" ]; then DPY="`twfindtwin \"$DPY\"`" else DPY="`twfindtwin`" fi if [ "$DPY" ]; then echo "twstart: detected twin running on $DPY" exec twdisplay --twin@"$DPY" "$@" else exec twin "$@" fi �������������������������������������������������twin-0.9.0/server/util.cpp��������������������������������������������������������������������������0000664�0000000�0000000�00000073643�13775351206�0015516�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * util.c -- utility functions * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #ifdef TW_HAVE_PWD_H #include <pwd.h> #endif #ifdef TW_HAVE_UNISTD_H #include <unistd.h> #endif #ifdef TW_HAVE_SIGNAL_H #include <signal.h> #endif #ifdef TW_HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif #ifdef TW_HAVE_SYS_STAT_H #include <sys/stat.h> #endif #ifdef TW_HAVE_SYS_TYPES_H #include <sys/types.h> #endif #include "algo.h" #include "alloc.h" #include "common.h" #include "data.h" #include "extreg.h" #include "methods.h" #include "main.h" #include "draw.h" #include "remote.h" #include "resize.h" #include "printk.h" #include "privilege.h" #include "util.h" #include "stl/vector.h" #include "hw.h" #include <Tw/Twkeys.h> #include <Tutf/Tutf.h> void NormalizeTime(timevalue *Time) { if (Time->Fraction >= FullSEC || Time->Fraction < 0) { tany delta = Time->Fraction / FullSEC; Time->Seconds += delta; Time->Fraction -= delta * FullSEC; } } timevalue *InstantNow(timevalue *Now) { #if defined(TW_HAVE_GETTIMEOFDAY) struct timeval sysNow; gettimeofday(&sysNow, NULL); Now->Seconds = sysNow.tv_sec; Now->Fraction = sysNow.tv_usec MicroSECs; #elif defined(TW_HAVE_FTIME) timeb sysNow; ftime(&sysNow); Now->Seconds = sysNow.time; Now->Fraction = sysNow.millitm MilliSECs; #else Now->Seconds = time(NULL); Now->Fraction = 0; #endif return Now; } timevalue *IncrTime(timevalue *Time, timevalue *Incr) { NormalizeTime(Time); NormalizeTime(Incr); Time->Seconds += Incr->Seconds; if ((Time->Fraction += Incr->Fraction) >= FullSEC) { Time->Seconds++; Time->Fraction -= FullSEC; } return Time; } timevalue *DecrTime(timevalue *Time, timevalue *Decr) { NormalizeTime(Time); NormalizeTime(Decr); Time->Seconds -= Decr->Seconds; if (Time->Fraction >= Decr->Fraction) Time->Fraction -= Decr->Fraction; else { Time->Seconds--; Time->Fraction += (FullSEC - Decr->Fraction); } return Time; } timevalue *SumTime(timevalue *Result, timevalue *Time, timevalue *Incr) { CopyMem(Time, Result, sizeof(timevalue)); return IncrTime(Result, Incr); } timevalue *SubTime(timevalue *Result, timevalue *Time, timevalue *Decr) { CopyMem(Time, Result, sizeof(timevalue)); return DecrTime(Result, Decr); } dat CmpTime(timevalue *T1, timevalue *T2) { NormalizeTime(T1); NormalizeTime(T2); if (T1->Seconds > T2->Seconds) return (dat)1; if (T1->Seconds < T2->Seconds) return (dat)-1; if (T1->Fraction > T2->Fraction) return (dat)1; if (T1->Fraction < T2->Fraction) return (dat)-1; return (dat)0; } static dat CmpCallTime(msgport m1, msgport m2) { if ((!m1->FirstMsg) != (!m2->FirstMsg)) /* one of the two doesn't have msgs */ return m1->FirstMsg ? (dat)-1 : (dat)1; if ((!m1->WakeUp) != (!m2->WakeUp)) /* one doesn't need to be called */ return m1->WakeUp ? (dat)-1 : (dat)1; if ((!m1->WakeUp) && (!m2->WakeUp)) return 0; return CmpTime(&m1->CallTime, &m2->CallTime); } byte Minimum(byte MaxIndex, const ldat *Array) { byte i, MinIndex; ldat Temp; if (!MaxIndex) return 0xFF; Temp = Array[0]; MinIndex = 0; for (i = 1; i < MaxIndex; i++) { if (Array[i] < Temp) { Temp = Array[i]; MinIndex = i; } } return MinIndex; } /* byte HexDigitToNum(byte HexDigit, byte *Error) { if (HexDigit>='0' && HexDigit<='9') return HexDigit - (byte)'0'; if (HexDigit>='A' && HexDigit<='F') return (byte)10 + HexDigit - (byte)'A'; if (HexDigit>='a' && HexDigit<='f') return (byte)10 + HexDigit - (byte)'a'; *Error = ttrue; return (byte)0; } uldat HexStrToNum(byte *StringHex) { byte Len, Error = tfalse; uldat Value=(uldat)0; Len=(byte)strlen(StringHex); if (Len>(byte)8) return (uldat)0; do { Len--; Value |= (uldat)HexDigitToNum(StringHex[Len], &Error) << (Len << 2); } while (!Error && Len>(byte)0); return Error ? (uldat)0 : Value; } */ /* adapted from similar code in bdflush */ uldat ComputeUsableLenArgv(char *const *argv) { char *ptr; uldat count; ptr = argv[0] + strlen(argv[0]); for (count = 1; argv[count]; count++) { if (argv[count] == ptr + 1) ptr += strlen(ptr + 1) + 1; } return ptr - argv[0]; } void SetArgv0(char *const *argv, uldat argv_usable_len, const char *src) { uldat len = strlen(src); if (len + 1 < argv_usable_len) { CopyMem(src, argv[0], len); memset(argv[0] + len, '\0', argv_usable_len - len); } else CopyMem(src, argv[0], argv_usable_len); } /* * move a msgport to the right place in an already sorted list, * ordering by CallTime */ void SortMsgPortByCallTime(msgport Port) { msgport other; if ((other = Port->Next) && CmpCallTime(Port, other) > 0) { Port->Remove(); do { other = other->Next; } while (other && CmpCallTime(Port, other) > 0); if (other) InsertMiddle(MsgPort, Port, All, other->Prev, other); else InsertLast(MsgPort, Port, All); } else if ((other = Port->Prev) && CmpCallTime(Port, other) < 0) { Port->Remove(); do { other = other->Prev; } while (other && CmpCallTime(Port, other) < 0); if (other) InsertMiddle(MsgPort, Port, All, other, other->Next); else InsertFirst(MsgPort, Port, All); } } /* * sort the msgport list by growing CallTime * * we use a bubble sort... no need to optimize to death this */ void SortAllMsgPortsByCallTime(void) { msgport Max, This, Port = All->FirstMsgPort; msgport Start, End; Start = End = (msgport)0; while (Port) { Max = This = Port; while ((This = This->Next)) { if (CmpCallTime(This, Max) > 0) Max = This; } if (Max == Port) /* careful, we are mucking the list under our feet */ Port = Port->Next; Max->Remove(); /* * HACK : we create a parentless list * backward, from End adding ->Prev until Start */ Max->Next = Start; Max->All = All; if (Start) Start->Prev = Max; Start = Max; if (!End) End = Max; } All->FirstMsgPort = Start; All->LastMsgPort = End; } byte SendControlMsg(msgport MsgPort, udat Code, udat Len, const char *Data) { msg Msg; event_control *Event; if (MsgPort && (Msg = New(msg)(msg_control, Len))) { Event = &Msg->Event.EventControl; Event->Code = Code; Event->Len = Len; CopyMem(Data, Event->Data, Len); SendMsg(MsgPort, Msg); return ttrue; } return tfalse; } byte SelectionStore(uldat magic, const char mime[MAX_MIMELEN], Chars data) { selection *Sel = All->Selection; if (mime) { CopyMem(mime, Sel->MIME, MAX_MIMELEN); } else { memset(Sel->MIME, '\0', MAX_MIMELEN); } Sel->Owner = NULL; Sel->Magic = magic; Sel->Data.clear(); return Sel->Data.append(data); } byte SelectionAppend(Chars data) { return All->Selection->Data.append(data); } byte SelectionAppendRune(trune rune) { return All->Selection->Data.append(Utf8(rune)); } byte SelectionAppendRunes(TRunes runes) { return All->Selection->Data.append(runes); } #define _SEL_MAGIC SEL_UTF8MAGIC #define _SelAppendNL() SelectionAppend(Chars("\n", 1)); class Appender { public: Appender() : spaces(0) { } bool rune(trune rune) { if (rune == ' ') { spaces++; return true; } return flush() && SelectionAppendRune(rune); } bool nl() { const uldat n = spaces; spaces = 0; switch (n) { case 0: return true; case 1: return SelectionAppend(Chars(" ", 1)); default: return _SelAppendNL(); } } bool flush() { const Chars buf(" ", 1); for (; spaces; spaces--) { if (!SelectionAppend(buf)) { return false; } } return true; } private: uldat spaces; }; bool SetSelectionFromWindow(window w) { ldat y; uldat slen, i, spaces = 0; bool ok = true, w_useC = W_USE(w, USECONTENTS); if (!(w->State & WINDOW_DO_SEL)) { return ok; } if (!(w->State & WINDOW_ANYSEL) || w->YstSel > w->YendSel || (w->YstSel == w->YendSel && w->XstSel > w->XendSel)) { ok = SelectionStore(_SEL_MAGIC, NULL, Chars()); if (ok) { NeedHW |= NEEDSelectionExport; } return ok; } /* normalize negative coords */ if (w->XstSel < 0) { w->XstSel = 0; } else if (w_useC && w->XstSel >= w->WLogic) { w->XstSel = 0; w->YstSel++; } if (w->YstSel < w->YLogic) { w->YstSel = w->YLogic; w->XstSel = 0; } else if (w->YstSel >= w->HLogic) { w->YstSel = w->HLogic - 1; w->XstSel = w_useC ? w->WLogic - 1 : TW_MAXLDAT; } if (w_useC) { Appender appender; const tcell *cells; /* normalize negative coords */ if (w->XendSel < 0) { w->XendSel = w->WLogic - 1; w->YendSel--; } else if (w->XendSel >= w->WLogic) w->XendSel = w->WLogic - 1; if (w->YendSel < w->YLogic) { w->YendSel = w->YLogic; w->XendSel = 0; } else if (w->YendSel >= w->HLogic) { w->YendSel = w->HLogic - 1; w->XendSel = w->WLogic - 1; } slen = w->WLogic; cells = w->USE.C.Contents + (w->YstSel + w->USE.C.HSplit) * slen; while (cells >= w->USE.C.TtyData->Split) { cells -= w->USE.C.TtyData->Split - w->USE.C.Contents; } do { y = w->YstSel; if (y < w->YendSel) { slen -= w->XstSel; } else { slen = w->XendSel - w->XstSel + 1; } cells += w->XstSel; ok = SelectionStore(_SEL_MAGIC, NULL, Chars()); for (i = slen; ok && i--; cells++) { ok = appender.rune(TRUNE(*cells)); } if (!ok) { break; } if (cells >= w->USE.C.TtyData->Split) { cells -= w->USE.C.TtyData->Split - w->USE.C.Contents; } slen = w->WLogic; for (y = w->YstSel + 1; ok && y < w->YendSel; y++) { appender.nl(); if (cells >= w->USE.C.TtyData->Split) { cells -= w->USE.C.TtyData->Split - w->USE.C.Contents; } for (i = slen; ok && i--; cells++) { ok = appender.rune(TRUNE(*cells)); } } if (!ok) { break; } if (w->YendSel > w->YstSel) { if (cells >= w->USE.C.TtyData->Split) { cells -= w->USE.C.TtyData->Split - w->USE.C.Contents; } appender.nl(); for (i = slen = w->XendSel + 1; ok && i--; cells++) { ok = appender.rune(TRUNE(*cells)); } } if (ok) { ok = appender.flush(); if (ok) { NeedHW |= NEEDSelectionExport; } } } while (false); return ok; } else if (!W_USE(w, USEROWS)) { return false; } ok = SelectionStore(_SEL_MAGIC, NULL, Chars()); row r; /* Gap not supported! */ y = w->YstSel; r = w->FindRow(y); if (r && r->Text) { if (y < w->YendSel) { slen = r->Len - w->XstSel; } else { slen = Min2(r->Len, (uldat)w->XendSel + 1) - Min2(r->Len, (uldat)w->XstSel); } const trune *runes = r->Text + Min2(r->Len, (uldat)w->XstSel); ok = ok && SelectionAppendRunes(TRunes(runes, slen)); } if (y < w->YendSel || !r || !r->Text || r->Len <= (uldat)w->XendSel) { ok = ok && _SelAppendNL(); } for (y = w->YstSel + 1; ok && y < w->YendSel; y++) { if ((r = w->FindRow(y)) && r->Text) { ok = ok && SelectionAppendRunes(TRunes(r->Text, r->Len)); } ok = ok && _SelAppendNL(); } if (w->YendSel > w->YstSel) { if (w->XendSel >= 0 && (r = w->FindRow(w->YendSel)) && r->Text) { slen = Min2(r->Len, (uldat)w->XendSel + 1); ok = ok && SelectionAppendRunes(TRunes(r->Text, slen)); } if (!r || !r->Text || r->Len <= (uldat)w->XendSel) { ok = ok && _SelAppendNL(); } } if (ok) { NeedHW |= NEEDSelectionExport; } return ok; } byte CreateXTermMouseEvent(event_mouse *Event, byte buflen, char *buf) { window w; udat Flags; udat Code = Event->Code; dat x = Event->X, y = Event->Y; byte len = 0; if (!(w = (window)Event->W) || !IS_WINDOW(w) || !W_USE(w, USECONTENTS) || !w->USE.C.TtyData) return len; Flags = w->USE.C.TtyData->Flags; if (Flags & TTY_REPORTMOUSE) { /* new-style reporting */ /* when both TTY_REPORTMOUSE|TTY_REPORTMOUSE2 are set, also report motion */ if (buflen < 9 || (Code == MOVE_MOUSE && !(Flags & TTY_REPORTMOUSE2))) /* buffer too small, or nothing to report */ return len; /* report also button just pressed as down */ if (isPRESS(Code)) Code |= HOLD_CODE(PRESS_N(Code)); CopyMem("\033[5M", buf, 4); buf[4] = ' ' + ((Code & HOLD_ANY) >> HOLD_BITSHIFT); buf[5] = '!' + (x & 0x7f); buf[6] = '!' + ((x >> 7) & 0x7f); buf[7] = '!' + (y & 0x7f); buf[8] = '!' + ((y >> 7) & 0x7f); len = 9; } else if (Flags & TTY_REPORTMOUSE2) { /* classic xterm-style reporting */ if (buflen < 6) /* buffer too small! */ return len; CopyMem("\033[M", buf, 3); if (isSINGLE_PRESS(Code)) switch (Code & PRESS_ANY) { case PRESS_LEFT: buf[3] = ' '; break; case PRESS_MIDDLE: buf[3] = '!'; break; case PRESS_RIGHT: buf[3] = '\"'; break; /* WHEEL_REV and WHEEL_FWD supported only at release */ } else if (isRELEASE(Code)) { switch (Code & RELEASE_ANY) { #ifdef HOLD_WHEEL_REV case RELEASE_WHEEL_REV: buf[3] = '`'; break; #endif #ifdef HOLD_WHEEL_FWD case RELEASE_WHEEL_FWD: buf[3] = 'a'; break; #endif default: buf[3] = '#'; break; } } else return len; buf[4] = '!' + x; buf[5] = '!' + y; len = 6; } return len; } void ResetBorderPattern(void) { msgport MsgP; widget w; for (MsgP = All->FirstMsgPort; MsgP; MsgP = MsgP->Next) { for (w = MsgP->FirstW; w; w = w->O_Next) { if (IS_WINDOW(w)) ((window)w)->BorderPattern[0] = ((window)w)->BorderPattern[1] = NULL; } } } static gadget _PrevGadget(gadget G) { while (G->Prev) { G = (gadget)G->Prev; if (IS_GADGET(G)) return (gadget)G; } return (gadget)G->Prev; } static gadget _NextGadget(gadget G) { while (G->Next) { G = (gadget)G->Next; if (IS_GADGET(G)) return (gadget)G; } return (gadget)G->Next; } /* handle common keyboard actions like cursor moving and button navigation */ void FallBackKeyAction(window w, event_keyboard *EventK) { ldat NumRow, OldNumRow; gadget G, H; if ((G = (gadget)w->SelectW) && IS_GADGET(G)) switch (EventK->Code) { case TW_Escape: UnPressGadget(G, tfalse); w->SelectW = (widget)0; break; case TW_Return: UnPressGadget(G, ttrue); PressGadget(G); break; case TW_Up: case TW_Left: if ((H = _PrevGadget(G))) { if (!(G->Flags & GADGETFL_TOGGLE)) UnPressGadget(G, tfalse); w->SelectW = (widget)H; PressGadget(H); } break; case TW_Down: case TW_Right: case TW_Tab: if ((H = _NextGadget(G))) { if (!(G->Flags & GADGETFL_TOGGLE)) UnPressGadget(G, tfalse); w->SelectW = (widget)H; PressGadget(H); } break; default: break; } else if ((G = (gadget)w->FirstW) && IS_GADGET(G)) { PressGadget(G); w->SelectW = (widget)G; } else switch (EventK->Code) { case TW_Up: if (!w->HLogic) break; OldNumRow = w->CurY; if (OldNumRow < TW_MAXLDAT) { if (!OldNumRow) NumRow = w->HLogic - (ldat)1; else NumRow = OldNumRow - (ldat)1; w->CurY = NumRow; if (w->Flags & WINDOWFL_ROWS_SELCURRENT) DrawLogicWidget((widget)w, (ldat)0, OldNumRow, (ldat)TW_MAXDAT - (ldat)2, OldNumRow); } else w->CurY = NumRow = w->HLogic - (ldat)1; if (w->Flags & WINDOWFL_ROWS_SELCURRENT) DrawLogicWidget((widget)w, (ldat)0, NumRow, (ldat)TW_MAXDAT - (ldat)2, NumRow); UpdateCursor(); break; case TW_Down: if (!w->HLogic) break; OldNumRow = w->CurY; if (OldNumRow < TW_MAXLDAT) { if (OldNumRow >= w->HLogic - (ldat)1) NumRow = (ldat)0; else NumRow = OldNumRow + (ldat)1; w->CurY = NumRow; if (w->Flags & WINDOWFL_ROWS_SELCURRENT) DrawLogicWidget((widget)w, (ldat)0, OldNumRow, (ldat)TW_MAXDAT - (ldat)2, OldNumRow); } else w->CurY = NumRow = (ldat)0; if (w->Flags & WINDOWFL_ROWS_SELCURRENT) DrawLogicWidget((widget)w, (ldat)0, NumRow, (ldat)TW_MAXDAT - (ldat)2, NumRow); UpdateCursor(); break; case TW_Left: if (w->CurX > 0) { w->CurX--; UpdateCursor(); } break; case TW_Right: if ((W_USE(w, USECONTENTS) && w->CurX < w->XWidth - 3) || (W_USE(w, USEROWS) && w->CurX < TW_MAXLDAT - 1)) { w->CurX++; UpdateCursor(); } break; default: break; } } /* * create a (malloced) array of non-space args * from arbitrary text command line * * FIXME: need proper handling of double quotes: * "a b" is the string `a b' NOT the two strings `"a' `b"' * (same for single quotes, backslashes, ...) */ char **TokenizeStringVec(uldat len, char *s) { char **cmd = NULL, *buf, c; uldat save_len, n = 0; /* skip initial spaces */ while (len && ((c = *s) == '\0' || c == ' ')) { len--, s++; } save_len = len; if (len && (buf = (char *)AllocMem(len + 1))) { CopyMem(s, buf, len); buf[len] = '\0'; /* how many args? */ while (len) { len--, c = *s++; if (c && c != ' ') { n++; while (len && (c = *s) && c != ' ') { len--, s++; } } } if ((cmd = (char **)AllocMem((n + 1) * sizeof(char *)))) { n = 0; len = save_len; s = buf; /* put args in cmd[] */ while (len) { len--, c = *s++; if (c && c != ' ') { cmd[n++] = s - 1; while (len && (c = *s) && c != ' ') { len--, s++; } *s = '\0'; /* safe, we did a malloc(len+1) */ } } cmd[n] = NULL; /* safe, we did a malloc(n+1) */ } } return cmd; } void FreeStringVec(char **cmd) { if (cmd) { FreeMem(cmd[0]); FreeMem(cmd); } } /* * create a (malloced) array of non-space args * from arbitrary text command line * * FIXME: need proper handling of double quotes: * "a b" is the string `a b' NOT the two strings `"a' `b"' * (same for single quotes, backslashes, ...) */ char **TokenizeTRuneVec(uldat len, trune *s) { char **cmd = NULL, *buf, *v; trune c; uldat save_len, n = 0, i; /* skip initial spaces */ while (len && ((c = *s) == '\0' || c == ' ')) { len--, s++; } save_len = len; if (len && (buf = (char *)AllocMem(len + 1))) { for (i = 0; i < len; i++) buf[i] = s[i]; buf[len] = '\0'; /* how many args? */ while (len) { len--, c = *s++; if (c && c != ' ') { n++; while (len && (c = *s) && c != ' ') { len--, s++; } } } if ((cmd = (char **)AllocMem((n + 1) * sizeof(char *)))) { n = 0; len = save_len; v = buf; /* put args in cmd[] */ while (len) { len--, c = *v++; if (c && c != ' ') { cmd[n++] = v - 1; while (len && (c = *v) && c != ' ') { len--, v++; } *v = '\0'; /* safe, we did a malloc(len+1) */ } } cmd[n] = NULL; /* safe, we did a malloc(n+1) */ } } return cmd; } int unixFd; uldat unixSlot; static void TWDisplayIO(int fd, uldat slot) { struct sockaddr_un un_addr; socklen_t len = sizeof(un_addr); if ((fd = accept(fd, (struct sockaddr *)&un_addr, &len)) >= 0) { close(fd); } } static char envTWD[] = "TWDISPLAY=\0\0\0\0\0"; const char *TmpDir(void) { const char *tmp = getenv("TMPDIR"); if (tmp == NULL) tmp = "/tmp"; return tmp; } udat CopyToSockaddrUn(const char *src, struct sockaddr_un *addr, udat pos) { size_t len = strlen(src), max = sizeof(addr->sun_path) - 1; /* for final '\0' */ if (pos < max) { if (len >= max - pos) len = max - pos - 1; CopyMem(src, addr->sun_path + pos, len); addr->sun_path[pos += len] = '\0'; } return pos; } static struct sockaddr_un addr_unix; static const char *fullTWD = addr_unix.sun_path; static char twd[12]; /* set TWDISPLAY and create /tmp/.Twin:<x> */ byte InitTWDisplay(void) { char *arg0; int fd = NOFD; unsigned short i; udat len; byte ok; HOME = getenv("HOME"); memset(&addr_unix, 0, sizeof(addr_unix)); if ((unixFd = socket(AF_UNIX, SOCK_STREAM, 0)) >= 0) { addr_unix.sun_family = AF_UNIX; for (i = 0; i < 0x1000; i++) { sprintf(twd, ":%hx", i); len = CopyToSockaddrUn(TmpDir(), &addr_unix, 0); len = CopyToSockaddrUn("/.Twin", &addr_unix, len); len = CopyToSockaddrUn(twd, &addr_unix, len); ok = bind(unixFd, (struct sockaddr *)&addr_unix, sizeof(addr_unix)) >= 0; if (!ok) { Error(SYSERROR); /* maybe /tmp/.Twin:<x> is already in use... */ if (fd >= 0 || (fd = socket(AF_UNIX, SOCK_STREAM, 0)) >= 0) { if (connect(fd, (struct sockaddr *)&addr_unix, sizeof(addr_unix)) >= 0) { /* * server is alive, try to grab another TWDISPLAY. * also, we must junk `fd' since SOCK_STREAM sockets * can connect() only once */ close(fd); fd = NOFD; continue; } /* either server is dead or is owned by another user */ if (unlink(fullTWD) >= 0) { /* * if we have permission to delete it, we also had * the permission to connect to it (hope). * So it must have been be a stale socket. * * Trying to delete a /tmp/.Twin:<x> entry we cannot * connect to wreaks havoc if you mix this twin server * with older ones, but having two different servers * installed on one system should be rare enough. */ ok = bind(unixFd, (struct sockaddr *)&addr_unix, sizeof(addr_unix)) >= 0; } } } if (ok) { if (chmod(fullTWD, 0700) >= 0 && listen(unixFd, 3) >= 0 && fcntl(unixFd, F_SETFD, FD_CLOEXEC) >= 0) { if ((unixSlot = RegisterRemoteFd(unixFd, TWDisplayIO)) != NOSLOT) { if (fd != NOFD) close(fd); TWDisplay = twd; lenTWDisplay = strlen(TWDisplay); CopyMem(TWDisplay, envTWD + 10, lenTWDisplay); #if defined(TW_HAVE_SETENV) setenv("TWDISPLAY", TWDisplay, 1); setenv("TERM", "linux", 1); #elif defined(TW_HAVE_PUTENV) putenv(envTWD); putenv("TERM=linux"); #endif if ((arg0 = (char *)AllocMem(strlen(TWDisplay) + 6))) { sprintf(arg0, "twin %s", TWDisplay); SetArgv0(main_argv, main_argv_usable_len, arg0); FreeMem(arg0); } return ttrue; } } else Error(SYSERROR); close(unixFd); } } } if (fd != NOFD) close(fd); CopyToSockaddrUn(TmpDir(), &addr_unix, 0); arg0 = addr_unix.sun_path; printk("twin: failed to create any " SS "/.Twin* socket: " SS "\n", addr_unix.sun_path, Errstr); printk(" possible reasons: either " SS " not writable, or all TWDISPLAY already in use,\n" " or too many stale " SS "/.Twin* sockets. Aborting.\n", arg0, arg0); return tfalse; } /* unlink /tmp/.Twin<TWDISPLAY> */ void QuitTWDisplay(void) { unlink(fullTWD); } static e_privilege Privilege; static uid_t Uid, EUid; static gid_t tty_grgid; byte CheckPrivileges(void) { Uid = getuid(); EUid = geteuid(); tty_grgid = get_tty_grgid(); if (GainRootPrivileges() >= 0) Privilege = suidroot; else if (tty_grgid != (gid_t)-1 && GainGroupPrivileges(tty_grgid) >= 0) Privilege = sgidtty; else Privilege = none; DropPrivileges(); return Privilege; } void GainPrivileges(void) { if (Privilege == suidroot) GainRootPrivileges(); else if (Privilege == sgidtty) GainGroupPrivileges(get_tty_grgid()); } static void SetEnvs(struct passwd *p) { char buf[TW_BIGBUFF]; chdir(HOME = p->pw_dir); #if defined(TW_HAVE_SETENV) setenv("HOME", HOME, 1); setenv("SHELL", p->pw_shell, 1); setenv("LOGNAME", p->pw_name, 1); sprintf(buf, "/var/mail/%.*s", (int)(TW_BIGBUFF - 11), p->pw_name); setenv("MAIL", buf, 1); #elif defined(TW_HAVE_PUTENV) sprintf(buf, "HOME=%.*s", (int)(TW_BIGBUFF - 6), HOME); putenv(buf); sprintf(buf, "SHELL=%.*s", (int)(TW_BIGBUFF - 7), p->pw_shell); putenv(buf); sprintf(buf, "LOGNAME=%.*s", (int)(TW_BIGBUFF - 9), p->pw_name); putenv(buf); sprintf(buf, "MAIL=/var/mail/%.*s", (int)(TW_BIGBUFF - 16) p->pw_name); putenv(buf); #endif } byte SetServerUid(uldat uid, byte privileges) { msgport WM_MsgPort; struct passwd *p; byte ok = tfalse; if (flag_secure && uid == (uldat)(uid_t)uid && Uid == 0 && EUid == 0) { if ((WM_MsgPort = Ext(WM, MsgPort))) { if ((p = getpwuid(uid)) && p->pw_uid == uid && chown(fullTWD, p->pw_uid, p->pw_gid) >= 0 #ifdef TW_HAVE_INITGROUPS && init_groups(p->pw_name, p->pw_gid) >= 0 #endif ) { switch (privileges) { case none: ok = setgid(p->pw_gid) >= 0 && setuid(uid) >= 0; break; case sgidtty: ok = setregid(p->pw_gid, tty_grgid) >= 0 && setuid(uid) >= 0; break; case suidroot: ok = setgid(p->pw_gid) >= 0 && setreuid(uid, 0) >= 0; break; default: break; } if (ok && (uid == 0 || CheckPrivileges() == privileges)) { flag_secure = 0; SetEnvs(p); if ((ok = Ext(Socket, InitAuth)())) { /* * it's time to execute .twenvrc.sh and read its output to set * environment variables (mostly useful for twdm) */ RunTwEnvRC(); /* tell the WM to restart itself (so that it reads user's .twinrc) */ SendControlMsg(WM_MsgPort, MSG_CONTROL_OPEN, 0, NULL); return ttrue; } } else ok = tfalse; if (!ok) { flag_secure = 1; if (setuid(0) < 0 || setgid(0) < 0 || chown(fullTWD, 0, 0) < 0) { /* tried to recover, but screwed up uids too badly. */ printk("twin: failed switching to uid %u: " SS "\n", uid, strerror(errno)); printk("twin: also failed to recover. Quitting NOW!\n"); Quit(0); } SetEnvs(getpwuid(0)); } } printk("twin: failed switching to uid %u: " SS "\n", uid, strerror(errno)); } } else printk("twin: SetServerUid() can be called only if started by root with \"-secure\".\n"); return tfalse; } /* * search for a file relative to HOME, to PKG_LIBDIR or as path * * this for example will search "foo" * as "${HOME}/foo", "${PKG_LIBDIR}/system.foo" or plain "foo" */ char *FindFile(const char *name, uldat *fsize) { const char *prefix[3], *infix[3]; char *path; const char *dir; int i, min_i, max_i, len, nlen = strlen(name); struct stat buf; prefix[0] = HOME; infix[0] = (HOME && *HOME) ? "/" : ""; prefix[1] = pkg_libdir; infix[1] = "/system"; prefix[2] = ""; infix[2] = ""; if (flag_secure) min_i = max_i = 1; /* only pkg_libdir */ else min_i = 0, max_i = 2; for (i = min_i; i <= max_i; i++) { if (!(dir = prefix[i])) continue; len = strlen(dir) + strlen(infix[i]); if ((path = (char *)AllocMem(len + nlen + 2))) { sprintf(path, "%s%s%s", dir, infix[i], name); if (stat(path, &buf) == 0) { if (fsize) *fsize = buf.st_size; return path; } FreeMem(path); } } return NULL; } /* * read data from infd and set environment variables accordingly */ static void ReadTwEnvRC(int infd) { char buff[TW_BIGBUFF], *p = buff, *end, *q, *eq; int got, left = TW_BIGBUFF; for (;;) { do { got = read(infd, p, left); } while (got == -1 && errno == EINTR); if (got <= 0) break; end = p + got; p = buff; while ((eq = (char *)memchr(p, '=', end - p)) && (q = (char *)memchr(eq, '\n', end - eq))) { *q++ = '\0'; #if defined(TW_HAVE_SETENV) *eq++ = '\0'; setenv(p, eq, 1); #elif defined(TW_HAVE_PUTENV) putenv(p); #endif p = q; } left = end - p; if (left == TW_BIGBUFF) /* line too long! */ left = 0; memmove(buff, p, left); p = buff + left; left = TW_BIGBUFF - left; } } /* * execute .twenvrc.sh <dummy> and read its output to set * environment variables (mostly useful for twdm) */ void RunTwEnvRC(void) { char *path; uldat len; int fds[2]; if (flag_envrc != 1) return; if (flag_secure == 0) { flag_envrc = 0; if ((path = FindFile(".twenvrc.sh", &len))) { if ((pipe(fds) >= 0)) { switch (fork()) { case -1: /* error */ close(fds[0]); close(fds[1]); printk("twin: RunTwEnvRC(): fork() failed: " SS "\n", strerror(errno)); break; case 0: /* child */ close(fds[0]); if (fds[1] != 2) { close(2); dup2(fds[1], 2); close(fds[1]); } close(1); dup2(0, 1); execl(path, path, "dummy", NULL); exit(0); break; default: /* parent */ close(fds[1]); ReadTwEnvRC(fds[0]); close(fds[0]); break; } } else printk("twin: RunTwEnvRC(): pipe() failed: " SS "\n", strerror(errno)); } else printk("twin: RunTwEnvRC(): .twenvrc.sh: File not found\n", strerror(errno)); } else printk("twin: RunTwEnvRC(): delaying .twenvrc.sh execution until secure mode ends.\n"); } /* remove const from a pointer and suppress compiler warnings */ void *RemoveConst(const void *x) { union { const void *cv; void *v; } u = {x}; return u.v; } ���������������������������������������������������������������������������������������������twin-0.9.0/server/util.h����������������������������������������������������������������������������0000664�0000000�0000000�00000004535�13775351206�0015155�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_UTIL_H #define TWIN_UTIL_H #ifndef TWAUTOCONF_H #include "twautoconf.h" /* for TW_HAVE_ALARM */ #endif #ifdef TW_HAVE_SYS_TIMEB_H #include <sys/timeb.h> #endif #ifdef TW_HAVE_SYS_UN_H #include <sys/un.h> #endif #include "stl_types.h" extern uldat unixSlot; extern int unixFd; #if defined(TW_HAVE_ALARM) && defined(TW_HAVE_SIGACTION) extern volatile int AlarmReceived; void SetAlarm(unsigned seconds); #else #define SetAlarm(seconds) ((void)0) #define AlarmReceived (0) #endif const char *TmpDir(void); udat CopyToSockaddrUn(const char *src, struct sockaddr_un *addr, udat pos); void NormalizeTime(timevalue *Time); timevalue *InstantNow(timevalue *Now); dat CmpTime(timevalue *T1, timevalue *T2); timevalue *SumTime(timevalue *Result, timevalue *Time, timevalue *Incr); timevalue *SubTime(timevalue *Result, timevalue *Time, timevalue *Decr); timevalue *IncrTime(timevalue *Time, timevalue *Incr); timevalue *DecrTime(timevalue *Time, timevalue *Decr); void SortMsgPortByCallTime(msgport Port); void SortAllMsgPortsByCallTime(void); byte SendControlMsg(msgport MsgPort, udat Code, udat Len, const char *Data); byte Minimum(byte MaxIndex, const ldat *Array); uldat ComputeUsableLenArgv(char *const *argv); void SetArgv0(char *const *argv, uldat argv_usable_len, const char *src); bool SetSelectionFromWindow(window Window); void doSelectionSetOwner(obj Owner, tany Time, tany Frac); #define SEL_CURRENTTIME ((tany)0) byte CreateXTermMouseEvent(event_mouse *Event, byte buflen, char *buf); void ResetBorderPattern(void); void FallBackKeyAction(window W, event_keyboard *EventK); char **TokenizeStringVec(uldat len, char *text); char **TokenizeTRuneVec(uldat len, trune *text); void FreeStringVec(char **argv); byte InitTWDisplay(void); void QuitTWDisplay(void); byte CheckPrivileges(void); void GainPrivileges(void); byte SetServerUid(uldat uid, byte privileges); char *FindFile(const char *name, uldat *fsize); void RunTwEnvRC(void); /* remove const from a pointer and suppress compiler warnings */ void *RemoveConst(const void *x); #endif /* TWIN_UTIL_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/wm.cpp����������������������������������������������������������������������������0000664�0000000�0000000�00000152221�13775351206�0015152�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * wm.c -- builtin window manager for twin * * Copyright (C) 1993-2001 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "twin.h" #include "alloc.h" #include "algo.h" #include "data.h" #include "methods.h" #include "builtin.h" #include "main.h" #include "draw.h" #include "obj/id.h" // NOID, Id2Obj() #include "resize.h" #include "util.h" #include "extreg.h" #include "scroller.h" #include "wm.h" #include "hw.h" #include "hw_multi.h" #include "common.h" #include <Tw/Twkeys.h> /* for TW_* key defines */ #include <Tutf/Tutf.h> /* for UCS-2 to charset conversions */ #include "rctypes.h" #include "rcrun.h" static void DetailCtx(wm_ctx *C); byte ClickWindowPos = TW_MAXBYTE; static msgport WM_MsgPort; static msgport MapQueue; #define XBarSize (Window->XWidth - (udat)5) #define YBarSize (Window->YWidth - (udat)4) static udat TabStart(window Window, sbyte isX) { ldat NumLogicMax; udat ret; if (isX) { NumLogicMax = Max2(Window->WLogic, Window->XLogic + Window->XWidth - 2); ret = Window->XLogic * (ldat)XBarSize / NumLogicMax; } else { NumLogicMax = Max2(Window->HLogic, Window->YLogic + (ldat)Window->YWidth - 2); ret = Window->YLogic * (ldat)YBarSize / NumLogicMax; } return ret; } static udat TabLen(window Window, sbyte isX) { ldat NumLogicMax; udat ret; if (isX) { NumLogicMax = Max2(Window->WLogic, Window->XLogic + Window->XWidth - 2); ret = ((Window->XWidth - 2) * (ldat)XBarSize + NumLogicMax - 1) / NumLogicMax; } else { NumLogicMax = Max2(Window->HLogic, Window->YLogic + Window->YWidth - 2); ret = ((Window->YWidth - 2) * (ldat)YBarSize + NumLogicMax - 1) / NumLogicMax; } return ret ? ret : 1; } /* this returns -1 before the tab, 0 on the tab, 1 after */ inline sbyte IsTabPosition(window Window, udat pos, sbyte isX) { udat start; return pos >= (start = TabStart(Window, isX)) ? pos - start < TabLen(Window, isX) ? 0 : 1 : -1; } static tpos WMFindBorderWindow(window W, dat u, dat v, byte Border, tcell *PtrAttr) { trune *BorderFont, Font; ldat k; uldat Attr; tcell extra_u; tcolor Color; dat rev_u, rev_v; dat XWidth, YWidth; tpos Found = POS_SIDE_UP; byte FlDrag, FlResize, FlScroll, FlPressed; byte Horiz, Vert; byte Close, Resize, NMenuWin, BarX, BarY; sbyte Back_Fwd, i; if (!W) return Found; XWidth = W->XWidth; YWidth = W->YWidth; rev_u = XWidth - u - 1; rev_v = YWidth - v - 1; if (u < 0 || v < 0 || rev_u < 0 || rev_v < 0) return POS_ROOT; if ((W->Flags & WINDOWFL_BORDERLESS) || (u && v && rev_u && rev_v)) return POS_INSIDE; FlDrag = FlResize = FlScroll = FlPressed = tfalse; if (W == (window)All->FirstScreen->FocusW) { switch (All->State & state_any) { case state_drag: FlDrag = ttrue; break; case state_resize: FlResize = ttrue; break; case state_scroll: FlScroll = ttrue; break; default: break; } } Attr = W->Attr; Close = !!(Attr & WINDOW_CLOSE); Resize = !!(Attr & WINDOW_RESIZE); BarX = !!(Attr & WINDOW_X_BAR); BarY = !!(Attr & WINDOW_Y_BAR); NMenuWin = !(W->Flags & WINDOWFL_MENU); Horiz = extra_u = u ? rev_u ? (byte)1 : (byte)2 : (byte)0; Vert = v ? rev_v ? (byte)1 : (byte)2 : (byte)0; if (!(BorderFont = W->BorderPattern[Border]) && !(BorderFont = RCFindBorderPattern(W, Border))) BorderFont = W->BorderPattern[Border] = StdBorder[Border]; if (W->Parent && IS_SCREEN(W->Parent)) switch (Vert) { case 0: #define is_u(pos) \ ((pos) >= 0 \ ? u == (udat)(pos) || u == (udat)(pos) + (udat)1 \ : (pos) < -1 ? rev_u + (udat)1 == (udat) - (pos) || rev_u + (udat)2 == (udat) - (pos) : 0) #define delta_u(pos) ((pos) >= 0 ? u - (udat)(pos) : (udat) - (pos)-rev_u - (udat)1) i = BUTTON_MAX; if (Close && All->ButtonVec[0].exists && is_u(All->ButtonVec[0].pos)) i = 0; else if (NMenuWin) for (i = 1; i < BUTTON_MAX; i++) if (All->ButtonVec[i].exists && is_u(All->ButtonVec[i].pos)) break; if (i < BUTTON_MAX) { Font = All->ButtonVec[i].shape[extra_u = delta_u(All->ButtonVec[i].pos)]; Found = (tpos)i; } else if (W->NameLen) { k = 2 * (ldat)u - ((ldat)XWidth - (ldat)W->NameLen - (ldat)3); if (k > 0) k /= 2; if (k > 0 && k <= W->NameLen) { Font = Tutf_CP437_to_UTF_32[(byte)W->Name[--k]]; Found = POS_TITLE; } else if (k == 0 || k == W->NameLen + 1) { Font = ' '; Found = POS_TITLE; } else Font = BorderFont[Horiz]; } else Font = BorderFont[Horiz]; break; #undef is_u #undef delta_u case 1: if (Horiz == 0) { Font = BorderFont[(extra_u = Vert) * 3]; Found = POS_SIDE_LEFT; } else if (Horiz == 2) { if (BarY) { if (rev_v < (udat)3) { Font = ScrollBarY[extra_u = (udat)3 - rev_v]; Found = rev_v == (udat)2 ? POS_Y_ARROW_BACK : POS_Y_ARROW_FWD; } else if (!(Back_Fwd = IsTabPosition(W, v - (udat)1, tfalse))) { Font = TabY; Found = POS_Y_TAB; } else { Font = ScrollBarY[0]; Found = Back_Fwd > (sbyte)0 ? POS_Y_BAR_FWD : POS_Y_BAR_BACK; } } else { Font = BorderFont[(extra_u = Vert) * 3 + 2]; Found = POS_SIDE_RIGHT; } } break; case 2: Found = POS_SIDE_DOWN; if (rev_u < (udat)2) { if (Resize) { Font = GadgetResize[extra_u = (udat)1 - rev_u]; Found = POS_BUTTON_RESIZE; } else Font = BorderFont[6 + (extra_u = (udat)2 - rev_u)]; } else if (!BarX || !Horiz) { Font = BorderFont[6 + Horiz]; } else if (rev_u < (udat)4) { Font = ScrollBarX[extra_u = (udat)4 - rev_u]; Found = rev_u == (udat)3 ? POS_X_ARROW_BACK : POS_X_ARROW_FWD; } else if (!(Back_Fwd = IsTabPosition(W, u - (udat)1, ttrue))) { Font = TabX; Found = POS_X_TAB; extra_u = 0; } else { Font = ScrollBarX[0]; Found = Back_Fwd > (sbyte)0 ? POS_X_BAR_FWD : POS_X_BAR_BACK; extra_u = 0; } break; default: break; } else switch (Vert) { case 0: if (W->NameLen) { k = 2 * (ldat)u - ((ldat)XWidth - (ldat)W->NameLen - (ldat)3); if (k > 0) k /= 2; if (k > 0 && k <= W->NameLen) { Font = Tutf_CP437_to_UTF_32[(byte)W->Name[--k]]; Found = POS_TITLE; } else if (k == 0 || k == W->NameLen + 1) { Font = ' '; Found = POS_TITLE; } else Font = BorderFont[Horiz]; } else Font = BorderFont[Horiz]; break; default: Font = BorderFont[Vert * 3 + Horiz]; Found = Vert == 1 ? (Horiz ? POS_SIDE_RIGHT : POS_SIDE_LEFT) : POS_SIDE_DOWN; break; } if (!PtrAttr) return Found; if (FlDrag && Found >= POS_TITLE && Found <= POS_SIDE_DOWN) { FlPressed = ttrue; if (Found == POS_TITLE && W->ColName && k >= 0 && k < W->NameLen) Color = W->ColName[k]; else Color = W->ColGadgets; } else switch (Found) { case POS_TITLE: if (W->ColName && k >= 0 && k < W->NameLen) Color = W->ColName[k]; else Color = W->ColBorder; break; case POS_SIDE_LEFT: case POS_SIDE_UP: case POS_SIDE_RIGHT: case POS_SIDE_DOWN: Color = W->ColBorder; break; case POS_BUTTON_RESIZE: Color = W->ColGadgets; if (FlResize) { Color = TCOL(TCOLBG(Color), TCOLFG(Color)); FlPressed = ttrue; } break; case POS_X_ARROW_BACK: case POS_X_ARROW_FWD: case POS_Y_ARROW_FWD: case POS_Y_ARROW_BACK: Color = W->ColArrows; break; case POS_X_TAB: case POS_Y_TAB: Color = W->ColTabs; break; case POS_X_BAR_BACK: case POS_X_BAR_FWD: case POS_Y_BAR_BACK: case POS_Y_BAR_FWD: Color = W->ColBars; break; default: Color = Found < BUTTON_MAX ? (FlDrag ? TCOL(TCOLBG(W->ColGadgets), TCOLFG(W->ColGadgets)) : W->ColGadgets) : W->ColBorder; break; } if (FlScroll && Found >= POS_X_BAR_BACK && Found <= POS_Y_ARROW_FWD) { Color ^= TCOL(thigh, thigh); FlPressed = ttrue; } else if (Found < BUTTON_MAX && (W->State & WINDOW_GADGET_PRESSED) && (W->State & (BUTTON_FIRST_SELECT << Found))) { Color = TCOL(TCOLBG(Color), TCOLFG(Color)); FlPressed = ttrue; } *PtrAttr = TCELL(Color, Font); return Found; } static void SmartPlace(widget W, screen Screen); void Check4Resize(window W) { msg Msg; event_any *Event; byte HasBorder; if (!W) return; HasBorder = !(W->Flags & WINDOWFL_BORDERLESS) * 2; if (W->Attr & WINDOW_WANT_CHANGES && (!W_USE(W, USECONTENTS) || W->XWidth != W->USE.C.TtyData->SizeX + HasBorder || W->YWidth != W->USE.C.TtyData->SizeY + HasBorder)) { if ((Msg = New(msg)(msg_widget_change, 0))) { Event = &Msg->Event; Event->EventWidget.W = (widget)W; Event->EventWidget.Code = MSG_WIDGET_RESIZE; Event->EventWidget.XWidth = W->XWidth - HasBorder; Event->EventWidget.YWidth = W->YWidth - HasBorder; SendMsg(W->Owner, Msg); } } if (W_USE(W, USECONTENTS)) CheckResizeWindowContents(W); } void AskCloseWidget(widget W) { msg Msg; if (W && (!IS_WINDOW(W) || (W->Attr & WINDOW_CLOSE))) { if ((Msg = New(msg)(msg_widget_gadget, 0))) { Msg->Event.EventGadget.W = W; Msg->Event.EventGadget.Code = (udat)0; /* COD_CLOSE */ SendMsg(W->Owner, Msg); } } } void MaximizeWindow(window W, byte full_screen) { screen Screen; if (W && IS_WINDOW(W) && (W->Attr & WINDOW_RESIZE) && (Screen = (screen)W->Parent) && IS_SCREEN(Screen)) { if (full_screen) { if (Screen->YLogic == TW_MINDAT) Screen->YLogic++; W->Left = Screen->XLogic - 1; W->Up = Screen->YLogic; W->XWidth = All->DisplayWidth + 2; W->YWidth = All->DisplayHeight + 1 - Screen->YLimit; } else { if (Screen->YLogic == TW_MAXDAT) Screen->YLogic--; W->Left = Screen->XLogic; W->Up = Screen->YLogic + 1; W->XWidth = All->DisplayWidth; W->YWidth = All->DisplayHeight - 1 - Screen->YLimit; } QueuedDrawArea2FullScreen = ttrue; Check4Resize(W); } } void ShowWinList(wm_ctx *C) { if (!C->Screen) C->Screen = All->FirstScreen; if (WinList->Parent) Act(UnMap, WinList)(WinList); if (C->ByMouse) { WinList->Left = C->i - 5; WinList->Up = C->j - C->Screen->YLimit; } else { WinList->Left = 0; WinList->Up = TW_MAXDAT; } Act(Map, WinList)(WinList, (widget)C->Screen); } static void RecursiveFocusWidget(widget W) { widget P; W->SelectW = NULL; while ((P = W->Parent)) { P->SelectW = W; if (IS_SCREEN(P)) break; W = P; } if (ContainsCursor((widget)WindowParent(W))) UpdateCursor(); } static widget RecursiveFindFocusWidget(widget W) { if (W) while (W->SelectW) W = W->SelectW; return W; } static void CleanupLastW(widget LastW, udat LastKeys, byte LastInside) { msg NewMsg; event_any *Event; udat i; if (LastW) { if (LastInside) { if ((NewMsg = New(msg)(msg_widget_mouse, 0))) { Event = &NewMsg->Event; Event->EventMouse.W = LastW; Event->EventMouse.ShiftFlags = (udat)0; Event->EventMouse.Code = MOVE_MOUSE | (LastKeys & HOLD_ANY); Event->EventMouse.X = TW_MINDAT; Event->EventMouse.Y = TW_MINDAT; SendMsg(LastW->Owner, NewMsg); } } while (LastKeys & HOLD_ANY) { if ((NewMsg = New(msg)(msg_widget_mouse, 0))) { Event = &NewMsg->Event; Event->EventMouse.W = LastW; Event->EventMouse.ShiftFlags = (udat)0; i = HOLD_N(LastKeys & HOLD_ANY); Event->EventMouse.Code = RELEASE_N(i) | (LastKeys &= ~HOLD_CODE(i)); Event->EventMouse.X = TW_MINDAT; Event->EventMouse.Y = TW_MINDAT; SendMsg(LastW->Owner, NewMsg); } else LastKeys = 0; } } else LastKeys = 0; } static void HandleHilightAndSelection(widget W, udat Code, dat X, dat Y, byte Inside) { udat _Code; byte IsHoldButtonSelection = (Code & HOLD_ANY) == All->SetUp->ButtonSelection; if (isSINGLE_PRESS(Code) && HOLD_CODE(PRESS_N(Code)) == All->SetUp->ButtonSelection) StartHilight((window)W, (ldat)X + W->XLogic, (ldat)Y + W->YLogic); else if (IsHoldButtonSelection && isMOVE(Code)) ExtendHilight((window)W, (ldat)X + W->XLogic, (ldat)Y + W->YLogic); else if (isSINGLE_RELEASE(Code)) { _Code = HOLD_CODE(RELEASE_N(Code)); if (_Code == All->SetUp->ButtonSelection && IS_WINDOW(W)) SetSelectionFromWindow((window)W); else if (_Code == All->SetUp->ButtonPaste && Inside) { /* send Selection Paste msg */ msg NewMsg; /* store selection owner */ SelectionImport(); if ((NewMsg = New(msg)(msg_selection, 0))) { event_any *Event = &NewMsg->Event; Event->EventSelection.W = W; Event->EventSelection.Code = 0; Event->EventSelection.pad = (udat)0; Event->EventSelection.X = X; Event->EventSelection.Y = Y; SendMsg(W->Owner, NewMsg); } } } } static byte CheckForwardMsg(wm_ctx *C, msg Msg, byte WasUsed) { static uldat LastWId = NOID; static byte LastInside = tfalse; static udat LastKeys = 0; widget LastW, W, P; event_any *Event; udat Code; dat X, Y; byte Inside, inUse = tfalse; if (Msg->Type != msg_key && Msg->Type != msg_mouse) return inUse; LastW = (widget)Id2Obj(widget_magic_id, LastWId); W = All->FirstScreen->FocusW; if ((All->State & state_any) == state_menu) { if (!W) /* the menu is being used, but no menu windows opened yet. continue. */ W = (widget)All->FirstScreen->MenuWindow; else /* the menu is being used. leave LastW. */ W = NULL; } else { if (All->FirstScreen->ClickWindow && W != (widget)All->FirstScreen->ClickWindow) { /* cannot send messages to focused window while user clicked on another window */ W = NULL; } } if (W) W = RecursiveFindFocusWidget(W); else return inUse; Event = &Msg->Event; if (Msg->Type == msg_key) { if (!WasUsed && All->State == state_default) { /* back up to first parent that WANT_KEYS or has AUTO_KEYS */ while (W && !(W->Attr & WIDGET_WANT_KEYS || (IS_WINDOW(W) && ((window)W)->Attr & WINDOW_AUTO_KEYS))) W = W->Parent; if (W) { if (W->Attr & WIDGET_WANT_KEYS) { Msg->Type = msg_widget_key; Event->EventKeyboard.W = (widget)W; SendMsg(W->Owner, Msg); return ttrue; } else if (IS_WINDOW(W) && ((window)W)->Attr & WINDOW_AUTO_KEYS) FallBackKeyAction((window)W, &Event->EventKeyboard); } } return inUse; } if (W != LastW && (LastKeys || LastInside)) { /* try to leave LastW with a clean status */ CleanupLastW(LastW, LastKeys, LastInside); LastW = W; LastKeys = 0; LastInside = tfalse; } if (!W->Owner || (IS_WINDOW(W) && ((window)W)->Flags & WINDOWFL_MENU)) return inUse; C->Code = Code = Event->EventMouse.Code; C->i = X = Event->EventMouse.X; C->j = Y = Event->EventMouse.Y; Inside = tfalse; if (LastKeys) { TranslateCoordsWidget(NULL, W, &X, &Y, &Inside); if (C->Pos == POS_ROOT || C->Pos == POS_MENU) Inside = tfalse; } else { C->W = NonScreenParent(W); C->Screen = (screen)C->W->Parent; if (C->Screen && IS_SCREEN(C->Screen)) { DetailCtx(C); if (W == C->W) { X -= C->Left + !(IS_WINDOW(W) && W->Flags & WINDOWFL_BORDERLESS); Y -= C->Up + !(IS_WINDOW(W) && W->Flags & WINDOWFL_BORDERLESS); Inside = C->Pos == POS_INSIDE; } else { TranslateCoordsWidget(NULL, W, &X, &Y, &Inside); if (C->DW != W || C->Pos == POS_ROOT || C->Pos == POS_MENU) /* W may be obscured by something else */ Inside = tfalse; while (Inside == ttrue + ttrue && (P = W->Parent)) { /* on the border, must report to the parent */ W = P; X = C->i; Y = C->j; TranslateCoordsWidget(NULL, W, &X, &Y, &Inside); } } } if (Inside == ttrue + ttrue) Inside = tfalse; } /* manage window hilight and Selection */ if (IS_WINDOW(W) && Inside && Code && !LastKeys && (All->State & state_any) == state_default && !(W->Attr & WIDGET_WANT_MOUSE)) { HandleHilightAndSelection(W, Code, X, Y, Inside); LastWId = W->Id; return inUse; } /* finished with Selection stuff */ /* forward the message */ if (Inside || LastKeys || LastInside) { if (Code == MOVE_MOUSE ? (Inside || LastInside) && (W->Attr & WIDGET_WANT_MOUSE_MOTION) : (Inside || LastKeys) && (W->Attr & WIDGET_WANT_MOUSE)) { if (Code == MOVE_MOUSE && !Inside) X = Y = TW_MINDAT; Msg->Type = msg_widget_mouse; Event->EventMouse.W = (widget)W; Event->EventMouse.X = X; Event->EventMouse.Y = Y; SendMsg(W->Owner, Msg); LastInside = (W->Attr & WIDGET_WANT_MOUSE_MOTION) ? Inside : 0; LastKeys = (W->Attr & WIDGET_WANT_MOUSE) ? Code & HOLD_ANY : 0; if (isPRESS(Code)) LastKeys |= HOLD_CODE(PRESS_N(Code)); inUse = ttrue; } } LastWId = W->Id; return inUse; } static ldat DragPosition[2]; static void InitCtx(const msg Msg, wm_ctx *C) { C->Code = Msg->Event.EventCommon.Code; C->ShiftFlags = Msg->Event.EventKeyboard.ShiftFlags; /* ok for mouse too */ if ((C->ByMouse = (Msg->Type == msg_mouse))) { C->i = Msg->Event.EventMouse.X; C->j = Msg->Event.EventMouse.Y; if ((C->Screen = Do(Find, screen)(C->j)) && C->Screen == All->FirstScreen && C->Screen->YLimit < C->j) { C->W = Act(FindWidgetAt, C->Screen)(C->Screen, C->i, C->j - C->Screen->YLimit); } else C->W = NULL; } else { C->Screen = All->FirstScreen; C->W = C->Screen->FocusW; } } static void DetailCtx(wm_ctx *C) { if (C->W) { /* ensure IS_SCREEN(C->W->Parent) is true. */ C->Screen = (screen)C->W->Parent; if (!C->Screen || !IS_SCREEN(C->Screen)) { printk("twin: wm.c: DetailCtx(): internal error: C->W is a subwidget!\n"); return; } } C->DW = NULL; if (C->Screen) C->Menu = Act(FindMenu, C->Screen)(C->Screen); if (C->ByMouse) { C->Pos = POS_ROOT; if (C->W) { ldat HasBorder = IS_WINDOW(C->W) && !(C->W->Flags & WINDOWFL_BORDERLESS); C->Up = (ldat)C->W->Up - C->Screen->YLogic + (ldat)C->Screen->YLimit; C->Left = (ldat)C->W->Left - C->Screen->XLogic; C->Rgt = C->Left + (ldat)C->W->XWidth - 1; C->Dwn = C->Up + (C->W->Attr & WINDOW_ROLLED_UP ? 0 : (ldat)C->W->YWidth - (ldat)1); if (C->i >= C->Left + HasBorder && C->i <= C->Rgt - HasBorder && C->j >= C->Up + HasBorder && C->j <= C->Dwn - HasBorder) { C->Pos = POS_INSIDE; C->DW = RecursiveFindWidgetAt((widget)C->W, C->i - C->Left, C->j - C->Up); } else if (HasBorder) { /* * (i,j) _may_ be outside the window... see ContinueMenu() * and CheckForwardMsg() */ if (IS_WINDOW(C->W) && (C->i == C->Left || C->i == C->Rgt || C->j == C->Up || C->j == C->Dwn)) C->Pos = Act(FindBorder, (window)C->W)((window)C->W, C->i - C->Left, C->j - C->Up, 0, NULL); } } /* * allow code above to calculate C->Left, C->Up * (used for Interactive Drag/Resize/Scroll) * but return the correct C->Pos : */ if (C->Screen && C->j <= C->Screen->YLimit) { C->Pos = POS_ROOT; if (C->j == C->Screen->YLimit) { if (C->i > All->DisplayWidth - (dat)3) C->Pos = POS_BUTTON_SCREEN; else { C->Pos = POS_MENU; C->W = C->Screen->FocusW; C->Item = Act(FindItem, C->Menu)(C->Menu, C->i); } } } } } inline void Fill4RC_VM(wm_ctx *C, widget W, udat Type, byte Pos, udat Code) { C->W = W; C->Type = Type; C->Pos = Pos; C->Code = Code; } void FocusCtx(wm_ctx *C) { if (C->W) C->Screen = ScreenParent(C->W); if (C->Screen && C->Screen != All->FirstScreen) Act(Focus, C->Screen)(C->Screen); else C->Screen = All->FirstScreen; if (C->W && C->W != C->Screen->FocusW) Act(Focus, C->W)(C->W); else C->W = C->Screen->FocusW; } static byte ActivateScreen(wm_ctx *C) { if (C->Screen && C->Screen != All->FirstScreen) Act(Focus, C->Screen)(C->Screen); C->Screen = All->FirstScreen; All->State = state_screen | (C->ByMouse ? state_fl_bymouse : 0); Act(DrawMenu, C->Screen)(C->Screen, 0, TW_MAXDAT); return ttrue; } /* this is mouse-only */ static void ContinueScreen(wm_ctx *C) { ResizeFirstScreen(C->j - All->FirstScreen->YLimit); } static void ReleaseScreen(wm_ctx *C) { All->State = state_default; Act(DrawMenu, All->FirstScreen)(All->FirstScreen, 0, TW_MAXDAT); } /* this is mouse-only */ static byte ActivateScreenButton(wm_ctx *C) { if (C->Screen == All->FirstScreen && (All->State & state_any) == state_default) { All->State = state_button_screen | state_fl_bymouse; C->Screen->Flags |= SCREENFL_BACK_SELECT | SCREENFL_BACK_PRESSED; Act(DrawMenu, C->Screen)(C->Screen, All->DisplayWidth - (dat)2, All->DisplayWidth - (dat)1); return ttrue; } return tfalse; } #if 0 /* this is mouse-only */ static void ContinueScreenButton(wm_ctx *C) { udat temp = C->Screen->State; DetailCtx(C); if (C->Pos == POS_BUTTON_SCREEN) C->Screen->State |= GADGET_PRESSED; else C->Screen->State &= ~GADGET_PRESSED; if (temp != C->Screen->State) Act(DrawMenu,C->Screen)(C->Screen, All->DisplayWidth-(dat)2, All->DisplayWidth-(dat)1); } #endif /* this is mouse-only */ static void ReleaseScreenButton(wm_ctx *C) { All->State = state_default; C->Screen->Flags &= ~(SCREENFL_BACK_SELECT | SCREENFL_BACK_PRESSED); if (C->Screen != All->LastScreen && (DetailCtx(C), C->Pos == POS_BUTTON_SCREEN)) { MoveLast(Screen, All, C->Screen); DrawArea2(NULL, NULL, NULL, 0, Min2(C->Screen->YLimit, All->FirstScreen->YLimit), TW_MAXDAT, TW_MAXDAT, tfalse); UpdateCursor(); } else Act(DrawMenu, C->Screen)(C->Screen, All->DisplayWidth - (dat)2, All->DisplayWidth - (dat)1); } static byte ActivateMenu(wm_ctx *C) { if (C->Screen && C->Screen != All->FirstScreen) Act(Focus, C->Screen)(C->Screen); C->Screen = All->FirstScreen; C->W = C->Screen->FocusW; C->Menu = Act(FindMenu, C->Screen)(C->Screen); if (C->ByMouse) { if (C->j == C->Screen->YLimit) C->Item = Act(FindItem, C->Menu)(C->Menu, C->i); else C->Item = (menuitem)0; } else { if (!(C->Item = Act(GetSelectedItem, C->Menu)(C->Menu)) && !(C->Item = C->Menu->FirstI)) C->Item = All->CommonMenu->FirstI; } Act(ActivateMenu, C->Screen)(C->Screen, C->Item, C->ByMouse); return ttrue; } /* this is mouse-only */ static void ContinueMenu(wm_ctx *C) { window W; uldat y; DetailCtx(C); if (C->Pos == POS_MENU && C->Item && C->Item != Act(GetSelectedItem, C->Menu)(C->Menu)) SetMenuState(C->Item, ttrue); else if (C->Pos == POS_INSIDE && (W = (window)C->W) && (W->Flags & WINDOWFL_MENU)) { y = (ldat)C->j - C->Up - (ldat)1 + W->YLogic; if ((C->Item = (menuitem)Act(FindRow, W)(W, y))) { SetMenuState(C->Item, ttrue); return; } } else if ((W = (window)All->FirstScreen->FocusW) && (W->Flags & WINDOWFL_MENU) && (C->Item = (menuitem)Act(FindRow, W)(W, W->CurY)) && IS_MENUITEM(C->Item) && !C->Item->Window) { if ((W = (window)C->Item->Parent) && IS_WINDOW(W)) SetMenuState(C->Item = W->MenuItem, ttrue); else SetMenuState(C->Item = Act(GetSelectedItem, C->Menu)(C->Menu), ttrue); } } static void ReleaseMenu(wm_ctx *C) { window MW = All->FirstScreen->MenuWindow; window FW = (window)All->FirstScreen->FocusW; menu Menu; menuitem Item; row Row; msg Msg; event_menu *Event; udat Code; if (FW && IS_WINDOW(FW) && FW->CurY < TW_MAXLDAT && (Menu = FW->Menu) && (Item = Act(GetSelectedItem, Menu)(Menu)) && (Item->Flags & ROW_ACTIVE) && (Row = Act(FindRow, FW)(FW, FW->CurY)) && (Row->Flags & ROW_ACTIVE) && Row->Code) Code = Row->Code; else Code = (udat)0; /* disable the menu BEFORE processing the code! */ CloseMenu(); if (Code >= COD_RESERVED) { /* handle COD_RESERVED codes internally */ Fill4RC_VM(C, (widget)MW, msg_menu_row, POS_MENU, Row->Code); (void)RC_VMQueue(C); } else if (Code) { if ((Msg = New(msg)(msg_menu_row, 0))) { Event = &Msg->Event.EventMenu; Event->W = MW; Event->Code = Code; Event->Menu = Menu; Event->Row = Row; if (MW) SendMsg(MW->Owner, Msg); else SendMsg(Menu->MsgPort, Msg); } } } static void ShowResize(window W) { static char buf[40]; dat x = W->XWidth; dat y = W->YWidth; if (!(W->Flags & WINDOWFL_BORDERLESS)) x -= 2, y -= 2; sprintf(buf, "%hdx%hd", x, y); Act(SetText, All->BuiltinRow)(All->BuiltinRow, strlen(buf), buf, 0); Act(DrawMenu, All->FirstScreen)(All->FirstScreen, All->DisplayWidth - 20, All->DisplayWidth - 10); } static void HideResize(void) { Act(SetText, All->BuiltinRow)(All->BuiltinRow, 0, NULL, 0); Act(DrawMenu, All->FirstScreen)(All->FirstScreen, All->DisplayWidth - 20, All->DisplayWidth - 10); } static byte ActivateDrag(wm_ctx *C) { if (C->Screen == All->FirstScreen && C->W && IS_WINDOW(C->W) && C->W->Attr & WINDOW_DRAG) { All->FirstScreen->ClickWindow = (window)C->W; All->State = state_drag; if (C->ByMouse) { All->State |= state_fl_bymouse; DetailCtx(C); DragPosition[0] = (ldat)C->i - C->Left; DragPosition[1] = (ldat)C->j - C->Up; } DrawBorderWindow((window)C->W, BORDER_ANY); return ttrue; } return tfalse; } static byte ActivateResize(wm_ctx *C) { if (C->Screen == All->FirstScreen && C->W && IS_WINDOW(C->W) && C->W->Attr & WINDOW_RESIZE) { All->FirstScreen->ClickWindow = (window)C->W; All->State = state_resize; if (C->ByMouse) { All->State |= state_fl_bymouse; DetailCtx(C); DragPosition[0] = (ldat)C->i - C->Rgt; DragPosition[1] = (ldat)C->j - C->Dwn; } DrawBorderWindow((window)C->W, BORDER_ANY); ShowResize((window)C->W); return ttrue; } return tfalse; } static byte ActivateScroll(wm_ctx *C) { window W = (window)C->W; if (C->Screen == All->FirstScreen && W && IS_WINDOW(W) && C->W->Attr & (WINDOW_X_BAR | WINDOW_Y_BAR)) { /* * paranoia: SneakSetupMouse() mail call us even for a mouse event * OUTSIDE or INSIDE C->W */ if (C->ByMouse) { DetailCtx(C); if ((ldat)C->j == C->Dwn) { if (C->Pos == POS_X_ARROW_BACK) W->State |= X_BAR_SELECT | ARROW_BACK_SELECT; else if (C->Pos == POS_X_ARROW_FWD) W->State |= X_BAR_SELECT | ARROW_FWD_SELECT; else if (C->Pos == POS_X_BAR_BACK) W->State |= X_BAR_SELECT | PAGE_BACK_SELECT; else if (C->Pos == POS_X_BAR_FWD) W->State |= X_BAR_SELECT | PAGE_FWD_SELECT; else { W->State |= X_BAR_SELECT | TAB_SELECT; DragPosition[0] = (ldat)C->i - C->Left - 1 - TabStart(W, (sbyte)1); DragPosition[1] = 0; } } else if ((ldat)C->i == C->Rgt) { if (C->Pos == POS_Y_ARROW_BACK) W->State |= Y_BAR_SELECT | ARROW_BACK_SELECT; else if (C->Pos == POS_Y_ARROW_FWD) W->State |= Y_BAR_SELECT | ARROW_FWD_SELECT; else if (C->Pos == POS_Y_BAR_BACK) W->State |= Y_BAR_SELECT | PAGE_BACK_SELECT; else if (C->Pos == POS_Y_BAR_FWD) W->State |= Y_BAR_SELECT | PAGE_FWD_SELECT; else { W->State |= Y_BAR_SELECT | TAB_SELECT; DragPosition[0] = 0; DragPosition[1] = (ldat)C->j - C->Up - 1 - TabStart(W, (sbyte)0); } } if (W->State & SCROLL_ANY_SELECT) All->State = state_scroll | state_fl_bymouse; } else All->State = state_scroll; if ((All->State & state_any) == state_scroll && IS_WINDOW(W)) { All->FirstScreen->ClickWindow = W; DrawBorderWindow(W, BORDER_ANY); return ttrue; } } return tfalse; } /* this is mouse only */ static void ContinueDrag(wm_ctx *C) { if ((C->W = (widget)All->FirstScreen->ClickWindow)) { DetailCtx(C); if (C->W == All->FirstScreen->FirstW) DragFirstWindow(C->i - C->Left - DragPosition[0], Max2(C->j, All->FirstScreen->YLimit + 1) - C->Up - DragPosition[1]); else DragWindow((window)C->W, C->i - C->Left - DragPosition[0], Max2(C->j, All->FirstScreen->YLimit + 1) - C->Up - DragPosition[1]); } } /* this is mouse only */ static void ContinueResize(wm_ctx *C) { if ((C->W = (widget)All->FirstScreen->ClickWindow)) { DetailCtx(C); if (C->W == All->FirstScreen->FirstW) ResizeRelFirstWindow(C->i - C->Rgt - DragPosition[0], Max2(C->j, All->FirstScreen->YLimit + 1) - C->Dwn - DragPosition[1]); else ResizeRelWindow((window)C->W, C->i - C->Rgt - DragPosition[0], Max2(C->j, All->FirstScreen->YLimit + 1) - C->Dwn - DragPosition[1]); ShowResize((window)C->W); } } /* this is mouse only */ static void ContinueScroll(wm_ctx *C) { window W; uldat NumLogicMax; ldat i; if ((C->W = (widget)(W = All->FirstScreen->ClickWindow))) { DetailCtx(C); if (W->State & X_BAR_SELECT) { NumLogicMax = Max2(W->WLogic, W->XLogic + (ldat)W->XWidth - 2); i = C->i; if (i + 4 > C->Rgt + DragPosition[0]) i = C->Rgt + DragPosition[0] - 4; ScrollWindow(W, (i - C->Left - 1 - DragPosition[0] - TabStart(W, (sbyte)1)) * (NumLogicMax / (W->XWidth - 5)), 0); } else if (W->State & Y_BAR_SELECT) { NumLogicMax = Max2(W->HLogic, W->YLogic + (ldat)W->YWidth - 2); i = Max2(C->j, All->FirstScreen->YLimit + 1); if (i + 3 > C->Dwn + DragPosition[1]) i = C->Dwn + DragPosition[1] - 3; ScrollWindow(W, 0, (i - C->Up - 1 - DragPosition[1] - TabStart(W, (sbyte)0)) * (NumLogicMax / (W->YWidth - (udat)4))); } } } static void ReleaseDragResizeScroll(const wm_ctx *C) { window FW = All->FirstScreen->ClickWindow; udat wasResize; wasResize = (All->State & state_any) == state_resize; All->State = state_default; if (FW) { FW->State &= ~(BUTTON_ANY_SELECT | SCROLL_ANY_SELECT | XY_BAR_SELECT); DrawBorderWindow(FW, BORDER_ANY); if (wasResize) { Check4Resize(FW); HideResize(); } } } /* this is mouse only */ static byte ActivateButton(wm_ctx *C) { if (C->W && IS_WINDOW(C->W)) { All->State = C->Pos | state_fl_bymouse; ((window)C->W)->State |= (BUTTON_FIRST_SELECT << C->Pos) | WINDOW_GADGET_PRESSED; C->Type = msg_mouse; (void)RC_VMQueue(C); DrawBorderWindow((window)C->W, BORDER_UP); return ttrue; } return tfalse; } #if 0 /* this is mouse only */ /* * this would release window border buttons when moving away from them... * I prefer them to stay pressed, so this is disabled */ static void ContinueButton(wm_ctx *C) { window FW = All->FirstScreen->ClickWindow; uldat ltemp; byte found = tfalse; if (!FW) return; if (FW == C->W && (ltemp = FW->State) & BUTTON_ANY_SELECT) { DetailCtx(C); if (C->Pos < BUTTON_MAX && (ltemp & BUTTON_ANY_SELECT) == (BUTTON_FIRST_SELECT << C->Pos)) found = ttrue; } if (found) FW->State |= GADGET_PRESSED; else FW->State &= ~GADGET_PRESSED; if (ltemp != FW->State) DrawBorderWindow(FW, BORDER_UP); } #endif /* this is mouse only */ static void ReleaseButton(wm_ctx *C) { window FW = All->FirstScreen->ClickWindow; All->State = state_default; if (FW) { if (FW == (window)C->W && FW->State & BUTTON_ANY_SELECT) { DetailCtx(C); if (C->Pos < BUTTON_MAX && (FW->State & BUTTON_ANY_SELECT) == (BUTTON_FIRST_SELECT << C->Pos)) { C->W = (widget)FW; C->Type = msg_mouse; (void)RC_VMQueue(C); } } FW->State &= ~(BUTTON_ANY_SELECT | WINDOW_GADGET_PRESSED); DrawBorderWindow(FW, BORDER_UP); } } /* this is mouse only */ static byte ActivateGadget(wm_ctx *C) { gadget G = (gadget)C->DW; All->State = state_gadget | state_fl_bymouse; if (!G->Group && (G->Flags & (GADGETFL_TOGGLE | GADGETFL_PRESSED)) == (GADGETFL_TOGGLE | GADGETFL_PRESSED)) UnPressGadget(G, ttrue); else PressGadget(G); if (!(G->Flags & GADGETFL_TOGGLE)) RecursiveFocusWidget((widget)G); return ttrue; } /* this is mouse only */ static void ContinueGadget(wm_ctx *C) { window FW = All->FirstScreen->ClickWindow; gadget FG; udat temp; if (FW && (FG = (gadget)RecursiveFindFocusWidget((widget)FW))) { temp = FG->Flags; if (!(temp & GADGETFL_TOGGLE)) { if (FW == (window)C->W && FG && (DetailCtx(C), (widget)FG == C->DW)) FG->Flags |= GADGETFL_PRESSED; else FG->Flags &= ~GADGETFL_PRESSED; if (temp != FG->Flags) { if ((widget)FW == All->FirstScreen->FirstW) DrawWidget((widget)FG, 0, 0, TW_MAXDAT, TW_MAXDAT, tfalse); else DrawAreaWidget((widget)FG); } } } } /* this is mouse only */ static void ReleaseGadget(wm_ctx *C) { window FW = All->FirstScreen->ClickWindow; gadget FG; All->State = state_default; if (!FW) return; DetailCtx(C); FG = (gadget)RecursiveFindFocusWidget((widget)FW); if (!FG || !IS_GADGET(FG) || FG->Flags & GADGETFL_TOGGLE) return; UnPressGadget(FG, (widget)FW == C->W && FG && (widget)FG == C->DW); /* FW->SelectW=NULL; */ } /* the only Activate*() that make sense from within RC_VM() */ byte ActivateCtx(wm_ctx *C, byte State) { switch (State) { case state_resize: return ActivateResize(C); case state_drag: return ActivateDrag(C); case state_scroll: return ActivateScroll(C); case state_menu: return ActivateMenu(C); case state_screen: return ActivateScreen(C); default: break; } return tfalse; } /* force returning to state_default. used before RCReload() */ void ForceRelease(const wm_ctx *C) { switch (All->State & state_any) { case state_resize: case state_drag: case state_scroll: ReleaseDragResizeScroll(C); break; case state_gadget: { window FW; gadget FG; if ((FW = All->FirstScreen->ClickWindow) && (FG = (gadget)RecursiveFindFocusWidget((widget)FW)) && IS_GADGET(FG) && !(FG->Flags & GADGETFL_TOGGLE)) UnPressGadget(FG, tfalse); } break; case state_menu: CloseMenu(); break; case state_screen: break; case state_button_screen: All->FirstScreen->Flags &= ~(SCREENFL_BACK_SELECT | SCREENFL_BACK_PRESSED); break; default: if ((All->State & state_any) < BUTTON_MAX) { window FW; if ((FW = All->FirstScreen->ClickWindow)) FW->State &= ~(BUTTON_ANY_SELECT | WINDOW_GADGET_PRESSED); } break; } All->State = state_default; } /* * these must be handled manually as we want the gadgets/buttons * to immediately change color when selected * * this is mouse only */ static byte ActivateMouseState(wm_ctx *C) { byte used = tfalse; byte isPressButtonSelection; if (isSINGLE_PRESS(C->Code)) { isPressButtonSelection = HOLD_CODE(PRESS_N(C->Code)) == All->SetUp->ButtonSelection; switch (C->Pos) { case POS_BUTTON_SCREEN: if (isPressButtonSelection) used = ttrue, ActivateScreenButton(C); break; case POS_INSIDE: if (isPressButtonSelection && C->DW && IS_GADGET(C->DW) && !(((gadget)C->DW)->Flags & GADGETFL_DISABLED)) used = ttrue, ActivateGadget(C); break; default: if (C->Pos < BUTTON_MAX) used = ttrue, ActivateButton(C); break; } } return used; } /* * check if the mouse (C->i, C->j) is in a position suitable for the State. * setup DragPosition[] as if the current State was initiated with the mouse, * or return tfalse if (C->i, C->j) is in a non-appropriate position. */ static byte SneakSetupMouse(wm_ctx *C) { /* State was set with keyboard */ window W = All->FirstScreen->ClickWindow; byte ok = ttrue; switch (All->State & state_any) { case state_resize: DetailCtx(C); if (IS_WINDOW(W) && W == (window)C->W) { DragPosition[0] = (ldat)C->i - C->Rgt; DragPosition[1] = (ldat)C->j - C->Dwn; } else ok = tfalse; break; case state_drag: DetailCtx(C); if (IS_WINDOW(W) && W == (window)C->W) { DragPosition[0] = (ldat)C->i - C->Left; DragPosition[1] = (ldat)C->j - C->Up; } else ok = tfalse; break; case state_scroll: /* * this is complex... we must setup W->State with what you clicked upon. * do the dirty way and reuse the function ActivateScroll(). * since it returns (void), check for (W->State & SCROLL_ANY_SELECT). */ if (IS_WINDOW(W) && W == (window)C->W) { ActivateScroll(C); ok = !!(W->State & SCROLL_ANY_SELECT); } else ok = tfalse; break; case state_gadget: case state_menu: case state_screen: case state_button_screen: case state_root: case state_default: default: break; } return ok; } /* handle mouse during various STATE_* */ /* this is mouse only */ static void ContinueReleaseMouseState(wm_ctx *C, byte State) { if (isSINGLE_RELEASE(C->Code)) { switch (State) { case state_resize: case state_drag: case state_scroll: ReleaseDragResizeScroll(C); break; case state_gadget: ReleaseGadget(C); break; case state_menu: ReleaseMenu(C); break; case state_screen: ReleaseScreen(C); break; case state_button_screen: ReleaseScreenButton(C); break; case state_root: case state_default: default: if (State < BUTTON_MAX) ReleaseButton(C); else /* paranoid... */ All->State = state_default; break; } } else if (isSINGLE_PRESS(C->Code) || isSINGLE_MOVE(C->Code) || isRELEASE(C->Code)) { switch (State) { case state_resize: ContinueResize(C); break; case state_drag: ContinueDrag(C); break; case state_scroll: ContinueScroll(C); break; case state_gadget: ContinueGadget(C); break; case state_menu: ContinueMenu(C); break; case state_screen: ContinueScreen(C); break; /*case state_button_screen: ContinueScreenButton(C); break; */ case state_root: case state_default: break; default: /* if (State < BUTTON_MAX) * ContinueButton(C); */ break; } } } static menuitem PrevItem(menuitem Item, menu Menu) { menuitem Prev; if (!(Prev = Item->Prev)) { if (Item->Parent == (obj)Menu) { if (Menu->CommonItems && All->CommonMenu) Prev = All->CommonMenu->LastI; } else Prev = Menu->LastI; } if (Prev) return Prev; return Item; } static menuitem NextItem(menuitem Item, menu Menu) { menuitem Next; if (!(Next = Item->Next)) { if (Item->Parent == (obj)Menu) { if (Menu->CommonItems && All->CommonMenu) Next = All->CommonMenu->FirstI; } else Next = Menu->FirstI; } if (Next) return Next; return Item; } static void EnterItem(menuitem Item) { window W = Item->Window; if (!(Item = (menuitem)Act(FindRow, W)(W, W->CurY))) Item = (menuitem)Act(FindRow, W)(W, 0); if (Item && IS_MENUITEM(Item)) SetMenuState(Item, tfalse); } /* handle keyboard during various STATE_* */ /* this is keyboard only */ static byte ActivateKeyState(wm_ctx *C, byte State) { window W = (window)All->FirstScreen->FocusW; ldat NumRow; dat XDelta = 0, YDelta = 0, depth; udat Key = C->Code; byte used = tfalse; menuitem M; if (!W || !IS_WINDOW(W)) return used; switch (Key) { case TW_Right: XDelta = 1; break; case TW_Left: XDelta = -1; break; case TW_Down: YDelta = 1; break; case TW_Up: YDelta = -1; break; default: break; } switch (State & state_any) { case state_drag: case state_resize: if (Key == TW_Escape || Key == TW_Return) used = ttrue, ReleaseDragResizeScroll(C); else if (State == state_resize && (W->Attr & WINDOW_RESIZE)) { used = ttrue; ResizeRelWindow(W, XDelta, YDelta); ShowResize(W); } else if (State == state_drag && (W->Attr & WINDOW_DRAG)) used = ttrue, DragWindow(W, XDelta, YDelta); break; case state_scroll: if (Key == TW_Escape || Key == TW_Return) { ReleaseDragResizeScroll(C); used = ttrue; break; } if (W->Attr & (WINDOW_X_BAR | WINDOW_Y_BAR)) { switch (Key) { case TW_Insert: XDelta = (W->XWidth - 3); break; case TW_Delete: XDelta = -(W->XWidth - 3); break; case TW_Next: YDelta = (W->YWidth - 3); break; case TW_Prior: YDelta = -(W->YWidth - 3); break; default: break; } if (!(W->Attr & WINDOW_X_BAR)) XDelta = 0; if (!(W->Attr & WINDOW_Y_BAR)) YDelta = 0; if (XDelta || YDelta) used = ttrue, ScrollWindow(W, XDelta, YDelta); } break; case state_menu: C->Menu = Act(FindMenu, C->Screen)(C->Screen); C->Item = Act(GetSelectedItem, C->Menu)(C->Menu); M = Act(RecursiveGetSelectedItem, C->Menu)(C->Menu, &depth); switch (Key) { case TW_Escape: if (depth <= 1) CloseMenu(); else SetMenuState(W->MenuItem, tfalse); used = ttrue; break; case TW_Return: if (M && IS_MENUITEM(M) && M->Window) EnterItem(M); else ReleaseMenu(C); used = ttrue; break; case TW_Left: if (depth > 0 && (All->SetUp->Flags & setup_menu_relax) && (W = (window)M->Parent) && IS_WINDOW(W) && (M = W->MenuItem) && (W = (window)M->Parent) && IS_WINDOW(W)) SetMenuState(M, tfalse); else if (depth <= 1) SetMenuState(C->Item = PrevItem(C->Item, C->Menu), tfalse); used = ttrue; break; case TW_Right: if (depth > 0 && (All->SetUp->Flags & setup_menu_relax) && M->Window) EnterItem(M); else if (depth <= 1) SetMenuState(C->Item = NextItem(C->Item, C->Menu), tfalse); used = ttrue; break; case TW_Up: if (!W->HLogic || (All->State & state_fl_bymouse)) break; NumRow = W->CurY; if (NumRow && NumRow < W->HLogic) NumRow--; else NumRow = W->HLogic - 1; M = (menuitem)Act(FindRow, W)(W, NumRow); if (M && IS_MENUITEM(M)) SetMenuState(M, tfalse); used = ttrue; break; case TW_Down: if (!W->HLogic || (All->State & state_fl_bymouse)) break; NumRow = W->CurY; if (NumRow < W->HLogic - 1) NumRow++; else NumRow = 0; M = (menuitem)Act(FindRow, W)(W, NumRow); if (M && IS_MENUITEM(M)) SetMenuState(M, tfalse); used = ttrue; break; default: break; } break; case state_screen: if (Key == TW_Escape || Key == TW_Return) used = ttrue, ReleaseScreen(C); else if (YDelta) used = ttrue, ResizeFirstScreen(-YDelta); break; case state_default: /* ? is this needed ? */ DragFirstScreen(XDelta, YDelta); break; default: break; } return used; } /* * automatically recursively focus a subwidget on mouse motion * if it and all its non-screen parents have WIDGET_AUTO_FOCUS flag set */ static void TryAutoFocus(wm_ctx *C) { widget W, DeepW, OldW, FocusW = All->FirstScreen->FocusW; if (!FocusW) FocusW = (widget)All->FirstScreen->MenuWindow; if (!FocusW) return; OldW = RecursiveFindFocusWidget((widget)All->FirstScreen); if ((W = C->W) && W == FocusW && (DeepW = C->DW) && DeepW != OldW) { /* * must have AUTO_FOCUS to be autofocused... * and focusing top-level widgets is handled elsewhere */ if (!(DeepW->Attr & WIDGET_AUTO_FOCUS) || (W == DeepW && W->Parent->SelectW != W)) return; FocusW = DeepW; /* climb through all AUTO_FOCUS widgets */ while (DeepW != W) { if (!(DeepW = DeepW->Parent)) return; if (!(DeepW->Attr & WIDGET_AUTO_FOCUS)) break; } /* climb through all already focused widgets */ while (DeepW != W && DeepW->Parent && DeepW->Parent->SelectW == DeepW) { DeepW = DeepW->Parent; } if (DeepW == W) { RecursiveFocusWidget(FocusW); #ifdef DEBUG_WM printk("autofocus: 0x%x -> 0x%x\n", OldW ? OldW->Id : NOID, FocusW->Id); #endif } } } /* the Window Manager built into Twin */ static void WManagerH(msgport MsgPort) { static wm_ctx _C; wm_ctx *C = &_C; msg Msg; widget W; byte used; while ((Msg = WM_MsgPort->FirstMsg)) { Msg->Remove(); if (Msg->Type == msg_map) { SendMsg(MapQueue, Msg); continue; } else if (Msg->Type != msg_mouse && Msg->Type != msg_key) { if (Msg->Type == msg_control) { /* * for now, don't allow starting a different WM (MSG_CONTROL_RESTART) * but just restart this one (MSG_CONTROL_OPEN) */ if ((Msg->Event.EventControl.Code == MSG_CONTROL_RESTART || Msg->Event.EventControl.Code == MSG_CONTROL_OPEN)) { Fill4RC_VM(C, NULL, msg_control, POS_ROOT, MSG_CONTROL_OPEN); (void)RC_VMQueue(C); } } Msg->Delete(); continue; } InitCtx(Msg, C); if (All->State == state_default) { if (C->ByMouse && isSINGLE_PRESS(C->Code)) { if (C->Screen && C->Screen != All->FirstScreen) { Act(Focus, C->Screen)(C->Screen); InitCtx(Msg, C); } if (HOLD_CODE(PRESS_N(C->Code)) == All->SetUp->ButtonSelection) { if (C->W && C->W != C->Screen->FocusW) Act(Focus, C->W)(C->W); DetailCtx(C); W = RecursiveFindFocusWidget((widget)All->FirstScreen); if (C->DW && C->DW != W) RecursiveFocusWidget(C->DW); All->State |= state_fl_bymouse; } else DetailCtx(C); /* mouse action, setup ClickWindow */ ClickWindowPos = C->Pos; All->FirstScreen->ClickWindow = (window)C->W; used = ActivateMouseState(C); } else { used = tfalse, DetailCtx(C); if (C->ByMouse) { if (!isPRESS(C->Code) && !(C->Code & HOLD_ANY)) TryAutoFocus(C); } else /* for keyboard actions, ClickWindow == FocusW */ All->FirstScreen->ClickWindow = (window)C->W; } if (!used) { C->Type = C->ByMouse ? msg_mouse : msg_key; used = RC_VMQueue(C); } } else if (C->ByMouse) { /* * if you use the mouse during a keyboard-activated STATE_xxx, * you will activate the state_fl_bymouse flag. * This means that the mouse "steals" to the keyboard * the action you were doing (resize, scroll, ...) * and the keyboard becomes non-functional until * you return to state_default. * * Since the WM does not know which mouse button is used to * activate the various STATE_xxx (it's specified in the RC Virtual Machine) * this also means that you can Drag,Resize,Scroll,Activate Menu or Screen * with the "wrong" mouse button with this trick: * first you enter the State STATE_xxx using the Menu, then you * click in an appropriate place with whatever mouse button you like. * * clicking in a non-appropriate place (e.g. Menu during a Window Scroll) * just forces a return to state_default. */ if (!(All->State & state_fl_bymouse)) { if (SneakSetupMouse(C)) /* ok, mouse is in a meaningful position */ All->State |= state_fl_bymouse; else /* clicked in a strange place? return to state_default */ ForceRelease(C); } if (All->State & state_fl_bymouse) ContinueReleaseMouseState(C, All->State & state_any); } else /* (!C->ByMouse) */ { used = ActivateKeyState(C, All->State); } /* cleanup ClickWindow if not needed anymore */ if ((All->State & state_any) == state_default && (!C->ByMouse || !isPRESS(C->Code) || !(C->Code & HOLD_ANY))) { ClickWindowPos = TW_MAXBYTE; All->FirstScreen->ClickWindow = NULL; } /* must we send the event to the focused window too ? */ if (C->ByMouse || (All->State == state_default && !used)) { if (CheckForwardMsg(C, Msg, used)) /* don't Msg->Delete() ! */ continue; } Msg->Delete(); } if (All->State == state_default) { for (used = 30, Msg = MapQueue->FirstMsg; Msg && used; Msg = Msg->Next, used--) ; if (!used) QueuedDrawArea2FullScreen = ttrue; while ((Msg = MapQueue->FirstMsg)) { C->W = Msg->Event.EventMap.W; SmartPlace((widget)C->W, Msg->Event.EventMap.Screen); Fill4RC_VM(C, C->W, msg_map, POS_ROOT, 0); (void)RC_VMQueue(C); Msg->Delete(); } } if (All->MouseHW && All->MouseHW->MouseState.keys && Scroller_MsgPort->WakeUp != TIMER_ALWAYS) { extern msg Do_Scroll; Scroller_MsgPort->WakeUp = TIMER_ALWAYS; SendMsg(Scroller_MsgPort, Do_Scroll); } else if ((!All->MouseHW || !All->MouseHW->MouseState.keys) && Scroller_MsgPort->WakeUp == TIMER_ALWAYS) { extern msg Dont_Scroll; SendMsg(Scroller_MsgPort, Dont_Scroll); } if (RC_VM(&WM_MsgPort->PauseDuration)) { /* sleep specified amount of time */ WM_MsgPort->WakeUp |= TIMER_ONCE; } } static dat XWidth, YWidth; static byte doSmartPlace(widget W, dat x[2], dat y[2]) { dat wleft, wright, tryx[2]; dat wup, wdown, tryy[2]; byte ok = tfalse; if (XWidth > x[1] - x[0] + 1 || YWidth > y[1] - y[0] + 1) return tfalse; if (!W) return ttrue; wright = (wleft = W->Left) + W->XWidth; wdown = (wup = W->Up) + (IS_WINDOW(W) && (((window)W)->Attr & WINDOW_ROLLED_UP) ? 1 : W->YWidth); W = W->Next; if (x[0] >= wright || x[1] < wleft || y[0] >= wdown || y[1] < wup) return W ? doSmartPlace(W, x, y) : ttrue; if (y[0] < wup) { tryx[0] = x[0]; tryx[1] = x[1]; tryy[0] = y[0]; tryy[1] = wup - 1; ok = doSmartPlace(W, tryx, tryy); } if (!ok && x[0] < wleft) { tryx[0] = x[0]; tryx[1] = wleft - 1; tryy[0] = y[0]; tryy[1] = y[1]; ok = doSmartPlace(W, tryx, tryy); } if (!ok && x[1] >= wright) { tryx[0] = wright; tryx[1] = x[1]; tryy[0] = y[0]; tryy[1] = y[1]; ok = doSmartPlace(W, tryx, tryy); } if (!ok && y[1] >= wdown) { tryx[0] = x[0]; tryx[1] = x[1]; tryy[0] = wdown; tryy[1] = y[1]; ok = doSmartPlace(W, tryx, tryy); } if (ok) { x[0] = tryx[0]; x[1] = tryx[1]; y[0] = tryy[0]; y[1] = tryy[1]; } return ok; } #define MAXLRAND48 0x80000000l static void SmartPlace(widget W, screen Screen) { dat X[2]; dat Y[2]; if (!W || W->Parent) return; if (W->Up == TW_MAXDAT) { X[1] = (X[0] = Screen->XLogic) + All->DisplayWidth - 1; Y[1] = (Y[0] = Screen->YLogic + 1) + All->DisplayHeight - Screen->YLimit - 2; XWidth = W->XWidth; YWidth = IS_WINDOW(W) && W->Attr & WINDOW_ROLLED_UP ? 1 : W->YWidth; if (!doSmartPlace(Screen->FirstW, X, Y)) { /* can't be smart... be random */ if (XWidth <= X[1] - X[0]) X[0] += lrand48() / (MAXLRAND48 / (X[1] - X[0] + 2 - XWidth)); if (YWidth <= Y[1] - Y[0]) Y[0] += lrand48() / (MAXLRAND48 / (Y[1] - Y[0] + 2 - YWidth)); } if (XWidth > X[1] - X[0] + 1 && X[0] > TW_MINDAT) X[0]--; if (YWidth > Y[1] - Y[0] + 1 && Y[0] > TW_MINDAT) Y[0]--; W->Left = X[0] - Screen->XLogic; W->Up = Y[0] - Screen->YLogic; } Act(MapTopReal, W)(W, Screen); } static void OverrideMethods(byte enter) { if (enter) OverrideMethod(window, FindBorder, FakeFindBorderWindow, WMFindBorderWindow); else OverrideMethod(window, FindBorder, WMFindBorderWindow, FakeFindBorderWindow); } EXTERN_C byte InitModule(module Module) { byte sent = tfalse; srand48(time(NULL)); if ((WM_MsgPort = New(msgport)(2, "WM", 0, 0, 0, WManagerH)) && /* this will later be sent to rcrun.c, it forces loading .twinrc */ SendControlMsg(WM_MsgPort, MSG_CONTROL_OPEN, 0, NULL)) { if (RegisterExt(WM, MsgPort, WM_MsgPort)) { if ((MapQueue = New(msgport)(11, "WM MapQueue", 0, 0, 0, (void (*)(msgport))NoOp))) { MapQueue->Remove(); if (InitRC()) { OverrideMethods(ttrue); return ttrue; } else { sent = ttrue; printk("twin: RC: " SS "\n", Errstr); } } UnRegisterExt(WM, MsgPort, WM_MsgPort); } else { sent = ttrue; printk("twin: WM: RegisterExt(WM,MsgPort) failed! Another WM is running?\n"); } } if (WM_MsgPort) { WM_MsgPort->Delete(); } if (!sent) { printk("twin: WM: " SS "\n", Errstr); } return tfalse; } EXTERN_C void QuitModule(module Module) { QuitRC(); OverrideMethods(tfalse); UnRegisterExt(WM, MsgPort, WM_MsgPort); WM_MsgPort->Delete(); MapQueue->Delete(); } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/wm.h������������������������������������������������������������������������������0000664�0000000�0000000�00000002141�13775351206�0014612�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #ifndef TWIN_WM_H #define TWIN_WM_H typedef struct wm_ctx wm_ctx; struct wm_ctx { widget W; /* top level widget user is interacting with */ screen Screen; menu Menu; menuitem Item; widget DW; /* deepest widget user is interacting with */ udat Type; /* Msg->Type: MSG_* */ byte Pos; /* POS_* relative to (W) */ byte ByMouse; udat Code; /* keyboard key / mouse buttons pressed */ udat ShiftFlags; dat i, j; /* mouse coordinates */ ldat Left, Up, Rgt, Dwn; /* window (W) corners */ }; byte InitWM(void); void AskCloseWidget(widget W); void Check4Resize(window W); void MaximizeWindow(window W, byte full_screen); void ShowWinList(wm_ctx *C); void FocusCtx(wm_ctx *C); byte ActivateCtx(wm_ctx *C, byte State); void ForceRelease(const wm_ctx *C); #endif /* TWIN_WM_H */ �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/server/wrapper.c�������������������������������������������������������������������������0000664�0000000�0000000�00000001137�13775351206�0015646�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* * wrapper.c -- wrapper for the real twin program * * This program is in the public domain * */ #include <errno.h> #include <stdio.h> #include <string.h> #include "twautoconf.h" #include "compiler.h" #ifdef TW_HAVE_UNISTD_H #include <unistd.h> #endif #ifndef BINDIR #warning BINDIR is not #defined, assuming "/usr/local/bin" #define BINDIR "/usr/local/bin" #endif static char bindir_twin_server[] = BINDIR "/twin_server"; int main(int argc, char *argv[]) { argv[0] = bindir_twin_server; execv(argv[0], argv); printf("failed to exec %s: %s\n", argv[0], strerror(errno)); return 1; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/system.twenvrc.sh������������������������������������������������������������������������0000775�0000000�0000000�00000001367�13775351206�0016073�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/bash # Copyright (C) 2000 by Massimiliano Ghilardi # # This program 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 2 of the License, or # (at your option) any later version. # # # # This file reads global and user profiles (like /etc/profile and ~/.profile) # then outputs all environment variables to let twin server know them too. # # # Read the default system settings. # test -r /etc/profile && { . /etc/profile > /dev/null 2>&1 ; } test -r ${HOME}/.bashrc && { . ${HOME}/.bashrc > /dev/null 2>&1 ; } test -r ${HOME}/.profile && { . ${HOME}/.profile > /dev/null 2>&1 ; } # exec 1>&2 printenv || env || set �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/system.twinrc����������������������������������������������������������������������������0000664�0000000�0000000�00000032072�13775351206�0015272�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/true # # Copyright (C) 2000 by Massimiliano Ghilardi # # This program 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 2 of the License, or # (at your option) any later version. # # # # This file contains the configuration for twin look-n-feel. # By default, it is installed as ${libdir}/twin/system.twinrc # and, provided twin is compiled with RC parser support, # it is used as fallback configuration in case the user does not # have his own ${HOME}/.twinrc # # to customize twin user interface, just copy this file in your # home directory as `.twinrc' and edit it to your tastes. # # file syntax: # # a hash sign '#' at the beginning of a line means the line # is a comment (you are already reading such a comment!) # # Many different commands are recognized, and are listed below. # A quick summary of all keywords can be found at the end of this file. # First command: # # set screen background Background 1 High Black On Blue ( "\xb1" ) # the screen `1' is created by twin at startup, # so we do not need to `AddScreen 1', # and `High Black On Blue' means `high intensity black' (i.e. gray) foreground # on `blue' background. # # the complete list of colors is: # Black Blue Green Cyan Red Magenta Yellow White # # and `High' can be applied both to foreground and background. # depending on the display you use, `High' background may actually blink. # # the strings inside ( ) are just the screen background, # each string representing a line. # # every time you must write a string, you can use hexadecimal codes like "\xb1" # or octal codes like "\261", and double quotes surrounding the string # are only needed to protect special characters (i.e. parentheses, # non-alphanumerical chars, etc.). Sequences like "\?" where ? is a character # have the same meaning as in C language: # "\"" is a string containing a double quote, # "\n" is a newline, and so on. # # create the common part of all menus # # you need quotes to protect reserved names # or strings containing non-alphanumerical chars. # again, parenthesis '(' and ')' are used to group together a list # # this creates the menuitem " Window ", shared by all applications, # with the contents you see below. # # the command `Nop' is a do-nothing command used to insert a linebreak. # `_Next' is a user function (all other ones are predefined by twin) and # is defined below. # AddToMenu " Window " ( " Move " Interactive Move " Resize " Interactive Resize " Scroll " Interactive Scroll " Center " Center " Maximize " Maximize " Full Screen " FullScreen " Roll Up " Roll Toggle "" Nop " Raise/Lower " RaiseLower " UnFocus " Focus Off " Next " _Next " List... " WindowList "" Nop " Refresh " Refresh " Send Pause " SyntheticKey Pause "" Nop " Close " Close "" Nop " Kill Client " Kill ) # # define the user function `_Next' : # group commands in '(' ')' and put either a newline or a ';' # after each command. `Window 1' means first window, while # `Window 0' is the currently focused window. # AddToFunc _Next ( Lower; Window 1; Focus; ) # this would be exactly the same # # AddToFunc _Next ( # Lower # Window 1 # Focus # ) # # or you can even split the function definition: # # AddToFunc _Next ( Lower; Window 1; ) # AddToFunc _Next ( # Focus # ) # # # These are not needed... and they override # the borders defined by Alternate Font # # Border "*" Active ( # "�ͻ" # "� �" # "�ͼ" # ) # # menu windows are always considered Inactive # # Border "*" Inactive ( # "�Ŀ" # "� �" # "���" # ) # # note: since twin 0.8.0, all windows must have the same borders. # it's no longer possible to differentiate borders depending on the window name # # # create the buttons on window top border. # allowed buttons range from 0 to 9. # # syntax: # Button <number> "shape" {Left|Right} [[+|-]<position>] # # creates button <number> with given "shape", either on Left or Right # of window title. Optionally, you can control where exactly to place it: # # `Left +<n>' or `Right +<n>' leaves <n> free spaces between this button # and the last one on the same side. # # `Left <n>' or `Right <n>' specifies exact distance between button and # window Left (Right) edge. # # `Left -<n>' or `Right -<n>' says to place the button <n> characters nearer # to the border than just `Left' or `Right', possibly intersecting # other buttons. # # WARNING: Button 0 must ALWAYS be the close button... # Button 0 "[]" Left Button 1 "\x12\x12" Right Button 2 "><" Right # # a maximize/fullscreen button. feel free to uncomment :-) # Button 3 "+-" Right +1 # # override the Options specified at compile time # # set shadows to 3x2 and enable them GlobalFlags Shadows 3 2 +Shadows # # do not (yet) start new terminals in UTF-8 mode. these days it would probably be a good idea, # but let users decide - and it gets enabled anyway if twin detects UTF-8 locale from environment variables # # GlobalFlags +TerminalsUtf8 # # disable blink/high background GlobalFlags -Blink # # do not force cursor always visible GlobalFlags -CursorAlways # # disable edge screen scrolling GlobalFlags -ScreenScroll # # do not hide the menu GlobalFlags -MenuHide # # disable menu information row GlobalFlags -MenuInfo # # don't relax menu navigation GlobalFlags -MenuRelax # # # choose the mouse button used for click-to-focus, # for text selection and to activate window gadgets. # 1 means Left, 2 means Middle, 3 means Right. # this also implies a 'Focus' action when clicking in a non-focused window. # GlobalFlags ButtonSelection 1 # # choose the mouse button used to paste text selection # GlobalFlags ButtonPaste 2 # # keyboard bindings syntax: # # Key <flags> <name> <function> # # <flags> is optional and can be one or more of # Shift # Ctrl # Alt # remember anyway that except on X11 display twin can detect these flags # only deducing them from the ASCII sequences it receives from the keyboard, # so Shift is almost useless and not all keys combined with Ctrl and Alt # make sense (i.e. they must produce a unique, identificable ASCII sequence) # # <name> is the name of the key as in libtwkeys.h, without the TW_ prefix. # To be safe, <name> should be quoted. some examples: # "Tab" "Return" "Escape" "BackSpace" # "Left" "Up" "Right" "Down" # "Prior" ("Page_Up") "Next" ("Page_Down") # "Home" "End" "Insert" "Delete" # "Pause" "Num_Lock" # "F1" "F2" "F3" "F4" "F5" "F6" "F7" "F8" "F9" "F10" "F11" "F12" # or any ASCII character, also in double quotes: # "A" "[" "\xFF" and so on # # # Both PAUSE and F12 pop up the menu. Feel free to use any other key. # Key "Pause" Interactive Menu Key "F12" Interactive Menu # # this is a user contributed idea: ALT-TAB to cycle through windows. # Key Alt "Tab" _Next # # Other nifty ideas. # These will work only on display drivers that support abstract keys. # Currently requires one of: `tty' with Linux raw keyboard, `xft' or `X11'. # # # ALT-UP spawns a new terminal. # Key Alt "Up" ExecTty "" # # SHIFT-PAGEUP scrolls up focused window # Key Shift "Prior" Scroll +0 -10 # # SHIFT-PAGEDOWN scrolls down focused window # Key Shift "Next" Scroll +0 +10 # # mouse bindings syntax: # # Mouse <buttons-list> <context> <function> # # # context is a string consisting of one or more of the following: # 0..9 corresponding button in window title # C window resize corner # T window title bar # S window sides # B window scroll bars # W one of T,S,B (i.e. window border except buttons and corner) # I window inside # M menu # R root (screen background) # A any of the above # # # mouse bindings: left click on button 0 graciously closes the window # Mouse 1 0 Close # this is subtle: doing # Mouse H1 0 Close # instead of # Mouse 1 0 Close # would close the window when you PRESS mouse left button on window close button, # NOT when you CLICK (i.e. PRESS, then RELEASE) on it! # # (note: `H' means `hold'. there is also `C' which means `click', # but it's the default and can be omitted, unless you want you want to use # them together, meaning to execute on PRESS and again on CLICK, # by specifying `HC' ) # # any mouse click on button 1 does RaiseLower Mouse 123 1 RaiseLower # any mouse click on button 2 does Roll / UnRoll Mouse 123 2 Roll Toggle # these are do-nothing if Button 3 above is commented out # # mouse left click on button 3 does Maximize Mouse 1 3 Maximize # mouse middle click on button 3 does FullScreen Mouse 2 3 FullScreen # holding mouse left button on window title or sides does interactive move Mouse H1 TS Interactive Move # mouse left on window resize corner does interactive resize # mouse-based window resize works "as expected" only on window resize corner # (try yourself to bind some window button to Interactive Resize and see...) # Mouse H1 C Interactive Resize # mouse left on window bars does interactive scroll # unluckily, mouse-based window scrolling works properly ONLY # on window bars... # Mouse H1 B Interactive Scroll # mouse left on root unfocuses currently focused window # # you can create functions as complex as you like and use them # just like built-in functions... AddToFunc _UnFocus ( Window 0; Focus Off; ) Mouse H1 R _UnFocus # middle button on root opens window list Mouse H2 R WindowList # Choose your favorite setup... for twin-classic menus, which appear only # after you press right mouse button, use this: # # # right button always opens the menu # Mouse H3 A Interactive Menu # # mouse left on menu-bar does screen resize # Mouse H1 M Interactive Screen # Otherwise you can use turbovision style menus: # they always stay visible and are selected with left button # _on_menu_bar_ # # left button on menu-bar opens the menu Mouse H1 M Interactive Menu # in this case, use mouse right button on menu-bar for screen resize Mouse H3 M Interactive Screen # Mouse wheel scrolls currently focused window Mouse H4 I Scroll +0 -10 Mouse H5 I Scroll +0 +10 # # Or better yet, create your personal style! # # # now you may want some initial client... # uncomment to pop-up a terminal and maximize it. # `;' is the same as a newline... # ExecTty "" ; Wait "Twin Term" ; Maximize # for all users too lazy to manually load the socket server from the menu: # # Module "socket" On # # you may also want: # Module "term" On # # list of all RC commands available for ~/.twinrc # # AddScreen <screen name> # # create a new virtual screen # # AddToMenu <name> ( # "entry" <function> # ... # ) # # add entries to the common part of all menus # # # AddToFunc <name> ( # <function> # ... # ) # # Background <screen> <color> ( # "string" # ... # ) # # set screen background # # Beep # # Border "*" {Active|Inactive} ( # "�ͻ" # "� �" # "�ͼ" # ) # # Button <n> "<shape>" [+|-[<numeric pos>|Left|Right]] # # Center # # center window # # Close # # politely ask the client to close the window # # DeleteFunc <name> # # DeleteMenu <name> # # DeleteButton <number> # # DeleteScreen <screen> # # Exec <shell command> # # ExecTty <shell command> # # Focus [On|Off|Toggle] # # GlobalFlags [+|-][AltFont] [+|-][AlwaysCursor] [+|-][Blink] [+|-][EdgeScroll] [+|-][HideMenu] [+|-][MenuInfo] [+|-][MenuRelax] [+|-][Shadows <x> <y>] # # Interactive <kind> # # choose one of: Scroll, Move, Resize, Screen, Menu # # Key <flags> <keyname> <context> <function> # # <flags> is optional and can be one or more of # # Shift Ctrl Alt # # Kill # # brutally kill the client's connection # # Lower # # Maximize # # FullScreen # # Menu # # pop-up the menu of the currently focused window # # Mouse <button> <where> <function> # # Module <name> [On|Off] # load/unload given module # # Move [+|-]<x> [+|-]<y> # # move window # # MoveScreen [+|-]<x> [+|-]<y> # # move screen # # Next # # same as Window +1 # # Nop # # do-nothing; used in a menu inserts a linebreak # # Prev # # same as Window -1 # # Quit # # unconditionally quit twin! # # Read <file> # # open another file and parse it, then continue with current file # # (like #include in C files) # # Refresh # # redraw all displays # # Restart ""|<window manager name> # # restart the WM or load another window manager # # Resize [+|-]<x> [+|-]<y> # # resize window # # ResizeScreen [+|-]<x> [+|-]<y> # # Raise # # RaiseLower # # raise-and-focus or lower-and-unfocus # # Roll [On|Off|Toggle] # # Scroll [+|-]<x> [+|-]<y> # # scrolls window contents # # SendToScreen <screen> # # sends window to given screen # # Sleep <n> # # sleeps <n> milliseconds # # Stderr <string> ... # # send message to stderr # # SyntheticKey <flags> <key> # # send the specified key event to window # # Wait <window name> # # wait for specified window to be mapped # # Window {[+|-]<n>|<window name>} # # sets default window to operate on # # Window <n> : # # n = 0 : re-get current focused window # # n > 0 : 1 = First Window, 2 = Second, etc. # # # # Window {+|-}<n> : # # n = 0 : no-op # # n < 0 : -1 : Prev Window, -2 Prev Prev, etc. # # n > 0 : +1 : Next Window, +2 Next Next, etc. # # WindowList # ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/test/������������������������������������������������������������������������������������0000775�0000000�0000000�00000000000�13775351206�0013471�5����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/test/Makefile.am�������������������������������������������������������������������������0000664�0000000�0000000�00000000306�13775351206�0015524�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������SUBDIRS = AM_CPPFLAGS = -I$(top_srcdir)/include noinst_PROGRAMS = twtest twtest_SOURCES = test_stl_vector.cpp test_stl_utf8.cpp test_main.cpp twtest_LDADD = $(LIBTSTL) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/test/Makefile.in�������������������������������������������������������������������������0000664�0000000�0000000�00000060205�13775351206�0015541�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.16.2 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2020 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = twtest$(EXEEXT) subdir = test ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltargz.m4 $(top_srcdir)/m4/ltdl.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/admin/tw_version.m4 \ $(top_srcdir)/admin/tw_input_config.m4 \ $(top_srcdir)/admin/tw_c_features.m4 \ $(top_srcdir)/admin/tw_fix_config.m4 \ $(top_srcdir)/admin/tw_output.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/include/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) am_twtest_OBJECTS = test_stl_vector.$(OBJEXT) test_stl_utf8.$(OBJEXT) \ test_main.$(OBJEXT) twtest_OBJECTS = $(am_twtest_OBJECTS) am__DEPENDENCIES_1 = twtest_DEPENDENCIES = $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include depcomp = $(SHELL) $(top_srcdir)/admin/depcomp am__maybe_remake_depfiles = depfiles am__depfiles_remade = ./$(DEPDIR)/test_main.Po \ ./$(DEPDIR)/test_stl_utf8.Po ./$(DEPDIR)/test_stl_vector.Po am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; am__v_CXX_1 = CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; am__v_CXXLD_1 = SOURCES = $(twtest_SOURCES) DIST_SOURCES = $(twtest_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir distdir-am am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/admin/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCAS = @CCAS@ CCASDEPMODE = @CCASDEPMODE@ CCASFLAGS = @CCASFLAGS@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INCLTDL = @INCLTDL@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LDFLAGS_BIN_EXPORT_DYNAMIC = @LDFLAGS_BIN_EXPORT_DYNAMIC@ LIBADD_DL = @LIBADD_DL@ LIBADD_DLD_LINK = @LIBADD_DLD_LINK@ LIBADD_DLOPEN = @LIBADD_DLOPEN@ LIBADD_SHL_LOAD = @LIBADD_SHL_LOAD@ LIBCRYPT = @LIBCRYPT@ LIBDL = @LIBDL@ LIBGPM = @LIBGPM@ LIBLTDL = @LIBLTDL@ LIBOBJS = @LIBOBJS@ LIBPTHREAD = @LIBPTHREAD@ LIBS = @LIBS@ LIBSOCK = @LIBSOCK@ LIBTERMCAP = @LIBTERMCAP@ LIBTOOL = @LIBTOOL@ LIBTSTL = @LIBTSTL@ LIBTUTF = @LIBTUTF@ LIBTW = @LIBTW@ LIBX11 = @LIBX11@ LIBXFT = @LIBXFT@ LIBZ = @LIBZ@ LIPO = @LIPO@ LN_S = @LN_S@ LTDLDEPS = @LTDLDEPS@ LTDLINCL = @LTDLINCL@ LTDLOPEN = @LTDLOPEN@ LTLIBOBJS = @LTLIBOBJS@ LT_ARGZ_H = @LT_ARGZ_H@ LT_CONFIG_H = @LT_CONFIG_H@ LT_DLLOADERS = @LT_DLLOADERS@ LT_DLPREOPEN = @LT_DLPREOPEN@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_EXTRA = @PACKAGE_VERSION_EXTRA@ PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ PACKAGE_VERSION_PATCH = @PACKAGE_VERSION_PATCH@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ SUBDIR_LIBLTDL = @SUBDIR_LIBLTDL@ SUBDIR_LIBTT = @SUBDIR_LIBTT@ VERSION = @VERSION@ X11_CPPFLAGS = @X11_CPPFLAGS@ X11_LDFLAGS = @X11_LDFLAGS@ XFT_CFLAGS = @XFT_CFLAGS@ XFT_LIBS = @XFT_LIBS@ XMKMF = @XMKMF@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ ltdl_LIBOBJS = @ltdl_LIBOBJS@ ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sys_symbol_underscore = @sys_symbol_underscore@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = AM_CPPFLAGS = -I$(top_srcdir)/include twtest_SOURCES = test_stl_vector.cpp test_stl_utf8.cpp test_main.cpp twtest_LDADD = $(LIBTSTL) all: all-recursive .SUFFIXES: .SUFFIXES: .cpp .lo .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list twtest$(EXEEXT): $(twtest_OBJECTS) $(twtest_DEPENDENCIES) $(EXTRA_twtest_DEPENDENCIES) @rm -f twtest$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(twtest_OBJECTS) $(twtest_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_main.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_stl_utf8.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_stl_vector.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ am--depfiles: $(am__depfiles_remade) .cpp.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cpp.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-recursive -rm -f ./$(DEPDIR)/test_main.Po -rm -f ./$(DEPDIR)/test_stl_utf8.Po -rm -f ./$(DEPDIR)/test_stl_vector.Po -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f ./$(DEPDIR)/test_main.Po -rm -f ./$(DEPDIR)/test_stl_utf8.Po -rm -f ./$(DEPDIR)/test_stl_vector.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--depfiles check check-am clean clean-generic clean-libtool \ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am .PRECIOUS: Makefile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/test/test.h������������������������������������������������������������������������������0000664�0000000�0000000�00000000550�13775351206�0014621�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ void test_stl_vector(); void test_stl_utf8(); ��������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/test/test_main.cpp�����������������������������������������������������������������������0000664�0000000�0000000�00000000620�13775351206�0016156�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "test.h" int main() { test_stl_vector(); test_stl_utf8(); return 0; } ����������������������������������������������������������������������������������������������������������������twin-0.9.0/test/test_stl_any.h����������������������������������������������������������������������0000664�0000000�0000000�00000001265�13775351206�0016356�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "stl/any.h" template <class T> void test_any() { T value(17), copy(0); Any any; any = value; assert(any.is<T>()); assert(any.type() == Any::Type<T>()); assert(any.value<T>() == value); assert(&any.value<T>() != &value); assert(value != copy); assert(any.get<T>(copy)); assert(value == copy); } void test_any_long(long n, Any &out) { out = n; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/test/test_stl_utf8.cpp�������������������������������������������������������������������0000664�0000000�0000000�00000002064�13775351206�0017006�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "stl/utf8.h" #include "stl/string.h" void test_stl_utf8() { for (trune rune = 0; rune <= 0x110000; ++rune) { const Utf8 x(rune); assert(x.size() == x.chars().size()); if ((rune >= 0xD800 && rune <= 0xDFFF) || rune == 0xFFFE || rune == 0xFFFF || rune > 0x10FFFF) { // invalid codepoint, encoded to 'replacement character' assert(x.rune() == 0xFFFD); assert(x.size() == 3); continue; } assert(x.rune() == rune); if (rune <= 0x7F) { assert(x.size() == 1); } else if (rune <= 0x7FF) { assert(x.size() == 2); } else if (rune <= 0xFFFF) { assert(x.size() == 3); } else { assert(x.size() == 4); } Utf8 y; assert(y.parse(x.chars())); assert(x == y); } } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/test/test_stl_vector.cpp�����������������������������������������������������������������0000664�0000000�0000000�00000007005�13775351206�0017422�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* Copyright (C) 2000-2020 by Massimiliano Ghilardi * * This program 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 2 of the License, or * (at your option) any later version. * */ #include "stl/string.h" #include "test_stl_any.h" template <class T> void test_view() { enum { n = 3 }; T data[n] = {1, 2, 3}; View<T> w; assert(w.size() == 0); assert(w.data() == NULL); w.ref(data, n); assert(w.size() == n); assert(w.data() == data); #ifdef STL_CXX11 { T sum1 = 0; for (T e : w) { sum1 += e; } assert(sum1 == n * (n + 1) / 2); } #endif { T sum2 = 0; typename View<T>::const_iterator iter = w.begin(), end = w.end(); for (; iter != end; ++iter) { sum2 += *iter; } assert(sum2 == n * (n + 1) / 2); } for (size_t i = 0; i < n; i++) { assert(w[i] == data[i]); data[i] = T(-data[i]); assert(w[i] == data[i]); } View<T> w2; swap(w, w2); assert(w.size() == 0); assert(w.data() == NULL); assert(w2.size() == n); assert(w2.data() == data); } template <class T> void test_span() { enum { n = 3 }; T data[n] = {1, 2, 3}; Span<T> s; View<T> w; assert(s.size() == 0); assert(s.data() == NULL); s.ref(data, n); assert(s.size() == n); assert(s.data() == data); w.ref(s); assert(w.size() == n); assert(w.data() == data); for (size_t i = 0; i < n; i++) { assert(s[i] == data[i]); assert(s[i] == w[i]); s[i] = T(-s[i]); assert(s[i] == data[i]); assert(s[i] == w[i]); } Span<T> s2; swap(s, s2); assert(s.size() == 0); assert(s.data() == NULL); assert(s2.size() == n); assert(s2.data() == data); } template <class T> void test_vector() { enum { n = 3 }; T data[n] = {1, 2, 3}; Vector<T> a; Span<T> s; View<T> w; assert(a.size() == 0); assert(a.data() == NULL); assert(a.dup(data, n)); assert(a.size() == n); assert(a.data()); assert(a.data() != data); s.ref(a); assert(s.size() == n); assert(s.data() == a.data()); w.ref(a); assert(w.size() == n); assert(w.data() == a.data()); for (size_t i = 0; i < n; i++) { assert(a[i] == data[i]); assert(a[i] == s[i]); assert(a[i] == w[i]); a[i] = T(-a[i]); assert(a[i] == T(-data[i])); assert(a[i] == s[i]); assert(a[i] == w[i]); } enum { large = 1 << 20 }; assert(a.resize(large)); assert(a.data()); assert(a.size() == large); assert(!a.resize(size_t(-1) / 2 / sizeof(T))); assert(a.data()); assert(a.size() == large); Vector<T> a2; a.swap(a2); assert(a.data() == NULL); assert(a.size() == 0); assert(a2.data()); assert(a2.size() == large); } void test_string() { typedef char T; enum { n = 3 }; T data[n + 1] = "abc"; String st(data); assert(st.size() == n); assert(st.data()); assert(st.data() != data); Chars w = st; assert(w.size() == n); assert(w.data() == st.data()); Span<char> s = st; assert(s.size() == n); assert(s.data() == st.data()); Vector<char> a; st.swap(a); assert(st.data() == NULL); assert(st.size() == 0); assert(a.data()); assert(a.size() == n); } void swap_string(String &left, String &right) { left.swap(right); } template <class T> void test_T() { test_view<T>(); test_span<T>(); test_vector<T>(); test_any<T>(); } void test_stl_vector() { test_T<signed char>(); test_T<unsigned char>(); test_T<short>(); test_T<int>(); test_T<long>(); test_T<float>(); test_string(); } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������twin-0.9.0/twin-current.lsm�������������������������������������������������������������������������0000664�0000000�0000000�00000001615�13775351206�0015673�0����������������������������������������������������������������������������������������������������ustar�00root����������������������������root����������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Begin3 Title: twin Version: 0.4.9 Entered-date: 020705 Description: a Text mode WINdow environment. It has built-in window manager and linux console emulator. Has X11-style networked server capabilities: programs started remotely can connect to twin using sockets. Runs on the linux console, on itself, on X11 display, can attach/detach on-the-fly to a display and supports multiple simultaneous displays. VGA font provided for better look. Keywords: twin wm twindows linux Author: Massimiliano Ghilardi <massimiliano.ghilardi+twin@gmail.com> Maintained-by: Massimiliano Ghilardi <massimiliano.ghilardi+twin@gmail.com> Primary-site: https://github.com/cosmos72/twin/ 1050k twin-0.4.9.tar.gz 866 twin-0.4.9.lsm Alternate-site: http://prdownloads.sourceforge.net/projects/twin/ 1050k twin-0.4.9.tar.gz 866 twin-0.4.9.lsm Platforms: Linux, FreeBSD, SunOS, X11 Copying-policy: GPL End �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������